@rowsncolumns/charts 28.1.5 → 28.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AA4DA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmQrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAqEnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBAmzGjB,CAAC"}
1
+ {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmQrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAqEnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBAwzGjB,CAAC"}
@@ -958,7 +958,7 @@ var BasicChart = function (_a) {
958
958
  ]);
959
959
  seriesColorAt_1 = function (index) {
960
960
  var _a, _b, _c;
961
- return (_c = (_b = (_a = spec.series) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.color) !== null && _c !== void 0 ? _c : threeDPalette_1[index % threeDPalette_1.length];
961
+ return (_c = (_b = (_a = spec.series) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.color) !== null && _c !== void 0 ? _c : (0, utils_1.chartPaletteColorAt)(threeDPalette_1, index);
962
962
  };
963
963
  // Entering 3-D from a 2-D render: the cartesian option doesn't
964
964
  // merge into a grid3D one, so re-initialize the echarts instance
@@ -1364,7 +1364,7 @@ var BasicChart = function (_a) {
1364
1364
  grid: stockGrid,
1365
1365
  tooltip: { trigger: "axis" },
1366
1366
  axisPointer: stockAxisPointer,
1367
- series: tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(lineSeries.map(function (s, i) { return (tslib_1.__assign(tslib_1.__assign({ type: "line", name: s.name, data: s.values, showSymbol: false, itemStyle: { color: stockColors_1[i % stockColors_1.length] }, lineStyle: { color: stockColors_1[i % stockColors_1.length] } }, (stockSeriesLabelFor_1(s.role)
1367
+ series: tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(lineSeries.map(function (s, i) { return (tslib_1.__assign(tslib_1.__assign({ type: "line", name: s.name, data: s.values, showSymbol: false, itemStyle: { color: (0, utils_1.chartPaletteColorAt)(stockColors_1, i) }, lineStyle: { color: (0, utils_1.chartPaletteColorAt)(stockColors_1, i) } }, (stockSeriesLabelFor_1(s.role)
1368
1368
  ? { label: stockSeriesLabelFor_1(s.role) }
1369
1369
  : {})), ((0, axis_number_format_1.tooltipValueFormatter)(stockFormatFor_1(s.role))
1370
1370
  ? {
@@ -1624,7 +1624,7 @@ var BasicChart = function (_a) {
1624
1624
  theme.themeColors.accent6,
1625
1625
  ]);
1626
1626
  paletteColorAt = function (index) {
1627
- return seriesPalette[index % seriesPalette.length];
1627
+ return (0, utils_1.chartPaletteColorAt)(seriesPalette, index);
1628
1628
  };
1629
1629
  _loop_1 = function (specSeriesIndex, series) {
1630
1630
  var dataLabel, _140, _141, effectiveChartType, lineLike, domainSources, pieDomainLabels, piePointOffset, data, seriesEchartsType, seriesStyleAttrs, seriesEntry, isBarOrColumn, seriesAny, markerSymbol, wantsMarkers, isolated, marked, isolated_1, isolated_1_1, i, gradientArgs, gradient, overrides_2, _142, _143, dp, fallback_1, overrides_3, _144, _145, dp, positiveColor_1, negativeColor_1;
@@ -1904,7 +1904,7 @@ var BasicChart = function (_a) {
1904
1904
  theme.themeColors.accent6,
1905
1905
  ]);
1906
1906
  paletteAt_1 = function (index) {
1907
- return ofPiePalette_1[index % ofPiePalette_1.length];
1907
+ return (0, utils_1.chartPaletteColorAt)(ofPiePalette_1, index);
1908
1908
  };
1909
1909
  chartSeries.push({
1910
1910
  type: "pie",
@@ -2663,14 +2663,17 @@ var BasicChart = function (_a) {
2663
2663
  color: textColor,
2664
2664
  },
2665
2665
  },
2666
- color: (0, chart_styles_1.getChartPalette)(chart.spec, [
2666
+ // Unrolled through Excel's luminance variations: echarts cycles this
2667
+ // list over pie slices and over series, and the seventh must not
2668
+ // repeat the first (rowsncolumns/spreadsheet#1045).
2669
+ color: (0, utils_1.expandChartPalette)((0, chart_styles_1.getChartPalette)(chart.spec, [
2667
2670
  theme.themeColors.accent1,
2668
2671
  theme.themeColors.accent2,
2669
2672
  theme.themeColors.accent3,
2670
2673
  theme.themeColors.accent4,
2671
2674
  theme.themeColors.accent5,
2672
2675
  theme.themeColors.accent6,
2673
- ]),
2676
+ ])),
2674
2677
  // Excel's Format Chart Area fill; `transparent` (echarts' own
2675
2678
  // default) so clearing the fill undoes an earlier setOption.
2676
2679
  backgroundColor: (_f = chart.spec.backgroundColor) !== null && _f !== void 0 ? _f : "transparent",
@@ -1 +1 @@
1
- {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../../plotly/basic-chart/basic-chart.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgXxD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AA0FnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBA4zEjB,CAAC"}
1
+ {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../../plotly/basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgXxD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AA0FnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBA8zEjB,CAAC"}
@@ -552,7 +552,7 @@ var BasicChart = function (_a) {
552
552
  });
553
553
  var yValues = entry.points.map(function (point) { return point.value[1]; });
554
554
  var labelValuesForSeries = entry.points.map(function (point) { return point.name; });
555
- var seriesColor = (_b = (_a = spec.series[index]) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : palette_1[index % palette_1.length];
555
+ var seriesColor = (_b = (_a = spec.series[index]) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : (0, utils_1.chartPaletteColorAt)(palette_1, index);
556
556
  var perSeriesMarker = (_d = (_c = spec.series[index]) === null || _c === void 0 ? void 0 : _c.marker) !== null && _d !== void 0 ? _d : undefined;
557
557
  if (isScatter_1) {
558
558
  // Per-series marker.symbol = "none" → pure line (no markers).
@@ -1113,7 +1113,7 @@ var BasicChart = function (_a) {
1113
1113
  // then theme palette. Plotly cannot paint the real gradient, so the
1114
1114
  // median stop stands in for the whole ramp.
1115
1115
  var effectiveColor = (_g = (_f = options === null || options === void 0 ? void 0 : options.gradientColor) !== null && _f !== void 0 ? _f : seriesColor) !== null && _g !== void 0 ? _g : ((options === null || options === void 0 ? void 0 : options.seriesIndex) !== undefined
1116
- ? themeColorPalette[options.seriesIndex % themeColorPalette.length]
1116
+ ? (0, utils_1.chartPaletteColorAt)(themeColorPalette, options.seriesIndex)
1117
1117
  : undefined);
1118
1118
  // Per-data-point color overrides — Gantt charts use `<c:dPt>` to
1119
1119
  // give every task its own color. Build a per-point color array
@@ -1145,7 +1145,7 @@ var BasicChart = function (_a) {
1145
1145
  // with (or the series' own colour when one was authored).
1146
1146
  var existing_1 = Array.isArray((_h = target.marker) === null || _h === void 0 ? void 0 : _h.colors)
1147
1147
  ? target.marker.colors
1148
- : themeColorPalette;
1148
+ : (0, utils_1.expandChartPalette)(themeColorPalette);
1149
1149
  var labelCount = Array.isArray(target.labels)
1150
1150
  ? target.labels.length
1151
1151
  : 0;
@@ -1514,7 +1514,7 @@ var BasicChart = function (_a) {
1514
1514
  secondScale = (0, of_pie_1.clampSecondPieSize)(spec.secondPieSize) / 100;
1515
1515
  halfAngle = (0, of_pie_1.otherSliceHalfAngle)(otherTotal, total);
1516
1516
  paletteAt_1 = function (index) {
1517
- return themeColorPalette[index % themeColorPalette.length];
1517
+ return (0, utils_1.chartPaletteColorAt)(themeColorPalette, index);
1518
1518
  };
1519
1519
  MAIN_DOMAIN_X = [0, 0.55];
1520
1520
  CY = 0.5;
@@ -1632,7 +1632,9 @@ var BasicChart = function (_a) {
1632
1632
  labels: pieData.labels,
1633
1633
  name: dataLabel,
1634
1634
  marker: {
1635
- colors: themeColorPalette,
1635
+ // Unrolled through Excel's luminance variations so slice 7 does
1636
+ // not repeat slice 1 (rowsncolumns/spreadsheet#1045).
1637
+ colors: (0, utils_1.expandChartPalette)(themeColorPalette),
1636
1638
  },
1637
1639
  };
1638
1640
  // Ties the trace back to spec.series for click selection and
@@ -1 +1 @@
1
- {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AA4DA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmQrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAqEnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBAmzGjB,CAAC"}
1
+ {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmQrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAqEnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBAwzGjB,CAAC"}
@@ -3,7 +3,7 @@ import { getStringifiedColor, useFocusSheet, useRegisterChartActions, useSetSele
3
3
  import { useSubscribeToMultipleRanges } from "@rowsncolumns/spreadsheet-state";
4
4
  import { createDownloadableFile } from "@rowsncolumns/toolkit";
5
5
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownRightSlot, IconButton, useIsomorphicLayoutEffect, useOnVisibilityChange, } from "@rowsncolumns/ui";
6
- import { debug, isAFormula, isNil } from "@rowsncolumns/utils";
6
+ import { chartPaletteColorAt, debug, expandChartPalette, isAFormula, isNil, } from "@rowsncolumns/utils";
7
7
  import { BarChart, BoxplotChart, CandlestickChart, CustomChart, FunnelChart, HeatmapChart, LineChart, PieChart, RadarChart as EchartsRadarChart, ScatterChart, SunburstChart, TreemapChart as EchartsTreemapChart, } from "echarts/charts";
8
8
  import { DatasetComponent, GridComponent, LegendComponent, RadarComponent, TitleComponent, TooltipComponent, VisualMapComponent, } from "echarts/components";
9
9
  import * as echarts from "echarts/core";
@@ -942,7 +942,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
942
942
  theme.themeColors.accent6,
943
943
  ]);
944
944
  const seriesColorAt = (index) => spec.series?.[index]?.color ??
945
- threeDPalette[index % threeDPalette.length];
945
+ chartPaletteColorAt(threeDPalette, index);
946
946
  // Entering 3-D from a 2-D render: the cartesian option doesn't
947
947
  // merge into a grid3D one, so re-initialize the echarts instance
948
948
  // from scratch (theme options are re-applied after setOption).
@@ -1402,8 +1402,8 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1402
1402
  name: s.name,
1403
1403
  data: s.values,
1404
1404
  showSymbol: false,
1405
- itemStyle: { color: stockColors[i % stockColors.length] },
1406
- lineStyle: { color: stockColors[i % stockColors.length] },
1405
+ itemStyle: { color: chartPaletteColorAt(stockColors, i) },
1406
+ lineStyle: { color: chartPaletteColorAt(stockColors, i) },
1407
1407
  ...(stockSeriesLabelFor(s.role)
1408
1408
  ? { label: stockSeriesLabelFor(s.role) }
1409
1409
  : {}),
@@ -1688,7 +1688,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1688
1688
  theme.themeColors.accent5,
1689
1689
  theme.themeColors.accent6,
1690
1690
  ]);
1691
- const paletteColorAt = (index) => seriesPalette[index % seriesPalette.length];
1691
+ const paletteColorAt = (index) => chartPaletteColorAt(seriesPalette, index);
1692
1692
  for (const [specSeriesIndex, series] of (spec.series ?? []).entries()) {
1693
1693
  const dataLabel = !isNil(series.dataLabel) && isAFormula(series.dataLabel)
1694
1694
  ? coerceCalculatedLabel(await onRequestCalculate(series.dataLabel, position.sheetId ?? sheetId, position.overlayPosition.anchorCell.rowIndex, position.overlayPosition.anchorCell.columnIndex))
@@ -1969,7 +1969,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1969
1969
  theme.themeColors.accent5,
1970
1970
  theme.themeColors.accent6,
1971
1971
  ]);
1972
- const paletteAt = (index) => ofPiePalette[index % ofPiePalette.length];
1972
+ const paletteAt = (index) => chartPaletteColorAt(ofPiePalette, index);
1973
1973
  chartSeries.push({
1974
1974
  type: "pie",
1975
1975
  name: seriesEntry?.dataLabel ?? "",
@@ -2782,14 +2782,17 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
2782
2782
  color: textColor,
2783
2783
  },
2784
2784
  },
2785
- color: getChartPalette(chart.spec, [
2785
+ // Unrolled through Excel's luminance variations: echarts cycles this
2786
+ // list over pie slices and over series, and the seventh must not
2787
+ // repeat the first (rowsncolumns/spreadsheet#1045).
2788
+ color: expandChartPalette(getChartPalette(chart.spec, [
2786
2789
  theme.themeColors.accent1,
2787
2790
  theme.themeColors.accent2,
2788
2791
  theme.themeColors.accent3,
2789
2792
  theme.themeColors.accent4,
2790
2793
  theme.themeColors.accent5,
2791
2794
  theme.themeColors.accent6,
2792
- ]),
2795
+ ])),
2793
2796
  // Excel's Format Chart Area fill; `transparent` (echarts' own
2794
2797
  // default) so clearing the fill undoes an earlier setOption.
2795
2798
  backgroundColor: chart.spec.backgroundColor ?? "transparent",
@@ -1 +1 @@
1
- {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../../plotly/basic-chart/basic-chart.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgXxD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AA0FnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBA4zEjB,CAAC"}
1
+ {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../../plotly/basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgXxD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AA0FnD,eAAO,MAAM,UAAU,GAAI,wOAiBxB,eAAe,sBA8zEjB,CAAC"}
@@ -2,7 +2,7 @@ import { DotsVerticalIcon } from "@rowsncolumns/icons";
2
2
  import { getStringifiedColor, useFocusSheet, useRegisterChartActions, useSetSelectedChartSeries, } from "@rowsncolumns/spreadsheet";
3
3
  import { useSubscribeToSheet } from "@rowsncolumns/spreadsheet-state";
4
4
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuPortal, DropdownMenuTrigger, IconButton, useIsomorphicLayoutEffect, useOnVisibilityChange, } from "@rowsncolumns/ui";
5
- import { debug, isAFormula, isNil, ssfFormat } from "@rowsncolumns/utils";
5
+ import { chartPaletteColorAt, debug, expandChartPalette, isAFormula, isNil, ssfFormat, } from "@rowsncolumns/utils";
6
6
  import React, { useCallback, useMemo, useRef, useState } from "react";
7
7
  import { aggregateSeriesByDomain, getDomainValuesForAxis, sanitizeDomainValues, shouldAggregateSeries, } from "../../utils/aggregation";
8
8
  import { formatAxisValue, numberFormatToPlotlyTicks, resolveSeriesNumberFormats, resolveValueAxisNumberFormat, valueAxisNameGap, } from "../../utils/axis-number-format";
@@ -525,7 +525,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
525
525
  : point.value[0]);
526
526
  const yValues = entry.points.map((point) => point.value[1]);
527
527
  const labelValuesForSeries = entry.points.map((point) => point.name);
528
- const seriesColor = spec.series[index]?.color ?? palette[index % palette.length];
528
+ const seriesColor = spec.series[index]?.color ?? chartPaletteColorAt(palette, index);
529
529
  const perSeriesMarker = spec.series[index]?.marker ?? undefined;
530
530
  if (isScatter) {
531
531
  // Per-series marker.symbol = "none" → pure line (no markers).
@@ -1144,7 +1144,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1144
1144
  const effectiveColor = options?.gradientColor ??
1145
1145
  seriesColor ??
1146
1146
  (options?.seriesIndex !== undefined
1147
- ? themeColorPalette[options.seriesIndex % themeColorPalette.length]
1147
+ ? chartPaletteColorAt(themeColorPalette, options.seriesIndex)
1148
1148
  : undefined);
1149
1149
  // Per-data-point color overrides — Gantt charts use `<c:dPt>` to
1150
1150
  // give every task its own color. Build a per-point color array
@@ -1166,7 +1166,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1166
1166
  // with (or the series' own colour when one was authored).
1167
1167
  const existing = Array.isArray(target.marker?.colors)
1168
1168
  ? target.marker.colors
1169
- : themeColorPalette;
1169
+ : expandChartPalette(themeColorPalette);
1170
1170
  const labelCount = Array.isArray(target.labels)
1171
1171
  ? target.labels.length
1172
1172
  : 0;
@@ -1584,7 +1584,7 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1584
1584
  const ofPieType = resolveOfPieType(spec.ofPieType);
1585
1585
  const secondScale = clampSecondPieSize(spec.secondPieSize) / 100;
1586
1586
  const halfAngle = otherSliceHalfAngle(otherTotal, total);
1587
- const paletteAt = (index) => themeColorPalette[index % themeColorPalette.length];
1587
+ const paletteAt = (index) => chartPaletteColorAt(themeColorPalette, index);
1588
1588
  // Layout in paper coordinates (0-1 across the plot area
1589
1589
  // inside the margins). Main pie on the left, secondary plot
1590
1590
  // on the right.
@@ -1714,7 +1714,9 @@ export const BasicChart = ({ width, height, chart, theme, isDarkMode, sheetId, r
1714
1714
  labels: pieData.labels,
1715
1715
  name: dataLabel,
1716
1716
  marker: {
1717
- colors: themeColorPalette,
1717
+ // Unrolled through Excel's luminance variations so slice 7 does
1718
+ // not repeat slice 1 (rowsncolumns/spreadsheet#1045).
1719
+ colors: expandChartPalette(themeColorPalette),
1718
1720
  },
1719
1721
  };
1720
1722
  // Ties the trace back to spec.series for click selection and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rowsncolumns/charts",
3
- "version": "28.1.5",
3
+ "version": "28.1.6",
4
4
  "author": "Vinay M",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "./dist/cjs/index.js",
@@ -72,9 +72,9 @@
72
72
  "@rowsncolumns/icons": ">=7.2.33",
73
73
  "@rowsncolumns/spreadsheet": ">=10.4.5",
74
74
  "@rowsncolumns/spreadsheet-state": ">=29.1.7",
75
- "@rowsncolumns/toolkit": ">=24.5.6",
75
+ "@rowsncolumns/toolkit": ">=24.5.7",
76
76
  "@rowsncolumns/ui": ">=16.0.4",
77
- "@rowsncolumns/utils": ">=9.5.4",
77
+ "@rowsncolumns/utils": ">=9.5.5",
78
78
  "@types/react-plotly.js": "^2.6.3",
79
79
  "echarts": "^5.6.0",
80
80
  "formik": "^2.4.6",