@office-kit/pptx 0.18.0 → 0.18.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @office-kit/pptx
2
2
 
3
+ ## 0.18.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 78ee67f: fix: theme readers and the preview picked the first theme part by name instead of the slide master's theme
8
+
9
+ `getPresentationTheme`, `getPresentationFonts`, `setPresentationTheme`, `setPresentationFonts` and every color resolver built on them (slide backgrounds, `scheme:*` fills, the deck body text color, the preview renderer) read `/ppt/theme/theme1.xml` whenever a package carried more than one theme. Notes and handout masters carry their own theme, and Google Slides exports write the notes theme as `theme1.xml` and the slide theme as `theme2.xml`, so a dark deck rendered on white with black text.
10
+
11
+ The deck theme is now the one the first slide master (in `<p:sldMasterIdLst>` order) relates to, then the presentation part's own theme relationship, and only then the first theme part by name.
12
+
13
+ ## 0.18.1
14
+
15
+ ### Patch Changes
16
+
17
+ - c8bf75d: fix: `getParagraphAlignment` and `getTableCellAlignment` returned an invalid `algn` value from a file as if it were a valid alignment
18
+
19
+ Both getters cast the attribute straight to `ParagraphAlignment`, so a hand-edited or third-party deck with `algn="bogus"` handed `'bogus'` to typed code. They now parse the value, and anything outside `ST_TextAlignType` reads as `null` (unset), like the other alignment readers already did.
20
+
21
+ Their return type is now the new `ParagraphAlignmentToken` (`'l' | 'ctr' | 'r' | 'just' | 'dist' | 'justLow' | 'thaiDist'`) instead of the wider `ParagraphAlignment`. Runtime values are unchanged — these two getters have always returned the spec token, so `setParagraphAlignment(shape, 0, 'center')` reads back as `'ctr'` — but the old type also listed `'center'`, which let `getParagraphAlignment(…) === 'center'` compile although it can never be true. That comparison is now a type error; compare with `'ctr'`, or read the plain-English name from `getParagraphPropertiesEffective` / `getTableCellParagraphs`.
22
+
3
23
  ## 0.18.0
4
24
 
5
25
  ### Minor Changes
@@ -2380,6 +2380,20 @@ const buildBulletElement = (n) => {
2380
2380
  };
2381
2381
  const NAME_PPR_FOR_BULLET = qname("a", "pPr", NS.dml);
2382
2382
  const NAME_P_FOR_BULLET = qname("a", "p", NS.dml);
