@betteroffice/docx 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -8
- package/dist/chunk-24DL53QL.mjs +1 -0
- package/dist/chunk-5F6DLQZP.mjs +1 -0
- package/dist/chunk-BUZ2X5CT.mjs +16 -0
- package/dist/chunk-CTBUQRYQ.mjs +1 -0
- package/dist/{chunk-B4IR6YP4.mjs → chunk-GHEHBYQK.mjs} +1 -1
- package/dist/{chunk-NJHOPXZW.mjs → chunk-HLDJMU3R.mjs} +1 -1
- package/dist/chunk-HTDNSQ44.mjs +1 -0
- package/dist/{chunk-IFT6DUJX.mjs → chunk-LTVVQMHB.mjs} +1 -1
- package/dist/chunk-PI2I3TO5.mjs +57 -0
- package/dist/chunk-TMHG7OAZ.mjs +1 -0
- package/dist/chunk-VRGUAKOC.mjs +1 -0
- package/dist/collaboration/index.d.mts +32 -8
- package/dist/collaboration/index.mjs +1 -1
- package/dist/{content-MOZ6hKP4.d.mts → content-DrqzbIr7.d.mts} +582 -666
- package/dist/core.d.mts +7 -7
- package/dist/core.mjs +1 -1
- package/dist/{displayListQueries-BJlo7Jkz.d.mts → displayListQueries-DGDR-OWc.d.mts} +98 -50
- package/dist/docx/index.d.mts +5 -5
- package/dist/docx/index.mjs +1 -1
- package/dist/editor/index.d.mts +8 -8
- package/dist/{fontLoader-aSewHMKF.d.mts → fontLoader-DnixuYST.d.mts} +127 -2
- package/dist/{formatting-D1EPSaJP.d.mts → formatting-BqrFPeev.d.mts} +85 -203
- package/dist/{frameDelta-D965X8yK.d.mts → frameDelta-DMgR8n13.d.mts} +17 -10
- package/dist/generated/edit/docx_edit_bg.wasm +0 -0
- package/dist/generated/layout/docx_layout_bg.wasm +0 -0
- package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
- package/dist/generated/parse/docx_parse_bg.wasm +0 -0
- package/dist/{index-Dx4Z3lkz.d.mts → index-ImoMd0Ju.d.mts} +97 -67
- package/dist/layout/index.d.mts +40 -12
- package/dist/layout/index.mjs +1 -1
- package/dist/layout/pagination/index.d.mts +4 -4
- package/dist/layout/pagination/index.mjs +1 -1
- package/dist/layout/render/index.d.mts +33 -77
- package/dist/layout/render/index.mjs +1 -1
- package/dist/plugin-api/RenderedDomContext.d.mts +7 -7
- package/dist/plugin-api/index.d.mts +3 -3
- package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
- package/dist/{rustDisplayList-BRuZBqdL.d.mts → rustDisplayList-B9dQoLHI.d.mts} +79 -50
- package/dist/{rustMeasureSource-D1KsQvVC.d.mts → rustMeasureSource-C0EZB055.d.mts} +5 -2
- package/dist/{selectiveSave-CVoajSKE.d.mts → selectiveSave-CRh-_Y_C.d.mts} +3 -3
- package/dist/styles/index.d.mts +3 -3
- package/dist/{styles-Dn_o3Vo5.d.mts → styles-CMybYYHS.d.mts} +1 -1
- package/dist/types/content.d.mts +2 -2
- package/dist/types/document.d.mts +7 -7
- package/dist/{types-BfqUl2h_.d.mts → types-CXLxVF1t.d.mts} +27 -23
- package/dist/utils/comments.d.mts +2 -2
- package/dist/utils/index.d.mts +11 -13
- package/dist/utils/index.mjs +1 -1
- package/dist/utils/stylePreview.d.mts +2 -2
- package/dist/utils/units.d.mts +4 -34
- package/dist/utils/units.mjs +1 -1
- package/dist/wasm-CJHQHBDE.mjs +1 -0
- package/dist/wasm-T2CRCO7S.mjs +1 -0
- package/dist/wasm-edit.d.mts +524 -168
- package/dist/wasm-edit.mjs +1 -1
- package/dist/wasm-layout.d.mts +35 -28
- package/dist/wasm-layout.mjs +1 -1
- package/dist/wasm-opc.mjs +1 -1
- package/dist/wasm-parse.mjs +1 -1
- package/dist/yrs/index.d.mts +6 -6
- package/dist/yrs/index.mjs +1 -1
- package/dist/yrs/residentEngineWorker.mjs +1 -1
- package/package.json +19 -3
- package/dist/chunk-3UBMCDME.mjs +0 -1
- package/dist/chunk-AEQOEQJ7.mjs +0 -57
- package/dist/chunk-AZ52IWB6.mjs +0 -16
- package/dist/chunk-GGEGIQRK.mjs +0 -1
- package/dist/chunk-T4EZMUXM.mjs +0 -1
- package/dist/chunk-WON6K4FY.mjs +0 -1
- package/dist/chunk-Y7RUNRU2.mjs +0 -1
- package/dist/wasm-DO3BUV7C.mjs +0 -1
- package/dist/wasm-NWXX4H5G.mjs +0 -1
|
@@ -1,399 +1,213 @@
|
|
|
1
|
-
import { C as ColorValue,
|
|
1
|
+
import { C as ColorValue, y as ThemeColorSlot, a as ParagraphFormatting, b as TextFormatting, c as TableFormatting, d as TableRowFormatting, e as TableCellFormatting, B as BorderSpec, m as ShapeType, k as ShapeFill, l as ShapeOutline, D as ShapeTextBody$1, P as PresetGeometryPathCommand } from './formatting-BqrFPeev.mjs';
|
|
2
2
|
import { WrapType } from './docx/wrapTypes.mjs';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* types, and the pure a:-namespace parsers for gradients, line ends,
|
|
7
|
-
* transforms (a:xfrm), and preset geometry.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Shape types
|
|
12
|
-
*
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
type ShapeType = 'rect' | 'roundRect' | 'ellipse' | 'triangle' | 'rtTriangle' | 'parallelogram' | 'trapezoid' | 'pentagon' | 'hexagon' | 'heptagon' | 'octagon' | 'decagon' | 'dodecagon' | 'star4' | 'star5' | 'star6' | 'star7' | 'star8' | 'star10' | 'star12' | 'star16' | 'star24' | 'star32' | 'line' | 'straightConnector1' | 'bentConnector2' | 'bentConnector3' | 'bentConnector4' | 'bentConnector5' | 'curvedConnector2' | 'curvedConnector3' | 'curvedConnector4' | 'curvedConnector5' | 'rightArrow' | 'leftArrow' | 'upArrow' | 'downArrow' | 'leftRightArrow' | 'upDownArrow' | 'quadArrow' | 'leftRightUpArrow' | 'bentArrow' | 'uturnArrow' | 'leftUpArrow' | 'bentUpArrow' | 'curvedRightArrow' | 'curvedLeftArrow' | 'curvedUpArrow' | 'curvedDownArrow' | 'stripedRightArrow' | 'notchedRightArrow' | 'homePlate' | 'chevron' | 'rightArrowCallout' | 'downArrowCallout' | 'leftArrowCallout' | 'upArrowCallout' | 'leftRightArrowCallout' | 'quadArrowCallout' | 'circularArrow' | 'flowChartProcess' | 'flowChartAlternateProcess' | 'flowChartDecision' | 'flowChartInputOutput' | 'flowChartPredefinedProcess' | 'flowChartInternalStorage' | 'flowChartDocument' | 'flowChartMultidocument' | 'flowChartTerminator' | 'flowChartPreparation' | 'flowChartManualInput' | 'flowChartManualOperation' | 'flowChartConnector' | 'flowChartOffpageConnector' | 'flowChartPunchedCard' | 'flowChartPunchedTape' | 'flowChartSummingJunction' | 'flowChartOr' | 'flowChartCollate' | 'flowChartSort' | 'flowChartExtract' | 'flowChartMerge' | 'flowChartOnlineStorage' | 'flowChartDelay' | 'flowChartMagneticTape' | 'flowChartMagneticDisk' | 'flowChartMagneticDrum' | 'flowChartDisplay' | 'wedgeRectCallout' | 'wedgeRoundRectCallout' | 'wedgeEllipseCallout' | 'cloudCallout' | 'borderCallout1' | 'borderCallout2' | 'borderCallout3' | 'accentCallout1' | 'accentCallout2' | 'accentCallout3' | 'callout1' | 'callout2' | 'callout3' | 'accentBorderCallout1' | 'accentBorderCallout2' | 'accentBorderCallout3' | 'actionButtonBlank' | 'actionButtonHome' | 'actionButtonHelp' | 'actionButtonInformation' | 'actionButtonBackPrevious' | 'actionButtonForwardNext' | 'actionButtonBeginning' | 'actionButtonEnd' | 'actionButtonReturn' | 'actionButtonDocument' | 'actionButtonSound' | 'actionButtonMovie' | 'irregularSeal1' | 'irregularSeal2' | 'frame' | 'halfFrame' | 'corner' | 'diagStripe' | 'chord' | 'arc' | 'bracketPair' | 'bracePair' | 'leftBracket' | 'rightBracket' | 'leftBrace' | 'rightBrace' | 'can' | 'cube' | 'bevel' | 'donut' | 'noSmoking' | 'blockArc' | 'foldedCorner' | 'smileyFace' | 'heart' | 'lightningBolt' | 'sun' | 'moon' | 'cloud' | 'snip1Rect' | 'snip2SameRect' | 'snip2DiagRect' | 'snipRoundRect' | 'round1Rect' | 'round2SameRect' | 'round2DiagRect' | 'plaque' | 'teardrop' | 'mathPlus' | 'mathMinus' | 'mathMultiply' | 'mathDivide' | 'mathEqual' | 'mathNotEqual' | 'gear6' | 'gear9' | 'funnel' | 'pieWedge' | 'pie' | 'leftCircularArrow' | 'leftRightCircularArrow' | 'swooshArrow' | 'textBox';
|
|
16
|
-
/**
|
|
17
|
-
* Shape fill type
|
|
18
|
-
*
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
interface ShapeFill {
|
|
22
|
-
type: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture';
|
|
23
|
-
/** Solid fill color */
|
|
4
|
+
interface ShapeFillPaint {
|
|
5
|
+
kind?: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture' | 'theme';
|
|
24
6
|
color?: ColorValue;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
7
|
+
themeColor?: ThemeColorSlot;
|
|
8
|
+
gradientType?: 'linear' | 'path' | 'radial' | 'rectangular';
|
|
9
|
+
angle?: number;
|
|
10
|
+
stops?: Array<{
|
|
11
|
+
position?: number;
|
|
12
|
+
color?: ColorValue;
|
|
13
|
+
}>;
|
|
14
|
+
pathShape?: 'circle' | 'rect' | 'shape';
|
|
15
|
+
focusRect?: {
|
|
16
|
+
left?: number;
|
|
17
|
+
top?: number;
|
|
18
|
+
right?: number;
|
|
19
|
+
bottom?: number;
|
|
20
|
+
};
|
|
21
|
+
rotateWithShape?: boolean;
|
|
22
|
+
patternPreset?: string;
|
|
23
|
+
foregroundColor?: ColorValue;
|
|
24
|
+
backgroundColor?: ColorValue;
|
|
25
|
+
picture?: Image;
|
|
26
|
+
themeRefIndex?: number;
|
|
27
|
+
srcRect?: {
|
|
28
|
+
left?: number;
|
|
29
|
+
top?: number;
|
|
30
|
+
right?: number;
|
|
31
|
+
bottom?: number;
|
|
32
|
+
};
|
|
33
|
+
fillMode?: 'stretch' | 'tile';
|
|
34
|
+
tile?: {
|
|
35
|
+
offsetX?: number;
|
|
36
|
+
offsetY?: number;
|
|
37
|
+
scaleX?: number;
|
|
38
|
+
scaleY?: number;
|
|
39
|
+
alignment?: string;
|
|
40
|
+
flip?: 'none' | 'x' | 'y' | 'xy';
|
|
41
|
+
};
|
|
42
|
+
stretchRect?: {
|
|
43
|
+
left?: number;
|
|
44
|
+
top?: number;
|
|
45
|
+
right?: number;
|
|
46
|
+
bottom?: number;
|
|
33
47
|
};
|
|
48
|
+
pictureOpacity?: number;
|
|
34
49
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
* @public
|
|
39
|
-
*/
|
|
40
|
-
interface ShapeOutline {
|
|
41
|
-
/** Line width in EMUs */
|
|
50
|
+
interface ShapeStrokePaint {
|
|
51
|
+
fill?: ShapeFillPaint;
|
|
42
52
|
width?: number;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/** Line cap */
|
|
53
|
+
dash?: string;
|
|
54
|
+
customDash?: number[];
|
|
55
|
+
compound?: 'single' | 'double' | 'thickThin' | 'thinThick' | 'triple';
|
|
56
|
+
alignment?: 'center' | 'inset';
|
|
48
57
|
cap?: 'flat' | 'round' | 'square';
|
|
49
|
-
/** Line join */
|
|
50
58
|
join?: 'bevel' | 'miter' | 'round';
|
|
51
|
-
|
|
59
|
+
miterLimit?: number;
|
|
52
60
|
headEnd?: {
|
|
53
|
-
type
|
|
54
|
-
width?:
|
|
55
|
-
length?:
|
|
61
|
+
type?: string;
|
|
62
|
+
width?: string;
|
|
63
|
+
length?: string;
|
|
56
64
|
};
|
|
57
|
-
/** Tail arrow */
|
|
58
65
|
tailEnd?: {
|
|
59
|
-
type
|
|
60
|
-
width?:
|
|
61
|
-
length?:
|
|
66
|
+
type?: string;
|
|
67
|
+
width?: string;
|
|
68
|
+
length?: string;
|
|
62
69
|
};
|
|
70
|
+
themeRefIndex?: number;
|
|
63
71
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
interface ShapeEffect {
|
|
73
|
+
kind?: 'shadow' | 'glow' | 'reflection' | 'softEdge' | 'blur' | 'unknown';
|
|
74
|
+
color?: ColorValue;
|
|
75
|
+
opacity?: number;
|
|
76
|
+
blurRadius?: number;
|
|
77
|
+
distance?: number;
|
|
78
|
+
direction?: number;
|
|
79
|
+
size?: number;
|
|
80
|
+
rawName?: string;
|
|
81
|
+
}
|
|
82
|
+
interface ShapeTextBodyProperties {
|
|
83
|
+
vertical?: 'horizontal' | 'vertical' | 'vertical270' | 'wordArtVertical' | 'eastAsianVertical' | 'mongolianVertical';
|
|
76
84
|
rotation?: number;
|
|
77
|
-
|
|
85
|
+
upright?: boolean;
|
|
78
86
|
anchor?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
|
|
79
|
-
/** Anchor center */
|
|
80
87
|
anchorCenter?: boolean;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
columns?: number;
|
|
89
|
+
columnSpacing?: number;
|
|
90
|
+
wrap?: 'square' | 'none';
|
|
91
|
+
horizontalOverflow?: 'clip' | 'overflow';
|
|
92
|
+
verticalOverflow?: 'clip' | 'ellipsis' | 'overflow';
|
|
84
93
|
margins?: {
|
|
85
94
|
top?: number;
|
|
86
95
|
bottom?: number;
|
|
87
96
|
left?: number;
|
|
88
97
|
right?: number;
|
|
89
98
|
};
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
autoFit?: 'none' | 'normal' | 'shape';
|
|
100
|
+
fontScale?: number;
|
|
101
|
+
lineSpacingReduction?: number;
|
|
102
|
+
fromWordArt?: boolean;
|
|
103
|
+
presetTextWarp?: string;
|
|
104
|
+
}
|
|
105
|
+
interface DrawingSceneNode {
|
|
106
|
+
kind?: 'shape' | 'group' | 'canvas' | 'picture' | 'chart' | 'graphicFrame' | 'contentPart';
|
|
107
|
+
id?: string;
|
|
108
|
+
name?: string;
|
|
109
|
+
shape?: Shape;
|
|
110
|
+
image?: Image;
|
|
111
|
+
chart?: Chart;
|
|
112
|
+
children?: DrawingSceneNode[];
|
|
113
|
+
transform?: {
|
|
114
|
+
offsetX?: number;
|
|
115
|
+
offsetY?: number;
|
|
116
|
+
width?: number;
|
|
117
|
+
height?: number;
|
|
118
|
+
childOffsetX?: number;
|
|
119
|
+
childOffsetY?: number;
|
|
120
|
+
childWidth?: number;
|
|
121
|
+
childHeight?: number;
|
|
122
|
+
rotation?: number;
|
|
123
|
+
flipH?: boolean;
|
|
124
|
+
flipV?: boolean;
|
|
125
|
+
};
|
|
126
|
+
fill?: ShapeFillPaint;
|
|
127
|
+
effects?: ShapeEffect[];
|
|
128
|
+
relationshipId?: string;
|
|
129
|
+
}
|
|
130
|
+
interface DrawingScene {
|
|
131
|
+
version?: number;
|
|
132
|
+
root?: DrawingSceneNode;
|
|
133
|
+
title?: string;
|
|
134
|
+
description?: string;
|
|
135
|
+
decorative?: boolean;
|
|
136
|
+
hidden?: boolean;
|
|
92
137
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Normalized DrawingML preset-geometry path command.
|
|
95
|
-
*
|
|
96
|
-
* Coordinates are shape-local fractions in the `[0, 1]` box. Consumers scale
|
|
97
|
-
* `x/y` and control points by the shape's resolved width/height.
|
|
98
|
-
*
|
|
99
|
-
* @public
|
|
100
|
-
*/
|
|
101
|
-
type PresetGeometryPathCommand = {
|
|
102
|
-
type: 'move';
|
|
103
|
-
x: number;
|
|
104
|
-
y: number;
|
|
105
|
-
} | {
|
|
106
|
-
type: 'line';
|
|
107
|
-
x: number;
|
|
108
|
-
y: number;
|
|
109
|
-
} | {
|
|
110
|
-
type: 'quad';
|
|
111
|
-
cpx: number;
|
|
112
|
-
cpy: number;
|
|
113
|
-
x: number;
|
|
114
|
-
y: number;
|
|
115
|
-
} | {
|
|
116
|
-
type: 'cubic';
|
|
117
|
-
cp1x: number;
|
|
118
|
-
cp1y: number;
|
|
119
|
-
cp2x: number;
|
|
120
|
-
cp2y: number;
|
|
121
|
-
x: number;
|
|
122
|
-
y: number;
|
|
123
|
-
} | {
|
|
124
|
-
type: 'close';
|
|
125
|
-
};
|
|
126
138
|
|
|
127
139
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
140
|
+
* Lists & Numbering Types
|
|
141
|
+
*
|
|
142
|
+
* Types for bullet lists, numbered lists, and numbering definitions.
|
|
130
143
|
*/
|
|
131
144
|
|
|
132
|
-
/** One point in a `wp:wrapPolygon`, in the drawing's authored coordinates. */
|
|
133
|
-
interface ImageWrapPoint {
|
|
134
|
-
x?: number;
|
|
135
|
-
y?: number;
|
|
136
|
-
}
|
|
137
145
|
/**
|
|
138
|
-
*
|
|
146
|
+
* Number format type
|
|
139
147
|
*/
|
|
140
|
-
|
|
141
|
-
/** Width in EMUs (English Metric Units) */
|
|
142
|
-
width: number;
|
|
143
|
-
/** Height in EMUs */
|
|
144
|
-
height: number;
|
|
145
|
-
}
|
|
148
|
+
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
146
149
|
/**
|
|
147
|
-
*
|
|
150
|
+
* Multi-level suffix (what follows the number)
|
|
148
151
|
*/
|
|
149
|
-
|
|
150
|
-
type: WrapType;
|
|
151
|
-
/** Wrap text direction */
|
|
152
|
-
wrapText?: 'bothSides' | 'left' | 'right' | 'largest';
|
|
153
|
-
/** Distance from text */
|
|
154
|
-
distT?: number;
|
|
155
|
-
distB?: number;
|
|
156
|
-
distL?: number;
|
|
157
|
-
distR?: number;
|
|
158
|
-
/** Tight/through contour. Undefined = rectangular wrap. */
|
|
159
|
-
polygon?: ImageWrapPoint[];
|
|
160
|
-
}
|
|
152
|
+
type LevelSuffix = 'tab' | 'space' | 'nothing';
|
|
161
153
|
/**
|
|
162
|
-
*
|
|
154
|
+
* One indentation level of an abstract numbering definition (`w:lvl`).
|
|
155
|
+
* Carries the number format, the marker template (`lvlText` — e.g.
|
|
156
|
+
* `"%1.%2."`), the level's paragraph properties (indent, hanging) and
|
|
157
|
+
* character properties (font, size, color for the marker itself).
|
|
158
|
+
*
|
|
159
|
+
* `ilvl` ranges 0-8 in standard Word documents.
|
|
163
160
|
*/
|
|
164
|
-
interface
|
|
165
|
-
/**
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
posOffset?: number;
|
|
161
|
+
interface ListLevel {
|
|
162
|
+
/** Level index (0-8) */
|
|
163
|
+
ilvl: number;
|
|
164
|
+
/** Starting number */
|
|
165
|
+
start?: number;
|
|
166
|
+
/** Number format */
|
|
167
|
+
numFmt: NumberFormat;
|
|
168
|
+
/** Level text (e.g., "%1." or "•") */
|
|
169
|
+
lvlText: string;
|
|
170
|
+
/** Justification */
|
|
171
|
+
lvlJc?: 'left' | 'center' | 'right';
|
|
172
|
+
/** Suffix after number */
|
|
173
|
+
suffix?: LevelSuffix;
|
|
174
|
+
/** Paragraph properties for this level */
|
|
175
|
+
pPr?: ParagraphFormatting;
|
|
176
|
+
/** Run properties for the number/bullet */
|
|
177
|
+
rPr?: TextFormatting;
|
|
178
|
+
/** Restart numbering from higher level */
|
|
179
|
+
lvlRestart?: number;
|
|
180
|
+
/** Is legal numbering style */
|
|
181
|
+
isLgl?: boolean;
|
|
182
|
+
/** Legacy settings */
|
|
183
|
+
legacy?: {
|
|
184
|
+
legacy?: boolean;
|
|
185
|
+
legacySpace?: number;
|
|
186
|
+
legacyIndent?: number;
|
|
191
187
|
};
|
|
192
188
|
}
|
|
193
189
|
/**
|
|
194
|
-
*
|
|
190
|
+
* Abstract numbering definition (`w:abstractNum`) — the reusable template
|
|
191
|
+
* for a list: which `NumberFormat` at each indentation level, what
|
|
192
|
+
* marker text, what paragraph/character formatting. Multiple
|
|
193
|
+
* `NumberingInstance`s (`w:num`) can reference one abstract numbering
|
|
194
|
+
* to share the template while keeping independent counters.
|
|
195
|
+
*
|
|
196
|
+
* See ECMA-376 §17.9.
|
|
195
197
|
*/
|
|
196
|
-
interface
|
|
197
|
-
/**
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
offsetY?: number;
|
|
210
|
-
}
|
|
211
|
-
/** One ordered DrawingML blip effect. Unknown effects stay named and inert. */
|
|
212
|
-
interface ImageEffect {
|
|
213
|
-
kind?: 'brightnessContrast' | 'saturation' | 'grayscale' | 'biLevel' | 'colorChange' | 'duotone' | 'alpha' | 'blur' | 'unknown';
|
|
214
|
-
amount?: number;
|
|
215
|
-
threshold?: number;
|
|
216
|
-
colors?: string[];
|
|
217
|
-
rawName?: string;
|
|
218
|
-
}
|
|
219
|
-
/** Safe hyperlink metadata attached to picture non-visual properties. */
|
|
220
|
-
interface ImageHyperlink {
|
|
221
|
-
href?: string;
|
|
222
|
-
tooltip?: string;
|
|
223
|
-
target?: string;
|
|
224
|
-
history?: boolean;
|
|
225
|
-
docLocation?: string;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Image padding/margins
|
|
229
|
-
*/
|
|
230
|
-
interface ImagePadding {
|
|
231
|
-
top?: number;
|
|
232
|
-
bottom?: number;
|
|
233
|
-
left?: number;
|
|
234
|
-
right?: number;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Image crop, expressed as fractions of the source image to trim from each
|
|
238
|
-
* edge. OOXML's `<a:srcRect l="10000" t="0" r="5000" b="0"/>` uses units of
|
|
239
|
-
* 1/100000 (so 10000 → 0.1 → 10% trimmed from the left). We store the
|
|
240
|
-
* normalised fraction so both the renderer and the saver can read it
|
|
241
|
-
* directly without re-parsing units.
|
|
242
|
-
*/
|
|
243
|
-
interface ImageCrop {
|
|
244
|
-
left?: number;
|
|
245
|
-
top?: number;
|
|
246
|
-
right?: number;
|
|
247
|
-
bottom?: number;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Embedded image (`w:drawing` with an inline or anchored picture). Carries
|
|
251
|
-
* the relationship-id pointer to the binary in `word/media/`, its
|
|
252
|
-
* resolved data URL (`src`), display dimensions, optional crop /
|
|
253
|
-
* transform / wrap behaviors, and anchor positioning for floating
|
|
254
|
-
* images.
|
|
255
|
-
*
|
|
256
|
-
* See ECMA-376 §20.4 (DrawingML wordprocessingDrawing).
|
|
257
|
-
*/
|
|
258
|
-
interface Image {
|
|
259
|
-
type: 'image';
|
|
260
|
-
/** Unique ID */
|
|
261
|
-
id?: string;
|
|
262
|
-
/** Relationship ID for the image data */
|
|
263
|
-
rId: string;
|
|
264
|
-
/** Resolved image data (base64 or blob URL) */
|
|
265
|
-
src?: string;
|
|
266
|
-
/** Image MIME type */
|
|
267
|
-
mimeType?: string;
|
|
268
|
-
/** Original filename */
|
|
269
|
-
filename?: string;
|
|
270
|
-
/** Alt text for accessibility */
|
|
271
|
-
alt?: string;
|
|
272
|
-
/** Title/description */
|
|
273
|
-
title?: string;
|
|
274
|
-
/** Image size */
|
|
275
|
-
size: ImageSize;
|
|
276
|
-
/** Original size before any transforms */
|
|
277
|
-
originalSize?: ImageSize;
|
|
278
|
-
/** Wrap settings */
|
|
279
|
-
wrap: ImageWrap;
|
|
280
|
-
/** Position for floating images */
|
|
281
|
-
position?: ImagePosition;
|
|
282
|
-
/** Image transformations */
|
|
283
|
-
transform?: ImageTransform;
|
|
284
|
-
/** Padding around image */
|
|
285
|
-
padding?: ImagePadding;
|
|
286
|
-
/** Source-image crop (fractional, OOXML `a:srcRect`). */
|
|
287
|
-
crop?: ImageCrop;
|
|
288
|
-
/** Opacity in [0, 1] (OOXML `a:alphaModFix amt`). Undefined = fully opaque. */
|
|
289
|
-
opacity?: number;
|
|
290
|
-
/** Whether this is a decorative image */
|
|
291
|
-
decorative?: boolean;
|
|
292
|
-
/**
|
|
293
|
-
* `wp:anchor layoutInCell` — when true (default), an anchored image inside
|
|
294
|
-
* a table cell is constrained to the cell. When false, the image escapes
|
|
295
|
-
* the cell into the page area. Round-tripped on save.
|
|
296
|
-
*/
|
|
297
|
-
layoutInCell?: boolean;
|
|
298
|
-
/**
|
|
299
|
-
* `wp:anchor allowOverlap` — when true (default), anchored objects may
|
|
300
|
-
* overlap; when false, Word repositions them to avoid collisions. We
|
|
301
|
-
* don't currently reposition; we round-trip the flag so saving preserves
|
|
302
|
-
* the author's intent.
|
|
303
|
-
*/
|
|
304
|
-
allowOverlap?: boolean;
|
|
305
|
-
/** Hyperlink URL for clickable image */
|
|
306
|
-
hlinkHref?: string;
|
|
307
|
-
/** Image outline/border */
|
|
308
|
-
outline?: ShapeOutline;
|
|
309
|
-
/** Image effects */
|
|
310
|
-
effects?: {
|
|
311
|
-
brightness?: number;
|
|
312
|
-
contrast?: number;
|
|
313
|
-
saturation?: number;
|
|
314
|
-
/** Ordered blip-effect list. Undefined = legacy scalar effects only. */
|
|
315
|
-
ordered?: ImageEffect[];
|
|
316
|
-
};
|
|
317
|
-
/** Rotated layout bbox. Undefined = use untransformed `size`. */
|
|
318
|
-
rotationBounds?: ImageRotationBounds;
|
|
319
|
-
/** Complete picture hyperlink metadata. Undefined = use `hlinkHref`. */
|
|
320
|
-
hyperlink?: ImageHyperlink;
|
|
321
|
-
/** Effect extents in EMUs. Undefined = no extra wrap/ink extent. */
|
|
322
|
-
effectExtent?: ImagePadding;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* Lists & Numbering Types
|
|
327
|
-
*
|
|
328
|
-
* Types for bullet lists, numbered lists, and numbering definitions.
|
|
329
|
-
*/
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Number format type
|
|
333
|
-
*/
|
|
334
|
-
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
335
|
-
/**
|
|
336
|
-
* Multi-level suffix (what follows the number)
|
|
337
|
-
*/
|
|
338
|
-
type LevelSuffix = 'tab' | 'space' | 'nothing';
|
|
339
|
-
/**
|
|
340
|
-
* One indentation level of an abstract numbering definition (`w:lvl`).
|
|
341
|
-
* Carries the number format, the marker template (`lvlText` — e.g.
|
|
342
|
-
* `"%1.%2."`), the level's paragraph properties (indent, hanging) and
|
|
343
|
-
* character properties (font, size, color for the marker itself).
|
|
344
|
-
*
|
|
345
|
-
* `ilvl` ranges 0-8 in standard Word documents.
|
|
346
|
-
*/
|
|
347
|
-
interface ListLevel {
|
|
348
|
-
/** Level index (0-8) */
|
|
349
|
-
ilvl: number;
|
|
350
|
-
/** Starting number */
|
|
351
|
-
start?: number;
|
|
352
|
-
/** Number format */
|
|
353
|
-
numFmt: NumberFormat;
|
|
354
|
-
/** Level text (e.g., "%1." or "•") */
|
|
355
|
-
lvlText: string;
|
|
356
|
-
/** Justification */
|
|
357
|
-
lvlJc?: 'left' | 'center' | 'right';
|
|
358
|
-
/** Suffix after number */
|
|
359
|
-
suffix?: LevelSuffix;
|
|
360
|
-
/** Paragraph properties for this level */
|
|
361
|
-
pPr?: ParagraphFormatting;
|
|
362
|
-
/** Run properties for the number/bullet */
|
|
363
|
-
rPr?: TextFormatting;
|
|
364
|
-
/** Restart numbering from higher level */
|
|
365
|
-
lvlRestart?: number;
|
|
366
|
-
/** Is legal numbering style */
|
|
367
|
-
isLgl?: boolean;
|
|
368
|
-
/** Legacy settings */
|
|
369
|
-
legacy?: {
|
|
370
|
-
legacy?: boolean;
|
|
371
|
-
legacySpace?: number;
|
|
372
|
-
legacyIndent?: number;
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Abstract numbering definition (`w:abstractNum`) — the reusable template
|
|
377
|
-
* for a list: which `NumberFormat` at each indentation level, what
|
|
378
|
-
* marker text, what paragraph/character formatting. Multiple
|
|
379
|
-
* `NumberingInstance`s (`w:num`) can reference one abstract numbering
|
|
380
|
-
* to share the template while keeping independent counters.
|
|
381
|
-
*
|
|
382
|
-
* See ECMA-376 §17.9.
|
|
383
|
-
*/
|
|
384
|
-
interface AbstractNumbering {
|
|
385
|
-
/** Abstract numbering ID */
|
|
386
|
-
abstractNumId: number;
|
|
387
|
-
/** Multi-level type */
|
|
388
|
-
multiLevelType?: 'hybridMultilevel' | 'multilevel' | 'singleLevel';
|
|
389
|
-
/** Numbering style link */
|
|
390
|
-
numStyleLink?: string;
|
|
391
|
-
/** Style link */
|
|
392
|
-
styleLink?: string;
|
|
393
|
-
/** Level definitions */
|
|
394
|
-
levels: ListLevel[];
|
|
395
|
-
/** Name */
|
|
396
|
-
name?: string;
|
|
198
|
+
interface AbstractNumbering {
|
|
199
|
+
/** Abstract numbering ID */
|
|
200
|
+
abstractNumId: number;
|
|
201
|
+
/** Multi-level type */
|
|
202
|
+
multiLevelType?: 'hybridMultilevel' | 'multilevel' | 'singleLevel';
|
|
203
|
+
/** Numbering style link */
|
|
204
|
+
numStyleLink?: string;
|
|
205
|
+
/** Style link */
|
|
206
|
+
styleLink?: string;
|
|
207
|
+
/** Level definitions */
|
|
208
|
+
levels: ListLevel[];
|
|
209
|
+
/** Name */
|
|
210
|
+
name?: string;
|
|
397
211
|
}
|
|
398
212
|
/**
|
|
399
213
|
* Numbering instance (w:num)
|
|
@@ -468,153 +282,42 @@ interface NumberingDefinitions {
|
|
|
468
282
|
}
|
|
469
283
|
|
|
470
284
|
/**
|
|
471
|
-
*
|
|
472
|
-
*
|
|
473
|
-
* This is intentionally normalized for display rather than lossless OOXML
|
|
474
|
-
* round-trip. Unsupported chart families stay in the original package parts.
|
|
285
|
+
* Math equations (`m:oMath`, `m:oMathPara`). OMML XML is round-tripped
|
|
286
|
+
* verbatim to preserve fidelity Word/Pages/Docs can disagree on.
|
|
475
287
|
*/
|
|
288
|
+
/**
|
|
289
|
+
* Math equation content (m:oMath or m:oMathPara)
|
|
290
|
+
*/
|
|
291
|
+
interface MathEquation {
|
|
292
|
+
type: 'mathEquation';
|
|
293
|
+
/** Whether this is a block (oMathPara) or inline (oMath) equation */
|
|
294
|
+
display: 'inline' | 'block';
|
|
295
|
+
/** Raw OMML XML for round-trip preservation */
|
|
296
|
+
ommlXml: string;
|
|
297
|
+
/** Plain text representation for accessibility/fallback */
|
|
298
|
+
plainText?: string;
|
|
299
|
+
}
|
|
476
300
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
index?: number;
|
|
498
|
-
order?: number;
|
|
499
|
-
categoryFormula?: string;
|
|
500
|
-
valueFormula?: string;
|
|
501
|
-
axisIds?: string[];
|
|
502
|
-
points?: ChartPoint[];
|
|
503
|
-
grouping?: ChartGrouping;
|
|
504
|
-
marker?: {
|
|
505
|
-
symbol?: string;
|
|
506
|
-
size?: number;
|
|
507
|
-
color?: string;
|
|
508
|
-
};
|
|
509
|
-
smooth?: boolean;
|
|
510
|
-
}
|
|
511
|
-
interface ChartAxis {
|
|
512
|
-
id?: string;
|
|
513
|
-
title?: string;
|
|
514
|
-
min?: number;
|
|
515
|
-
max?: number;
|
|
516
|
-
labels?: string[];
|
|
517
|
-
axisType?: 'category' | 'value' | 'date' | 'series';
|
|
518
|
-
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
519
|
-
crossAxisId?: string;
|
|
520
|
-
crosses?: 'autoZero' | 'min' | 'max' | 'value';
|
|
521
|
-
crossesAt?: number;
|
|
522
|
-
majorUnit?: number;
|
|
523
|
-
minorUnit?: number;
|
|
524
|
-
logarithmicBase?: number;
|
|
525
|
-
reversed?: boolean;
|
|
526
|
-
numberFormat?: string;
|
|
527
|
-
majorTickMark?: string;
|
|
528
|
-
minorTickMark?: string;
|
|
529
|
-
tickLabelPosition?: string;
|
|
530
|
-
hidden?: boolean;
|
|
531
|
-
}
|
|
532
|
-
/** One chart-family element inside `c:plotArea`. */
|
|
533
|
-
interface ChartPlotGroup {
|
|
534
|
-
chartType?: ChartType | 'area' | 'scatter' | 'radar' | 'stock' | 'bubble' | 'ofPie' | 'surface';
|
|
535
|
-
grouping?: ChartGrouping;
|
|
536
|
-
overlap?: number;
|
|
537
|
-
gapWidth?: number;
|
|
538
|
-
axisIds?: string[];
|
|
539
|
-
series?: ChartSeries[];
|
|
540
|
-
varyColors?: boolean;
|
|
541
|
-
firstSliceAngle?: number;
|
|
542
|
-
holeSize?: number;
|
|
543
|
-
showDataLabels?: boolean;
|
|
544
|
-
}
|
|
545
|
-
interface ChartLegend {
|
|
546
|
-
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
547
|
-
visible?: boolean;
|
|
548
|
-
}
|
|
549
|
-
interface Chart {
|
|
550
|
-
type: 'chart';
|
|
551
|
-
chartType: ChartType;
|
|
552
|
-
/** Relationship id used by the owning drawing part. */
|
|
553
|
-
rId?: string;
|
|
554
|
-
/** Normalized package path, e.g. word/charts/chart1.xml. */
|
|
555
|
-
path?: string;
|
|
556
|
-
title?: string;
|
|
557
|
-
legend?: ChartLegend;
|
|
558
|
-
series: ChartSeries[];
|
|
559
|
-
axes?: {
|
|
560
|
-
category?: ChartAxis;
|
|
561
|
-
value?: ChartAxis;
|
|
562
|
-
};
|
|
563
|
-
/** Drawing extent from wp:extent in EMUs. */
|
|
564
|
-
size?: ImageSize;
|
|
565
|
-
/** Wrap metadata from the containing drawing; v1 layout treats charts as inline blocks. */
|
|
566
|
-
wrap?: ImageWrap;
|
|
567
|
-
/** Floating anchor. Undefined = inline legacy behavior. */
|
|
568
|
-
position?: ImagePosition;
|
|
569
|
-
/** Multiple/combo plot groups. Undefined = synthesize one from legacy fields. */
|
|
570
|
-
plotGroups?: ChartPlotGroup[];
|
|
571
|
-
/** Complete axis collection keyed through plot-group `axisIds`. */
|
|
572
|
-
axisList?: ChartAxis[];
|
|
573
|
-
/** Chart accessibility description. */
|
|
574
|
-
description?: string;
|
|
575
|
-
/** Decorative flag. Undefined = false. */
|
|
576
|
-
decorative?: boolean;
|
|
577
|
-
/** Stable z-order for anchored charts. Undefined = source order. */
|
|
578
|
-
relativeHeight?: number;
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
/**
|
|
582
|
-
* Math equations (`m:oMath`, `m:oMathPara`). OMML XML is round-tripped
|
|
583
|
-
* verbatim to preserve fidelity Word/Pages/Docs can disagree on.
|
|
584
|
-
*/
|
|
585
|
-
/**
|
|
586
|
-
* Math equation content (m:oMath or m:oMathPara)
|
|
587
|
-
*/
|
|
588
|
-
interface MathEquation {
|
|
589
|
-
type: 'mathEquation';
|
|
590
|
-
/** Whether this is a block (oMathPara) or inline (oMath) equation */
|
|
591
|
-
display: 'inline' | 'block';
|
|
592
|
-
/** Raw OMML XML for round-trip preservation */
|
|
593
|
-
ommlXml: string;
|
|
594
|
-
/** Plain text representation for accessibility/fallback */
|
|
595
|
-
plainText?: string;
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
/**
|
|
599
|
-
* Tables (`w:tbl`), rows (`w:tr`), and cells (`w:tc`).
|
|
600
|
-
*/
|
|
601
|
-
|
|
602
|
-
/**
|
|
603
|
-
* Table cell (`w:tc`). Holds nested block content (paragraphs and nested
|
|
604
|
-
* tables), cell-level formatting (borders, shading, vertical merge),
|
|
605
|
-
* tracked property changes, and tracked structural changes for cell
|
|
606
|
-
* insert/delete/merge operations.
|
|
607
|
-
*/
|
|
608
|
-
interface TableCell {
|
|
609
|
-
type: 'tableCell';
|
|
610
|
-
/** Cell formatting */
|
|
611
|
-
formatting?: TableCellFormatting;
|
|
612
|
-
/** Cell-level tracked property changes (w:tcPrChange) */
|
|
613
|
-
propertyChanges?: TableCellPropertyChange[];
|
|
614
|
-
/** Tracked structural changes (cell insert/delete/merge) */
|
|
615
|
-
structuralChange?: TableStructuralChangeInfo;
|
|
616
|
-
/** Cell content (paragraphs, tables, etc.) */
|
|
617
|
-
content: (Paragraph | Table)[];
|
|
301
|
+
/**
|
|
302
|
+
* Tables (`w:tbl`), rows (`w:tr`), and cells (`w:tc`).
|
|
303
|
+
*/
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Table cell (`w:tc`). Holds nested block content (paragraphs and nested
|
|
307
|
+
* tables), cell-level formatting (borders, shading, vertical merge),
|
|
308
|
+
* tracked property changes, and tracked structural changes for cell
|
|
309
|
+
* insert/delete/merge operations.
|
|
310
|
+
*/
|
|
311
|
+
interface TableCell {
|
|
312
|
+
type: 'tableCell';
|
|
313
|
+
/** Cell formatting */
|
|
314
|
+
formatting?: TableCellFormatting;
|
|
315
|
+
/** Cell-level tracked property changes (w:tcPrChange) */
|
|
316
|
+
propertyChanges?: TableCellPropertyChange[];
|
|
317
|
+
/** Tracked structural changes (cell insert/delete/merge) */
|
|
318
|
+
structuralChange?: TableStructuralChangeInfo;
|
|
319
|
+
/** Cell content (paragraphs, tables, etc.) */
|
|
320
|
+
content: (Paragraph | Table)[];
|
|
618
321
|
}
|
|
619
322
|
/**
|
|
620
323
|
* Table row (`w:tr`) — an ordered list of `TableCell` plus row-level
|
|
@@ -666,8 +369,8 @@ interface Table {
|
|
|
666
369
|
* file, scaled, optionally "washed out" (lightened).
|
|
667
370
|
*
|
|
668
371
|
* We model the watermark as a dedicated field on the owning `HeaderFooter`
|
|
669
|
-
* rather than as editable run content, so it stays out of the
|
|
670
|
-
*
|
|
372
|
+
* rather than as editable run content, so it stays out of the text flow while
|
|
373
|
+
* still round-tripping through parse → render → serialize.
|
|
671
374
|
*/
|
|
672
375
|
/**
|
|
673
376
|
* Text watermark (e.g. "CONFIDENTIAL", "DRAFT").
|
|
@@ -837,16 +540,7 @@ interface Footnote {
|
|
|
837
540
|
* and stays editable on round-trip.
|
|
838
541
|
*/
|
|
839
542
|
content: BlockContent[];
|
|
840
|
-
/**
|
|
841
|
-
* Verbatim original XML of the entire `<w:footnote>` element, captured at
|
|
842
|
-
* parse time ONLY when the note body carries a block-level construct the
|
|
843
|
-
* model still can't represent — note-level bookmarks
|
|
844
|
-
* (`w:bookmarkStart`/`w:bookmarkEnd`) or `w:customXml`. Block-level `w:sdt`
|
|
845
|
-
* is NOT a trigger: it round-trips through the model as `BlockSdt`. When
|
|
846
|
-
* present the serializer re-emits these bytes instead of rebuilding from
|
|
847
|
-
* `content`, restoring pre-#646 fidelity for the unmodeled constructs.
|
|
848
|
-
* See `parseNoteBlockContent` / `serializeNote` for the gate (#646 F3).
|
|
849
|
-
*/
|
|
543
|
+
/** Verbatim note XML for unmodeled bookmarks or custom XML. */
|
|
850
544
|
verbatimXml?: string;
|
|
851
545
|
}
|
|
852
546
|
/**
|
|
@@ -864,7 +558,7 @@ interface Endnote {
|
|
|
864
558
|
* on `Footnote.content`.
|
|
865
559
|
*/
|
|
866
560
|
content: BlockContent[];
|
|
867
|
-
/** Verbatim
|
|
561
|
+
/** Verbatim note XML for unmodeled blocks. */
|
|
868
562
|
verbatimXml?: string;
|
|
869
563
|
}
|
|
870
564
|
|
|
@@ -1509,9 +1203,9 @@ interface TrackedChangeInfo {
|
|
|
1509
1203
|
date?: string;
|
|
1510
1204
|
}
|
|
1511
1205
|
/**
|
|
1512
|
-
* Tracked-change attribute triple as it appears on
|
|
1206
|
+
* Tracked-change attribute triple as it appears on node attrs
|
|
1513
1207
|
* (`paragraph.pPrIns`, `tableRow.trIns`, etc). Mirrors `TrackedChangeInfo`
|
|
1514
|
-
* but with a `null` date (
|
|
1208
|
+
* but with a `null` date (attr defaults) and a `revisionId` name that
|
|
1515
1209
|
* matches OOXML's `w:id` more idiomatically on the editor side.
|
|
1516
1210
|
*
|
|
1517
1211
|
* Round-trip pairs with `TrackedChangeInfo` via
|
|
@@ -1524,7 +1218,7 @@ interface RevisionInfo {
|
|
|
1524
1218
|
}
|
|
1525
1219
|
/**
|
|
1526
1220
|
* Tracked-cell marker — the OOXML `<w:cellIns>` / `<w:cellDel>` /
|
|
1527
|
-
* `<w:cellMerge>` shape attached to a `TableCell`
|
|
1221
|
+
* `<w:cellMerge>` shape attached to a `TableCell` node and surfaced
|
|
1528
1222
|
* to the layout model and painter for visual rendering.
|
|
1529
1223
|
*
|
|
1530
1224
|
* `kind` matches the OOXML element name (ins / del / merge).
|
|
@@ -1958,151 +1652,6 @@ interface Paragraph {
|
|
|
1958
1652
|
* Text body inside a shape (content typed as docx paragraphs)
|
|
1959
1653
|
*/
|
|
1960
1654
|
type ShapeTextBody = ShapeTextBody$1<Paragraph>;
|
|
1961
|
-
/** Detailed DrawingML paint server retained alongside the legacy shared fill. */
|
|
1962
|
-
interface ShapeFillPaint {
|
|
1963
|
-
kind?: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture' | 'theme';
|
|
1964
|
-
color?: ColorValue;
|
|
1965
|
-
themeColor?: ThemeColorSlot;
|
|
1966
|
-
gradientType?: 'linear' | 'path' | 'radial' | 'rectangular';
|
|
1967
|
-
angle?: number;
|
|
1968
|
-
stops?: Array<{
|
|
1969
|
-
position?: number;
|
|
1970
|
-
color?: ColorValue;
|
|
1971
|
-
}>;
|
|
1972
|
-
pathShape?: 'circle' | 'rect' | 'shape';
|
|
1973
|
-
focusRect?: {
|
|
1974
|
-
left?: number;
|
|
1975
|
-
top?: number;
|
|
1976
|
-
right?: number;
|
|
1977
|
-
bottom?: number;
|
|
1978
|
-
};
|
|
1979
|
-
rotateWithShape?: boolean;
|
|
1980
|
-
patternPreset?: string;
|
|
1981
|
-
foregroundColor?: ColorValue;
|
|
1982
|
-
backgroundColor?: ColorValue;
|
|
1983
|
-
picture?: Image;
|
|
1984
|
-
themeRefIndex?: number;
|
|
1985
|
-
/** Picture-fill source crop fractions (`a:srcRect`, 0..1; negative = outset). */
|
|
1986
|
-
srcRect?: {
|
|
1987
|
-
left?: number;
|
|
1988
|
-
top?: number;
|
|
1989
|
-
right?: number;
|
|
1990
|
-
bottom?: number;
|
|
1991
|
-
};
|
|
1992
|
-
/** Picture-fill mode: `a:stretch` (default) or `a:tile`. */
|
|
1993
|
-
fillMode?: 'stretch' | 'tile';
|
|
1994
|
-
/** Picture-fill tile parameters (`a:tile`). Offsets px, scales fractions. */
|
|
1995
|
-
tile?: {
|
|
1996
|
-
offsetX?: number;
|
|
1997
|
-
offsetY?: number;
|
|
1998
|
-
scaleX?: number;
|
|
1999
|
-
scaleY?: number;
|
|
2000
|
-
alignment?: string;
|
|
2001
|
-
flip?: 'none' | 'x' | 'y' | 'xy';
|
|
2002
|
-
};
|
|
2003
|
-
/** Picture-fill stretch target rect fractions (`a:stretch/a:fillRect`, 0..1). */
|
|
2004
|
-
stretchRect?: {
|
|
2005
|
-
left?: number;
|
|
2006
|
-
top?: number;
|
|
2007
|
-
right?: number;
|
|
2008
|
-
bottom?: number;
|
|
2009
|
-
};
|
|
2010
|
-
/** Picture-fill alpha 0..1 (`a:alphaModFix` on the blip). */
|
|
2011
|
-
pictureOpacity?: number;
|
|
2012
|
-
}
|
|
2013
|
-
/** Detailed DrawingML line contract, including arrows and compound/custom dash. */
|
|
2014
|
-
interface ShapeStrokePaint {
|
|
2015
|
-
fill?: ShapeFillPaint;
|
|
2016
|
-
width?: number;
|
|
2017
|
-
dash?: string;
|
|
2018
|
-
customDash?: number[];
|
|
2019
|
-
compound?: 'single' | 'double' | 'thickThin' | 'thinThick' | 'triple';
|
|
2020
|
-
alignment?: 'center' | 'inset';
|
|
2021
|
-
cap?: 'flat' | 'round' | 'square';
|
|
2022
|
-
join?: 'bevel' | 'miter' | 'round';
|
|
2023
|
-
miterLimit?: number;
|
|
2024
|
-
headEnd?: {
|
|
2025
|
-
type?: string;
|
|
2026
|
-
width?: string;
|
|
2027
|
-
length?: string;
|
|
2028
|
-
};
|
|
2029
|
-
tailEnd?: {
|
|
2030
|
-
type?: string;
|
|
2031
|
-
width?: string;
|
|
2032
|
-
length?: string;
|
|
2033
|
-
};
|
|
2034
|
-
themeRefIndex?: number;
|
|
2035
|
-
}
|
|
2036
|
-
/** Common 2-D shape effect. Missing parameters mean the OOXML default. */
|
|
2037
|
-
interface ShapeEffect {
|
|
2038
|
-
kind?: 'shadow' | 'glow' | 'reflection' | 'softEdge' | 'blur' | 'unknown';
|
|
2039
|
-
color?: ColorValue;
|
|
2040
|
-
opacity?: number;
|
|
2041
|
-
blurRadius?: number;
|
|
2042
|
-
distance?: number;
|
|
2043
|
-
direction?: number;
|
|
2044
|
-
size?: number;
|
|
2045
|
-
rawName?: string;
|
|
2046
|
-
}
|
|
2047
|
-
/** Full `a:bodyPr` projection used by text-body/autofit layout. */
|
|
2048
|
-
interface ShapeTextBodyProperties {
|
|
2049
|
-
vertical?: 'horizontal' | 'vertical' | 'vertical270' | 'wordArtVertical' | 'eastAsianVertical' | 'mongolianVertical';
|
|
2050
|
-
rotation?: number;
|
|
2051
|
-
upright?: boolean;
|
|
2052
|
-
anchor?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
|
|
2053
|
-
anchorCenter?: boolean;
|
|
2054
|
-
columns?: number;
|
|
2055
|
-
columnSpacing?: number;
|
|
2056
|
-
wrap?: 'square' | 'none';
|
|
2057
|
-
horizontalOverflow?: 'clip' | 'overflow';
|
|
2058
|
-
verticalOverflow?: 'clip' | 'ellipsis' | 'overflow';
|
|
2059
|
-
margins?: {
|
|
2060
|
-
top?: number;
|
|
2061
|
-
bottom?: number;
|
|
2062
|
-
left?: number;
|
|
2063
|
-
right?: number;
|
|
2064
|
-
};
|
|
2065
|
-
autoFit?: 'none' | 'normal' | 'shape';
|
|
2066
|
-
fontScale?: number;
|
|
2067
|
-
lineSpacingReduction?: number;
|
|
2068
|
-
fromWordArt?: boolean;
|
|
2069
|
-
presetTextWarp?: string;
|
|
2070
|
-
}
|
|
2071
|
-
/** Heterogeneous DrawingML group/canvas scene node. */
|
|
2072
|
-
interface DrawingSceneNode {
|
|
2073
|
-
kind?: 'shape' | 'group' | 'canvas' | 'picture' | 'chart' | 'graphicFrame' | 'contentPart';
|
|
2074
|
-
id?: string;
|
|
2075
|
-
name?: string;
|
|
2076
|
-
shape?: Shape;
|
|
2077
|
-
image?: Image;
|
|
2078
|
-
chart?: Chart;
|
|
2079
|
-
children?: DrawingSceneNode[];
|
|
2080
|
-
transform?: {
|
|
2081
|
-
offsetX?: number;
|
|
2082
|
-
offsetY?: number;
|
|
2083
|
-
width?: number;
|
|
2084
|
-
height?: number;
|
|
2085
|
-
childOffsetX?: number;
|
|
2086
|
-
childOffsetY?: number;
|
|
2087
|
-
childWidth?: number;
|
|
2088
|
-
childHeight?: number;
|
|
2089
|
-
rotation?: number;
|
|
2090
|
-
flipH?: boolean;
|
|
2091
|
-
flipV?: boolean;
|
|
2092
|
-
};
|
|
2093
|
-
fill?: ShapeFillPaint;
|
|
2094
|
-
effects?: ShapeEffect[];
|
|
2095
|
-
relationshipId?: string;
|
|
2096
|
-
}
|
|
2097
|
-
/** Versioned general DrawingML scene. Undefined version reads as legacy v0. */
|
|
2098
|
-
interface DrawingScene {
|
|
2099
|
-
version?: number;
|
|
2100
|
-
root?: DrawingSceneNode;
|
|
2101
|
-
title?: string;
|
|
2102
|
-
description?: string;
|
|
2103
|
-
decorative?: boolean;
|
|
2104
|
-
hidden?: boolean;
|
|
2105
|
-
}
|
|
2106
1655
|
/**
|
|
2107
1656
|
* Shape/drawing object (wps:wsp)
|
|
2108
1657
|
*/
|
|
@@ -2199,4 +1748,371 @@ interface TextBox {
|
|
|
2199
1748
|
bodyProperties?: ShapeTextBodyProperties;
|
|
2200
1749
|
}
|
|
2201
1750
|
|
|
2202
|
-
|
|
1751
|
+
/**
|
|
1752
|
+
* Embedded images (`w:drawing` → `pic:pic`): size, wrap, position,
|
|
1753
|
+
* transform, padding, crop.
|
|
1754
|
+
*/
|
|
1755
|
+
|
|
1756
|
+
/** One point in a `wp:wrapPolygon`, in the drawing's authored coordinates. */
|
|
1757
|
+
interface ImageWrapPoint {
|
|
1758
|
+
x?: number;
|
|
1759
|
+
y?: number;
|
|
1760
|
+
}
|
|
1761
|
+
/**
|
|
1762
|
+
* Image size specification
|
|
1763
|
+
*/
|
|
1764
|
+
interface ImageSize {
|
|
1765
|
+
/** Width in EMUs (English Metric Units) */
|
|
1766
|
+
width: number;
|
|
1767
|
+
/** Height in EMUs */
|
|
1768
|
+
height: number;
|
|
1769
|
+
}
|
|
1770
|
+
/**
|
|
1771
|
+
* Image wrap type for floating images
|
|
1772
|
+
*/
|
|
1773
|
+
interface ImageWrap {
|
|
1774
|
+
type: WrapType;
|
|
1775
|
+
/** Wrap text direction */
|
|
1776
|
+
wrapText?: 'bothSides' | 'left' | 'right' | 'largest';
|
|
1777
|
+
/** Distance from text */
|
|
1778
|
+
distT?: number;
|
|
1779
|
+
distB?: number;
|
|
1780
|
+
distL?: number;
|
|
1781
|
+
distR?: number;
|
|
1782
|
+
/** Tight/through contour. Undefined = rectangular wrap. */
|
|
1783
|
+
polygon?: ImageWrapPoint[];
|
|
1784
|
+
}
|
|
1785
|
+
/**
|
|
1786
|
+
* Position for floating images
|
|
1787
|
+
*/
|
|
1788
|
+
interface ImagePosition {
|
|
1789
|
+
/** Use `wp:simplePos` instead of positionH/V. Undefined = false. */
|
|
1790
|
+
useSimplePos?: boolean;
|
|
1791
|
+
/** `wp:simplePos` coordinates in EMUs. */
|
|
1792
|
+
simplePos?: {
|
|
1793
|
+
x?: number;
|
|
1794
|
+
y?: number;
|
|
1795
|
+
};
|
|
1796
|
+
/** Stable z-order (`wp:anchor/@relativeHeight`). Undefined = source order. */
|
|
1797
|
+
relativeHeight?: number;
|
|
1798
|
+
/** Behind-text plane (`wp:anchor/@behindDoc`). Undefined = false. */
|
|
1799
|
+
behindDoc?: boolean;
|
|
1800
|
+
/** Hidden drawing. Undefined = visible. */
|
|
1801
|
+
hidden?: boolean;
|
|
1802
|
+
/** Locked drawing metadata. Undefined = editable. */
|
|
1803
|
+
locked?: boolean;
|
|
1804
|
+
/** Horizontal positioning */
|
|
1805
|
+
horizontal: {
|
|
1806
|
+
relativeTo: 'character' | 'column' | 'insideMargin' | 'leftMargin' | 'margin' | 'outsideMargin' | 'page' | 'rightMargin';
|
|
1807
|
+
alignment?: 'left' | 'right' | 'center' | 'inside' | 'outside';
|
|
1808
|
+
posOffset?: number;
|
|
1809
|
+
};
|
|
1810
|
+
/** Vertical positioning */
|
|
1811
|
+
vertical: {
|
|
1812
|
+
relativeTo: 'insideMargin' | 'line' | 'margin' | 'outsideMargin' | 'page' | 'paragraph' | 'topMargin' | 'bottomMargin';
|
|
1813
|
+
alignment?: 'top' | 'bottom' | 'center' | 'inside' | 'outside';
|
|
1814
|
+
posOffset?: number;
|
|
1815
|
+
};
|
|
1816
|
+
}
|
|
1817
|
+
/**
|
|
1818
|
+
* Image transformation
|
|
1819
|
+
*/
|
|
1820
|
+
interface ImageTransform {
|
|
1821
|
+
/** Rotation in degrees */
|
|
1822
|
+
rotation?: number;
|
|
1823
|
+
/** Flip horizontal */
|
|
1824
|
+
flipH?: boolean;
|
|
1825
|
+
/** Flip vertical */
|
|
1826
|
+
flipV?: boolean;
|
|
1827
|
+
}
|
|
1828
|
+
/** Post-transform layout footprint, kept separate from the content frame. */
|
|
1829
|
+
interface ImageRotationBounds {
|
|
1830
|
+
width?: number;
|
|
1831
|
+
height?: number;
|
|
1832
|
+
offsetX?: number;
|
|
1833
|
+
offsetY?: number;
|
|
1834
|
+
}
|
|
1835
|
+
/** One ordered DrawingML blip effect. Unknown effects stay named and inert. */
|
|
1836
|
+
interface ImageEffect {
|
|
1837
|
+
kind?: 'brightnessContrast' | 'saturation' | 'grayscale' | 'biLevel' | 'colorChange' | 'duotone' | 'alpha' | 'blur' | 'unknown';
|
|
1838
|
+
amount?: number;
|
|
1839
|
+
threshold?: number;
|
|
1840
|
+
colors?: string[];
|
|
1841
|
+
rawName?: string;
|
|
1842
|
+
}
|
|
1843
|
+
/** Safe hyperlink metadata attached to picture non-visual properties. */
|
|
1844
|
+
interface ImageHyperlink {
|
|
1845
|
+
href?: string;
|
|
1846
|
+
tooltip?: string;
|
|
1847
|
+
target?: string;
|
|
1848
|
+
history?: boolean;
|
|
1849
|
+
docLocation?: string;
|
|
1850
|
+
}
|
|
1851
|
+
/**
|
|
1852
|
+
* Image padding/margins
|
|
1853
|
+
*/
|
|
1854
|
+
interface ImagePadding {
|
|
1855
|
+
top?: number;
|
|
1856
|
+
bottom?: number;
|
|
1857
|
+
left?: number;
|
|
1858
|
+
right?: number;
|
|
1859
|
+
}
|
|
1860
|
+
/**
|
|
1861
|
+
* Image crop, expressed as fractions of the source image to trim from each
|
|
1862
|
+
* edge. OOXML's `<a:srcRect l="10000" t="0" r="5000" b="0"/>` uses units of
|
|
1863
|
+
* 1/100000 (so 10000 → 0.1 → 10% trimmed from the left). We store the
|
|
1864
|
+
* normalised fraction so both the renderer and the saver can read it
|
|
1865
|
+
* directly without re-parsing units.
|
|
1866
|
+
*/
|
|
1867
|
+
interface ImageCrop {
|
|
1868
|
+
left?: number;
|
|
1869
|
+
top?: number;
|
|
1870
|
+
right?: number;
|
|
1871
|
+
bottom?: number;
|
|
1872
|
+
}
|
|
1873
|
+
/**
|
|
1874
|
+
* Embedded image (`w:drawing` with an inline or anchored picture). Carries
|
|
1875
|
+
* the relationship-id pointer to the binary in `word/media/`, its
|
|
1876
|
+
* resolved data URL (`src`), display dimensions, optional crop /
|
|
1877
|
+
* transform / wrap behaviors, and anchor positioning for floating
|
|
1878
|
+
* images.
|
|
1879
|
+
*
|
|
1880
|
+
* See ECMA-376 §20.4 (DrawingML wordprocessingDrawing).
|
|
1881
|
+
*/
|
|
1882
|
+
interface Image {
|
|
1883
|
+
type: 'image';
|
|
1884
|
+
/** Unique ID */
|
|
1885
|
+
id?: string;
|
|
1886
|
+
/** Relationship ID for the image data */
|
|
1887
|
+
rId: string;
|
|
1888
|
+
/** Resolved image data (base64 or blob URL) */
|
|
1889
|
+
src?: string;
|
|
1890
|
+
/** Image MIME type */
|
|
1891
|
+
mimeType?: string;
|
|
1892
|
+
/** Original filename */
|
|
1893
|
+
filename?: string;
|
|
1894
|
+
/** Alt text for accessibility */
|
|
1895
|
+
alt?: string;
|
|
1896
|
+
/** Title/description */
|
|
1897
|
+
title?: string;
|
|
1898
|
+
/** Image size */
|
|
1899
|
+
size: ImageSize;
|
|
1900
|
+
/** Original size before any transforms */
|
|
1901
|
+
originalSize?: ImageSize;
|
|
1902
|
+
/** Wrap settings */
|
|
1903
|
+
wrap: ImageWrap;
|
|
1904
|
+
/** Position for floating images */
|
|
1905
|
+
position?: ImagePosition;
|
|
1906
|
+
/** Image transformations */
|
|
1907
|
+
transform?: ImageTransform;
|
|
1908
|
+
/** Padding around image */
|
|
1909
|
+
padding?: ImagePadding;
|
|
1910
|
+
/** Source-image crop (fractional, OOXML `a:srcRect`). */
|
|
1911
|
+
crop?: ImageCrop;
|
|
1912
|
+
/** Opacity in [0, 1] (OOXML `a:alphaModFix amt`). Undefined = fully opaque. */
|
|
1913
|
+
opacity?: number;
|
|
1914
|
+
/** Whether this is a decorative image */
|
|
1915
|
+
decorative?: boolean;
|
|
1916
|
+
/**
|
|
1917
|
+
* `wp:anchor layoutInCell` — when true (default), an anchored image inside
|
|
1918
|
+
* a table cell is constrained to the cell. When false, the image escapes
|
|
1919
|
+
* the cell into the page area. Round-tripped on save.
|
|
1920
|
+
*/
|
|
1921
|
+
layoutInCell?: boolean;
|
|
1922
|
+
/**
|
|
1923
|
+
* `wp:anchor allowOverlap` — when true (default), anchored objects may
|
|
1924
|
+
* overlap; when false, Word repositions them to avoid collisions. We
|
|
1925
|
+
* don't currently reposition; we round-trip the flag so saving preserves
|
|
1926
|
+
* the author's intent.
|
|
1927
|
+
*/
|
|
1928
|
+
allowOverlap?: boolean;
|
|
1929
|
+
/** Hyperlink URL for clickable image */
|
|
1930
|
+
hlinkHref?: string;
|
|
1931
|
+
/** Image outline/border */
|
|
1932
|
+
outline?: ShapeOutline;
|
|
1933
|
+
/** Image effects */
|
|
1934
|
+
effects?: {
|
|
1935
|
+
brightness?: number;
|
|
1936
|
+
contrast?: number;
|
|
1937
|
+
saturation?: number;
|
|
1938
|
+
/** Ordered blip-effect list. Undefined = legacy scalar effects only. */
|
|
1939
|
+
ordered?: ImageEffect[];
|
|
1940
|
+
};
|
|
1941
|
+
/** Rotated layout bbox. Undefined = use untransformed `size`. */
|
|
1942
|
+
rotationBounds?: ImageRotationBounds;
|
|
1943
|
+
/** Complete picture hyperlink metadata. Undefined = use `hlinkHref`. */
|
|
1944
|
+
hyperlink?: ImageHyperlink;
|
|
1945
|
+
/** Effect extents in EMUs. Undefined = no extra wrap/ink extent. */
|
|
1946
|
+
effectExtent?: ImagePadding;
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
/**
|
|
1950
|
+
* DrawingML chart model for basic rendered charts.
|
|
1951
|
+
*
|
|
1952
|
+
* This is intentionally normalized for display rather than lossless OOXML
|
|
1953
|
+
* round-trip. Unsupported chart families stay in the original package parts.
|
|
1954
|
+
*/
|
|
1955
|
+
|
|
1956
|
+
type ChartType = 'bar' | 'column' | 'line' | 'pie' | 'doughnut';
|
|
1957
|
+
type ChartGrouping = 'standard' | 'clustered' | 'stacked' | 'percentStacked';
|
|
1958
|
+
interface ChartPoint {
|
|
1959
|
+
index?: number;
|
|
1960
|
+
value?: number;
|
|
1961
|
+
category?: string;
|
|
1962
|
+
color?: string;
|
|
1963
|
+
explosion?: number;
|
|
1964
|
+
marker?: {
|
|
1965
|
+
symbol?: string;
|
|
1966
|
+
size?: number;
|
|
1967
|
+
color?: string;
|
|
1968
|
+
};
|
|
1969
|
+
label?: string;
|
|
1970
|
+
}
|
|
1971
|
+
/** Run properties from a `c:txPr`; unset fields inherit from the chart. */
|
|
1972
|
+
interface ChartTextProperties {
|
|
1973
|
+
font?: string;
|
|
1974
|
+
sizePt?: number;
|
|
1975
|
+
bold?: boolean;
|
|
1976
|
+
italic?: boolean;
|
|
1977
|
+
color?: string;
|
|
1978
|
+
}
|
|
1979
|
+
/** One `c:dLbl`: an index plus the switches it overrides. */
|
|
1980
|
+
interface ChartPointLabel {
|
|
1981
|
+
index?: number;
|
|
1982
|
+
text?: string;
|
|
1983
|
+
labels: ChartDataLabels;
|
|
1984
|
+
}
|
|
1985
|
+
/** A `c:dLbls`; every switch is optional so an unset one inherits. */
|
|
1986
|
+
interface ChartDataLabels {
|
|
1987
|
+
delete?: boolean;
|
|
1988
|
+
showValue?: boolean;
|
|
1989
|
+
showCategoryName?: boolean;
|
|
1990
|
+
showSeriesName?: boolean;
|
|
1991
|
+
showPercent?: boolean;
|
|
1992
|
+
showLegendKey?: boolean;
|
|
1993
|
+
showBubbleSize?: boolean;
|
|
1994
|
+
separator?: string;
|
|
1995
|
+
position?: string;
|
|
1996
|
+
numberFormat?: string;
|
|
1997
|
+
text?: ChartTextProperties;
|
|
1998
|
+
points?: ChartPointLabel[];
|
|
1999
|
+
}
|
|
2000
|
+
interface ChartSeries {
|
|
2001
|
+
name?: string;
|
|
2002
|
+
categories: string[];
|
|
2003
|
+
values: number[];
|
|
2004
|
+
color?: string;
|
|
2005
|
+
index?: number;
|
|
2006
|
+
order?: number;
|
|
2007
|
+
categoryFormula?: string;
|
|
2008
|
+
valueFormula?: string;
|
|
2009
|
+
axisIds?: string[];
|
|
2010
|
+
points?: ChartPoint[];
|
|
2011
|
+
grouping?: ChartGrouping;
|
|
2012
|
+
marker?: {
|
|
2013
|
+
symbol?: string;
|
|
2014
|
+
size?: number;
|
|
2015
|
+
color?: string;
|
|
2016
|
+
};
|
|
2017
|
+
smooth?: boolean;
|
|
2018
|
+
/** `c:xVal` of a scatter or bubble series. */
|
|
2019
|
+
xValues?: number[];
|
|
2020
|
+
/** `c:bubbleSize` of a bubble series. */
|
|
2021
|
+
bubbleSizes?: number[];
|
|
2022
|
+
dataLabels?: ChartDataLabels;
|
|
2023
|
+
}
|
|
2024
|
+
interface ChartAxis {
|
|
2025
|
+
id?: string;
|
|
2026
|
+
title?: string;
|
|
2027
|
+
min?: number;
|
|
2028
|
+
max?: number;
|
|
2029
|
+
labels?: string[];
|
|
2030
|
+
axisType?: 'category' | 'value' | 'date' | 'series';
|
|
2031
|
+
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
2032
|
+
crossAxisId?: string;
|
|
2033
|
+
crosses?: 'autoZero' | 'min' | 'max' | 'value';
|
|
2034
|
+
crossesAt?: number;
|
|
2035
|
+
majorUnit?: number;
|
|
2036
|
+
minorUnit?: number;
|
|
2037
|
+
logarithmicBase?: number;
|
|
2038
|
+
reversed?: boolean;
|
|
2039
|
+
numberFormat?: string;
|
|
2040
|
+
majorTickMark?: string;
|
|
2041
|
+
minorTickMark?: string;
|
|
2042
|
+
tickLabelPosition?: string;
|
|
2043
|
+
hidden?: boolean;
|
|
2044
|
+
majorGridlines?: boolean;
|
|
2045
|
+
minorGridlines?: boolean;
|
|
2046
|
+
text?: ChartTextProperties;
|
|
2047
|
+
}
|
|
2048
|
+
/** One chart-family element inside `c:plotArea`. */
|
|
2049
|
+
interface ChartPlotGroup {
|
|
2050
|
+
chartType?: ChartType | 'area' | 'scatter' | 'radar' | 'stock' | 'bubble' | 'ofPie' | 'surface';
|
|
2051
|
+
grouping?: ChartGrouping;
|
|
2052
|
+
overlap?: number;
|
|
2053
|
+
gapWidth?: number;
|
|
2054
|
+
axisIds?: string[];
|
|
2055
|
+
series?: ChartSeries[];
|
|
2056
|
+
varyColors?: boolean;
|
|
2057
|
+
firstSliceAngle?: number;
|
|
2058
|
+
holeSize?: number;
|
|
2059
|
+
showDataLabels?: boolean;
|
|
2060
|
+
/** `c:scatterStyle`. */
|
|
2061
|
+
scatterStyle?: 'none' | 'line' | 'lineMarker' | 'marker' | 'smooth' | 'smoothMarker';
|
|
2062
|
+
/** `c:radarStyle`. */
|
|
2063
|
+
radarStyle?: 'standard' | 'marker' | 'filled';
|
|
2064
|
+
/** `c:bubbleScale`, a percentage of the default bubble size. */
|
|
2065
|
+
bubbleScale?: number;
|
|
2066
|
+
/** `c:sizeRepresents`. */
|
|
2067
|
+
sizeRepresents?: 'area' | 'w';
|
|
2068
|
+
/** `c:wireframe` of a surface chart. */
|
|
2069
|
+
wireframe?: boolean;
|
|
2070
|
+
hiLowLines?: boolean;
|
|
2071
|
+
upDownBars?: boolean;
|
|
2072
|
+
/** `c:marker` of a line chart, which switches every series marker off. */
|
|
2073
|
+
marker?: boolean;
|
|
2074
|
+
dataLabels?: ChartDataLabels;
|
|
2075
|
+
}
|
|
2076
|
+
interface ChartLegend {
|
|
2077
|
+
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
2078
|
+
visible?: boolean;
|
|
2079
|
+
/** `c:txPr` on the legend; unset fields inherit from the chart. */
|
|
2080
|
+
text?: ChartTextProperties;
|
|
2081
|
+
}
|
|
2082
|
+
interface Chart {
|
|
2083
|
+
type: 'chart';
|
|
2084
|
+
chartType: ChartType;
|
|
2085
|
+
/** Relationship id used by the owning drawing part. */
|
|
2086
|
+
rId?: string;
|
|
2087
|
+
/** Normalized package path, e.g. word/charts/chart1.xml. */
|
|
2088
|
+
path?: string;
|
|
2089
|
+
title?: string;
|
|
2090
|
+
legend?: ChartLegend;
|
|
2091
|
+
series: ChartSeries[];
|
|
2092
|
+
axes?: {
|
|
2093
|
+
category?: ChartAxis;
|
|
2094
|
+
value?: ChartAxis;
|
|
2095
|
+
};
|
|
2096
|
+
/** Drawing extent from wp:extent in EMUs. */
|
|
2097
|
+
size?: ImageSize;
|
|
2098
|
+
/** Wrap metadata from the containing drawing; v1 layout treats charts as inline blocks. */
|
|
2099
|
+
wrap?: ImageWrap;
|
|
2100
|
+
/** Floating anchor. Undefined = inline legacy behavior. */
|
|
2101
|
+
position?: ImagePosition;
|
|
2102
|
+
/** Multiple/combo plot groups. Undefined = synthesize one from legacy fields. */
|
|
2103
|
+
plotGroups?: ChartPlotGroup[];
|
|
2104
|
+
/** Complete axis collection keyed through plot-group `axisIds`. */
|
|
2105
|
+
axisList?: ChartAxis[];
|
|
2106
|
+
/** Chart accessibility description. */
|
|
2107
|
+
description?: string;
|
|
2108
|
+
/** Decorative flag. Undefined = false. */
|
|
2109
|
+
decorative?: boolean;
|
|
2110
|
+
/** Stable z-order for anchored charts. Undefined = source order. */
|
|
2111
|
+
relativeHeight?: number;
|
|
2112
|
+
/** `c:txPr` on `c:chartSpace`: the root of chart text inheritance. */
|
|
2113
|
+
text?: ChartTextProperties;
|
|
2114
|
+
/** `c:txPr` on `c:title`. */
|
|
2115
|
+
titleText?: ChartTextProperties;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
export { type FieldInlineContent as $, type AbstractNumbering as A, type BlockContent as B, type CellMarker as C, type DrawingScene as D, type EndnoteProperties as E, type FootnoteProperties as F, type CommentAnchorRange as G, type HeaderFooter as H, type CommentAuthor as I, type CommentRangeEnd as J, type CommentRangeStart as K, type CommentReferenceContent as L, type ComplexField as M, type NoteKind as N, type ContentPosition as O, type Paragraph as P, DEFAULT_WATERMARK_PRESETS as Q, type RevisionInfo as R, type SectionProperties as S, type Deletion as T, type DrawingContent as U, type DrawingSceneNode as V, type Watermark as W, type EndnotePosition as X, type Field as Y, type FieldCharContent as Z, type FieldFormData as _, type SdtControlState as a, type StructuredFieldContent as a$, type FieldType as a0, type FooterReference as a1, type FootnotePosition as a2, type HeaderFooterType as a3, type HeaderReference as a4, type Hyperlink as a5, type HyperlinkContent as a6, type Image as a7, type ImageCrop as a8, type ImageEffect as a9, type NoteSeparatorReference as aA, type NumberFormat as aB, type NumberingInstance as aC, type PageNumberingProperties as aD, type PageOrientation as aE, type ParagraphContent as aF, type ParagraphPropertyChange as aG, type PictureWatermark as aH, type PropertyChangeInfo as aI, type Run as aJ, type RunContent as aK, type RunPropertyChange as aL, type SdtCheckboxGlyph as aM, type SdtDataBinding as aN, type SdtDateState as aO, type SdtGalleryState as aP, type SdtType as aQ, type Section as aR, type SectionStart as aS, type SeparatorContent as aT, type Shape as aU, type ShapeContent as aV, type ShapeFillPaint as aW, type ShapeStrokePaint as aX, type ShapeTextBody as aY, type SimpleField as aZ, type SoftHyphenContent as a_, type ImageHyperlink as aa, type ImagePadding as ab, type ImagePosition as ac, type ImageRotationBounds as ad, type ImageSize as ae, type ImageTransform as af, type ImageWrap as ag, type ImageWrapPoint as ah, type InlineSdt as ai, type Insertion as aj, type InstrTextContent as ak, type LevelSuffix as al, type LineNumberRestart as am, type ListLevel as an, type ListRendering as ao, type MathEquation as ap, type MoveFrom as aq, type MoveFromRangeEnd as ar, type MoveFromRangeStart as as, type MoveTo as at, type MoveToRangeEnd as au, type MoveToRangeStart as av, type NoBreakHyphenContent as aw, type NoteNumberRestart as ax, type NoteRefMarkContent as ay, type NoteReferenceContent as az, type SdtProperties as b, type StructuredFieldTree as b0, type SymbolContent as b1, type TabContent as b2, type Table as b3, type TableCell as b4, type TableCellPropertyChange as b5, type TablePropertyChange as b6, type TableRow as b7, type TableRowPropertyChange as b8, type TableStructuralChangeInfo as b9, type TextBox as ba, type TextContent as bb, type TextWatermark as bc, type TrackedChangeInfo as bd, type TrackedRunChange as be, type VerticalAlign as bf, pictureWatermarkDisplayEmu as bg, type ShapeEffect as c, type ShapeTextBodyProperties as d, type Chart as e, type Comment as f, type DocumentBody as g, type NumberingDefinitions as h, type Footnote as i, type Endnote as j, type BookmarkRange as k, type BlockSdt as l, type BookmarkEnd as m, type BookmarkStart as n, type BreakContent as o, type ChartAxis as p, type ChartContent as q, type ChartDataLabels as r, type ChartGrouping as s, type ChartLegend as t, type ChartPlotGroup as u, type ChartPoint as v, type ChartPointLabel as w, type ChartSeries as x, type ChartType as y, type Column as z };
|