pace-chart-lib 1.0.58 → 1.0.60

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.
Files changed (72) hide show
  1. package/dist/pace-chart-lib.es.js +58 -18
  2. package/dist/pace-chart-lib.umd.js +58 -18
  3. package/package.json +1 -1
  4. package/dist/Components/Charts/ChartJS/charts/CJSAreaChart.d.ts +0 -18
  5. package/dist/Components/Charts/ChartJS/charts/CJSBubbleChart.d.ts +0 -16
  6. package/dist/Components/Charts/ChartJS/charts/CJSColumnChart.d.ts +0 -18
  7. package/dist/Components/Charts/ChartJS/charts/CJSDonutChart.d.ts +0 -18
  8. package/dist/Components/Charts/ChartJS/charts/CJSHorizontalBarChart.d.ts +0 -17
  9. package/dist/Components/Charts/ChartJS/charts/CJSLineChart.d.ts +0 -18
  10. package/dist/Components/Charts/ChartJS/charts/CJSNormalizedStackAreaChart.d.ts +0 -16
  11. package/dist/Components/Charts/ChartJS/charts/CJSNormalizedStackColumnChart.d.ts +0 -16
  12. package/dist/Components/Charts/ChartJS/charts/CJSNormalizedStackHorizontalBarChart.d.ts +0 -16
  13. package/dist/Components/Charts/ChartJS/charts/CJSNormalizedStackLineChart.d.ts +0 -16
  14. package/dist/Components/Charts/ChartJS/charts/CJSPieChart.d.ts +0 -22
  15. package/dist/Components/Charts/ChartJS/charts/CJSPolarAreaChart.d.ts +0 -18
  16. package/dist/Components/Charts/ChartJS/charts/CJSRadarChart.d.ts +0 -16
  17. package/dist/Components/Charts/ChartJS/charts/CJSScatterChart.d.ts +0 -16
  18. package/dist/Components/Charts/ChartJS/charts/CJSStackAreaChart.d.ts +0 -15
  19. package/dist/Components/Charts/ChartJS/charts/CJSStackColumnChart.d.ts +0 -15
  20. package/dist/Components/Charts/ChartJS/charts/CJSStackHorizontalBarChart.d.ts +0 -15
  21. package/dist/Components/Charts/ChartJS/charts/CJSStackLineChart.d.ts +0 -15
  22. package/dist/Components/Charts/ChartJS/core/ChartJSDataTransformer.d.ts +0 -31
  23. package/dist/Components/Charts/ChartJS/core/ChartJSOptionsMapper.d.ts +0 -9
  24. package/dist/Components/Charts/ChartJS/core/ChartJSWrapper.d.ts +0 -27
  25. package/dist/Components/Charts/ChartJS/index.d.ts +0 -21
  26. package/dist/Components/Charts/ChartsWithAxis/AreaFamily/AreaChart.d.ts +0 -4
  27. package/dist/Components/Charts/ChartsWithAxis/AreaFamily/NormalizedStackAreaChart.d.ts +0 -4
  28. package/dist/Components/Charts/ChartsWithAxis/AreaFamily/StackAreaChart.d.ts +0 -4
  29. package/dist/Components/Charts/ChartsWithAxis/ChartsWithAxisFunctions.d.ts +0 -628
  30. package/dist/Components/Charts/ChartsWithAxis/ChartsWithAxisTypes.types.d.ts +0 -171
  31. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/ColumnChart.d.ts +0 -4
  32. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/ColumnHistogramChart.d.ts +0 -4
  33. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/CustomColumnChart.d.ts +0 -4
  34. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/LayeredColumnChart.d.ts +0 -4
  35. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/NormalizedStackColumnChart.d.ts +0 -4
  36. package/dist/Components/Charts/ChartsWithAxis/ColumnFamily/StackColumnChart.d.ts +0 -4
  37. package/dist/Components/Charts/ChartsWithAxis/HorizontalBarFamily/HorizontalBarChart.d.ts +0 -4
  38. package/dist/Components/Charts/ChartsWithAxis/HorizontalBarFamily/HorizontalHistogramChart.d.ts +0 -4
  39. package/dist/Components/Charts/ChartsWithAxis/HorizontalBarFamily/LayeredHorizontalBarChart.d.ts +0 -4
  40. package/dist/Components/Charts/ChartsWithAxis/HorizontalBarFamily/NormalizedStackHorizontalBarChart.d.ts +0 -4
  41. package/dist/Components/Charts/ChartsWithAxis/HorizontalBarFamily/StackHorizontalBarChart.d.ts +0 -4
  42. package/dist/Components/Charts/ChartsWithAxis/LineFamily/LineChart.d.ts +0 -4
  43. package/dist/Components/Charts/ChartsWithAxis/LineFamily/NormalizedStackLineChart.d.ts +0 -4
  44. package/dist/Components/Charts/ChartsWithAxis/LineFamily/StackLineChart.d.ts +0 -4
  45. package/dist/Components/Charts/ChartsWithAxis/MiscellaneousChartFamily/DotPlot.d.ts +0 -4
  46. package/dist/Components/Charts/ChartsWithAxis/MiscellaneousChartFamily/TornadoChart.d.ts +0 -4
  47. package/dist/Components/Charts/ChartsWithAxis/MiscellaneousChartFamily/WaterfallChart.d.ts +0 -4
  48. package/dist/Components/Charts/ChartsWithoutAxis/ChartsWithoutAxisFunctions.d.ts +0 -95
  49. package/dist/Components/Charts/ChartsWithoutAxis/ChartsWithoutAxisTypes.types.d.ts +0 -113
  50. package/dist/Components/Charts/ChartsWithoutAxis/Maps/Cordinates.d.ts +0 -26
  51. package/dist/Components/Charts/ChartsWithoutAxis/Maps/Maps.d.ts +0 -4
  52. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/BubbleChart.d.ts +0 -4
  53. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/OrganizationChart.d.ts +0 -4
  54. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/ProgressChart.d.ts +0 -3
  55. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/PyramidChart.d.ts +0 -3
  56. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/RadialBarChart.d.ts +0 -4
  57. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/SankeyChart.d.ts +0 -4
  58. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/ScatterChart.d.ts +0 -4
  59. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/Speedometer.d.ts +0 -3
  60. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/VennChart.d.ts +0 -4
  61. package/dist/Components/Charts/ChartsWithoutAxis/OtherCharts/WordCloud.d.ts +0 -4
  62. package/dist/Components/Charts/ChartsWithoutAxis/PieFamily/DonutChart.d.ts +0 -4
  63. package/dist/Components/Charts/ChartsWithoutAxis/PieFamily/PieChart.d.ts +0 -4
  64. package/dist/Components/Charts/ChartsWithoutAxis/PieFamily/PieFamilyCommonFunctions.d.ts +0 -10
  65. package/dist/Components/Charts/ChartsWithoutAxis/PieFamily/PieofPieChart.d.ts +0 -3
  66. package/dist/Components/Charts/ChartsWithoutAxis/PieFamily/TreemapChart.d.ts +0 -3
  67. package/dist/Components/Charts/Core/Common.types.d.ts +0 -409
  68. package/dist/Components/Charts/Core/CommonFunctions.d.ts +0 -250
  69. package/dist/Components/Charts/Core/DefaultChartDataProperties.d.ts +0 -66
  70. package/dist/Components/Charts/Core/DefaultProperties.types.d.ts +0 -618
  71. package/dist/Services/ErrorLog.d.ts +0 -1
  72. package/dist/index.d.ts +0 -37
