@json-to-office/core-docx 7.3.1 → 7.5.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/dist/components/highcharts.d.ts.map +1 -1
- package/dist/core/generateFromIr.d.ts.map +1 -1
- package/dist/index.js +381 -38
- package/dist/index.js.map +1 -1
- package/dist/ir/compiler.d.ts.map +1 -1
- package/dist/plugin/example/index.js +381 -38
- package/dist/plugin/example/index.js.map +1 -1
- package/dist/renderers/docxjs/docxSubpath.d.ts +4 -4
- package/dist/renderers/docxjs/docxSubpath.d.ts.map +1 -1
- package/dist/renderers/docxjs/emit.d.ts +5 -0
- package/dist/renderers/docxjs/emit.d.ts.map +1 -1
- package/dist/renderers/docxjs/index.d.ts +5 -3
- package/dist/renderers/docxjs/index.d.ts.map +1 -1
- package/dist/renderers/docxjs/pageNumbers.d.ts +113 -0
- package/dist/renderers/docxjs/pageNumbers.d.ts.map +1 -0
- package/dist/renderers/office-open/emit.d.ts.map +1 -1
- package/dist/styles/index.d.ts +1 -1
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/templates/themes/index.d.ts +25 -0
- package/dist/templates/themes/index.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highcharts.d.ts","sourceRoot":"","sources":["../../src/components/highcharts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"highcharts.d.ts","sourceRoot":"","sources":["../../src/components/highcharts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;AAIjE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,uBAAuB,GAAG,SAAS,GAClD,MAAM,CAMR;AAED;;GAEG;AACH;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,QAAQ,EAAE,iBAAiB,EAAE,GAAG,SAAS,GACxC,IAAI,CAkBN;AA6PD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,cAAc,CAAC,EAAE,uBAAuB,EACxC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,EACzC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,EAC9B,KAAK,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFromIr.d.ts","sourceRoot":"","sources":["../../src/core/generateFromIr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAgB,IAAI,0BAA0B;IAC9C,SAAgB,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;gBAEhD,UAAU,EAAE,SAAS,oBAAoB,EAAE;CAiBxD;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;IACzD,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,uBAA4B,EACrC,SAAS,CAAC,EAAE,iBAAiB,EAAE,GAC9B,OAAO,CAAC,YAAY,CAAC,CAOvB;
|
|
1
|
+
{"version":3,"file":"generateFromIr.d.ts","sourceRoot":"","sources":["../../src/core/generateFromIr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAgB,IAAI,0BAA0B;IAC9C,SAAgB,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;gBAEhD,UAAU,EAAE,SAAS,oBAAoB,EAAE;CAiBxD;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;IACzD,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,uBAA4B,EACrC,SAAS,CAAC,EAAE,iBAAiB,EAAE,GAC9B,OAAO,CAAC,YAAY,CAAC,CAOvB;AA4GD,0EAA0E;AAC1E,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAcjC"}
|
package/dist/index.js
CHANGED
|
@@ -2930,7 +2930,7 @@ var init_chartText = __esm({
|
|
|
2930
2930
|
});
|
|
2931
2931
|
|
|
2932
2932
|
// src/renderers/docxjs/docxSubpath.ts
|
|
2933
|
-
function docxSubpath(specifier, component, importer) {
|
|
2933
|
+
function docxSubpath(specifier, component, importer, since = "9.8.0") {
|
|
2934
2934
|
let module;
|
|
2935
2935
|
let failure;
|
|
2936
2936
|
let loading;
|
|
@@ -2954,7 +2954,7 @@ function docxSubpath(specifier, component, importer) {
|
|
|
2954
2954
|
const { reason } = failure;
|
|
2955
2955
|
const detail = reason instanceof Error ? reason.message : String(reason);
|
|
2956
2956
|
throw new Error(
|
|
2957
|
-
`The docx \`${component}\` component needs docx
|
|
2957
|
+
`The docx \`${component}\` component needs docx ${since} or later: the \`${specifier}\` entry could not be loaded (${detail})`
|
|
2958
2958
|
);
|
|
2959
2959
|
}
|
|
2960
2960
|
throw new Error(
|
|
@@ -3551,8 +3551,19 @@ function emitBlock(block2, resources = /* @__PURE__ */ new Map()) {
|
|
|
3551
3551
|
return assertNever2(block2, "DocxIrBlock");
|
|
3552
3552
|
}
|
|
3553
3553
|
}
|
|
3554
|
+
function emitOutsideBody(emit) {
|
|
3555
|
+
const was = outsideBody;
|
|
3556
|
+
outsideBody = true;
|
|
3557
|
+
try {
|
|
3558
|
+
return emit();
|
|
3559
|
+
} finally {
|
|
3560
|
+
outsideBody = was;
|
|
3561
|
+
}
|
|
3562
|
+
}
|
|
3554
3563
|
function emitToc(block2) {
|
|
3555
|
-
|
|
3564
|
+
const cached = outsideBody && block2.cachedEntries?.length;
|
|
3565
|
+
const Field = cached ? ThemedTableOfContents : TableOfContents;
|
|
3566
|
+
return new Field(block2.alias ?? "Table of Contents", {
|
|
3556
3567
|
...block2.hyperlink !== void 0 ? { hyperlink: block2.hyperlink } : {},
|
|
3557
3568
|
...block2.headingRange ? {
|
|
3558
3569
|
headingStyleRange: `${block2.headingRange.from}-${block2.headingRange.to}`
|
|
@@ -3565,7 +3576,7 @@ function emitToc(block2) {
|
|
|
3565
3576
|
pageNumbersEntryLevelsRange: block2.omitPageNumbersForLevels.map((range) => `${range.from}-${range.to}`).join(",")
|
|
3566
3577
|
} : {},
|
|
3567
3578
|
...block2.entrySeparator !== void 0 ? { entryAndPageNumberSeparator: block2.entrySeparator } : {},
|
|
3568
|
-
...
|
|
3579
|
+
...cached ? {
|
|
3569
3580
|
cachedEntries: block2.cachedEntries.map((entry) => ({
|
|
3570
3581
|
title: entry.text,
|
|
3571
3582
|
level: entry.level
|
|
@@ -3688,7 +3699,7 @@ function emitBorder(border3) {
|
|
|
3688
3699
|
...border3.spacePoints !== void 0 ? { space: border3.spacePoints } : {}
|
|
3689
3700
|
};
|
|
3690
3701
|
}
|
|
3691
|
-
var ALIGNMENT2, PAGE_FIELDS, isSequenceField, WRAP_TYPE, ThemedTableOfContents, VERTICAL_ALIGN, TABLE_ANCHOR, HORIZONTAL_POSITION, VERTICAL_POSITION;
|
|
3702
|
+
var ALIGNMENT2, PAGE_FIELDS, isSequenceField, WRAP_TYPE, ThemedTableOfContents, outsideBody, VERTICAL_ALIGN, TABLE_ANCHOR, HORIZONTAL_POSITION, VERTICAL_POSITION;
|
|
3692
3703
|
var init_emit = __esm({
|
|
3693
3704
|
"src/renderers/docxjs/emit.ts"() {
|
|
3694
3705
|
"use strict";
|
|
@@ -3714,6 +3725,7 @@ var init_emit = __esm({
|
|
|
3714
3725
|
Object.defineProperty(ThemedTableOfContents.prototype, "getTabStopsForLevel", {
|
|
3715
3726
|
value: () => []
|
|
3716
3727
|
});
|
|
3728
|
+
outsideBody = false;
|
|
3717
3729
|
VERTICAL_ALIGN = {
|
|
3718
3730
|
top: VerticalAlign.TOP,
|
|
3719
3731
|
center: VerticalAlign.CENTER,
|
|
@@ -3901,6 +3913,318 @@ var init_styles2 = __esm({
|
|
|
3901
3913
|
}
|
|
3902
3914
|
});
|
|
3903
3915
|
|
|
3916
|
+
// src/renderers/docxjs/pageNumbers.ts
|
|
3917
|
+
import {
|
|
3918
|
+
Tab as Tab2
|
|
3919
|
+
} from "docx";
|
|
3920
|
+
function needsPageNumbers(ir) {
|
|
3921
|
+
const seen = /* @__PURE__ */ new Set();
|
|
3922
|
+
const visit = (value) => {
|
|
3923
|
+
if (typeof value !== "object" || value === null) return false;
|
|
3924
|
+
if (ArrayBuffer.isView(value) || seen.has(value)) return false;
|
|
3925
|
+
seen.add(value);
|
|
3926
|
+
if (Array.isArray(value)) return value.some(visit);
|
|
3927
|
+
if (value.kind === "toc") return true;
|
|
3928
|
+
return Object.values(value).some(visit);
|
|
3929
|
+
};
|
|
3930
|
+
return ir.sections.some((section2) => visit(section2.children));
|
|
3931
|
+
}
|
|
3932
|
+
async function createPageNumberEstimator(ir) {
|
|
3933
|
+
await layout.load();
|
|
3934
|
+
const cached = cachedContentsEntries(ir);
|
|
3935
|
+
const separators = contentsSeparators(ir);
|
|
3936
|
+
const estimate = layout.loaded() ? layout.get().estimatePageNumbersWith({ guess: true }) : void 0;
|
|
3937
|
+
return (body, context) => {
|
|
3938
|
+
renumberContentsBookmarks(body);
|
|
3939
|
+
restoreEntryNumbers(body, cached, separators);
|
|
3940
|
+
dropContentsEntryTabs(body);
|
|
3941
|
+
writeSeparatorTabs(body, context);
|
|
3942
|
+
endContentsInLastEntry(body);
|
|
3943
|
+
if (!estimate) {
|
|
3944
|
+
unavailable(
|
|
3945
|
+
`the \`docx/layout\` entry could not be loaded (${failureOf(() => layout.get())})`
|
|
3946
|
+
);
|
|
3947
|
+
return { bookmarks: /* @__PURE__ */ new Map() };
|
|
3948
|
+
}
|
|
3949
|
+
try {
|
|
3950
|
+
const estimated = estimate(body, context);
|
|
3951
|
+
if (complete(estimated)) clearUpdateFields(context.file);
|
|
3952
|
+
return estimated;
|
|
3953
|
+
} catch (error) {
|
|
3954
|
+
unavailable(error instanceof Error ? error.message : String(error));
|
|
3955
|
+
return { bookmarks: /* @__PURE__ */ new Map() };
|
|
3956
|
+
}
|
|
3957
|
+
};
|
|
3958
|
+
}
|
|
3959
|
+
function unavailable(reason) {
|
|
3960
|
+
reportWarning(
|
|
3961
|
+
"toc",
|
|
3962
|
+
PAGE_NUMBERS_UNAVAILABLE,
|
|
3963
|
+
`The table of contents is written without page numbers: laying the pages out failed (${reason}). Word fills them in when it updates the fields on open.`
|
|
3964
|
+
);
|
|
3965
|
+
}
|
|
3966
|
+
function failureOf(get) {
|
|
3967
|
+
try {
|
|
3968
|
+
get();
|
|
3969
|
+
return "unknown";
|
|
3970
|
+
} catch (error) {
|
|
3971
|
+
return error instanceof Error ? error.message : String(error);
|
|
3972
|
+
}
|
|
3973
|
+
}
|
|
3974
|
+
function complete(estimated) {
|
|
3975
|
+
return estimated.pageCount !== void 0 && (estimated.guesses ?? []).length === 0;
|
|
3976
|
+
}
|
|
3977
|
+
function clearUpdateFields(file) {
|
|
3978
|
+
const root = file?.Settings?.root;
|
|
3979
|
+
if (!root) return;
|
|
3980
|
+
const at = root.findIndex(
|
|
3981
|
+
(element) => element?.rootKey === "w:updateFields"
|
|
3982
|
+
);
|
|
3983
|
+
if (at >= 0) root.splice(at, 1);
|
|
3984
|
+
}
|
|
3985
|
+
function isContentsField(sdt) {
|
|
3986
|
+
let found = false;
|
|
3987
|
+
const visit = (element) => {
|
|
3988
|
+
if (found) return;
|
|
3989
|
+
if (nameOf(element) === "w:instrText") {
|
|
3990
|
+
found = childrenOf(element).some(
|
|
3991
|
+
(child) => typeof child === "string" && /^\s*TOC\b/.test(child)
|
|
3992
|
+
);
|
|
3993
|
+
return;
|
|
3994
|
+
}
|
|
3995
|
+
childrenOf(element).forEach(visit);
|
|
3996
|
+
};
|
|
3997
|
+
visit(sdt);
|
|
3998
|
+
return found;
|
|
3999
|
+
}
|
|
4000
|
+
function contentsFields(body) {
|
|
4001
|
+
const found = [];
|
|
4002
|
+
const visit = (element) => {
|
|
4003
|
+
const name = nameOf(element);
|
|
4004
|
+
if (name === void 0 || name === "_attr") return;
|
|
4005
|
+
if (name === "w:sdt" && isContentsField(element)) {
|
|
4006
|
+
found.push(element);
|
|
4007
|
+
return;
|
|
4008
|
+
}
|
|
4009
|
+
childrenOf(element).forEach(visit);
|
|
4010
|
+
};
|
|
4011
|
+
visit(body);
|
|
4012
|
+
return found;
|
|
4013
|
+
}
|
|
4014
|
+
function entryParagraphs(field) {
|
|
4015
|
+
return childrenOf(field).filter((content) => nameOf(content) === "w:sdtContent").flatMap(
|
|
4016
|
+
(content) => childrenOf(content).filter((paragraph2) => nameOf(paragraph2) === "w:p")
|
|
4017
|
+
);
|
|
4018
|
+
}
|
|
4019
|
+
function dropContentsEntryTabs(body) {
|
|
4020
|
+
for (const field of contentsFields(body)) {
|
|
4021
|
+
for (const paragraph2 of entryParagraphs(field)) {
|
|
4022
|
+
for (const properties of childrenOf(paragraph2)) {
|
|
4023
|
+
if (nameOf(properties) !== "w:pPr") continue;
|
|
4024
|
+
properties["w:pPr"] = childrenOf(properties).filter(
|
|
4025
|
+
(child) => nameOf(child) !== "w:tabs"
|
|
4026
|
+
);
|
|
4027
|
+
}
|
|
4028
|
+
}
|
|
4029
|
+
}
|
|
4030
|
+
}
|
|
4031
|
+
function endContentsInLastEntry(body) {
|
|
4032
|
+
for (const field of contentsFields(body)) {
|
|
4033
|
+
for (const content of childrenOf(field)) {
|
|
4034
|
+
if (nameOf(content) !== "w:sdtContent") continue;
|
|
4035
|
+
const paragraphs = childrenOf(content);
|
|
4036
|
+
const last = paragraphs[paragraphs.length - 1];
|
|
4037
|
+
const entry = paragraphs[paragraphs.length - 2];
|
|
4038
|
+
if (nameOf(last) !== "w:p" || nameOf(entry) !== "w:p") continue;
|
|
4039
|
+
const runs = childrenOf(last);
|
|
4040
|
+
const onlyTheEnd = runs.length === 1 && nameOf(runs[0]) === "w:r" && childrenOf(runs[0]).every(
|
|
4041
|
+
(child) => nameOf(child) === "w:fldChar" && attributesOf(child)?.["w:fldCharType"] === "end"
|
|
4042
|
+
);
|
|
4043
|
+
const entries = paragraphs.filter(
|
|
4044
|
+
(paragraph2) => textNodes(paragraph2).length > 0
|
|
4045
|
+
);
|
|
4046
|
+
if (!onlyTheEnd || entries.length < 2 || textNodes(entry).length === 0)
|
|
4047
|
+
continue;
|
|
4048
|
+
childrenOf(entry).push(runs[0]);
|
|
4049
|
+
paragraphs.pop();
|
|
4050
|
+
}
|
|
4051
|
+
}
|
|
4052
|
+
}
|
|
4053
|
+
function writeSeparatorTabs(body, context) {
|
|
4054
|
+
const tab = () => new Tab2().prepForXml(context);
|
|
4055
|
+
const visit = (element) => {
|
|
4056
|
+
const name = nameOf(element);
|
|
4057
|
+
if (name === void 0 || name === "_attr") return;
|
|
4058
|
+
if (name === "w:r") {
|
|
4059
|
+
const children = childrenOf(element);
|
|
4060
|
+
children.forEach((child, index) => {
|
|
4061
|
+
if (nameOf(child) !== "w:t") return;
|
|
4062
|
+
const text = childrenOf(child).filter(
|
|
4063
|
+
(part) => typeof part === "string"
|
|
4064
|
+
);
|
|
4065
|
+
if (text.length === 1 && text[0] === " ") children[index] = tab();
|
|
4066
|
+
});
|
|
4067
|
+
return;
|
|
4068
|
+
}
|
|
4069
|
+
childrenOf(element).forEach(visit);
|
|
4070
|
+
};
|
|
4071
|
+
for (const field of contentsFields(body))
|
|
4072
|
+
entryParagraphs(field).forEach(visit);
|
|
4073
|
+
}
|
|
4074
|
+
function textNodes(element) {
|
|
4075
|
+
const name = nameOf(element);
|
|
4076
|
+
if (name === void 0 || name === "_attr" || name === "w:instrText")
|
|
4077
|
+
return [];
|
|
4078
|
+
const children = childrenOf(element);
|
|
4079
|
+
if (name === "w:t")
|
|
4080
|
+
return children.flatMap(
|
|
4081
|
+
(child, index) => typeof child === "string" ? [{ parent: children, index }] : []
|
|
4082
|
+
);
|
|
4083
|
+
return children.flatMap(textNodes);
|
|
4084
|
+
}
|
|
4085
|
+
function contentsSeparators(ir) {
|
|
4086
|
+
const separators = [];
|
|
4087
|
+
const visit = (value) => {
|
|
4088
|
+
if (typeof value !== "object" || value === null) return;
|
|
4089
|
+
if (ArrayBuffer.isView(value)) return;
|
|
4090
|
+
if (Array.isArray(value)) {
|
|
4091
|
+
value.forEach(visit);
|
|
4092
|
+
return;
|
|
4093
|
+
}
|
|
4094
|
+
if (value.kind === "toc") {
|
|
4095
|
+
separators.push(value.entrySeparator);
|
|
4096
|
+
return;
|
|
4097
|
+
}
|
|
4098
|
+
Object.values(value).forEach(visit);
|
|
4099
|
+
};
|
|
4100
|
+
for (const section2 of ir.sections) visit(section2.children);
|
|
4101
|
+
return separators;
|
|
4102
|
+
}
|
|
4103
|
+
function cachedContentsEntries(ir) {
|
|
4104
|
+
const fields = [];
|
|
4105
|
+
const visit = (value) => {
|
|
4106
|
+
if (typeof value !== "object" || value === null) return;
|
|
4107
|
+
if (ArrayBuffer.isView(value)) return;
|
|
4108
|
+
if (Array.isArray(value)) {
|
|
4109
|
+
value.forEach(visit);
|
|
4110
|
+
return;
|
|
4111
|
+
}
|
|
4112
|
+
if (value.kind === "toc") {
|
|
4113
|
+
const toc = value;
|
|
4114
|
+
fields.push(toc.cachedEntries?.map((entry) => entry.text));
|
|
4115
|
+
return;
|
|
4116
|
+
}
|
|
4117
|
+
Object.values(value).forEach(visit);
|
|
4118
|
+
};
|
|
4119
|
+
for (const section2 of ir.sections) visit(section2.children);
|
|
4120
|
+
return fields;
|
|
4121
|
+
}
|
|
4122
|
+
function restoreEntryNumbers(body, cached, separators = []) {
|
|
4123
|
+
contentsFields(body).forEach((field, index) => {
|
|
4124
|
+
const texts = cached[index];
|
|
4125
|
+
const paragraphs = entryParagraphs(field).filter(
|
|
4126
|
+
(paragraph2) => textNodes(paragraph2).length > 0
|
|
4127
|
+
);
|
|
4128
|
+
if (!texts || texts.length !== paragraphs.length) return;
|
|
4129
|
+
paragraphs.forEach((paragraph2, entry) => {
|
|
4130
|
+
const nodes = textNodes(paragraph2);
|
|
4131
|
+
let title = nodes.map(({ parent, index: at }) => parent[at]).join("");
|
|
4132
|
+
const separator = separators[index];
|
|
4133
|
+
if (separator && title.endsWith(separator))
|
|
4134
|
+
title = title.slice(0, -separator.length);
|
|
4135
|
+
const text = texts[entry];
|
|
4136
|
+
if (title === "" || text === title || !text.endsWith(title)) return;
|
|
4137
|
+
const [first] = nodes;
|
|
4138
|
+
first.parent[first.index] = text.slice(0, text.length - title.length) + first.parent[first.index];
|
|
4139
|
+
});
|
|
4140
|
+
});
|
|
4141
|
+
}
|
|
4142
|
+
function renumberContentsBookmarks(body) {
|
|
4143
|
+
const names = /* @__PURE__ */ new Map();
|
|
4144
|
+
const paragraphs = (element) => {
|
|
4145
|
+
const name = nameOf(element);
|
|
4146
|
+
if (name === void 0 || name === "_attr") return;
|
|
4147
|
+
if (name !== "w:p") {
|
|
4148
|
+
childrenOf(element).forEach(paragraphs);
|
|
4149
|
+
return;
|
|
4150
|
+
}
|
|
4151
|
+
const children = childrenOf(element);
|
|
4152
|
+
for (const start of children) {
|
|
4153
|
+
if (nameOf(start) !== "w:bookmarkStart") continue;
|
|
4154
|
+
const attributes = attributesOf(start);
|
|
4155
|
+
const old = attributes?.["w:name"];
|
|
4156
|
+
if (typeof old !== "string" || !CONTENTS_BOOKMARK.test(old)) continue;
|
|
4157
|
+
const ordinal = names.size + 1;
|
|
4158
|
+
const renamed2 = `_Toc${ordinal}`;
|
|
4159
|
+
const id = CONTENTS_BOOKMARK_ID_BASE + ordinal;
|
|
4160
|
+
names.set(old, renamed2);
|
|
4161
|
+
const oldId = attributes["w:id"];
|
|
4162
|
+
attributes["w:name"] = renamed2;
|
|
4163
|
+
attributes["w:id"] = id;
|
|
4164
|
+
const end = [...children].reverse().find(
|
|
4165
|
+
(child) => nameOf(child) === "w:bookmarkEnd" && String(attributesOf(child)?.["w:id"]) === String(oldId)
|
|
4166
|
+
);
|
|
4167
|
+
if (end) attributesOf(end)["w:id"] = id;
|
|
4168
|
+
}
|
|
4169
|
+
};
|
|
4170
|
+
paragraphs(body);
|
|
4171
|
+
if (names.size === 0) return;
|
|
4172
|
+
const references = (element) => {
|
|
4173
|
+
const name = nameOf(element);
|
|
4174
|
+
if (name === void 0) return;
|
|
4175
|
+
if (name === "w:hyperlink") {
|
|
4176
|
+
const attributes = attributesOf(element);
|
|
4177
|
+
const anchor = attributes?.["w:anchor"];
|
|
4178
|
+
if (typeof anchor === "string" && names.has(anchor))
|
|
4179
|
+
attributes["w:anchor"] = names.get(anchor);
|
|
4180
|
+
}
|
|
4181
|
+
if (name === "w:instrText") {
|
|
4182
|
+
const children = childrenOf(element);
|
|
4183
|
+
children.forEach((child, index) => {
|
|
4184
|
+
if (typeof child !== "string") return;
|
|
4185
|
+
children[index] = child.replace(
|
|
4186
|
+
/\b(PAGEREF\s+)(_Toc\d+)\b/g,
|
|
4187
|
+
(match, field, bookmark) => names.has(bookmark) ? `${field}${names.get(bookmark)}` : match
|
|
4188
|
+
);
|
|
4189
|
+
});
|
|
4190
|
+
element[name] = children;
|
|
4191
|
+
return;
|
|
4192
|
+
}
|
|
4193
|
+
if (name === "_attr") return;
|
|
4194
|
+
childrenOf(element).forEach(references);
|
|
4195
|
+
};
|
|
4196
|
+
references(body);
|
|
4197
|
+
}
|
|
4198
|
+
function attributesOf(element) {
|
|
4199
|
+
const attributes = childrenOf(element).find(
|
|
4200
|
+
(child) => nameOf(child) === "_attr"
|
|
4201
|
+
);
|
|
4202
|
+
return attributes?._attr;
|
|
4203
|
+
}
|
|
4204
|
+
var PAGE_NUMBERS_UNAVAILABLE, layout, nameOf, childrenOf, CONTENTS_BOOKMARK_ID_BASE, CONTENTS_BOOKMARK;
|
|
4205
|
+
var init_pageNumbers = __esm({
|
|
4206
|
+
"src/renderers/docxjs/pageNumbers.ts"() {
|
|
4207
|
+
"use strict";
|
|
4208
|
+
init_generationContext();
|
|
4209
|
+
init_docxSubpath();
|
|
4210
|
+
PAGE_NUMBERS_UNAVAILABLE = "W_DOCX_PAGE_NUMBERS_UNAVAILABLE";
|
|
4211
|
+
layout = docxSubpath(
|
|
4212
|
+
"docx/layout",
|
|
4213
|
+
"toc",
|
|
4214
|
+
() => import("docx/layout"),
|
|
4215
|
+
"9.9.0"
|
|
4216
|
+
);
|
|
4217
|
+
nameOf = (element) => typeof element === "object" && element !== null && !Array.isArray(element) ? Object.keys(element)[0] : void 0;
|
|
4218
|
+
childrenOf = (element) => {
|
|
4219
|
+
const name = nameOf(element);
|
|
4220
|
+
const content = name === void 0 ? void 0 : element[name];
|
|
4221
|
+
return Array.isArray(content) ? content : content === void 0 ? [] : [content];
|
|
4222
|
+
};
|
|
4223
|
+
CONTENTS_BOOKMARK_ID_BASE = 3e6;
|
|
4224
|
+
CONTENTS_BOOKMARK = /^_Toc\d+$/;
|
|
4225
|
+
}
|
|
4226
|
+
});
|
|
4227
|
+
|
|
3904
4228
|
// src/utils/normalizeTextCase.ts
|
|
3905
4229
|
function normalizeTextCase(zip) {
|
|
3906
4230
|
let changed = false;
|
|
@@ -4682,7 +5006,8 @@ function createDocxJsRenderer() {
|
|
|
4682
5006
|
)
|
|
4683
5007
|
});
|
|
4684
5008
|
}
|
|
4685
|
-
const
|
|
5009
|
+
const pageNumbers = needsPageNumbers(ir) ? await createPageNumberEstimator(ir) : void 0;
|
|
5010
|
+
const document = buildDocument(ir, resources, pageNumbers);
|
|
4686
5011
|
const packed = await Packer.toBuffer(document);
|
|
4687
5012
|
const fixed = fixFloatingImageIdsInBuffer(packed);
|
|
4688
5013
|
const repaired = markers ? repairDrawingGroupsInBuffer(fixed, markers) : fixed;
|
|
@@ -4700,13 +5025,12 @@ function createDocxJsRenderer() {
|
|
|
4700
5025
|
}
|
|
4701
5026
|
};
|
|
4702
5027
|
}
|
|
4703
|
-
function buildDocument(ir, resources = /* @__PURE__ */ new Map()) {
|
|
5028
|
+
function buildDocument(ir, resources = /* @__PURE__ */ new Map(), pageNumbers) {
|
|
4704
5029
|
return new Document({
|
|
5030
|
+
...pageNumbers ? { pageNumbers } : {},
|
|
4705
5031
|
styles: emitStyles(ir.styles),
|
|
4706
5032
|
...ir.theme ? { theme: themeOptions(ir.theme) } : {},
|
|
4707
|
-
sections: ir.sections.map(
|
|
4708
|
-
(section2, index) => sectionOptions(section2, resources, index === ir.sections.length - 1)
|
|
4709
|
-
),
|
|
5033
|
+
sections: ir.sections.map((section2) => sectionOptions(section2, resources)),
|
|
4710
5034
|
...coreProperties(ir),
|
|
4711
5035
|
features: {
|
|
4712
5036
|
updateFields: ir.settings.updateFields,
|
|
@@ -4725,8 +5049,8 @@ function buildDocument(ir, resources = /* @__PURE__ */ new Map()) {
|
|
|
4725
5049
|
author: comment.author,
|
|
4726
5050
|
...comment.initials ? { initials: comment.initials } : {},
|
|
4727
5051
|
date: new Date(comment.date),
|
|
4728
|
-
children:
|
|
4729
|
-
(block2) => emitBlock(block2, resources)
|
|
5052
|
+
children: emitOutsideBody(
|
|
5053
|
+
() => comment.children.map((block2) => emitBlock(block2, resources))
|
|
4730
5054
|
),
|
|
4731
5055
|
...comment.parentId !== void 0 ? { parentId: comment.parentId } : {},
|
|
4732
5056
|
...comment.resolved !== void 0 ? { resolved: comment.resolved } : {}
|
|
@@ -4754,8 +5078,8 @@ function noteBodies(notes, resources) {
|
|
|
4754
5078
|
const bodies = {};
|
|
4755
5079
|
for (const note of notes) {
|
|
4756
5080
|
bodies[String(note.id)] = {
|
|
4757
|
-
children:
|
|
4758
|
-
(block2) => emitBlock(block2, resources)
|
|
5081
|
+
children: emitOutsideBody(
|
|
5082
|
+
() => note.children.map((block2) => emitBlock(block2, resources))
|
|
4759
5083
|
)
|
|
4760
5084
|
};
|
|
4761
5085
|
}
|
|
@@ -4916,7 +5240,7 @@ function collectImagePlacements(ir) {
|
|
|
4916
5240
|
}
|
|
4917
5241
|
return { placements, drawingGroups };
|
|
4918
5242
|
}
|
|
4919
|
-
function sectionOptions(section2, resources
|
|
5243
|
+
function sectionOptions(section2, resources) {
|
|
4920
5244
|
const { page, columns } = section2.properties;
|
|
4921
5245
|
const options = {
|
|
4922
5246
|
properties: {
|
|
@@ -4955,7 +5279,7 @@ function sectionOptions(section2, resources, closesDocument = false) {
|
|
|
4955
5279
|
}
|
|
4956
5280
|
} : {}
|
|
4957
5281
|
},
|
|
4958
|
-
children: sectionChildren(section2, resources
|
|
5282
|
+
children: sectionChildren(section2, resources)
|
|
4959
5283
|
};
|
|
4960
5284
|
const headers = chromeSlots(section2.headers, Header, resources);
|
|
4961
5285
|
if (headers) options.headers = headers;
|
|
@@ -4969,7 +5293,9 @@ function chromeSlots(set, Part, resources) {
|
|
|
4969
5293
|
for (const slot of ["default", "first", "even"]) {
|
|
4970
5294
|
const part = set[slot];
|
|
4971
5295
|
if (part) {
|
|
4972
|
-
out[slot] = new Part({
|
|
5296
|
+
out[slot] = new Part({
|
|
5297
|
+
children: emitOutsideBody(() => partChildren(part, resources))
|
|
5298
|
+
});
|
|
4973
5299
|
}
|
|
4974
5300
|
}
|
|
4975
5301
|
return Object.keys(out).length > 0 ? out : void 0;
|
|
@@ -4977,10 +5303,10 @@ function chromeSlots(set, Part, resources) {
|
|
|
4977
5303
|
function partChildren(part, resources) {
|
|
4978
5304
|
return part.children.map((block2) => emitBlock(block2, resources));
|
|
4979
5305
|
}
|
|
4980
|
-
function sectionChildren(section2, resources
|
|
5306
|
+
function sectionChildren(section2, resources) {
|
|
4981
5307
|
const blocks = section2.children.map((block2) => emitBlock(block2, resources));
|
|
4982
5308
|
const bookmark = section2.bookmark;
|
|
4983
|
-
const endsInFrame =
|
|
5309
|
+
const endsInFrame = lastBlockIsFrame(section2);
|
|
4984
5310
|
if (!bookmark && !endsInFrame) return blocks;
|
|
4985
5311
|
const out = [...blocks];
|
|
4986
5312
|
if (bookmark?.opens) {
|
|
@@ -5033,6 +5359,7 @@ var init_docxjs = __esm({
|
|
|
5033
5359
|
"use strict";
|
|
5034
5360
|
init_styles2();
|
|
5035
5361
|
init_charts();
|
|
5362
|
+
init_pageNumbers();
|
|
5036
5363
|
init_imageUtils();
|
|
5037
5364
|
init_packageDocument();
|
|
5038
5365
|
init_fixFloatingImageIds();
|
|
@@ -6219,7 +6546,7 @@ function sectionChildren2(value, ctx, closesDocument = false) {
|
|
|
6219
6546
|
const blocks = value.children.map((child) => block(child, ctx));
|
|
6220
6547
|
const last = value.children[value.children.length - 1];
|
|
6221
6548
|
const bookmark = value.bookmark;
|
|
6222
|
-
if (bookmark?.closes && last?.kind !== "paragraph" ||
|
|
6549
|
+
if (bookmark?.closes && last?.kind !== "paragraph" || last?.kind === "paragraph" && last.frame !== void 0 && (closesDocument || !bookmark?.closes))
|
|
6223
6550
|
blocks.push({
|
|
6224
6551
|
paragraph: {
|
|
6225
6552
|
children: [],
|
|
@@ -7198,7 +7525,8 @@ import {
|
|
|
7198
7525
|
resolveServiceUrl as resolveServiceUrl3,
|
|
7199
7526
|
postJsonToService as postJsonToService3,
|
|
7200
7527
|
recordChartRetry,
|
|
7201
|
-
sendChartRequest
|
|
7528
|
+
sendChartRequest,
|
|
7529
|
+
withChartPresets
|
|
7202
7530
|
} from "@json-to-office/shared";
|
|
7203
7531
|
var DEFAULT_EXPORT_SERVER_URL = "http://localhost:7801";
|
|
7204
7532
|
function effectiveChartServerUrl(props, servicesConfig) {
|
|
@@ -7277,6 +7605,12 @@ function toChartColor(value, theme) {
|
|
|
7277
7605
|
return void 0;
|
|
7278
7606
|
}
|
|
7279
7607
|
}
|
|
7608
|
+
function withThemePresets(config, theme) {
|
|
7609
|
+
const presets = theme?.componentDefaults?.highcharts;
|
|
7610
|
+
if (!presets) return config;
|
|
7611
|
+
const options = withChartPresets(config.options, presets);
|
|
7612
|
+
return options === config.options ? config : { ...config, options };
|
|
7613
|
+
}
|
|
7280
7614
|
function withThemeColors(config, theme) {
|
|
7281
7615
|
const options = config.options;
|
|
7282
7616
|
if (!options || options.colors || !theme?.colors) return config;
|
|
@@ -7352,7 +7686,10 @@ function withChartFontFaces(config, theme, faces) {
|
|
|
7352
7686
|
}
|
|
7353
7687
|
async function renderChartToImageProps(props, theme, servicesConfig, chartFonts, warnings, cache) {
|
|
7354
7688
|
const config = withChartFontFaces(
|
|
7355
|
-
withThemeTypography(
|
|
7689
|
+
withThemeTypography(
|
|
7690
|
+
withThemeColors(withThemePresets(props, theme), theme),
|
|
7691
|
+
theme
|
|
7692
|
+
),
|
|
7356
7693
|
theme,
|
|
7357
7694
|
chartFonts
|
|
7358
7695
|
);
|
|
@@ -10300,9 +10637,9 @@ function schemeHex(token, theme) {
|
|
|
10300
10637
|
// src/ir/compiler.ts
|
|
10301
10638
|
var CONTENT_BOOKMARK_ID_BASE = 2e6;
|
|
10302
10639
|
var SINGLE_LINE_TWIPS = 240;
|
|
10303
|
-
function compileDocument(structure,
|
|
10640
|
+
function compileDocument(structure, layout2, warnings = [], images = /* @__PURE__ */ new Map(), options = {}) {
|
|
10304
10641
|
const styles = createDocumentStyles(structure.theme, structure.language);
|
|
10305
|
-
const outline = collectOutline(
|
|
10642
|
+
const outline = collectOutline(layout2, warnings);
|
|
10306
10643
|
const ctx = {
|
|
10307
10644
|
theme: structure.theme,
|
|
10308
10645
|
themeName: structure.themeName,
|
|
@@ -10337,10 +10674,10 @@ function compileDocument(structure, layout, warnings = [], images = /* @__PURE__
|
|
|
10337
10674
|
};
|
|
10338
10675
|
ctx.features.require("paragraphs", "sections");
|
|
10339
10676
|
ctx.features.require("styles", "styles");
|
|
10340
|
-
if (
|
|
10341
|
-
const ordinals = computeSectionOrdinals(
|
|
10342
|
-
const chrome = resolveSectionChrome(
|
|
10343
|
-
const sections =
|
|
10677
|
+
if (layout2.sections.length > 1) ctx.features.require("sections", "sections");
|
|
10678
|
+
const ordinals = computeSectionOrdinals(layout2.sections);
|
|
10679
|
+
const chrome = resolveSectionChrome(layout2.sections);
|
|
10680
|
+
const sections = layout2.sections.map(
|
|
10344
10681
|
(section2, index) => compileSection(section2, index, ordinals[index], chrome[index], ctx)
|
|
10345
10682
|
);
|
|
10346
10683
|
if (ctx.hasResolvedComment && !ctx.comments.some((comment) => comment.parentId !== void 0)) {
|
|
@@ -10418,9 +10755,9 @@ function separateFromTables(blocks, bodyAfterTwips) {
|
|
|
10418
10755
|
}
|
|
10419
10756
|
}
|
|
10420
10757
|
}
|
|
10421
|
-
function collectOutline(
|
|
10758
|
+
function collectOutline(layout2, warnings) {
|
|
10422
10759
|
try {
|
|
10423
|
-
return collectDocumentOutline(
|
|
10760
|
+
return collectDocumentOutline(layout2.sections);
|
|
10424
10761
|
} catch (error) {
|
|
10425
10762
|
warnings.push({
|
|
10426
10763
|
component: "document",
|
|
@@ -12966,13 +13303,19 @@ function compileTableRow(row, columnTwips, spacing, baseStyle, scope) {
|
|
|
12966
13303
|
...scope.cantSplit !== void 0 ? { cantSplit: scope.cantSplit } : {}
|
|
12967
13304
|
};
|
|
12968
13305
|
}
|
|
13306
|
+
var NORMAL_TABLE_CELL_MARGINS = {
|
|
13307
|
+
topTwips: 0,
|
|
13308
|
+
bottomTwips: 0,
|
|
13309
|
+
leftTwips: 108,
|
|
13310
|
+
rightTwips: 108
|
|
13311
|
+
};
|
|
12969
13312
|
function compileTableCell(cell, columnTwips, spacing, baseStyle, keepNext, partScope, rowRevision, markRevision) {
|
|
12970
|
-
const margins =
|
|
13313
|
+
const margins = cell.missing ? void 0 : cell.padding ? {
|
|
12971
13314
|
topTwips: pointsToTwips2(cell.padding.top),
|
|
12972
13315
|
bottomTwips: pointsToTwips2(cell.padding.bottom),
|
|
12973
13316
|
leftTwips: pointsToTwips2(cell.padding.left),
|
|
12974
13317
|
rightTwips: pointsToTwips2(cell.padding.right)
|
|
12975
|
-
} :
|
|
13318
|
+
} : NORMAL_TABLE_CELL_MARGINS;
|
|
12976
13319
|
const scope = {
|
|
12977
13320
|
...partScope,
|
|
12978
13321
|
measureTwips: cellMeasureTwips(columnTwips, margins)
|
|
@@ -13477,8 +13820,8 @@ function hasPageBreak(component) {
|
|
|
13477
13820
|
}
|
|
13478
13821
|
return false;
|
|
13479
13822
|
}
|
|
13480
|
-
function getColumnSettings(
|
|
13481
|
-
switch (
|
|
13823
|
+
function getColumnSettings(layout2) {
|
|
13824
|
+
switch (layout2) {
|
|
13482
13825
|
case "multi-column":
|
|
13483
13826
|
return {
|
|
13484
13827
|
count: 2,
|
|
@@ -15907,7 +16250,7 @@ async function compileDocumentScoped(document, options, warnings) {
|
|
|
15907
16250
|
const visualFonts = hasVisual ? toRasterizeFontFaces(resolvedFonts, warnings) : [];
|
|
15908
16251
|
const chartFonts = hasHighcharts ? toChartFontFaces(resolvedFonts) : [];
|
|
15909
16252
|
const desugared = await desugarExternals(context.document, {
|
|
15910
|
-
theme:
|
|
16253
|
+
theme: prepared.model.document.theme,
|
|
15911
16254
|
...options.services ? { services: options.services } : {},
|
|
15912
16255
|
...options.baseDir !== void 0 ? { baseDir: options.baseDir } : {},
|
|
15913
16256
|
...visualFonts.length > 0 ? { visualFonts } : {},
|
|
@@ -15921,19 +16264,19 @@ async function compileDocumentScoped(document, options, warnings) {
|
|
|
15921
16264
|
context.themeName,
|
|
15922
16265
|
resolveGenerationDate(options)
|
|
15923
16266
|
);
|
|
15924
|
-
const
|
|
16267
|
+
const layout2 = applyLayout(
|
|
15925
16268
|
structure.sections,
|
|
15926
16269
|
context.theme,
|
|
15927
16270
|
context.themeName
|
|
15928
16271
|
);
|
|
15929
16272
|
const images = await loadImageResources(
|
|
15930
|
-
|
|
16273
|
+
layout2.sections.flatMap((section2) => [
|
|
15931
16274
|
...section2.components,
|
|
15932
16275
|
...Array.isArray(section2.header) ? section2.header : [],
|
|
15933
16276
|
...Array.isArray(section2.footer) ? section2.footer : []
|
|
15934
16277
|
])
|
|
15935
16278
|
);
|
|
15936
|
-
const compiled = compileDocument(structure,
|
|
16279
|
+
const compiled = compileDocument(structure, layout2, warnings, images, {
|
|
15937
16280
|
// A caller that collects nothing still needs to hear about a dropped
|
|
15938
16281
|
// value, so warnings go to the console when there is no collector.
|
|
15939
16282
|
echoWarnings: options.warnings === void 0
|