@rowsncolumns/toolkit 24.5.8 → 24.5.9
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.
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/charts.js +35 -12
- package/dist/cjs/exporter/xlsx/chart-builder.js +34 -21
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/charts.js +23 -0
- package/dist/esm/exporter/xlsx/chart-builder.js +33 -20
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAGT,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAEhB,UAAU,EACV,UAAU,EACX,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;AAkDnF,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAE,GAAG,EACd,eAAe,CAAC,EAAE,eAAe,EACjC,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA+P/B;AAqJD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,GAC9B,UAAU,GAAG,IAAI,CAgEnB;AA+DD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,GAAG,GACT,yBAAyB,GAAG,SAAS,CAiBvC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,GAAG,GACT,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAezC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,SAAS,CAepE;AAoED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAS9E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAaxD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EAAE,EACvB,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,IAAI,CA6BN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAiB9E;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYrD,CAAC;AAkEF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,YAAY,EAAE,MAAM,GACnB,IAAI,CAuDN;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,GAAG,GAClB,sBAAsB,GAAG,SAAS,CAsBpC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAoBpD;AA0BD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,GAER,KAAK,GACL,QAAQ,GACR,MAAM,GACN,KAAK,GACL,UAAU,GACV,MAAM,GACN,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,CAsFX;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,GAAG,GAEX,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,GACT,YAAY,GACZ,SAAS,CASZ;AAoED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,GAAG,GACZ,MAAM,GAAG,SAAS,CA+CpB;AAyLD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,GAC9B,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1586,6 +1586,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1586
1586
|
var errorBars = extractErrorBars(ser, sheetId, resolveSheetId);
|
|
1587
1587
|
var marker = extractSeriesMarker(ser);
|
|
1588
1588
|
var dataPointColors = extractSeriesDataPointColors(ser);
|
|
1589
|
+
var seriesDataLabels = extractSeriesDataLabels(ser);
|
|
1589
1590
|
var nameRef = getWithFallback(ser, TX_REF_PATHS);
|
|
1590
1591
|
// Per-series category reference — charts whose series plot against
|
|
1591
1592
|
// different category ranges can't be represented by the single
|
|
@@ -1597,9 +1598,9 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1597
1598
|
? resolveSourcesFromRef(serCatRef, sheetId, resolveSheetId)
|
|
1598
1599
|
: [];
|
|
1599
1600
|
orders.push(seriesOrderOf(ser));
|
|
1600
|
-
series.push(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dataLabel: seriesTitle || "Series ".concat(seriesIndex + 1) }, (nameRef ? { dataLabelRef: nameRef } : {})), (categorySources.length ? { categorySources: categorySources } : {})), { color: colorInfo.color }), (colorInfo.noFill ? { noFill: true } : {})), { negativeColor: colorInfo.negativeColor, invertIfNegative: colorInfo.invertIfNegative }), (colorInfo.gradient ? { gradient: colorInfo.gradient } : {})), (container.isXY ? {} : { seriesChartType: seriesChartType })), (useSecondaryAxis ? { useSecondaryAxis: true } : {})), { sources: sources }), (inlineValues && inlineValues.length ? { inlineValues: inlineValues } : {})), (trendlines && trendlines.length ? { trendlines: trendlines } : {})), (errorBars ? { errorBars: errorBars } : {})), (marker ? { marker: marker } : {})), (dataPointColors && dataPointColors.length
|
|
1601
|
+
series.push(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dataLabel: seriesTitle || "Series ".concat(seriesIndex + 1) }, (nameRef ? { dataLabelRef: nameRef } : {})), (categorySources.length ? { categorySources: categorySources } : {})), { color: colorInfo.color }), (colorInfo.noFill ? { noFill: true } : {})), { negativeColor: colorInfo.negativeColor, invertIfNegative: colorInfo.invertIfNegative }), (colorInfo.gradient ? { gradient: colorInfo.gradient } : {})), (container.isXY ? {} : { seriesChartType: seriesChartType })), (useSecondaryAxis ? { useSecondaryAxis: true } : {})), { sources: sources }), (inlineValues && inlineValues.length ? { inlineValues: inlineValues } : {})), (trendlines && trendlines.length ? { trendlines: trendlines } : {})), (errorBars ? { errorBars: errorBars } : {})), (marker ? { marker: marker } : {})), (dataPointColors && dataPointColors.length
|
|
1601
1602
|
? { dataPointColors: dataPointColors }
|
|
1602
|
-
: {})));
|
|
1603
|
+
: {})), (seriesDataLabels ? { dataLabels: seriesDataLabels } : {})));
|
|
1603
1604
|
seriesIndex++;
|
|
1604
1605
|
}
|
|
1605
1606
|
}
|
|
@@ -1653,6 +1654,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1653
1654
|
}
|
|
1654
1655
|
var marker = extractSeriesMarker(ser);
|
|
1655
1656
|
var dataPointColors = extractSeriesDataPointColors(ser);
|
|
1657
|
+
var seriesDataLabels = extractSeriesDataLabels(ser);
|
|
1656
1658
|
var nameRef = getWithFallback(ser, TX_REF_PATHS);
|
|
1657
1659
|
var serCatRef = isXYChart(chartType)
|
|
1658
1660
|
? undefined
|
|
@@ -1661,9 +1663,9 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1661
1663
|
? resolveSourcesFromRef(serCatRef, sheetId, resolveSheetId)
|
|
1662
1664
|
: [];
|
|
1663
1665
|
orders.push(seriesOrderOf(ser));
|
|
1664
|
-
series.push(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dataLabel: seriesTitle || "Series ".concat(index + 1) }, (nameRef ? { dataLabelRef: nameRef } : {})), (categorySources.length ? { categorySources: categorySources } : {})), { color: colorInfo.color }), (colorInfo.noFill ? { noFill: true } : {})), { negativeColor: colorInfo.negativeColor, invertIfNegative: colorInfo.invertIfNegative }), (colorInfo.gradient ? { gradient: colorInfo.gradient } : {})), { sources: sources }), (inlineValues && inlineValues.length ? { inlineValues: inlineValues } : {})), (marker ? { marker: marker } : {})), (dataPointColors && dataPointColors.length
|
|
1666
|
+
series.push(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dataLabel: seriesTitle || "Series ".concat(index + 1) }, (nameRef ? { dataLabelRef: nameRef } : {})), (categorySources.length ? { categorySources: categorySources } : {})), { color: colorInfo.color }), (colorInfo.noFill ? { noFill: true } : {})), { negativeColor: colorInfo.negativeColor, invertIfNegative: colorInfo.invertIfNegative }), (colorInfo.gradient ? { gradient: colorInfo.gradient } : {})), { sources: sources }), (inlineValues && inlineValues.length ? { inlineValues: inlineValues } : {})), (marker ? { marker: marker } : {})), (dataPointColors && dataPointColors.length
|
|
1665
1667
|
? { dataPointColors: dataPointColors }
|
|
1666
|
-
: {})));
|
|
1668
|
+
: {})), (seriesDataLabels ? { dataLabels: seriesDataLabels } : {})));
|
|
1667
1669
|
});
|
|
1668
1670
|
}
|
|
1669
1671
|
}
|
|
@@ -2707,7 +2709,7 @@ var mapDataLabelPosition = function (val) {
|
|
|
2707
2709
|
};
|
|
2708
2710
|
function extractDataLabelsOptions(plotArea, chartType) {
|
|
2709
2711
|
var e_35, _a;
|
|
2710
|
-
var _b, _c, _d, _e
|
|
2712
|
+
var _b, _c, _d, _e;
|
|
2711
2713
|
// Look for <c:dLbls> inside the chartType-specific container. We pick
|
|
2712
2714
|
// the first one we find — chart-level labels apply to all series.
|
|
2713
2715
|
// The 3-D classes (bar3DChart / line3DChart / pie3DChart / area3DChart)
|
|
@@ -2746,27 +2748,48 @@ function extractDataLabelsOptions(plotArea, chartType) {
|
|
|
2746
2748
|
var dLbls = (_e = (_d = (_c = get(container, "c:dLbls")) !== null && _c !== void 0 ? _c : get(container, "dLbls")) !== null && _d !== void 0 ? _d : get(plotArea, "c:dLbls")) !== null && _e !== void 0 ? _e : get(plotArea, "dLbls");
|
|
2747
2749
|
if (!dLbls)
|
|
2748
2750
|
return undefined;
|
|
2751
|
+
return readDataLabelsNode(dLbls);
|
|
2752
|
+
}
|
|
2753
|
+
/**
|
|
2754
|
+
* `<c:ser><c:dLbls>` — this series' own labels, which replace the group's
|
|
2755
|
+
* for it. `<c:delete val="1"/>`, or a node with every `show*` flag off,
|
|
2756
|
+
* turns a labelled group's labels off for the series.
|
|
2757
|
+
*/
|
|
2758
|
+
function extractSeriesDataLabels(ser) {
|
|
2759
|
+
var _a, _b;
|
|
2760
|
+
var dLbls = (_a = get(ser, "c:dLbls")) !== null && _a !== void 0 ? _a : get(ser, "dLbls");
|
|
2761
|
+
if (!dLbls)
|
|
2762
|
+
return undefined;
|
|
2763
|
+
var deleted = readBoolean((_b = get(dLbls, "c:delete.a$.val")) !== null && _b !== void 0 ? _b : get(dLbls, "delete.a$.val"));
|
|
2764
|
+
if (deleted)
|
|
2765
|
+
return { show: false };
|
|
2766
|
+
var options = readDataLabelsNode(dLbls);
|
|
2767
|
+
return (options === null || options === void 0 ? void 0 : options.show) ? options : { show: false };
|
|
2768
|
+
}
|
|
2769
|
+
/** The `ChartDataLabelsOptions` a `<c:dLbls>` node describes. */
|
|
2770
|
+
function readDataLabelsNode(dLbls) {
|
|
2771
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
2749
2772
|
var result = {};
|
|
2750
|
-
var pos = (
|
|
2773
|
+
var pos = (_a = get(dLbls, "c:dLblPos.a$.val")) !== null && _a !== void 0 ? _a : get(dLbls, "dLblPos.a$.val");
|
|
2751
2774
|
var position = mapDataLabelPosition(pos);
|
|
2752
2775
|
if (position)
|
|
2753
2776
|
result.position = position;
|
|
2754
|
-
var showVal = readBoolean((
|
|
2777
|
+
var showVal = readBoolean((_b = get(dLbls, "c:showVal.a$.val")) !== null && _b !== void 0 ? _b : get(dLbls, "showVal.a$.val"));
|
|
2755
2778
|
if (showVal) {
|
|
2756
2779
|
result.show = true;
|
|
2757
2780
|
result.showValue = true;
|
|
2758
2781
|
}
|
|
2759
|
-
var showCat = readBoolean((
|
|
2782
|
+
var showCat = readBoolean((_c = get(dLbls, "c:showCatName.a$.val")) !== null && _c !== void 0 ? _c : get(dLbls, "showCatName.a$.val"));
|
|
2760
2783
|
if (showCat) {
|
|
2761
2784
|
result.show = true;
|
|
2762
2785
|
result.showCategoryName = true;
|
|
2763
2786
|
}
|
|
2764
|
-
var showPct = readBoolean((
|
|
2787
|
+
var showPct = readBoolean((_d = get(dLbls, "c:showPercent.a$.val")) !== null && _d !== void 0 ? _d : get(dLbls, "showPercent.a$.val"));
|
|
2765
2788
|
if (showPct) {
|
|
2766
2789
|
result.show = true;
|
|
2767
2790
|
result.showPercent = true;
|
|
2768
2791
|
}
|
|
2769
|
-
var showSer = readBoolean((
|
|
2792
|
+
var showSer = readBoolean((_e = get(dLbls, "c:showSerName.a$.val")) !== null && _e !== void 0 ? _e : get(dLbls, "showSerName.a$.val"));
|
|
2770
2793
|
if (showSer) {
|
|
2771
2794
|
result.show = true;
|
|
2772
2795
|
result.showSeriesName = true;
|
|
@@ -2775,14 +2798,14 @@ function extractDataLabelsOptions(plotArea, chartType) {
|
|
|
2775
2798
|
if (position && result.show === undefined)
|
|
2776
2799
|
result.show = true;
|
|
2777
2800
|
// <c:txPr> on the dLbls block — affects every label in the chart.
|
|
2778
|
-
var textFormat = extractTextProperties((
|
|
2801
|
+
var textFormat = extractTextProperties((_f = get(dLbls, "c:txPr")) !== null && _f !== void 0 ? _f : get(dLbls, "txPr"));
|
|
2779
2802
|
if (textFormat)
|
|
2780
2803
|
result.textFormat = textFormat;
|
|
2781
2804
|
// <c:numFmt formatCode="…"/> — Excel uses this to render labels as
|
|
2782
2805
|
// currency / percent / etc. (`"$"#,##0`, `0.00%`). Without parsing
|
|
2783
2806
|
// this, the renderer falls back to raw numbers (e.g. `1831` instead
|
|
2784
2807
|
// of `$1,831`).
|
|
2785
|
-
var numFmt = (
|
|
2808
|
+
var numFmt = (_j = (_h = (_g = get(dLbls, "c:numFmt.a$.formatCode")) !== null && _g !== void 0 ? _g : get(dLbls, "numFmt.a$.formatCode")) !== null && _h !== void 0 ? _h : get(dLbls, "c:numFmt.a$.t$")) !== null && _j !== void 0 ? _j : get(dLbls, "numFmt.a$.t$");
|
|
2786
2809
|
if (typeof numFmt === "string" && numFmt) {
|
|
2787
2810
|
result.numberFormatPattern = numFmt;
|
|
2788
2811
|
}
|
|
@@ -2170,8 +2170,9 @@ var SERIES_CONTAINER_KEYS = [
|
|
|
2170
2170
|
];
|
|
2171
2171
|
/**
|
|
2172
2172
|
* Walk the per-chart-type containers in plotArea and apply trendlines
|
|
2173
|
-
* / errBars to each emitted `<c:ser>`. The
|
|
2174
|
-
* matches the order emitted by the builder,
|
|
2173
|
+
* / errBars / the series' own data labels to each emitted `<c:ser>`. The
|
|
2174
|
+
* series order in spec.series matches the order emitted by the builder,
|
|
2175
|
+
* so we index by position.
|
|
2175
2176
|
*/
|
|
2176
2177
|
var applySeriesOverlays = function (plotArea, series, sheetNameById) {
|
|
2177
2178
|
var e_19, _a, e_20, _b, e_21, _c;
|
|
@@ -2222,6 +2223,13 @@ var applySeriesOverlays = function (plotArea, series, sheetNameById) {
|
|
|
2222
2223
|
if (built)
|
|
2223
2224
|
node["c:errBars"] = built;
|
|
2224
2225
|
}
|
|
2226
|
+
// `ChartData.dataLabels` — the series' own `<c:dLbls>` overrides the
|
|
2227
|
+
// group's; `{ show: false }` is Excel's `<c:delete val="1"/>`.
|
|
2228
|
+
if (data.dataLabels) {
|
|
2229
|
+
node["c:dLbls"] = data.dataLabels.show
|
|
2230
|
+
? buildDataLabelsNode(data.dataLabels)
|
|
2231
|
+
: { "c:delete": { a$: { val: "1" } } };
|
|
2232
|
+
}
|
|
2225
2233
|
}
|
|
2226
2234
|
}
|
|
2227
2235
|
catch (e_21_1) { e_21 = { error: e_21_1 }; }
|
|
@@ -2717,25 +2725,8 @@ var applyLegend = function (chartNode, legend) {
|
|
|
2717
2725
|
}
|
|
2718
2726
|
chartNode["c:legend"] = __assign({ "c:legendPos": { a$: { val: posCode } }, "c:overlay": { a$: { val: "0" } } }, (txPr ? { "c:txPr": txPr } : {}));
|
|
2719
2727
|
};
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
if (!(dataLabels === null || dataLabels === void 0 ? void 0 : dataLabels.show))
|
|
2723
|
-
return;
|
|
2724
|
-
// Find the chart-type container inside <c:plotArea>. We attach <c:dLbls>
|
|
2725
|
-
// to whichever exists.
|
|
2726
|
-
// Chart-level labels apply to every chart group — a combo chart has
|
|
2727
|
-
// one per series type.
|
|
2728
|
-
var containers = [
|
|
2729
|
-
"c:barChart",
|
|
2730
|
-
"c:lineChart",
|
|
2731
|
-
"c:pieChart",
|
|
2732
|
-
"c:doughnutChart",
|
|
2733
|
-
"c:areaChart",
|
|
2734
|
-
]
|
|
2735
|
-
.flatMap(function (k) { return (Array.isArray(plotArea[k]) ? plotArea[k] : [plotArea[k]]); })
|
|
2736
|
-
.filter(Boolean);
|
|
2737
|
-
if (!containers.length)
|
|
2738
|
-
return;
|
|
2728
|
+
/** A `<c:dLbls>` node for `ChartDataLabelsOptions` with `show: true`. */
|
|
2729
|
+
var buildDataLabelsNode = function (dataLabels) {
|
|
2739
2730
|
var posCode = dataLabels.position && DLBL_POS[dataLabels.position];
|
|
2740
2731
|
var dLbls = {};
|
|
2741
2732
|
if (posCode)
|
|
@@ -2773,6 +2764,28 @@ var applyDataLabels = function (plotArea, dataLabels) {
|
|
|
2773
2764
|
a$: { val: dataLabels.showPercent ? "1" : "0" },
|
|
2774
2765
|
};
|
|
2775
2766
|
dLbls["c:showBubbleSize"] = { a$: { val: "0" } };
|
|
2767
|
+
return dLbls;
|
|
2768
|
+
};
|
|
2769
|
+
var applyDataLabels = function (plotArea, dataLabels) {
|
|
2770
|
+
var e_27, _a;
|
|
2771
|
+
if (!(dataLabels === null || dataLabels === void 0 ? void 0 : dataLabels.show))
|
|
2772
|
+
return;
|
|
2773
|
+
// Find the chart-type container inside <c:plotArea>. We attach <c:dLbls>
|
|
2774
|
+
// to whichever exists.
|
|
2775
|
+
// Chart-level labels apply to every chart group — a combo chart has
|
|
2776
|
+
// one per series type.
|
|
2777
|
+
var containers = [
|
|
2778
|
+
"c:barChart",
|
|
2779
|
+
"c:lineChart",
|
|
2780
|
+
"c:pieChart",
|
|
2781
|
+
"c:doughnutChart",
|
|
2782
|
+
"c:areaChart",
|
|
2783
|
+
]
|
|
2784
|
+
.flatMap(function (k) { return (Array.isArray(plotArea[k]) ? plotArea[k] : [plotArea[k]]); })
|
|
2785
|
+
.filter(Boolean);
|
|
2786
|
+
if (!containers.length)
|
|
2787
|
+
return;
|
|
2788
|
+
var dLbls = buildDataLabelsNode(dataLabels);
|
|
2776
2789
|
try {
|
|
2777
2790
|
for (var containers_1 = __values(containers), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {
|
|
2778
2791
|
var container = containers_1_1.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1437,6 +1437,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1437
1437
|
const errorBars = extractErrorBars(ser, sheetId, resolveSheetId);
|
|
1438
1438
|
const marker = extractSeriesMarker(ser);
|
|
1439
1439
|
const dataPointColors = extractSeriesDataPointColors(ser);
|
|
1440
|
+
const seriesDataLabels = extractSeriesDataLabels(ser);
|
|
1440
1441
|
const nameRef = getWithFallback(ser, TX_REF_PATHS);
|
|
1441
1442
|
// Per-series category reference — charts whose series plot against
|
|
1442
1443
|
// different category ranges can't be represented by the single
|
|
@@ -1472,6 +1473,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1472
1473
|
...(dataPointColors && dataPointColors.length
|
|
1473
1474
|
? { dataPointColors }
|
|
1474
1475
|
: {}),
|
|
1476
|
+
...(seriesDataLabels ? { dataLabels: seriesDataLabels } : {}),
|
|
1475
1477
|
});
|
|
1476
1478
|
seriesIndex++;
|
|
1477
1479
|
}
|
|
@@ -1509,6 +1511,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1509
1511
|
}
|
|
1510
1512
|
const marker = extractSeriesMarker(ser);
|
|
1511
1513
|
const dataPointColors = extractSeriesDataPointColors(ser);
|
|
1514
|
+
const seriesDataLabels = extractSeriesDataLabels(ser);
|
|
1512
1515
|
const nameRef = getWithFallback(ser, TX_REF_PATHS);
|
|
1513
1516
|
const serCatRef = isXYChart(chartType)
|
|
1514
1517
|
? undefined
|
|
@@ -1532,6 +1535,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1532
1535
|
...(dataPointColors && dataPointColors.length
|
|
1533
1536
|
? { dataPointColors }
|
|
1534
1537
|
: {}),
|
|
1538
|
+
...(seriesDataLabels ? { dataLabels: seriesDataLabels } : {}),
|
|
1535
1539
|
});
|
|
1536
1540
|
});
|
|
1537
1541
|
}
|
|
@@ -2518,6 +2522,25 @@ function extractDataLabelsOptions(plotArea, chartType) {
|
|
|
2518
2522
|
get(plotArea, "dLbls");
|
|
2519
2523
|
if (!dLbls)
|
|
2520
2524
|
return undefined;
|
|
2525
|
+
return readDataLabelsNode(dLbls);
|
|
2526
|
+
}
|
|
2527
|
+
/**
|
|
2528
|
+
* `<c:ser><c:dLbls>` — this series' own labels, which replace the group's
|
|
2529
|
+
* for it. `<c:delete val="1"/>`, or a node with every `show*` flag off,
|
|
2530
|
+
* turns a labelled group's labels off for the series.
|
|
2531
|
+
*/
|
|
2532
|
+
function extractSeriesDataLabels(ser) {
|
|
2533
|
+
const dLbls = get(ser, "c:dLbls") ?? get(ser, "dLbls");
|
|
2534
|
+
if (!dLbls)
|
|
2535
|
+
return undefined;
|
|
2536
|
+
const deleted = readBoolean(get(dLbls, "c:delete.a$.val") ?? get(dLbls, "delete.a$.val"));
|
|
2537
|
+
if (deleted)
|
|
2538
|
+
return { show: false };
|
|
2539
|
+
const options = readDataLabelsNode(dLbls);
|
|
2540
|
+
return options?.show ? options : { show: false };
|
|
2541
|
+
}
|
|
2542
|
+
/** The `ChartDataLabelsOptions` a `<c:dLbls>` node describes. */
|
|
2543
|
+
function readDataLabelsNode(dLbls) {
|
|
2521
2544
|
const result = {};
|
|
2522
2545
|
const pos = get(dLbls, "c:dLblPos.a$.val") ?? get(dLbls, "dLblPos.a$.val");
|
|
2523
2546
|
const position = mapDataLabelPosition(pos);
|
|
@@ -1962,8 +1962,9 @@ const SERIES_CONTAINER_KEYS = [
|
|
|
1962
1962
|
];
|
|
1963
1963
|
/**
|
|
1964
1964
|
* Walk the per-chart-type containers in plotArea and apply trendlines
|
|
1965
|
-
* / errBars to each emitted `<c:ser>`. The
|
|
1966
|
-
* matches the order emitted by the builder,
|
|
1965
|
+
* / errBars / the series' own data labels to each emitted `<c:ser>`. The
|
|
1966
|
+
* series order in spec.series matches the order emitted by the builder,
|
|
1967
|
+
* so we index by position.
|
|
1967
1968
|
*/
|
|
1968
1969
|
const applySeriesOverlays = (plotArea, series, sheetNameById) => {
|
|
1969
1970
|
if (!Array.isArray(series) || !series.length)
|
|
@@ -2006,6 +2007,13 @@ const applySeriesOverlays = (plotArea, series, sheetNameById) => {
|
|
|
2006
2007
|
if (built)
|
|
2007
2008
|
node["c:errBars"] = built;
|
|
2008
2009
|
}
|
|
2010
|
+
// `ChartData.dataLabels` — the series' own `<c:dLbls>` overrides the
|
|
2011
|
+
// group's; `{ show: false }` is Excel's `<c:delete val="1"/>`.
|
|
2012
|
+
if (data.dataLabels) {
|
|
2013
|
+
node["c:dLbls"] = data.dataLabels.show
|
|
2014
|
+
? buildDataLabelsNode(data.dataLabels)
|
|
2015
|
+
: { "c:delete": { a$: { val: "1" } } };
|
|
2016
|
+
}
|
|
2009
2017
|
}
|
|
2010
2018
|
}
|
|
2011
2019
|
}
|
|
@@ -2416,24 +2424,8 @@ const applyLegend = (chartNode, legend) => {
|
|
|
2416
2424
|
...(txPr ? { "c:txPr": txPr } : {}),
|
|
2417
2425
|
};
|
|
2418
2426
|
};
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
return;
|
|
2422
|
-
// Find the chart-type container inside <c:plotArea>. We attach <c:dLbls>
|
|
2423
|
-
// to whichever exists.
|
|
2424
|
-
// Chart-level labels apply to every chart group — a combo chart has
|
|
2425
|
-
// one per series type.
|
|
2426
|
-
const containers = [
|
|
2427
|
-
"c:barChart",
|
|
2428
|
-
"c:lineChart",
|
|
2429
|
-
"c:pieChart",
|
|
2430
|
-
"c:doughnutChart",
|
|
2431
|
-
"c:areaChart",
|
|
2432
|
-
]
|
|
2433
|
-
.flatMap((k) => (Array.isArray(plotArea[k]) ? plotArea[k] : [plotArea[k]]))
|
|
2434
|
-
.filter(Boolean);
|
|
2435
|
-
if (!containers.length)
|
|
2436
|
-
return;
|
|
2427
|
+
/** A `<c:dLbls>` node for `ChartDataLabelsOptions` with `show: true`. */
|
|
2428
|
+
const buildDataLabelsNode = (dataLabels) => {
|
|
2437
2429
|
const posCode = dataLabels.position && DLBL_POS[dataLabels.position];
|
|
2438
2430
|
const dLbls = {};
|
|
2439
2431
|
if (posCode)
|
|
@@ -2471,6 +2463,27 @@ const applyDataLabels = (plotArea, dataLabels) => {
|
|
|
2471
2463
|
a$: { val: dataLabels.showPercent ? "1" : "0" },
|
|
2472
2464
|
};
|
|
2473
2465
|
dLbls["c:showBubbleSize"] = { a$: { val: "0" } };
|
|
2466
|
+
return dLbls;
|
|
2467
|
+
};
|
|
2468
|
+
const applyDataLabels = (plotArea, dataLabels) => {
|
|
2469
|
+
if (!dataLabels?.show)
|
|
2470
|
+
return;
|
|
2471
|
+
// Find the chart-type container inside <c:plotArea>. We attach <c:dLbls>
|
|
2472
|
+
// to whichever exists.
|
|
2473
|
+
// Chart-level labels apply to every chart group — a combo chart has
|
|
2474
|
+
// one per series type.
|
|
2475
|
+
const containers = [
|
|
2476
|
+
"c:barChart",
|
|
2477
|
+
"c:lineChart",
|
|
2478
|
+
"c:pieChart",
|
|
2479
|
+
"c:doughnutChart",
|
|
2480
|
+
"c:areaChart",
|
|
2481
|
+
]
|
|
2482
|
+
.flatMap((k) => (Array.isArray(plotArea[k]) ? plotArea[k] : [plotArea[k]]))
|
|
2483
|
+
.filter(Boolean);
|
|
2484
|
+
if (!containers.length)
|
|
2485
|
+
return;
|
|
2486
|
+
const dLbls = buildDataLabelsNode(dataLabels);
|
|
2474
2487
|
for (const container of containers) {
|
|
2475
2488
|
container["c:dLbls"] = cloneTemplate(dLbls);
|
|
2476
2489
|
}
|