@@ -11294,7 +11294,13 @@ const defaultChartFormatOptions = {
11294
11294
  annotationBoxVisibility: [],
11295
11295
  annotationHideZeroValues: true,
11296
11296
  annotationShowHiddenValues: true,
11297
- annotationSetLabelColor: "1"
11297
+ annotationSetLabelColor: "1",
11298
+ annotationRangeFilter: {
11299
+ enabled: false,
11300
+ condition: "lt",
11301
+ minVal: 0,
11302
+ maxVal: 100
11303
+ }
11298
11304
  },
11299
11305
  total: {
11300
11306
  totalVisibility: false,
@@ -13134,6 +13140,25 @@ function getCurvePoints(dx, dy) {
13134
13140
  // end (label)
13135
13141
  ];
13136
13142
  }
13143
+ function applyAnnotationRangeFilter(annotationsList, formatOptions, getMeasure) {
13144
+ if (!formatOptions.annotation.annotationRangeFilter?.enabled) return annotationsList;
13145
+ const { condition, minVal, maxVal } = formatOptions.annotation.annotationRangeFilter;
13146
+ return annotationsList.filter((item) => {
13147
+ const measure = getMeasure(item);
13148
+ switch (condition) {
13149
+ case "lt":
13150
+ return measure < maxVal;
13151
+ case "gt":
13152
+ return measure > minVal;
13153
+ case "in":
13154
+ return measure >= minVal && measure <= maxVal;
13155
+ case "not-in":
13156
+ return measure < minVal || measure > maxVal;
13157
+ default:
13158
+ return true;
13159
+ }
13160
+ });
13161
+ }
13137
13162
  function commonAnnotations(chartData, xScale, yScaleLeft, yScaleRight, margin, d3Annotation2, labelExcludeList, individualLabelColor, formatOptions, chartType, height, width, innerWidth2, dimensionList, innerHeight2, widgetId, svg, onDataLabelCoordinatesChange, xScaleForLegends, columnWidth, isReportEditable, isSensitivityChart, barChart, isAATornado) {
13138
13163
  try {
13139
13164
  const isTornadoChart = chartType === chartTypes.TornadoChart;
@@ -13397,6 +13422,11 @@ function commonAnnotations(chartData, xScale, yScaleLeft, yScaleRight, margin, d
13397
13422
  (d) => barChart ? d.data.x.measure !== 0 : d.data.y.measure !== 0
13398
13423
  );
13399
13424
  }
13425
+ annotationsList = applyAnnotationRangeFilter(
13426
+ annotationsList,
13427
+ formatOptions,
13428
+ (d) => barChart ? d.data.x.measure : d.data.y.measure
13429
+ );
13400
13430
  if (oldAnnotationList.length === 0) {
13401
13431
  oldAnnotationList = annotationsList;
13402
13432
  oldMap = new Map(
@@ -13945,6 +13975,11 @@ function commonAnnotationsForCustomChart(chartData, xScale, yScaleLeft, yScaleRi
13945
13975
  if (formatOptions.annotation.annotationHideZeroValues) {
13946
13976
  annotationsList = annotationsList.filter((d) => d.data.y !== 0);
13947
13977
  }
13978
+ annotationsList = applyAnnotationRangeFilter(
13979
+ annotationsList,
13980
+ formatOptions,
13981
+ (d) => d.data.y
13982
+ );
13948
13983
  if (oldAnnotationList.length === 0) {
13949
13984
  oldAnnotationList = annotationsList;
13950
13985
  oldMap = new Map(
@@ -15401,6 +15436,11 @@ function stacklineAnnotations(chartData, xScale, yScaleLeft, yScaleRight, margin
15401
15436
  // ?
15402
15437
  annotationsList.push(singleAnnotation);
15403
15438
  });
15439
+ annotationsList = applyAnnotationRangeFilter(
15440
+ annotationsList,
15441
+ formatOptions,
15442
+ (d) => barChart ? d.data.x : d.data.y
15443
+ );
15404
15444
  if (oldAnnotationList.length === 0) {
15405
15445
  oldAnnotationList = annotationsList;
15406
15446
  oldMap = new Map(
@@ -21477,6 +21517,11 @@ function pieFamilyAnnotation(d3Annotation2, chartData, formatOptions, getPiePosi
21477
21517
  let AnnotationsList = chartData.filter((d) => d.x1 - d.x0 > 1e-4).map(createAnnotation);
21478
21518
  const visibleFilter = (d) => (d.data.y?.value ?? 0) !== 0;
21479
21519
  AnnotationsList = AnnotationsList.filter(visibleFilter);
21520
+ AnnotationsList = applyAnnotationRangeFilter(
21521
+ AnnotationsList,
21522
+ formatOptions,
21523
+ (d) => d.data.y.value
21524
+ );
21480
21525
  let oldMap = new Map(
21481
21526
  oldAnnotationList.map((d) => [
21482
21527
  d.data?.x?.legend,
@@ -31462,17 +31507,8 @@ const RadialBarChart = ({
31462
31507
  try {
31463
31508
  let arcTween = function(d, i) {
31464
31509
  try {
31465
- let interpolate2 = interpolate$4(
31466
- { endAngle: 0 },
31467
- { endAngle: scale2(Math.abs(d.data[0].value)) }
31468
- );
31469
- return (t) => arc2(
31470
- {
31471
- ...d,
31472
- endAngle: interpolate2(t)
31473
- },
31474
- i
31475
- );
31510
+ const interpolate2 = interpolate$4(0, scale2(Math.abs(d.data[0].value)));
31511
+ return (t) => animArc({ ...d, endAngle: interpolate2(t) }, i);
31476
31512
  } catch (error) {
31477
31513
  logError("RadialBarChart.tsx", "arcTween", error);
31478
31514
  }
@@ -31535,7 +31571,7 @@ const RadialBarChart = ({
31535
31571
  );
31536
31572
  const numArcs = keys.length;
31537
31573
  const arcWidth = (chartRadius - arcMinRadius - numArcs * arcPadding) / numArcs;
31538
- let arc2 = arc$1().innerRadius((d, i) => getInnerRadius(i)).outerRadius((d, i) => getOuterRadius(i)).startAngle(0).endAngle((d) => scale2(Math.abs(d.data[0].value)));
31574
+ let animArc = arc$1().innerRadius((_d, i) => getInnerRadius(i)).outerRadius((_d, i) => getOuterRadius(i)).startAngle(0).endAngle((d) => d.endAngle);
31539
31575
  let dummyArc = arc$1().innerRadius((d, i) => getInnerRadius(i)).outerRadius((d, i) => getOuterRadius(i)).startAngle(0).endAngle(degToRad(360));
31540
31576
  let radialAxis = svg2.append("g").attr("class", "r axis").selectAll("g").data(ChartData).enter().append("g");
31541
31577
  if (chartFormatOptions.plotArea.axialGrid) {
@@ -31585,7 +31621,7 @@ const RadialBarChart = ({
31585
31621
  "visibility",
31586
31622
  chartFormatOptions.plotArea.axialAxis ? "visible" : "hidden"
31587
31623
  );
31588
- let arcs = svg2.attr("class", "data").selectAll("path").data(ChartData).enter().append("path").attr("class", "parentGroup").attr("hoverId", (d) => d.data[0].legend.replaceAll(" ", "-")).style("fill", (d, i) => d.properties.color).on("mousemove", (event2, d) => {
31624
+ let arcs = svg2.attr("class", "data").selectAll("path").data(ChartData).enter().append("path").attr("class", "parentGroup").attr("hoverId", (d) => d.data[0].legend.replaceAll(" ", "-")).attr("fill", (d) => d.properties.color).attr("d", (d, i) => animArc({ ...d, endAngle: 0 }, i)).on("mousemove", (event2, d) => {
31589
31625
  showTooltipOnMouseMove(
31590
31626
  [
31591
31627
  {
@@ -31609,7 +31645,11 @@ const RadialBarChart = ({
31609
31645
  }).on("mouseout", () => {
31610
31646
  hideTooltipOnMouseOut();
31611
31647
  });
31612
- arcs.transition().duration(chartFormatOptions.animation.animationEnabled ? chartFormatOptions.animation.animationDuration : 0).ease(effectsMap[chartFormatOptions.animation.animationEffect]).attrTween("d", arcTween);
31648
+ if (chartFormatOptions.animation.animationEnabled) {
31649
+ arcs.transition().duration(chartFormatOptions.animation.animationDuration).ease(effectsMap[chartFormatOptions.animation.animationEffect]).attrTween("d", arcTween);
31650
+ } else {
31651
+ arcs.attr("d", (d, i) => animArc({ ...d, endAngle: scale2(Math.abs(d.data[0].value)) }, i));
31652
+ }
31613
31653
  if (chartFormatOptions.plotArea.dataLabels) {
31614
31654
  const labelsData = getModifiedDataForLabels(ChartData);
31615
31655
  svg2.selectAll(".arc-label-" + chartId).data(labelsData).enter().append("text").attr("class", "arc-label-" + chartId).attr("class", "parentGroup").attr("text-anchor", "start").attr("dy", (d, i) => (getOuterRadius(d.index ?? i) - getInnerRadius(d.index ?? i)) / 1.75).append("textPath").attr("xlink:href", (d, i) => `#arc-path-${d.index ?? i}-` + chartId).style("startOffset", "50%").attr("hoverId", (d) => d.legend.replaceAll(" ", "-")).text(
@@ -31656,7 +31696,7 @@ const RadialBarChart = ({
31656
31696
  hideTooltipOnMouseOut();
31657
31697
  });
31658
31698
  arcs.each((d, i) => {
31659
- svg2.append("path").attr("id", `arc-path-${i}-` + chartId).attr("d", dummyArc(d, i)).style("fill", "none").style("stroke", "none");
31699
+ svg2.append("path").attr("id", `arc-path-${i}-` + chartId).attr("d", dummyArc(d, i)).attr("fill", "none").attr("stroke", "none");
31660
31700
  });
31661
31701
  }
31662
31702
  } catch (error) {
@@ -58061,7 +58101,7 @@ function mapFormatOptionsToChartJS(formatOptions, chartType, hasSecondaryAxis =
58061
58101
  if (isHorizontal) {
58062
58102
  opts.scales = {
58063
58103
  x: { ...yScaleOptions, position: "bottom" },
58064
- y: { ...xScaleOptions, position: "left" }
58104
+ y: { ...xScaleOptions, position: "left", reverse: true }
58065
58105
  };
58066
58106
  if (opts.scales.x.title) {
58067
58107
  opts.scales.x.title.text = formatOptions.yAxisTitle?.yAxisTitleText ?? "Measure";
@@ -73511,7 +73551,7 @@ const CJSPieChart = ({
73511
73551
  formatOptions,
73512
73552
  clientWidth,
73513
73553
  clientHeight,
73514
- colorBank = CJS_DEFAULT_COLORS
73554
+ colorBank
73515
73555
  }) => {
73516
73556
  const chartData = useMemo(
73517
73557
  () => transformToChartJSData(data, "pie", formatOptions, colorBank),
@@ -11297,7 +11297,13 @@
11297
11297
  annotationBoxVisibility: [],
11298
11298
  annotationHideZeroValues: true,
11299
11299
  annotationShowHiddenValues: true,
11300
- annotationSetLabelColor: "1"
11300
+ annotationSetLabelColor: "1",
11301
+ annotationRangeFilter: {
11302
+ enabled: false,
11303
+ condition: "lt",
11304
+ minVal: 0,
11305
+ maxVal: 100
11306
+ }
11301
11307
  },
11302
11308
  total: {
11303
11309
  totalVisibility: false,
@@ -13137,6 +13143,25 @@
13137
13143
  // end (label)
13138
13144
  ];
13139
13145
  }
13146
+ function applyAnnotationRangeFilter(annotationsList, formatOptions, getMeasure) {
13147
+ if (!formatOptions.annotation.annotationRangeFilter?.enabled) return annotationsList;
13148
+ const { condition, minVal, maxVal } = formatOptions.annotation.annotationRangeFilter;
13149
+ return annotationsList.filter((item) => {
13150
+ const measure = getMeasure(item);
13151
+ switch (condition) {
13152
+ case "lt":
13153
+ return measure < maxVal;
13154
+ case "gt":
13155
+ return measure > minVal;
13156
+ case "in":
13157
+ return measure >= minVal && measure <= maxVal;
13158
+ case "not-in":
13159
+ return measure < minVal || measure > maxVal;
13160
+ default:
13161
+ return true;
13162
+ }
13163
+ });
13164
+ }
13140
13165
  function commonAnnotations(chartData, xScale, yScaleLeft, yScaleRight, margin, d3Annotation2, labelExcludeList, individualLabelColor, formatOptions, chartType, height, width, innerWidth2, dimensionList, innerHeight2, widgetId, svg, onDataLabelCoordinatesChange, xScaleForLegends, columnWidth, isReportEditable, isSensitivityChart, barChart, isAATornado) {
13141
13166
  try {
13142
13167
  const isTornadoChart = chartType === chartTypes.TornadoChart;
@@ -13400,6 +13425,11 @@
13400
13425
  (d) => barChart ? d.data.x.measure !== 0 : d.data.y.measure !== 0
13401
13426
  );
13402
13427
  }
13428
+ annotationsList = applyAnnotationRangeFilter(
13429
+ annotationsList,
13430
+ formatOptions,
13431
+ (d) => barChart ? d.data.x.measure : d.data.y.measure
13432
+ );
13403
13433
  if (oldAnnotationList.length === 0) {
13404
13434
  oldAnnotationList = annotationsList;
13405
13435
  oldMap = new Map(
@@ -13948,6 +13978,11 @@
13948
13978
  if (formatOptions.annotation.annotationHideZeroValues) {
13949
13979
  annotationsList = annotationsList.filter((d) => d.data.y !== 0);
13950
13980
  }
13981
+ annotationsList = applyAnnotationRangeFilter(
13982
+ annotationsList,
13983
+ formatOptions,
13984
+ (d) => d.data.y
13985
+ );
13951
13986
  if (oldAnnotationList.length === 0) {
13952
13987
  oldAnnotationList = annotationsList;
13953
13988
  oldMap = new Map(
@@ -15404,6 +15439,11 @@
15404
15439
  // ?
15405
15440
  annotationsList.push(singleAnnotation);
15406
15441
  });
15442
+ annotationsList = applyAnnotationRangeFilter(
15443
+ annotationsList,
15444
+ formatOptions,
15445
+ (d) => barChart ? d.data.x : d.data.y
15446
+ );
15407
15447
  if (oldAnnotationList.length === 0) {
15408
15448
  oldAnnotationList = annotationsList;
15409
15449
  oldMap = new Map(
@@ -21480,6 +21520,11 @@
21480
21520
  let AnnotationsList = chartData.filter((d) => d.x1 - d.x0 > 1e-4).map(createAnnotation);
21481
21521
  const visibleFilter = (d) => (d.data.y?.value ?? 0) !== 0;
21482
21522
  AnnotationsList = AnnotationsList.filter(visibleFilter);
21523
+ AnnotationsList = applyAnnotationRangeFilter(
21524
+ AnnotationsList,
21525
+ formatOptions,
21526
+ (d) => d.data.y.value
21527
+ );
21483
21528
  let oldMap = new Map(
21484
21529
  oldAnnotationList.map((d) => [
21485
21530
  d.data?.x?.legend,
@@ -31465,17 +31510,8 @@
31465
31510
  try {
31466
31511
  let arcTween = function(d, i) {
31467
31512
  try {
31468
- let interpolate2 = interpolate$4(
31469
- { endAngle: 0 },
31470
- { endAngle: scale2(Math.abs(d.data[0].value)) }
31471
- );
31472
- return (t) => arc2(
31473
- {
31474
- ...d,
31475
- endAngle: interpolate2(t)
31476
- },
31477
- i
31478
- );
31513
+ const interpolate2 = interpolate$4(0, scale2(Math.abs(d.data[0].value)));
31514
+ return (t) => animArc({ ...d, endAngle: interpolate2(t) }, i);
31479
31515
  } catch (error) {
31480
31516
  logError("RadialBarChart.tsx", "arcTween", error);
31481
31517
  }
@@ -31538,7 +31574,7 @@
31538
31574
  );
31539
31575
  const numArcs = keys.length;
31540
31576
  const arcWidth = (chartRadius - arcMinRadius - numArcs * arcPadding) / numArcs;
31541
- let arc2 = arc$1().innerRadius((d, i) => getInnerRadius(i)).outerRadius((d, i) => getOuterRadius(i)).startAngle(0).endAngle((d) => scale2(Math.abs(d.data[0].value)));
31577
+ let animArc = arc$1().innerRadius((_d, i) => getInnerRadius(i)).outerRadius((_d, i) => getOuterRadius(i)).startAngle(0).endAngle((d) => d.endAngle);
31542
31578
  let dummyArc = arc$1().innerRadius((d, i) => getInnerRadius(i)).outerRadius((d, i) => getOuterRadius(i)).startAngle(0).endAngle(degToRad(360));
31543
31579
  let radialAxis = svg2.append("g").attr("class", "r axis").selectAll("g").data(ChartData).enter().append("g");
31544
31580
  if (chartFormatOptions.plotArea.axialGrid) {
@@ -31588,7 +31624,7 @@
31588
31624
  "visibility",
31589
31625
  chartFormatOptions.plotArea.axialAxis ? "visible" : "hidden"
31590
31626
  );
31591
- let arcs = svg2.attr("class", "data").selectAll("path").data(ChartData).enter().append("path").attr("class", "parentGroup").attr("hoverId", (d) => d.data[0].legend.replaceAll(" ", "-")).style("fill", (d, i) => d.properties.color).on("mousemove", (event2, d) => {
31627
+ let arcs = svg2.attr("class", "data").selectAll("path").data(ChartData).enter().append("path").attr("class", "parentGroup").attr("hoverId", (d) => d.data[0].legend.replaceAll(" ", "-")).attr("fill", (d) => d.properties.color).attr("d", (d, i) => animArc({ ...d, endAngle: 0 }, i)).on("mousemove", (event2, d) => {
31592
31628
  showTooltipOnMouseMove(
31593
31629
  [
31594
31630
  {
@@ -31612,7 +31648,11 @@
31612
31648
  }).on("mouseout", () => {
31613
31649
  hideTooltipOnMouseOut();
31614
31650
  });
31615
- arcs.transition().duration(chartFormatOptions.animation.animationEnabled ? chartFormatOptions.animation.animationDuration : 0).ease(effectsMap[chartFormatOptions.animation.animationEffect]).attrTween("d", arcTween);
31651
+ if (chartFormatOptions.animation.animationEnabled) {
31652
+ arcs.transition().duration(chartFormatOptions.animation.animationDuration).ease(effectsMap[chartFormatOptions.animation.animationEffect]).attrTween("d", arcTween);
31653
+ } else {
31654
+ arcs.attr("d", (d, i) => animArc({ ...d, endAngle: scale2(Math.abs(d.data[0].value)) }, i));
31655
+ }
31616
31656
  if (chartFormatOptions.plotArea.dataLabels) {
31617
31657
  const labelsData = getModifiedDataForLabels(ChartData);
31618
31658
  svg2.selectAll(".arc-label-" + chartId).data(labelsData).enter().append("text").attr("class", "arc-label-" + chartId).attr("class", "parentGroup").attr("text-anchor", "start").attr("dy", (d, i) => (getOuterRadius(d.index ?? i) - getInnerRadius(d.index ?? i)) / 1.75).append("textPath").attr("xlink:href", (d, i) => `#arc-path-${d.index ?? i}-` + chartId).style("startOffset", "50%").attr("hoverId", (d) => d.legend.replaceAll(" ", "-")).text(
@@ -31659,7 +31699,7 @@
31659
31699
  hideTooltipOnMouseOut();
31660
31700
  });
31661
31701
  arcs.each((d, i) => {
31662
- svg2.append("path").attr("id", `arc-path-${i}-` + chartId).attr("d", dummyArc(d, i)).style("fill", "none").style("stroke", "none");
31702
+ svg2.append("path").attr("id", `arc-path-${i}-` + chartId).attr("d", dummyArc(d, i)).attr("fill", "none").attr("stroke", "none");
31663
31703
  });
31664
31704
  }
31665
31705
  } catch (error) {
@@ -58064,7 +58104,7 @@
58064
58104
  if (isHorizontal) {
58065
58105
  opts.scales = {
58066
58106
  x: { ...yScaleOptions, position: "bottom" },
58067
- y: { ...xScaleOptions, position: "left" }
58107
+ y: { ...xScaleOptions, position: "left", reverse: true }
58068
58108
  };
58069
58109
  if (opts.scales.x.title) {
58070
58110
  opts.scales.x.title.text = formatOptions.yAxisTitle?.yAxisTitleText ?? "Measure";
@@ -73514,7 +73554,7 @@ ${formattedValue}` : formattedValue;
73514
73554
  formatOptions,
73515
73555
  clientWidth,
73516
73556
  clientHeight,
73517
- colorBank = CJS_DEFAULT_COLORS
73557
+ colorBank
73518
73558
  }) => {
73519
73559
  const chartData = require$$0$1.useMemo(
73520
73560
  () => transformToChartJSData(data, "pie", formatOptions, colorBank),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pace-chart-lib",
3
- "version": "1.0.58",
3
+ "version": "1.0.60",
4
4
  "description": "A simple React + Vite + TS UI library with a Button using custom fonts via SCSS.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSAreaChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- /** When true, stacks area datasets on the Y-axis */
9
- isChartStacked?: boolean;
10
- /** Active theme colour bank from the host application. Falls back to default palette. */
11
- colorBank?: string[];
12
- }
13
- /**
14
- * Chart.js area chart.
15
- * Built on the line type with fill: true and a semi-transparent background.
16
- */
17
- declare const CJSAreaChart: React.FC<ICJSAreaChartProps>;
18
- export default CJSAreaChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSBubbleChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js bubble chart.
13
- * Uses TDataPoint.markerSize (or properties.markerSize) as bubble radius.
14
- */
15
- declare const CJSBubbleChart: React.FC<ICJSBubbleChartProps>;
16
- export default CJSBubbleChart;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSColumnChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- /** When true renders a stacked bar chart */
9
- isChartStacked?: boolean;
10
- /** Active theme colour bank from the host application. Falls back to default palette. */
11
- colorBank?: string[];
12
- }
13
- /**
14
- * Chart.js vertical bar chart.
15
- * Accepts the same TData / formatOptions props used throughout the library.
16
- */
17
- declare const CJSColumnChart: React.FC<ICJSColumnChartProps>;
18
- export default CJSColumnChart;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSDonutChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js doughnut (donut) chart.
13
- * The inner radius cutout is derived from formatOptions.plotArea.innerRadius (0–100).
14
- * Segment colours are derived from the active colorBank so they match
15
- * the host application's selected theme.
16
- */
17
- declare const CJSDonutChart: React.FC<ICJSDonutChartProps>;
18
- export default CJSDonutChart;
@@ -1,17 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSHorizontalBarChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- isChartStacked?: boolean;
9
- /** Active theme colour bank from the host application. Falls back to default palette. */
10
- colorBank?: string[];
11
- }
12
- /**
13
- * Chart.js horizontal bar chart.
14
- * Chart.js v4 uses indexAxis: "y" on a regular "bar" chart for horizontal bars.
15
- */
16
- declare const CJSHorizontalBarChart: React.FC<ICJSHorizontalBarChartProps>;
17
- export default CJSHorizontalBarChart;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSLineChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- /** When true, stacks line datasets on the Y-axis */
9
- isChartStacked?: boolean;
10
- /** Active theme colour bank from the host application. Falls back to default palette. */
11
- colorBank?: string[];
12
- }
13
- /**
14
- * Chart.js line chart.
15
- * Supports secondary Y axis, per-series line styles, and optional Y-axis stacking.
16
- */
17
- declare const CJSLineChart: React.FC<ICJSLineChartProps>;
18
- export default CJSLineChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSNormalizedStackAreaChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js 100% normalized stacked area chart.
12
- * Values are converted to percentages of the column total before rendering.
13
- * The Y-axis is bounded 0–100 and ticked as whole-number percentages.
14
- */
15
- declare const CJSNormalizedStackAreaChart: React.FC<ICJSNormalizedStackAreaChartProps>;
16
- export default CJSNormalizedStackAreaChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSNormalizedStackColumnChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js 100% normalized stacked vertical bar chart.
12
- * Values are converted to percentages of the column total before rendering.
13
- * The Y-axis is bounded 0–100 and ticked as whole-number percentages.
14
- */
15
- declare const CJSNormalizedStackColumnChart: React.FC<ICJSNormalizedStackColumnChartProps>;
16
- export default CJSNormalizedStackColumnChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSNormalizedStackHorizontalBarChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js 100% normalized stacked horizontal bar chart.
12
- * Values are converted to percentages of the row total before rendering.
13
- * The X-axis is bounded 0–100 and ticked as whole-number percentages.
14
- */
15
- declare const CJSNormalizedStackHorizontalBarChart: React.FC<ICJSNormalizedStackHorizontalBarChartProps>;
16
- export default CJSNormalizedStackHorizontalBarChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSNormalizedStackLineChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js 100% normalized stacked line chart.
12
- * Values are converted to percentages of the column total before rendering.
13
- * The Y-axis is bounded 0–100 and ticked as whole-number percentages.
14
- */
15
- declare const CJSNormalizedStackLineChart: React.FC<ICJSNormalizedStackLineChartProps>;
16
- export default CJSNormalizedStackLineChart;
@@ -1,22 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSPieChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js pie chart.
13
- *
14
- * Data mapping:
15
- * - Multiple series → each series becomes one dataset (multi-ring pie)
16
- * - Most common case: single series whose data points are the pie slices
17
- *
18
- * Segment colours are derived from the active colorBank so they match
19
- * the host application's selected theme.
20
- */
21
- declare const CJSPieChart: React.FC<ICJSPieChartProps>;
22
- export default CJSPieChart;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSPolarAreaChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js polar area chart.
13
- * Segments are sized by value (area). Same data shape as pie.
14
- * Segment colours are derived from the active colorBank so they match
15
- * the host application's selected theme.
16
- */
17
- declare const CJSPolarAreaChart: React.FC<ICJSPolarAreaChartProps>;
18
- export default CJSPolarAreaChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSRadarChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js radar chart.
13
- * Labels are the dimension values; each series becomes one polygon.
14
- */
15
- declare const CJSRadarChart: React.FC<ICJSRadarChartProps>;
16
- export default CJSRadarChart;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSScatterChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth: number;
7
- clientHeight: number;
8
- /** Active theme colour bank from the host application. Falls back to default palette. */
9
- colorBank?: string[];
10
- }
11
- /**
12
- * Chart.js scatter chart.
13
- * Data points use TDataPoint[0] (or parsed dimension) as X and value as Y.
14
- */
15
- declare const CJSScatterChart: React.FC<ICJSScatterChartProps>;
16
- export default CJSScatterChart;
@@ -1,15 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSStackAreaChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js stacked area chart.
12
- * Delegates to CJSAreaChart with isChartStacked always enabled.
13
- */
14
- declare const CJSStackAreaChart: React.FC<ICJSStackAreaChartProps>;
15
- export default CJSStackAreaChart;
@@ -1,15 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSStackColumnChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js stacked vertical bar (column) chart.
12
- * Delegates to CJSColumnChart with isChartStacked always enabled.
13
- */
14
- declare const CJSStackColumnChart: React.FC<ICJSStackColumnChartProps>;
15
- export default CJSStackColumnChart;
@@ -1,15 +0,0 @@
1
- import React from "react";
2
- import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
3
- interface ICJSStackHorizontalBarChartProps {
4
- data: TData;
5
- formatOptions: TDefaultChartFormatOptionsType;
6
- clientWidth?: number;
7
- clientHeight?: number;
8
- colorBank?: string[];
9
- }
10
- /**
11
- * Chart.js stacked horizontal bar chart.
12
- * Delegates to CJSHorizontalBarChart with isChartStacked always enabled.
13
- */
14
- declare const CJSStackHorizontalBarChart: React.FC<ICJSStackHorizontalBarChartProps>;
15
- export default CJSStackHorizontalBarChart;