2383
+ const ALIGNMENT_TOKENS = [
2384
+ "l",
2385
+ "ctr",
2386
+ "r",
2387
+ "just",
2388
+ "dist",
2389
+ "justLow",
2390
+ "thaiDist"
2391
+ ];
2392
+ /**
2393
+ * Parses an `algn` attribute value from a file. A value outside
2394
+ * `ST_TextAlignType` is malformed input and reads as unset.
2395
+ */
2396
+ const parseAlignmentToken = (value) => ALIGNMENT_TOKENS.find((token) => token === value) ?? null;
2383
2397
  const alignToken = (a, caller) => {
2384
2398
  oneOf(a, [
2385
2399
  "left",
@@ -5020,22 +5034,52 @@ const readSchemeSlot = (parent, local) => {
5020
5034
  return "";
5021
5035
  };
5022
5036
  /**
5023
- * Returns the first theme's color scheme as `#RRGGBB` strings, or
5024
- * `null` if the package carries no theme. Each accent slot maps
5025
- * directly to the `accent1`–`accent6` chart palette defaults.
5037
+ * Returns the deck's color scheme as `#RRGGBB` strings, or `null` if
5038
+ * the package carries no theme. Each accent slot maps directly to the
5039
+ * `accent1`–`accent6` chart palette defaults.
5026
5040
  *
5027
- * Multi-master decks may carry several themes — v1 surfaces only the
5028
- * first one found (alphabetical by part name). Per-master theme
5029
- * lookup will land if a concrete user need shows up.
5041
+ * The deck's theme is the one its first slide master references. A
5042
+ * package usually holds more themes than that — notes and handout
5043
+ * masters carry their own, and Google Slides exports name the notes
5044
+ * theme `theme1.xml` ahead of the slide theme `theme2.xml` — so the
5045
+ * slide master relationship decides, not the part name. Multi-master
5046
+ * decks surface the first master's theme only; per-master theme lookup
5047
+ * will land if a concrete user need shows up.
5030
5048
  */
5031
5049
  const getPresentationTheme = (pres) => themeFromPackage(pres[INTERNAL_PACKAGE]);
5050
+ const resolveRelTarget = (from, target) => target.startsWith("/") ? partName(target) : resolveTarget(from, target);
5051
+ /** The theme part `from` relates to, or `null` when it has no theme rel. */
5052
+ const themePartRelatedTo = (pkg, from) => {
5053
+ const rel = pkg.getRels(from)?.items.find((r) => r.type === REL_TYPES.theme && r.targetMode === "Internal");
5054
+ if (!rel) return null;
5055
+ const part = pkg.getPart(resolveRelTarget(from, rel.target));
5056
+ return part !== null && part.contentType === THEME_CONTENT_TYPE ? part : null;
5057
+ };
5058
+ /** The first slide master's part name, in `<p:sldMasterIdLst>` order. */
5059
+ const firstSlideMasterPartName = (pkg) => {
5060
+ const presPart = pkg.getPart(PRES_PART_NAME);
5061
+ const presRels = pkg.getRels(PRES_PART_NAME);
5062
+ if (presPart === null || presRels === null) return null;
5063
+ const firstId = firstChildElement(parseXml(decode$1(presPart.data)).root, NAME_SLD_MASTER_ID_LST)?.children.find((c) => c.kind === "element");
5064
+ const rId = firstId?.kind === "element" ? getAttrValue(firstId, ATTR_R_ID$1) : null;
5065
+ const rel = presRels.items.find((r) => r.type === REL_TYPES.slideMaster && (rId === null || r.id === rId)) ?? presRels.items.find((r) => r.type === REL_TYPES.slideMaster);
5066
+ return rel ? resolveRelTarget(PRES_PART_NAME, rel.target) : null;
5067
+ };
5032
5068
  /**
5033
- * Returns the package's first theme part (by part name, alphabetical),
5034
- * matching the "first theme wins" v1 semantics documented on
5035
- * {@link getPresentationTheme}. Shared by every theme reader/writer so
5036
- * they agree on which theme a multi-master deck exposes.
5069
+ * The theme part the slides render with — see {@link getPresentationTheme}
5070
+ * for why the slide master's relationship decides. Falls back to the
5071
+ * presentation part's own theme rel, then to the first theme part by
5072
+ * name for hand-built packages that wire neither. Shared by every theme
5073
+ * reader/writer so they agree on which theme a deck exposes.
5037
5074
  */
5038
- const firstThemePart = (pkg) => pkg.parts.filter((p) => p.contentType === THEME_CONTENT_TYPE).sort((a, b) => a.name.localeCompare(b.name))[0];
5075
+ const deckThemePart = (pkg) => {
5076
+ const masterName = firstSlideMasterPartName(pkg);
5077
+ const viaMaster = masterName === null ? null : themePartRelatedTo(pkg, masterName);
5078
+ if (viaMaster) return viaMaster;
5079
+ const viaPresentation = themePartRelatedTo(pkg, PRES_PART_NAME);
5080
+ if (viaPresentation) return viaPresentation;
5081
+ return pkg.parts.filter((p) => p.contentType === THEME_CONTENT_TYPE).sort((a, b) => a.name.localeCompare(b.name))[0];
5082
+ };
5039
5083
  /**
5040
5084
  * Package-level theme reader behind {@link getPresentationTheme}. Exposed so
5041
5085
  * helpers holding only a package handle (e.g. color baking off a `SlideData`)
@@ -5044,7 +5088,7 @@ const firstThemePart = (pkg) => pkg.parts.filter((p) => p.contentType === THEME_
5044
5088
  * @internal
5045
5089
  */
5046
5090
  const themeFromPackage = (pkg) => {
5047
- const themePart = firstThemePart(pkg);
5091
+ const themePart = deckThemePart(pkg);
5048
5092
  if (!themePart) return null;
5049
5093
  const root = parseXml(decode$1(themePart.data)).root;
5050
5094
  const themeElements = firstChildElement(root, NAME_THEME_ELEMENTS);
@@ -5076,14 +5120,13 @@ const readTypeface = (parent, local) => {
5076
5120
  return v;
5077
5121
  };
5078
5122
  /**
5079
- * Returns the first theme's font scheme, or `null` when the package
5080
- * carries no theme. As with `getPresentationTheme`, multi-master
5081
- * decks surface only the first theme found (alphabetical by part
5082
- * name); per-master font lookup will land if needed.
5123
+ * Returns the deck theme's font scheme, or `null` when the package
5124
+ * carries no theme. As with `getPresentationTheme`, the deck theme is
5125
+ * the first slide master's; per-master font lookup will land if needed.
5083
5126
  */
5084
5127
  const getPresentationFonts = (pres) => {
5085
5128
  const pkg = pres[INTERNAL_PACKAGE];
5086
- const themePart = firstThemePart(pkg);
5129
+ const themePart = deckThemePart(pkg);
5087
5130
  if (!themePart) return null;
5088
5131
  const root = parseXml(decode$1(themePart.data)).root;
5089
5132
  const themeElements = firstChildElement(root, NAME_THEME_ELEMENTS);
@@ -5102,22 +5145,21 @@ const getPresentationFonts = (pres) => {
5102
5145
  };
5103
5146
  };
5104
5147
  /**
5105
- * Overwrites the named slots of the package's first theme's color
5148
+ * Overwrites the named slots of the deck theme's color
5106
5149
  * scheme (`<a:clrScheme>`), leaving every other slot untouched. Slot
5107
5150
  * values are `#RRGGBB` (or 3-digit `#RGB`) strings; every branded
5108
5151
  * `srgbClr`/`sysClr` slot is normalized to a plain `<a:srgbClr>` on
5109
5152
  * write, since a theme slot is never a scheme-color reference.
5110
5153
  *
5111
5154
  * As with `getPresentationTheme`, multi-master decks are branded via
5112
- * their first theme part only — call this once per theme part if a
5113
- * deck's masters carry different themes.
5155
+ * their first slide master's theme only.
5114
5156
  *
5115
5157
  * Throws if the presentation has no theme part, or if a provided color
5116
5158
  * isn't a valid `#RRGGBB` string.
5117
5159
  */
5118
5160
  const setPresentationTheme = (pres, theme) => {
5119
5161
  const pkg = pres[INTERNAL_PACKAGE];
5120
- const themePart = firstThemePart(pkg);
5162
+ const themePart = deckThemePart(pkg);
5121
5163
  if (!themePart) throw new Error("setPresentationTheme: presentation has no theme part");
5122
5164
  const doc = parseXml(decode$1(themePart.data));
5123
5165
  const themeElements = firstChildElement(doc.root, NAME_THEME_ELEMENTS);
@@ -5147,16 +5189,16 @@ const setTypeface = (fontCollection, local, typeface) => {
5147
5189
  el.attrs.push(attr(ATTR_TYPEFACE$1, typeface));
5148
5190
  };
5149
5191
  /**
5150
- * Overwrites the named typefaces of the package's first theme's font
5151
- * scheme (major = headings, minor = body), leaving unset fields
5152
- * untouched. As with `setPresentationTheme`, only the first theme part
5153
- * is branded.
5192
+ * Overwrites the named typefaces of the deck theme's font scheme
5193
+ * (major = headings, minor = body), leaving unset fields untouched. As
5194
+ * with `setPresentationTheme`, only the first slide master's theme is
5195
+ * branded.
5154
5196
  *
5155
5197
  * Throws if the presentation has no theme part.
5156
5198
  */
5157
5199
  const setPresentationFonts = (pres, fonts) => {
5158
5200
  const pkg = pres[INTERNAL_PACKAGE];
5159
- const themePart = firstThemePart(pkg);
5201
+ const themePart = deckThemePart(pkg);
5160
5202
  if (!themePart) throw new Error("setPresentationFonts: presentation has no theme part");
5161
5203
  const doc = parseXml(decode$1(themePart.data));
5162
5204
  const themeElements = firstChildElement(doc.root, NAME_THEME_ELEMENTS);
@@ -11949,10 +11991,12 @@ const getTableCellPosition = (cell) => ({
11949
11991
  col: cell[CELL_COL]
11950
11992
  });
11951
11993
  /**
11952
- * Reads the horizontal alignment from the cell's first paragraph
11953
- * (`l`, `ctr`, `r`, `just`, `dist`, `justLow`, `thaiDist`). Returns
11954
- * `null` when the cell has no `<a:txBody>` or its first paragraph
11955
- * has no explicit `algn` attribute (PowerPoint then defaults to `l`).
11994
+ * Reads the horizontal alignment from the cell's first paragraph as its
11995
+ * spec token (`l`, `ctr`, `r`, `just`, `dist`, `justLow`, `thaiDist`) — so
11996
+ * `setTableCellAlignment(cell, 'center')` reads back as `'ctr'`. Returns
11997
+ * `null` when the cell has no `<a:txBody>`, or its first paragraph has no
11998
+ * valid `algn` attribute (PowerPoint then defaults to `l`). For a
11999
+ * plain-English name per paragraph, use `getTableCellParagraphs`.
11956
12000
  */
11957
12001
  const getTableCellAlignment = (cell) => {
11958
12002
  const txBody = firstChildElement(cell[CELL_ELEMENT], NAME_A_TX_BODY_TBL);
@@ -11961,7 +12005,7 @@ const getTableCellAlignment = (cell) => {
11961
12005
  if (p.kind !== "element" || p.name.namespaceURI !== NS.dml || p.name.localName !== "p") continue;
11962
12006
  const pPr = firstChildElement(p, qname("a", "pPr", NS.dml));
11963
12007
  if (!pPr) return null;
11964
- return getAttrValue(pPr, qname("", "algn", "")) ?? null;
12008
+ return parseAlignmentToken(getAttrValue(pPr, qname("", "algn", "")));
11965
12009
  }
11966
12010
  return null;
11967
12011
  };
@@ -14417,13 +14461,17 @@ const setParagraphLevel = (shape, paragraphIndex, level) => {
14417
14461
  commitAndRefresh(shape);
14418
14462
  };
14419
14463
  /**
14420
- * Reads the paragraph's horizontal alignment. Returns `null` when no
14421
- * `algn` attribute is present (inherits from layout / master).
14464
+ * Reads the paragraph's own `algn` as its spec token (`l`, `ctr`, `r`,
14465
+ * `just`, `dist`, `justLow`, `thaiDist`) — so `setParagraphAlignment(…,
14466
+ * 'center')` reads back as `'ctr'`. Returns `null` when the attribute is
14467
+ * absent (the paragraph inherits from its layout / master) or is not a
14468
+ * valid token. For the inherited value under a plain-English name, use
14469
+ * `getParagraphPropertiesEffective`.
14422
14470
  */
14423
14471
  const getParagraphAlignment = (shape, paragraphIndex) => {
14424
14472
  const pPr = firstChildElement(requireParagraph(shape, paragraphIndex), NAME_A_PPR);
14425
14473
  if (pPr === null) return null;
14426
- return getAttrValue(pPr, ATTR_ALGN_FN) ?? null;
14474
+ return parseAlignmentToken(getAttrValue(pPr, ATTR_ALGN_FN));
14427
14475
  };
14428
14476
  /**
14429
14477
  * Reads the paragraph's nesting level (`lvl` attribute), or `0` when
@@ -19472,8 +19520,8 @@ const getShapeMedia = (shape) => {
19472
19520
  const findShapesWithMedia = (slide) => slide[SLIDE_SHAPES].filter((shape) => getShapeMedia(shape) !== null);
19473
19521
  //#endregion
19474
19522
  //#region src/api/index.ts
19475
- const VERSION = "0.18.0";
19523
+ const VERSION = "0.18.2";
19476
19524
  //#endregion
19477
19525
  export { replaceTokensInPresentation as $, getTableCellAnchor as $a, appendSlideNotes as $i, getShapePreset as $n, getSlideLayoutType as $o, getShapeParagraphCount as $r, findCommentsByAuthor as $s, getShapeStroke as $t, getOutlineText as A, removeSlideNotes as Aa, getShapeImageBiLevelThreshold as Ai, setSlideLayout as An, setTableCellTextFormat as Ao, setShapePatternFill as Ar, getSlideColorMapOverride as As, setShapeText as At, getSlideLayoutCount as B, getPackageSize as Ba, getShapeImagePartName as Bi, getShapeAltTitle as Bn, getPresentationCreated as Bo, getShapeRunFormat as Br, getSlideMasterBackgroundPatternFill as Bs, findShapesByEffect as Bt, setSlideSections as C, getSlidesWithHyperlinks as Ca, emu as Cc, findFlippedShapes as Ci, getShapeSlide as Cn, setTableCellAnchor as Co, setShapeAdjustValues as Cr, getEffectiveColorMap as Cs, getShapeTextColumns as Ct, findSlidesByNotes as D, getSlidesWithTables as Da, findSlidesByLayoutPartName as Di, getSlideShapes as Dn, setTableCellParagraphs as Do, setShapeImageFill as Dr, getSlideBackgroundGradientFill as Ds, setShapeAlignment as Dt, findSlideByTitle as E, getSlidesWithOverlap as Ea, pt as Ec, findSlidesByLayoutName as Ei, getSlideLayout as En, setTableCellMargins as Eo, setShapeGradientFill as Er, getSlideBackground as Es, getShapeTextWrap as Et, getShapeAt as F, setSlideTransition as Fa, getShapeImageDuotone as Fi, getGroupChildren as Fn, getThumbnail as Fo, setShapeStrokeArrow as Fr, getSlideLayoutBackgroundShapes as Fs, setShapeTextDirection as Ft, getSlideXmlString as G, setMediaPartBytes as Ga, setShapeImageContrast as Gi, getShapeDescription as Gn, touchModified as Go, getParagraphBulletImageBytes as Gr, setShapeClickAction as Gs, setShapeShadow as Gt, getSlidePartName as H, getSlideMediaPartNames as Ha, hasShapeText as Hi, getShapeBoundsResolved as Hn, incrementRevision as Ho, resolveDrawingColorOpacity as Hr, setSlideBackground as Hs, getShapeEffects as Ht, getSlideAt as I, _internalPackageOf as Ia, getShapeImageFillBytes as Ii, getGroupTransform as In, removeThumbnail as Io, setShapeStrokeCap as Ir, getSlideLayoutShapes as Is, setShapeTextFormat as It, isSlideHidden as J, clearTableCellFill as Ja, SLIDE_SIZE_16_10 as Ji, getShapeKind as Jn, findSlideLayoutByPartName as Jo, getParagraphIndent as Jr, clearAllSlideComments as Js, getShapeFill as Jt, getSlides as K, slidesUsingMediaPart as Ka, setShapeImageCrop as Ki, getShapeFlip as Kn, findLayoutsWithPlaceholderType as Ko, getParagraphBulletStyle as Kr, setShapeImage as Ks, getShapeGradientFill as Kt, getSlideCount as L, compactPackage as La, getShapeImageFormat as Li, getMaxShapeId as Ln, setThumbnail as Lo, setShapeStrokeCompound as Lr, getSlideMasterBackground as Ls, setShapeTextMargins as Lt, getPresentationText as M, setSlideNotes as Ma, getShapeImageBytes as Mi, centerShapeOnSlide as Mn, setTableRowHeight as Mo, setShapeRotation as Mr, getSlideLayoutBackgroundGradientFill as Ms, setShapeTextAutoFit as Mt, getPresentationTextLength as N, clearSlideTransition as Na, getShapeImageContrast as Ni, findShapesAtPoint as Nn, setTableStyleFlags as No, setShapeSize as Nr, getSlideLayoutBackgroundImageBytes as Ns, setShapeTextBodyRotationDeg as Nt, findSlidesByText as O, getVisibleSlides as Oa, findSlidesByLayoutType as Oi, getSlidesWithEmptyPlaceholders as On, setTableCellText as Oo, setShapeNoFill as Or, getSlideBackgroundImageBytes as Os, setShapeBullets as Ot, getPresentationTextLengthsBySlide as P, getSlideTransition as Pa, getShapeImageCrop as Pi, findShapesInRect as Pn, setTableStyleId as Po, setShapeStroke as Pr, getSlideLayoutBackgroundPatternFill as Ps, setShapeTextColumns as Pt, replaceTextInSlideNotes as Q, getTableCellAlignment as Qa, setSlideSize as Qi, getShapePosition as Qn, getSlideLayoutPlaceholders as Qo, getShapeHyperlinkTooltip as Qr, findCommentsBefore as Qs, getShapeFillOpacity as Qt, getSlideIndex as R, getMediaParts as Ra, getShapeImageLinkUrl as Ri, getMaxShapeIdInPresentation as Rn, getCoreProperties as Ro, setShapeStrokeDash as Rr, getSlideMasterBackgroundGradientFill as Rs, setShapeTextWrap as Rt, getSlideSections as S, getSlidesWithComments as Sa, cm as Sc, setShapeAnimation as Si, getShapeIndex as Sn, setTableCellAlignment as So, getShapeStrokeDash as Sr, setChartSpec as Ss, getShapeTextBodyRotationDeg as St, findSlideByText as T, getSlidesWithNotes as Ta, mm as Tc, findShapesOutsideCanvas as Ti, getShapesBounds as Tn, setTableCellFill as To, setShapeFlip as Tr, clearSlideBackground as Ts, getShapeTextMargins as Tt, getSlideText as U, listPackageParts as Ua, isShapeImageGrayscale as Ui, getShapeCenter as Un, setCoreProperties as Uo, getParagraphAlignment as Ur, setSlideBackgroundImage as Us, getShapeEffectsEffective as Ut, getSlideOutline as V, getPresentationSummary as Va, hasShapeImage as Vi, getShapeBounds as Vn, getPresentationModified as Vo, resolveDrawingColor as Vr, getSlideMasterShapes as Vs, getShapeEffect as Vt, getSlideTextLength as W, readPackagePart as Wa, setShapeImageBrightness as Wi, getShapeCustomGeometry as Wn, setExtendedProperties as Wo, getParagraphBullet as Wr, getShapeClickAction as Ws, setShapeGlow as Wt, replaceTextInPresentation as X, getSlideTables as Xa, SLIDE_SIZE_4_3 as Xi, getShapePlaceholderIdx as Xn, getSlideLayoutName as Xo, getParagraphLineSpacing as Xr, findCommentAuthorByName as Xs, getShapeFillColorResolved as Xt, replaceTextInNotes as Y, getPresentationTableCountsBySlide as Ya, SLIDE_SIZE_16_9 as Yi, getShapeName as Yn, findSlideLayoutByType as Yo, getParagraphLevel as Yr, clearSlideComments as Ys, getShapeFillColor as Yt, replaceTextInSlide as Z, getTableCell as Za, getSlideSize as Zi, getShapePlaceholderType as Zn, getSlideLayoutPartName as Zo, getParagraphSpacing as Zr, findCommentsAfter as Zs, getShapeFillEffective as Zt, moveSlide as _, getPresentationNotesLengthsBySlide as _a, setPresentationFonts as _c, setSlidePlaceholders as _i, findShapesByText as _n, isChartShape as _o, shapesOverlap as _r, getShapeChartKind as _s, appendShapeText as _t, groupShapes as a, findSlidesWithChartTrendlines as aa, getCommentPosition as ac, getShapeRunText as ai, getShapeStrokeJoin as an, getTableCellSpan as ao, getSlideMasterPartNames as ar, getShapeHyperlink as as, addSlideShape as at, sortSlides as b, getSlideNotesLength as ba, loadPresentation as bc, findShapesWithAnimation as bi, findSlidePlaceholderByIdx as bn, removeTableColumn as bo, getShapePatternFill as br, getShapeChartSpec as bs, getShapeTextAutoFit as bt, addContentSlide as c, getAllHyperlinks as ca, getCommentsSortedByDate as cc, setParagraphBullet as ci, findEmptyPlaceholders as cn, getTableCells as co, isShapeHidden as cr, setShapeRunFormat as cs, bringShapeForward as ct, addSlideAt as d, getAllTables as da, getPresentationCommenters as dc, setParagraphSpacing as di, findShapeByText as dn, getTableRowHeights as do, pointInShape as dr, findChartsBySeriesName as ds, copyShape as dt, clearAllHyperlinks as ea, findCommentsByText as ec, getShapeParagraphElements as ei, getShapeStrokeCap as en, getTableCellBorders as eo, getShapeRotation as er, getSlideLayoutUsageCounts as es, searchSlides as et, addTitleSlide as f, getDistinctHyperlinkUrls as fa, getSlideCommentAuthors as fc, setShapeRunHyperlink as fi, findShapeInPresentation as fn, getTableSize as fo, renameShape as fr, findChartsWithDataLabels as fs, getShapeZIndex as ft, mergePresentations as g, getPresentationNotesLength as ga, getPresentationTheme as gc, setSlideBody as gi, findShapesByPreset as gn, insertTableRow as go, setShapeHidden as gr, getShapeChartCategories as gs, setShapeZIndex as gt, importSlide as h, getPresentationHyperlinkCountsBySlide as ha, getPresentationFonts as hc, getSlideTitle as hi, findShapesByName as hn, insertTableColumn as ho, setShapeDescription as hr, getPresentationChartKindCounts as hs, sendShapeToBack as ht, getShapeMedia as i, findSlidesWithChartKind as ia, getCommentDate as ic, getShapeRunHyperlinkTooltip as ii, getShapeStrokeEffective as in, getTableCellPosition as io, getSlideMasterPartName as ir, getParagraphPropertiesEffective as is, addSlideLine as it, getPresentationShapeCountsBySlide as j, replaceHyperlink as ja, getShapeImageBrightness as ji, translateShapes as jn, setTableColumnWidth as jo, setShapePosition as jr, getSlideLayoutBackground as js, setShapeTextAnchor as jt, getAllShapes as k, hasSlideNotes as ka, getPresentationImageCountsBySlide as ki, replaceTokensInSlide as kn, setTableCellTextDirection as ko, setShapeNoStroke as kr, getSlideBackgroundPatternFill as ks, setShapeParagraphs as kt, addSectionHeaderSlide as l, getAllImages as la, getPresentationCommentCountsByAuthor as lc, setParagraphLevel as li, findShapeById as ln, getTableColumnWidths as lo, isShapePlaceholder as lr, addSlideChart as ls, bringShapeToFront as lt, duplicateSlideAt as m, getHiddenSlides as ma, removeSlideComment as mc, getSlideBody as mi, findShapesByKind as mn, getTableStyleId as mo, setShapeBounds as mr, getPresentationChartCountsBySlide as ms, sendShapeBackward as mt, addSlideMedia as n, clearSlideHyperlinks as na, getCommentAuthor as nc, getShapeRunCount as ni, getShapeStrokeColorResolved as nn, getTableCellMargins as no, getShapeText as nr, getSlideLayouts as ns, slideHasAnimations as nt, ungroupShapes as o, getAllCharts as oa, getCommentSlide as oc, isParagraphBulletPicture as oi, getShapeStrokeOpacity as on, getTableCellText as oo, getSlideMasterUsageCounts as or, getShapeRunFormatEffective as os, addSlideTable as ot, duplicateSlide as p, getEmptySlides as pa, getSlideComments as pc, setShapeRunText as pi, findShapesByHyperlink as pn, getTableStyleFlags as po, setShapeAltTitle as pr, findChartsWithTrendlines as ps, removeShape as pt, getSlidesByLayout as q, validatePresentation as qa, setShapeImageOpacity as qi, getShapeId as qn, findSlideLayout as qo, getParagraphEndFormat as qr, addSlideComment as qs, getShapeGradientFillEffective as qt, findShapesWithMedia as r, findSlidesByHyperlink as ra, getCommentAuthors as rc, getShapeRunHyperlink as ri, getShapeStrokeCompound as rn, getTableCellParagraphs as ro, getSlideMasterCount as rr, getUnusedSlideLayouts as rs, addSlideImage as rt, addBlankSlide as s, getAllComments as sa, getCommentText as sc, setParagraphAlignment as si, getShapeStrokeWidth as sn, getTableCellTextDirection as so, getUnusedSlideMasters as sr, setShapeHyperlink as ss, addSlideTextBox as st, VERSION as t, clearAllSlideNotes as ta, findSlidesWithCommentsByAuthor as tc, getShapeRunClickAction as ti, getShapeStrokeColor as tn, getTableCellFill as to, getShapeSize as tr, getSlideLayoutUsageCountsByType as ts, setSlideHidden as tt, addSlide as u, getAllNotes as ua, getPresentationCommentCountsBySlide as uc, setParagraphLineSpacing as ui, findShapeByName as un, getTableDimensions as uo, isShapeTextBox as ur, findChartByKind as us, clearSlideShapes as ut, removeSlide as v, getPresentationNotesText as va, setPresentationTheme as vc, setSlideTitle as vi, findShapesWithHyperlinks as vn, isTableShape as vo, clearShapeFill as vr, getShapeChartSeriesNames as vs, getShapeBodyPrEffective as vt, findSlideByPartName as w, getSlidesWithImages as wa, inches as wc, findOverlappingShapePairs as wi, getShapeXmlString as wn, setTableCellBorders as wo, setShapeFill as wr, resolveDeckBodyTextColor as ws, getShapeTextDirection as wt, swapSlides as x, getSlidesWithCharts as xa, savePresentation as xc, getShapeAnimation as xi, findSlidePlaceholders as xn, removeTableRow as xo, getShapeStrokeArrow as xr, getSlideCharts as xs, getShapeTextAutoFitParams as xt, reverseSlides as y, getSlideNotes as ya, createPresentation as yc, clearSlideAnimations as yi, findSlidePlaceholder as yn, mergeTableCells as yo, clearShapeStroke as yr, getShapeChartSeriesValues as ys, getShapeTextAnchor as yt, getSlideInfo as z, getOrphanMediaPartNames as za, getShapeImageOpacity as zi, getShapeAdjustValues as zn, getExtendedProperties as zo, setShapeStrokeJoin as zr, getSlideMasterBackgroundImageBytes as zs, clearShapeEffects as zt };
19478
19526
 
19479
- //# sourceMappingURL=api-0CdoUwvg.js.map
19527
+ //# sourceMappingURL=api-CXMliYZu.js.map