@rowsncolumns/toolkit 24.5.12 → 24.5.14
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/chartex.d.ts +14 -3
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.js +296 -44
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/charts.js +19 -2
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +8 -1
- package/dist/cjs/exporter/ods/ods-export.js +17 -4
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +47 -25
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts +14 -3
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/chartex.js +267 -53
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/charts.js +23 -2
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +4 -1
- package/dist/esm/exporter/ods/ods-export.js +14 -1
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +34 -19
- 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,CAuQ/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;
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1320,6 +1320,27 @@ function isSecondaryGroupContainer(container, secondaryIds) {
|
|
|
1320
1320
|
* model expects (one entry per parsed selection, with the data sheet's
|
|
1321
1321
|
* sheetId — not the chart's host sheet).
|
|
1322
1322
|
*/
|
|
1323
|
+
/**
|
|
1324
|
+
* A series name linked to a header cell (`<c:tx><c:strRef><c:f>`) → the
|
|
1325
|
+
* spec's `dataLabelSource`, so the renderers read the cell's current text
|
|
1326
|
+
* and the link survives inserted rows / columns and a sheet rename (#1100).
|
|
1327
|
+
* A reference that names no known sheet (or several cells) is dropped and
|
|
1328
|
+
* the cached title stays the literal name.
|
|
1329
|
+
*/
|
|
1330
|
+
function seriesLabelSource(nameRef, hostSheetId, resolveSheetId) {
|
|
1331
|
+
if (!nameRef)
|
|
1332
|
+
return {};
|
|
1333
|
+
const [source] = resolveSourcesFromRef(nameRef, hostSheetId, resolveSheetId);
|
|
1334
|
+
if (!source)
|
|
1335
|
+
return {};
|
|
1336
|
+
return {
|
|
1337
|
+
dataLabelSource: {
|
|
1338
|
+
...source,
|
|
1339
|
+
endRowIndex: source.startRowIndex,
|
|
1340
|
+
endColumnIndex: source.startColumnIndex,
|
|
1341
|
+
},
|
|
1342
|
+
};
|
|
1343
|
+
}
|
|
1323
1344
|
function resolveSourcesFromRef(ref, hostSheetId, resolveSheetId) {
|
|
1324
1345
|
const selections = generateSelectionsFromFormula(`=${ref}`);
|
|
1325
1346
|
return selections.map((sel) => ({
|
|
@@ -1458,7 +1479,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1458
1479
|
orders.push(seriesOrderOf(ser));
|
|
1459
1480
|
series.push({
|
|
1460
1481
|
dataLabel: seriesTitle || `Series ${seriesIndex + 1}`,
|
|
1461
|
-
...(nameRef
|
|
1482
|
+
...seriesLabelSource(nameRef, sheetId, resolveSheetId),
|
|
1462
1483
|
...(categorySources.length ? { categorySources } : {}),
|
|
1463
1484
|
color: colorInfo.color,
|
|
1464
1485
|
...(colorInfo.noFill ? { noFill: true } : {}),
|
|
@@ -1529,7 +1550,7 @@ export function extractChartSeries(plotArea, chartType, sheetId, resolveSheetId)
|
|
|
1529
1550
|
orders.push(seriesOrderOf(ser));
|
|
1530
1551
|
series.push({
|
|
1531
1552
|
dataLabel: seriesTitle || `Series ${index + 1}`,
|
|
1532
|
-
...(nameRef
|
|
1553
|
+
...seriesLabelSource(nameRef, sheetId, resolveSheetId),
|
|
1533
1554
|
...(categorySources.length ? { categorySources } : {}),
|
|
1534
1555
|
color: colorInfo.color,
|
|
1535
1556
|
...(colorInfo.noFill ? { noFill: true } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,EAEV,qBAAqB,EACrB,wBAAwB,EAExB,aAAa,EACb,cAAc,EAGd,UAAU,EAMV,cAAc,EACd,KAAK,EAEL,kBAAkB,EAClB,MAAM,EACN,gBAAgB,EAEhB,SAAS,EACT,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAIb,UAAU,EACV,aAAa,EACd,MAAM,4BAA4B,CAAC;AAgBpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EACV,YAAY,EACZ,+BAA+B,EAC/B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAU9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAUlB,OAAO,EAGL,KAAK,0BAA0B,EAEhC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAGL,KAAK,eAAe,EAGrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AA0D7B,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAC7C,CAAC;AA+HlB,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAsB5D;AAkBD,qBAAa,cAAc;IACzB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBACpC,UAAU,EAAE,GAAG;IAqG3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAqE9D;;;;;;;;OAQG;IACH,0BAA0B,IAAI,KAAK,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,eAAe,CAAC,EAAE,GAAG,CAAC;YACtB,SAAS,CAAC,EAAE,GAAG,CAAC;YAChB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC,CAAC;KACJ,CAAC;IAwEF;;OAEG;IACH,OAAO,CAAC,eAAe;WA4CV,IAAI,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS;IAerE,OAAO,CAAC,MAAM,EAAE,MAAM;IAGtB,OAAO,CAAC,MAAM,EAAE,MAAM;IAItB,UAAU,CAAC,UAAU,EAAE,MAAM;IAI7B,cAAc,CAAC,IAAI,EAAE,MAAM;IAI3B,OAAO,CAAC,oBAAoB;CAkC7B;AAkED,qBAAa,UAAW,SAAQ,kBAAmB,YAAW,eAAe;IAC3E,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAG,gBAAgB,CAAC;IACzB,aAAa,EAAG,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,oBAAoB,EAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACpD,gBAAgB,EAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,cAAc,EAAG,cAAc,CAAC;IAChC,SAAS,EAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,EAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9D,KAAK,EAAG,MAAM,EAAE,CAAC;IACjB,WAAW,EAAG,UAAU,EAAE,CAAC;IAC3B,sBAAsB,EAAE,SAAS,CAAC;IAClC,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,0BAA0B,CAAqC;IACvE,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAAwC;IAC7D;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAC,CAA4D;IACvF;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA2C;IACrE;;;OAGG;IACH,OAAO,CAAC,qBAAqB,CAA+C;IAC5E,yEAAyE;IACzE,OAAO,CAAC,kBAAkB,CAA0B;IACpD;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB,CAGtB;IACJ;;;;;;;OAOG;IACH;;;;OAIG;IACH,OAAO,CAAC,sBAAsB,CAAuC;IACrE;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAGvB;IACJ,OAAO,CAAC,2BAA2B,CAG/B;IACJ,yEAAyE;IACzE,OAAO,CAAC,iCAAiC,CAGrC;IACJ,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,gBAAgB;YASV,kBAAkB;IA0jBhC;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAuBtE;;;;;OAKG;YACW,gBAAgB;YAiKhB,qBAAqB;IAkJnC;;;OAGG;YACW,qBAAqB;;YAkTrB,eAAe;IAsB7B,OAAO,CAAC,yBAAyB;YAQnB,SAAS;YAiCT,iBAAiB;IA4EzB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;IA4BxD,OAAO;IAeP,kBAAkB;IAOlB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAc7D,gCAAgC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAY1D,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EAAE;IAiOxB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,mBAAmB;YAWZ,eAAe;IA0W9B,OAAO,CAAC,kBAAkB;IAiCpB,mBAAmB,CAAC,GAAG,EAAE,MAAM;IAuErC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAyBlB;;;;;;;OAOG;IACG,2BAA2B,CAC/B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,qBAAqB,CAAC;IA+CjC;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAenE,QAAQ,IAAI,MAAM,EAAE;IAsDpB,UAAU;IAIV;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,GAAG,GAAG,eAAe;IA6FlD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3028,7 +3028,10 @@ export class XlsxPlugin extends BaseWorkbookPlugin {
|
|
|
3028
3028
|
get(rel, "a$.id") === chartExRId)
|
|
3029
3029
|
: undefined;
|
|
3030
3030
|
if (chartExRel) {
|
|
3031
|
-
const chartEx = await processChartEx(chartExRel.a$.Target, drawingPath, anchor, sheetId, this.zipParser, this.xmlParser, sheetDimensions, resolveSheetId
|
|
3031
|
+
const chartEx = await processChartEx(chartExRel.a$.Target, drawingPath, anchor, sheetId, this.zipParser, this.xmlParser, sheetDimensions, resolveSheetId,
|
|
3032
|
+
// Excel writes the chartex ranges as `_xlchart.v1.N` defined
|
|
3033
|
+
// names (rowsncolumns/spreadsheet#1107).
|
|
3034
|
+
(name) => (this.namedRanges ?? []).find((named) => named.name === name)?.range ?? undefined);
|
|
3032
3035
|
if (chartEx) {
|
|
3033
3036
|
chartEx.position = { ...chartEx.position, zOrder };
|
|
3034
3037
|
charts.push(chartEx);
|
|
@@ -3183,7 +3183,8 @@ const buildChartObjectXml = (chart, sheetNameById) => {
|
|
|
3183
3183
|
let hasSeriesLabels = false;
|
|
3184
3184
|
const seriesXml = seriesRanges
|
|
3185
3185
|
.map((range, index) => {
|
|
3186
|
-
const labelAddress =
|
|
3186
|
+
const labelAddress = buildChartLabelAddressFromCell(series[index]?.dataLabelSource ?? undefined, sheetNameById) ||
|
|
3187
|
+
buildChartLabelAddress(series[index]?.dataLabel, sheetNameById, chart.position?.sheetId) ||
|
|
3187
3188
|
buildChartLabelAddressFromRange(series[index]?.sources?.[0], sheetNameById);
|
|
3188
3189
|
const labelAttr = labelAddress
|
|
3189
3190
|
? ` chart:label-cell-address="${escapeXmlAddress(labelAddress)}"`
|
|
@@ -3297,6 +3298,18 @@ const buildChartLabelAddress = (label, sheetNameById, sheetId) => {
|
|
|
3297
3298
|
}
|
|
3298
3299
|
return "";
|
|
3299
3300
|
};
|
|
3301
|
+
/** The header cell a series name is linked to (`dataLabelSource`). */
|
|
3302
|
+
const buildChartLabelAddressFromCell = (cell, sheetNameById) => {
|
|
3303
|
+
if (!cell)
|
|
3304
|
+
return "";
|
|
3305
|
+
const sheetName = sheetNameById.get(cell.sheetId);
|
|
3306
|
+
if (!sheetName)
|
|
3307
|
+
return "";
|
|
3308
|
+
const labelRef = cellToAddress({ rowIndex: cell.startRowIndex, columnIndex: cell.startColumnIndex }, true, true);
|
|
3309
|
+
if (!labelRef)
|
|
3310
|
+
return "";
|
|
3311
|
+
return `${escapeSheetName(sheetName)}.${labelRef}`;
|
|
3312
|
+
};
|
|
3300
3313
|
const buildChartLabelAddressFromRange = (range, sheetNameById) => {
|
|
3301
3314
|
if (!range || range.startRowIndex <= 1)
|
|
3302
3315
|
return "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AAi6CnC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,MAAM,GAAG,MAAM,KAC1B,MAAM,GAAG,SAAS,CAAC;AAExB,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,yBAAyB,sBAAsB,KAC9C,MAAM,GAAG,SA2rBX,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cellRangeToAddress, chartPaletteColorAt, sanitizeSheetName, } from "@rowsncolumns/utils";
|
|
1
|
+
import { cellRangeToAddress, cellToAddress, chartPaletteColorAt, sanitizeSheetName, } from "@rowsncolumns/utils";
|
|
2
2
|
import { XMLBuilder } from "fast-xml-parser";
|
|
3
3
|
import { area_series, bubble_series, chart_template, column_json, column_series, donut_json, line_series, scatter_json, scatter_series, static_title, } from "./chart-templates";
|
|
4
4
|
const XML_DECLARATION = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>`;
|
|
@@ -75,6 +75,21 @@ const formatSourcesRef = (sources, sheetNameById) => {
|
|
|
75
75
|
.filter((ref) => Boolean(ref));
|
|
76
76
|
return parts.length ? parts.join(",") : undefined;
|
|
77
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* The `<c:tx><c:strRef>` formula of a series whose name is linked to a
|
|
80
|
+
* header cell — `dataLabelSource` (a `SheetRange`), else the address an
|
|
81
|
+
* earlier import captured as `dataLabelRef`.
|
|
82
|
+
*/
|
|
83
|
+
const seriesLabelRef = (entry, sheetNameById) => (entry?.dataLabelSource
|
|
84
|
+
? formatCellRef(entry.dataLabelSource, sheetNameById)
|
|
85
|
+
: undefined) ?? entry?.dataLabelRef ?? undefined;
|
|
86
|
+
/** `'Sheet'!$B$1` — the absolute single-cell form Excel writes for a series name. */
|
|
87
|
+
const formatCellRef = (cell, sheetNameById) => {
|
|
88
|
+
const sheetName = sheetNameById.get(cell.sheetId);
|
|
89
|
+
if (!sheetName)
|
|
90
|
+
return undefined;
|
|
91
|
+
return `${sanitizeSheetName(sheetName)}!${cellToAddress({ rowIndex: cell.startRowIndex, columnIndex: cell.startColumnIndex }, true, true)}`;
|
|
92
|
+
};
|
|
78
93
|
const seriesCategoryRef = (entry, sheetNameById) => formatSourcesRef(entry?.categorySources, sheetNameById);
|
|
79
94
|
const buildSeriesLabel = (label, sheetName, labelRef) => {
|
|
80
95
|
// A captured source reference (`<c:tx><c:strRef>`) wins over the literal:
|
|
@@ -722,7 +737,7 @@ const isComboChart = (series, defaultChartType) => {
|
|
|
722
737
|
/**
|
|
723
738
|
* Build a bar/column series node.
|
|
724
739
|
*/
|
|
725
|
-
const buildBarSeriesNode = (index, ref, seriesData, domainRef, sheetName, isFirstInGroup) => {
|
|
740
|
+
const buildBarSeriesNode = (index, ref, seriesData, domainRef, sheetName, isFirstInGroup, sheetNameById = new Map()) => {
|
|
726
741
|
const seriesNode = cloneTemplate(column_series);
|
|
727
742
|
seriesNode["c:idx"] = { a$: { val: index.toString() } };
|
|
728
743
|
seriesNode["c:order"] = { a$: { val: index.toString() } };
|
|
@@ -780,7 +795,7 @@ const buildBarSeriesNode = (index, ref, seriesData, domainRef, sheetName, isFirs
|
|
|
780
795
|
removeProp(seriesNode, "c:val");
|
|
781
796
|
seriesNode["c:val"] = buildInlineNumLit(inlineValues);
|
|
782
797
|
}
|
|
783
|
-
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesData
|
|
798
|
+
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesLabelRef(seriesData, sheetNameById));
|
|
784
799
|
if (labelNode) {
|
|
785
800
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
786
801
|
}
|
|
@@ -795,7 +810,7 @@ const buildBarSeriesNode = (index, ref, seriesData, domainRef, sheetName, isFirs
|
|
|
795
810
|
/**
|
|
796
811
|
* Build a line series node.
|
|
797
812
|
*/
|
|
798
|
-
const buildLineSeriesNode = (index, ref, seriesData, domainRef, sheetName, smooth, showMarkers = false) => {
|
|
813
|
+
const buildLineSeriesNode = (index, ref, seriesData, domainRef, sheetName, smooth, showMarkers = false, sheetNameById = new Map()) => {
|
|
799
814
|
const seriesNode = cloneTemplate(line_series);
|
|
800
815
|
seriesNode["c:idx"] = { a$: { val: index.toString() } };
|
|
801
816
|
seriesNode["c:order"] = { a$: { val: index.toString() } };
|
|
@@ -839,7 +854,7 @@ const buildLineSeriesNode = (index, ref, seriesData, domainRef, sheetName, smoot
|
|
|
839
854
|
if (smooth) {
|
|
840
855
|
seriesNode["c:smooth"].a$.val = "1";
|
|
841
856
|
}
|
|
842
|
-
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesData
|
|
857
|
+
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesLabelRef(seriesData, sheetNameById));
|
|
843
858
|
if (labelNode) {
|
|
844
859
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
845
860
|
}
|
|
@@ -848,7 +863,7 @@ const buildLineSeriesNode = (index, ref, seriesData, domainRef, sheetName, smoot
|
|
|
848
863
|
/**
|
|
849
864
|
* Build an area series node.
|
|
850
865
|
*/
|
|
851
|
-
const buildAreaSeriesNode = (index, ref, seriesData, domainRef, sheetName) => {
|
|
866
|
+
const buildAreaSeriesNode = (index, ref, seriesData, domainRef, sheetName, sheetNameById = new Map()) => {
|
|
852
867
|
const seriesNode = cloneTemplate(area_series);
|
|
853
868
|
seriesNode["c:idx"] = { a$: { val: index.toString() } };
|
|
854
869
|
seriesNode["c:order"] = { a$: { val: index.toString() } };
|
|
@@ -878,7 +893,7 @@ const buildAreaSeriesNode = (index, ref, seriesData, domainRef, sheetName) => {
|
|
|
878
893
|
removeProp(seriesNode, "c:cat");
|
|
879
894
|
}
|
|
880
895
|
seriesNode["c:val"]["c:numRef"]["c:f"] = ref;
|
|
881
|
-
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesData
|
|
896
|
+
const labelNode = buildSeriesLabel(seriesData?.dataLabel ?? undefined, sheetName, seriesLabelRef(seriesData, sheetNameById));
|
|
882
897
|
if (labelNode) {
|
|
883
898
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
884
899
|
}
|
|
@@ -891,7 +906,7 @@ const buildAreaSeriesNode = (index, ref, seriesData, domainRef, sheetName) => {
|
|
|
891
906
|
* remaining series, each with its own idx/order, name, category and value
|
|
892
907
|
* reference.
|
|
893
908
|
*/
|
|
894
|
-
const appendExtraCircularSeries = (chartNode, groupKey, seriesRefs, seriesCatRefs, domainRef, series, sheetName) => {
|
|
909
|
+
const appendExtraCircularSeries = (chartNode, groupKey, seriesRefs, seriesCatRefs, domainRef, series, sheetName, sheetNameById = new Map()) => {
|
|
895
910
|
const group = chartNode["c:plotArea"]?.[groupKey];
|
|
896
911
|
if (!group)
|
|
897
912
|
return;
|
|
@@ -913,7 +928,7 @@ const appendExtraCircularSeries = (chartNode, groupKey, seriesRefs, seriesCatRef
|
|
|
913
928
|
"c:idx": { a$: { val: String(index) } },
|
|
914
929
|
"c:order": { a$: { val: String(index) } },
|
|
915
930
|
};
|
|
916
|
-
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetName, series[index]
|
|
931
|
+
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetName, seriesLabelRef(series[index], sheetNameById));
|
|
917
932
|
if (labelNode) {
|
|
918
933
|
node["c:tx"] = labelNode["c:tx"];
|
|
919
934
|
}
|
|
@@ -1196,7 +1211,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1196
1211
|
};
|
|
1197
1212
|
for (let i = 0; i < groupSeries.length; i++) {
|
|
1198
1213
|
const { index, ref, data } = groupSeries[i];
|
|
1199
|
-
const seriesNode = buildBarSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName, i === 0);
|
|
1214
|
+
const seriesNode = buildBarSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName, i === 0, sheetNameById);
|
|
1200
1215
|
barChartNode["c:ser"].push(seriesNode);
|
|
1201
1216
|
}
|
|
1202
1217
|
comboGroups.push(["c:barChart", barChartNode]);
|
|
@@ -1221,7 +1236,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1221
1236
|
"c:axId": axisIds,
|
|
1222
1237
|
};
|
|
1223
1238
|
for (const { index, ref, data } of groupSeries) {
|
|
1224
|
-
const seriesNode = buildLineSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName, smooth, showMarkers);
|
|
1239
|
+
const seriesNode = buildLineSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName, smooth, showMarkers, sheetNameById);
|
|
1225
1240
|
lineChartNode["c:ser"].push(seriesNode);
|
|
1226
1241
|
}
|
|
1227
1242
|
comboGroups.push(["c:lineChart", lineChartNode]);
|
|
@@ -1235,7 +1250,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1235
1250
|
"c:axId": axisIds,
|
|
1236
1251
|
};
|
|
1237
1252
|
for (const { index, ref, data } of groupSeries) {
|
|
1238
|
-
const seriesNode = buildAreaSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName);
|
|
1253
|
+
const seriesNode = buildAreaSeriesNode(index, ref, data, seriesCatRefs[index] ?? domainRef, sheetName, sheetNameById);
|
|
1239
1254
|
areaChartNode["c:ser"].push(seriesNode);
|
|
1240
1255
|
}
|
|
1241
1256
|
comboGroups.push(["c:areaChart", areaChartNode]);
|
|
@@ -1285,7 +1300,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1285
1300
|
};
|
|
1286
1301
|
}
|
|
1287
1302
|
seriesNode["c:val"]["c:numRef"]["c:f"] = ref;
|
|
1288
|
-
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), series[index]
|
|
1303
|
+
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), seriesLabelRef(series[index], sheetNameById));
|
|
1289
1304
|
if (labelNode) {
|
|
1290
1305
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
1291
1306
|
}
|
|
@@ -1366,7 +1381,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1366
1381
|
inlineDomainValues,
|
|
1367
1382
|
}
|
|
1368
1383
|
: series[index];
|
|
1369
|
-
const seriesNode = buildBarSeriesNode(index, ref ?? "", enrichedSeries, seriesCatRefs[index] ?? domainRef, sheetNameById.get(chart.position.sheetId), index === 0);
|
|
1384
|
+
const seriesNode = buildBarSeriesNode(index, ref ?? "", enrichedSeries, seriesCatRefs[index] ?? domainRef, sheetNameById.get(chart.position.sheetId), index === 0, sheetNameById);
|
|
1370
1385
|
seriesContainer.push(seriesNode);
|
|
1371
1386
|
});
|
|
1372
1387
|
chartSpace["c:chartSpace"]["c:chart"] = barChart;
|
|
@@ -1383,14 +1398,14 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1383
1398
|
? buildOfPieChart(domainRef, valueRef, chartTitle, specAny, chartSubtitle)
|
|
1384
1399
|
: buildPieChart(domainRef, valueRef, chartTitle, chartSubtitle);
|
|
1385
1400
|
if (!isOfPie) {
|
|
1386
|
-
appendExtraCircularSeries(pieChart, "c:pieChart", seriesRefs, seriesCatRefs, domainRef, series, sheetNameById.get(chart.position.sheetId));
|
|
1401
|
+
appendExtraCircularSeries(pieChart, "c:pieChart", seriesRefs, seriesCatRefs, domainRef, series, sheetNameById.get(chart.position.sheetId), sheetNameById);
|
|
1387
1402
|
}
|
|
1388
1403
|
chartSpace["c:chartSpace"]["c:chart"] = pieChart;
|
|
1389
1404
|
}
|
|
1390
1405
|
else if (chartType === "doughnut") {
|
|
1391
1406
|
const valueRef = seriesRefs.find(Boolean);
|
|
1392
1407
|
const doughnutChart = buildDoughnutChart(domainRef, valueRef, chartTitle, chartSubtitle);
|
|
1393
|
-
appendExtraCircularSeries(doughnutChart, "c:doughnutChart", seriesRefs, seriesCatRefs, domainRef, series, sheetNameById.get(chart.position.sheetId));
|
|
1408
|
+
appendExtraCircularSeries(doughnutChart, "c:doughnutChart", seriesRefs, seriesCatRefs, domainRef, series, sheetNameById.get(chart.position.sheetId), sheetNameById);
|
|
1394
1409
|
chartSpace["c:chartSpace"]["c:chart"] = doughnutChart;
|
|
1395
1410
|
}
|
|
1396
1411
|
else if (chartType === "radar") {
|
|
@@ -1469,7 +1484,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1469
1484
|
else if (showMarkers) {
|
|
1470
1485
|
removeProp(seriesNode, "c:marker");
|
|
1471
1486
|
}
|
|
1472
|
-
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), series[index]
|
|
1487
|
+
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), seriesLabelRef(series[index], sheetNameById));
|
|
1473
1488
|
if (labelNode) {
|
|
1474
1489
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
1475
1490
|
}
|
|
@@ -1525,7 +1540,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1525
1540
|
removeProp(seriesNode, "c:cat");
|
|
1526
1541
|
}
|
|
1527
1542
|
seriesNode["c:val"]["c:numRef"]["c:f"] = ref;
|
|
1528
|
-
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), series[index]
|
|
1543
|
+
const labelNode = buildSeriesLabel(series[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), seriesLabelRef(series[index], sheetNameById));
|
|
1529
1544
|
if (labelNode) {
|
|
1530
1545
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
1531
1546
|
}
|
|
@@ -1580,7 +1595,7 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1580
1595
|
else if (smooth) {
|
|
1581
1596
|
seriesNode["c:smooth"].a$.val = "1";
|
|
1582
1597
|
}
|
|
1583
|
-
const labelNode = buildSeriesLabel(entry?.dataLabel ?? bubbleLabelEntries[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), entry
|
|
1598
|
+
const labelNode = buildSeriesLabel(entry?.dataLabel ?? bubbleLabelEntries[index]?.dataLabel ?? undefined, sheetNameById.get(chart.position.sheetId), seriesLabelRef(entry, sheetNameById));
|
|
1584
1599
|
if (labelNode) {
|
|
1585
1600
|
seriesNode["c:tx"] = labelNode["c:tx"];
|
|
1586
1601
|
}
|