@shbernal/ts-pptx 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{autopage-BYlTzX-l.js → autopage-DkjYZUFD.js} +3 -3
- package/dist/{autopage-BYlTzX-l.js.map → autopage-DkjYZUFD.js.map} +1 -1
- package/dist/browser.d.ts +5 -5
- package/dist/browser.js +4 -4
- package/dist/browser.js.map +1 -1
- package/dist/{diagnostics-BDuR8UkG.d.ts → diagnostics-Du_s75MT.d.ts} +20 -5
- package/dist/diagnostics-Du_s75MT.d.ts.map +1 -0
- package/dist/{errors-CgnueTYL.d.ts → errors-PflMPWBn.d.ts} +2 -2
- package/dist/{errors-CgnueTYL.d.ts.map → errors-PflMPWBn.d.ts.map} +1 -1
- package/dist/{fit-TjpNbMru.js → fit-BKs0zxMI.js} +3 -3
- package/dist/{fit-TjpNbMru.js.map → fit-BKs0zxMI.js.map} +1 -1
- package/dist/{html-dom-yUSdCExA.js → html-dom-B0I0QSbU.js} +4 -4
- package/dist/{html-dom-yUSdCExA.js.map → html-dom-B0I0QSbU.js.map} +1 -1
- package/dist/html.d.ts +3 -3
- package/dist/html.js +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +3 -3
- package/dist/inspect.d.ts +1 -1
- package/dist/inspect.js +4 -5
- package/dist/inspect.js.map +1 -1
- package/dist/math.d.ts +1 -1
- package/dist/measure.d.ts +2 -2
- package/dist/measure.js +1 -1
- package/dist/{namespaces-CcKuzeuE.js → namespaces-BVnNu7sg.js} +74 -3
- package/dist/namespaces-BVnNu7sg.js.map +1 -0
- package/dist/node.d.ts +5 -5
- package/dist/node.js +3 -3
- package/dist/{notes-DNqAggXx.js → notes-RLCwdlTE.js} +289 -313
- package/dist/{notes-DNqAggXx.js.map → notes-RLCwdlTE.js.map} +1 -1
- package/dist/{pres-Dybf7ZUl.d.ts → pres-C5__xkDh.d.ts} +2 -2
- package/dist/{pres-Dybf7ZUl.d.ts.map → pres-C5__xkDh.d.ts.map} +1 -1
- package/dist/{presentation-VfJ_FT7E.js → presentation-Cp7vzlAw.js} +414 -515
- package/dist/presentation-Cp7vzlAw.js.map +1 -0
- package/dist/{presentation-types-CpkTx9Xa.d.ts → presentation-types-DP_8jog7.d.ts} +351 -274
- package/dist/presentation-types-DP_8jog7.d.ts.map +1 -0
- package/dist/read.d.ts +31 -48
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +3 -3
- package/dist/script.d.ts +2 -2
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +18 -47
- package/dist/script.js.map +1 -1
- package/dist/{shapes-Kt51vry6.js → shapes-BemroU-z.js} +625 -265
- package/dist/shapes-BemroU-z.js.map +1 -0
- package/dist/{slide-B_aInw3N.d.ts → slide-js0QpRV-.d.ts} +1278 -1254
- package/dist/slide-js0QpRV-.d.ts.map +1 -0
- package/dist/{text-D04NUMvA.js → text-CyetbF6p.js} +2039 -1417
- package/dist/text-CyetbF6p.js.map +1 -0
- package/dist/units-1kRzYShk.js +231 -0
- package/dist/units-1kRzYShk.js.map +1 -0
- package/dist/units-internal-Dg95w_YD.js +753 -0
- package/dist/units-internal-Dg95w_YD.js.map +1 -0
- package/dist/zip.d.ts +1 -1
- package/package.json +2 -1
- package/dist/diagnostics-BDuR8UkG.d.ts.map +0 -1
- package/dist/diagnostics-CPVADSL1.js +0 -90
- package/dist/diagnostics-CPVADSL1.js.map +0 -1
- package/dist/namespaces-CcKuzeuE.js.map +0 -1
- package/dist/presentation-VfJ_FT7E.js.map +0 -1
- package/dist/presentation-types-CpkTx9Xa.d.ts.map +0 -1
- package/dist/shapes-Kt51vry6.js.map +0 -1
- package/dist/slide-B_aInw3N.d.ts.map +0 -1
- package/dist/text-D04NUMvA.js.map +0 -1
- package/dist/units-internal-DNvK2I6o.js +0 -896
- package/dist/units-internal-DNvK2I6o.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ct as ColorMapToken, ft as ThemeColorSlot } from "./slide-js0QpRV-.js";
|
|
2
|
+
import { t as CustomPropertyValue } from "./pres-C5__xkDh.js";
|
|
2
3
|
import { a as Part, i as Relationships, n as OpcPackage, o as Element, t as OpcInput } from "./package-CaOLXSNi.js";
|
|
3
4
|
//#region src/embedded-fonts.d.ts
|
|
4
5
|
/**
|
|
@@ -83,6 +84,28 @@ interface ThemeContext extends ColorContext {
|
|
|
83
84
|
defaultTextStyle?: Element | null;
|
|
84
85
|
}
|
|
85
86
|
//#endregion
|
|
87
|
+
//#region src/read/oxml/color-transform.d.ts
|
|
88
|
+
/** A colour-transform modifier in its read-model form: tag local-name + raw `@val`. */
|
|
89
|
+
interface ColorTransform {
|
|
90
|
+
name: string;
|
|
91
|
+
value: string | null;
|
|
92
|
+
}
|
|
93
|
+
/** The effective colour after applying transforms: final sRGB hex, plus opacity when an `alpha*` modifier was present. */
|
|
94
|
+
interface EffectiveColor {
|
|
95
|
+
hex: string;
|
|
96
|
+
alpha?: number;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Apply an ordered list of DrawingML colour transforms to a base sRGB hex,
|
|
100
|
+
* returning the effective sRGB hex (and opacity, when an `alpha*` modifier set
|
|
101
|
+
* it). Pure: no DOM, no theme lookup — the caller has already resolved the base
|
|
102
|
+
* colour and extracted each modifier's `{ name, value }`.
|
|
103
|
+
*
|
|
104
|
+
* An unparseable base hex is returned unchanged (with no transforms applied); an
|
|
105
|
+
* unparseable/`null` modifier value is skipped.
|
|
106
|
+
*/
|
|
107
|
+
declare function applyColorTransforms(baseHex: string, transforms: ColorTransform[]): EffectiveColor;
|
|
108
|
+
//#endregion
|
|
86
109
|
//#region src/read/api/theme-context.d.ts
|
|
87
110
|
/** Identifies a placeholder by its `p:ph` `type`/`idx` for inheritance lookups. */
|
|
88
111
|
interface PlaceholderRef {
|
|
@@ -114,16 +137,14 @@ interface ResolvedFrame {
|
|
|
114
137
|
*/
|
|
115
138
|
interface ResolvedColor {
|
|
116
139
|
hex: string;
|
|
117
|
-
transforms:
|
|
118
|
-
name: string;
|
|
119
|
-
value: string | null;
|
|
120
|
-
}[];
|
|
140
|
+
transforms: ColorTransform[];
|
|
121
141
|
effectiveHex: string;
|
|
122
142
|
alpha?: number;
|
|
123
143
|
}
|
|
124
144
|
/**
|
|
125
|
-
* Resolve a DrawingML colour *element* (`a:
|
|
126
|
-
* against `ctx` into a full
|
|
145
|
+
* Resolve a DrawingML colour *element* (every `a:EG_ColorChoice` member except
|
|
146
|
+
* `a:scrgbClr` — see `read/oxml/theme.ts`) against `ctx` into a full
|
|
147
|
+
* {@link ResolvedColor} — base hex, raw transform list,
|
|
127
148
|
* and the `effectiveHex`/`alpha` after applying those transforms. `null` when the
|
|
128
149
|
* element cannot be made literal (unmapped token, or a colour model we do not
|
|
129
150
|
* resolve). Shared by the solid-fill and gradient-stop colour reads.
|
|
@@ -142,19 +163,47 @@ interface StyleFontRef {
|
|
|
142
163
|
interface GradientStop {
|
|
143
164
|
/** Stop offset along the gradient, 0–1 (from `@pos`, thousandths of a percent), or `null` if unset. */
|
|
144
165
|
position: number | null;
|
|
145
|
-
/** Explicit RGB colour as 6-hex (`a:srgbClr/@val`), or `null` when the stop uses
|
|
166
|
+
/** Explicit RGB colour as 6-hex (`a:srgbClr/@val`), or `null` when the stop uses another colour model. */
|
|
146
167
|
color: string | null;
|
|
147
|
-
/** Theme colour token (`a:schemeClr/@val`, e.g. `accent1`), or `null` when the stop uses
|
|
168
|
+
/** Theme colour token (`a:schemeClr/@val`, e.g. `accent1`), or `null` when the stop uses another colour model. */
|
|
148
169
|
schemeColor: string | null;
|
|
170
|
+
/**
|
|
171
|
+
* Preset colour name (`a:prstClr/@val`, e.g. `black`/`cornflowerBlue` — the
|
|
172
|
+
* ECMA-376 §20.1.10.47 table), or `null` when the stop uses another colour
|
|
173
|
+
* model. The same raw/resolved split {@link import('./shapes/types.js').RecolorColor}
|
|
174
|
+
* uses; {@link import('../oxml/preset-color.js').presetColorHex}, exported from
|
|
175
|
+
* `ts-pptx/read`, makes one literal.
|
|
176
|
+
*
|
|
177
|
+
* These three raw fields name three of the five colour models the reader
|
|
178
|
+
* resolves. A stop written as `a:sysClr` or `a:hslClr` leaves all three `null`
|
|
179
|
+
* and is reported through {@link resolvedColor} alone, which is the only place
|
|
180
|
+
* its colour appears; `a:scrgbClr`, which the reader deliberately does not
|
|
181
|
+
* resolve, leaves {@link resolvedColor} `null` too.
|
|
182
|
+
*/
|
|
183
|
+
presetColor: string | null;
|
|
184
|
+
/**
|
|
185
|
+
* The stop's colour as a full {@link ResolvedColor} — base `hex`, the raw
|
|
186
|
+
* `transforms` list (`lumMod`/`shade`/…) in document order, and the
|
|
187
|
+
* `effectiveHex`/`alpha` after applying them — exactly what a solid fill's
|
|
188
|
+
* `resolvedFill` gives. `null` when the colour cannot be made literal (an
|
|
189
|
+
* unmapped token, or a colour model we do not resolve).
|
|
190
|
+
*
|
|
191
|
+
* This is the field to read when re-authoring a stop against a *different*
|
|
192
|
+
* theme: {@link effectiveHex} alone is one theme baked in, so carrying it
|
|
193
|
+
* forward as a literal silently stops the stop tracking the theme it came from.
|
|
194
|
+
* `transforms` is what says whether there was anything to track, and an empty
|
|
195
|
+
* list here means the stop stated none — not that the reader could not see them.
|
|
196
|
+
*/
|
|
197
|
+
resolvedColor: ResolvedColor | null;
|
|
149
198
|
/**
|
|
150
199
|
* The stop's colour resolved against the slide theme **with its colour
|
|
151
|
-
* transforms applied** — the final rendered hex
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* not resolve).
|
|
200
|
+
* transforms applied** — the final rendered hex, i.e. exactly
|
|
201
|
+
* `resolvedColor?.effectiveHex ?? null`, kept as a flat field because painting a
|
|
202
|
+
* gradient is what most callers want. `null` when the colour cannot be made
|
|
203
|
+
* literal (an unmapped token, or a colour model we do not resolve).
|
|
155
204
|
*/
|
|
156
205
|
effectiveHex: string | null;
|
|
157
|
-
/** The stop's opacity (0–1) when an `alpha*` transform set one, else `undefined`. */
|
|
206
|
+
/** The stop's opacity (0–1) when an `alpha*` transform set one, else `undefined`. Mirrors `resolvedColor.alpha`. */
|
|
158
207
|
alpha?: number;
|
|
159
208
|
}
|
|
160
209
|
/**
|
|
@@ -454,7 +503,7 @@ interface Reflection {
|
|
|
454
503
|
/** End position along the reflection 0–1 (`@endPos` ÷ 100000). */
|
|
455
504
|
endPos?: number;
|
|
456
505
|
/** Offset distance in points (`@dist` ÷ 12700). */
|
|
457
|
-
|
|
506
|
+
offsetPt?: number;
|
|
458
507
|
/** Offset direction in degrees (`@dir` ÷ 60000). */
|
|
459
508
|
angleDeg?: number;
|
|
460
509
|
/** Fade direction in degrees (`@fadeDir` ÷ 60000). */
|
|
@@ -745,6 +794,12 @@ declare class Run {
|
|
|
745
794
|
* for non-placeholder runs. Called lazily.
|
|
746
795
|
*/
|
|
747
796
|
private readonly inheritedBold?;
|
|
797
|
+
/**
|
|
798
|
+
* Resolves whether this run inherits italic from the same chain when it sets no
|
|
799
|
+
* own `@i`. Built by the owning {@link Paragraph} for placeholder text; absent
|
|
800
|
+
* for non-placeholder runs. Called lazily.
|
|
801
|
+
*/
|
|
802
|
+
private readonly inheritedItalic?;
|
|
748
803
|
/**
|
|
749
804
|
* The owning part's relationships, used to resolve a run hyperlink's `@r:id`
|
|
750
805
|
* to its external URL or internal target partname. Absent when the run was
|
|
@@ -787,6 +842,12 @@ declare class Run {
|
|
|
787
842
|
* for non-placeholder runs. Called lazily.
|
|
788
843
|
*/
|
|
789
844
|
inheritedBold?: (() => boolean | null) | undefined,
|
|
845
|
+
/**
|
|
846
|
+
* Resolves whether this run inherits italic from the same chain when it sets no
|
|
847
|
+
* own `@i`. Built by the owning {@link Paragraph} for placeholder text; absent
|
|
848
|
+
* for non-placeholder runs. Called lazily.
|
|
849
|
+
*/
|
|
850
|
+
inheritedItalic?: (() => boolean | null) | undefined,
|
|
790
851
|
/**
|
|
791
852
|
* The owning part's relationships, used to resolve a run hyperlink's `@r:id`
|
|
792
853
|
* to its external URL or internal target partname. Absent when the run was
|
|
@@ -909,6 +970,17 @@ declare class Run {
|
|
|
909
970
|
* resolved counterpart of {@link bold}, which reports only the run's own value.
|
|
910
971
|
*/
|
|
911
972
|
get resolvedBold(): boolean | null;
|
|
973
|
+
/**
|
|
974
|
+
* Whether this run effectively renders italic. It is the run's own `@i`
|
|
975
|
+
* ({@link italic}) when set; otherwise, for a run inside a placeholder, the italic
|
|
976
|
+
* state it inherits from the placeholder/list-style chain (paragraph `a:defRPr` →
|
|
977
|
+
* slide `a:lstStyle` → layout → master placeholder `a:lstStyle` → master
|
|
978
|
+
* `p:txStyles`). `null` when the run sets no `@i` and inherits none — the
|
|
979
|
+
* resolved counterpart of {@link italic}, and the twin of {@link resolvedBold}:
|
|
980
|
+
* `@b` and `@i` are siblings a master text style states together, so a deck that
|
|
981
|
+
* can be authored with an inherited italic can be read back with one.
|
|
982
|
+
*/
|
|
983
|
+
get resolvedItalic(): boolean | null;
|
|
912
984
|
/** Escape hatch: the underlying `a:r` element. After mutating it call {@link markDirty}, or `save()` writes the original bytes. */
|
|
913
985
|
get element_(): Element;
|
|
914
986
|
/** Mark the owning part dirty so `save()` reserializes it. Call after mutating {@link element_}. */
|
|
@@ -2374,7 +2446,26 @@ interface CellBorder {
|
|
|
2374
2446
|
widthPt: number | null;
|
|
2375
2447
|
/** Dash style (`a:prstDash/@val`, e.g. `solid`/`sysDash`), or `null` when unset. */
|
|
2376
2448
|
dash: string | null;
|
|
2377
|
-
/**
|
|
2449
|
+
/**
|
|
2450
|
+
* The stroke colour as a full {@link ResolvedColor} — base `hex`, the raw
|
|
2451
|
+
* `transforms` list (`lumMod`/`shade`/…) in document order, and the
|
|
2452
|
+
* `effectiveHex`/`alpha` after applying them — the same object a shape's
|
|
2453
|
+
* `resolvedLine` gives. `null` when the edge carries no solid fill, or the
|
|
2454
|
+
* colour cannot be made literal.
|
|
2455
|
+
*
|
|
2456
|
+
* This is the field to read when re-authoring a border against a *different*
|
|
2457
|
+
* theme: {@link color} alone is one theme baked in, so a `lumMod`-darkened
|
|
2458
|
+
* accent carried forward as a literal hex silently stops tracking the theme it
|
|
2459
|
+
* came from. `transforms` is what says whether there was anything to track, and
|
|
2460
|
+
* an empty list here means the edge stated none — not that the reader could not
|
|
2461
|
+
* see them.
|
|
2462
|
+
*/
|
|
2463
|
+
resolvedColor: ResolvedColor | null;
|
|
2464
|
+
/**
|
|
2465
|
+
* The stroke colour resolved against the table theme to a literal hex — exactly
|
|
2466
|
+
* `resolvedColor?.effectiveHex ?? null`, kept as a flat field because painting a
|
|
2467
|
+
* rule is what most callers want. `null` when the edge has no resolvable colour.
|
|
2468
|
+
*/
|
|
2378
2469
|
color: string | null;
|
|
2379
2470
|
/** Raw `schemeClr` token of the stroke (`a:solidFill/a:schemeClr/@val`), or `null` for an srgb/absent colour. */
|
|
2380
2471
|
schemeColor: string | null;
|
|
@@ -2797,7 +2888,8 @@ declare class TableCell {
|
|
|
2797
2888
|
/**
|
|
2798
2889
|
* The cell's edge borders (`a:tcPr/a:lnL|lnR|lnT|lnB|lnTlToBr|lnBlToTr`), or
|
|
2799
2890
|
* `null` when the cell defines none. Each present edge decodes to a
|
|
2800
|
-
* {@link CellBorder} (width / dash / resolved + raw
|
|
2891
|
+
* {@link CellBorder} (width / dash / resolved colour + its raw token and transform
|
|
2892
|
+
* list / suppressed flag);
|
|
2801
2893
|
* absent edges are `null`. Cell borders are the biggest visible table gap — a
|
|
2802
2894
|
* replica built only from geometry and fill draws every cell edge-to-edge with
|
|
2803
2895
|
* no rule, so this surfaces the per-side stroke the writer's `border` option emits.
|
|
@@ -2980,187 +3072,7 @@ declare function isGraphicFrame(shape: Shape): shape is GraphicFrame;
|
|
|
2980
3072
|
/** Narrow a shape to a {@link GroupShape} (`p:grpSp`). */
|
|
2981
3073
|
declare function isGroupShape(shape: Shape): shape is GroupShape;
|
|
2982
3074
|
//#endregion
|
|
2983
|
-
//#region src/read/api/notes.d.ts
|
|
2984
|
-
/**
|
|
2985
|
-
* One placeholder shape (`p:sp`) of a notes slide. A notes slide holds a fixed set:
|
|
2986
|
-
* the slide thumbnail (`type="sldImg"`), the notes body (`type="body"`), and the
|
|
2987
|
-
* slide number (`type="sldNum"`). Geometry getters read the placeholder's *own*
|
|
2988
|
-
* `a:xfrm` and are `null` when it inherits geometry from the notesMaster (the case
|
|
2989
|
-
* on an authored deck, whose `sldImg`/`sldNum` carry an empty `p:spPr`).
|
|
2990
|
-
*/
|
|
2991
|
-
declare class NotesPlaceholder {
|
|
2992
|
-
#private;
|
|
2993
|
-
private readonly sp;
|
|
2994
|
-
private readonly part;
|
|
2995
|
-
/** The notes theme context (notesMaster → `theme2.xml`), threaded to {@link textFrame}. */
|
|
2996
|
-
private readonly themeContext;
|
|
2997
|
-
/** The notes part's relationships, threaded to {@link textFrame} for hyperlink resolution. */
|
|
2998
|
-
private readonly relationships;
|
|
2999
|
-
constructor(sp: Element, part: Part,
|
|
3000
|
-
/** The notes theme context (notesMaster → `theme2.xml`), threaded to {@link textFrame}. */
|
|
3001
|
-
themeContext: ThemeContext,
|
|
3002
|
-
/** The notes part's relationships, threaded to {@link textFrame} for hyperlink resolution. */
|
|
3003
|
-
relationships: Relationships);
|
|
3004
|
-
/** Placeholder type (`p:ph/@type`: `sldImg` | `body` | `sldNum`), or `null` when absent. */
|
|
3005
|
-
get type(): string | null;
|
|
3006
|
-
/** Placeholder index (`p:ph/@idx`), or `null` when unset. */
|
|
3007
|
-
get idx(): string | null;
|
|
3008
|
-
/** Shape name (`p:cNvPr/@name`), or `''` when unnamed. */
|
|
3009
|
-
get name(): string;
|
|
3010
|
-
/** Drawing id (`p:cNvPr/@id`), or `null` when absent. */
|
|
3011
|
-
get id(): number | null;
|
|
3012
|
-
/** Left edge in EMU (`a:off/@x`), or `null` when geometry is inherited (no own `a:xfrm`). */
|
|
3013
|
-
get left(): number | null;
|
|
3014
|
-
/** Top edge in EMU (`a:off/@y`), or `null` when geometry is inherited. */
|
|
3015
|
-
get top(): number | null;
|
|
3016
|
-
/** Width in EMU (`a:ext/@cx`), or `null` when geometry is inherited. */
|
|
3017
|
-
get width(): number | null;
|
|
3018
|
-
/** Height in EMU (`a:ext/@cy`), or `null` when geometry is inherited. */
|
|
3019
|
-
get height(): number | null;
|
|
3020
|
-
/**
|
|
3021
|
-
* The placeholder's text as a navigable {@link TextFrame} (`p:txBody`), or `null`
|
|
3022
|
-
* when it carries no text body (the `sldImg` thumbnail). The body placeholder's
|
|
3023
|
-
* runs round-trip a slide's authored notes; the `sldNum` placeholder's frame
|
|
3024
|
-
* holds the slide-number `a:fld`, whose value surfaces through `TextFrame.text`.
|
|
3025
|
-
*/
|
|
3026
|
-
get textFrame(): TextFrame | null;
|
|
3027
|
-
/** The placeholder's flattened text (paragraphs joined by `\n`), or `''` when it has no text body. */
|
|
3028
|
-
get text(): string;
|
|
3029
|
-
/** Escape hatch: the underlying `p:sp` element. After mutating it call {@link markDirty}, or `save()` writes the original bytes. */
|
|
3030
|
-
get element_(): Element;
|
|
3031
|
-
/** Mark the owning notes-slide part dirty so `save()` reserializes it. Call after mutating {@link element_}. */
|
|
3032
|
-
markDirty(): void;
|
|
3033
|
-
}
|
|
3034
|
-
/**
|
|
3035
|
-
* A slide's speaker-notes slide (`notesSlideN.xml`) as a modeled object — the deep
|
|
3036
|
-
* companion to {@link import('./slide.js').Slide.notesText}. Exposes the notes
|
|
3037
|
-
* shape tree as {@link NotesPlaceholder}s ({@link body}/{@link slideImage}/
|
|
3038
|
-
* {@link slideNumber}) plus the body {@link textFrame} the older getters flatten.
|
|
3039
|
-
*
|
|
3040
|
-
* The theme context (notesMaster → `theme2.xml`) is resolved once and shared across
|
|
3041
|
-
* every placeholder's text frame.
|
|
3042
|
-
*/
|
|
3043
|
-
declare class NotesSlide {
|
|
3044
|
-
#private;
|
|
3045
|
-
private readonly opc;
|
|
3046
|
-
/** The notes slide's OPC part (`/ppt/notesSlides/notesSlideN.xml`). */
|
|
3047
|
-
readonly part: Part;
|
|
3048
|
-
constructor(opc: OpcPackage,
|
|
3049
|
-
/** The notes slide's OPC part (`/ppt/notesSlides/notesSlideN.xml`). */
|
|
3050
|
-
part: Part);
|
|
3051
|
-
/** Partname of the notes slide part. */
|
|
3052
|
-
get partName(): string;
|
|
3053
|
-
/**
|
|
3054
|
-
* The notes theme context, resolved through the notesMaster → `theme2.xml` chain
|
|
3055
|
-
* and cached. Backs {@link NotesPlaceholder.textFrame}'s `Run.resolvedColor`.
|
|
3056
|
-
*/
|
|
3057
|
-
themeContext(): ThemeContext;
|
|
3058
|
-
/** The placeholders (`p:sp`) in the notes shape tree, in document order. */
|
|
3059
|
-
get placeholders(): NotesPlaceholder[];
|
|
3060
|
-
/** The notes body placeholder (`p:ph type="body"`), or `null` when the notes slide has none. */
|
|
3061
|
-
get body(): NotesPlaceholder | null;
|
|
3062
|
-
/** The slide-thumbnail placeholder (`p:ph type="sldImg"`), or `null` when absent. */
|
|
3063
|
-
get slideImage(): NotesPlaceholder | null;
|
|
3064
|
-
/** The slide-number placeholder (`p:ph type="sldNum"`, carrying the slide-number field), or `null`. */
|
|
3065
|
-
get slideNumber(): NotesPlaceholder | null;
|
|
3066
|
-
/** The notes body as a navigable {@link TextFrame}, or `null` when there is no body text frame. */
|
|
3067
|
-
get textFrame(): TextFrame | null;
|
|
3068
|
-
/** The notes body text flattened (paragraphs joined by `\n`), or `''` when the body is empty/absent. */
|
|
3069
|
-
get text(): string;
|
|
3070
|
-
}
|
|
3071
|
-
//#endregion
|
|
3072
|
-
//#region src/read/api/comments.d.ts
|
|
3073
|
-
/** One entry of the deck-wide comment-author registry (`p:cmAuthor`). */
|
|
3074
|
-
interface CommentAuthor {
|
|
3075
|
-
/** Author id (`@id`), referenced by each comment's `@authorId`. */
|
|
3076
|
-
id: number | null;
|
|
3077
|
-
/** Display name (`@name`). */
|
|
3078
|
-
name: string;
|
|
3079
|
-
/** Initials shown in the comment marker (`@initials`). */
|
|
3080
|
-
initials: string;
|
|
3081
|
-
/** Highest per-author comment index used (`@lastIdx`). */
|
|
3082
|
-
lastIdx: number | null;
|
|
3083
|
-
/** Author colour slot (`@clrIdx`). */
|
|
3084
|
-
clrIdx: number | null;
|
|
3085
|
-
}
|
|
3086
|
-
/** One legacy review comment (`p:cm`), with its author resolved via the registry. */
|
|
3087
|
-
interface Comment {
|
|
3088
|
-
/** Resolved author display name (via `@authorId` → `commentAuthors.xml`), or `null` when unresolved. */
|
|
3089
|
-
author: string | null;
|
|
3090
|
-
/** Resolved author initials, or `null` when unresolved. */
|
|
3091
|
-
authorInitials: string | null;
|
|
3092
|
-
/** The comment's `@authorId`, or `null` when absent/unparseable. */
|
|
3093
|
-
authorId: number | null;
|
|
3094
|
-
/** The comment's per-author 1-based index (`@idx`), or `null` when absent. */
|
|
3095
|
-
idx: number | null;
|
|
3096
|
-
/** The comment body text (`p:text`). */
|
|
3097
|
-
text: string;
|
|
3098
|
-
/** Marker X position in EMU (`p:pos/@x`), or `null` when absent. */
|
|
3099
|
-
x: number | null;
|
|
3100
|
-
/** Marker Y position in EMU (`p:pos/@y`), or `null` when absent. */
|
|
3101
|
-
y: number | null;
|
|
3102
|
-
/** Authored timestamp (`@dt`, ISO-8601 as written), or `null` when absent. */
|
|
3103
|
-
date: string | null;
|
|
3104
|
-
}
|
|
3105
|
-
/** One entry of the modern deck-wide author registry (`p188:author`). */
|
|
3106
|
-
interface ModernCommentAuthor {
|
|
3107
|
-
/** Author id (`@id`) — a GUID string like `{E8A64ABA-…}`, referenced by each comment's `@authorId`. */
|
|
3108
|
-
id: string | null;
|
|
3109
|
-
/** Display name (`@name`). */
|
|
3110
|
-
name: string;
|
|
3111
|
-
/** Initials (`@initials`). */
|
|
3112
|
-
initials: string;
|
|
3113
|
-
/** Account identifier (`@userId`, e.g. an email), or `null`. */
|
|
3114
|
-
userId: string | null;
|
|
3115
|
-
/** Identity provider (`@providerId`, e.g. `Windows Live`), or `null`. */
|
|
3116
|
-
providerId: string | null;
|
|
3117
|
-
}
|
|
3118
|
-
/** One modern comment or reply (`p188:cm` / `p188:reply`), with its author resolved via the registry. */
|
|
3119
|
-
interface ModernComment {
|
|
3120
|
-
/** The comment's own GUID id (`@id`), or `null` when absent. */
|
|
3121
|
-
id: string | null;
|
|
3122
|
-
/** Resolved author display name (via `@authorId` → `authors.xml`), or `null` when unresolved. */
|
|
3123
|
-
author: string | null;
|
|
3124
|
-
/** Resolved author initials, or `null` when unresolved. */
|
|
3125
|
-
authorInitials: string | null;
|
|
3126
|
-
/** The comment's `@authorId` GUID, or `null` when absent. */
|
|
3127
|
-
authorId: string | null;
|
|
3128
|
-
/** Creation timestamp (`@created`, ISO-8601 as written), or `null` when absent. */
|
|
3129
|
-
created: string | null;
|
|
3130
|
-
/** The comment body text; multiple paragraphs are joined with `\n`. */
|
|
3131
|
-
text: string;
|
|
3132
|
-
/** Marker X position in EMU (`p188:pos/@x`), or `null` (replies carry no position). */
|
|
3133
|
-
x: number | null;
|
|
3134
|
-
/** Marker Y position in EMU (`p188:pos/@y`), or `null` (replies carry no position). */
|
|
3135
|
-
y: number | null;
|
|
3136
|
-
/** Nested replies in thread order; each is itself a {@link ModernComment} with no further replies. */
|
|
3137
|
-
replies: ModernComment[];
|
|
3138
|
-
}
|
|
3139
|
-
/** Which comment schema a deck carries. `'none'` when it has neither part. */
|
|
3140
|
-
type CommentSchema = 'legacy' | 'modern' | 'none';
|
|
3141
|
-
//#endregion
|
|
3142
|
-
//#region src/read/api/tags.d.ts
|
|
3143
|
-
/** One programmatic tag (`p:tag`) — a name/value string pair. */
|
|
3144
|
-
interface Tag {
|
|
3145
|
-
/** The tag's `@name`. */
|
|
3146
|
-
name: string;
|
|
3147
|
-
/** The tag's `@val`. */
|
|
3148
|
-
val: string;
|
|
3149
|
-
}
|
|
3150
|
-
/**
|
|
3151
|
-
* Read every tag referenced by `ownerPartName` (a slide part or the presentation
|
|
3152
|
-
* part), resolving the owner's `tags` relationship(s) to their `ppt/tags/tagN.xml`
|
|
3153
|
-
* part(s) and flattening each part's `p:tag` children into `{ name, val }`. `[]`
|
|
3154
|
-
* when the owner references no tag part. Rel-driven rather than walking
|
|
3155
|
-
* `p:custDataLst`, so it is robust to element ordering in the owner.
|
|
3156
|
-
*/
|
|
3157
|
-
declare function readTagsForPart(opc: OpcPackage, ownerPartName: string): Tag[];
|
|
3158
|
-
//#endregion
|
|
3159
3075
|
//#region src/read/api/chrome.d.ts
|
|
3160
|
-
/** The 12 theme colour-scheme slots (`a:clrScheme` children), in schema order. */
|
|
3161
|
-
type ThemeColorSlot = 'dk1' | 'lt1' | 'dk2' | 'lt2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6' | 'hlink' | 'folHlink';
|
|
3162
|
-
/** The 12 colour-map tokens (`p:clrMap` attributes), each pointing at a {@link ThemeColorSlot}. */
|
|
3163
|
-
type ColorMapToken = 'bg1' | 'tx1' | 'bg2' | 'tx2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6' | 'hlink' | 'folHlink';
|
|
3164
3076
|
/**
|
|
3165
3077
|
* One theme font family (`a:majorFont` or `a:minorFont`): the primary Latin face
|
|
3166
3078
|
* plus the East-Asian and complex-script faces. Each is `null` when the theme
|
|
@@ -3235,14 +3147,20 @@ declare class Theme {
|
|
|
3235
3147
|
*/
|
|
3236
3148
|
declare class Placeholder {
|
|
3237
3149
|
#private;
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
/** The
|
|
3241
|
-
|
|
3150
|
+
/** The placeholder's `p:sp`. `protected` so {@link NotesPlaceholder} can read it. */
|
|
3151
|
+
protected readonly sp: Element;
|
|
3152
|
+
/** The part the `p:sp` lives in — a master, a layout, or a notes slide. */
|
|
3153
|
+
protected readonly part: Part;
|
|
3154
|
+
/** The owning part's theme context, threaded to {@link textFrame}. */
|
|
3155
|
+
protected readonly themeContext: ThemeContext;
|
|
3242
3156
|
/** The owning part's relationships, threaded to {@link textFrame} for hyperlink resolution. */
|
|
3243
|
-
|
|
3244
|
-
constructor(
|
|
3245
|
-
/** The
|
|
3157
|
+
protected readonly relationships: Relationships;
|
|
3158
|
+
constructor(
|
|
3159
|
+
/** The placeholder's `p:sp`. `protected` so {@link NotesPlaceholder} can read it. */
|
|
3160
|
+
sp: Element,
|
|
3161
|
+
/** The part the `p:sp` lives in — a master, a layout, or a notes slide. */
|
|
3162
|
+
part: Part,
|
|
3163
|
+
/** The owning part's theme context, threaded to {@link textFrame}. */
|
|
3246
3164
|
themeContext: ThemeContext,
|
|
3247
3165
|
/** The owning part's relationships, threaded to {@link textFrame} for hyperlink resolution. */
|
|
3248
3166
|
relationships: Relationships);
|
|
@@ -3270,33 +3188,86 @@ declare class Placeholder {
|
|
|
3270
3188
|
get textFrame(): TextFrame | null;
|
|
3271
3189
|
/** Escape hatch: the underlying `p:sp` element. After mutating it call {@link markDirty}, or `save()` writes the original bytes. */
|
|
3272
3190
|
get element_(): Element;
|
|
3273
|
-
/** Mark the owning
|
|
3191
|
+
/** Mark the owning part dirty so `save()` reserializes it. Call after mutating {@link element_}. */
|
|
3274
3192
|
markDirty(): void;
|
|
3275
3193
|
}
|
|
3276
3194
|
/**
|
|
3277
|
-
*
|
|
3278
|
-
*
|
|
3279
|
-
*
|
|
3280
|
-
*
|
|
3281
|
-
*
|
|
3195
|
+
* The shared body of a slide master and a slide layout — the two template tiers a slide
|
|
3196
|
+
* inherits from.
|
|
3197
|
+
*
|
|
3198
|
+
* Both are an OPC part holding a `p:cSld` with a shape tree and a resolvable theme context, and
|
|
3199
|
+
* both were written out in full, member for member: `partName`, `relationships`, `name`,
|
|
3200
|
+
* `shapes`, `shapeByIdDeep`, `placeholders`, `themeContext` and the two DOM lookups behind them
|
|
3201
|
+
* were character-for-character identical in the two classes. Nothing about that was broken, but
|
|
3202
|
+
* it meant every accessor added to a template tier had to be added twice, and the ones meant to
|
|
3203
|
+
* agree could quietly stop agreeing.
|
|
3204
|
+
*
|
|
3205
|
+
* What genuinely differs stays on the subclasses. `theme` differs because a layout has to walk
|
|
3206
|
+
* to its master first. `background` differs in the tier label it decodes with and in where it
|
|
3207
|
+
* finds the theme part. And the context itself differs, which is why {@link resolveThemeContext}
|
|
3208
|
+
* is abstract: a master resolves its own `p:clrMap` + theme, a layout walks layout → master →
|
|
3209
|
+
* theme. The caching around it is shared, so a subclass supplies the walk and nothing else.
|
|
3210
|
+
*
|
|
3211
|
+
* `Slide` deliberately does not extend this. It is a shape host too, but it is constructed from
|
|
3212
|
+
* a `Presentation` rather than an `OpcPackage`, reaches its relationships through that, and
|
|
3213
|
+
* reports an unnamed slide as `null` where a template tier reports `''` — three differences in
|
|
3214
|
+
* the same handful of members, which is more contortion than the sharing is worth.
|
|
3282
3215
|
*/
|
|
3283
|
-
declare class
|
|
3216
|
+
declare abstract class TemplatePart implements ShapeHost {
|
|
3284
3217
|
#private;
|
|
3285
|
-
/** The package
|
|
3218
|
+
/** The package this part belongs to, for reaching related parts (theme, master, media). */
|
|
3286
3219
|
readonly opc: OpcPackage;
|
|
3287
|
-
/**
|
|
3220
|
+
/** This tier's OPC part. */
|
|
3288
3221
|
readonly part: Part;
|
|
3289
3222
|
constructor(
|
|
3290
|
-
/** The package
|
|
3223
|
+
/** The package this part belongs to, for reaching related parts (theme, master, media). */
|
|
3291
3224
|
opc: OpcPackage,
|
|
3292
|
-
/**
|
|
3225
|
+
/** This tier's OPC part. */
|
|
3293
3226
|
part: Part);
|
|
3294
|
-
/** Partname of
|
|
3227
|
+
/** Partname of this part. */
|
|
3295
3228
|
get partName(): string;
|
|
3296
|
-
/** This
|
|
3229
|
+
/** This part's relationships (its theme or master, image embeds, hyperlinks, …). */
|
|
3297
3230
|
get relationships(): Relationships;
|
|
3298
|
-
/** The
|
|
3231
|
+
/** The authoring name (`p:cSld/@name`), or `''` when unnamed. */
|
|
3299
3232
|
get name(): string;
|
|
3233
|
+
/**
|
|
3234
|
+
* Every shape in this tier's `p:cSld/p:spTree`, in document order — the same `AnyShape`
|
|
3235
|
+
* union `Slide.shapes` returns, so shape-walking code applies unchanged.
|
|
3236
|
+
*
|
|
3237
|
+
* {@link placeholders} is the filtered view of the same tree.
|
|
3238
|
+
*/
|
|
3239
|
+
get shapes(): AnyShape[];
|
|
3240
|
+
/** The shape anywhere in this tier's tree with the given drawing id, or `undefined`. */
|
|
3241
|
+
shapeByIdDeep(id: number): AnyShape | undefined;
|
|
3242
|
+
/** This tier's placeholder shapes (`p:sp` carrying a `p:ph`), in document order. */
|
|
3243
|
+
get placeholders(): Placeholder[];
|
|
3244
|
+
/** This tier's colour/font context, resolved once and cached. Backs each {@link Placeholder}'s text frame. */
|
|
3245
|
+
themeContext(): ThemeContext;
|
|
3246
|
+
/** The theme this tier resolves against, or `null` when the chain is incomplete. */
|
|
3247
|
+
abstract get theme(): Theme | null;
|
|
3248
|
+
/** This tier's *own* background (`p:cSld/p:bg`), decoded, or `null` when it defines none. */
|
|
3249
|
+
abstract get background(): SlideBackground | null;
|
|
3250
|
+
/** Walk this tier's colour/font chain. Called once; {@link themeContext} caches the result. */
|
|
3251
|
+
protected abstract resolveThemeContext(): ThemeContext;
|
|
3252
|
+
/** The `p:cSld` of this part, or `null`. */
|
|
3253
|
+
protected cSld(): Element | null;
|
|
3254
|
+
/** The `p:cSld/p:spTree` of this part, or `null`. */
|
|
3255
|
+
protected spTree(): Element | null;
|
|
3256
|
+
/** The part this one's first relationship of `type` points at, or `null`. */
|
|
3257
|
+
protected relTarget(type: string): Part | null;
|
|
3258
|
+
}
|
|
3259
|
+
/**
|
|
3260
|
+
* A deck's slide master (`slideMasterN.xml`) as a modeled object. Exposes the
|
|
3261
|
+
* property tiers a bound slide inherits: the {@link colorMap} (token → theme slot),
|
|
3262
|
+
* its {@link theme}, its `shapes` and the `placeholders` subset of them, its own
|
|
3263
|
+
* {@link background}, and the {@link layouts} that build on it. Reachable from
|
|
3264
|
+
* {@link SlideLayout.master} and `Slide.master`.
|
|
3265
|
+
*
|
|
3266
|
+
* `shapes` is where a template's non-placeholder furniture lives: the header band, the
|
|
3267
|
+
* rule under the title, the logo. Whether a given slide draws them is
|
|
3268
|
+
* `Slide.showMasterSp` (and, for a layout, {@link SlideLayout.showMasterSp}).
|
|
3269
|
+
*/
|
|
3270
|
+
declare class SlideMaster extends TemplatePart {
|
|
3300
3271
|
/** The master's theme (via its `theme` relationship), or `null` when absent. */
|
|
3301
3272
|
get theme(): Theme | null;
|
|
3302
3273
|
/**
|
|
@@ -3306,20 +3277,6 @@ declare class SlideMaster implements ShapeHost {
|
|
|
3306
3277
|
* A token the map omits reads `null`.
|
|
3307
3278
|
*/
|
|
3308
3279
|
get colorMap(): Record<ColorMapToken, string | null>;
|
|
3309
|
-
/**
|
|
3310
|
-
* Every shape in the master's `p:cSld/p:spTree`, in document order — the same
|
|
3311
|
-
* `AnyShape` union `Slide.shapes` returns, so shape-walking code applies
|
|
3312
|
-
* unchanged. This is where a template's non-placeholder furniture lives: the
|
|
3313
|
-
* header band, the rule under the title, the logo. Whether a given slide draws
|
|
3314
|
-
* them is `Slide.showMasterSp` (and, for a layout, {@link SlideLayout.showMasterSp}).
|
|
3315
|
-
*
|
|
3316
|
-
* {@link placeholders} is the filtered view of the same tree.
|
|
3317
|
-
*/
|
|
3318
|
-
get shapes(): AnyShape[];
|
|
3319
|
-
/** The shape anywhere in the master's tree with the given drawing id, or `undefined`. */
|
|
3320
|
-
shapeByIdDeep(id: number): AnyShape | undefined;
|
|
3321
|
-
/** The master's placeholder shapes (`p:sp` carrying a `p:ph`), in document order. */
|
|
3322
|
-
get placeholders(): Placeholder[];
|
|
3323
3280
|
/** The layouts built on this master (via `p:sldLayoutIdLst` → its relationships), in list order. */
|
|
3324
3281
|
get layouts(): SlideLayout[];
|
|
3325
3282
|
/**
|
|
@@ -3328,36 +3285,21 @@ declare class SlideMaster implements ShapeHost {
|
|
|
3328
3285
|
* resolved through the slide → layout → master chain, is `Slide.background`.
|
|
3329
3286
|
*/
|
|
3330
3287
|
get background(): SlideBackground | null;
|
|
3331
|
-
/**
|
|
3332
|
-
|
|
3333
|
-
* cached. Backs each {@link Placeholder}'s text frame.
|
|
3334
|
-
*/
|
|
3335
|
-
themeContext(): ThemeContext;
|
|
3288
|
+
/** A master's context is its own `p:clrMap` plus its theme — no walk beyond this part. */
|
|
3289
|
+
protected resolveThemeContext(): ThemeContext;
|
|
3336
3290
|
}
|
|
3337
3291
|
/**
|
|
3338
3292
|
* A deck's slide layout (`slideLayoutN.xml`) as a modeled object — the gallery entry
|
|
3339
3293
|
* a slide binds to. Exposes its {@link name}, its {@link type} (import-only; the
|
|
3340
3294
|
* writer authors none), its {@link master} (and, through it, the {@link theme}), its
|
|
3341
|
-
*
|
|
3342
|
-
*
|
|
3295
|
+
* `shapes` and the `placeholders` subset of them, and its own {@link background}.
|
|
3296
|
+
* Reachable from `Slide.layout` and {@link SlideMaster.layouts}.
|
|
3297
|
+
*
|
|
3298
|
+
* The write API authors non-placeholder shapes into a layout: every
|
|
3299
|
+
* `defineSlideMaster({ objects })` member that is not a `placeholder` — a `rect`, a
|
|
3300
|
+
* `line`, an `image`, a `chart`, a `text` box — lands in this tier's tree.
|
|
3343
3301
|
*/
|
|
3344
|
-
declare class SlideLayout
|
|
3345
|
-
#private;
|
|
3346
|
-
/** The package the layout belongs to, for reaching its master, theme, and media. */
|
|
3347
|
-
readonly opc: OpcPackage;
|
|
3348
|
-
/** The layout's OPC part (`/ppt/slideLayouts/slideLayoutN.xml`). */
|
|
3349
|
-
readonly part: Part;
|
|
3350
|
-
constructor(
|
|
3351
|
-
/** The package the layout belongs to, for reaching its master, theme, and media. */
|
|
3352
|
-
opc: OpcPackage,
|
|
3353
|
-
/** The layout's OPC part (`/ppt/slideLayouts/slideLayoutN.xml`). */
|
|
3354
|
-
part: Part);
|
|
3355
|
-
/** Partname of the layout part. */
|
|
3356
|
-
get partName(): string;
|
|
3357
|
-
/** This layout part's relationships (its master, image embeds, hyperlinks, …). */
|
|
3358
|
-
get relationships(): Relationships;
|
|
3359
|
-
/** The layout's authoring name (`p:cSld/@name`, e.g. `Title and Content`), or `''` when unnamed. */
|
|
3360
|
-
get name(): string;
|
|
3302
|
+
declare class SlideLayout extends TemplatePart {
|
|
3361
3303
|
/**
|
|
3362
3304
|
* The layout type (`p:sldLayout/@type`, e.g. `title` | `obj` | `blank`), or `null`
|
|
3363
3305
|
* when the layout declares none. Import-only: the writer authors no `@type`, so an
|
|
@@ -3377,20 +3319,6 @@ declare class SlideLayout implements ShapeHost {
|
|
|
3377
3319
|
get master(): SlideMaster | null;
|
|
3378
3320
|
/** The theme this layout resolves against, via its {@link master}, or `null`. */
|
|
3379
3321
|
get theme(): Theme | null;
|
|
3380
|
-
/**
|
|
3381
|
-
* Every shape in the layout's `p:cSld/p:spTree`, in document order — the same
|
|
3382
|
-
* `AnyShape` union `Slide.shapes` returns, so shape-walking code applies
|
|
3383
|
-
* unchanged. The write API authors non-placeholder shapes here: every
|
|
3384
|
-
* `defineSlideMaster({ objects })` member that is not a `placeholder` (a `rect`,
|
|
3385
|
-
* a `line`, an `image`, a `chart`, a `text` box) lands in this tree.
|
|
3386
|
-
*
|
|
3387
|
-
* {@link placeholders} is the filtered view of the same tree.
|
|
3388
|
-
*/
|
|
3389
|
-
get shapes(): AnyShape[];
|
|
3390
|
-
/** The shape anywhere in the layout's tree with the given drawing id, or `undefined`. */
|
|
3391
|
-
shapeByIdDeep(id: number): AnyShape | undefined;
|
|
3392
|
-
/** The layout's placeholder shapes (`p:sp` carrying a `p:ph`), in document order. */
|
|
3393
|
-
get placeholders(): Placeholder[];
|
|
3394
3322
|
/**
|
|
3395
3323
|
* The layout's *own* background (`p:cSld/p:bg`), decoded, or `null` when it defines
|
|
3396
3324
|
* none. A layout usually authors one — an explicit fill (`p:bgPr`) or a
|
|
@@ -3398,12 +3326,161 @@ declare class SlideLayout implements ShapeHost {
|
|
|
3398
3326
|
* `Slide.background`.
|
|
3399
3327
|
*/
|
|
3400
3328
|
get background(): SlideBackground | null;
|
|
3329
|
+
/** A layout's context is walked layout → master → theme, which is why it is not the master's. */
|
|
3330
|
+
protected resolveThemeContext(): ThemeContext;
|
|
3331
|
+
}
|
|
3332
|
+
//#endregion
|
|
3333
|
+
//#region src/read/api/notes.d.ts
|
|
3334
|
+
/**
|
|
3335
|
+
* One placeholder shape (`p:sp`) of a notes slide. A notes slide holds a fixed set:
|
|
3336
|
+
* the slide thumbnail (`type="sldImg"`), the notes body (`type="body"`), and the
|
|
3337
|
+
* slide number (`type="sldNum"`). Geometry getters read the placeholder's *own*
|
|
3338
|
+
* `a:xfrm` and are `null` when it inherits geometry from the notesMaster (the case
|
|
3339
|
+
* on an authored deck, whose `sldImg`/`sldNum` carry an empty `p:spPr`).
|
|
3340
|
+
*
|
|
3341
|
+
* A notes placeholder IS a {@link Placeholder} — identity, geometry and the escape hatch are
|
|
3342
|
+
* the same twelve members read off the same `p:sp`, down to `p:ph` being found the same way —
|
|
3343
|
+
* so it extends one rather than repeating it. Two things are its own: the flattened
|
|
3344
|
+
* {@link text} convenience, and a {@link textFrame} that threads the notesMaster inheritance
|
|
3345
|
+
* context onto the body frame.
|
|
3346
|
+
*/
|
|
3347
|
+
declare class NotesPlaceholder extends Placeholder {
|
|
3348
|
+
/**
|
|
3349
|
+
* The placeholder's text as a navigable {@link TextFrame} (`p:txBody`), or `null`
|
|
3350
|
+
* when it carries no text body (the `sldImg` thumbnail). The body placeholder's
|
|
3351
|
+
* runs round-trip a slide's authored notes; the `sldNum` placeholder's frame
|
|
3352
|
+
* holds the slide-number `a:fld`, whose value surfaces through `TextFrame.text`.
|
|
3353
|
+
*
|
|
3354
|
+
* Overrides {@link Placeholder.textFrame} for the inheritance context alone — see below.
|
|
3355
|
+
*/
|
|
3356
|
+
get textFrame(): TextFrame | null;
|
|
3357
|
+
/** The placeholder's flattened text (paragraphs joined by `\n`), or `''` when it has no text body. */
|
|
3358
|
+
get text(): string;
|
|
3359
|
+
}
|
|
3360
|
+
/**
|
|
3361
|
+
* A slide's speaker-notes slide (`notesSlideN.xml`) as a modeled object — the deep
|
|
3362
|
+
* companion to {@link import('./slide.js').Slide.notesText}. Exposes the notes
|
|
3363
|
+
* shape tree as {@link NotesPlaceholder}s ({@link body}/{@link slideImage}/
|
|
3364
|
+
* {@link slideNumber}) plus the body {@link textFrame} the older getters flatten.
|
|
3365
|
+
*
|
|
3366
|
+
* The theme context (notesMaster → `theme2.xml`) is resolved once and shared across
|
|
3367
|
+
* every placeholder's text frame.
|
|
3368
|
+
*/
|
|
3369
|
+
declare class NotesSlide {
|
|
3370
|
+
#private;
|
|
3371
|
+
private readonly opc;
|
|
3372
|
+
/** The notes slide's OPC part (`/ppt/notesSlides/notesSlideN.xml`). */
|
|
3373
|
+
readonly part: Part;
|
|
3374
|
+
constructor(opc: OpcPackage,
|
|
3375
|
+
/** The notes slide's OPC part (`/ppt/notesSlides/notesSlideN.xml`). */
|
|
3376
|
+
part: Part);
|
|
3377
|
+
/** Partname of the notes slide part. */
|
|
3378
|
+
get partName(): string;
|
|
3401
3379
|
/**
|
|
3402
|
-
* The
|
|
3403
|
-
* and cached. Backs
|
|
3380
|
+
* The notes theme context, resolved through the notesMaster → `theme2.xml` chain
|
|
3381
|
+
* and cached. Backs {@link NotesPlaceholder.textFrame}'s `Run.resolvedColor`.
|
|
3404
3382
|
*/
|
|
3405
3383
|
themeContext(): ThemeContext;
|
|
3384
|
+
/** The placeholders (`p:sp`) in the notes shape tree, in document order. */
|
|
3385
|
+
get placeholders(): NotesPlaceholder[];
|
|
3386
|
+
/** The notes body placeholder (`p:ph type="body"`), or `null` when the notes slide has none. */
|
|
3387
|
+
get body(): NotesPlaceholder | null;
|
|
3388
|
+
/** The slide-thumbnail placeholder (`p:ph type="sldImg"`), or `null` when absent. */
|
|
3389
|
+
get slideImage(): NotesPlaceholder | null;
|
|
3390
|
+
/** The slide-number placeholder (`p:ph type="sldNum"`, carrying the slide-number field), or `null`. */
|
|
3391
|
+
get slideNumber(): NotesPlaceholder | null;
|
|
3392
|
+
/** The notes body as a navigable {@link TextFrame}, or `null` when there is no body text frame. */
|
|
3393
|
+
get textFrame(): TextFrame | null;
|
|
3394
|
+
/** The notes body text flattened (paragraphs joined by `\n`), or `''` when the body is empty/absent. */
|
|
3395
|
+
get text(): string;
|
|
3396
|
+
}
|
|
3397
|
+
//#endregion
|
|
3398
|
+
//#region src/read/api/comments.d.ts
|
|
3399
|
+
/** One entry of the deck-wide comment-author registry (`p:cmAuthor`). */
|
|
3400
|
+
interface CommentAuthor {
|
|
3401
|
+
/** Author id (`@id`), referenced by each comment's `@authorId`. */
|
|
3402
|
+
id: number | null;
|
|
3403
|
+
/** Display name (`@name`). */
|
|
3404
|
+
name: string;
|
|
3405
|
+
/** Initials shown in the comment marker (`@initials`). */
|
|
3406
|
+
initials: string;
|
|
3407
|
+
/** Highest per-author comment index used (`@lastIdx`). */
|
|
3408
|
+
lastIdx: number | null;
|
|
3409
|
+
/** Author colour slot (`@clrIdx`). */
|
|
3410
|
+
clrIdx: number | null;
|
|
3411
|
+
}
|
|
3412
|
+
/** One legacy review comment (`p:cm`), with its author resolved via the registry. */
|
|
3413
|
+
interface Comment {
|
|
3414
|
+
/** Resolved author display name (via `@authorId` → `commentAuthors.xml`), or `null` when unresolved. */
|
|
3415
|
+
author: string | null;
|
|
3416
|
+
/** Resolved author initials, or `null` when unresolved. */
|
|
3417
|
+
authorInitials: string | null;
|
|
3418
|
+
/** The comment's `@authorId`, or `null` when absent/unparseable. */
|
|
3419
|
+
authorId: number | null;
|
|
3420
|
+
/** The comment's per-author 1-based index (`@idx`), or `null` when absent. */
|
|
3421
|
+
idx: number | null;
|
|
3422
|
+
/** The comment body text (`p:text`). */
|
|
3423
|
+
text: string;
|
|
3424
|
+
/** Marker X position in EMU (`p:pos/@x`), or `null` when absent. */
|
|
3425
|
+
x: number | null;
|
|
3426
|
+
/** Marker Y position in EMU (`p:pos/@y`), or `null` when absent. */
|
|
3427
|
+
y: number | null;
|
|
3428
|
+
/** Authored timestamp (`@dt`, ISO-8601 as written), or `null` when absent. */
|
|
3429
|
+
date: string | null;
|
|
3430
|
+
}
|
|
3431
|
+
/** One entry of the modern deck-wide author registry (`p188:author`). */
|
|
3432
|
+
interface ModernCommentAuthor {
|
|
3433
|
+
/** Author id (`@id`) — a GUID string like `{E8A64ABA-…}`, referenced by each comment's `@authorId`. */
|
|
3434
|
+
id: string | null;
|
|
3435
|
+
/** Display name (`@name`). */
|
|
3436
|
+
name: string;
|
|
3437
|
+
/** Initials (`@initials`). */
|
|
3438
|
+
initials: string;
|
|
3439
|
+
/** Account identifier (`@userId`, e.g. an email), or `null`. */
|
|
3440
|
+
userId: string | null;
|
|
3441
|
+
/** Identity provider (`@providerId`, e.g. `Windows Live`), or `null`. */
|
|
3442
|
+
providerId: string | null;
|
|
3443
|
+
}
|
|
3444
|
+
/** One modern comment or reply (`p188:cm` / `p188:reply`), with its author resolved via the registry. */
|
|
3445
|
+
interface ModernComment {
|
|
3446
|
+
/** The comment's own GUID id (`@id`), or `null` when absent. */
|
|
3447
|
+
id: string | null;
|
|
3448
|
+
/** Resolved author display name (via `@authorId` → `authors.xml`), or `null` when unresolved. */
|
|
3449
|
+
author: string | null;
|
|
3450
|
+
/** Resolved author initials, or `null` when unresolved. */
|
|
3451
|
+
authorInitials: string | null;
|
|
3452
|
+
/** The comment's `@authorId` GUID, or `null` when absent. */
|
|
3453
|
+
authorId: string | null;
|
|
3454
|
+
/** Creation timestamp (`@created`, ISO-8601 as written), or `null` when absent. */
|
|
3455
|
+
created: string | null;
|
|
3456
|
+
/** The comment body text; multiple paragraphs are joined with `\n`. */
|
|
3457
|
+
text: string;
|
|
3458
|
+
/** Marker X position in EMU (`p188:pos/@x`), or `null` (replies carry no position). */
|
|
3459
|
+
x: number | null;
|
|
3460
|
+
/** Marker Y position in EMU (`p188:pos/@y`), or `null` (replies carry no position). */
|
|
3461
|
+
y: number | null;
|
|
3462
|
+
/** Nested replies in thread order; each is itself a {@link ModernComment} with no further replies. */
|
|
3463
|
+
replies: ModernComment[];
|
|
3464
|
+
}
|
|
3465
|
+
/** Which comment schema a deck carries. `'none'` when it has neither part. */
|
|
3466
|
+
type CommentSchema = 'legacy' | 'modern' | 'none';
|
|
3467
|
+
//#endregion
|
|
3468
|
+
//#region src/read/api/tags.d.ts
|
|
3469
|
+
/** One programmatic tag (`p:tag`) — a name/value string pair. */
|
|
3470
|
+
interface Tag {
|
|
3471
|
+
/** The tag's `@name`. */
|
|
3472
|
+
name: string;
|
|
3473
|
+
/** The tag's `@val`. */
|
|
3474
|
+
val: string;
|
|
3406
3475
|
}
|
|
3476
|
+
/**
|
|
3477
|
+
* Read every tag referenced by `ownerPartName` (a slide part or the presentation
|
|
3478
|
+
* part), resolving the owner's `tags` relationship(s) to their `ppt/tags/tagN.xml`
|
|
3479
|
+
* part(s) and flattening each part's `p:tag` children into `{ name, val }`. `[]`
|
|
3480
|
+
* when the owner references no tag part. Rel-driven rather than walking
|
|
3481
|
+
* `p:custDataLst`, so it is robust to element ordering in the owner.
|
|
3482
|
+
*/
|
|
3483
|
+
declare function readTagsForPart(opc: OpcPackage, ownerPartName: string): Tag[];
|
|
3407
3484
|
//#endregion
|
|
3408
3485
|
//#region src/read/api/transition.d.ts
|
|
3409
3486
|
/** `ST_TransitionSpeed` — the coarse speed bucket (`spd`), default `fast`. */
|
|
@@ -4791,5 +4868,5 @@ interface FromTemplateOptions {
|
|
|
4791
4868
|
keepTemplateContentType?: boolean;
|
|
4792
4869
|
}
|
|
4793
4870
|
//#endregion
|
|
4794
|
-
export {
|
|
4795
|
-
//# sourceMappingURL=presentation-types-
|
|
4871
|
+
export { TableCell as $, ShapeType as $t, CommentSchema as A, AutofitMode as At, ThemeFontScheme as B, ChildFrame as Bt, TransitionInfo as C, ChartLine as Ct, readTagsForPart as D, AutoShape as Dt, Tag as E, Picture as Et, Placeholder as F, Paragraph as Ft, isGraphicFrame as G, Glow as Gt, GroupShape as H, CustomGeometry as Ht, SlideLayout as I, Run as It, GraphicFrame as J, LineEnds as Jt, isGroupShape as K, InnerShadow as Kt, SlideMaster as L, RunHyperlink as Lt, ModernCommentAuthor as M, BulletDetail as Mt, NotesPlaceholder as N, BulletStyle as Nt, Comment as O, Shape as Ot, NotesSlide as P, LineSpacing as Pt, Table as Q, Reflection as Qt, Theme as R, TextFrame as Rt, Slide as S, ChartLegend as St, TransitionSpeed as T, Connector as Tt, isAutoShape as U, CustomGeometryPath as Ut, AnyShape as V, ConnectionSite as Vt, isConnector as W, GeometryCommand as Wt, CellBorders as X, Recolor as Xt, CellBorder as Y, OuterShadow as Yt, CellThreeD as Z, RecolorColor as Zt, CustomProperty as _, AxisNumberFormat as _t, ExtractedSlides as a, FillRect as an, Diagram as at, AddPictureOptions as b, ChartDataLabels as bt, ImportSlideMastersOptions as c, GradientFill as cn, DiagramDrawnShape as ct, ImportedSlideMaster as d, resolveColorElement as dn, DiagramPointType as dt, SoftEdge as en, TableCellBorderEdit as et, LayoutHandle as f, ColorTransform as fn, ChartEx as ft, CoreProperties as g, EmbeddedFontSlot as gn, ChartExSeries as gt, Presentation as h, ColorContext as hn, ChartExLegend as ht, ExtractedSlide as i, SlideBackground as in, TableCellEdge as it, ModernComment as j, BodyProperties as jt, CommentAuthor as k, ShapeHost as kt, ImportSlideOptions as l, GradientStop as ln, DiagramNode as lt, SlideSource as m, applyColorTransforms as mn, ChartExDataLabels as mt, EmbeddedFontFaceInfo as n, BackgroundFill as nn, ResolvedTableStyle as nt, FromTemplateOptions as o, PictureFill as on, DiagramConnection as ot, SlideSize as p, EffectiveColor as pn, ChartExAxis as pt, isPicture as q, LineEnd as qt, EmbeddedFontInfo as r, BackgroundSource as rn, TableConditionFlags as rt, ImportShapeOptions as s, PictureFillTile as sn, DiagramConnectionType as st, AppendSlidesOptions as t, PatternFill as tn, TableRow as tt, ImportSlidesRequest as u, ResolvedColor as un, DiagramPoint as ut, readCoreProperties as v, Chart as vt, TransitionInput as w, ChartSeries as wt, AddTextBoxOptions as x, ChartFill as xt, readCustomProperties as y, ChartAxis as yt, ThemeFontFace as z, AbsoluteFrame as zt };
|
|
4872
|
+
//# sourceMappingURL=presentation-types-DP_8jog7.d.ts.map
|