reamkit 1.32.1 → 1.33.1
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/LICENSE +1 -1
- package/README.md +16 -11
- package/dist/esm/core/bidi/algorithm.js +2 -2
- package/dist/esm/core/bidi/char-types.js +1 -1
- package/dist/esm/core/bidi/index.js +3 -3
- package/dist/esm/core/bytes.js +1 -1
- package/dist/esm/core/converter/facade.js +10 -5
- package/dist/esm/core/converter/ream.d.ts +9 -0
- package/dist/esm/core/converter/ream.js +40 -10
- package/dist/esm/core/crypto/asn1.js +2 -2
- package/dist/esm/core/crypto/cms.js +5 -3
- package/dist/esm/core/crypto/index.js +2 -1
- package/dist/esm/core/crypto/offcrypto.d.ts +2 -5
- package/dist/esm/core/crypto/offcrypto.js +9 -15
- package/dist/esm/core/crypto/password-error.d.ts +8 -0
- package/dist/esm/core/crypto/password-error.js +14 -0
- package/dist/esm/core/crypto/primitives.js +16 -16
- package/dist/esm/core/document-model/index.d.ts +1 -1
- package/dist/esm/core/document-model/types.d.ts +174 -2
- package/dist/esm/core/drawingml/chart-geometry.d.ts +24 -6
- package/dist/esm/core/drawingml/chart-geometry.js +905 -208
- package/dist/esm/core/drawingml/chart-parser.d.ts +5 -1
- package/dist/esm/core/drawingml/chart-parser.js +275 -19
- package/dist/esm/core/drawingml/chart-text.d.ts +41 -0
- package/dist/esm/core/drawingml/chart-text.js +93 -0
- package/dist/esm/core/drawingml/colors.js +5 -5
- package/dist/esm/core/drawingml/diagram/layout-engine.js +1 -4
- package/dist/esm/core/drawingml/diagram/run.js +2 -1
- package/dist/esm/core/drawingml/preset-geometry.js +4 -6
- package/dist/esm/core/drawingml/shape-render.js +1 -1
- package/dist/esm/core/drawingml/text-warp.js +4 -16
- package/dist/esm/core/drawingml/theme-parser.js +14 -8
- package/dist/esm/core/font/arabic-joining.js +2 -2
- package/dist/esm/core/font/binary-reader.js +2 -0
- package/dist/esm/core/font/font-registry.js +1 -0
- package/dist/esm/core/font/ligatures.js +1 -1
- package/dist/esm/core/font/opentype-layout.js +11 -5
- package/dist/esm/core/font/ttf-build.js +6 -10
- package/dist/esm/core/font/ttf-parser.js +2 -1
- package/dist/esm/core/font/ttf-subset.js +8 -8
- package/dist/esm/core/fonts/families.js +1 -1
- package/dist/esm/core/fonts/remote-fonts.js +4 -4
- package/dist/esm/core/hyphenation/index.js +1 -1
- package/dist/esm/core/images.js +8 -8
- package/dist/esm/core/ir/adapters.d.ts +9 -0
- package/dist/esm/core/ir/loss.js +1 -0
- package/dist/esm/core/line-breaker/cjk.js +1 -1
- package/dist/esm/core/line-breaker/index.js +4 -3
- package/dist/esm/core/links.js +1 -1
- package/dist/esm/core/lzw.js +1 -1
- package/dist/esm/core/metafile/blit.js +1 -1
- package/dist/esm/core/metafile/emf.js +5 -7
- package/dist/esm/core/metafile/picture.js +1 -1
- package/dist/esm/core/metafile/symbol-fonts.js +7 -7
- package/dist/esm/core/metafile/wmf.js +5 -7
- package/dist/esm/core/number-format.js +4 -6
- package/dist/esm/core/numbering/index.js +3 -2
- package/dist/esm/core/ole/cfb.js +4 -4
- package/dist/esm/core/ole/escher-blip.js +1 -1
- package/dist/esm/core/opc/index.js +5 -4
- package/dist/esm/core/opc/package.js +3 -1
- package/dist/esm/core/opc/xml-entities.js +1 -1
- package/dist/esm/core/outline.js +1 -1
- package/dist/esm/core/png-encode.js +3 -3
- package/dist/esm/core/po-helpers.js +1 -1
- package/dist/esm/core/spreadsheet-model/types.d.ts +6 -0
- package/dist/esm/core/style-cascade/index.js +4 -3
- package/dist/esm/core/tiff.js +3 -1
- package/dist/esm/excel/activex-parser.js +1 -1
- package/dist/esm/excel/conditional-format.js +7 -7
- package/dist/esm/excel/formula/functions.js +8 -4
- package/dist/esm/excel/formula/index.js +3 -3
- package/dist/esm/excel/formula/lexer.js +2 -2
- package/dist/esm/excel/formula/parser.js +4 -3
- package/dist/esm/excel/formula/value.js +1 -1
- package/dist/esm/excel/index.js +7 -6
- package/dist/esm/excel/print-model.d.ts +1 -0
- package/dist/esm/excel/print-model.js +7 -32
- package/dist/esm/excel/printer-settings.js +6 -7
- package/dist/esm/excel/rich-value.js +1 -1
- package/dist/esm/excel/sheet-shape-parser.js +4 -2
- package/dist/esm/excel/sheet-to-flow.d.ts +8 -0
- package/dist/esm/excel/sheet-to-flow.js +14 -11
- package/dist/esm/excel/styles-parser.js +5 -3
- package/dist/esm/excel/tint.js +5 -5
- package/dist/esm/excel/vml-drawing.js +2 -2
- package/dist/esm/excel/worksheet-parser.js +5 -5
- package/dist/esm/excel/xls/biff-chart.js +1 -3
- package/dist/esm/excel/xls/biff-reader.js +10 -11
- package/dist/esm/excel/xls/xls-reader.js +1 -1
- package/dist/esm/excel/xlsx-reader.js +17 -4
- package/dist/esm/excel/xlsx-to-pdf.js +1 -1
- package/dist/esm/excel/xlsx-writer.js +2 -2
- package/dist/esm/html/html-writer.js +18 -10
- package/dist/esm/index.js +2 -1
- package/dist/esm/layout/line-paint.js +1 -1
- package/dist/esm/layout/math-layout.js +5 -8
- package/dist/esm/layout/styled-layout.js +133 -75
- package/dist/esm/layout/turned-section.js +2 -2
- package/dist/esm/markdown/markdown-writer.js +50 -9
- package/dist/esm/pdf/encryption.js +9 -9
- package/dist/esm/pdf/icc-profile.js +2 -2
- package/dist/esm/pdf/index.js +3 -2
- package/dist/esm/pdf/objects.js +7 -0
- package/dist/esm/pdf/serialize.js +1 -1
- package/dist/esm/pdf/struct-tree.js +3 -1
- package/dist/esm/pdf/styled-page-emitter.js +23 -15
- package/dist/esm/pdf/styled-page-renderer.js +9 -5
- package/dist/esm/pdf-reader/annot-draw.js +3 -3
- package/dist/esm/pdf-reader/ccitt.js +2 -1
- package/dist/esm/pdf-reader/cff-outline.js +1 -4
- package/dist/esm/pdf-reader/content.js +13 -15
- package/dist/esm/pdf-reader/decrypt.d.ts +18 -6
- package/dist/esm/pdf-reader/decrypt.js +90 -45
- package/dist/esm/pdf-reader/document.d.ts +7 -1
- package/dist/esm/pdf-reader/document.js +18 -4
- package/dist/esm/pdf-reader/encodings.js +1 -1
- package/dist/esm/pdf-reader/flow-build.js +4 -6
- package/dist/esm/pdf-reader/font.js +3 -3
- package/dist/esm/pdf-reader/function.js +8 -7
- package/dist/esm/pdf-reader/icc.js +1 -1
- package/dist/esm/pdf-reader/images.js +1 -1
- package/dist/esm/pdf-reader/jbig2.js +36 -38
- package/dist/esm/pdf-reader/jpeg.js +14 -13
- package/dist/esm/pdf-reader/layout.js +12 -9
- package/dist/esm/pdf-reader/lexer.js +2 -1
- package/dist/esm/pdf-reader/math-rows.js +2 -2
- package/dist/esm/pdf-reader/optional-content.js +1 -1
- package/dist/esm/pdf-reader/page-numbers.js +1 -1
- package/dist/esm/pdf-reader/pattern-tint.js +1 -2
- package/dist/esm/pdf-reader/reader.d.ts +5 -1
- package/dist/esm/pdf-reader/reader.js +83 -16
- package/dist/esm/pdf-reader/struct-tree.js +1 -1
- package/dist/esm/pdf-reader/tagged.js +3 -2
- package/dist/esm/pdf-reader/text.js +2 -2
- package/dist/esm/pdf-reader/type1-outline.js +1 -3
- package/dist/esm/pptx/embedded-fonts.js +3 -5
- package/dist/esm/pptx/placeholder-cascade.js +1 -1
- package/dist/esm/pptx/ppt/ppt-reader.js +5 -4
- package/dist/esm/pptx/ppt/ppt-text.js +9 -10
- package/dist/esm/pptx/pptx-reader.js +6 -5
- package/dist/esm/pptx/preset-table-styles.js +1 -1
- package/dist/esm/pptx/slide-parser.js +6 -4
- package/dist/esm/pptx/sp-helpers.js +1 -1
- package/dist/esm/pptx/table-style.js +2 -1
- package/dist/esm/svg/svg-writer.js +1 -1
- package/dist/esm/word/doc/doc-reader.js +2 -2
- package/dist/esm/word/doc/doc-text.js +20 -22
- package/dist/esm/word/document-parser.js +26 -21
- package/dist/esm/word/docx-reader.js +2 -2
- package/dist/esm/word/docx-to-pdf.js +3 -3
- package/dist/esm/word/docx-writer.js +10 -6
- package/dist/esm/word/drawing-parser.js +18 -18
- package/dist/esm/word/font-table.js +1 -1
- package/dist/esm/word/index.js +6 -5
- package/dist/esm/word/numbering-parser.js +4 -3
- package/dist/esm/word/omml-parser.js +1 -1
- package/dist/esm/word/paragraph-properties.js +11 -10
- package/dist/esm/word/run-properties.js +4 -4
- package/dist/esm/word/settings-parser.js +2 -1
- package/dist/esm/word/shading.js +1 -1
- package/dist/esm/word/styles-parser.js +5 -4
- package/dist/esm/word/table-parser.js +4 -4
- package/dist/esm/word/theme-fonts.js +1 -1
- package/package.json +9 -3
|
@@ -26,7 +26,7 @@ function extractPageText(file, page, painted) {
|
|
|
26
26
|
const runs = [];
|
|
27
27
|
collectRuns(file, page.resources, file.pageContent(page), IDENTITY, 0, /* @__PURE__ */ new Set(), runs, painted);
|
|
28
28
|
const own = runs.length;
|
|
29
|
-
for (const appearance of collectPageAppearances(file, page)) collectRuns(file, appearance.resources ?? page.resources, appearanceContent(file, appearance), appearance.ctm, 1, new Set([appearance.stream]), runs, painted);
|
|
29
|
+
for (const appearance of collectPageAppearances(file, page)) collectRuns(file, appearance.resources ?? page.resources, appearanceContent(file, appearance), appearance.ctm, 1, /* @__PURE__ */ new Set([appearance.stream]), runs, painted);
|
|
30
30
|
for (let i = own; i < runs.length; i++) runs[i] = {
|
|
31
31
|
...runs[i],
|
|
32
32
|
annotation: true
|
|
@@ -238,7 +238,7 @@ var ACCENT_LIFT_EM = .6;
|
|
|
238
238
|
/** How far, in ems, an accent must overlap its letter to stand over it. */
|
|
239
239
|
var ACCENT_OVERLAP_EM = .05;
|
|
240
240
|
/** The spacing accents TeX strikes over a letter, and the combining marks they are. */
|
|
241
|
-
var ACCENTS = new Map([
|
|
241
|
+
var ACCENTS = /* @__PURE__ */ new Map([
|
|
242
242
|
["`", "̀"],
|
|
243
243
|
["´", "́"],
|
|
244
244
|
["ˆ", "̂"],
|
|
@@ -9,13 +9,11 @@ var VARIANTS = [
|
|
|
9
9
|
["p:italic", "italic"],
|
|
10
10
|
["p:boldItalic", "boldItalic"]
|
|
11
11
|
];
|
|
12
|
-
var EOT_VERSIONS = new Set([
|
|
12
|
+
var EOT_VERSIONS = /* @__PURE__ */ new Set([
|
|
13
13
|
65536,
|
|
14
14
|
131073,
|
|
15
15
|
131074
|
|
16
16
|
]);
|
|
17
|
-
var TTEMBED_TTCOMPRESSED = 4;
|
|
18
|
-
var TTEMBED_XORENCRYPTDATA = 268435456;
|
|
19
17
|
/**
|
|
20
18
|
* Read one `fntdata` part: the font itself when the container stores it
|
|
21
19
|
* plainly, and what stopped it otherwise.
|
|
@@ -33,7 +31,7 @@ function readFntData(data) {
|
|
|
33
31
|
const version = v.getUint32(8, true);
|
|
34
32
|
const flags = v.getUint32(12, true);
|
|
35
33
|
if (eotSize !== data.length || !EOT_VERSIONS.has(version)) return { kind: "unreadable" };
|
|
36
|
-
if ((flags &
|
|
34
|
+
if ((flags & 268435460) !== 0) return { kind: "compressed" };
|
|
37
35
|
let at = 82;
|
|
38
36
|
for (let i = 0; i < 4; i++) {
|
|
39
37
|
if (at + 2 > data.length) return { kind: "unreadable" };
|
|
@@ -101,4 +99,4 @@ function isSfnt(data) {
|
|
|
101
99
|
return sig === 65536 || sig === 1330926671 || sig === 1953658213 || sig === 1953784678;
|
|
102
100
|
}
|
|
103
101
|
//#endregion
|
|
104
|
-
export { loadPptxEmbeddedFonts };
|
|
102
|
+
export { loadPptxEmbeddedFonts, readFntData };
|
|
@@ -317,4 +317,4 @@ function collectTxStyles(masterTree, colors, themeFonts) {
|
|
|
317
317
|
};
|
|
318
318
|
}
|
|
319
319
|
//#endregion
|
|
320
|
-
export { buildPlaceholderCascade, lineSpacing, parseBullet, parseLevelStyles, spacingFractions, spacingFromLineFraction };
|
|
320
|
+
export { buildPlaceholderCascade, lineSpacing, pPrToParagraphProps, parseBullet, parseLevelStyles, spacingFractions, spacingFromLineFraction };
|
|
@@ -48,10 +48,11 @@ function readPpt(bytes) {
|
|
|
48
48
|
const width = pt(content.slideWidthPt ?? DEFAULT_SLIDE_W);
|
|
49
49
|
const height = pt(content.slideHeightPt ?? DEFAULT_SLIDE_H);
|
|
50
50
|
const resources = new ResourceStore();
|
|
51
|
+
const body = buildBody(content, resources, width, height);
|
|
51
52
|
return {
|
|
52
53
|
doc: {
|
|
53
54
|
kind: "flow",
|
|
54
|
-
body: resolveBodyStyles(
|
|
55
|
+
body: resolveBodyStyles(body, EMPTY_STYLE_SHEET),
|
|
55
56
|
sections: [],
|
|
56
57
|
section: {
|
|
57
58
|
pageSize: {
|
|
@@ -249,7 +250,7 @@ function positionedImage(rect, image, resources) {
|
|
|
249
250
|
}
|
|
250
251
|
};
|
|
251
252
|
}
|
|
252
|
-
var SHAPE_PRESETS = new Map([
|
|
253
|
+
var SHAPE_PRESETS = /* @__PURE__ */ new Map([
|
|
253
254
|
[1, "rect"],
|
|
254
255
|
[2, "roundRect"],
|
|
255
256
|
[3, "ellipse"],
|
|
@@ -523,9 +524,9 @@ function anchorParagraph(breakBefore) {
|
|
|
523
524
|
var pptReader = {
|
|
524
525
|
id: "ppt",
|
|
525
526
|
produces: "flow",
|
|
526
|
-
supports: new Set([FEATURES.text]),
|
|
527
|
+
supports: /* @__PURE__ */ new Set([FEATURES.text]),
|
|
527
528
|
sniff: looksLikePpt,
|
|
528
529
|
read: (bytes) => readPpt(bytes)
|
|
529
530
|
};
|
|
530
531
|
//#endregion
|
|
531
|
-
export { pptReader };
|
|
532
|
+
export { pptReader, readPpt };
|
|
@@ -84,7 +84,6 @@ var SLIDE_FLAG_MASTER_SCHEME = 2;
|
|
|
84
84
|
var COLORREF_SCHEME_INDEX = 8;
|
|
85
85
|
var COLORREF_SYS_INDEX = 16;
|
|
86
86
|
var FBSE_FODELAY_OFFSET = 28;
|
|
87
|
-
var FSP_FLAG_PATRIARCH = 4;
|
|
88
87
|
var FSP_FLAG_BACKGROUND = 1024;
|
|
89
88
|
var TOKEN_ENCRYPTED = 4090610911;
|
|
90
89
|
var SLWT_INSTANCE_SLIDES = 0;
|
|
@@ -157,7 +156,7 @@ function extractPptContent(bytes) {
|
|
|
157
156
|
const docRec = docOffset !== void 0 ? recordAt(stream, docOffset) : findDocument(stream);
|
|
158
157
|
const noImages = {
|
|
159
158
|
foDelays: [],
|
|
160
|
-
pictures: new Uint8Array(0)
|
|
159
|
+
pictures: /* @__PURE__ */ new Uint8Array(0)
|
|
161
160
|
};
|
|
162
161
|
if (!docRec || docRec.type !== RT_DOCUMENT) return {
|
|
163
162
|
slides: slidesByScan(stream, noImages),
|
|
@@ -165,7 +164,7 @@ function extractPptContent(bytes) {
|
|
|
165
164
|
};
|
|
166
165
|
const img = {
|
|
167
166
|
foDelays: parseFbseStore(docRec.data),
|
|
168
|
-
pictures: cfb.readStream("Pictures") ?? new Uint8Array(0)
|
|
167
|
+
pictures: cfb.readStream("Pictures") ?? /* @__PURE__ */ new Uint8Array(0)
|
|
169
168
|
};
|
|
170
169
|
const slides = readSlideList(stream, docRec.data, persist, img);
|
|
171
170
|
const hasContent = slides.some(slideHasContent);
|
|
@@ -369,7 +368,7 @@ function parseFbseStore(docData) {
|
|
|
369
368
|
const store = findDescendantContainer(group, FBT_BSTORE_CONTAINER, 0);
|
|
370
369
|
if (!store) return [];
|
|
371
370
|
const foDelays = [];
|
|
372
|
-
for (const r of records(store)) if (r.type === FBT_BSE) foDelays.push(r.data.length >=
|
|
371
|
+
for (const r of records(store)) if (r.type === FBT_BSE) foDelays.push(r.data.length >= 32 ? u32(r.data, FBSE_FODELAY_OFFSET) : 0);
|
|
373
372
|
return foDelays;
|
|
374
373
|
}
|
|
375
374
|
function findDescendantContainer(d, type, depth) {
|
|
@@ -464,7 +463,7 @@ function collectShapeContainers(d, img, out, depth, env, outline, defaults, grou
|
|
|
464
463
|
...pictureTransparentHex !== void 0 ? { transparentHex: pictureTransparentHex } : {}
|
|
465
464
|
} : void 0;
|
|
466
465
|
const textParas = gtext ?? (paragraphs?.some((p) => paragraphText(p).length > 0) === true ? paragraphs : void 0) ? gtext ? [gtext] : paragraphs : void 0;
|
|
467
|
-
const decorative = (fspFlags &
|
|
466
|
+
const decorative = (fspFlags & 1029) === 0;
|
|
468
467
|
const autoShape = !gtext && !image && rectPt && (shapeType > 0 || geometry) && decorative && (fillColorHex || lineColorHex || fillImage) ? {
|
|
469
468
|
shapeType,
|
|
470
469
|
...fillColorHex ? { fillColorHex } : {},
|
|
@@ -567,7 +566,7 @@ function readMasterLevels(d, levels, prefix, fonts) {
|
|
|
567
566
|
off
|
|
568
567
|
};
|
|
569
568
|
}
|
|
570
|
-
var TEXT_TYPE_FALLBACK = new Map([
|
|
569
|
+
var TEXT_TYPE_FALLBACK = /* @__PURE__ */ new Map([
|
|
571
570
|
[5, 1],
|
|
572
571
|
[6, 0],
|
|
573
572
|
[7, 1],
|
|
@@ -813,8 +812,8 @@ function inlineBlip(blob) {
|
|
|
813
812
|
return bytes ? { bytes } : void 0;
|
|
814
813
|
}
|
|
815
814
|
var PATTERN_TILE_PT = {
|
|
816
|
-
widthPt:
|
|
817
|
-
heightPt:
|
|
815
|
+
widthPt: 6,
|
|
816
|
+
heightPt: 6
|
|
818
817
|
};
|
|
819
818
|
/**
|
|
820
819
|
* §2.3.7.1 MSOFILLTYPE 1 — the picture a PATTERN fill repeats.
|
|
@@ -952,7 +951,7 @@ function optComplex(d, count, wantId) {
|
|
|
952
951
|
offset += len;
|
|
953
952
|
}
|
|
954
953
|
}
|
|
955
|
-
var ARRAY_PROPS = new Set([
|
|
954
|
+
var ARRAY_PROPS = /* @__PURE__ */ new Set([
|
|
956
955
|
325,
|
|
957
956
|
326,
|
|
958
957
|
327,
|
|
@@ -1077,7 +1076,7 @@ function parseFreeformGeometry(d, count) {
|
|
|
1077
1076
|
commands
|
|
1078
1077
|
} : void 0;
|
|
1079
1078
|
}
|
|
1080
|
-
var SYS_COLORS = new Map([
|
|
1079
|
+
var SYS_COLORS = /* @__PURE__ */ new Map([
|
|
1081
1080
|
[5, "FFFFFF"],
|
|
1082
1081
|
[6, "000000"],
|
|
1083
1082
|
[7, "000000"],
|
|
@@ -6,9 +6,9 @@ import "../core/style-cascade/index.js";
|
|
|
6
6
|
import { poAttr, poChildren, poFindDescendant, poIntAttr, poIs } from "../core/po-helpers.js";
|
|
7
7
|
import { cachedDiagramTree, laidOutDiagramTree } from "../core/drawingml/diagram/run.js";
|
|
8
8
|
import { packageHasPart } from "../core/bytes.js";
|
|
9
|
+
import { parseTheme, parseThemeBgFillStyles, parseThemeFillStyles, parseThemeFonts, parseThemeLineWidths } from "../core/drawingml/theme-parser.js";
|
|
9
10
|
import { DEFAULT_SCHEME_ALIAS, DEFAULT_THEME_PALETTE, defaultColorResolver, makeColorResolver } from "../core/drawingml/colors.js";
|
|
10
11
|
import { parseChart, withChartColorStyle } from "../core/drawingml/chart-parser.js";
|
|
11
|
-
import { parseTheme, parseThemeBgFillStyles, parseThemeFillStyles, parseThemeFonts, parseThemeLineWidths } from "../core/drawingml/theme-parser.js";
|
|
12
12
|
import { OpcPackage } from "../core/opc/package.js";
|
|
13
13
|
import "../core/opc/index.js";
|
|
14
14
|
import { loadPptxEmbeddedFonts } from "./embedded-fonts.js";
|
|
@@ -497,7 +497,7 @@ function partShapes(pkg, path, tree, root, deps) {
|
|
|
497
497
|
const cSld = part ? poChildren(part).find((c) => poIs(c, "p:cSld")) : void 0;
|
|
498
498
|
const spTree = cSld ? poChildren(cSld).find((c) => poIs(c, "p:spTree")) : void 0;
|
|
499
499
|
if (!spTree) return [];
|
|
500
|
-
|
|
500
|
+
const ctx = {
|
|
501
501
|
colors: deps.colors,
|
|
502
502
|
...deps.themeFills ? { themeFills: deps.themeFills } : {},
|
|
503
503
|
...deps.themeLineWidths ? { themeLineWidths: deps.themeLineWidths } : {},
|
|
@@ -508,7 +508,8 @@ function partShapes(pkg, path, tree, root, deps) {
|
|
|
508
508
|
resolveHyperlink: makeHyperlinkResolver(pkg, path),
|
|
509
509
|
resolveDiagram: makeSlideDiagramResolver(pkg, path),
|
|
510
510
|
onLoss: deps.onLoss
|
|
511
|
-
}
|
|
511
|
+
};
|
|
512
|
+
return parseSlideShapes(spTree, ctx, void 0, true);
|
|
512
513
|
}
|
|
513
514
|
/**
|
|
514
515
|
* §19.3.1.38/§19.3.1.39 `@showMasterSp` — whether this part draws the shapes it
|
|
@@ -574,7 +575,7 @@ function themePart(pkg, masterPath) {
|
|
|
574
575
|
var pptxReader = {
|
|
575
576
|
id: "pptx",
|
|
576
577
|
produces: "flow",
|
|
577
|
-
supports: new Set([
|
|
578
|
+
supports: /* @__PURE__ */ new Set([
|
|
578
579
|
FEATURES.text,
|
|
579
580
|
FEATURES.images,
|
|
580
581
|
FEATURES.shapes,
|
|
@@ -585,4 +586,4 @@ var pptxReader = {
|
|
|
585
586
|
read: (bytes) => readPptx(bytes)
|
|
586
587
|
};
|
|
587
588
|
//#endregion
|
|
588
|
-
export { parseXml, pptxReader };
|
|
589
|
+
export { parseXml, pptxReader, readPptx };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { poAttr, poIs } from "../core/po-helpers.js";
|
|
2
2
|
//#region src/pptx/preset-table-styles.ts
|
|
3
3
|
/** The gallery styles this reader knows, by the GUID a table names. */
|
|
4
|
-
var PRESETS = new Map([
|
|
4
|
+
var PRESETS = /* @__PURE__ */ new Map([
|
|
5
5
|
["{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}", "<a:tblStyle styleId=\"{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}\" styleName=\"Medium Style 2 - Accent 1\"><a:wholeTbl><a:tcTxStyle><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"dk1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:left><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:left><a:right><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:right><a:top><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:top><a:bottom><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:bottom><a:insideH><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:insideH><a:insideV><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:insideV></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"accent1\"><a:tint val=\"20000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:wholeTbl><a:band1H><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"accent1\"><a:tint val=\"40000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:band1H><a:band2H><a:tcStyle><a:tcBdr/></a:tcStyle></a:band2H><a:band1V><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"accent1\"><a:tint val=\"40000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:band1V><a:band2V><a:tcStyle><a:tcBdr/></a:tcStyle></a:band2V><a:lastCol><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"accent1\"/></a:solidFill></a:fill></a:tcStyle></a:lastCol><a:firstCol><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"accent1\"/></a:solidFill></a:fill></a:tcStyle></a:firstCol><a:lastRow><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:top><a:ln w=\"38100\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:top></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"accent1\"/></a:solidFill></a:fill></a:tcStyle></a:lastRow><a:firstRow><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:bottom><a:ln w=\"38100\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:bottom></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"accent1\"/></a:solidFill></a:fill></a:tcStyle></a:firstRow></a:tblStyle>"],
|
|
6
6
|
["{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}", "<a:tblStyle styleId=\"{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}\" styleName=\"Medium Style 2\"><a:wholeTbl><a:tcTxStyle><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"dk1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:left><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:left><a:right><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:right><a:top><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:top><a:bottom><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:bottom><a:insideH><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:insideH><a:insideV><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:insideV></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"dk1\"><a:tint val=\"20000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:wholeTbl><a:band1H><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"dk1\"><a:tint val=\"40000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:band1H><a:band2H><a:tcStyle><a:tcBdr/></a:tcStyle></a:band2H><a:band1V><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"dk1\"><a:tint val=\"40000\"/></a:schemeClr></a:solidFill></a:fill></a:tcStyle></a:band1V><a:band2V><a:tcStyle><a:tcBdr/></a:tcStyle></a:band2V><a:lastCol><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"dk1\"/></a:solidFill></a:fill></a:tcStyle></a:lastCol><a:firstCol><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr/><a:fill><a:solidFill><a:schemeClr val=\"dk1\"/></a:solidFill></a:fill></a:tcStyle></a:firstCol><a:lastRow><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:top><a:ln w=\"38100\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:top></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"dk1\"/></a:solidFill></a:fill></a:tcStyle></a:lastRow><a:firstRow><a:tcTxStyle b=\"on\"><a:fontRef idx=\"minor\"><a:prstClr val=\"black\"/></a:fontRef><a:schemeClr val=\"lt1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:bottom><a:ln w=\"38100\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"lt1\"/></a:solidFill></a:ln></a:bottom></a:tcBdr><a:fill><a:solidFill><a:schemeClr val=\"dk1\"/></a:solidFill></a:fill></a:tcStyle></a:firstRow></a:tblStyle>"],
|
|
7
7
|
["{5940675A-B579-460E-94D1-54222C63F5DA}", "<a:tblStyle styleId=\"{5940675A-B579-460E-94D1-54222C63F5DA}\" styleName=\"No Style, Table Grid\"><a:wholeTbl><a:tcTxStyle><a:fontRef idx=\"minor\"><a:scrgbClr r=\"0\" g=\"0\" b=\"0\"/></a:fontRef><a:schemeClr val=\"tx1\"/></a:tcTxStyle><a:tcStyle><a:tcBdr><a:left><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:left><a:right><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:right><a:top><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:top><a:bottom><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:bottom><a:insideH><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:insideH><a:insideV><a:ln w=\"12700\" cmpd=\"sng\"><a:solidFill><a:schemeClr val=\"tx1\"/></a:solidFill></a:ln></a:insideV></a:tcBdr><a:fill><a:noFill/></a:fill></a:tcStyle></a:wholeTbl></a:tblStyle>"],
|
|
@@ -165,7 +165,8 @@ function parseSp(sp, ctx, transform) {
|
|
|
165
165
|
const ownFill = stated(statesFill);
|
|
166
166
|
const styleFill = style ? styleRefFill(style, colors, themeStyles) : void 0;
|
|
167
167
|
const lentFill = lent(statesFill);
|
|
168
|
-
const
|
|
168
|
+
const resolved = useBgFill ? backgroundThrough(ctx.backgroundFill, box, ctx.slideSize) : ownFill ? parseFill(ownFill, colors, ctx.resolveImage) : styleFill && styleFill.kind !== "none" ? styleFill : lentFill ? parseFill(lentFill, colors, ctx.resolveImage) : spPr ? parseFill(spPr, colors, ctx.resolveImage) : { kind: "none" };
|
|
169
|
+
const styled = withStatedDirection(resolved, spPr);
|
|
169
170
|
const lineFrom = from((n) => poChildren(n).some((c) => poIs(c, "a:ln")));
|
|
170
171
|
let line = lineFrom ? parseLine(lineFrom, colors) : void 0;
|
|
171
172
|
if (style) {
|
|
@@ -894,12 +895,13 @@ function parseTable(tbl, colors, resolveTableStyle, theme) {
|
|
|
894
895
|
rows: rows.map((row, r) => ({
|
|
895
896
|
...row,
|
|
896
897
|
cells: row.cells.map((cell, c) => {
|
|
897
|
-
const
|
|
898
|
+
const at = {
|
|
898
899
|
row: r,
|
|
899
900
|
rowCount: rows.length,
|
|
900
901
|
col: c,
|
|
901
902
|
colCount: grid.length
|
|
902
|
-
}
|
|
903
|
+
};
|
|
904
|
+
const part = cellStyle(style, flags, at, colors, theme);
|
|
903
905
|
const tc = sources[r]?.[c];
|
|
904
906
|
return withCellStyle(cell, tc && cellSaysNoFill(tc) ? withoutFill(part) : part);
|
|
905
907
|
})
|
|
@@ -968,4 +970,4 @@ function cellFillHex(tcPr, colors) {
|
|
|
968
970
|
}
|
|
969
971
|
}
|
|
970
972
|
//#endregion
|
|
971
|
-
export { asBackdrop, backdropElement, diagramTransform, noDiagramOverrideLoss, parseBackgroundFill, parseDiagramNodes, parseGeometry, parseSlideShapes, parseTxBody };
|
|
973
|
+
export { asBackdrop, backdropElement, diagramTransform, noDiagramOverrideLoss, parseBackgroundFill, parseDiagramDrawing, parseDiagramNodes, parseGeometry, parseSlideShapes, parseTxBody };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { pt } from "../core/ir/units.js";
|
|
2
2
|
import { poAttr, poChildren, poIntAttr, poIs } from "../core/po-helpers.js";
|
|
3
|
-
import { resolveColorNode } from "../core/drawingml/colors.js";
|
|
4
3
|
import { resolveThemeFont } from "../core/drawingml/theme-parser.js";
|
|
4
|
+
import { resolveColorNode } from "../core/drawingml/colors.js";
|
|
5
5
|
//#region src/pptx/sp-helpers.ts
|
|
6
6
|
var isTrue = (v) => v === "1" || v === "true" || v === "on";
|
|
7
7
|
var NON_VISUAL = [
|
|
@@ -172,10 +172,11 @@ function refBorder(ref, colors, theme) {
|
|
|
172
172
|
const colorHex = colorOf(ref, colors);
|
|
173
173
|
if (colorHex === void 0) return void 0;
|
|
174
174
|
const idx = poIntAttr(ref, "idx");
|
|
175
|
+
const width = idx !== void 0 && idx > 0 ? theme?.lineWidths?.[idx - 1] : void 0;
|
|
175
176
|
return {
|
|
176
177
|
style: "single",
|
|
177
178
|
colorHex,
|
|
178
|
-
width: pt(
|
|
179
|
+
width: pt(width ?? .75)
|
|
179
180
|
};
|
|
180
181
|
}
|
|
181
182
|
/**
|
|
@@ -439,9 +439,9 @@ function alignmentFromJc(jc) {
|
|
|
439
439
|
var docReader = {
|
|
440
440
|
id: "doc",
|
|
441
441
|
produces: "flow",
|
|
442
|
-
supports: new Set([FEATURES.text]),
|
|
442
|
+
supports: /* @__PURE__ */ new Set([FEATURES.text]),
|
|
443
443
|
sniff: looksLikeDoc,
|
|
444
444
|
read: (bytes) => readDoc(bytes)
|
|
445
445
|
};
|
|
446
446
|
//#endregion
|
|
447
|
-
export { docReader };
|
|
447
|
+
export { docReader, readDoc };
|
|
@@ -61,7 +61,7 @@ var SPRA_LEN = [
|
|
|
61
61
|
0,
|
|
62
62
|
3
|
|
63
63
|
];
|
|
64
|
-
var SPRM_LONG_OPERAND = new Set([54792, 50701]);
|
|
64
|
+
var SPRM_LONG_OPERAND = /* @__PURE__ */ new Set([54792, 50701]);
|
|
65
65
|
var CELL_MARK = 7;
|
|
66
66
|
var FIELD_BEGIN = 19;
|
|
67
67
|
var FIELD_SEPARATOR = 20;
|
|
@@ -105,7 +105,7 @@ function readSectionPageSize(wd, table) {
|
|
|
105
105
|
function extractDocContent(bytes) {
|
|
106
106
|
const cfb = openCfb(bytes);
|
|
107
107
|
const wd = cfb.readStream("WordDocument");
|
|
108
|
-
if (!wd || wd.length <
|
|
108
|
+
if (!wd || wd.length < 426) return EMPTY;
|
|
109
109
|
if (u16(wd, 0) !== WIDENT) return EMPTY;
|
|
110
110
|
const flags = u16(wd, OFF_FLAGS1);
|
|
111
111
|
if ((flags & FLAG_ENCRYPTED) !== 0) return {
|
|
@@ -343,8 +343,8 @@ function parsePlcBte(wd, table, fcOff, lcbOff, parsePage) {
|
|
|
343
343
|
return out;
|
|
344
344
|
}
|
|
345
345
|
function parseChpxFkp(page, out) {
|
|
346
|
-
const crun = page[
|
|
347
|
-
if (crun === 0 || (crun + 1) * 4 + crun >
|
|
346
|
+
const crun = page[511];
|
|
347
|
+
if (crun === 0 || (crun + 1) * 4 + crun > 511) return;
|
|
348
348
|
for (let i = 0; i < crun; i++) {
|
|
349
349
|
const fcStart = u32(page, i * 4);
|
|
350
350
|
const fcEnd = u32(page, (i + 1) * 4);
|
|
@@ -364,8 +364,8 @@ function parseChpxFkp(page, out) {
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
function parsePapxFkp(page, out) {
|
|
367
|
-
const cpara = page[
|
|
368
|
-
if (cpara === 0 || (cpara + 1) * 4 + cpara * 13 >
|
|
367
|
+
const cpara = page[511];
|
|
368
|
+
if (cpara === 0 || (cpara + 1) * 4 + cpara * 13 > 511) return;
|
|
369
369
|
const bxBase = (cpara + 1) * 4;
|
|
370
370
|
for (let i = 0; i < cpara; i++) {
|
|
371
371
|
const fcStart = u32(page, i * 4);
|
|
@@ -409,9 +409,7 @@ function decodeChpxGrpprl(d) {
|
|
|
409
409
|
case SPRM_C_FSPEC:
|
|
410
410
|
fSpec = d[s.op] !== 0;
|
|
411
411
|
break;
|
|
412
|
-
case SPRM_C_PIC_LOCATION:
|
|
413
|
-
picOffset = u32(d, s.op);
|
|
414
|
-
break;
|
|
412
|
+
case SPRM_C_PIC_LOCATION: picOffset = u32(d, s.op);
|
|
415
413
|
}
|
|
416
414
|
return {
|
|
417
415
|
...bold !== void 0 ? { bold } : {},
|
|
@@ -496,9 +494,7 @@ function decodePapxGrpprl(d) {
|
|
|
496
494
|
if (shd.length > 0) cellShadings = shd;
|
|
497
495
|
break;
|
|
498
496
|
}
|
|
499
|
-
case SPRM_P_ILFO:
|
|
500
|
-
listIlfo = u16(d, s.op);
|
|
501
|
-
break;
|
|
497
|
+
case SPRM_P_ILFO: listIlfo = u16(d, s.op);
|
|
502
498
|
}
|
|
503
499
|
return {
|
|
504
500
|
...jc !== void 0 ? { jc } : {},
|
|
@@ -527,16 +523,18 @@ function* sprms(d) {
|
|
|
527
523
|
const spra = sprm >> 13;
|
|
528
524
|
let op = p;
|
|
529
525
|
let len = SPRA_LEN[spra];
|
|
530
|
-
if (spra === 6)
|
|
531
|
-
if (
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
526
|
+
if (spra === 6) {
|
|
527
|
+
if (SPRM_LONG_OPERAND.has(sprm)) {
|
|
528
|
+
if (p + 2 > d.length) break;
|
|
529
|
+
const cb = u16(d, p);
|
|
530
|
+
if (cb < 1) break;
|
|
531
|
+
len = cb - 1;
|
|
532
|
+
op = p + 2;
|
|
533
|
+
} else {
|
|
534
|
+
if (p >= d.length) break;
|
|
535
|
+
len = d[p];
|
|
536
|
+
op = p + 1;
|
|
537
|
+
}
|
|
540
538
|
}
|
|
541
539
|
if (op + len > d.length) break;
|
|
542
540
|
yield {
|
|
@@ -24,7 +24,7 @@ var parser = new XMLParser({
|
|
|
24
24
|
trimValues: false,
|
|
25
25
|
maxNestedTags: 1e3
|
|
26
26
|
});
|
|
27
|
-
var RUN_CONTAINER_TAGS = new Set([
|
|
27
|
+
var RUN_CONTAINER_TAGS = /* @__PURE__ */ new Set([
|
|
28
28
|
"w:hyperlink",
|
|
29
29
|
"w:sdt",
|
|
30
30
|
"w:sdtContent",
|
|
@@ -102,7 +102,8 @@ function parseBackgroundFill(documentXml, resolveImage) {
|
|
|
102
102
|
return fill.kind === "gradient" || fill.kind === "picture" ? fill : void 0;
|
|
103
103
|
}
|
|
104
104
|
function backgroundNode(documentXml) {
|
|
105
|
-
const
|
|
105
|
+
const tree = parser.parse(resolveInternalEntities(decoder.decode(documentXml)));
|
|
106
|
+
const doc = poFindByPath(tree, ["w:document"]);
|
|
106
107
|
return doc ? poChildren(doc).find((c) => poIs(c, "w:background")) : void 0;
|
|
107
108
|
}
|
|
108
109
|
/** A fresh {@link BlockCounter}. */
|
|
@@ -125,7 +126,7 @@ function bodyIndexForBlock(blocks, blockEnd) {
|
|
|
125
126
|
while (n < blocks.index.length && blocks.index[n] < blockEnd) n++;
|
|
126
127
|
return n;
|
|
127
128
|
}
|
|
128
|
-
var HF_TYPES = new Set([
|
|
129
|
+
var HF_TYPES = /* @__PURE__ */ new Set([
|
|
129
130
|
"default",
|
|
130
131
|
"first",
|
|
131
132
|
"even"
|
|
@@ -400,7 +401,7 @@ function parseBodyElements(children, ctx = DEFAULT_PARSE_CONTEXT, blocks, sdtRun
|
|
|
400
401
|
}
|
|
401
402
|
return out;
|
|
402
403
|
}
|
|
403
|
-
var COLLAPSE_TRANSPARENT_TAGS = new Set([
|
|
404
|
+
var COLLAPSE_TRANSPARENT_TAGS = /* @__PURE__ */ new Set([
|
|
404
405
|
"w:ins",
|
|
405
406
|
"w:moveTo",
|
|
406
407
|
"w:sdt",
|
|
@@ -560,7 +561,8 @@ function parseParagraph(p, ctx, extraBookmarks, anchored, sdtRunProps) {
|
|
|
560
561
|
const mathPara = poChildren(p).find((c) => poIs(c, "m:oMathPara"));
|
|
561
562
|
if (mathPara && properties.alignment === void 0) {
|
|
562
563
|
const paraPr = poChildren(mathPara).find((c) => poIs(c, "m:oMathParaPr"));
|
|
563
|
-
const
|
|
564
|
+
const jcNode = paraPr ? poChildren(paraPr).find((c) => poIs(c, "m:jc")) : void 0;
|
|
565
|
+
const jcVal = poAttr(jcNode, "val");
|
|
564
566
|
const alignment = jcVal === "left" ? "left" : jcVal === "right" ? "right" : "center";
|
|
565
567
|
properties = {
|
|
566
568
|
...properties,
|
|
@@ -632,7 +634,7 @@ function fieldKeyword(instr) {
|
|
|
632
634
|
}
|
|
633
635
|
var CHECKBOX_CLEAR = "☐";
|
|
634
636
|
var CHECKBOX_CHECKED = "☒";
|
|
635
|
-
var SILENT_FIELDS = new Set([
|
|
637
|
+
var SILENT_FIELDS = /* @__PURE__ */ new Set([
|
|
636
638
|
"SET",
|
|
637
639
|
"ASK",
|
|
638
640
|
"XE",
|
|
@@ -655,17 +657,18 @@ function applyFieldFsm(collected) {
|
|
|
655
657
|
let st = null;
|
|
656
658
|
for (const c of collected) {
|
|
657
659
|
if (c.fldChar === "begin") {
|
|
658
|
-
if (st)
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
660
|
+
if (st) {
|
|
661
|
+
if (st.phase === "instr") st.depth++;
|
|
662
|
+
else {
|
|
663
|
+
out.push(...st.result);
|
|
664
|
+
st = {
|
|
665
|
+
phase: "instr",
|
|
666
|
+
instr: "",
|
|
667
|
+
result: [],
|
|
668
|
+
depth: 0
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
} else st = {
|
|
669
672
|
phase: "instr",
|
|
670
673
|
instr: "",
|
|
671
674
|
result: [],
|
|
@@ -808,7 +811,7 @@ function sdtRunProperties(sdt, themeFonts) {
|
|
|
808
811
|
const props = parseRunProperties(poElementToFlat(rPr), themeFonts);
|
|
809
812
|
return Object.keys(props).length > 0 ? props : void 0;
|
|
810
813
|
}
|
|
811
|
-
var WINGDINGS_TO_UNICODE = new Map([
|
|
814
|
+
var WINGDINGS_TO_UNICODE = /* @__PURE__ */ new Map([
|
|
812
815
|
[108, "●"],
|
|
813
816
|
[109, "❍"],
|
|
814
817
|
[110, "■"],
|
|
@@ -835,7 +838,7 @@ var WINGDINGS_TO_UNICODE = new Map([
|
|
|
835
838
|
[237, "↙"],
|
|
836
839
|
[238, "↘"]
|
|
837
840
|
]);
|
|
838
|
-
var SYMBOL_TO_UNICODE = new Map([
|
|
841
|
+
var SYMBOL_TO_UNICODE = /* @__PURE__ */ new Map([
|
|
839
842
|
[34, "∀"],
|
|
840
843
|
[36, "∃"],
|
|
841
844
|
[64, "≅"],
|
|
@@ -1031,7 +1034,8 @@ function elementTag(node) {
|
|
|
1031
1034
|
*/
|
|
1032
1035
|
function parseNotes(notesXml, rootTag, noteTag, ctx = DEFAULT_PARSE_CONTEXT) {
|
|
1033
1036
|
const xml = resolveInternalEntities(decoder.decode(notesXml));
|
|
1034
|
-
const
|
|
1037
|
+
const tree = parser.parse(xml);
|
|
1038
|
+
const root = poFindByPath(tree, [rootTag]);
|
|
1035
1039
|
const out = /* @__PURE__ */ new Map();
|
|
1036
1040
|
if (!root) return out;
|
|
1037
1041
|
for (const note of poChildren(root)) {
|
|
@@ -1046,7 +1050,8 @@ function parseNotes(notesXml, rootTag, noteTag, ctx = DEFAULT_PARSE_CONTEXT) {
|
|
|
1046
1050
|
}
|
|
1047
1051
|
function parseCommentsRaw(commentsXml, ctx) {
|
|
1048
1052
|
const xml = resolveInternalEntities(decoder.decode(commentsXml));
|
|
1049
|
-
const
|
|
1053
|
+
const tree = parser.parse(xml);
|
|
1054
|
+
const root = poFindByPath(tree, ["w:comments"]);
|
|
1050
1055
|
const comments = /* @__PURE__ */ new Map();
|
|
1051
1056
|
const paraIds = /* @__PURE__ */ new Map();
|
|
1052
1057
|
if (!root) return {
|
|
@@ -7,9 +7,9 @@ import { applyNumbering, applyNumberingToHeadersFooters } from "../core/numberin
|
|
|
7
7
|
import "../core/numbering/index.js";
|
|
8
8
|
import { cachedDiagramTree, laidOutDiagramTree } from "../core/drawingml/diagram/run.js";
|
|
9
9
|
import { packageHasPart } from "../core/bytes.js";
|
|
10
|
+
import { parseTheme, parseThemeBgFillStyles, parseThemeEffectStyles, parseThemeFillStyles, parseThemeFonts, parseThemeLineWidths } from "../core/drawingml/theme-parser.js";
|
|
10
11
|
import { DEFAULT_THEME_PALETTE, makeColorResolver } from "../core/drawingml/colors.js";
|
|
11
12
|
import { parseChart, withChartColorStyle } from "../core/drawingml/chart-parser.js";
|
|
12
|
-
import { parseTheme, parseThemeBgFillStyles, parseThemeEffectStyles, parseThemeFillStyles, parseThemeFonts, parseThemeLineWidths } from "../core/drawingml/theme-parser.js";
|
|
13
13
|
import { isOoxmlRel } from "../core/opc/relationship-types.js";
|
|
14
14
|
import { OpcPackage } from "../core/opc/package.js";
|
|
15
15
|
import { parseCoreProperties } from "../core/opc/core-properties.js";
|
|
@@ -157,7 +157,7 @@ function readDocx(docx) {
|
|
|
157
157
|
var docxReader = {
|
|
158
158
|
id: "docx",
|
|
159
159
|
produces: "flow",
|
|
160
|
-
supports: new Set([
|
|
160
|
+
supports: /* @__PURE__ */ new Set([
|
|
161
161
|
FEATURES.text,
|
|
162
162
|
FEATURES.tables,
|
|
163
163
|
FEATURES.tablesNested,
|
|
@@ -65,7 +65,7 @@ function prepareDocxStyledRender(docx, options) {
|
|
|
65
65
|
* cannot be opened.
|
|
66
66
|
*/
|
|
67
67
|
function detectDocxFamilyKeys(docx) {
|
|
68
|
-
const keys = new Set(["arimo"]);
|
|
68
|
+
const keys = /* @__PURE__ */ new Set(["arimo"]);
|
|
69
69
|
let pkg;
|
|
70
70
|
try {
|
|
71
71
|
pkg = OpcPackage.open(docx);
|
|
@@ -134,7 +134,7 @@ async function buildUnsignedDocxPdf(docx, options) {
|
|
|
134
134
|
*/
|
|
135
135
|
async function resolveDocxAutoFonts(docx, options = {}) {
|
|
136
136
|
const fetchOpt = options.fontFetch ? { fetch: options.fontFetch } : {};
|
|
137
|
-
const keys = options.fontFamily ? new Set([resolveFamilyKey(options.fontFamily)]) : detectDocxFamilyKeys(docx);
|
|
137
|
+
const keys = options.fontFamily ? /* @__PURE__ */ new Set([resolveFamilyKey(options.fontFamily)]) : detectDocxFamilyKeys(docx);
|
|
138
138
|
if (keys.size <= 1) {
|
|
139
139
|
const family = keys.values().next().value;
|
|
140
140
|
return { fonts: await fetchFontSet({
|
|
@@ -158,4 +158,4 @@ async function resolveDocxAutoFonts(docx, options = {}) {
|
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
//#endregion
|
|
161
|
-
export { convertDocxToPdf };
|
|
161
|
+
export { convertDocxToPdf, convertDocxToPdfSync, detectDocxFamilyKeys, resolveDocxAutoFonts };
|
|
@@ -531,7 +531,7 @@ function emitHeadersFooters(flow, section, state, docScope, extraParts, extraPar
|
|
|
531
531
|
var docxWriter = {
|
|
532
532
|
id: "docx",
|
|
533
533
|
consumes: "flow",
|
|
534
|
-
supports: new Set([FEATURES.text, FEATURES.fontsEmbedding]),
|
|
534
|
+
supports: /* @__PURE__ */ new Set([FEATURES.text, FEATURES.fontsEmbedding]),
|
|
535
535
|
write: (doc) => writeDocx(doc)
|
|
536
536
|
};
|
|
537
537
|
/**
|
|
@@ -1177,7 +1177,7 @@ function pPrWithSect(p, closingSectPr) {
|
|
|
1177
1177
|
*/
|
|
1178
1178
|
var stated = (pt) => Number.isFinite(pt);
|
|
1179
1179
|
/** §17.18.44 ST_Jc — the tokens the attribute admits, so nothing else is written. */
|
|
1180
|
-
var JC = new Set([
|
|
1180
|
+
var JC = /* @__PURE__ */ new Set([
|
|
1181
1181
|
"left",
|
|
1182
1182
|
"right",
|
|
1183
1183
|
"center",
|
|
@@ -1188,8 +1188,10 @@ function indXml(p) {
|
|
|
1188
1188
|
const attrs = [];
|
|
1189
1189
|
if (stated(p.indentLeft) && p.indentLeft !== DEFAULT_PARA.indentLeft) attrs.push(`w:left="${twips(p.indentLeft)}"`);
|
|
1190
1190
|
if (stated(p.indentRight) && p.indentRight !== DEFAULT_PARA.indentRight) attrs.push(`w:right="${twips(p.indentRight)}"`);
|
|
1191
|
-
if (stated(p.indentFirstLine) && p.indentFirstLine !== DEFAULT_PARA.indentFirstLine)
|
|
1192
|
-
|
|
1191
|
+
if (stated(p.indentFirstLine) && p.indentFirstLine !== DEFAULT_PARA.indentFirstLine) {
|
|
1192
|
+
if (p.indentFirstLine < 0) attrs.push(`w:hanging="${twips(-p.indentFirstLine)}"`);
|
|
1193
|
+
else attrs.push(`w:firstLine="${twips(p.indentFirstLine)}"`);
|
|
1194
|
+
}
|
|
1193
1195
|
return attrs.length > 0 ? `<w:ind ${attrs.join(" ")}/>` : "";
|
|
1194
1196
|
}
|
|
1195
1197
|
function spacingXml(p) {
|
|
@@ -1248,8 +1250,10 @@ function rawParaPrXml(p) {
|
|
|
1248
1250
|
const attrs = [];
|
|
1249
1251
|
if (p.indentLeft !== void 0 && stated(p.indentLeft)) attrs.push(`w:left="${twips(p.indentLeft)}"`);
|
|
1250
1252
|
if (p.indentRight !== void 0 && stated(p.indentRight)) attrs.push(`w:right="${twips(p.indentRight)}"`);
|
|
1251
|
-
if (p.indentFirstLine !== void 0 && stated(p.indentFirstLine))
|
|
1252
|
-
|
|
1253
|
+
if (p.indentFirstLine !== void 0 && stated(p.indentFirstLine)) {
|
|
1254
|
+
if (p.indentFirstLine < 0) attrs.push(`w:hanging="${twips(-p.indentFirstLine)}"`);
|
|
1255
|
+
else attrs.push(`w:firstLine="${twips(p.indentFirstLine)}"`);
|
|
1256
|
+
}
|
|
1253
1257
|
const ind = attrs.length > 0 ? `<w:ind ${attrs.join(" ")}/>` : "";
|
|
1254
1258
|
const jc = p.alignment !== void 0 && JC.has(p.alignment) ? `<w:jc w:val="${p.alignment}"/>` : "";
|
|
1255
1259
|
return ind || jc ? `<w:pPr>${jc}${ind}</w:pPr>` : "";
|