@rowsncolumns/toolkit 24.4.2 → 24.4.3
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/cfb-decryptor.d.ts +6 -0
- package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -1
- package/dist/cjs/excel-parser/cfb-decryptor.js +6 -0
- package/dist/cjs/excel-parser/helpers.d.ts +9 -1
- package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
- package/dist/cjs/excel-parser/helpers.js +37 -0
- package/dist/cjs/excel-parser/interface.d.ts +10 -1
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts +19 -0
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/index.js +676 -304
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +43 -1
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/styles.js +343 -45
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts +11 -3
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xls/index.js +55 -6
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +4 -0
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsb/index.js +21 -9
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +10 -0
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/charts.js +68 -9
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +155 -20
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +26 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +567 -234
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +125 -37
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +4 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +12 -2
- package/dist/cjs/excel-parser/registry.d.ts.map +1 -1
- package/dist/cjs/excel-parser/registry.js +2 -0
- package/dist/cjs/excel-parser/types.d.ts +7 -1
- package/dist/cjs/excel-parser/types.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.d.ts +1 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.js +4 -0
- package/dist/cjs/excel-parser/worker.js +3 -1
- package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -1
- package/dist/cjs/exporter/ods/ods-export.js +432 -175
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +210 -6
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +8 -0
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/pivot-builder.js +141 -42
- package/dist/cjs/exporter/xlsx/style-builder.js +9 -3
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +15 -3
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +11 -2
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/xlsx-export.js +678 -222
- package/dist/cjs/helpers/implicit-intersection.d.ts +16 -0
- package/dist/cjs/helpers/implicit-intersection.d.ts.map +1 -0
- package/dist/cjs/helpers/implicit-intersection.js +197 -0
- package/dist/cjs/print-settings.d.ts +105 -0
- package/dist/cjs/print-settings.d.ts.map +1 -0
- package/dist/cjs/print-settings.js +494 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/excel-parser/cfb-decryptor.d.ts +6 -0
- package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -1
- package/dist/esm/excel-parser/cfb-decryptor.js +6 -0
- package/dist/esm/excel-parser/helpers.d.ts +9 -1
- package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
- package/dist/esm/excel-parser/helpers.js +34 -0
- package/dist/esm/excel-parser/interface.d.ts +10 -1
- package/dist/esm/excel-parser/interface.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/index.d.ts +19 -0
- package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/index.js +347 -33
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts +43 -1
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/styles.js +276 -2
- package/dist/esm/excel-parser/plugins/xls/index.d.ts +11 -3
- package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xls/index.js +37 -5
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +4 -0
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsb/index.js +20 -6
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +10 -0
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/charts.js +69 -6
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/drawing.js +99 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +26 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +362 -26
- package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/pivots.js +86 -6
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +2 -0
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +12 -2
- package/dist/esm/excel-parser/registry.d.ts.map +1 -1
- package/dist/esm/excel-parser/registry.js +2 -0
- package/dist/esm/excel-parser/types.d.ts +7 -1
- package/dist/esm/excel-parser/types.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.d.ts +1 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.js +3 -0
- package/dist/esm/excel-parser/worker.js +2 -0
- package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -1
- package/dist/esm/exporter/ods/ods-export.js +306 -35
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +161 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts +8 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/pivot-builder.js +104 -19
- package/dist/esm/exporter/xlsx/style-builder.js +9 -3
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/threaded-comments-builder.js +15 -3
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts +11 -2
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/xlsx-export.js +449 -47
- package/dist/esm/helpers/implicit-intersection.d.ts +16 -0
- package/dist/esm/helpers/implicit-intersection.d.ts.map +1 -0
- package/dist/esm/helpers/implicit-intersection.js +184 -0
- package/dist/esm/print-settings.d.ts +105 -0
- package/dist/esm/print-settings.d.ts.map +1 -0
- package/dist/esm/print-settings.js +422 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAET,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,EACX,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;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,
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,6 +120,10 @@ export async function processChart(chartTarget, drawingPath, anchor, sheetId, zi
|
|
|
120
120
|
// "pie" with sourceChartType "OF_PIE" plus the split fields the
|
|
121
121
|
// renderer uses to draw the composite layout.
|
|
122
122
|
const ofPieOptions = chartType === "pie" ? extractOfPieOptions(plotArea) : undefined;
|
|
123
|
+
// 3-D / surface variants — preserved as sourceChartType (BAR_3D,
|
|
124
|
+
// LINE_3D, PIE_3D, AREA_3D, SURFACE, SURFACE_3D) on top of the 2-D
|
|
125
|
+
// chartType they degrade to. Disjoint from OF_PIE.
|
|
126
|
+
const threeDSourceChartType = extractThreeDSourceChartType(plotArea);
|
|
123
127
|
const radarStyle = chartType === "radar" ? extractRadarStyle(plotArea) : undefined;
|
|
124
128
|
const binCount = chartType === "histogram"
|
|
125
129
|
? extractC15HistogramBinCount(plotArea)
|
|
@@ -166,6 +170,9 @@ export async function processChart(chartTarget, drawingPath, anchor, sheetId, zi
|
|
|
166
170
|
...(ofPieOptions
|
|
167
171
|
? { sourceChartType: "OF_PIE", ...ofPieOptions }
|
|
168
172
|
: {}),
|
|
173
|
+
...(threeDSourceChartType && !ofPieOptions
|
|
174
|
+
? { sourceChartType: threeDSourceChartType }
|
|
175
|
+
: {}),
|
|
169
176
|
...(radarStyle ? { radarStyle } : {}),
|
|
170
177
|
...(typeof binCount === "number" ? { binCount } : {}),
|
|
171
178
|
...(barLayout?.stackedType
|
|
@@ -240,6 +247,12 @@ function getSeriesElements(plotArea, chartType) {
|
|
|
240
247
|
"areaChart.ser",
|
|
241
248
|
"c:area3DChart.c:ser",
|
|
242
249
|
"area3DChart.ser",
|
|
250
|
+
// Surface / contour charts degrade to area (sourceChartType
|
|
251
|
+
// SURFACE / SURFACE_3D); their series carry the same cat/val shape.
|
|
252
|
+
"c:surfaceChart.c:ser",
|
|
253
|
+
"surfaceChart.ser",
|
|
254
|
+
"c:surface3DChart.c:ser",
|
|
255
|
+
"surface3DChart.ser",
|
|
243
256
|
]);
|
|
244
257
|
case "radar":
|
|
245
258
|
return getWithFallback(plotArea, ["c:radarChart.c:ser", "radarChart.ser"]);
|
|
@@ -562,6 +575,12 @@ export function determineChartType(chart) {
|
|
|
562
575
|
"areaChart",
|
|
563
576
|
"c:area3DChart",
|
|
564
577
|
"area3DChart",
|
|
578
|
+
// Surface / contour degrade to area — the same 2-D base the Rust
|
|
579
|
+
// importer and the renderer's surface pipeline use.
|
|
580
|
+
"c:surfaceChart",
|
|
581
|
+
"surfaceChart",
|
|
582
|
+
"c:surface3DChart",
|
|
583
|
+
"surface3DChart",
|
|
565
584
|
]))
|
|
566
585
|
return "area";
|
|
567
586
|
if (getWithFallback(plotArea, ["c:radarChart", "radarChart"]))
|
|
@@ -576,6 +595,31 @@ export function determineChartType(chart) {
|
|
|
576
595
|
return "bubble";
|
|
577
596
|
return "column"; // default
|
|
578
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* The authored 3-D / surface chart class, when the plot area's chart
|
|
600
|
+
* element is one of Excel's 3-D variants. These degrade to their 2-D
|
|
601
|
+
* `chartType` (bar3DChart → bar/column, line3DChart → line, pie3DChart →
|
|
602
|
+
* pie, area3DChart / surfaceChart / surface3DChart → area) and the
|
|
603
|
+
* original class is preserved verbatim as `sourceChartType`, matching the
|
|
604
|
+
* Rust importer, so the renderer's echarts-gl pipeline and the exporter's
|
|
605
|
+
* 3-D writer can restore it. Undefined for plain 2-D charts.
|
|
606
|
+
*/
|
|
607
|
+
export function extractThreeDSourceChartType(plotArea) {
|
|
608
|
+
const has = (paths) => Boolean(getWithFallback(plotArea, paths));
|
|
609
|
+
if (has(["c:bar3DChart", "bar3DChart"]))
|
|
610
|
+
return "BAR_3D";
|
|
611
|
+
if (has(["c:line3DChart", "line3DChart"]))
|
|
612
|
+
return "LINE_3D";
|
|
613
|
+
if (has(["c:pie3DChart", "pie3DChart"]))
|
|
614
|
+
return "PIE_3D";
|
|
615
|
+
if (has(["c:area3DChart", "area3DChart"]))
|
|
616
|
+
return "AREA_3D";
|
|
617
|
+
if (has(["c:surface3DChart", "surface3DChart"]))
|
|
618
|
+
return "SURFACE_3D";
|
|
619
|
+
if (has(["c:surfaceChart", "surfaceChart"]))
|
|
620
|
+
return "SURFACE";
|
|
621
|
+
return undefined;
|
|
622
|
+
}
|
|
579
623
|
/**
|
|
580
624
|
* Phase 5.5 — detect the c15 extension marker our exporter writes on
|
|
581
625
|
* the plotArea. Returns the originating chart type (histogram /
|
|
@@ -711,7 +755,16 @@ const CHART_TYPE_CONTAINERS = [
|
|
|
711
755
|
chartType: "line",
|
|
712
756
|
},
|
|
713
757
|
{
|
|
714
|
-
paths: [
|
|
758
|
+
paths: [
|
|
759
|
+
"c:areaChart",
|
|
760
|
+
"areaChart",
|
|
761
|
+
"c:area3DChart",
|
|
762
|
+
"area3DChart",
|
|
763
|
+
"c:surfaceChart",
|
|
764
|
+
"surfaceChart",
|
|
765
|
+
"c:surface3DChart",
|
|
766
|
+
"surface3DChart",
|
|
767
|
+
],
|
|
715
768
|
chartType: "area",
|
|
716
769
|
},
|
|
717
770
|
{
|
|
@@ -1765,13 +1818,23 @@ const mapDataLabelPosition = (val) => {
|
|
|
1765
1818
|
function extractDataLabelsOptions(plotArea, chartType) {
|
|
1766
1819
|
// Look for <c:dLbls> inside the chartType-specific container. We pick
|
|
1767
1820
|
// the first one we find — chart-level labels apply to all series.
|
|
1821
|
+
// The 3-D classes (bar3DChart / line3DChart / pie3DChart / area3DChart)
|
|
1822
|
+
// degrade to the same `chartType` and carry `<c:dLbls>` in the same slot
|
|
1823
|
+
// of their group, so they are looked up alongside the 2-D container.
|
|
1768
1824
|
const containerKeys = {
|
|
1769
|
-
bar: ["c:barChart", "barChart"],
|
|
1770
|
-
column: ["c:barChart", "barChart"],
|
|
1771
|
-
line: ["c:lineChart", "lineChart"],
|
|
1772
|
-
pie: [
|
|
1825
|
+
bar: ["c:barChart", "barChart", "c:bar3DChart", "bar3DChart"],
|
|
1826
|
+
column: ["c:barChart", "barChart", "c:bar3DChart", "bar3DChart"],
|
|
1827
|
+
line: ["c:lineChart", "lineChart", "c:line3DChart", "line3DChart"],
|
|
1828
|
+
pie: [
|
|
1829
|
+
"c:pieChart",
|
|
1830
|
+
"pieChart",
|
|
1831
|
+
"c:ofPieChart",
|
|
1832
|
+
"ofPieChart",
|
|
1833
|
+
"c:pie3DChart",
|
|
1834
|
+
"pie3DChart",
|
|
1835
|
+
],
|
|
1773
1836
|
doughnut: ["c:doughnutChart", "doughnutChart"],
|
|
1774
|
-
area: ["c:areaChart", "areaChart"],
|
|
1837
|
+
area: ["c:areaChart", "areaChart", "c:area3DChart", "area3DChart"],
|
|
1775
1838
|
};
|
|
1776
1839
|
const keys = containerKeys[chartType] ?? [];
|
|
1777
1840
|
let container;
|
|
@@ -1,9 +1,28 @@
|
|
|
1
|
-
import type { EmbeddedObject, EmbedShapeSpec } from "@rowsncolumns/spreadsheet";
|
|
1
|
+
import type { EmbeddedObject, EmbedImageSpec, EmbedShapeSpec } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import { type XMLParser } from "fast-xml-parser";
|
|
3
3
|
import { type StreamingZipParser } from "../../zip-parser-streaming";
|
|
4
4
|
export type EmbeddedObjectWithPosition = EmbeddedObject & {
|
|
5
5
|
isInsideCell?: boolean;
|
|
6
6
|
};
|
|
7
|
+
/** `processAnchors` anchor-type tags, keyed by the drawing element name. */
|
|
8
|
+
declare const ANCHOR_KIND_BY_ELEMENT: {
|
|
9
|
+
readonly oneCellAnchor: "oneCellAnchor";
|
|
10
|
+
readonly twoCellAnchor: "twoCellAnchors";
|
|
11
|
+
readonly absoluteAnchor: "absoluteAnchors";
|
|
12
|
+
};
|
|
13
|
+
type AnchorElementName = keyof typeof ANCHOR_KIND_BY_ELEMENT;
|
|
14
|
+
/**
|
|
15
|
+
* The `<xdr:wsDr>` anchors in document order — Excel's z-order (first is
|
|
16
|
+
* the back-most object). The unordered parse keeps document order within one
|
|
17
|
+
* element name but groups the three anchor kinds apart, so the kind sequence
|
|
18
|
+
* is read off the raw part and the parsed nodes are dealt out in that order.
|
|
19
|
+
* Anchors the scan does not account for (namespace quirks) trail in their
|
|
20
|
+
* parsed order, so nothing is ever dropped.
|
|
21
|
+
*/
|
|
22
|
+
export declare function anchorsInDocumentOrder(drawing: any, drawingXml: string): Array<{
|
|
23
|
+
kind: (typeof ANCHOR_KIND_BY_ELEMENT)[AnchorElementName];
|
|
24
|
+
node: any;
|
|
25
|
+
}>;
|
|
7
26
|
/**
|
|
8
27
|
* Process different types of image anchors
|
|
9
28
|
* @param anchors The anchor elements from the drawing
|
|
@@ -15,6 +34,13 @@ export type EmbeddedObjectWithPosition = EmbeddedObject & {
|
|
|
15
34
|
* @returns An array of image objects with their properties and binary data
|
|
16
35
|
*/
|
|
17
36
|
export declare function processAnchors(anchors: any, anchorType: string, drawingPath: string, sheetId: number, zipParser: StreamingZipParser, xmlParser: XMLParser): Promise<EmbeddedObjectWithPosition[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Picture-format adjustments off an `<xdr:pic>`: `<a:blipFill><a:srcRect>`
|
|
39
|
+
* (crop), `<a:blip><a:lum bright contrast>` (brightness / contrast) and
|
|
40
|
+
* `<a:blip><a:alphaModFix amt>` (opacity → `transparency`). Only present
|
|
41
|
+
* values are returned so an untouched picture stays a bare image spec.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parsePictureAdjustments(picture: any): Pick<EmbedImageSpec, "crop" | "brightness" | "contrast" | "transparency">;
|
|
18
44
|
/**
|
|
19
45
|
* Whether an `<xdr:sp>` should import as a drawing shape (`EmbedShapeSpec`)
|
|
20
46
|
* rather than a textbox. Text boxes are excluded explicitly (`txBox="1"`), and
|
|
@@ -36,4 +62,5 @@ export declare function parseShapeSpec(shape: any): EmbedShapeSpec;
|
|
|
36
62
|
* @returns Boolean indicating if the image is inside a cell
|
|
37
63
|
*/
|
|
38
64
|
export declare function determineIfOneCellInsideCell(fromColOff: number, fromRowOff: number, fLocksWithSheet: string, cx: number, cy: number): boolean;
|
|
65
|
+
export {};
|
|
39
66
|
//# sourceMappingURL=drawing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAEd,cAAc,
|
|
1
|
+
{"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAEd,cAAc,EACd,cAAc,EAYf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAoDrE,MAAM,MAAM,0BAA0B,GAAG,cAAc,GAAG;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,4EAA4E;AAC5E,QAAA,MAAM,sBAAsB;;;;CAIlB,CAAC;AAEX,KAAK,iBAAiB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAK7D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,GACjB,KAAK,CAAC;IACP,IAAI,EAAE,CAAC,OAAO,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACzD,IAAI,EAAE,GAAG,CAAC;CACX,CAAC,CAkCD;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,0BAA0B,EAAE,CAAC,CA8dvC;AASD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,GAAG,GACX,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC,CAuC3E;AA6OD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CASlD;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,cAAc,CA8CzD;AA8MD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAqBT"}
|
|
@@ -41,6 +41,54 @@ const CELL_IMAGE_OFFSET_THRESHOLD_PX = 1;
|
|
|
41
41
|
function emuToPixels(emuValue) {
|
|
42
42
|
return Math.round(emuValue / EMU_PER_PIXEL);
|
|
43
43
|
}
|
|
44
|
+
/** `processAnchors` anchor-type tags, keyed by the drawing element name. */
|
|
45
|
+
const ANCHOR_KIND_BY_ELEMENT = {
|
|
46
|
+
oneCellAnchor: "oneCellAnchor",
|
|
47
|
+
twoCellAnchor: "twoCellAnchors",
|
|
48
|
+
absoluteAnchor: "absoluteAnchors",
|
|
49
|
+
};
|
|
50
|
+
const ANCHOR_ELEMENT_REGEX = /<(?:[A-Za-z_][\w.-]*:)?(oneCellAnchor|twoCellAnchor|absoluteAnchor)(?=[\s/>])/g;
|
|
51
|
+
/**
|
|
52
|
+
* The `<xdr:wsDr>` anchors in document order — Excel's z-order (first is
|
|
53
|
+
* the back-most object). The unordered parse keeps document order within one
|
|
54
|
+
* element name but groups the three anchor kinds apart, so the kind sequence
|
|
55
|
+
* is read off the raw part and the parsed nodes are dealt out in that order.
|
|
56
|
+
* Anchors the scan does not account for (namespace quirks) trail in their
|
|
57
|
+
* parsed order, so nothing is ever dropped.
|
|
58
|
+
*/
|
|
59
|
+
export function anchorsInDocumentOrder(drawing, drawingXml) {
|
|
60
|
+
const nodesByElement = {
|
|
61
|
+
oneCellAnchor: [],
|
|
62
|
+
twoCellAnchor: [],
|
|
63
|
+
absoluteAnchor: [],
|
|
64
|
+
};
|
|
65
|
+
for (const element of Object.keys(nodesByElement)) {
|
|
66
|
+
const parsed = get(drawing, `xdr:wsDr.xdr:${element}`) || get(drawing, `wsDr.${element}`);
|
|
67
|
+
if (!parsed)
|
|
68
|
+
continue;
|
|
69
|
+
nodesByElement[element] = Array.isArray(parsed) ? parsed : [parsed];
|
|
70
|
+
}
|
|
71
|
+
const cursor = {
|
|
72
|
+
oneCellAnchor: 0,
|
|
73
|
+
twoCellAnchor: 0,
|
|
74
|
+
absoluteAnchor: 0,
|
|
75
|
+
};
|
|
76
|
+
const ordered = [];
|
|
77
|
+
for (const match of drawingXml.matchAll(ANCHOR_ELEMENT_REGEX)) {
|
|
78
|
+
const element = match[1];
|
|
79
|
+
const node = nodesByElement[element][cursor[element]];
|
|
80
|
+
if (node === undefined)
|
|
81
|
+
continue;
|
|
82
|
+
cursor[element] += 1;
|
|
83
|
+
ordered.push({ kind: ANCHOR_KIND_BY_ELEMENT[element], node });
|
|
84
|
+
}
|
|
85
|
+
for (const element of Object.keys(nodesByElement)) {
|
|
86
|
+
for (const node of nodesByElement[element].slice(cursor[element])) {
|
|
87
|
+
ordered.push({ kind: ANCHOR_KIND_BY_ELEMENT[element], node });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return ordered;
|
|
91
|
+
}
|
|
44
92
|
/**
|
|
45
93
|
* Process different types of image anchors
|
|
46
94
|
* @param anchors The anchor elements from the drawing
|
|
@@ -410,6 +458,7 @@ export async function processAnchors(anchors, anchorType, drawingPath, sheetId,
|
|
|
410
458
|
imageUrl: createDataUrl(imageData, imageType),
|
|
411
459
|
type: "image",
|
|
412
460
|
description: imageName,
|
|
461
|
+
...parsePictureAdjustments(picture),
|
|
413
462
|
},
|
|
414
463
|
position,
|
|
415
464
|
draggable: true,
|
|
@@ -418,6 +467,56 @@ export async function processAnchors(anchors, anchorType, drawingPath, sheetId,
|
|
|
418
467
|
}
|
|
419
468
|
return images;
|
|
420
469
|
}
|
|
470
|
+
/** DrawingML per-mille-percent (100000 = 100%) → fraction, or undefined. */
|
|
471
|
+
const pctToFraction = (value) => {
|
|
472
|
+
if (value === undefined || value === null || value === "")
|
|
473
|
+
return undefined;
|
|
474
|
+
const n = Number(value);
|
|
475
|
+
return Number.isFinite(n) ? n / 100000 : undefined;
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* Picture-format adjustments off an `<xdr:pic>`: `<a:blipFill><a:srcRect>`
|
|
479
|
+
* (crop), `<a:blip><a:lum bright contrast>` (brightness / contrast) and
|
|
480
|
+
* `<a:blip><a:alphaModFix amt>` (opacity → `transparency`). Only present
|
|
481
|
+
* values are returned so an untouched picture stays a bare image spec.
|
|
482
|
+
*/
|
|
483
|
+
export function parsePictureAdjustments(picture) {
|
|
484
|
+
const blipFill = get(picture, "xdr:blipFill") ?? get(picture, "blipFill") ?? undefined;
|
|
485
|
+
const blip = get(blipFill, "a:blip") ?? get(blipFill, "blip");
|
|
486
|
+
const out = {};
|
|
487
|
+
const srcRect = get(blipFill, "a:srcRect.a$") ?? get(blipFill, "srcRect.a$");
|
|
488
|
+
if (srcRect) {
|
|
489
|
+
const crop = {};
|
|
490
|
+
const left = pctToFraction(srcRect.l);
|
|
491
|
+
const top = pctToFraction(srcRect.t);
|
|
492
|
+
const right = pctToFraction(srcRect.r);
|
|
493
|
+
const bottom = pctToFraction(srcRect.b);
|
|
494
|
+
if (left)
|
|
495
|
+
crop.left = left;
|
|
496
|
+
if (top)
|
|
497
|
+
crop.top = top;
|
|
498
|
+
if (right)
|
|
499
|
+
crop.right = right;
|
|
500
|
+
if (bottom)
|
|
501
|
+
crop.bottom = bottom;
|
|
502
|
+
if (Object.keys(crop).length)
|
|
503
|
+
out.crop = crop;
|
|
504
|
+
}
|
|
505
|
+
const lum = get(blip, "a:lum.a$") ?? get(blip, "lum.a$");
|
|
506
|
+
if (lum) {
|
|
507
|
+
const brightness = pctToFraction(lum.bright);
|
|
508
|
+
const contrast = pctToFraction(lum.contrast);
|
|
509
|
+
if (brightness)
|
|
510
|
+
out.brightness = brightness;
|
|
511
|
+
if (contrast)
|
|
512
|
+
out.contrast = contrast;
|
|
513
|
+
}
|
|
514
|
+
const alpha = pctToFraction(get(blip, "a:alphaModFix.a$.amt") ?? get(blip, "alphaModFix.a$.amt"));
|
|
515
|
+
if (alpha !== undefined && alpha < 1) {
|
|
516
|
+
out.transparency = Math.round((1 - alpha) * 100000) / 100000;
|
|
517
|
+
}
|
|
518
|
+
return out;
|
|
519
|
+
}
|
|
421
520
|
/**
|
|
422
521
|
* Parse color from DrawingML color element
|
|
423
522
|
* Supports both RGB (srgbClr) and theme colors (schemeClr)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellFormat, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, NamedRange, Sheet, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
1
|
+
import type { CellFormat, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, NamedRange, ProtectedRange, Sheet, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { CommentThread, TextFormat, TextFormatRun } from "@rowsncolumns/common-types";
|
|
3
3
|
import { XMLParser } from "fast-xml-parser";
|
|
4
4
|
import type { IWorkbookPlugin } from "../../interface";
|
|
@@ -158,6 +158,18 @@ export declare class XlsxPlugin extends BaseWorkbookPlugin implements IWorkbookP
|
|
|
158
158
|
* `getDataValidations()` aggregates these per-sheet caches, keeping ids
|
|
159
159
|
* stable across per-sheet and workbook-wide callers.
|
|
160
160
|
*/
|
|
161
|
+
/**
|
|
162
|
+
* `<protectedRanges>` per sheet, populated while `getSheets` builds each
|
|
163
|
+
* `Sheet` (the element sits after `<sheetData>` in the worksheet part, so it
|
|
164
|
+
* rides the same geometry pass). Read back via `getProtectedRanges`.
|
|
165
|
+
*/
|
|
166
|
+
private protectedRangesBySheet;
|
|
167
|
+
/**
|
|
168
|
+
* The builtin `_xlnm.Print_Area` / `_xlnm.Print_Titles` defined names,
|
|
169
|
+
* hoisted out of `namedRanges` (they are sheet-scoped facets, not user
|
|
170
|
+
* names) and merged into each sheet's `printSettings` by `getSheets()`.
|
|
171
|
+
*/
|
|
172
|
+
private printNamesBySheetId;
|
|
161
173
|
private dataValidationsBySheetCache;
|
|
162
174
|
/** Per-sheet memo for conditional formatting, mirroring the DV cache. */
|
|
163
175
|
private conditionalFormattingBySheetCache;
|
|
@@ -253,6 +265,12 @@ export declare class XlsxPlugin extends BaseWorkbookPlugin implements IWorkbookP
|
|
|
253
265
|
getSharedStrings(): string[];
|
|
254
266
|
getRelations(): Promise<Record<string, Relationship>>;
|
|
255
267
|
_getSheets(): any[];
|
|
268
|
+
/**
|
|
269
|
+
* Resolve a builtin print name to its sheet (`localSheetId` indexes the
|
|
270
|
+
* `<sheets>` order; a name without scope falls back to the sheet named in
|
|
271
|
+
* the formula) and record the parsed print area / titles for `getSheets()`.
|
|
272
|
+
*/
|
|
273
|
+
private stashBuiltinPrintName;
|
|
256
274
|
_getNamedRanges(): NamedRange[];
|
|
257
275
|
/**
|
|
258
276
|
* Returns true if the workbook signals that Excel should perform a full
|
|
@@ -299,6 +317,13 @@ export declare class XlsxPlugin extends BaseWorkbookPlugin implements IWorkbookP
|
|
|
299
317
|
getDataValidations(): Promise<DataValidationRuleRecord[]>;
|
|
300
318
|
getDataValidationsForSheet(sheetId: number): Promise<DataValidationRuleRecord[]>;
|
|
301
319
|
private parseDataValidationsForSheet;
|
|
320
|
+
/**
|
|
321
|
+
* Allow-edit ranges (`<protectedRanges>/<protectedRange>`) in the model the
|
|
322
|
+
* `protect-range` command writes: `protectedRangeId` = the source `name`,
|
|
323
|
+
* `range` = the first `sqref` area plus `sheetId`. Available after
|
|
324
|
+
* `getSheets()`; sheet-level `<sheetProtection>` rides `Sheet.sheetProtection`.
|
|
325
|
+
*/
|
|
326
|
+
getProtectedRanges(sheetId?: number): ProtectedRange[];
|
|
302
327
|
getNamedRanges(): NamedRange[];
|
|
303
328
|
/**
|
|
304
329
|
* Parse the workbook's metadata files (docProps/core.xml + docProps/app.xml)
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/index.ts"],"names":[],"mappings":"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"}
|