@docx-editor.dev/core 2.32.0 → 2.33.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 +1 -1
- package/THIRD_PARTY_NOTICES.md +1 -0
- package/dist/automation.cjs +1 -1
- package/dist/automation.d.ts +13 -51
- package/dist/automation.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.ts +14 -14
- package/dist/binding.js +1 -1
- package/dist/{chrome-print-CznJ0ucN.d.ts → chrome-print-CrPI9ZQc.d.ts} +85 -30
- package/dist/chunk-23MKR33J.js +4 -0
- package/dist/chunk-2DEY5NUC.cjs +32 -0
- package/dist/chunk-2DR4TH6B.js +1 -0
- package/dist/{chunk-ETDZFNMI.js → chunk-2F2UEAE2.js} +1 -1
- package/dist/chunk-2GPGAFOJ.cjs +5 -0
- package/dist/chunk-ALD626VU.cjs +2 -0
- package/dist/chunk-AU33YWEJ.js +236 -0
- package/dist/chunk-AXU63LYW.cjs +1 -0
- package/dist/chunk-CM5VZRBV.js +32 -0
- package/dist/chunk-D7FAFFTN.js +1 -0
- package/dist/{chunk-TJHE5EET.cjs → chunk-DYUVJNDD.cjs} +1 -1
- package/dist/chunk-ESYUKD5D.js +2 -0
- package/dist/chunk-F7TGQMVR.js +5 -0
- package/dist/chunk-FLW7KIQX.js +30 -0
- package/dist/chunk-JG4A6W6I.js +7 -0
- package/dist/chunk-JNGLSBPH.js +2 -0
- package/dist/chunk-KE6ZWRIY.cjs +236 -0
- package/dist/{chunk-L5TYBFDB.js → chunk-L3YXJDPX.js} +1 -1
- package/dist/chunk-LI42N7OW.cjs +4 -0
- package/dist/{chunk-ACLR4DMK.js → chunk-PLKDS4JT.js} +1 -1
- package/dist/{chunk-6UDJUI3W.cjs → chunk-PXMTQ73F.cjs} +1 -1
- package/dist/chunk-R4R3AAE4.js +1 -0
- package/dist/{chunk-OKMEMSKB.cjs → chunk-RFUNFTGV.cjs} +1 -1
- package/dist/chunk-SVM6PGMS.js +3 -0
- package/dist/chunk-SZURLHR3.cjs +3 -0
- package/dist/chunk-UYCGCVZ2.cjs +1 -0
- package/dist/chunk-X34QRAUU.cjs +1 -0
- package/dist/chunk-XNBYG4XJ.cjs +30 -0
- package/dist/chunk-ZDFJW5XS.cjs +2 -0
- package/dist/chunk-ZWO4JHNN.cjs +7 -0
- package/dist/collaboration/replication.cjs +1 -1
- package/dist/collaboration/replication.d.ts +13 -4
- package/dist/collaboration/replication.js +1 -1
- package/dist/collaboration.d.ts +3 -3
- package/dist/contracts/document.d.ts +3 -3
- package/dist/contracts/editor.d.ts +10 -10
- package/dist/contracts/interaction.d.ts +2 -2
- package/dist/contracts/modules.d.ts +12 -12
- package/dist/contracts/types.d.ts +4 -4
- package/dist/{custom-node-writes-CLJKGD9t.d.ts → custom-node-writes-AqY5KpVx.d.ts} +2 -2
- package/dist/diagnostic-context-CuzhOX0g.d.ts +98 -0
- package/dist/{diagnostic-hints-DK8-V0fk.d.ts → diagnostic-hints-BtCaCqQC.d.ts} +2 -2
- package/dist/{document-protection-NaniLHWF.d.ts → document-protection-BvbpSXbQ.d.ts} +1 -1
- package/dist/{headless-document-view-Bcz9_Qva.d.ts → drawing-graphic-kind-CXYGYbB3.d.ts} +74 -4
- package/dist/drawing-preview-package-B9lSLRg4.d.ts +115 -0
- package/dist/{editor-DZwOTmlR.d.ts → editor-B7OOAAie.d.ts} +85 -13
- package/dist/{editor-scope-B3L-1ALc.d.ts → editor-scope-CA6egMaK.d.ts} +5 -1
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +4 -4
- package/dist/editor.d.ts +215 -31
- package/dist/editor.js +1 -1
- package/dist/export.cjs +2 -2
- package/dist/export.d.ts +47 -12
- package/dist/export.js +2 -2
- package/dist/{font-resolver-BlQNGdvR.d.ts → font-resolver-Bm9XqTNO.d.ts} +14 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +38 -23
- package/dist/index.js +1 -1
- package/dist/{layout-shaping-E5J4Z1Gf.d.ts → layout-shaping-Ci_BTnSU.d.ts} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.ts +174 -99
- package/dist/layout.js +1 -1
- package/dist/metafile-drawing-DtMFyMKq.d.ts +107 -0
- package/dist/{note-properties-Ds5R2_3F.d.ts → note-properties-DCIJUKIy.d.ts} +1 -1
- package/dist/output.cjs +1 -1
- package/dist/output.d.ts +11 -11
- package/dist/output.js +1 -1
- package/dist/{protocol-DKa4qt7F.d.ts → protocol-Cp_QzVxS.d.ts} +2 -2
- package/dist/{review-paragraph-order-Dc17w_6v.d.ts → review-paragraph-order-BJQ43_r0.d.ts} +1 -1
- package/dist/{revision-projection-Cn6rZJ7H.d.ts → revision-projection-OVusTS77.d.ts} +1 -1
- package/dist/{semantic-cell-selection-BaUR0iJ4.d.ts → semantic-cell-selection-CoI5hHBm.d.ts} +2 -2
- package/dist/{semantic-interaction-CJoHLoOl.d.ts → semantic-interaction-BbA4dgEo.d.ts} +1 -1
- package/dist/{semantic-paint-BPw_n0li.d.ts → semantic-paint-B5JcIv9c.d.ts} +16 -9
- package/dist/{semantic-record-queries-C0rJ3sB4.d.ts → semantic-record-queries-DnO8J5_j.d.ts} +1 -1
- package/dist/{semantic-records-BvN-WWst.d.ts → semantic-records-DoK0lNjS.d.ts} +254 -43
- package/dist/store.cjs +1 -1
- package/dist/store.d.ts +510 -18
- package/dist/store.js +1 -1
- package/dist/{tree-op-types-C_S2niXW.d.ts → tree-op-types-Df4oY2u4.d.ts} +718 -252
- package/dist/{tree-package-store-CRHvMyNj.d.ts → tree-package-store-DXhX1PE-.d.ts} +8 -3
- package/dist/{tree-session-contract-D1awo_dA.d.ts → tree-session-contract-CF2625mv.d.ts} +5 -5
- package/dist/{unsupported-elements-CVos5cqe.d.ts → unsupported-elements-CUojsaCr.d.ts} +1 -1
- package/licenses/ECMA-376.md +29 -0
- package/package.json +2 -2
- package/dist/bookmark-names-DDuAra_V.d.ts +0 -37
- package/dist/chunk-25EXMBV2.cjs +0 -5
- package/dist/chunk-3IEXDEFH.cjs +0 -7
- package/dist/chunk-65XBN67F.cjs +0 -2
- package/dist/chunk-6NVZNB7O.cjs +0 -3
- package/dist/chunk-B2BEELUE.js +0 -1
- package/dist/chunk-DDFHKQFU.js +0 -30
- package/dist/chunk-E4IAO4CY.cjs +0 -2
- package/dist/chunk-FDSL5OJU.cjs +0 -30
- package/dist/chunk-FS7CMYLT.js +0 -4
- package/dist/chunk-GDS24SZN.js +0 -30
- package/dist/chunk-GIY6NT2X.js +0 -5
- package/dist/chunk-GWM3AKUD.js +0 -18
- package/dist/chunk-HDOXACHP.js +0 -2
- package/dist/chunk-IILEENID.js +0 -1
- package/dist/chunk-MNF2K7NN.cjs +0 -30
- package/dist/chunk-O324RB6R.cjs +0 -1
- package/dist/chunk-QXJKYNYZ.js +0 -1
- package/dist/chunk-RALTVLB6.js +0 -2
- package/dist/chunk-SRVKFUFI.js +0 -3
- package/dist/chunk-TELQ52LG.cjs +0 -1
- package/dist/chunk-UMMRURPE.js +0 -7
- package/dist/chunk-XJYZVGQR.cjs +0 -1
- package/dist/chunk-ZGTIE3QJ.cjs +0 -4
- package/dist/chunk-ZOZI27AW.cjs +0 -18
- package/dist/diagnostic-context-BtDUY3v2.d.ts +0 -31
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as HistoryGroupOutcome } from './editor-scope-
|
|
1
|
+
import { H as HistoryGroupOutcome } from './editor-scope-CA6egMaK.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Why a zip was refused at the trust boundary.
|
|
@@ -341,6 +341,7 @@ declare const XML_NAMESPACE_URI = "http://www.w3.org/XML/1998/namespace";
|
|
|
341
341
|
declare const XMLNS_NAMESPACE_URI = "http://www.w3.org/2000/xmlns/";
|
|
342
342
|
/** The `w14` wordml-2010 extension namespace — `w14:paraId`/`w14:textId` live here. */
|
|
343
343
|
declare const W14_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2010/wordml";
|
|
344
|
+
/** @internal */
|
|
344
345
|
declare const DRAWINGML_MAIN_NAMESPACE_URI = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
345
346
|
declare const WP_NAMESPACE_URI = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
|
|
346
347
|
declare const PIC_NAMESPACE_URI = "http://schemas.openxmlformats.org/drawingml/2006/picture";
|
|
@@ -1144,24 +1145,100 @@ type OoxmlInvariantResult = {
|
|
|
1144
1145
|
*/
|
|
1145
1146
|
declare function readOoxmlPart(xml: string, metadata: OoxmlPartMetadata, limits?: XmlLimits): OoxmlReadResult;
|
|
1146
1147
|
|
|
1147
|
-
/**
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
readonly
|
|
1153
|
-
/**
|
|
1154
|
-
readonly
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
readonly
|
|
1148
|
+
/** @internal */
|
|
1149
|
+
type ShapeSchemeColorResolver = (scheme: string) => string | null;
|
|
1150
|
+
/** A resolved shape colour. @public */
|
|
1151
|
+
interface ShapeColor {
|
|
1152
|
+
/** Validated six-character sRGB hex, without `#`. */
|
|
1153
|
+
readonly hex: string;
|
|
1154
|
+
/** Opacity, 0..1. */
|
|
1155
|
+
readonly alpha: number;
|
|
1156
|
+
}
|
|
1157
|
+
/** @internal */
|
|
1158
|
+
declare function resolveColorNode(color: OoxmlNode, resolveSchemeColor?: ShapeSchemeColorResolver, placeholder?: ShapeColor): ShapeColor | null;
|
|
1159
|
+
/** @internal */
|
|
1160
|
+
declare function directFill(parent: OoxmlElement, resolveSchemeColor?: ShapeSchemeColorResolver, placeholder?: ShapeColor): {
|
|
1161
|
+
readonly present: boolean;
|
|
1162
|
+
readonly color: ShapeColor | null;
|
|
1163
|
+
};
|
|
1164
|
+
|
|
1165
|
+
/** A pattern fill: the tile's foreground rows and the two colours. @public */
|
|
1166
|
+
interface VectorPattern {
|
|
1167
|
+
/** Eight rows of foreground cells from the top; the leftmost cell is the high bit. */
|
|
1168
|
+
readonly rows: readonly number[];
|
|
1169
|
+
readonly foreground: ShapeColor;
|
|
1170
|
+
readonly background: ShapeColor;
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
/** An affine map `[a, b, c, d, e, f]`: x' = a x + c y + e, y' = b x + d y + f. */
|
|
1174
|
+
type AffineMatrix = readonly [number, number, number, number, number, number];
|
|
1175
|
+
/** One colour stop of a gradient. @public */
|
|
1176
|
+
interface GradientStop {
|
|
1177
|
+
/** Position along the gradient, 0..1. */
|
|
1178
|
+
readonly offset: number;
|
|
1179
|
+
/** Validated six-character sRGB hex, without `#`. */
|
|
1180
|
+
readonly hex: string;
|
|
1181
|
+
/** Opacity, 0..1. */
|
|
1182
|
+
readonly alpha: number;
|
|
1183
|
+
}
|
|
1184
|
+
/**
|
|
1185
|
+
* A gradient ready to paint. `linear` runs from (x1, y1) to (x2, y2); `radial` grows from
|
|
1186
|
+
* its centre (cx, cy) at offset 0 to radius r at offset 1. Both are in gradient space, which
|
|
1187
|
+
* `matrix` maps onto the component's point space.
|
|
1188
|
+
*/
|
|
1189
|
+
interface VectorGradient {
|
|
1190
|
+
readonly kind: 'linear' | 'radial';
|
|
1191
|
+
/** Stops in offset order; at least two. */
|
|
1192
|
+
readonly stops: readonly GradientStop[];
|
|
1193
|
+
/** `[x1, y1, x2, y2]` for a linear gradient, `[cx, cy, r]` for a radial one. */
|
|
1194
|
+
readonly coords: readonly number[];
|
|
1195
|
+
/** Gradient space onto the component's point space. */
|
|
1196
|
+
readonly matrix: AffineMatrix;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
/**
|
|
1200
|
+
* Outline geometry of a text box shape. A polygon's points are shares of the box, from 0 at
|
|
1201
|
+
* its top-left to 1 at its far side, so the outline stretches with a box that fits its text.
|
|
1202
|
+
*/
|
|
1203
|
+
type TextboxOutlineProjection = {
|
|
1204
|
+
readonly kind: 'ellipse';
|
|
1205
|
+
}
|
|
1206
|
+
/** The corner radius is `arc` times the box's shorter side. */
|
|
1207
|
+
| {
|
|
1208
|
+
readonly kind: 'roundRect';
|
|
1209
|
+
readonly arc: number;
|
|
1210
|
+
} | {
|
|
1211
|
+
readonly kind: 'polygon';
|
|
1212
|
+
readonly subpaths: readonly (readonly {
|
|
1213
|
+
readonly x: number;
|
|
1214
|
+
readonly y: number;
|
|
1215
|
+
}[])[];
|
|
1216
|
+
};
|
|
1217
|
+
/**
|
|
1218
|
+
* The text area of a box of any size: shares of its width and height (an oval, a preset), or
|
|
1219
|
+
* the inscribed square of a round rectangle's corner arc on every side.
|
|
1220
|
+
*/
|
|
1221
|
+
type TextboxTextAreaRule = {
|
|
1222
|
+
readonly kind: 'share';
|
|
1223
|
+
readonly top: number;
|
|
1224
|
+
readonly right: number;
|
|
1225
|
+
readonly bottom: number;
|
|
1226
|
+
readonly left: number;
|
|
1227
|
+
} | {
|
|
1228
|
+
readonly kind: 'arc';
|
|
1229
|
+
readonly arc: number;
|
|
1230
|
+
};
|
|
1231
|
+
|
|
1232
|
+
/** A text box shadow: colour, opacity and page offset. */
|
|
1233
|
+
interface LegacyTextboxShadow {
|
|
1234
|
+
readonly hex: string;
|
|
1235
|
+
readonly alpha: number;
|
|
1236
|
+
readonly offsetXEmu: number;
|
|
1237
|
+
readonly offsetYEmu: number;
|
|
1238
|
+
/** The shadow is the solid silhouette, seen only outside the shape. */
|
|
1239
|
+
readonly obscured: boolean;
|
|
1162
1240
|
}
|
|
1163
1241
|
|
|
1164
|
-
type ShapeSchemeColorResolver = (scheme: string) => string | null;
|
|
1165
1242
|
type ShapeStyleMatrixResolver = (kind: 'fill' | 'line', index: number) => OoxmlElement | null;
|
|
1166
1243
|
/**
|
|
1167
1244
|
* The renderable subset of a `wps:wsp` non-picture graphic, or of one bounded `wpg:wgp`
|
|
@@ -1170,6 +1247,8 @@ type ShapeStyleMatrixResolver = (kind: 'fill' | 'line', index: number) => OoxmlE
|
|
|
1170
1247
|
* from `a:srgbClr` or from the theme, through `a:schemeClr` or a `wps:style` matrix
|
|
1171
1248
|
* reference. Anything richer (gradient and picture fills, text bodies, rotation, a nested
|
|
1172
1249
|
* group) projects as `null` and paints the labelled placeholder instead.
|
|
1250
|
+
*
|
|
1251
|
+
* @public
|
|
1173
1252
|
*/
|
|
1174
1253
|
interface VectorShapeProjection {
|
|
1175
1254
|
/** The drawing extent that frames the subpath coordinate space. */
|
|
@@ -1200,7 +1279,13 @@ interface VectorShapeProjection {
|
|
|
1200
1279
|
readonly strokeWidthEmu: number;
|
|
1201
1280
|
/** Independently styled paths, always non-empty. A direct shape has one component. */
|
|
1202
1281
|
readonly components: readonly VectorShapeComponent[];
|
|
1282
|
+
/**
|
|
1283
|
+
* Geometry outside the extent paints too. A drawing canvas does not cut its members at
|
|
1284
|
+
* its frame: a member placed past an edge shows whole.
|
|
1285
|
+
*/
|
|
1286
|
+
readonly overflowVisible?: true;
|
|
1203
1287
|
}
|
|
1288
|
+
/** One painted layer of a vector shape. @public */
|
|
1204
1289
|
interface VectorShapeComponent {
|
|
1205
1290
|
readonly subpathsEmu: readonly (readonly Readonly<{
|
|
1206
1291
|
x: number;
|
|
@@ -1218,15 +1303,50 @@ interface VectorShapeComponent {
|
|
|
1218
1303
|
readonly strokeHex: string | null;
|
|
1219
1304
|
readonly strokeAlpha: number;
|
|
1220
1305
|
readonly strokeWidthEmu: number;
|
|
1306
|
+
/**
|
|
1307
|
+
* A gradient fill (`a:gradFill`), painted in place of `fillHex` where the painter can.
|
|
1308
|
+
* `fillHex` then holds the mean of its stops.
|
|
1309
|
+
*/
|
|
1310
|
+
readonly fillGradient?: VectorGradient;
|
|
1311
|
+
/** A preset pattern the fill paints with; `fillHex` is its mean colour. */
|
|
1312
|
+
readonly fillPattern?: VectorPattern;
|
|
1313
|
+
/** The outer shadow the shape casts, painted under this component. */
|
|
1314
|
+
readonly shadow?: ShapeShadow;
|
|
1315
|
+
/**
|
|
1316
|
+
* The component only casts `shadow`: it is the silhouette of a shape with several paths,
|
|
1317
|
+
* placed before them, and paints no fill or outline of its own.
|
|
1318
|
+
*/
|
|
1319
|
+
readonly shadowOnly?: true;
|
|
1221
1320
|
/** Authored line ends and joins, inherited from the selected theme line when absent. */
|
|
1222
1321
|
readonly strokeCap?: 'butt' | 'round' | 'square';
|
|
1223
|
-
readonly strokeJoin?: 'round' | 'bevel';
|
|
1322
|
+
readonly strokeJoin?: 'round' | 'bevel' | 'miter';
|
|
1323
|
+
/** Miter limit in line widths, for a miter join. */
|
|
1324
|
+
readonly strokeMiterLimit?: number;
|
|
1325
|
+
/** Dash and gap lengths in multiples of the stroke width; absent for a solid outline. */
|
|
1326
|
+
readonly strokeDash?: readonly number[];
|
|
1327
|
+
/** Paint clips to these closed subpaths, as an inner shadow clips to its shape. */
|
|
1328
|
+
readonly clipEmu?: readonly (readonly Readonly<{
|
|
1329
|
+
x: number;
|
|
1330
|
+
y: number;
|
|
1331
|
+
}>[])[];
|
|
1332
|
+
/** In a picture's frame: paints under the picture (its shadow and fill), not over it. */
|
|
1333
|
+
readonly belowPicture?: true;
|
|
1334
|
+
/**
|
|
1335
|
+
* How far the stroked path lies outside the geometry by design, in EMU: a picture outline
|
|
1336
|
+
* runs half its width outside the picture, so the whole stroke stays off the picture.
|
|
1337
|
+
*/
|
|
1338
|
+
readonly strokeOutsetEmu?: number;
|
|
1224
1339
|
/**
|
|
1225
1340
|
* The outline sits inside the closed geometry (`a:ln algn="in"`): painters draw it at twice
|
|
1226
1341
|
* its width clipped to the path, so the authored width stays inside the shape and adds no
|
|
1227
1342
|
* reach past the extent. Set only for a closed outline with area.
|
|
1228
1343
|
*/
|
|
1229
1344
|
readonly strokeInset?: boolean;
|
|
1345
|
+
/**
|
|
1346
|
+
* The subpaths fill by the nonzero winding rule rather than even-odd, so overlapping
|
|
1347
|
+
* subpaths of one direction stay filled where they cross.
|
|
1348
|
+
*/
|
|
1349
|
+
readonly fillRule?: 'nonzero';
|
|
1230
1350
|
}
|
|
1231
1351
|
/**
|
|
1232
1352
|
* The story carried by a `wps:wsp` text box (`wps:txbx` → `w:txbxContent`).
|
|
@@ -1234,6 +1354,8 @@ interface VectorShapeComponent {
|
|
|
1234
1354
|
* The projection captures only the story root and the shape chrome reads; it never walks the
|
|
1235
1355
|
* story content, so the per-drawing element budget is not spent on paragraphs. Layout collects
|
|
1236
1356
|
* blocks from `content` under its own caps.
|
|
1357
|
+
*
|
|
1358
|
+
* @internal
|
|
1237
1359
|
*/
|
|
1238
1360
|
interface TextboxStoryProjection {
|
|
1239
1361
|
/** Canonical node id of the `w:txbxContent` element. */
|
|
@@ -1262,6 +1384,481 @@ interface TextboxStoryProjection {
|
|
|
1262
1384
|
readonly strokeHex: string | null;
|
|
1263
1385
|
/** Outline width in EMU; 0 when absent. */
|
|
1264
1386
|
readonly strokeWidthEmu: number;
|
|
1387
|
+
/** The shape around a legacy VML story; absent for an upright rectangle. */
|
|
1388
|
+
readonly legacyFrame?: TextboxLegacyFrame;
|
|
1389
|
+
/** The outline is centred on the shape edge, half outside the extent, as VML strokes it. */
|
|
1390
|
+
readonly strokeCentered?: true;
|
|
1391
|
+
/** VML `insetpen`: the outline lies inside the box and insets the text by its full width. */
|
|
1392
|
+
readonly strokeInset?: true;
|
|
1393
|
+
/** VML `mso-fit-shape-to-text`: the box height follows its text when laid out. */
|
|
1394
|
+
readonly fitHeightToText?: true;
|
|
1395
|
+
/** Outline dash pattern in multiples of the outline width; absent for solid. */
|
|
1396
|
+
readonly strokeDash?: readonly number[];
|
|
1397
|
+
/** How outline dashes end; absent for flat ends. */
|
|
1398
|
+
readonly strokeCap?: 'round' | 'square';
|
|
1399
|
+
/** The shape painted again under itself in one colour, offset on the page. */
|
|
1400
|
+
readonly shadow?: LegacyTextboxShadow;
|
|
1401
|
+
/**
|
|
1402
|
+
* The story is DrawingML shape text lowered to read-only paragraphs (a diagram's text): it
|
|
1403
|
+
* lays out without the document's styles and with the DrawingML line rule.
|
|
1404
|
+
*/
|
|
1405
|
+
readonly drawingText?: true;
|
|
1406
|
+
/**
|
|
1407
|
+
* The drawing's `vectorShape` paints the box's fill, outline and effects; the story paints
|
|
1408
|
+
* only its text. The fill and outline fields stay for the text insets they give.
|
|
1409
|
+
*/
|
|
1410
|
+
readonly chromeByVector?: true;
|
|
1411
|
+
}
|
|
1412
|
+
/** Shape geometry, turn and text flow of a text box: a legacy VML one, or a DrawingML one. */
|
|
1413
|
+
interface TextboxLegacyFrame {
|
|
1414
|
+
/** Space between the shape box and its text area, in EMU, before the story insets. */
|
|
1415
|
+
readonly textAreaEmu: Readonly<{
|
|
1416
|
+
top: number;
|
|
1417
|
+
right: number;
|
|
1418
|
+
bottom: number;
|
|
1419
|
+
left: number;
|
|
1420
|
+
}>;
|
|
1421
|
+
/** Outline geometry; null for a rectangle. */
|
|
1422
|
+
readonly outline: TextboxOutlineProjection | null;
|
|
1423
|
+
/** Clockwise shape turn in degrees, in [0, 360). */
|
|
1424
|
+
readonly rotationDegrees: number;
|
|
1425
|
+
/** The text turns with the shape; otherwise it stays upright in the turned box. */
|
|
1426
|
+
readonly textTurnsWithShape: boolean;
|
|
1427
|
+
/**
|
|
1428
|
+
* `vertical` runs lines top to bottom, stacked right to left; `verticalBottomToTop` runs
|
|
1429
|
+
* them bottom to top, stacked left to right.
|
|
1430
|
+
*/
|
|
1431
|
+
readonly flow: 'horizontal' | 'vertical' | 'verticalBottomToTop';
|
|
1432
|
+
/** The shape paints and its text does not, as a text area some shapes write hides it. */
|
|
1433
|
+
readonly textHidden?: true;
|
|
1434
|
+
/** How the text area follows the box size, for a box that fits its text. */
|
|
1435
|
+
readonly textAreaRule?: TextboxTextAreaRule;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
/** An outer shadow: the shape's silhouette, offset, blurred and filled in one colour. */
|
|
1439
|
+
interface ShapeShadow {
|
|
1440
|
+
/** Offset of the silhouette, in the component's point space. */
|
|
1441
|
+
readonly dxEmu: number;
|
|
1442
|
+
/** Vertical offset of the silhouette, in the same units. */
|
|
1443
|
+
readonly dyEmu: number;
|
|
1444
|
+
/** Blur radius in the same units; 0 is a crisp silhouette. */
|
|
1445
|
+
readonly blurEmu: number;
|
|
1446
|
+
/** Validated six-character sRGB hex, without `#`. */
|
|
1447
|
+
readonly hex: string;
|
|
1448
|
+
/** Opacity, 0..1. */
|
|
1449
|
+
readonly alpha: number;
|
|
1450
|
+
}
|
|
1451
|
+
/**
|
|
1452
|
+
* The effect list a shape paints with, and the colour `phClr` stands for in it.
|
|
1453
|
+
*
|
|
1454
|
+
* @internal
|
|
1455
|
+
*/
|
|
1456
|
+
interface ShapeEffectList {
|
|
1457
|
+
/** The shape's own `a:effectLst`, or the one in the theme effect style it references. */
|
|
1458
|
+
readonly effectLst: OoxmlElement;
|
|
1459
|
+
/** True when `effectLst` comes from the theme through the shape's `effectRef`. */
|
|
1460
|
+
readonly fromTheme: boolean;
|
|
1461
|
+
/** The colour of the `effectRef`, which `phClr` in a theme effect list stands for. */
|
|
1462
|
+
readonly placeholder?: ShapeColor;
|
|
1463
|
+
}
|
|
1464
|
+
/**
|
|
1465
|
+
* A mirror image below a picture that fades out downward (`a:reflection`), as the effects
|
|
1466
|
+
* renderer projects it for paint.
|
|
1467
|
+
*
|
|
1468
|
+
* @public
|
|
1469
|
+
*/
|
|
1470
|
+
interface ShapeReflection {
|
|
1471
|
+
/** Opacity where the mirror image meets the shape. */
|
|
1472
|
+
readonly startAlpha: number;
|
|
1473
|
+
/** Opacity at `endPosition`; below it the mirror image is clear. */
|
|
1474
|
+
readonly endAlpha: number;
|
|
1475
|
+
/** Where the fade ends, as a share of the shape's height. */
|
|
1476
|
+
readonly endPosition: number;
|
|
1477
|
+
/** Gap between the shape and its mirror image. */
|
|
1478
|
+
readonly distanceEmu: number;
|
|
1479
|
+
/** Blur radius of the mirror image. */
|
|
1480
|
+
readonly blurEmu: number;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
/** Effects that change how a picture itself paints, beyond what its frame draws. @public */
|
|
1484
|
+
interface PictureFrameEffects {
|
|
1485
|
+
/** A mirror image of the picture below it. */
|
|
1486
|
+
readonly reflection?: ShapeReflection;
|
|
1487
|
+
/** The picture's edge fades out over this distance inside it. */
|
|
1488
|
+
readonly softEdgeEmu?: number;
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
/** The rule a layout widens to its line. */
|
|
1492
|
+
interface HorizontalRuleProjection {
|
|
1493
|
+
/** `RRGGBB` of the bar, or of its upper band when shaded. */
|
|
1494
|
+
readonly fillHex: string;
|
|
1495
|
+
/** The lower band is light grey, as a groove. */
|
|
1496
|
+
readonly shaded: boolean;
|
|
1497
|
+
/** The bar's share of its line, in (0, 1]. */
|
|
1498
|
+
readonly widthFraction: number;
|
|
1499
|
+
/** A set width in points, which the line caps; absent for a share of the line. */
|
|
1500
|
+
readonly widthPt?: number;
|
|
1501
|
+
/** Where a bar shorter than its line sits on it. */
|
|
1502
|
+
readonly align: 'left' | 'center' | 'right';
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
/** @internal */
|
|
1506
|
+
declare const CHART_GRAPHIC_DATA_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
1507
|
+
/** @internal */
|
|
1508
|
+
declare const CHART_NAMESPACE_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
1509
|
+
/** One resolved chart part. @internal */
|
|
1510
|
+
interface ChartPart {
|
|
1511
|
+
/** The `c:chartSpace` root. */
|
|
1512
|
+
readonly chartSpace: OoxmlElement;
|
|
1513
|
+
/** Canonical part name, for story ids and diagnostics. */
|
|
1514
|
+
readonly partName: string;
|
|
1515
|
+
/** The theme's Latin heading and body faces, which chart text takes through tokens. */
|
|
1516
|
+
readonly themeFaces: ChartThemeFaces;
|
|
1517
|
+
}
|
|
1518
|
+
/** @internal */
|
|
1519
|
+
interface ChartThemeFaces {
|
|
1520
|
+
readonly major: string | null;
|
|
1521
|
+
readonly minor: string | null;
|
|
1522
|
+
}
|
|
1523
|
+
/** Resolves the chart part behind one `c:chart` element of the owner story part. @internal */
|
|
1524
|
+
type ChartPartResolver = (chart: OoxmlElement) => ChartPart | null;
|
|
1525
|
+
|
|
1526
|
+
/** @internal */
|
|
1527
|
+
declare const CHARTEX_GRAPHIC_DATA_URI = "http://schemas.microsoft.com/office/drawing/2014/chartex";
|
|
1528
|
+
/** @internal */
|
|
1529
|
+
declare const CHARTEX_NAMESPACE_URI = "http://schemas.microsoft.com/office/drawing/2014/chartex";
|
|
1530
|
+
/** The namespace of chart style and colour style parts. @internal */
|
|
1531
|
+
declare const CHART_STYLE_NAMESPACE_URI = "http://schemas.microsoft.com/office/drawing/2012/chartStyle";
|
|
1532
|
+
/** One resolved chartex part. @internal */
|
|
1533
|
+
interface ChartexPart {
|
|
1534
|
+
/** The `cx:chartSpace` root. */
|
|
1535
|
+
readonly chartSpace: OoxmlElement;
|
|
1536
|
+
/** Canonical part name, for story ids and diagnostics. */
|
|
1537
|
+
readonly partName: string;
|
|
1538
|
+
/** The `cs:chartStyle` root the chartex part names, or null. */
|
|
1539
|
+
readonly style: OoxmlElement | null;
|
|
1540
|
+
/** The `cs:colorStyle` root the chartex part names, or null. */
|
|
1541
|
+
readonly colors: OoxmlElement | null;
|
|
1542
|
+
/** The theme's Latin heading and body faces, which chart text takes through tokens. */
|
|
1543
|
+
readonly themeFaces: ChartThemeFaces;
|
|
1544
|
+
}
|
|
1545
|
+
/** Resolves the chartex part behind one `cx:chart` element of the owner story part. @internal */
|
|
1546
|
+
type ChartexPartResolver = (chart: OoxmlElement) => ChartexPart | null;
|
|
1547
|
+
|
|
1548
|
+
/** One text box member of a drawing group. @internal */
|
|
1549
|
+
interface GroupTextboxProjection {
|
|
1550
|
+
/** Canonical node id of the member `wps:wsp`; namespaces the story's line ids. */
|
|
1551
|
+
readonly memberNodeId: string;
|
|
1552
|
+
/** The member box in the group's extent space, in EMU (origin at the extent's top-left). */
|
|
1553
|
+
readonly frameEmu: Readonly<{
|
|
1554
|
+
x: number;
|
|
1555
|
+
y: number;
|
|
1556
|
+
cx: number;
|
|
1557
|
+
cy: number;
|
|
1558
|
+
}>;
|
|
1559
|
+
/** The member's story, projected at the scaled member size. */
|
|
1560
|
+
readonly story: TextboxStoryProjection;
|
|
1561
|
+
/**
|
|
1562
|
+
* Clockwise turn of the member's text about the member box center, in degrees [0, 360):
|
|
1563
|
+
* the member's `rot`, plus 180 for `flipV`. `flipH` never mirrors the text.
|
|
1564
|
+
*/
|
|
1565
|
+
readonly rotationDegrees: number;
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
/** Opaque handle — bytes are reachable only through {@link mintValidatedImageBytes}. */
|
|
1569
|
+
interface ValidatedImageBytesHandle {
|
|
1570
|
+
readonly registryId: number;
|
|
1571
|
+
readonly resourceKey: string;
|
|
1572
|
+
readonly contentId: string;
|
|
1573
|
+
readonly generation: number;
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
/**
|
|
1577
|
+
* The engine's trust-boundary caps: recursion depth, element counts, and the rest.
|
|
1578
|
+
*
|
|
1579
|
+
* A caller may LOWER any of these but never raise or disable one — an override of `Infinity`,
|
|
1580
|
+
* zero, a negative or `NaN` clamps into `(0, ceiling]` rather than turning the limit off. These
|
|
1581
|
+
* are security ceilings, not performance budgets.
|
|
1582
|
+
*/
|
|
1583
|
+
interface ResourceLimits {
|
|
1584
|
+
/** Max nested-structure recursion (tables/shapes/SDT/groups). */
|
|
1585
|
+
readonly maxRecursionDepth: number;
|
|
1586
|
+
/** Max total parsed element count. */
|
|
1587
|
+
readonly maxElementCount: number;
|
|
1588
|
+
/** Max package part count. */
|
|
1589
|
+
readonly maxPartCount: number;
|
|
1590
|
+
/** Max total decompressed bytes (zip-bomb guard). */
|
|
1591
|
+
readonly maxDecompressedBytes: number;
|
|
1592
|
+
/** Max total compressed input bytes. */
|
|
1593
|
+
readonly maxCompressedBytes: number;
|
|
1594
|
+
/** Max decompressed:compressed ratio per entry. */
|
|
1595
|
+
readonly maxCompressionRatio: number;
|
|
1596
|
+
/** In-memory chunk budget for streaming/spooling. */
|
|
1597
|
+
readonly maxChunkBytes: number;
|
|
1598
|
+
/** Max pagination passes before non-convergence is declared. */
|
|
1599
|
+
readonly maxPaginationPasses: number;
|
|
1600
|
+
/** Max queued items in any bounded work queue. */
|
|
1601
|
+
readonly maxQueueDepth: number;
|
|
1602
|
+
}
|
|
1603
|
+
/** Non-disableable hard ceilings: no resolved limit may exceed these. */
|
|
1604
|
+
declare const HARD_CEILINGS: ResourceLimits;
|
|
1605
|
+
/** Finite defaults, all <= their hard ceiling. */
|
|
1606
|
+
declare const DEFAULT_LIMITS: ResourceLimits;
|
|
1607
|
+
/**
|
|
1608
|
+
* Resolve caller overrides into a frozen, always-finite limit set. Each value is
|
|
1609
|
+
* `min(override>0 ? override : default, ceiling)`. Infinity/0/negative/NaN can
|
|
1610
|
+
* never disable a limit — the hard ceiling always wins.
|
|
1611
|
+
*/
|
|
1612
|
+
declare function resolveLimits(overrides?: Partial<ResourceLimits>): ResourceLimits;
|
|
1613
|
+
/** Bounded image decode limits (typed-drawings-and-images task 4). */
|
|
1614
|
+
/** Trust-boundary caps specific to image decoding and embedding. */
|
|
1615
|
+
interface ImageResourceLimits {
|
|
1616
|
+
readonly maxEncodedBytes: number;
|
|
1617
|
+
readonly maxDecodedBytes: number;
|
|
1618
|
+
readonly maxPixels: number;
|
|
1619
|
+
readonly maxDimension: number;
|
|
1620
|
+
readonly maxPolygonPoints: number;
|
|
1621
|
+
readonly maxExternalRedirects: number;
|
|
1622
|
+
}
|
|
1623
|
+
/** Image caps nothing can raise past. A caller's override clamps into these. */
|
|
1624
|
+
declare const IMAGE_RESOURCE_HARD_CEILINGS: ImageResourceLimits;
|
|
1625
|
+
/** The image caps in force when a host configures none. Conservative and finite. */
|
|
1626
|
+
declare const DEFAULT_IMAGE_RESOURCE_LIMITS: ImageResourceLimits;
|
|
1627
|
+
/** Resolve caller overrides into frozen image limits; hard ceilings cannot be raised. */
|
|
1628
|
+
declare function resolveImageResourceLimits(overrides?: Partial<ImageResourceLimits>): ImageResourceLimits;
|
|
1629
|
+
|
|
1630
|
+
/**
|
|
1631
|
+
* Raster media the decode port measures and any authoring path may write.
|
|
1632
|
+
*
|
|
1633
|
+
* BMP and WebP are here for the same reason the other three are: an `<img>` decodes them
|
|
1634
|
+
* natively, so they need a signature and a structural header and nothing else. BMP is what
|
|
1635
|
+
* older documents carry; WebP is what current Word writes.
|
|
1636
|
+
*/
|
|
1637
|
+
type SupportedImageMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/bmp' | 'image/webp';
|
|
1638
|
+
/**
|
|
1639
|
+
* Vector media painted straight from validated bytes. An `<img>` renders SVG in the
|
|
1640
|
+
* browser's secure static mode — no script, no external subresource loads — so there is
|
|
1641
|
+
* no decode step and no raster buffer sized by a file-supplied number.
|
|
1642
|
+
*/
|
|
1643
|
+
type VectorImageMime = 'image/svg+xml';
|
|
1644
|
+
/** Every mime the painter can hand to an `<img>`. */
|
|
1645
|
+
type RenderableImageMime = SupportedImageMime | VectorImageMime;
|
|
1646
|
+
/**
|
|
1647
|
+
* Media kept in the package byte-for-byte that the painter cannot hand to an `<img>`.
|
|
1648
|
+
* A decode port may rasterize it; without one it paints as a labelled placeholder.
|
|
1649
|
+
*/
|
|
1650
|
+
type PreservedImageMime = 'image/tiff' | 'image/x-emf' | 'image/x-wmf';
|
|
1651
|
+
/** @internal */
|
|
1652
|
+
type MetafileImageMime = 'image/x-emf' | 'image/x-wmf';
|
|
1653
|
+
|
|
1654
|
+
/**
|
|
1655
|
+
* What is known about one embedded image: validated, refused, or still decoding.
|
|
1656
|
+
*
|
|
1657
|
+
* Content type is a CLAIM. Signature sniffing, structural header validation and the decode port
|
|
1658
|
+
* are authoritative, and bytes that fail them never enter public state.
|
|
1659
|
+
*/
|
|
1660
|
+
type ImageResourceState = {
|
|
1661
|
+
readonly kind: 'ready';
|
|
1662
|
+
readonly partName: string;
|
|
1663
|
+
readonly contentId: string;
|
|
1664
|
+
readonly resourceKey: string;
|
|
1665
|
+
readonly validatedHandle: ValidatedImageBytesHandle;
|
|
1666
|
+
readonly mime: RenderableImageMime;
|
|
1667
|
+
readonly pixelWidth: number;
|
|
1668
|
+
readonly pixelHeight: number;
|
|
1669
|
+
readonly dpiX: number;
|
|
1670
|
+
readonly dpiY: number;
|
|
1671
|
+
} | {
|
|
1672
|
+
readonly kind: 'unrenderable';
|
|
1673
|
+
readonly partName: string | null;
|
|
1674
|
+
readonly mime: RenderableImageMime | PreservedImageMime | 'unknown';
|
|
1675
|
+
readonly reason: 'unsupported-format' | 'non-picture-graphic' | 'signature-mismatch' | 'decode-failed' | 'resource-limit';
|
|
1676
|
+
} | {
|
|
1677
|
+
readonly kind: 'external';
|
|
1678
|
+
readonly relationshipId: string;
|
|
1679
|
+
readonly sinkSafe: boolean;
|
|
1680
|
+
} | {
|
|
1681
|
+
readonly kind: 'missing';
|
|
1682
|
+
readonly relationshipId: string;
|
|
1683
|
+
} | {
|
|
1684
|
+
readonly kind: 'pending';
|
|
1685
|
+
readonly resourceKey: string;
|
|
1686
|
+
};
|
|
1687
|
+
/**
|
|
1688
|
+
* The injected image decoder.
|
|
1689
|
+
*
|
|
1690
|
+
* A port rather than a direct `Image`/`createImageBitmap` call, so a worker or server runtime
|
|
1691
|
+
* supplies its own and the engine never reaches for a browser global.
|
|
1692
|
+
*/
|
|
1693
|
+
interface ImageDecodePort {
|
|
1694
|
+
decode(bytes: Uint8Array, mime: SupportedImageMime, limits: ImageResourceLimits,
|
|
1695
|
+
/** Aborted when the owning lookup/session is disposed. */
|
|
1696
|
+
signal?: AbortSignal): Promise<Readonly<{
|
|
1697
|
+
pixelWidth: number;
|
|
1698
|
+
pixelHeight: number;
|
|
1699
|
+
dpiX: number;
|
|
1700
|
+
dpiY: number;
|
|
1701
|
+
}>>;
|
|
1702
|
+
/**
|
|
1703
|
+
* Optional conversion of media an `<img>` cannot render (EMF/WMF metafiles, TIFF) into a
|
|
1704
|
+
* renderable raster. The returned bytes are untrusted and re-enter the full raster
|
|
1705
|
+
* validation path (sniff, header, pixel caps, decode) before they can become a ready
|
|
1706
|
+
* resource. A null return declines the format and keeps the labelled placeholder; so does
|
|
1707
|
+
* a throw, as `decode-failed`.
|
|
1708
|
+
*/
|
|
1709
|
+
convertPreserved?(bytes: Uint8Array, mime: PreservedImageMime, limits: ImageResourceLimits,
|
|
1710
|
+
/** Aborted when the owning lookup/session is disposed. */
|
|
1711
|
+
signal?: AbortSignal): Promise<Readonly<{
|
|
1712
|
+
bytes: Uint8Array;
|
|
1713
|
+
mime: SupportedImageMime;
|
|
1714
|
+
}> | null>;
|
|
1715
|
+
}
|
|
1716
|
+
/** Resolves a relationship id to a validated image resource, or reports why it could not. */
|
|
1717
|
+
interface ImageResourceLookup {
|
|
1718
|
+
readonly resolveEmbedded: (ownerPartName: string, relationshipId: string) => Promise<ImageResourceState>;
|
|
1719
|
+
readonly resolveLinked: (ownerPartName: string, relationshipId: string) => ImageResourceState;
|
|
1720
|
+
readonly resolveForProjection: (projection: DrawingProjection) => Promise<ImageResourceState>;
|
|
1721
|
+
readonly liveReferenceCount: (partName: string) => number;
|
|
1722
|
+
readonly dispose: () => void;
|
|
1723
|
+
}
|
|
1724
|
+
/** Maximum prefix inspected for SVG root detection (exported for bounded-scan tests). */
|
|
1725
|
+
declare const MAX_SVG_SNIFF_BYTES = 512;
|
|
1726
|
+
/** A raster header that passed structural validation: its real MIME type and pixel extent. */
|
|
1727
|
+
interface ValidatedRasterHeader {
|
|
1728
|
+
readonly pixelWidth: number;
|
|
1729
|
+
readonly pixelHeight: number;
|
|
1730
|
+
/** Horizontal physical density when bounded header metadata supplies it. */
|
|
1731
|
+
readonly dpiX?: number;
|
|
1732
|
+
/** Vertical physical density when bounded header metadata supplies it. */
|
|
1733
|
+
readonly dpiY?: number;
|
|
1734
|
+
}
|
|
1735
|
+
/** Bounded scan for an `<svg` document root (optional `<?xml` prolog only). */
|
|
1736
|
+
declare function hasBoundedSvgRoot(bytes: Uint8Array): boolean;
|
|
1737
|
+
/** Signature sniffing — authoritative over declared content type. */
|
|
1738
|
+
declare function sniffImageMime(bytes: Uint8Array): RenderableImageMime | PreservedImageMime | 'unknown';
|
|
1739
|
+
/** Structural PNG IHDR validation before decode. */
|
|
1740
|
+
declare function validatePngHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1741
|
+
/** Structural GIF logical screen descriptor validation before decode. */
|
|
1742
|
+
declare function validateGifHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1743
|
+
/** Bounded JPEG marker scan through the first supported SOF marker. */
|
|
1744
|
+
declare function validateJpegHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1745
|
+
/**
|
|
1746
|
+
* Intrinsic size of an SVG, resolved the way a browser sizes one: absolute `width`/`height`
|
|
1747
|
+
* first, then `viewBox` for the missing axis or ratio, then the CSS 300x150 default.
|
|
1748
|
+
*
|
|
1749
|
+
* This is metadata for insert and reset-to-natural-size only. Layout uses the authored
|
|
1750
|
+
* `wp:extent` and the browser rasterizes into that box, so nothing here sizes an allocation
|
|
1751
|
+
* and an out-of-range value is clamped rather than refused.
|
|
1752
|
+
*/
|
|
1753
|
+
declare function resolveSvgIntrinsicSize(bytes: Uint8Array, limits: ImageResourceLimits): ValidatedRasterHeader | null;
|
|
1754
|
+
/**
|
|
1755
|
+
* Validate a raster image's header structurally and report its real MIME type and extent.
|
|
1756
|
+
*
|
|
1757
|
+
* Content type is a CLAIM; this is what makes it a fact. A file declaring `image/png` over JPEG
|
|
1758
|
+
* bytes is caught here rather than at decode.
|
|
1759
|
+
*/
|
|
1760
|
+
declare function validateRasterHeader(bytes: Uint8Array, mime: SupportedImageMime): ValidatedRasterHeader | null;
|
|
1761
|
+
/** Package-wide live drawing references to a media part name. */
|
|
1762
|
+
declare function liveDrawingReferenceCount(pkg: OoxmlPackage, partName: string): number;
|
|
1763
|
+
/** How the image cache decodes, and what it will spend doing so. */
|
|
1764
|
+
interface CreateImageResourceCacheOptions {
|
|
1765
|
+
readonly limits?: Partial<ImageResourceLimits>;
|
|
1766
|
+
readonly decodePort: ImageDecodePort;
|
|
1767
|
+
}
|
|
1768
|
+
/**
|
|
1769
|
+
* Derived cache for one immutable package snapshot. Registry identity is
|
|
1770
|
+
* `(package snapshot, decodePort object, normalized limits)` — the first caller
|
|
1771
|
+
* never imposes its decoder or limits on later callers with different options.
|
|
1772
|
+
*/
|
|
1773
|
+
declare function imageResourceLookupFor(pkg: OoxmlPackage, options: CreateImageResourceCacheOptions): ImageResourceLookup;
|
|
1774
|
+
/** @deprecated Prefer {@link imageResourceLookupFor} — registry binds cache to package identity. */
|
|
1775
|
+
/** Build the per-document image cache. Validated bytes only; refusals are remembered too. */
|
|
1776
|
+
declare function createImageResourceCache(initialPkg: OoxmlPackage, options: CreateImageResourceCacheOptions): ImageResourceLookup;
|
|
1777
|
+
|
|
1778
|
+
/**
|
|
1779
|
+
* Plain text fitted to a floating shape box, painted with one fill and an optional outline.
|
|
1780
|
+
*
|
|
1781
|
+
* @internal
|
|
1782
|
+
*/
|
|
1783
|
+
interface LegacyTextArtProjection {
|
|
1784
|
+
readonly text: string;
|
|
1785
|
+
readonly fontFamily: string;
|
|
1786
|
+
readonly bold: boolean;
|
|
1787
|
+
readonly italic: boolean;
|
|
1788
|
+
/** `RRGGBB`, or null when the shape is not filled. */
|
|
1789
|
+
readonly fillHex: string | null;
|
|
1790
|
+
readonly fillAlpha: number;
|
|
1791
|
+
/** `RRGGBB`, or null when the shape is not stroked. */
|
|
1792
|
+
readonly strokeHex: string | null;
|
|
1793
|
+
readonly strokeAlpha: number;
|
|
1794
|
+
readonly strokeWidthPt: number;
|
|
1795
|
+
/** Clockwise rotation about the box centre, in [0, 360). */
|
|
1796
|
+
readonly rotationDegrees: number;
|
|
1797
|
+
/** `trim`: the ink fills the whole box, with no text inset. */
|
|
1798
|
+
readonly trim?: true;
|
|
1799
|
+
/**
|
|
1800
|
+
* Data an installed text art layout (`DrawingRenderers.textArtLayout`) reads: plain JSON
|
|
1801
|
+
* values, so equal projections stay equal. The engine never reads it.
|
|
1802
|
+
*/
|
|
1803
|
+
readonly renderData?: unknown;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
/**
|
|
1807
|
+
* A chart plot type. A classic chart names it by its element without the `Chart` suffix:
|
|
1808
|
+
* column and bar charts are both `bar`, and `ofPie` is a pie-of-pie or bar-of-pie chart. A
|
|
1809
|
+
* chartex chart names it by its series layout: `waterfall`, `funnel`, `boxWhisker`,
|
|
1810
|
+
* `treemap`, `sunburst` and `regionMap` by their layout id, `histogram` for a clustered
|
|
1811
|
+
* column series, and `pareto` for a Pareto chart (a clustered column series with its
|
|
1812
|
+
* Pareto line).
|
|
1813
|
+
*
|
|
1814
|
+
* @public
|
|
1815
|
+
*/
|
|
1816
|
+
type DrawingChartPlotType = 'area' | 'area3D' | 'bar' | 'bar3D' | 'bubble' | 'doughnut' | 'line' | 'line3D' | 'ofPie' | 'pie' | 'pie3D' | 'radar' | 'scatter' | 'stock' | 'surface' | 'surface3D' | 'waterfall' | 'funnel' | 'histogram' | 'pareto' | 'boxWhisker' | 'treemap' | 'sunburst' | 'regionMap';
|
|
1817
|
+
/**
|
|
1818
|
+
* How the page shows a chart: `chart` when the installed chart renderer draws it,
|
|
1819
|
+
* `fallback` when it shows the content saved in its `mc:AlternateContent` fallback (a
|
|
1820
|
+
* picture, a shape, a group or VML), and `placeholder` when it shows the labeled chart
|
|
1821
|
+
* placeholder.
|
|
1822
|
+
*
|
|
1823
|
+
* @public
|
|
1824
|
+
*/
|
|
1825
|
+
type DrawingChartShownAs = 'chart' | 'fallback' | 'placeholder';
|
|
1826
|
+
/**
|
|
1827
|
+
* The title and plot types of a chart, as text, and how the page shows it.
|
|
1828
|
+
*
|
|
1829
|
+
* A drawing record carries it as `chart` whenever the drawing holds a chart whose chart part
|
|
1830
|
+
* can be read, in each of the three states that `shownAs` names. A visible drawing in a
|
|
1831
|
+
* skipped `mc:Choice` can retain a placeholder when its bounds are usable. Chart metadata
|
|
1832
|
+
* is present only when the projection resolves the chart part.
|
|
1833
|
+
*
|
|
1834
|
+
* @public
|
|
1835
|
+
*/
|
|
1836
|
+
interface DrawingChartSummary {
|
|
1837
|
+
/**
|
|
1838
|
+
* The title the chart shows, as plain text: its own title, typed or from a cell, or the name
|
|
1839
|
+
* of its only series for an automatic title. Null when it shows none, and when a title with
|
|
1840
|
+
* no text of its own sits on a chart with several series. Runs of white space collapse to one
|
|
1841
|
+
* space, and the text is cut to at most 200 UTF-16 code units.
|
|
1842
|
+
*
|
|
1843
|
+
* A chartex chart (waterfall, funnel, histogram, Pareto, box and whisker, treemap, sunburst,
|
|
1844
|
+
* region map) reads only its own title text. Its title is null when the title element has
|
|
1845
|
+
* no text of its own and the chart shows its default caption, and a chartex chart never uses
|
|
1846
|
+
* a series name as an automatic title.
|
|
1847
|
+
*/
|
|
1848
|
+
readonly title: string | null;
|
|
1849
|
+
/**
|
|
1850
|
+
* The chart's plot types in document order; a classic combination chart has more than one.
|
|
1851
|
+
* A chartex chart reports exactly one plot type, or none when its series layout is not one
|
|
1852
|
+
* of the chartex types.
|
|
1853
|
+
*/
|
|
1854
|
+
readonly plotTypes: readonly DrawingChartPlotType[];
|
|
1855
|
+
/**
|
|
1856
|
+
* How the page shows the chart. The projection sets it from the renderers installed when
|
|
1857
|
+
* the document opened: `chart` (the record has a `vectorShape`), `fallback` (the record
|
|
1858
|
+
* paints the fallback content, such as a picture `resource`), or `placeholder` (the record
|
|
1859
|
+
* has `placeholderGraphicKind` `'chart'`). Read this field rather than the other fields.
|
|
1860
|
+
*/
|
|
1861
|
+
readonly shownAs: DrawingChartShownAs;
|
|
1265
1862
|
}
|
|
1266
1863
|
|
|
1267
1864
|
/** Only generated, escaped SVG and relationship slots; never authored markup. */
|
|
@@ -1275,6 +1872,11 @@ interface LegacyGraphicProjection {
|
|
|
1275
1872
|
readonly width: number;
|
|
1276
1873
|
readonly height: number;
|
|
1277
1874
|
readonly fragments: readonly LegacyGraphicFragment[];
|
|
1875
|
+
/**
|
|
1876
|
+
* The relationship of the one uncropped picture that fills the whole graphic, when that is
|
|
1877
|
+
* all it paints. The graphic then resolves to that picture, which every output can paint.
|
|
1878
|
+
*/
|
|
1879
|
+
readonly soleImageRelationshipId?: string;
|
|
1278
1880
|
}
|
|
1279
1881
|
|
|
1280
1882
|
/** Picture color adjustments shared by projection, layout, and paint.
|
|
@@ -1289,26 +1891,6 @@ interface DrawingImageEffects {
|
|
|
1289
1891
|
readonly bilevel?: number;
|
|
1290
1892
|
}
|
|
1291
1893
|
|
|
1292
|
-
/** One text box member of a drawing group. */
|
|
1293
|
-
interface GroupTextboxProjection {
|
|
1294
|
-
/** Canonical node id of the member `wps:wsp`; namespaces the story's line ids. */
|
|
1295
|
-
readonly memberNodeId: string;
|
|
1296
|
-
/** The member box in the group's extent space, in EMU (origin at the extent's top-left). */
|
|
1297
|
-
readonly frameEmu: Readonly<{
|
|
1298
|
-
x: number;
|
|
1299
|
-
y: number;
|
|
1300
|
-
cx: number;
|
|
1301
|
-
cy: number;
|
|
1302
|
-
}>;
|
|
1303
|
-
/** The member's story, projected at the scaled member size. */
|
|
1304
|
-
readonly story: TextboxStoryProjection;
|
|
1305
|
-
/**
|
|
1306
|
-
* Clockwise turn of the member's text about the member box center, in degrees [0, 360):
|
|
1307
|
-
* the member's `rot`, plus 180 for `flipV`. `flipH` never mirrors the text.
|
|
1308
|
-
*/
|
|
1309
|
-
readonly rotationDegrees: number;
|
|
1310
|
-
}
|
|
1311
|
-
|
|
1312
1894
|
/** The relationship namespace `r:id` lives in. */
|
|
1313
1895
|
declare const OFFICE_RELATIONSHIP_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
1314
1896
|
/** The `Type` a hyperlink relationship declares. */
|
|
@@ -1402,6 +1984,8 @@ interface DrawingDiagnostic {
|
|
|
1402
1984
|
readonly nodeId: string;
|
|
1403
1985
|
readonly detail: string | null;
|
|
1404
1986
|
}
|
|
1987
|
+
/** @internal */
|
|
1988
|
+
declare function isElement(node: OoxmlNode): node is OoxmlElement;
|
|
1405
1989
|
|
|
1406
1990
|
/** One picture painted as a member of a drawing group. */
|
|
1407
1991
|
interface GroupPictureProjection {
|
|
@@ -1428,6 +2012,48 @@ interface GroupPictureProjection {
|
|
|
1428
2012
|
* MC payloads it cannot draw.
|
|
1429
2013
|
*/
|
|
1430
2014
|
readonly alternateContent: boolean;
|
|
2015
|
+
/** The ring that clips the picture, in the unit square of the extent; absent for a box. */
|
|
2016
|
+
readonly clipUnit?: readonly Readonly<{
|
|
2017
|
+
x: number;
|
|
2018
|
+
y: number;
|
|
2019
|
+
}>[];
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
/** @internal */
|
|
2023
|
+
declare const DIAGRAM_NAMESPACE_URI = "http://schemas.openxmlformats.org/drawingml/2006/diagram";
|
|
2024
|
+
/** The parts one diagram drawing renders from. @internal */
|
|
2025
|
+
interface DiagramParts {
|
|
2026
|
+
/** The data model root (`dgm:dataModel`): background and outline of the whole diagram. */
|
|
2027
|
+
readonly dataModel: OoxmlElement;
|
|
2028
|
+
/** The saved drawing root (`dsp:drawing`), or null when the package has none. */
|
|
2029
|
+
readonly drawing: OoxmlElement | null;
|
|
2030
|
+
/** Canonical name of the saved drawing part, for diagnostics and cache keys. */
|
|
2031
|
+
readonly drawingPartName: string | null;
|
|
2032
|
+
/** Canonical name of the data model part. */
|
|
2033
|
+
readonly dataPartName: string;
|
|
2034
|
+
/** The layout definition root (`dgm:layoutDef`), or null. */
|
|
2035
|
+
readonly layoutDef: OoxmlElement | null;
|
|
2036
|
+
/** The quick style root (`dgm:styleDef`), or null. */
|
|
2037
|
+
readonly styleDef: OoxmlElement | null;
|
|
2038
|
+
/** The colours root (`dgm:colorsDef`), or null. */
|
|
2039
|
+
readonly colorsDef: OoxmlElement | null;
|
|
2040
|
+
/** The theme's body (minor) Latin font, which diagram text uses unless it names one. */
|
|
2041
|
+
readonly fontFamily: string;
|
|
2042
|
+
}
|
|
2043
|
+
/**
|
|
2044
|
+
* Resolves the parts behind one `dgm:relIds` element of the owner story part. The same
|
|
2045
|
+
* resolver answers the chart part behind a `c:chart` element through `chart`, so the drawing
|
|
2046
|
+
* projection threads one resolver for every part-backed graphic.
|
|
2047
|
+
*
|
|
2048
|
+
* @internal
|
|
2049
|
+
*/
|
|
2050
|
+
interface DiagramPartResolver {
|
|
2051
|
+
/** The diagram parts behind one `dgm:relIds` element, or null when they do not resolve. */
|
|
2052
|
+
(relIds: OoxmlElement): DiagramParts | null;
|
|
2053
|
+
/** The chart part behind one `c:chart` element of the same story part. */
|
|
2054
|
+
readonly chart?: ChartPartResolver;
|
|
2055
|
+
/** The chartex part behind one `cx:chart` element of the same story part. */
|
|
2056
|
+
readonly chartex?: ChartexPartResolver;
|
|
1431
2057
|
}
|
|
1432
2058
|
|
|
1433
2059
|
/**
|
|
@@ -1542,13 +2168,28 @@ interface DrawingProjection {
|
|
|
1542
2168
|
readonly vectorShape: VectorShapeProjection | null;
|
|
1543
2169
|
/** The picture member of a `wpg:wgp` group; `picture` stays null for a group. */
|
|
1544
2170
|
readonly groupPicture: GroupPictureProjection | null;
|
|
2171
|
+
/**
|
|
2172
|
+
* The group's other picture members, in document order. Each paints above `groupPicture`
|
|
2173
|
+
* and the ones before it, and below `vectorShape`. Absent when the group has one picture.
|
|
2174
|
+
*/
|
|
2175
|
+
readonly groupPictureLayers?: readonly GroupPictureProjection[];
|
|
1545
2176
|
readonly textboxStory: TextboxStoryProjection | null;
|
|
1546
2177
|
/** Text box members of a `wpg:wgp` group, laid out read-only; absent when none has text. */
|
|
1547
2178
|
readonly groupTextboxes?: readonly GroupTextboxProjection[];
|
|
2179
|
+
/** The title and plot types of a chart: rendered, shown by its fallback, or a placeholder. */
|
|
2180
|
+
readonly chartSummary?: DrawingChartSummary;
|
|
2181
|
+
/**
|
|
2182
|
+
* The picture saved in the `mc:Fallback` of a chart's `mc:AlternateContent`, whichever
|
|
2183
|
+
* branch the page shows, for an output that exports a chart as its saved picture. Absent
|
|
2184
|
+
* when the fallback is not a picture that paints.
|
|
2185
|
+
*/
|
|
2186
|
+
readonly chartFallbackPicture?: PictureProjection;
|
|
1548
2187
|
/** Read-only preview of the supported native VML subset; the canonical XML is untouched. */
|
|
1549
2188
|
readonly legacyGraphic?: LegacyGraphicProjection;
|
|
1550
2189
|
/** Floating VML text art (a text watermark), fitted to the box by layout. */
|
|
1551
2190
|
readonly textArt?: LegacyTextArtProjection;
|
|
2191
|
+
/** A horizontal rule; layout widens it to its line and gives it its `vectorShape`. */
|
|
2192
|
+
readonly horizontalRule?: HorizontalRuleProjection;
|
|
1552
2193
|
readonly locks: DrawingLocks;
|
|
1553
2194
|
readonly effects: DrawingImageEffects;
|
|
1554
2195
|
readonly compatibilityBranchNodeId: string | null;
|
|
@@ -1602,6 +2243,13 @@ interface PictureProjection {
|
|
|
1602
2243
|
readonly fillMode: 'stretch' | 'tile';
|
|
1603
2244
|
readonly transform: DrawingTransform;
|
|
1604
2245
|
readonly presetGeometry: string | null;
|
|
2246
|
+
/** The clip ring of non-rectangular geometry, in the unit square of the extent. */
|
|
2247
|
+
readonly clipUnit?: readonly Readonly<{
|
|
2248
|
+
x: number;
|
|
2249
|
+
y: number;
|
|
2250
|
+
}>[];
|
|
2251
|
+
/** Effects that change how the picture itself paints: a reflection, soft edges. */
|
|
2252
|
+
readonly frameEffects?: PictureFrameEffects;
|
|
1605
2253
|
}
|
|
1606
2254
|
/**
|
|
1607
2255
|
* Project one `w:drawing` into the resolved shape layout and chrome read.
|
|
@@ -1618,215 +2266,9 @@ declare function projectDrawing(drawing: OoxmlDrawingNode, context: Readonly<{
|
|
|
1618
2266
|
resolveRelationship?: RelationshipTargetResolver;
|
|
1619
2267
|
resolveSchemeColor?: ShapeSchemeColorResolver;
|
|
1620
2268
|
resolveStyleMatrixReference?: ShapeStyleMatrixResolver;
|
|
2269
|
+
resolveDiagramParts?: DiagramPartResolver;
|
|
1621
2270
|
}>): DrawingProjection | null;
|
|
1622
2271
|
|
|
1623
|
-
/** Opaque handle — bytes are reachable only through {@link mintValidatedImageBytes}. */
|
|
1624
|
-
interface ValidatedImageBytesHandle {
|
|
1625
|
-
readonly registryId: number;
|
|
1626
|
-
readonly resourceKey: string;
|
|
1627
|
-
readonly contentId: string;
|
|
1628
|
-
readonly generation: number;
|
|
1629
|
-
}
|
|
1630
|
-
|
|
1631
|
-
/**
|
|
1632
|
-
* The engine's trust-boundary caps: recursion depth, element counts, and the rest.
|
|
1633
|
-
*
|
|
1634
|
-
* A caller may LOWER any of these but never raise or disable one — an override of `Infinity`,
|
|
1635
|
-
* zero, a negative or `NaN` clamps into `(0, ceiling]` rather than turning the limit off. These
|
|
1636
|
-
* are security ceilings, not performance budgets.
|
|
1637
|
-
*/
|
|
1638
|
-
interface ResourceLimits {
|
|
1639
|
-
/** Max nested-structure recursion (tables/shapes/SDT/groups). */
|
|
1640
|
-
readonly maxRecursionDepth: number;
|
|
1641
|
-
/** Max total parsed element count. */
|
|
1642
|
-
readonly maxElementCount: number;
|
|
1643
|
-
/** Max package part count. */
|
|
1644
|
-
readonly maxPartCount: number;
|
|
1645
|
-
/** Max total decompressed bytes (zip-bomb guard). */
|
|
1646
|
-
readonly maxDecompressedBytes: number;
|
|
1647
|
-
/** Max total compressed input bytes. */
|
|
1648
|
-
readonly maxCompressedBytes: number;
|
|
1649
|
-
/** Max decompressed:compressed ratio per entry. */
|
|
1650
|
-
readonly maxCompressionRatio: number;
|
|
1651
|
-
/** In-memory chunk budget for streaming/spooling. */
|
|
1652
|
-
readonly maxChunkBytes: number;
|
|
1653
|
-
/** Max pagination passes before non-convergence is declared. */
|
|
1654
|
-
readonly maxPaginationPasses: number;
|
|
1655
|
-
/** Max queued items in any bounded work queue. */
|
|
1656
|
-
readonly maxQueueDepth: number;
|
|
1657
|
-
}
|
|
1658
|
-
/** Non-disableable hard ceilings: no resolved limit may exceed these. */
|
|
1659
|
-
declare const HARD_CEILINGS: ResourceLimits;
|
|
1660
|
-
/** Finite defaults, all <= their hard ceiling. */
|
|
1661
|
-
declare const DEFAULT_LIMITS: ResourceLimits;
|
|
1662
|
-
/**
|
|
1663
|
-
* Resolve caller overrides into a frozen, always-finite limit set. Each value is
|
|
1664
|
-
* `min(override>0 ? override : default, ceiling)`. Infinity/0/negative/NaN can
|
|
1665
|
-
* never disable a limit — the hard ceiling always wins.
|
|
1666
|
-
*/
|
|
1667
|
-
declare function resolveLimits(overrides?: Partial<ResourceLimits>): ResourceLimits;
|
|
1668
|
-
/** Bounded image decode limits (typed-drawings-and-images task 4). */
|
|
1669
|
-
/** Trust-boundary caps specific to image decoding and embedding. */
|
|
1670
|
-
interface ImageResourceLimits {
|
|
1671
|
-
readonly maxEncodedBytes: number;
|
|
1672
|
-
readonly maxDecodedBytes: number;
|
|
1673
|
-
readonly maxPixels: number;
|
|
1674
|
-
readonly maxDimension: number;
|
|
1675
|
-
readonly maxPolygonPoints: number;
|
|
1676
|
-
readonly maxExternalRedirects: number;
|
|
1677
|
-
}
|
|
1678
|
-
/** Image caps nothing can raise past. A caller's override clamps into these. */
|
|
1679
|
-
declare const IMAGE_RESOURCE_HARD_CEILINGS: ImageResourceLimits;
|
|
1680
|
-
/** The image caps in force when a host configures none. Conservative and finite. */
|
|
1681
|
-
declare const DEFAULT_IMAGE_RESOURCE_LIMITS: ImageResourceLimits;
|
|
1682
|
-
/** Resolve caller overrides into frozen image limits; hard ceilings cannot be raised. */
|
|
1683
|
-
declare function resolveImageResourceLimits(overrides?: Partial<ImageResourceLimits>): ImageResourceLimits;
|
|
1684
|
-
|
|
1685
|
-
/**
|
|
1686
|
-
* Raster media the decode port measures and any authoring path may write.
|
|
1687
|
-
*
|
|
1688
|
-
* BMP and WebP are here for the same reason the other three are: an `<img>` decodes them
|
|
1689
|
-
* natively, so they need a signature and a structural header and nothing else. BMP is what
|
|
1690
|
-
* older documents carry; WebP is what current Word writes.
|
|
1691
|
-
*/
|
|
1692
|
-
type SupportedImageMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/bmp' | 'image/webp';
|
|
1693
|
-
/**
|
|
1694
|
-
* Vector media painted straight from validated bytes. An `<img>` renders SVG in the
|
|
1695
|
-
* browser's secure static mode — no script, no external subresource loads — so there is
|
|
1696
|
-
* no decode step and no raster buffer sized by a file-supplied number.
|
|
1697
|
-
*/
|
|
1698
|
-
type VectorImageMime = 'image/svg+xml';
|
|
1699
|
-
/** Every mime the painter can hand to an `<img>`. */
|
|
1700
|
-
type RenderableImageMime = SupportedImageMime | VectorImageMime;
|
|
1701
|
-
/**
|
|
1702
|
-
* Media kept in the package byte-for-byte that the painter cannot hand to an `<img>`.
|
|
1703
|
-
* A decode port may rasterize it; without one it paints as a labelled placeholder.
|
|
1704
|
-
*/
|
|
1705
|
-
type PreservedImageMime = 'image/tiff' | 'image/x-emf' | 'image/x-wmf';
|
|
1706
|
-
/**
|
|
1707
|
-
* What is known about one embedded image: validated, refused, or still decoding.
|
|
1708
|
-
*
|
|
1709
|
-
* Content type is a CLAIM. Signature sniffing, structural header validation and the decode port
|
|
1710
|
-
* are authoritative, and bytes that fail them never enter public state.
|
|
1711
|
-
*/
|
|
1712
|
-
type ImageResourceState = {
|
|
1713
|
-
readonly kind: 'ready';
|
|
1714
|
-
readonly partName: string;
|
|
1715
|
-
readonly contentId: string;
|
|
1716
|
-
readonly resourceKey: string;
|
|
1717
|
-
readonly validatedHandle: ValidatedImageBytesHandle;
|
|
1718
|
-
readonly mime: RenderableImageMime;
|
|
1719
|
-
readonly pixelWidth: number;
|
|
1720
|
-
readonly pixelHeight: number;
|
|
1721
|
-
readonly dpiX: number;
|
|
1722
|
-
readonly dpiY: number;
|
|
1723
|
-
} | {
|
|
1724
|
-
readonly kind: 'unrenderable';
|
|
1725
|
-
readonly partName: string | null;
|
|
1726
|
-
readonly mime: RenderableImageMime | PreservedImageMime | 'unknown';
|
|
1727
|
-
readonly reason: 'unsupported-format' | 'non-picture-graphic' | 'signature-mismatch' | 'decode-failed' | 'resource-limit';
|
|
1728
|
-
} | {
|
|
1729
|
-
readonly kind: 'external';
|
|
1730
|
-
readonly relationshipId: string;
|
|
1731
|
-
readonly sinkSafe: boolean;
|
|
1732
|
-
} | {
|
|
1733
|
-
readonly kind: 'missing';
|
|
1734
|
-
readonly relationshipId: string;
|
|
1735
|
-
} | {
|
|
1736
|
-
readonly kind: 'pending';
|
|
1737
|
-
readonly resourceKey: string;
|
|
1738
|
-
};
|
|
1739
|
-
/**
|
|
1740
|
-
* The injected image decoder.
|
|
1741
|
-
*
|
|
1742
|
-
* A port rather than a direct `Image`/`createImageBitmap` call, so a worker or server runtime
|
|
1743
|
-
* supplies its own and the engine never reaches for a browser global.
|
|
1744
|
-
*/
|
|
1745
|
-
interface ImageDecodePort {
|
|
1746
|
-
decode(bytes: Uint8Array, mime: SupportedImageMime, limits: ImageResourceLimits,
|
|
1747
|
-
/** Aborted when the owning lookup/session is disposed. */
|
|
1748
|
-
signal?: AbortSignal): Promise<Readonly<{
|
|
1749
|
-
pixelWidth: number;
|
|
1750
|
-
pixelHeight: number;
|
|
1751
|
-
dpiX: number;
|
|
1752
|
-
dpiY: number;
|
|
1753
|
-
}>>;
|
|
1754
|
-
/**
|
|
1755
|
-
* Optional conversion of media an `<img>` cannot render (EMF/WMF metafiles, TIFF) into a
|
|
1756
|
-
* renderable raster. The returned bytes are untrusted and re-enter the full raster
|
|
1757
|
-
* validation path (sniff, header, pixel caps, decode) before they can become a ready
|
|
1758
|
-
* resource. A null return declines the format and keeps the labelled placeholder; so does
|
|
1759
|
-
* a throw, as `decode-failed`.
|
|
1760
|
-
*/
|
|
1761
|
-
convertPreserved?(bytes: Uint8Array, mime: PreservedImageMime, limits: ImageResourceLimits,
|
|
1762
|
-
/** Aborted when the owning lookup/session is disposed. */
|
|
1763
|
-
signal?: AbortSignal): Promise<Readonly<{
|
|
1764
|
-
bytes: Uint8Array;
|
|
1765
|
-
mime: SupportedImageMime;
|
|
1766
|
-
}> | null>;
|
|
1767
|
-
}
|
|
1768
|
-
/** Resolves a relationship id to a validated image resource, or reports why it could not. */
|
|
1769
|
-
interface ImageResourceLookup {
|
|
1770
|
-
readonly resolveEmbedded: (ownerPartName: string, relationshipId: string) => Promise<ImageResourceState>;
|
|
1771
|
-
readonly resolveLinked: (ownerPartName: string, relationshipId: string) => ImageResourceState;
|
|
1772
|
-
readonly resolveForProjection: (projection: DrawingProjection) => Promise<ImageResourceState>;
|
|
1773
|
-
readonly liveReferenceCount: (partName: string) => number;
|
|
1774
|
-
readonly dispose: () => void;
|
|
1775
|
-
}
|
|
1776
|
-
/** Maximum prefix inspected for SVG root detection (exported for bounded-scan tests). */
|
|
1777
|
-
declare const MAX_SVG_SNIFF_BYTES = 512;
|
|
1778
|
-
/** A raster header that passed structural validation: its real MIME type and pixel extent. */
|
|
1779
|
-
interface ValidatedRasterHeader {
|
|
1780
|
-
readonly pixelWidth: number;
|
|
1781
|
-
readonly pixelHeight: number;
|
|
1782
|
-
/** Horizontal physical density when bounded header metadata supplies it. */
|
|
1783
|
-
readonly dpiX?: number;
|
|
1784
|
-
/** Vertical physical density when bounded header metadata supplies it. */
|
|
1785
|
-
readonly dpiY?: number;
|
|
1786
|
-
}
|
|
1787
|
-
/** Bounded scan for an `<svg` document root (optional `<?xml` prolog only). */
|
|
1788
|
-
declare function hasBoundedSvgRoot(bytes: Uint8Array): boolean;
|
|
1789
|
-
/** Signature sniffing — authoritative over declared content type. */
|
|
1790
|
-
declare function sniffImageMime(bytes: Uint8Array): RenderableImageMime | PreservedImageMime | 'unknown';
|
|
1791
|
-
/** Structural PNG IHDR validation before decode. */
|
|
1792
|
-
declare function validatePngHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1793
|
-
/** Structural GIF logical screen descriptor validation before decode. */
|
|
1794
|
-
declare function validateGifHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1795
|
-
/** Bounded JPEG marker scan through the first supported SOF marker. */
|
|
1796
|
-
declare function validateJpegHeader(bytes: Uint8Array): ValidatedRasterHeader | null;
|
|
1797
|
-
/**
|
|
1798
|
-
* Intrinsic size of an SVG, resolved the way a browser sizes one: absolute `width`/`height`
|
|
1799
|
-
* first, then `viewBox` for the missing axis or ratio, then the CSS 300x150 default.
|
|
1800
|
-
*
|
|
1801
|
-
* This is metadata for insert and reset-to-natural-size only. Layout uses the authored
|
|
1802
|
-
* `wp:extent` and the browser rasterizes into that box, so nothing here sizes an allocation
|
|
1803
|
-
* and an out-of-range value is clamped rather than refused.
|
|
1804
|
-
*/
|
|
1805
|
-
declare function resolveSvgIntrinsicSize(bytes: Uint8Array, limits: ImageResourceLimits): ValidatedRasterHeader | null;
|
|
1806
|
-
/**
|
|
1807
|
-
* Validate a raster image's header structurally and report its real MIME type and extent.
|
|
1808
|
-
*
|
|
1809
|
-
* Content type is a CLAIM; this is what makes it a fact. A file declaring `image/png` over JPEG
|
|
1810
|
-
* bytes is caught here rather than at decode.
|
|
1811
|
-
*/
|
|
1812
|
-
declare function validateRasterHeader(bytes: Uint8Array, mime: SupportedImageMime): ValidatedRasterHeader | null;
|
|
1813
|
-
/** Package-wide live drawing references to a media part name. */
|
|
1814
|
-
declare function liveDrawingReferenceCount(pkg: OoxmlPackage, partName: string): number;
|
|
1815
|
-
/** How the image cache decodes, and what it will spend doing so. */
|
|
1816
|
-
interface CreateImageResourceCacheOptions {
|
|
1817
|
-
readonly limits?: Partial<ImageResourceLimits>;
|
|
1818
|
-
readonly decodePort: ImageDecodePort;
|
|
1819
|
-
}
|
|
1820
|
-
/**
|
|
1821
|
-
* Derived cache for one immutable package snapshot. Registry identity is
|
|
1822
|
-
* `(package snapshot, decodePort object, normalized limits)` — the first caller
|
|
1823
|
-
* never imposes its decoder or limits on later callers with different options.
|
|
1824
|
-
*/
|
|
1825
|
-
declare function imageResourceLookupFor(pkg: OoxmlPackage, options: CreateImageResourceCacheOptions): ImageResourceLookup;
|
|
1826
|
-
/** @deprecated Prefer {@link imageResourceLookupFor} — registry binds cache to package identity. */
|
|
1827
|
-
/** Build the per-document image cache. Validated bytes only; refusals are remembered too. */
|
|
1828
|
-
declare function createImageResourceCache(initialPkg: OoxmlPackage, options: CreateImageResourceCacheOptions): ImageResourceLookup;
|
|
1829
|
-
|
|
1830
2272
|
/** Caps applied while loading a package: zip, XML, part count and relationship count. */
|
|
1831
2273
|
interface OoxmlPackageLimits {
|
|
1832
2274
|
readonly zip?: ZipLimits;
|
|
@@ -2933,13 +3375,25 @@ interface RevisionBatchEntry {
|
|
|
2933
3375
|
/** Why a requested decision remains pending. @public */
|
|
2934
3376
|
type RevisionBatchSkipReason = 'unsupported-revision' | 'incomplete-group' | 'retained-structure' | 'unknown-revision';
|
|
2935
3377
|
/**
|
|
2936
|
-
*
|
|
2937
|
-
*
|
|
2938
|
-
*
|
|
3378
|
+
* The structure behind a skip.
|
|
3379
|
+
*
|
|
3380
|
+
* For `unsupported-revision`: a refused site, a formatting change whose earlier properties were
|
|
3381
|
+
* not recorded so it cannot be rejected, a read-only review item, a change with no sites, a
|
|
3382
|
+
* change a content control lock keeps (`locked-content`), or a change in a data-bound content
|
|
3383
|
+
* control (`bound-content`). The last two have their own codes, `review.locked-content` and
|
|
3384
|
+
* `review.bound-content`; `reviewCodeOfSkip` reads them.
|
|
3385
|
+
*
|
|
3386
|
+
* For `incomplete-group`, the change the decision would also decide: the other half of a move or
|
|
3387
|
+
* merge (`paired-change`), a change inside content the decision removes (`removed-content`) or
|
|
3388
|
+
* inside properties a reject replaces (`replaced-properties`), a change the decision would empty
|
|
3389
|
+
* (`emptied-change`), a change that encloses the selected one (`enclosing-change`), or another
|
|
3390
|
+
* site of a group the planner keeps together (`grouped-change`).
|
|
3391
|
+
*
|
|
3392
|
+
* For `retained-structure`: a row kept for the table nested in it (`nested-table`).
|
|
2939
3393
|
*
|
|
2940
3394
|
* @public
|
|
2941
3395
|
*/
|
|
2942
|
-
type RevisionBatchSkipDetail = RevisionSiteRefusal | 'unrecorded-properties' | 'read-only' | 'no-sites';
|
|
3396
|
+
type RevisionBatchSkipDetail = RevisionSiteRefusal | 'unrecorded-properties' | 'read-only' | 'no-sites' | 'paired-change' | 'removed-content' | 'replaced-properties' | 'emptied-change' | 'enclosing-change' | 'grouped-change' | 'nested-table' | 'locked-content' | 'bound-content';
|
|
2943
3397
|
/** Outcome of one selected-set decision. Counts refer to review decisions, not XML markers. @public */
|
|
2944
3398
|
interface RevisionBatchResult {
|
|
2945
3399
|
readonly resolved: readonly RevisionBatchEntry[];
|
|
@@ -2947,7 +3401,10 @@ interface RevisionBatchResult {
|
|
|
2947
3401
|
readonly key: string;
|
|
2948
3402
|
readonly reason: RevisionBatchSkipReason;
|
|
2949
3403
|
readonly revision?: RevisionBatchEntry;
|
|
2950
|
-
/**
|
|
3404
|
+
/**
|
|
3405
|
+
* The condition or structure behind the skip, such as `locked-content` or `paired-change`.
|
|
3406
|
+
* `reviewCodeOfSkip` turns the reason and the detail into one review code.
|
|
3407
|
+
*/
|
|
2951
3408
|
readonly detail?: RevisionBatchSkipDetail;
|
|
2952
3409
|
}[];
|
|
2953
3410
|
/** All pending decisions in the addressed scope, including excluded and unsupported changes. */
|
|
@@ -2964,9 +3421,16 @@ interface RevisionBatchResult {
|
|
|
2964
3421
|
*/
|
|
2965
3422
|
declare function planRevisionBatch(part: OoxmlPart, action: 'accept' | 'reject', keys?: readonly string[], scopeRoot?: OoxmlNode, options?: {
|
|
2966
3423
|
readonly countRemaining?: boolean;
|
|
3424
|
+
/**
|
|
3425
|
+
* A decision on these changes themselves, not a filtered selection: the other half of a
|
|
3426
|
+
* selected move resolves with it, and changes inside content it removes go along.
|
|
3427
|
+
*/
|
|
3428
|
+
readonly explicit?: boolean;
|
|
2967
3429
|
}): {
|
|
2968
3430
|
ops: readonly TreeDocOp[];
|
|
2969
3431
|
result: RevisionBatchResult;
|
|
3432
|
+
/** Keys of unselected changes the decision removes with their content. Explicit only. */
|
|
3433
|
+
swept?: readonly string[];
|
|
2970
3434
|
};
|
|
2971
3435
|
|
|
2972
3436
|
/** Why a requested change keeps its attribution. @public */
|
|
@@ -4751,6 +5215,8 @@ type TreeOpRejection = 'unknown-op' | 'unknown-paragraph' | 'not-a-paragraph' |
|
|
|
4751
5215
|
| 'unknown-drawing'
|
|
4752
5216
|
/** The drawing's graphic payload is not a supported picture. */
|
|
4753
5217
|
| 'not-a-picture-drawing'
|
|
5218
|
+
/** A chart in any state: only a delete applies, and it removes the whole chart. */
|
|
5219
|
+
| 'chart-drawing'
|
|
4754
5220
|
/** A lock flag or `@locked` forbids this mutation. */
|
|
4755
5221
|
| 'drawing-locked'
|
|
4756
5222
|
/** Finite EMU extent, crop, or position value is out of range. */
|
|
@@ -4778,5 +5244,5 @@ type TreeOpResult = {
|
|
|
4778
5244
|
readonly detail?: string;
|
|
4779
5245
|
};
|
|
4780
5246
|
|
|
4781
|
-
export {
|
|
4782
|
-
export type { Table as $, ParagraphDisagreements as A, Block as B, CommentRecord as C, DocxDocument as D, ExecResult as E, ParagraphFlags as F, ParagraphTabStop as G, HeaderFooterSet as H, InsertableContentControlType as I, RevisionAuthorEntry as J, RevisionAuthorResult as K, RevisionAuthorSkipReason as L, RevisionBatchEntry as M, NumberingRef as N, OoxmlPart as O, PageMargins as P, RevisionBatchResult as Q, ReviewModelInput as R, StyleDefinitions as S, RevisionBatchSkipDetail as T, RevisionBatchSkipReason as U, RevisionSiteRefusal as V, RevisionType as W, Run as X, Section as Y, SectionProperties as Z, StyleDefinition as _, ReviewItem as a, TableCell as a0, TableRow as a1, Theme as a2, ThemeColorScheme as a3, OoxmlNode as a4, OoxmlPackage as a5, DocxDocumentJSON as a6, DrawingHorizontalReferenceFrame as a7, DrawingKind as a8, DrawingLocks as a9,
|
|
5247
|
+
export { DEFAULT_ZIP_LIMITS as b$, DEFAULT_IMAGE_RESOURCE_LIMITS as b6, IMAGE_WRAP_TARGETS as b7, TEXT_FORM_FORMATS as b8, resolveImageResourceLimits as b9, CHART_GRAPHIC_DATA_URI as bA, CHART_NAMESPACE_URI as bB, CHART_STYLE_NAMESPACE_URI as bC, CONTENT_CONTROL_ID_MAX as bD, CONTENT_CONTROL_PROPERTY_ORDER as bE, DEFAULT_LIMITS as bZ, DEFAULT_OOXML_PACKAGE_LIMITS as b_, resolveSvgIntrinsicSize as ba, sniffImageMime as bb, validateRasterHeader as bc, ACCEPTED_PARAGRAPH_PROPERTIES as bv, ACCEPTED_RUN_PROPERTIES as bw, CHARTEX_GRAPHIC_DATA_URI as by, CHARTEX_NAMESPACE_URI as bz, DIAGRAM_NAMESPACE_URI as c0, DRAWINGML_MAIN_NAMESPACE_URI as c1, HARD_CEILINGS as c7, HYPERLINK_RELATIONSHIP_TYPE as c8, IMAGE_RELATIONSHIP_TYPE as cb, IMAGE_RESOURCE_HARD_CEILINGS as cc, MAX_CONTENT_CONTROLS_PER_PART as cn, MAX_CONTENT_CONTROL_NESTING as co, MAX_SVG_SNIFF_BYTES as cp, OFFICE_RELATIONSHIP_NAMESPACE_URI as cs, OOXML_NODE_IDENTITY_RULES as ct, hasBoundedSvgRoot as d$, allocateContentControlId as dC, asciiFold as dD, buildContentTypeIndex as dE, buildRelationshipSet as dF, childElements as dG, commentAnchorsOfStory as dH, commentsOfPart as dI, contentControlContentChildren as dJ, contentControlContentNodeOf as dK, contentControlEndPropertiesNodeOf as dL, contentControlLevelOf as dM, contentControlPropertiesNodeOf as dN, contentControlPropertiesOf as dO, contentControlTextOf as dP, contentControlsIn as dQ, createImageResourceCache as dR, detectDuplicateNames as dS, directFill as dT, enclosedBookmarkDeletions as dU, extensionKey as dV, findContentControl as dW, findElement as dX, firstReviewRange as dY, flattenContentControls as dZ, hasAnyComment as d_, TABLE_BORDER_STYLES as dg, W15_NAMESPACE_URI as dr, WML_NAMESPACE_URI as ds, XMLNS_NAMESPACE_URI as dt, XML_NAMESPACE_URI as du, hyperlinkAnchorOf as e0, hyperlinkRelationshipIdOf as e1, hyperlinkTargetOf as e2, imageResourceLookupFor as e3, isContentControlContentNode as e4, isContentControlNode as e5, isContentControlWrapper as e6, isContentRevisionKind as e7, isElement as e8, isHyperlinkNode as e9, reviewItemRanges as eA, textContent as eB, textFormFieldsOf as eC, threadStateOfPart as eD, validateExternalTarget as eE, validateGifHeader as eF, validateJpegHeader as eG, validatePngHeader as eH, withPart as eI, withoutBookmarkInPart as eJ, writeOoxmlPackage as eK, writeZip as eL, activeReviewItem as eQ, reviewItemPositionRank as eR, reviewItemsAt as eS, reviewThreadRootOf as eT, isRangeMarkerKind as ea, isValidMime as eb, legacyCheckboxFieldsOf as ec, liveDrawingReferenceCount as ed, lockForbidsEdit as ee, lockForbidsRemoval as ef, normalizePartName as eg, orderedContentControlProperties as eh, parseContentControlId as ei, partNameKey as ej, planRevisionAuthorChange as ek, planRevisionBatch as el, projectDrawing as em, readOnOffChild as en, readOoxmlPackage as eo, readOoxmlPart as ep, readXml as eq, readZip as er, resolveColorNode as es, resolveContentControlLock as et, resolveContentType as eu, resolveImageRelationship as ev, resolveInternalTarget as ew, resolveLimits as ex, resolveRelationship as ey, reviewItemKey as ez };
|
|
5248
|
+
export type { Table as $, ParagraphDisagreements as A, Block as B, CommentRecord as C, DocxDocument as D, ExecResult as E, ParagraphFlags as F, ParagraphTabStop as G, HeaderFooterSet as H, InsertableContentControlType as I, RevisionAuthorEntry as J, RevisionAuthorResult as K, RevisionAuthorSkipReason as L, RevisionBatchEntry as M, NumberingRef as N, OoxmlPart as O, PageMargins as P, RevisionBatchResult as Q, ReviewModelInput as R, StyleDefinitions as S, RevisionBatchSkipDetail as T, RevisionBatchSkipReason as U, RevisionSiteRefusal as V, RevisionType as W, Run as X, Section as Y, SectionProperties as Z, StyleDefinition as _, ReviewItem as a, DrawingImageEffects as a$, TableCell as a0, TableRow as a1, Theme as a2, ThemeColorScheme as a3, OoxmlNode as a4, OoxmlPackage as a5, DocxDocumentJSON as a6, DrawingHorizontalReferenceFrame as a7, DrawingKind as a8, DrawingLocks as a9, OoxmlPackageRejection as aA, AutomationTableMutation as aB, OoxmlProperty as aC, OoxmlPackageResult as aD, RevisionAttributionInput as aE, TreeOpRejection as aF, OoxmlNodeId as aG, PackageWatermarkWrite as aH, OoxmlInvariantIssue as aI, DrawingTreeDocOp as aJ, ImpactClass as aK, OoxmlParagraphNode as aL, OoxmlNoteNode as aM, OoxmlContinuationSeparatorNode as aN, OoxmlEndnotesNode as aO, OoxmlFootnotesNode as aP, OoxmlNoteRefNode as aQ, OoxmlNoteReferenceNode as aR, OoxmlSeparatorNode as aS, SourceCrop as aT, TextFormFieldRange as aU, TextFormFieldOptions as aV, DrawingTransform as aW, TableBorderStyle as aX, TextboxOutlineProjection as aY, VectorShapeComponent as aZ, DrawingAccessibility as a_, DrawingPositionInput as aa, DrawingVerticalReferenceFrame as ab, FontDefinition as ac, ImageDecodePort as ad, ImageResourceLimits as ae, ImageResourceState as af, ImageWrapTarget as ag, ParagraphFormatCommand as ah, Point as ai, PreservedImageMime as aj, Rect as ak, RenderableImageMime as al, SelectionPin as am, SupportedImageMime as an, Unsubscribe as ao, ValidatedImageBytesHandle as ap, VectorImageMime as aq, Watermark as ar, WatermarkLayout as as, WatermarkState as at, TreeDocOp as au, OoxmlElement as av, OoxmlContentControlNode as aw, OoxmlGenericElementNode as ax, OoxmlContentControlContentNode as ay, OoxmlPackageLimits as az, ReviewRevisionItem as b, DrawingChartSummary as b0, VectorShapeProjection as b1, PictureFrameEffects as b2, DrawingProjection as b3, OoxmlDrawingNode as b4, TreeDocColorValue as b5, ChartPart as bF, ChartThemeFaces as bG, ChartexPart as bH, CommentAnchor as bI, CommentPosition as bJ, CommitTextFormFieldOp as bK, ContentControlCheckbox as bL, ContentControlCheckboxState as bM, ContentControlDataBinding as bN, ContentControlDateFormat as bO, ContentControlEntry as bP, ContentControlKind as bQ, ContentControlLevel as bR, ContentControlListItem as bS, ContentControlLock as bT, ContentControlProperties as bU, ContentTypeError as bV, ContentTypeIndex as bW, ContentTypeRecords as bX, CreateImageResourceCacheOptions as bY, OoxmlAttribute as bd, OoxmlInvariantResult as be, LegacyTextArtProjection as bf, ChartPartResolver as bg, ChartexPartResolver as bh, ShapeSchemeColorResolver as bi, ShapeEffectList as bj, GroupTextboxProjection as bk, MetafileImageMime as bl, OoxmlFldCharNode as bm, OoxmlFldSimpleNode as bn, OoxmlInstrTextNode as bo, TreeOpResult as bp, RelationshipRecord as bq, OoxmlHardBreakNode as br, ShapeColor as bs, ResourceLimits as bt, CommentThreadState as bu, BookmarkOpPosition as bx, ReviewCommentItem as c, OoxmlTabNode as c$, DefaultRecord as c2, DeleteBookmarkOp as c3, DeleteTextOp as c4, DiagramPartResolver as c5, DiagramParts as c6, HyperlinkKind as c9, OoxmlContentControlCheckedStateNode as cA, OoxmlContentControlComboBoxNode as cB, OoxmlContentControlDataBindingNode as cC, OoxmlContentControlDateFormatNode as cD, OoxmlContentControlDateNode as cE, OoxmlContentControlDropDownListNode as cF, OoxmlContentControlEndPropertiesNode as cG, OoxmlContentControlLidNode as cH, OoxmlContentControlListItemNode as cI, OoxmlContentControlPropertiesNode as cJ, OoxmlContentControlStoreMappedDataAsNode as cK, OoxmlContentControlTextNode as cL, OoxmlContentControlUncheckedStateNode as cM, OoxmlDocumentNode as cN, OoxmlExternalTarget as cO, OoxmlGenericExtensionAttribute as cP, OoxmlHyperlinkNode as cQ, OoxmlInvariantIssueCode as cR, OoxmlKnownNodeAttribute as cS, OoxmlNamespaceBinding as cT, OoxmlNodeIdentityRules as cU, OoxmlParagraphPropertiesNode as cV, OoxmlPartMetadata as cW, OoxmlReadRejection as cX, OoxmlReadResult as cY, OoxmlRunNode as cZ, OoxmlRunPropertiesNode as c_, HyperlinkTarget as ca, ImageRelationshipResolution as cd, ImageResourceLookup as ce, IndexResult as cf, InsertBookmarkOp as cg, InsertBuildingBlockOp as ch, InsertComplexFieldOp as ci, InsertEquationOp as cj, InsertPageFieldOp as ck, InsertTextOp as cl, LegacyCheckboxFieldRange as cm, NameRejection as cq, NameResult as cr, OoxmlBodyNode as cu, OoxmlBookmarkEndNode as cv, OoxmlBookmarkStartNode as cw, OoxmlContentControlCalendarNode as cx, OoxmlContentControlCheckboxNode as cy, OoxmlContentControlCheckedNode as cz, ReviewCustomItem as d, OoxmlTextElementNode as d0, OoxmlTextNode as d1, OoxmlWmlValAttribute as d2, OoxmlXmlSpaceAttribute as d3, OverrideRecord as d4, RelationshipError as d5, RelationshipSetResult as d6, RelationshipTargetResolver as d7, ResolveResult as d8, ResolvedRelationship as d9, ZipReadResult as dA, ZipRejection as dB, SetFieldResultOp as da, SetLegacyCheckboxOp as db, SetLegacyDropdownOp as dc, SetTextFormFieldDefaultOp as dd, ShapeReflection as de, ShapeShadow as df, TabStopWrite as dh, TargetMode as di, TextFormFieldType as dj, TextboxStoryProjection as dk, TreeDocOpKind as dl, TreeOpEffect as dm, ValidatedRasterHeader as dn, VectorGradient as dp, VectorPattern as dq, XmlLimits as dv, XmlNode as dw, XmlRejection as dx, XmlResult as dy, ZipLimits as dz, ReviewPosition as e, AffineMatrix as eM, DrawingChartPlotType as eN, DrawingChartShownAs as eO, GradientStop as eP, ReviewRange as f, ReviewRevisionKind as g, RevisionAddress as h, ContentControlType as i, DocTarget as j, RunFormatting as k, Extent as l, ContainerRef as m, ContentControlFilter as n, DocRange as o, Revision as p, DocComment as q, ColorValue as r, ContentControl as s, DocAnchor as t, DocAnchorRange as u, DocLocation as v, DocumentBody as w, ExecErrorCode as x, IndentFormatting as y, Paragraph as z };
|