@office-open/core 0.10.14 → 0.11.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/README.md +2 -1
- package/dist/chart/index.d.mts +2 -2
- package/dist/chart/index.mjs +2 -2
- package/dist/chart-Kf_utasF.mjs +1780 -0
- package/dist/chart-Kf_utasF.mjs.map +1 -0
- package/dist/color-mapping-CFF0vRSe.mjs +117 -0
- package/dist/color-mapping-CFF0vRSe.mjs.map +1 -0
- package/dist/descriptor/index.d.mts +2 -2
- package/dist/descriptor/index.mjs +1 -1
- package/dist/{descriptor-BjNkn5jo.mjs → descriptor-BX8xW8na.mjs} +6 -2
- package/dist/{descriptor-BjNkn5jo.mjs.map → descriptor-BX8xW8na.mjs.map} +1 -1
- package/dist/drawing/index.d.mts +2 -0
- package/dist/drawing/index.mjs +2 -0
- package/dist/{drawingml-sj1J3lb0.mjs → drawing-FBzd2I0m.mjs} +2596 -1518
- package/dist/drawing-FBzd2I0m.mjs.map +1 -0
- package/dist/{converters-C_Y2QX1w.mjs → generators-CElPsAhd.mjs} +699 -258
- package/dist/generators-CElPsAhd.mjs.map +1 -0
- package/dist/index-BsTUn4K1.d.mts +28 -0
- package/dist/index-BsTUn4K1.d.mts.map +1 -0
- package/dist/index-C0ClOhmZ.d.mts +869 -0
- package/dist/index-C0ClOhmZ.d.mts.map +1 -0
- package/dist/{index-BVK2dv6C.d.mts → index-CLX7gU9J.d.mts} +8 -3
- package/dist/index-CLX7gU9J.d.mts.map +1 -0
- package/dist/index-Cgz88FU0.d.mts +308 -0
- package/dist/index-Cgz88FU0.d.mts.map +1 -0
- package/dist/{index-CE53SwpZ.d.mts → index-CnjCK-lF.d.mts} +497 -351
- package/dist/index-CnjCK-lF.d.mts.map +1 -0
- package/dist/{index-BfHfKuKy.d.mts → index-DpPeyf5f.d.mts} +61 -20
- package/dist/index-DpPeyf5f.d.mts.map +1 -0
- package/dist/index-DxwLMnBF.d.mts +384 -0
- package/dist/index-DxwLMnBF.d.mts.map +1 -0
- package/dist/index.d.mts +175 -22
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +523 -70
- package/dist/index.mjs.map +1 -1
- package/dist/patch/index.mjs +1 -1
- package/dist/{patch-BmRfghOo.mjs → patch-3KLx2yEP.mjs} +4 -4
- package/dist/patch-3KLx2yEP.mjs.map +1 -0
- package/dist/smartart/index.d.mts +2 -2
- package/dist/smartart/index.mjs +2 -2
- package/dist/smartart-BxnkROOp.mjs +1649 -0
- package/dist/smartart-BxnkROOp.mjs.map +1 -0
- package/dist/style-matrix-DAP6XrLv.mjs +123 -0
- package/dist/style-matrix-DAP6XrLv.mjs.map +1 -0
- package/dist/theme/index.d.mts +4 -2
- package/dist/theme/index.mjs +3 -2
- package/dist/theme-OAuRcA9_.mjs +460 -0
- package/dist/theme-OAuRcA9_.mjs.map +1 -0
- package/dist/theme-options-BbWccl85.d.mts +109 -0
- package/dist/theme-options-BbWccl85.d.mts.map +1 -0
- package/dist/util/index.d.mts +3 -3
- package/dist/util/index.mjs +3 -3
- package/dist/{util-Tq9PSjK0.mjs → util-C94-JKtp.mjs} +175 -429
- package/dist/util-C94-JKtp.mjs.map +1 -0
- package/dist/{values-8di32lIe.d.mts → values-aVoirbWB.d.mts} +4 -2
- package/dist/values-aVoirbWB.d.mts.map +1 -0
- package/dist/vector/index.d.mts +2 -0
- package/dist/vector/index.mjs +2 -0
- package/dist/vector-TpjW6ZSc.mjs +3092 -0
- package/dist/vector-TpjW6ZSc.mjs.map +1 -0
- package/package.json +15 -7
- package/dist/chart-DIGJna_6.mjs +0 -582
- package/dist/chart-DIGJna_6.mjs.map +0 -1
- package/dist/converters-C_Y2QX1w.mjs.map +0 -1
- package/dist/drawingml/index.d.mts +0 -2
- package/dist/drawingml/index.mjs +0 -2
- package/dist/drawingml-sj1J3lb0.mjs.map +0 -1
- package/dist/index-BVK2dv6C.d.mts.map +0 -1
- package/dist/index-BfHfKuKy.d.mts.map +0 -1
- package/dist/index-CE53SwpZ.d.mts.map +0 -1
- package/dist/index-D6VE-MnJ.d.mts +0 -43
- package/dist/index-D6VE-MnJ.d.mts.map +0 -1
- package/dist/index-DE4CLElr.d.mts +0 -145
- package/dist/index-DE4CLElr.d.mts.map +0 -1
- package/dist/index-DlPA26cw.d.mts +0 -91
- package/dist/index-DlPA26cw.d.mts.map +0 -1
- package/dist/patch-BmRfghOo.mjs.map +0 -1
- package/dist/smartart-B7ukZ-Tw.mjs +0 -305
- package/dist/smartart-B7ukZ-Tw.mjs.map +0 -1
- package/dist/theme-CiNzdl-9.mjs +0 -177
- package/dist/theme-CiNzdl-9.mjs.map +0 -1
- package/dist/util-Tq9PSjK0.mjs.map +0 -1
- package/dist/values-8di32lIe.d.mts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { a as
|
|
6
|
-
import { $ as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
1
|
+
import { A as createZipStream, B as nativeCrc32, C as randomBytes, D as ZIP_STORED_LEVEL, E as ZIP_DEFLATE_LEVEL, F as zipSync, I as zipSyncAndConvert, L as OoxmlMimeType, M as strFromU8, N as unzipSync, O as ZipStreamWriter, P as zipAndConvert, R as convertOutput, S as hashPasswordAgile, T as compileMapping, V as nativeUnzip, _ as replaceNumberingPlaceholders, a as getAudioRefs, b as replaceVideoPlaceholders, c as getReferencedMedia, d as replaceAllPlaceholders, f as replaceAudioPlaceholders, g as replaceMediaPlaceholders, h as replaceImagePlaceholders, i as formatId, j as levelForMediaName, k as createPacker, l as getVideoRefs, m as replaceHyperlinkPlaceholders, n as collectPlaceholderKeys, o as getMediaRefs, p as replaceChartPlaceholders, r as findAndReplaceImagePlaceholders, s as getOleRefs, t as addSmartArtRelationships, u as hasPlaceholders, v as replaceOlePlaceholders, w as addBinaryFile, x as derivePasswordHash, y as replaceSmartArtPlaceholders, z as hasNativeInflate } from "./util-C94-JKtp.mjs";
|
|
2
|
+
import { _ as DOCX_NS, a as appendOverride, b as parseCorePropsElement, c as createRunRenderer, d as createSplitInject, f as createTextElementContents, g as toJson, h as patchSpaceAttribute, i as appendContentType, l as createTokenReplacer, m as nextNumericId, n as appendRelationship, o as createReplacer, p as getFirstLevelElements, r as getNextRelationshipIndex, s as createTraverser, t as applyCorePropertiesOverride, u as TokenNotFoundError, v as PPTX_NS, y as buildCorePropertiesXmlString } from "./patch-3KLx2yEP.mjs";
|
|
3
|
+
import { A as convertInchesToTwip, B as convertTwipToPoints, C as xsdUnderlineStyle, D as convertEmuToPoints, E as convertEmuToPixels, F as convertToEmu, G as emitAngle, H as convertUniversalMeasureToInch, I as convertToInch, J as parseAngle, K as emitPercent, L as convertToPt, M as convertPixelsToEmu, N as convertPointsToEmu, O as convertEmuToTwip, P as convertPointsToTwip, Q as encodeBase64, R as convertToTwip, S as xsdTextCaps, T as convertEmuToInches, U as convertUniversalMeasureToPt, V as convertUniversalMeasureToEmu, W as convertUniversalMeasureToTwip, X as parseUniversalMeasure, Y as parsePercent, Z as decodeBase64, _ as xsdPresetShadow, _t as stripColorHashPrefix, a as isBase64DataURL, at as hexBinary, b as xsdTextAlign, bt as universalMeasureValue, c as xsdBlendMode, ct as longHexNumber, d as xsdLineCap, dt as percentageValue, et as ThemeColor, f as xsdLineEndSize, ft as pointMeasureValue, g as xsdPenAlignment, gt as signedTwipsMeasureValue, h as xsdPattern, ht as signedHpsMeasureValue, i as uniqueUuid, it as eighthPointMeasureValue, j as convertMillimetersToTwip, k as convertInchesToEmu, l as xsdCompoundLine, lt as measurementOrPercentValue, m as xsdPathFillMode, mt as shortHexNumber, n as uniqueId, nt as dateTimeValue, o as toUint8Array, ot as hexColorValue, p as xsdMaterialType, pt as positiveUniversalMeasureValue, q as mapOptional, r as uniqueNumericIdCreator, rt as decimalNumber, s as invertMap, st as hpsMeasureValue, t as hashedId, tt as ThemeFont, u as xsdEffectContainer, ut as parseOnOff, v as xsdRectAlignment, vt as twipsMeasureValue, w as xsdVerticalMergeRev, x as xsdTextAnchor, xt as unsignedDecimalNumber, y as xsdStrikeStyle, yt as uCharHexNumber, z as convertTwipToEmu } from "./generators-CElPsAhd.mjs";
|
|
4
|
+
import { C as stringifyDataModelOptions, D as COLOR_CATEGORIES, E as stringifyConnection, O as LAYOUT_CATEGORIES, S as stringifyDataModel, T as stringifyTransPoint, _ as parseLayoutDefinition, a as getColorXml, b as withDiagramNamespaces, c as parseStyleDefinition, d as styleDefDesc, f as colorsDefDesc, g as layoutDefDesc, h as stringifyColorDefinitionPart, i as DEFAULT_DRAWING_XML, k as STYLE_CATEGORIES, l as stringifyStyleDefinition, m as stringifyColorDefinition, n as SmartArtCollection, o as getLayoutXml, p as parseColorDefinition, r as definitionId, s as getStyleXml, t as createDataModel, u as stringifyStyleDefinitionPart, v as stringifyLayoutDefinition, w as stringifyPoint, x as parseDataModelOptions, y as stringifyLayoutDefinitionPart } from "./smartart-BxnkROOp.mjs";
|
|
5
|
+
import { a as roundTripFields, i as diffTagSets, n as findFieldSpec, o as parse, r as checkOrder, s as stringify, t as FIELD_SPECS } from "./descriptor-BX8xW8na.mjs";
|
|
6
|
+
import { $ as createStyleDefinitionHeaderList, $t as createGroupFill, A as groupLockingDesc, An as hslColorDesc, At as createBlip, B as blipFillDesc, Bn as SystemColor, Bt as calculateEffectExtent, C as shapePropertiesDesc, Cn as createTextLineColorList, Ct as createTableStyleList, D as presetGeometryDesc, Dn as createScRgbColor, Dt as createTransform2D, E as customGeometryDesc, En as createSolidFill, Et as createGroupTransform2D, F as stringifyLineProperties, Fn as scRgbColorDesc, Ft as createShape3D, G as createDiagramShape3D, Gn as createPresetColor, Gt as createOuterShadowEffect, H as stretchDesc, Hn as SchemeColor, Ht as createSoftEdgeEffect, I as fillDesc, In as schemeColorDesc, It as createBevel, J as createColorsDefinitionHeader, Jt as BlendMode, K as createDiagramTextProperties, Kn as createColorTransforms, Kt as createInnerShadowEffect, L as gradientFillDesc, Ln as solidFillDesc, Lt as createBottomBevel, M as shapeLockingDesc, Mn as parseColorChoiceElement, Mt as createCustomGeometry, N as effectListDesc, Nn as presetColorDesc, Nt as stringifyPresetGeometry, O as connectorLockingDesc, On as createRgbColor, Ot as stringifyStretch, P as outlineDesc, Pn as rgbColorDesc, Pt as stringifyAdjustmentValues, Q as createStyleDefinitionHeader, Qt as createCustomDash, R as patternFillDesc, Rn as stringifyColorChoice, Rt as createScene3D, S as groupShapePropertiesDesc, Sn as createTextFillColorList, St as createTableStyle, T as transform2DDesc, Tn as createColorElement, Tt as parseTableStyleList, U as tileDesc, Un as createSchemeColor, Ut as createReflectionEffect, V as sourceRectangleDesc, Vn as createSystemColor, Vt as createEffectList, W as createDiagramExtensionList, Wn as PresetColor, Wt as createPresetShadowEffect, X as createLayoutDefinitionHeader, Xt as createOutline, Y as createColorsDefinitionHeaderList, Yt as createFillOverlayEffect, Z as createLayoutDefinitionHeaderList, Zt as createLineEnd, _ as DEFAULT_OUTLINE_WIDTH, _n as createEffectColorList, _t as createContentPartLocking, a as textBodyDesc, an as createGradientFill, at as createMaxChildren, b as DEFAULT_SHADOW_DIRECTION, bn as createStyleLabel, bt as createPictureLocking, c as stringifyTextListStyle, cn as createSourceRectangle, ct as createPresentationLayoutVariables, d as stringifyTextRun, dn as cell3DDesc, dt as parseNonVisualDrawingProperties, en as createNoFill, et as createAdjust, f as textRunDesc, fn as scene3DDesc, ft as pickNonVisualDrawingProperties, g as parseBodyProperties, gn as createDiagramStyle, gt as createConnectorLocking, h as createBodyProperties, ht as stringifyEndpointConnection, i as presentationLayoutVariablesDesc, in as createPatternFill, it as createHierBranch, j as pictureLockingDesc, jn as parseColorChoice, jt as createExtensionList, k as graphicFrameLockingDesc, kn as createHslColor, kt as createBlipFill, l as textListStyleDesc, ln as createBlipEffects, lt as parseNonVisualContentPartProperties, m as bodyPropertiesDesc, mn as FontCollectionIndex, mt as parseEndpointConnection, n as diagramRelationshipIdsDesc, nn as extractBlipFillMedia, nt as createAnimateOneByOne, o as DEFAULT_TEXT_LIST_STYLE, on as createGradientStop, ot as createOrgChart, p as runPropertiesDesc, pn as shape3DDesc, pt as stringifyNonVisualDrawingProperties, q as createDiagramRelationshipIds, qt as createGlowEffect, r as diagramStyleDesc, rn as PresetPattern, rt as createAnimationLevel, s as parseTextListStyle, sn as createTileInfo, st as createPreferredChildren, t as diagramExtensionListDesc, tn as buildFill, tt as createAdjustList, u as paragraphDesc, un as bevelDesc, ut as stringifyNonVisualContentPartProperties, v as DEFAULT_SHADOW_ALPHA, vn as createFillColorList, vt as createGraphicFrameLocking, w as groupTransform2DDesc, wt as parseTableStyle, x as DEFAULT_SHADOW_DISTANCE, xn as createTextEffectColorList, xt as createShapeLocking, y as DEFAULT_SHADOW_BLUR_RADIUS, yn as createLineColorList, yt as createGroupLocking, z as blipDesc, zn as systemColorDesc, zt as createEffectDag } from "./drawing-FBzd2I0m.mjs";
|
|
7
|
+
import { n as chartSpaceDesc, r as ChartCollection, t as userShapesDesc } from "./chart-Kf_utasF.mjs";
|
|
8
|
+
import { n as parseColorMapping, r as stringifyColorMapping, t as DEFAULT_COLOR_MAPPING } from "./color-mapping-CFF0vRSe.mjs";
|
|
9
|
+
import { $ as parseVmlPath, A as stringifyVmlRect, At as stringifyVmlLock, B as stringifyVmlWrap, Bt as parseVmlTrueFalse, C as stringifyVmlBackground, Ct as stringifyVmlCallout, D as stringifyVmlLine, Dt as stringifyVmlEquationXml, E as stringifyVmlImage, Et as stringifyVmlDiagram, F as parseVmlAnchorLock, Ft as VML_CORE_ATTRS, G as parseVmlStroke, Gt as parseVmlShapeStyle, H as stringifyVmlTextPath, Ht as stringifyVmlAttributes, I as parseVmlBorder, It as VML_OFFICE_CORE_ATTRS, J as stringifyVmlShadow, Jt as styleToKeyMap, K as stringifyVmlStroke, Kt as parseVmlStyle, L as parseVmlWrap, Lt as VML_OFFICE_SHAPE_ATTRS, M as stringifyVmlShape, Mt as stringifyVmlOleObject, N as stringifyVmlShapetype, Nt as stringifyVmlSignatureLine, O as stringifyVmlOval, Ot as stringifyVmlExtrusion, P as VML_BORDER_TAGS, Pt as stringifyVmlSkew, Q as stringifyVmlTextData, R as stringifyVmlAnchorLock, Rt as VML_SHAPE_ATTRS, S as stringifyVmlArc, St as parseVmlSkew, T as stringifyVmlGroup, Tt as stringifyVmlComplex, U as parseVmlTextbox, Ut as stringifyVmlTrueFalse, V as parseVmlTextPath, Vt as parseVmlTrueFalseBlank, W as stringifyVmlTextbox, Wt as stringifyVmlTrueFalseBlank, X as parseVmlTextData, Y as parseVmlIsComment, Z as stringifyVmlIsComment, _ as parseVmlPolyline, _t as parseVmlInk, a as stringifyVmlColorMenu, at as parseVmlFormulas, b as parseVmlShape, bt as parseVmlOleObject, c as stringifyVmlShapeLayout, ct as stringifyVmlFill, d as parseVmlBackground, dt as parseVmlCallout, et as stringifyVmlPath, f as parseVmlCurve, ft as parseVmlClipPath, g as parseVmlOval, gt as parseVmlExtrusion, h as parseVmlLine, ht as parseVmlEquationXml, i as parseVmlShapeLayout, it as stringifyVmlHandles, j as stringifyVmlRoundRect, jt as stringifyVmlOfficeFill, k as stringifyVmlPolyline, kt as stringifyVmlInk, l as nextVmlShapeId, lt as parseVmlClientData, m as parseVmlImage, mt as parseVmlDiagram, n as parseVmlColorMru, nt as stringifyVmlImageData, o as stringifyVmlColorMru, ot as stringifyVmlFormulas, p as parseVmlGroup, pt as parseVmlComplex, q as parseVmlShadow, qt as stringifyVmlStyle, r as parseVmlShapeDefaults, rt as parseVmlHandles, s as stringifyVmlShapeDefaults, st as parseVmlFill, t as parseVmlColorMenu, tt as parseVmlImageData, u as parseVmlArc, ut as stringifyVmlClientData, v as parseVmlRect, vt as parseVmlLock, w as stringifyVmlCurve, wt as stringifyVmlClipPath, x as parseVmlShapetype, xt as parseVmlSignatureLine, y as parseVmlRoundRect, yt as parseVmlOfficeFill, z as stringifyVmlBorder, zt as parseVmlAttributes } from "./vector-TpjW6ZSc.mjs";
|
|
10
|
+
import { a as buildThemeXml, i as createThemeXml, n as themeOverrideDesc, o as DEFAULT_COLORS, r as themeDesc, t as themeManagerDesc } from "./theme-OAuRcA9_.mjs";
|
|
11
|
+
import { attr, escapeXml, parse as parse$1, stringify as stringify$1, textOf } from "@office-open/xml";
|
|
12
|
+
import { strFromU8 as strFromU8$1, strToU8, unzipSync as unzipSync$1, zipSync as zipSync$1 } from "fflate";
|
|
11
13
|
//#region src/opc/relationships.ts
|
|
12
14
|
const TargetModeType = { EXTERNAL: "External" };
|
|
13
15
|
/**
|
|
@@ -26,6 +28,23 @@ var Relationships = class {
|
|
|
26
28
|
targetMode
|
|
27
29
|
});
|
|
28
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Register a relationship with an auto-allocated sequential id and return
|
|
33
|
+
* the numeric id. Prefer this over the `relationshipCount + 1` +
|
|
34
|
+
* `addRelationship` pair at every call site that wants the next id; reach
|
|
35
|
+
* for `addRelationship` directly only when the id is externally determined
|
|
36
|
+
* (a contiguous batch pre-computed from an offset, a fixed rId1, …).
|
|
37
|
+
*/
|
|
38
|
+
add(type, target, targetMode) {
|
|
39
|
+
const id = this.entries.length + 1;
|
|
40
|
+
this.entries.push({
|
|
41
|
+
id: `rId${id}`,
|
|
42
|
+
type,
|
|
43
|
+
target,
|
|
44
|
+
targetMode
|
|
45
|
+
});
|
|
46
|
+
return id;
|
|
47
|
+
}
|
|
29
48
|
get relationshipCount() {
|
|
30
49
|
return this.entries.length;
|
|
31
50
|
}
|
|
@@ -57,9 +76,58 @@ function optionalRelsPart(rel, xmlDeclaration, path) {
|
|
|
57
76
|
path
|
|
58
77
|
} : void 0;
|
|
59
78
|
}
|
|
79
|
+
/** Build the package root relationships shared by docx, pptx, and xlsx. */
|
|
80
|
+
function buildRootRelationships(mainPartTarget, includeCustomProperties) {
|
|
81
|
+
const rels = new Relationships();
|
|
82
|
+
rels.addRelationship(1, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", mainPartTarget);
|
|
83
|
+
rels.addRelationship(2, "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties", "docProps/core.xml");
|
|
84
|
+
rels.addRelationship(3, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties", "docProps/app.xml");
|
|
85
|
+
if (includeCustomProperties) rels.addRelationship(4, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties", "docProps/custom.xml");
|
|
86
|
+
return rels;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Derive the .rels part path for a package part:
|
|
90
|
+
* "ppt/slides/slide1.xml" → "ppt/slides/_rels/slide1.xml.rels".
|
|
91
|
+
*/
|
|
92
|
+
function partPathToRelsPath(partPath) {
|
|
93
|
+
const idx = partPath.lastIndexOf("/");
|
|
94
|
+
return `${partPath.substring(0, idx)}/_rels/${partPath.substring(idx + 1)}.rels`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resolve a relationship target against the referencing part's directory,
|
|
98
|
+
* segment by segment: each ".." pops one directory level. A single
|
|
99
|
+
* String.replace("../", …) only strips the first occurrence and mis-resolves
|
|
100
|
+
* deeper targets like "../../media/image.png".
|
|
101
|
+
*/
|
|
102
|
+
function resolveRelationshipTarget(partPath, target) {
|
|
103
|
+
if (target.startsWith("/")) return target.slice(1);
|
|
104
|
+
const dir = partPath.substring(0, partPath.lastIndexOf("/"));
|
|
105
|
+
const dirParts = dir ? dir.split("/") : [];
|
|
106
|
+
for (const part of target.split("/")) if (part === "..") dirParts.pop();
|
|
107
|
+
else if (part !== "." && part !== "") dirParts.push(part);
|
|
108
|
+
return dirParts.join("/");
|
|
109
|
+
}
|
|
60
110
|
//#endregion
|
|
61
111
|
//#region src/opc/media.ts
|
|
62
112
|
/**
|
|
113
|
+
* Content-deduplicated media collection for OOXML packages.
|
|
114
|
+
*
|
|
115
|
+
* Stores image entries keyed by file name. `addMedia` deduplicates by raw byte
|
|
116
|
+
* content — byte-identical images referenced N times share one file, while
|
|
117
|
+
* per-image metadata (transformation, extent, fallback) stays with each
|
|
118
|
+
* reference in its own drawing XML and is passed via the `build` callback so it
|
|
119
|
+
* never participates in the dedup key.
|
|
120
|
+
*
|
|
121
|
+
* Lookup is O(1) amortized: a `WeakMap` memoizes the resolved entry per input
|
|
122
|
+
* `Uint8Array` (the hot path — a single document reuses the same buffer object
|
|
123
|
+
* for repeated references), and a content-hash index (native CRC-32 where
|
|
124
|
+
* available, FNV-1a fallback) resolves cross-object duplicates (e.g. a
|
|
125
|
+
* freshly-decoded buffer carrying bytes already seen) with a one-time byte
|
|
126
|
+
* verification to rule out hash collisions.
|
|
127
|
+
*
|
|
128
|
+
* @module
|
|
129
|
+
*/
|
|
130
|
+
/**
|
|
63
131
|
* FNV-1a hash is a pure function of the bytes, so memoize it across
|
|
64
132
|
* {@link Media} instances — repeated `generate()` calls that reuse the same
|
|
65
133
|
* buffer objects (the common case) skip recomputation entirely.
|
|
@@ -116,16 +184,27 @@ var Media = class {
|
|
|
116
184
|
while (this.map.has(name)) name = `image${++this.counter}.${type}`;
|
|
117
185
|
return name;
|
|
118
186
|
}
|
|
119
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* "length:hash" content key for `data`, memoized. Native CRC-32
|
|
189
|
+
* (`zlib.crc32`) on Node/Bun — ~59× faster than JS hashing on 100 MB inputs;
|
|
190
|
+
* FNV-1a fallback where no native zlib resolved. Both are 32-bit candidate
|
|
191
|
+
* keys; the byte verification in `addMedia` rules out collisions, so the
|
|
192
|
+
* weaker hash needs no collision handling of its own.
|
|
193
|
+
*/
|
|
120
194
|
contentKey(data) {
|
|
121
195
|
const cached = hashKeyCache.get(data);
|
|
122
196
|
if (cached !== void 0) return cached;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
197
|
+
const native = nativeCrc32(data);
|
|
198
|
+
let key;
|
|
199
|
+
if (native !== void 0) key = `${data.length}:${(native >>> 0).toString(16)}`;
|
|
200
|
+
else {
|
|
201
|
+
let hash = 2166136261;
|
|
202
|
+
for (const byte of data) {
|
|
203
|
+
hash ^= byte;
|
|
204
|
+
hash = Math.imul(hash, 16777619);
|
|
205
|
+
}
|
|
206
|
+
key = `${data.length}:${(hash >>> 0).toString(16)}`;
|
|
127
207
|
}
|
|
128
|
-
const key = `${data.length}:${(hash >>> 0).toString(16)}`;
|
|
129
208
|
hashKeyCache.set(data, key);
|
|
130
209
|
return key;
|
|
131
210
|
}
|
|
@@ -141,15 +220,117 @@ var Media = class {
|
|
|
141
220
|
}
|
|
142
221
|
};
|
|
143
222
|
//#endregion
|
|
144
|
-
//#region src/opc/
|
|
223
|
+
//#region src/opc/embeddings.ts
|
|
224
|
+
/**
|
|
225
|
+
* Collects OLE embeddings allocated during document generation. Each embedding
|
|
226
|
+
* is stored under a sequential `oleObjectN.bin` name, mirroring MS Office's
|
|
227
|
+
* numbering so output is deterministic and diffable.
|
|
228
|
+
*/
|
|
229
|
+
var EmbeddingCollection = class {
|
|
230
|
+
map = /* @__PURE__ */ new Map();
|
|
231
|
+
counter = 0;
|
|
232
|
+
/** Allocate the next sequential embedding file name (oleObject1.bin, …). */
|
|
233
|
+
nextEmbeddingName() {
|
|
234
|
+
return `oleObject${++this.counter}.bin`;
|
|
235
|
+
}
|
|
236
|
+
/** Register an embedding under a unique key. */
|
|
237
|
+
addEmbedding(key, data) {
|
|
238
|
+
this.map.set(key, data);
|
|
239
|
+
}
|
|
240
|
+
/** All registered embeddings in insertion order. */
|
|
241
|
+
get array() {
|
|
242
|
+
return [...this.map.values()];
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region src/opc/variant-types.ts
|
|
145
247
|
/**
|
|
146
|
-
*
|
|
248
|
+
* Variant value types (vt:*) — shared vocabulary for the docProps parts.
|
|
249
|
+
*
|
|
250
|
+
* custom.xml property values and app.xml vectors (HeadingPairs,
|
|
251
|
+
* TitlesOfParts) are expressed with the vt:* element set defined in
|
|
252
|
+
* shared-documentPropertiesVariantTypes.xsd. JS values map as:
|
|
253
|
+
* string → vt:lpwstr, boolean → vt:bool, Date → vt:filetime, integers →
|
|
254
|
+
* vt:i4, other numbers → vt:r8.
|
|
255
|
+
*
|
|
256
|
+
* The two domains spell strings differently and Excel enforces the split:
|
|
257
|
+
* app.xml vectors (CT_VectorLpstr) must carry vt:lpstr — Excel refuses to
|
|
258
|
+
* open a file whose HeadingPairs/TitlesOfParts use vt:lpwstr — while
|
|
259
|
+
* custom.xml property values use vt:lpwstr, the spelling Office itself
|
|
260
|
+
* writes there.
|
|
261
|
+
*
|
|
262
|
+
* @module
|
|
147
263
|
*/
|
|
148
|
-
|
|
264
|
+
/** Numeric vt:* tags parsed back to a JS number. */
|
|
265
|
+
const NUMERIC_VT_TAGS = new Set([
|
|
266
|
+
"vt:i1",
|
|
267
|
+
"vt:i2",
|
|
268
|
+
"vt:i4",
|
|
269
|
+
"vt:i8",
|
|
270
|
+
"vt:ui1",
|
|
271
|
+
"vt:ui2",
|
|
272
|
+
"vt:ui4",
|
|
273
|
+
"vt:ui8",
|
|
274
|
+
"vt:int",
|
|
275
|
+
"vt:uint",
|
|
276
|
+
"vt:r4",
|
|
277
|
+
"vt:r8",
|
|
278
|
+
"vt:decimal"
|
|
279
|
+
]);
|
|
149
280
|
/**
|
|
150
|
-
*
|
|
281
|
+
* Serialize a JS value as its vt:* element (stringify side, custom.xml domain).
|
|
282
|
+
*
|
|
283
|
+
* Strings stay lpwstr (the spelling Office writes for custom property
|
|
284
|
+
* values), integers become i4, other numbers r8, booleans bool, and Dates
|
|
285
|
+
* filetime (xsd:dateTime form).
|
|
151
286
|
*/
|
|
152
|
-
|
|
287
|
+
function stringifyVariantValue(value) {
|
|
288
|
+
if (typeof value === "string") return `<vt:lpwstr>${escapeXml(value)}</vt:lpwstr>`;
|
|
289
|
+
if (typeof value === "boolean") return `<vt:bool>${value ? "true" : "false"}</vt:bool>`;
|
|
290
|
+
if (value instanceof Date) return `<vt:filetime>${value.toISOString()}</vt:filetime>`;
|
|
291
|
+
return Number.isInteger(value) ? `<vt:i4>${value}</vt:i4>` : `<vt:r8>${value}</vt:r8>`;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Parse a vt:* scalar element back to a JS value (parse side).
|
|
295
|
+
*
|
|
296
|
+
* Lenient about unknown tags: they round-trip as their text content, the
|
|
297
|
+
* same fallback the previous string-only custom-properties parse used.
|
|
298
|
+
*/
|
|
299
|
+
function parseVariantValue(el) {
|
|
300
|
+
const text = textOf(el);
|
|
301
|
+
switch (el.name) {
|
|
302
|
+
case "vt:lpwstr":
|
|
303
|
+
case "vt:lpstr":
|
|
304
|
+
case "vt:bstr": return text;
|
|
305
|
+
case "vt:bool": return parseOnOff(text) ?? false;
|
|
306
|
+
case "vt:date":
|
|
307
|
+
case "vt:filetime": return text ? new Date(text) : void 0;
|
|
308
|
+
default:
|
|
309
|
+
if (NUMERIC_VT_TAGS.has(el.name ?? "")) return text === "" ? void 0 : Number(text);
|
|
310
|
+
return text || void 0;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Serialize a vt:vector of lpstr entries (the TitlesOfParts shape).
|
|
315
|
+
* lpstr is required: Excel refuses to open a file whose app.xml vectors
|
|
316
|
+
* carry lpwstr (CT_VectorLpstr).
|
|
317
|
+
*/
|
|
318
|
+
function stringifyStringVector(values) {
|
|
319
|
+
const items = values.map((v) => `<vt:lpstr>${escapeXml(v)}</vt:lpstr>`).join("");
|
|
320
|
+
return `<vt:vector size="${values.length}" baseType="lpstr">${items}</vt:vector>`;
|
|
321
|
+
}
|
|
322
|
+
/** Parse a vt:vector with any scalar baseType into its JS values. */
|
|
323
|
+
function parseVector(el) {
|
|
324
|
+
if (!el || el.name !== "vt:vector") return [];
|
|
325
|
+
const out = [];
|
|
326
|
+
for (const child of el.elements ?? []) {
|
|
327
|
+
const scalar = child.name === "vt:variant" ? child.elements?.find((e) => e.name?.startsWith("vt:")) : child;
|
|
328
|
+
if (!scalar) continue;
|
|
329
|
+
const value = parseVariantValue(scalar);
|
|
330
|
+
if (value !== void 0) out.push(value);
|
|
331
|
+
}
|
|
332
|
+
return out;
|
|
333
|
+
}
|
|
153
334
|
//#endregion
|
|
154
335
|
//#region src/opc/app-properties.ts
|
|
155
336
|
/**
|
|
@@ -181,6 +362,11 @@ const appPropertiesDesc = {
|
|
|
181
362
|
if (opts.hiddenSlides !== void 0) p.push(`<HiddenSlides>${opts.hiddenSlides}</HiddenSlides>`);
|
|
182
363
|
if (opts.mmClips !== void 0) p.push(`<MMClips>${opts.mmClips}</MMClips>`);
|
|
183
364
|
if (opts.scaleCrop !== void 0) p.push(`<ScaleCrop>${xsdBoolean(opts.scaleCrop)}</ScaleCrop>`);
|
|
365
|
+
if (opts.headingPairs !== void 0 && opts.headingPairs.length > 0) {
|
|
366
|
+
const items = opts.headingPairs.map((pair) => `<vt:variant><vt:lpstr>${escapeXml(pair.name)}</vt:lpstr></vt:variant><vt:variant><vt:i4>${pair.count}</vt:i4></vt:variant>`).join("");
|
|
367
|
+
p.push(`<HeadingPairs><vt:vector size="${opts.headingPairs.length * 2}" baseType="variant">${items}</vt:vector></HeadingPairs>`);
|
|
368
|
+
}
|
|
369
|
+
if (opts.titlesOfParts !== void 0 && opts.titlesOfParts.length > 0) p.push(`<TitlesOfParts>${stringifyStringVector(opts.titlesOfParts)}</TitlesOfParts>`);
|
|
184
370
|
if (opts.linksUpToDate !== void 0) p.push(`<LinksUpToDate>${xsdBoolean(opts.linksUpToDate)}</LinksUpToDate>`);
|
|
185
371
|
if (opts.charactersWithSpaces !== void 0) p.push(`<CharactersWithSpaces>${opts.charactersWithSpaces}</CharactersWithSpaces>`);
|
|
186
372
|
if (opts.sharedDoc !== void 0) p.push(`<SharedDoc>${xsdBoolean(opts.sharedDoc)}</SharedDoc>`);
|
|
@@ -237,23 +423,44 @@ const appPropertiesDesc = {
|
|
|
237
423
|
case "MMClips":
|
|
238
424
|
if (typeof text === "string") result.mmClips = Number(text);
|
|
239
425
|
break;
|
|
426
|
+
case "HeadingPairs": {
|
|
427
|
+
const vector = child.elements?.find((e) => e.name === "vt:vector");
|
|
428
|
+
const flat = parseVector(vector);
|
|
429
|
+
const pairs = [];
|
|
430
|
+
for (let i = 0; i + 1 < flat.length; i += 2) {
|
|
431
|
+
const name = flat[i];
|
|
432
|
+
const count = flat[i + 1];
|
|
433
|
+
if (typeof name === "string" && typeof count === "number") pairs.push({
|
|
434
|
+
name,
|
|
435
|
+
count
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
if (pairs.length > 0) result.headingPairs = pairs;
|
|
439
|
+
break;
|
|
440
|
+
}
|
|
441
|
+
case "TitlesOfParts": {
|
|
442
|
+
const vector = child.elements?.find((e) => e.name === "vt:vector");
|
|
443
|
+
const titles = parseVector(vector).filter((v) => typeof v === "string");
|
|
444
|
+
if (titles.length > 0) result.titlesOfParts = titles;
|
|
445
|
+
break;
|
|
446
|
+
}
|
|
240
447
|
case "ScaleCrop":
|
|
241
|
-
if (typeof text === "string") result.scaleCrop = text
|
|
448
|
+
if (typeof text === "string") result.scaleCrop = parseOnOff(text) ?? false;
|
|
242
449
|
break;
|
|
243
450
|
case "LinksUpToDate":
|
|
244
|
-
if (typeof text === "string") result.linksUpToDate = text
|
|
451
|
+
if (typeof text === "string") result.linksUpToDate = parseOnOff(text) ?? false;
|
|
245
452
|
break;
|
|
246
453
|
case "CharactersWithSpaces":
|
|
247
454
|
if (typeof text === "string") result.charactersWithSpaces = Number(text);
|
|
248
455
|
break;
|
|
249
456
|
case "SharedDoc":
|
|
250
|
-
if (typeof text === "string") result.sharedDoc = text
|
|
457
|
+
if (typeof text === "string") result.sharedDoc = parseOnOff(text) ?? false;
|
|
251
458
|
break;
|
|
252
459
|
case "HyperlinkBase":
|
|
253
460
|
if (typeof text === "string") result.hyperlinkBase = text;
|
|
254
461
|
break;
|
|
255
462
|
case "HyperlinksChanged":
|
|
256
|
-
if (typeof text === "string") result.hyperlinksChanged = text
|
|
463
|
+
if (typeof text === "string") result.hyperlinksChanged = parseOnOff(text) ?? false;
|
|
257
464
|
break;
|
|
258
465
|
case "Application":
|
|
259
466
|
if (typeof text === "string") result.application = text;
|
|
@@ -285,7 +492,7 @@ const customPropertiesDesc = {
|
|
|
285
492
|
const p = ["<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\" xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\">"];
|
|
286
493
|
let pid = 2;
|
|
287
494
|
for (const prop of opts.properties) {
|
|
288
|
-
p.push(`<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="${pid}" name="${escapeXml(prop.name)}"
|
|
495
|
+
p.push(`<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="${pid}" name="${escapeXml(prop.name)}">` + stringifyVariantValue(prop.value) + `</property>`);
|
|
289
496
|
pid++;
|
|
290
497
|
}
|
|
291
498
|
p.push("</Properties>");
|
|
@@ -298,11 +505,13 @@ const customPropertiesDesc = {
|
|
|
298
505
|
const name = attr(child, "name");
|
|
299
506
|
if (!name) continue;
|
|
300
507
|
const valueEl = child.elements?.find((e) => e.name?.startsWith("vt:"));
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
508
|
+
if (valueEl) {
|
|
509
|
+
const value = parseVariantValue(valueEl);
|
|
510
|
+
if (value !== void 0) properties.push({
|
|
511
|
+
name,
|
|
512
|
+
value
|
|
513
|
+
});
|
|
514
|
+
}
|
|
306
515
|
}
|
|
307
516
|
return { properties };
|
|
308
517
|
}
|
|
@@ -332,11 +541,20 @@ var ParsedArchive = class {
|
|
|
332
541
|
}
|
|
333
542
|
this.zip = new Map(Object.entries(unzipped));
|
|
334
543
|
}
|
|
335
|
-
/**
|
|
336
|
-
|
|
544
|
+
/**
|
|
545
|
+
* Read an XML part as an Element tree. `parseOptions` extends the default
|
|
546
|
+
* XML parse options for this part (e.g. `deferElements` to capture a hot
|
|
547
|
+
* container's inner XML verbatim). Callers must use consistent options per
|
|
548
|
+
* path — the wrapper cache is keyed by path only.
|
|
549
|
+
*/
|
|
550
|
+
get(path, parseOptions) {
|
|
551
|
+
const opts = parseOptions ? {
|
|
552
|
+
...XML_PARSE_OPTIONS,
|
|
553
|
+
...parseOptions
|
|
554
|
+
} : XML_PARSE_OPTIONS;
|
|
337
555
|
const modData = this.modified.get(path);
|
|
338
556
|
if (modData) {
|
|
339
|
-
const wrapper =
|
|
557
|
+
const wrapper = parse$1(strFromU8$1(modData), opts);
|
|
340
558
|
this.wrapperCache.set(path, wrapper);
|
|
341
559
|
return wrapper.elements?.find((e) => e.type === "element");
|
|
342
560
|
}
|
|
@@ -344,14 +562,14 @@ var ParsedArchive = class {
|
|
|
344
562
|
if (data === void 0) return void 0;
|
|
345
563
|
const cached = this.wrapperCache.get(path);
|
|
346
564
|
if (cached) return cached.elements?.find((e) => e.type === "element");
|
|
347
|
-
const wrapper =
|
|
565
|
+
const wrapper = parse$1(strFromU8$1(data), opts);
|
|
348
566
|
this.wrapperCache.set(path, wrapper);
|
|
349
567
|
return wrapper.elements?.find((e) => e.type === "element");
|
|
350
568
|
}
|
|
351
569
|
/** Write an XML part (Element → XML string). */
|
|
352
570
|
set(path, element) {
|
|
353
571
|
const wrapper = this.wrapperCache.get(path);
|
|
354
|
-
const xml =
|
|
572
|
+
const xml = stringify$1(wrapper ? {
|
|
355
573
|
...wrapper,
|
|
356
574
|
elements: [{
|
|
357
575
|
...element,
|
|
@@ -391,34 +609,11 @@ var ParsedArchive = class {
|
|
|
391
609
|
/** Serialize back to a ZIP buffer, merging original zip + modifications. */
|
|
392
610
|
save() {
|
|
393
611
|
const files = {};
|
|
394
|
-
for (const [path, data] of this.zip) if (!this.modified.has(path)) files[path] =
|
|
395
|
-
for (const [path, data] of this.modified) files[path] =
|
|
396
|
-
return zipSync(files);
|
|
612
|
+
for (const [path, data] of this.zip) if (!this.modified.has(path)) files[path] = [data, { level: levelForMediaName(path, 6) }];
|
|
613
|
+
for (const [path, data] of this.modified) files[path] = [data, { level: levelForMediaName(path, 6) }];
|
|
614
|
+
return zipSync$1(files);
|
|
397
615
|
}
|
|
398
616
|
};
|
|
399
|
-
/** Media file extensions that should use STORE (no compression). */
|
|
400
|
-
const MEDIA_EXTENSIONS = new Set([
|
|
401
|
-
".png",
|
|
402
|
-
".jpg",
|
|
403
|
-
".jpeg",
|
|
404
|
-
".gif",
|
|
405
|
-
".wmf",
|
|
406
|
-
".emf",
|
|
407
|
-
".tif",
|
|
408
|
-
".tiff",
|
|
409
|
-
".avi",
|
|
410
|
-
".mp4",
|
|
411
|
-
".mp3",
|
|
412
|
-
".wav"
|
|
413
|
-
]);
|
|
414
|
-
/** Check if a file path has a media extension that should use STORE (no compression). */
|
|
415
|
-
function isMediaPath(path) {
|
|
416
|
-
const dot = path.lastIndexOf(".");
|
|
417
|
-
if (dot === -1) return false;
|
|
418
|
-
return MEDIA_EXTENSIONS.has(path.slice(dot).toLowerCase());
|
|
419
|
-
}
|
|
420
|
-
/** STORE level for already-compressed media formats. */
|
|
421
|
-
const MEDIA_STORED_LEVEL = 0;
|
|
422
617
|
/** Parse an OOXML archive (.docx, .pptx, .xlsx) into a ParsedArchive. */
|
|
423
618
|
function parseArchive(data) {
|
|
424
619
|
return new ParsedArchive(data);
|
|
@@ -446,7 +641,7 @@ function parseArchive(data) {
|
|
|
446
641
|
*/
|
|
447
642
|
function rootElement(xml) {
|
|
448
643
|
try {
|
|
449
|
-
return
|
|
644
|
+
return parse$1(xml).elements?.find((e) => e.type === "element");
|
|
450
645
|
} catch {
|
|
451
646
|
return;
|
|
452
647
|
}
|
|
@@ -526,7 +721,7 @@ function pathMatcher(template) {
|
|
|
526
721
|
const pattern = template.replace(/\$\{i\}/g, "\0").replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(//g, "(\\d+)");
|
|
527
722
|
return new RegExp(`^${pattern}$`);
|
|
528
723
|
}
|
|
529
|
-
function extensionOf(path) {
|
|
724
|
+
function extensionOf$1(path) {
|
|
530
725
|
const dot = path.lastIndexOf(".");
|
|
531
726
|
return dot === -1 ? "" : path.slice(dot + 1).toLowerCase();
|
|
532
727
|
}
|
|
@@ -579,7 +774,7 @@ function validateOpcConsistency(entries, registry) {
|
|
|
579
774
|
for (const path of entries.keys()) {
|
|
580
775
|
if (path === "[Content_Types].xml" || path.endsWith(".rels")) continue;
|
|
581
776
|
if (contentTypes.overrides.has(path)) continue;
|
|
582
|
-
const ext = extensionOf(path);
|
|
777
|
+
const ext = extensionOf$1(path);
|
|
583
778
|
if (ext && contentTypes.defaults.has(ext)) continue;
|
|
584
779
|
issues.push({
|
|
585
780
|
code: "O5",
|
|
@@ -879,6 +1074,14 @@ const PPTX_PARTS = {
|
|
|
879
1074
|
flag: "freshCompile"
|
|
880
1075
|
}
|
|
881
1076
|
},
|
|
1077
|
+
{
|
|
1078
|
+
path: "docProps/custom.xml",
|
|
1079
|
+
contentType: "application/vnd.openxmlformats-officedocument.custom-properties+xml",
|
|
1080
|
+
presence: {
|
|
1081
|
+
kind: "conditional",
|
|
1082
|
+
flag: "has custom properties"
|
|
1083
|
+
}
|
|
1084
|
+
},
|
|
882
1085
|
{
|
|
883
1086
|
path: "ppt/theme/theme${i}.xml",
|
|
884
1087
|
contentType: "application/vnd.openxmlformats-officedocument.theme+xml",
|
|
@@ -887,6 +1090,22 @@ const PPTX_PARTS = {
|
|
|
887
1090
|
countFrom: "masters + notes/handout masters"
|
|
888
1091
|
}
|
|
889
1092
|
},
|
|
1093
|
+
{
|
|
1094
|
+
path: "ppt/theme/themeOverride${i}.xml",
|
|
1095
|
+
contentType: "application/vnd.openxmlformats-officedocument.themeOverride+xml",
|
|
1096
|
+
presence: {
|
|
1097
|
+
kind: "conditional",
|
|
1098
|
+
flag: "layout-level theme overrides"
|
|
1099
|
+
}
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
path: "ppt/theme/themeManager1.xml",
|
|
1103
|
+
contentType: "application/vnd.openxmlformats-officedocument.themeManager+xml",
|
|
1104
|
+
presence: {
|
|
1105
|
+
kind: "conditional",
|
|
1106
|
+
flag: "legacy themeManager part"
|
|
1107
|
+
}
|
|
1108
|
+
},
|
|
890
1109
|
{
|
|
891
1110
|
path: "ppt/presProps.xml",
|
|
892
1111
|
contentType: "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml",
|
|
@@ -1079,6 +1298,14 @@ const XLSX_PARTS = {
|
|
|
1079
1298
|
flag: "freshCompile"
|
|
1080
1299
|
}
|
|
1081
1300
|
},
|
|
1301
|
+
{
|
|
1302
|
+
path: "docProps/custom.xml",
|
|
1303
|
+
contentType: "application/vnd.openxmlformats-officedocument.custom-properties+xml",
|
|
1304
|
+
presence: {
|
|
1305
|
+
kind: "conditional",
|
|
1306
|
+
flag: "has custom properties"
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1082
1309
|
{
|
|
1083
1310
|
path: "xl/styles.xml",
|
|
1084
1311
|
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
|
|
@@ -1119,6 +1346,14 @@ const XLSX_PARTS = {
|
|
|
1119
1346
|
countFrom: "chartsheets.length"
|
|
1120
1347
|
}
|
|
1121
1348
|
},
|
|
1349
|
+
{
|
|
1350
|
+
path: "xl/dialogSheets/sheet${i}.xml",
|
|
1351
|
+
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",
|
|
1352
|
+
presence: {
|
|
1353
|
+
kind: "repeated",
|
|
1354
|
+
countFrom: "dialogsheets.length"
|
|
1355
|
+
}
|
|
1356
|
+
},
|
|
1122
1357
|
{
|
|
1123
1358
|
path: "xl/drawings/drawing${i}.xml",
|
|
1124
1359
|
contentType: "application/vnd.openxmlformats-officedocument.drawing+xml",
|
|
@@ -1190,6 +1425,46 @@ const XLSX_PARTS = {
|
|
|
1190
1425
|
countFrom: "externalLinks.length"
|
|
1191
1426
|
}
|
|
1192
1427
|
},
|
|
1428
|
+
{
|
|
1429
|
+
path: "xl/connections.xml",
|
|
1430
|
+
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml",
|
|
1431
|
+
presence: {
|
|
1432
|
+
kind: "conditional",
|
|
1433
|
+
flag: "connections"
|
|
1434
|
+
}
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
path: "xl/queryTables/queryTable${i}.xml",
|
|
1438
|
+
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml",
|
|
1439
|
+
presence: {
|
|
1440
|
+
kind: "repeated",
|
|
1441
|
+
countFrom: "queryTables"
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
path: "xl/metadata.xml",
|
|
1446
|
+
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.metadata+xml",
|
|
1447
|
+
presence: {
|
|
1448
|
+
kind: "conditional",
|
|
1449
|
+
flag: "metadata"
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
{
|
|
1453
|
+
path: "xl/xmlMaps.xml",
|
|
1454
|
+
contentType: "application/xml",
|
|
1455
|
+
presence: {
|
|
1456
|
+
kind: "conditional",
|
|
1457
|
+
flag: "xmlMaps"
|
|
1458
|
+
}
|
|
1459
|
+
},
|
|
1460
|
+
{
|
|
1461
|
+
path: "xl/tables/tableSingleCells${i}.xml",
|
|
1462
|
+
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml",
|
|
1463
|
+
presence: {
|
|
1464
|
+
kind: "repeated",
|
|
1465
|
+
countFrom: "singleXmlCells"
|
|
1466
|
+
}
|
|
1467
|
+
},
|
|
1193
1468
|
{
|
|
1194
1469
|
path: "xl/calcChain.xml",
|
|
1195
1470
|
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml",
|
|
@@ -1232,7 +1507,7 @@ const PART_REGISTRIES = {
|
|
|
1232
1507
|
//#endregion
|
|
1233
1508
|
//#region src/opc/content-type-overrides.ts
|
|
1234
1509
|
/** Ensure a part path carries the leading slash an Override PartName requires. */
|
|
1235
|
-
function withLeadingSlash(partPath) {
|
|
1510
|
+
function withLeadingSlash$1(partPath) {
|
|
1236
1511
|
return partPath.startsWith("/") ? partPath : `/${partPath}`;
|
|
1237
1512
|
}
|
|
1238
1513
|
/**
|
|
@@ -1248,18 +1523,18 @@ function buildContentTypeOverrides(registry, facts) {
|
|
|
1248
1523
|
const presence = part.presence;
|
|
1249
1524
|
if (presence.kind === "always") {
|
|
1250
1525
|
if (!part.path.includes("${i}")) overrides.push({
|
|
1251
|
-
partName: withLeadingSlash(part.path),
|
|
1526
|
+
partName: withLeadingSlash$1(part.path),
|
|
1252
1527
|
contentType: part.contentType
|
|
1253
1528
|
});
|
|
1254
1529
|
} else if (presence.kind === "conditional") {
|
|
1255
1530
|
if (facts.get(presence.flag)) overrides.push({
|
|
1256
|
-
partName: withLeadingSlash(part.path),
|
|
1531
|
+
partName: withLeadingSlash$1(part.path),
|
|
1257
1532
|
contentType: part.contentType
|
|
1258
1533
|
});
|
|
1259
1534
|
} else {
|
|
1260
1535
|
const count = Number(facts.get(presence.countFrom) ?? 0);
|
|
1261
1536
|
for (let i = 1; i <= count; i++) overrides.push({
|
|
1262
|
-
partName: withLeadingSlash(part.path.replace("${i}", String(i))),
|
|
1537
|
+
partName: withLeadingSlash$1(part.path.replace("${i}", String(i))),
|
|
1263
1538
|
contentType: part.contentType
|
|
1264
1539
|
});
|
|
1265
1540
|
}
|
|
@@ -1267,6 +1542,184 @@ function buildContentTypeOverrides(registry, facts) {
|
|
|
1267
1542
|
return overrides;
|
|
1268
1543
|
}
|
|
1269
1544
|
//#endregion
|
|
1270
|
-
|
|
1545
|
+
//#region src/opc/content-types-input.ts
|
|
1546
|
+
const contentTypesDesc = {
|
|
1547
|
+
kind: "custom",
|
|
1548
|
+
stringify(opts, _ctx) {
|
|
1549
|
+
const p = ["<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">"];
|
|
1550
|
+
const seenDefault = /* @__PURE__ */ new Set();
|
|
1551
|
+
for (const d of opts.defaults) {
|
|
1552
|
+
const key = d.extension.toLowerCase();
|
|
1553
|
+
if (seenDefault.has(key)) continue;
|
|
1554
|
+
seenDefault.add(key);
|
|
1555
|
+
p.push(`<Default Extension="${d.extension}" ContentType="${d.contentType}"/>`);
|
|
1556
|
+
}
|
|
1557
|
+
const seenOverride = /* @__PURE__ */ new Set();
|
|
1558
|
+
for (const o of opts.overrides) {
|
|
1559
|
+
const key = o.partName.toLowerCase();
|
|
1560
|
+
if (seenOverride.has(key)) continue;
|
|
1561
|
+
seenOverride.add(key);
|
|
1562
|
+
p.push(`<Override PartName="${o.partName}" ContentType="${o.contentType}"/>`);
|
|
1563
|
+
}
|
|
1564
|
+
p.push("</Types>");
|
|
1565
|
+
return p.join("");
|
|
1566
|
+
},
|
|
1567
|
+
parse(el, _ctx) {
|
|
1568
|
+
const defaults = [];
|
|
1569
|
+
const overrides = [];
|
|
1570
|
+
for (const child of el.elements ?? []) if (child.name === "Default") {
|
|
1571
|
+
const ext = child.attributes?.["Extension"];
|
|
1572
|
+
const ct = child.attributes?.["ContentType"];
|
|
1573
|
+
if (ext && ct) defaults.push({
|
|
1574
|
+
extension: String(ext),
|
|
1575
|
+
contentType: String(ct)
|
|
1576
|
+
});
|
|
1577
|
+
} else if (child.name === "Override") {
|
|
1578
|
+
const pn = child.attributes?.["PartName"];
|
|
1579
|
+
const ct = child.attributes?.["ContentType"];
|
|
1580
|
+
if (pn && ct) overrides.push({
|
|
1581
|
+
partName: String(pn),
|
|
1582
|
+
contentType: String(ct)
|
|
1583
|
+
});
|
|
1584
|
+
}
|
|
1585
|
+
return {
|
|
1586
|
+
defaults,
|
|
1587
|
+
overrides
|
|
1588
|
+
};
|
|
1589
|
+
}
|
|
1590
|
+
};
|
|
1591
|
+
/** Convert a registry part path (with `${i}` placeholders) to an anchored RegExp. */
|
|
1592
|
+
function patternToRegExp(path) {
|
|
1593
|
+
const escaped = path.split("${i}").map((s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
1594
|
+
return new RegExp("^" + escaped.join("\\d+") + "$");
|
|
1595
|
+
}
|
|
1596
|
+
/**
|
|
1597
|
+
* Build a path→contentType resolver from a part registry. Only the path pattern
|
|
1598
|
+
* and contentType are consulted; the presence/flag/countFrom fields are
|
|
1599
|
+
* irrelevant here because emission is driven by the files actually written, not
|
|
1600
|
+
* by a separate facts map. Any path the resolver does not recognize falls
|
|
1601
|
+
* through to extension-based Default handling (media, embeddings, .rels).
|
|
1602
|
+
*/
|
|
1603
|
+
function resolverFromRegistry(registry) {
|
|
1604
|
+
const patterns = [];
|
|
1605
|
+
for (const part of registry.parts) {
|
|
1606
|
+
if (!part.contentType) continue;
|
|
1607
|
+
patterns.push({
|
|
1608
|
+
re: patternToRegExp(part.path),
|
|
1609
|
+
contentType: part.contentType
|
|
1610
|
+
});
|
|
1611
|
+
}
|
|
1612
|
+
return (partPath) => patterns.find((p) => p.re.test(partPath))?.contentType;
|
|
1613
|
+
}
|
|
1614
|
+
const BASE_DEFAULTS = [{
|
|
1615
|
+
extension: "rels",
|
|
1616
|
+
contentType: "application/vnd.openxmlformats-package.relationships+xml"
|
|
1617
|
+
}, {
|
|
1618
|
+
extension: "xml",
|
|
1619
|
+
contentType: "application/xml"
|
|
1620
|
+
}];
|
|
1621
|
+
function extensionOf(path) {
|
|
1622
|
+
const slash = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
|
|
1623
|
+
const dot = path.slice(slash + 1).lastIndexOf(".");
|
|
1624
|
+
return dot > 0 ? path.slice(slash + 1 + dot + 1) : void 0;
|
|
1625
|
+
}
|
|
1626
|
+
function withLeadingSlash(path) {
|
|
1627
|
+
return path.startsWith("/") ? path : `/${path}`;
|
|
1628
|
+
}
|
|
1629
|
+
/**
|
|
1630
|
+
* Derive [Content_Types].xml entries from the actual part paths in the package.
|
|
1631
|
+
* Each path that the resolver maps to a content type becomes an Override; every
|
|
1632
|
+
* other file contributes a Default keyed by its extension (declared once).
|
|
1633
|
+
*/
|
|
1634
|
+
function deriveContentTypes(filePaths, options) {
|
|
1635
|
+
const defaults = [...options.baseDefaults ?? BASE_DEFAULTS];
|
|
1636
|
+
const seenExt = new Set(defaults.map((d) => d.extension.toLowerCase()));
|
|
1637
|
+
const overrideMap = /* @__PURE__ */ new Map();
|
|
1638
|
+
for (const path of filePaths) {
|
|
1639
|
+
if (path === "[Content_Types].xml") continue;
|
|
1640
|
+
const partType = options.resolve(path);
|
|
1641
|
+
if (partType) {
|
|
1642
|
+
const partName = withLeadingSlash(path);
|
|
1643
|
+
overrideMap.set(partName.toLowerCase(), {
|
|
1644
|
+
partName,
|
|
1645
|
+
contentType: partType
|
|
1646
|
+
});
|
|
1647
|
+
continue;
|
|
1648
|
+
}
|
|
1649
|
+
const ext = extensionOf(path);
|
|
1650
|
+
if (!ext) continue;
|
|
1651
|
+
const key = ext.toLowerCase();
|
|
1652
|
+
if (seenExt.has(key)) continue;
|
|
1653
|
+
const mime = options.mediaContentTypes[key];
|
|
1654
|
+
if (mime) {
|
|
1655
|
+
defaults.push({
|
|
1656
|
+
extension: ext,
|
|
1657
|
+
contentType: mime
|
|
1658
|
+
});
|
|
1659
|
+
seenExt.add(key);
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
for (const extra of options.overrides ?? []) {
|
|
1663
|
+
const partName = withLeadingSlash(extra.path);
|
|
1664
|
+
overrideMap.set(partName.toLowerCase(), {
|
|
1665
|
+
partName,
|
|
1666
|
+
contentType: extra.contentType
|
|
1667
|
+
});
|
|
1668
|
+
}
|
|
1669
|
+
return {
|
|
1670
|
+
defaults,
|
|
1671
|
+
overrides: [...overrideMap.values()]
|
|
1672
|
+
};
|
|
1673
|
+
}
|
|
1674
|
+
/**
|
|
1675
|
+
* Extension → MIME for image media, shared by every format package.
|
|
1676
|
+
*
|
|
1677
|
+
* The three format compilers each declare a package-scoped media table made
|
|
1678
|
+
* of this image block plus format-specific extras (docx: odttf/bin fonts and
|
|
1679
|
+
* OLE; pptx: video/audio; xlsx: vml). Keeping the image half in one place
|
|
1680
|
+
* means a new image format lands everywhere at once.
|
|
1681
|
+
*/
|
|
1682
|
+
const IMAGE_MEDIA_CONTENT_TYPES = {
|
|
1683
|
+
png: "image/png",
|
|
1684
|
+
jpeg: "image/jpeg",
|
|
1685
|
+
jpg: "image/jpeg",
|
|
1686
|
+
bmp: "image/bmp",
|
|
1687
|
+
gif: "image/gif",
|
|
1688
|
+
tif: "image/tiff",
|
|
1689
|
+
tiff: "image/tiff",
|
|
1690
|
+
emf: "image/x-emf",
|
|
1691
|
+
wmf: "image/x-wmf",
|
|
1692
|
+
ico: "image/x-icon",
|
|
1693
|
+
svg: "image/svg+xml"
|
|
1694
|
+
};
|
|
1695
|
+
//#endregion
|
|
1696
|
+
//#region src/connector/types.ts
|
|
1697
|
+
/**
|
|
1698
|
+
* Pick the connector base fields (cNvPr + locking + endpoint connections)
|
|
1699
|
+
* actually set on `opts`, dropping undefined. Used when bridging a package's
|
|
1700
|
+
* connector options onto the shared base during cross-format conversion.
|
|
1701
|
+
*/
|
|
1702
|
+
function pickConnectorBase(opts) {
|
|
1703
|
+
if (!opts) return {};
|
|
1704
|
+
return {
|
|
1705
|
+
...pickNonVisualDrawingProperties(opts),
|
|
1706
|
+
...opts.locking !== void 0 ? { locking: opts.locking } : {},
|
|
1707
|
+
...opts.startConnection !== void 0 ? { startConnection: opts.startConnection } : {},
|
|
1708
|
+
...opts.endConnection !== void 0 ? { endConnection: opts.endConnection } : {}
|
|
1709
|
+
};
|
|
1710
|
+
}
|
|
1711
|
+
//#endregion
|
|
1712
|
+
//#region src/group/types.ts
|
|
1713
|
+
/**
|
|
1714
|
+
* Pick the group base fields (cNvPr) actually set on `opts`, dropping undefined.
|
|
1715
|
+
* Used when bridging a package's group options onto the shared base during
|
|
1716
|
+
* cross-format conversion.
|
|
1717
|
+
*/
|
|
1718
|
+
function pickGroupBase(opts) {
|
|
1719
|
+
if (!opts) return {};
|
|
1720
|
+
return { ...pickNonVisualDrawingProperties(opts) };
|
|
1721
|
+
}
|
|
1722
|
+
//#endregion
|
|
1723
|
+
export { BlendMode, COLOR_CATEGORIES, ChartCollection, DEFAULT_COLORS, DEFAULT_COLOR_MAPPING, DEFAULT_DRAWING_XML, DEFAULT_OUTLINE_WIDTH, DEFAULT_SHADOW_ALPHA, DEFAULT_SHADOW_BLUR_RADIUS, DEFAULT_SHADOW_DIRECTION, DEFAULT_SHADOW_DISTANCE, DEFAULT_TEXT_LIST_STYLE, DOCX_NS, DOCX_PARTS, EmbeddingCollection, FIELD_SPECS, FontCollectionIndex, IMAGE_MEDIA_CONTENT_TYPES, LAYOUT_CATEGORIES, Media, OoxmlMimeType, PART_REGISTRIES, PPTX_NS, PPTX_PARTS, ParsedArchive, PresetColor, PresetPattern, Relationships, STYLE_CATEGORIES, SchemeColor, SmartArtCollection, SystemColor, TargetModeType, ThemeColor, ThemeFont, TokenNotFoundError, VML_BORDER_TAGS, VML_CORE_ATTRS, VML_OFFICE_CORE_ATTRS, VML_OFFICE_SHAPE_ATTRS, VML_SHAPE_ATTRS, XLSX_PARTS, ZIP_DEFLATE_LEVEL, ZIP_STORED_LEVEL, ZipStreamWriter, addBinaryFile, addSmartArtRelationships, appPropertiesDesc, appendContentType, appendOverride, appendRelationship, applyCorePropertiesOverride, bevelDesc, blipDesc, blipFillDesc, bodyPropertiesDesc, buildContentTypeOverrides, buildCorePropertiesXmlString, buildFill, buildRootRelationships, buildThemeXml, calculateEffectExtent, cell3DDesc, chartSpaceDesc, checkOrder, collectPlaceholderKeys, colorsDefDesc, compileMapping, connectorLockingDesc, contentTypesDesc, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertEmuToTwip, convertInchesToEmu, convertInchesToTwip, convertMillimetersToTwip, convertOutput, convertPixelsToEmu, convertPointsToEmu, convertPointsToTwip, convertToEmu, convertToInch, convertToPt, convertToTwip, convertTwipToEmu, convertTwipToPoints, convertUniversalMeasureToEmu, convertUniversalMeasureToInch, convertUniversalMeasureToPt, convertUniversalMeasureToTwip, createAdjust, createAdjustList, createAnimateOneByOne, createAnimationLevel, createBevel, createBlip, createBlipEffects, createBlipFill, createBodyProperties, createBottomBevel, createColorElement, createColorTransforms, createColorsDefinitionHeader, createColorsDefinitionHeaderList, createConnectorLocking, createContentPartLocking, createCustomDash, createCustomGeometry, createDataModel, createDiagramExtensionList, createDiagramRelationshipIds, createDiagramShape3D, createDiagramStyle, createDiagramTextProperties, createEffectColorList, createEffectDag, createEffectList, createExtensionList, createFillColorList, createFillOverlayEffect, createGlowEffect, createGradientFill, createGradientStop, createGraphicFrameLocking, createGroupFill, createGroupLocking, createGroupTransform2D, createHierBranch, createHslColor, createInnerShadowEffect, createLayoutDefinitionHeader, createLayoutDefinitionHeaderList, createLineColorList, createLineEnd, createMaxChildren, createNoFill, createOrgChart, createOuterShadowEffect, createOutline, createPacker, createPatternFill, createPictureLocking, createPreferredChildren, createPresentationLayoutVariables, createPresetColor, createPresetShadowEffect, createReflectionEffect, createReplacer, createRgbColor, createRunRenderer, createScRgbColor, createScene3D, createSchemeColor, createShape3D, createShapeLocking, createSoftEdgeEffect, createSolidFill, createSourceRectangle, createSplitInject, createStyleDefinitionHeader, createStyleDefinitionHeaderList, createStyleLabel, createSystemColor, createTableStyle, createTableStyleList, createTextEffectColorList, createTextElementContents, createTextFillColorList, createTextLineColorList, createThemeXml, createTileInfo, createTokenReplacer, createTransform2D, createTraverser, createZipStream, customGeometryDesc, customPropertiesDesc, dateTimeValue, decimalNumber, decodeBase64, definitionId, deriveContentTypes, derivePasswordHash, diagramExtensionListDesc, diagramRelationshipIdsDesc, diagramStyleDesc, diffTagSets, effectListDesc, eighthPointMeasureValue, emitAngle, emitPercent, encodeBase64, extractBlipFillMedia, fillDesc, findAndReplaceImagePlaceholders, findFieldSpec, formatId, getAudioRefs, getColorXml, getFirstLevelElements, getLayoutXml, getMediaRefs, getNextRelationshipIndex, getOleRefs, getReferencedMedia, getStyleXml, getVideoRefs, gradientFillDesc, graphicFrameLockingDesc, groupLockingDesc, groupShapePropertiesDesc, groupTransform2DDesc, hasPlaceholders, hashPasswordAgile, hashedId, hexBinary, hexColorValue, hpsMeasureValue, hslColorDesc, invertMap, isBase64DataURL, layoutDefDesc, levelForMediaName, longHexNumber, mapOptional, measurementOrPercentValue, nextNumericId, nextVmlShapeId, optionalRelsPart, outlineDesc, paragraphDesc, parse, parseAngle, parseArchive, parseBodyProperties, parseColorChoice, parseColorChoiceElement, parseColorDefinition, parseColorMapping, parseCorePropsElement, parseDataModelOptions, parseEndpointConnection, parseLayoutDefinition, parseNonVisualContentPartProperties, parseNonVisualDrawingProperties, parseOnOff, parsePercent, parseStyleDefinition, parseTableStyle, parseTableStyleList, parseTextListStyle, parseUniversalMeasure, parseVariantValue, parseVector, parseVmlAnchorLock, parseVmlArc, parseVmlAttributes, parseVmlBackground, parseVmlBorder, parseVmlCallout, parseVmlClientData, parseVmlClipPath, parseVmlColorMenu, parseVmlColorMru, parseVmlComplex, parseVmlCurve, parseVmlDiagram, parseVmlEquationXml, parseVmlExtrusion, parseVmlFill, parseVmlFormulas, parseVmlGroup, parseVmlHandles, parseVmlImage, parseVmlImageData, parseVmlInk, parseVmlIsComment, parseVmlLine, parseVmlLock, parseVmlOfficeFill, parseVmlOleObject, parseVmlOval, parseVmlPath, parseVmlPolyline, parseVmlRect, parseVmlRoundRect, parseVmlShadow, parseVmlShape, parseVmlShapeDefaults, parseVmlShapeLayout, parseVmlShapeStyle, parseVmlShapetype, parseVmlSignatureLine, parseVmlSkew, parseVmlStroke, parseVmlStyle, parseVmlTextData, parseVmlTextPath, parseVmlTextbox, parseVmlTrueFalse, parseVmlTrueFalseBlank, parseVmlWrap, partPathToRelsPath, patchSpaceAttribute, patternFillDesc, percentageValue, pickConnectorBase, pickGroupBase, pickNonVisualDrawingProperties, pictureLockingDesc, pointMeasureValue, positiveUniversalMeasureValue, presentationLayoutVariablesDesc, presetColorDesc, presetGeometryDesc, randomBytes, replaceAllPlaceholders, replaceAudioPlaceholders, replaceChartPlaceholders, replaceHyperlinkPlaceholders, replaceImagePlaceholders, replaceMediaPlaceholders, replaceNumberingPlaceholders, replaceOlePlaceholders, replaceSmartArtPlaceholders, replaceVideoPlaceholders, resolveRelationshipTarget, resolverFromRegistry, rgbColorDesc, roundTripFields, runPropertiesDesc, scRgbColorDesc, scene3DDesc, schemeColorDesc, shape3DDesc, shapeLockingDesc, shapePropertiesDesc, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, solidFillDesc, sourceRectangleDesc, strFromU8, stretchDesc, stringify, stringifyAdjustmentValues, stringifyColorChoice, stringifyColorDefinition, stringifyColorDefinitionPart, stringifyColorMapping, stringifyConnection, stringifyDataModel, stringifyDataModelOptions, stringifyEndpointConnection, stringifyLayoutDefinition, stringifyLayoutDefinitionPart, stringifyLineProperties, stringifyNonVisualContentPartProperties, stringifyNonVisualDrawingProperties, stringifyPoint, stringifyPresetGeometry, stringifyStretch, stringifyStringVector, stringifyStyleDefinition, stringifyStyleDefinitionPart, stringifyTextListStyle, stringifyTextRun, stringifyTransPoint, stringifyVariantValue, stringifyVmlAnchorLock, stringifyVmlArc, stringifyVmlAttributes, stringifyVmlBackground, stringifyVmlBorder, stringifyVmlCallout, stringifyVmlClientData, stringifyVmlClipPath, stringifyVmlColorMenu, stringifyVmlColorMru, stringifyVmlComplex, stringifyVmlCurve, stringifyVmlDiagram, stringifyVmlEquationXml, stringifyVmlExtrusion, stringifyVmlFill, stringifyVmlFormulas, stringifyVmlGroup, stringifyVmlHandles, stringifyVmlImage, stringifyVmlImageData, stringifyVmlInk, stringifyVmlIsComment, stringifyVmlLine, stringifyVmlLock, stringifyVmlOfficeFill, stringifyVmlOleObject, stringifyVmlOval, stringifyVmlPath, stringifyVmlPolyline, stringifyVmlRect, stringifyVmlRoundRect, stringifyVmlShadow, stringifyVmlShape, stringifyVmlShapeDefaults, stringifyVmlShapeLayout, stringifyVmlShapetype, stringifyVmlSignatureLine, stringifyVmlSkew, stringifyVmlStroke, stringifyVmlStyle, stringifyVmlTextData, stringifyVmlTextPath, stringifyVmlTextbox, stringifyVmlTrueFalse, stringifyVmlTrueFalseBlank, stringifyVmlWrap, stripColorHashPrefix, styleDefDesc, styleToKeyMap, summarizeOpcIssues, systemColorDesc, textBodyDesc, textListStyleDesc, textRunDesc, themeDesc, themeManagerDesc, themeOverrideDesc, tileDesc, toJson, toUint8Array, transform2DDesc, twipsMeasureValue, uCharHexNumber, uniqueId, uniqueNumericIdCreator, uniqueUuid, universalMeasureValue, unsignedDecimalNumber, unzipSync, userShapesDesc, validateOpcConsistency, withDiagramNamespaces, xsdBlendMode, xsdCompoundLine, xsdEffectContainer, xsdLineCap, xsdLineEndSize, xsdMaterialType, xsdPathFillMode, xsdPattern, xsdPenAlignment, xsdPresetShadow, xsdRectAlignment, xsdStrikeStyle, xsdTextAlign, xsdTextAnchor, xsdTextCaps, xsdUnderlineStyle, xsdVerticalMergeRev, zipAndConvert, zipSync, zipSyncAndConvert };
|
|
1271
1724
|
|
|
1272
1725
|
//# sourceMappingURL=index.mjs.map
|