dom-docx 0.1.0
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/API.md +533 -0
- package/LICENSE +21 -0
- package/README.md +236 -0
- package/dist/browser.d.ts +34 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +35 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +118 -0
- package/dist/cli.js.map +1 -0
- package/dist/converter/bordered-block.d.ts +54 -0
- package/dist/converter/bordered-block.d.ts.map +1 -0
- package/dist/converter/bordered-block.js +124 -0
- package/dist/converter/bordered-block.js.map +1 -0
- package/dist/converter/build-docx.d.ts +46 -0
- package/dist/converter/build-docx.d.ts.map +1 -0
- package/dist/converter/build-docx.js +161 -0
- package/dist/converter/build-docx.js.map +1 -0
- package/dist/converter/computed-style-snapshot.browser.js +73 -0
- package/dist/converter/computed-style-snapshot.d.ts +10 -0
- package/dist/converter/computed-style-snapshot.d.ts.map +1 -0
- package/dist/converter/computed-style-snapshot.js +78 -0
- package/dist/converter/computed-style-snapshot.js.map +1 -0
- package/dist/converter/constants.d.ts +51 -0
- package/dist/converter/constants.d.ts.map +1 -0
- package/dist/converter/constants.js +163 -0
- package/dist/converter/constants.js.map +1 -0
- package/dist/converter/css.d.ts +112 -0
- package/dist/converter/css.d.ts.map +1 -0
- package/dist/converter/css.js +621 -0
- package/dist/converter/css.js.map +1 -0
- package/dist/converter/flex.d.ts +59 -0
- package/dist/converter/flex.d.ts.map +1 -0
- package/dist/converter/flex.js +252 -0
- package/dist/converter/flex.js.map +1 -0
- package/dist/converter/image.d.ts +38 -0
- package/dist/converter/image.d.ts.map +1 -0
- package/dist/converter/image.js +159 -0
- package/dist/converter/image.js.map +1 -0
- package/dist/converter/inline.d.ts +18 -0
- package/dist/converter/inline.d.ts.map +1 -0
- package/dist/converter/inline.js +213 -0
- package/dist/converter/inline.js.map +1 -0
- package/dist/converter/ooxml-patch.d.ts +23 -0
- package/dist/converter/ooxml-patch.d.ts.map +1 -0
- package/dist/converter/ooxml-patch.js +54 -0
- package/dist/converter/ooxml-patch.js.map +1 -0
- package/dist/converter/style-path.d.ts +4 -0
- package/dist/converter/style-path.d.ts.map +1 -0
- package/dist/converter/style-path.js +17 -0
- package/dist/converter/style-path.js.map +1 -0
- package/dist/converter/style-resolver-node.d.ts +7 -0
- package/dist/converter/style-resolver-node.d.ts.map +1 -0
- package/dist/converter/style-resolver-node.js +26 -0
- package/dist/converter/style-resolver-node.js.map +1 -0
- package/dist/converter/style-resolver.d.ts +24 -0
- package/dist/converter/style-resolver.d.ts.map +1 -0
- package/dist/converter/style-resolver.js +122 -0
- package/dist/converter/style-resolver.js.map +1 -0
- package/dist/converter/svg.d.ts +11 -0
- package/dist/converter/svg.d.ts.map +1 -0
- package/dist/converter/svg.js +116 -0
- package/dist/converter/svg.js.map +1 -0
- package/dist/converter/table.d.ts +8 -0
- package/dist/converter/table.d.ts.map +1 -0
- package/dist/converter/table.js +745 -0
- package/dist/converter/table.js.map +1 -0
- package/dist/converter/text-metrics.d.ts +17 -0
- package/dist/converter/text-metrics.d.ts.map +1 -0
- package/dist/converter/text-metrics.js +51 -0
- package/dist/converter/text-metrics.js.map +1 -0
- package/dist/converter/types.d.ts +82 -0
- package/dist/converter/types.d.ts.map +1 -0
- package/dist/converter/types.js +9 -0
- package/dist/converter/types.js.map +1 -0
- package/dist/converter/visitor.d.ts +11 -0
- package/dist/converter/visitor.d.ts.map +1 -0
- package/dist/converter/visitor.js +910 -0
- package/dist/converter/visitor.js.map +1 -0
- package/dist/converter.d.ts +28 -0
- package/dist/converter.d.ts.map +1 -0
- package/dist/converter.js +44 -0
- package/dist/converter.js.map +1 -0
- package/dist/html-wrap.d.ts +3 -0
- package/dist/html-wrap.d.ts.map +1 -0
- package/dist/html-wrap.js +26 -0
- package/dist/html-wrap.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/examples/README.md +39 -0
- package/examples/balance-sheet/compare_side_by_side.png +0 -0
- package/examples/balance-sheet/input.html +41 -0
- package/examples/balance-sheet/output.docx +0 -0
- package/examples/balance-sheet/preview.png +0 -0
- package/examples/invoice/compare_side_by_side.png +0 -0
- package/examples/invoice/input.html +88 -0
- package/examples/invoice/logo.png +0 -0
- package/examples/invoice/output.docx +0 -0
- package/examples/invoice/preview.png +0 -0
- package/examples/javascript-essay/compare_side_by_side.png +0 -0
- package/examples/javascript-essay/input.html +39 -0
- package/examples/javascript-essay/output.docx +0 -0
- package/examples/javascript-essay/preview.png +0 -0
- package/examples/product-launch-brief/compare_side_by_side.png +0 -0
- package/examples/product-launch-brief/input.html +120 -0
- package/examples/product-launch-brief/output.docx +0 -0
- package/examples/product-launch-brief/preview.png +0 -0
- package/examples/quarterly-financials/compare_side_by_side.png +0 -0
- package/examples/quarterly-financials/input.html +27 -0
- package/examples/quarterly-financials/output.docx +0 -0
- package/examples/quarterly-financials/preview.png +0 -0
- package/examples/react-dashboard/compare_side_by_side.png +0 -0
- package/examples/react-dashboard/input.html +1 -0
- package/examples/react-dashboard/output.docx +0 -0
- package/examples/react-dashboard/preview.html +107 -0
- package/examples/react-dashboard/preview.png +0 -0
- package/examples/regional-sales-dashboard/compare_side_by_side.png +0 -0
- package/examples/regional-sales-dashboard/input.html +129 -0
- package/examples/regional-sales-dashboard/output.docx +0 -0
- package/examples/regional-sales-dashboard/preview.png +0 -0
- package/examples/sales-contract/compare_side_by_side.png +0 -0
- package/examples/sales-contract/input.html +68 -0
- package/examples/sales-contract/output.docx +0 -0
- package/examples/sales-contract/preview.png +0 -0
- package/examples/sprint-retrospective/compare_side_by_side.png +0 -0
- package/examples/sprint-retrospective/input.html +51 -0
- package/examples/sprint-retrospective/output.docx +0 -0
- package/examples/sprint-retrospective/preview.png +0 -0
- package/package.json +108 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { AlignmentType, LineRuleType, Paragraph, ShadingType, TextRun } from "docx";
|
|
2
|
+
import { PRINTABLE_CONTENT_WIDTH_TWIPS } from "./constants.js";
|
|
3
|
+
import { parseColor, pxToHalfPoints, pxToTwips } from "./css.js";
|
|
4
|
+
function num(value, fallback = 0) {
|
|
5
|
+
const n = parseFloat(value ?? "");
|
|
6
|
+
return Number.isFinite(n) ? n : fallback;
|
|
7
|
+
}
|
|
8
|
+
function isElement(node) {
|
|
9
|
+
return node.type === "tag";
|
|
10
|
+
}
|
|
11
|
+
function textContent(element) {
|
|
12
|
+
let out = "";
|
|
13
|
+
for (const child of element.children ?? []) {
|
|
14
|
+
if (child.type === "text")
|
|
15
|
+
out += child.data ?? "";
|
|
16
|
+
else if (isElement(child))
|
|
17
|
+
out += textContent(child);
|
|
18
|
+
}
|
|
19
|
+
return out.replace(/\s+/g, " ").trim();
|
|
20
|
+
}
|
|
21
|
+
function collect(element, tag, into) {
|
|
22
|
+
for (const child of element.children ?? []) {
|
|
23
|
+
if (!isElement(child))
|
|
24
|
+
continue;
|
|
25
|
+
if (child.name.toLowerCase() === tag)
|
|
26
|
+
into.push(child);
|
|
27
|
+
collect(child, tag, into);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function isSvgElement(element) {
|
|
31
|
+
return element.name.toLowerCase() === "svg";
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Low-complexity SVG → native DOCX vector-ish blocks (no rasterization).
|
|
35
|
+
* Supports stacked `<rect>` bars (e.g. funnel/bar charts) rendered as centered
|
|
36
|
+
* shaded paragraph bands, plus `<text>` labels. Painter's-algorithm overlap is
|
|
37
|
+
* resolved so visible band heights match the browser render.
|
|
38
|
+
*/
|
|
39
|
+
export function convertSvg(svg) {
|
|
40
|
+
const viewBox = (svg.attribs?.viewbox ?? "").trim().split(/[\s,]+/).map(Number);
|
|
41
|
+
const hasViewBox = viewBox.length === 4 && viewBox.every((v) => Number.isFinite(v));
|
|
42
|
+
const widthAttr = num(svg.attribs?.width, hasViewBox ? viewBox[2] : 0);
|
|
43
|
+
const vbWidth = hasViewBox ? viewBox[2] : widthAttr;
|
|
44
|
+
// user units → displayed px
|
|
45
|
+
const scale = vbWidth > 0 && widthAttr > 0 ? widthAttr / vbWidth : 1;
|
|
46
|
+
const rectEls = [];
|
|
47
|
+
collect(svg, "rect", rectEls);
|
|
48
|
+
const rects = rectEls
|
|
49
|
+
.map((r) => ({
|
|
50
|
+
x: num(r.attribs?.x),
|
|
51
|
+
y: num(r.attribs?.y),
|
|
52
|
+
w: num(r.attribs?.width),
|
|
53
|
+
h: num(r.attribs?.height),
|
|
54
|
+
fill: parseColor(r.attribs?.fill) ?? "000000",
|
|
55
|
+
}))
|
|
56
|
+
.filter((r) => r.w > 0 && r.h > 0)
|
|
57
|
+
.sort((a, b) => a.y - b.y);
|
|
58
|
+
const textEls = [];
|
|
59
|
+
collect(svg, "text", textEls);
|
|
60
|
+
const texts = textEls
|
|
61
|
+
.map((t) => ({
|
|
62
|
+
x: num(t.attribs?.x),
|
|
63
|
+
y: num(t.attribs?.y),
|
|
64
|
+
text: textContent(t),
|
|
65
|
+
fill: parseColor(t.attribs?.fill),
|
|
66
|
+
fontPx: t.attribs?.["font-size"] ? num(t.attribs["font-size"]) : undefined,
|
|
67
|
+
}))
|
|
68
|
+
.filter((t) => t.text.length > 0);
|
|
69
|
+
const blocks = [];
|
|
70
|
+
// The SVG is laid out horizontally centered in the content column (figure is
|
|
71
|
+
// text-align:center). Map SVG user-x → page twips through that frame so shapes
|
|
72
|
+
// land at their true position, not merely page-centered.
|
|
73
|
+
const svgWidthTwips = pxToTwips(widthAttr);
|
|
74
|
+
const svgLeftTwips = Math.max(0, Math.round((PRINTABLE_CONTENT_WIDTH_TWIPS - svgWidthTwips) / 2));
|
|
75
|
+
const userToTwips = (userX) => svgLeftTwips + pxToTwips(userX * scale);
|
|
76
|
+
// Bars: shaded bands positioned by exact left/right indent. Visible height
|
|
77
|
+
// resolves stacked overlap so the top-painted (smallest-y) rect keeps full
|
|
78
|
+
// height and lower ones show only their exposed slice — matching how a browser
|
|
79
|
+
// paints later-defined rects on top.
|
|
80
|
+
let prevBottom = null;
|
|
81
|
+
rects.forEach((rect, i) => {
|
|
82
|
+
const bottom = rect.y + rect.h;
|
|
83
|
+
let bandPx = rect.h;
|
|
84
|
+
if (i > 0 && prevBottom !== null) {
|
|
85
|
+
bandPx = Math.min(rect.h, Math.max(1, bottom - prevBottom));
|
|
86
|
+
}
|
|
87
|
+
prevBottom = bottom;
|
|
88
|
+
const widthTwips = pxToTwips(rect.w * scale);
|
|
89
|
+
const heightTwips = pxToTwips(bandPx * scale);
|
|
90
|
+
const left = userToTwips(rect.x);
|
|
91
|
+
const right = Math.max(0, PRINTABLE_CONTENT_WIDTH_TWIPS - left - widthTwips);
|
|
92
|
+
blocks.push(new Paragraph({
|
|
93
|
+
alignment: AlignmentType.LEFT,
|
|
94
|
+
shading: { type: ShadingType.CLEAR, fill: rect.fill, color: "auto" },
|
|
95
|
+
indent: { left, right },
|
|
96
|
+
spacing: { before: 0, after: 0, line: heightTwips, lineRule: LineRuleType.EXACT },
|
|
97
|
+
children: [new TextRun({ text: "", size: 2 })],
|
|
98
|
+
}));
|
|
99
|
+
});
|
|
100
|
+
// Text labels: positioned at their true user-x via the same frame.
|
|
101
|
+
for (const t of texts) {
|
|
102
|
+
blocks.push(new Paragraph({
|
|
103
|
+
indent: { left: userToTwips(t.x) },
|
|
104
|
+
spacing: { before: pxToTwips(2), after: 0 },
|
|
105
|
+
children: [
|
|
106
|
+
new TextRun({
|
|
107
|
+
text: t.text,
|
|
108
|
+
color: t.fill ?? "666666",
|
|
109
|
+
size: t.fontPx ? pxToHalfPoints(t.fontPx) : pxToHalfPoints(11),
|
|
110
|
+
}),
|
|
111
|
+
],
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
return blocks;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/converter/svg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAmBjE,SAAS,GAAG,CAAC,KAAyB,EAAE,QAAQ,GAAG,CAAC;IAClD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aAC9C,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,OAAO,CAAC,OAAgB,EAAE,GAAW,EAAE,IAAe;IAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,SAAS;QAChC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAc,OAAO;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;QACxB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,QAAQ;KAC9C,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAc,OAAO;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;QACjC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,6EAA6E;IAC7E,+EAA+E;IAC/E,yDAAyD;IACzD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,6BAA6B,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAEvF,2EAA2E;IAC3E,2EAA2E;IAC3E,+EAA+E;IAC/E,qCAAqC;IACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,UAAU,GAAG,MAAM,CAAC;QAEpB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;QAE7E,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,CAAC;YACZ,SAAS,EAAE,aAAa,CAAC,IAAI;YAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;YACpE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACvB,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE;YACjF,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SAC/C,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3C,QAAQ,EAAE;gBACR,IAAI,OAAO,CAAC;oBACV,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,QAAQ;oBACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;iBAC/D,CAAC;aACH;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Table } from "docx";
|
|
2
|
+
import type { CheerioAPI } from "cheerio";
|
|
3
|
+
import type { Element } from "domhandler";
|
|
4
|
+
import type { StyleResolver } from "./style-resolver.js";
|
|
5
|
+
import type { DocxBlock } from "./types.js";
|
|
6
|
+
export declare function convertTable($: CheerioAPI, table: Element, styleResolver?: StyleResolver, contentWidthTwips?: number, fillParent?: boolean): Table;
|
|
7
|
+
export declare function convertTableBlock($: CheerioAPI, table: Element, styleResolver?: StyleResolver): DocxBlock;
|
|
8
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/converter/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAKN,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,YAAY,CAAC;AAWnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAy3B5C,wBAAgB,YAAY,CAC1B,CAAC,EAAE,UAAU,EACb,KAAK,EAAE,OAAO,EACd,aAAa,GAAE,aAAqC,EACpD,iBAAiB,GAAE,MAA4B,EAC/C,UAAU,UAAQ,GACjB,KAAK,CAkCP;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,UAAU,EACb,KAAK,EAAE,OAAO,EACd,aAAa,GAAE,aAAqC,GACnD,SAAS,CAEX"}
|