@office-kit/pptx 0.18.1 → 0.18.3

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,23 @@
1
1
  # @office-kit/pptx
2
2
 
3
+ ## 0.18.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 9b8f8a0: Reduce preview latency on large TSX decks by avoiding repeated parsing of existing slides, themes and relationships. Keep existing slide handles live when appending or duplicating slides.
8
+
9
+ Verify builds when an embedded agent finishes and return failures to Claude Code or Codex for up to three automatic repair attempts. Support Shift+Enter in the Claude terminal and provide native TSX agenda examples and foreground/background contrast guidance.
10
+
11
+ ## 0.18.2
12
+
13
+ ### Patch Changes
14
+
15
+ - 78ee67f: fix: theme readers and the preview picked the first theme part by name instead of the slide master's theme
16
+
17
+ `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.
18
+
19
+ 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.
20
+
3
21
  ## 0.18.1
4
22
 
5
23
  ### Patch Changes
@@ -1141,6 +1141,15 @@ const TEXT_DECODER$1 = new TextDecoder();
1141
1141
  const TEXT_ENCODER$3 = new TextEncoder();
1142
1142
  const decode$2 = (b) => TEXT_DECODER$1.decode(b);
1143
1143
  const encode$3 = (s) => TEXT_ENCODER$3.encode(s);
1144
+ const parsedRels = /* @__PURE__ */ new WeakMap();
1145
+ const readRels = (bytes) => {
1146
+ let rels = parsedRels.get(bytes);
1147
+ if (!rels) {
1148
+ rels = parseRels(decode$2(bytes));
1149
+ parsedRels.set(bytes, rels);
1150
+ }
1151
+ return { items: rels.items.map((item) => ({ ...item })) };
1152
+ };
1144
1153
  const CONTENT_TYPES_PART = "[Content_Types].xml";
1145
1154
  /**
1146
1155
  * In-memory model of an OPC package. Construct via `OpcPackage.load(bytes)`
@@ -1271,7 +1280,7 @@ var OpcPackage = class OpcPackage {
1271
1280
  const relsName = relsPartNameFor(forPart);
1272
1281
  const part = this.getPart(relsName);
1273
1282
  if (part === null) return null;
1274
- return parseRels(decode$2(part.data));
1283
+ return readRels(part.data);
1275
1284
  }
1276
1285
  /**
1277
1286
  * Writes relationships for the given part. Creates the sibling `.rels`
@@ -1297,7 +1306,7 @@ var OpcPackage = class OpcPackage {
1297
1306
  rootRels() {
1298
1307
  const part = this.getPart(partName("/_rels/.rels"));
1299
1308
  if (part === null) return null;
1300
- return parseRels(decode$2(part.data));
1309
+ return readRels(part.data);
1301
1310
  }
1302
1311
  /** Convenience: write package-root relationships. */
1303
1312
  setRootRels(rels) {
@@ -5034,22 +5043,61 @@ const readSchemeSlot = (parent, local) => {
5034
5043
  return "";
5035
5044
  };
5036
5045
  /**
5037
- * Returns the first theme's color scheme as `#RRGGBB` strings, or
5038
- * `null` if the package carries no theme. Each accent slot maps
5039
- * directly to the `accent1`–`accent6` chart palette defaults.
5046
+ * Returns the deck's color scheme as `#RRGGBB` strings, or `null` if
5047
+ * the package carries no theme. Each accent slot maps directly to the
5048
+ * `accent1`–`accent6` chart palette defaults.
5040
5049
  *
5041
- * Multi-master decks may carry several themes — v1 surfaces only the
5042
- * first one found (alphabetical by part name). Per-master theme
5043
- * lookup will land if a concrete user need shows up.
5050
+ * The deck's theme is the one its first slide master references. A
5051
+ * package usually holds more themes than that — notes and handout
5052
+ * masters carry their own, and Google Slides exports name the notes
5053
+ * theme `theme1.xml` ahead of the slide theme `theme2.xml` — so the
5054
+ * slide master relationship decides, not the part name. Multi-master
5055
+ * decks surface the first master's theme only; per-master theme lookup
5056
+ * will land if a concrete user need shows up.
5044
5057
  */
5045
5058
  const getPresentationTheme = (pres) => themeFromPackage(pres[INTERNAL_PACKAGE]);
5059
+ const readRoots = /* @__PURE__ */ new WeakMap();
5060
+ const readRoot = (bytes) => {
5061
+ let root = readRoots.get(bytes);
5062
+ if (!root) {
5063
+ root = parseXml(decode$1(bytes)).root;
5064
+ readRoots.set(bytes, root);
5065
+ }
5066
+ return root;
5067
+ };
5068
+ const resolveRelTarget = (from, target) => target.startsWith("/") ? partName(target) : resolveTarget(from, target);
5069
+ /** The theme part `from` relates to, or `null` when it has no theme rel. */
5070
+ const themePartRelatedTo = (pkg, from) => {
5071
+ const rel = pkg.getRels(from)?.items.find((r) => r.type === REL_TYPES.theme && r.targetMode === "Internal");
5072
+ if (!rel) return null;
5073
+ const part = pkg.getPart(resolveRelTarget(from, rel.target));
5074
+ return part !== null && part.contentType === THEME_CONTENT_TYPE ? part : null;
5075
+ };
5076
+ /** The first slide master's part name, in `<p:sldMasterIdLst>` order. */
5077
+ const firstSlideMasterPartName = (pkg) => {
5078
+ const presPart = pkg.getPart(PRES_PART_NAME);
5079
+ const presRels = pkg.getRels(PRES_PART_NAME);
5080
+ if (presPart === null || presRels === null) return null;
5081
+ const firstId = firstChildElement(readRoot(presPart.data), NAME_SLD_MASTER_ID_LST)?.children.find((c) => c.kind === "element");
5082
+ const rId = firstId?.kind === "element" ? getAttrValue(firstId, ATTR_R_ID$1) : null;
5083
+ 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);
5084
+ return rel ? resolveRelTarget(PRES_PART_NAME, rel.target) : null;
5085
+ };
5046
5086
  /**
5047
- * Returns the package's first theme part (by part name, alphabetical),
5048
- * matching the "first theme wins" v1 semantics documented on
5049
- * {@link getPresentationTheme}. Shared by every theme reader/writer so
5050
- * they agree on which theme a multi-master deck exposes.
5087
+ * The theme part the slides render with — see {@link getPresentationTheme}
5088
+ * for why the slide master's relationship decides. Falls back to the
5089
+ * presentation part's own theme rel, then to the first theme part by
5090
+ * name for hand-built packages that wire neither. Shared by every theme
5091
+ * reader/writer so they agree on which theme a deck exposes.
5051
5092
  */
5052
- const firstThemePart = (pkg) => pkg.parts.filter((p) => p.contentType === THEME_CONTENT_TYPE).sort((a, b) => a.name.localeCompare(b.name))[0];
5093
+ const deckThemePart = (pkg) => {
5094
+ const masterName = firstSlideMasterPartName(pkg);
5095
+ const viaMaster = masterName === null ? null : themePartRelatedTo(pkg, masterName);
5096
+ if (viaMaster) return viaMaster;
5097
+ const viaPresentation = themePartRelatedTo(pkg, PRES_PART_NAME);
5098
+ if (viaPresentation) return viaPresentation;
5099
+ return pkg.parts.filter((p) => p.contentType === THEME_CONTENT_TYPE).sort((a, b) => a.name.localeCompare(b.name))[0];
5100
+ };
5053
5101
  /**
5054
5102
  * Package-level theme reader behind {@link getPresentationTheme}. Exposed so
5055
5103
  * helpers holding only a package handle (e.g. color baking off a `SlideData`)
@@ -5058,10 +5106,9 @@ const firstThemePart = (pkg) => pkg.parts.filter((p) => p.contentType === THEME_
5058
5106
  * @internal
5059
5107
  */
5060
5108
  const themeFromPackage = (pkg) => {
5061
- const themePart = firstThemePart(pkg);
5109
+ const themePart = deckThemePart(pkg);
5062
5110
  if (!themePart) return null;
5063
- const root = parseXml(decode$1(themePart.data)).root;
5064
- const themeElements = firstChildElement(root, NAME_THEME_ELEMENTS);
5111
+ const themeElements = firstChildElement(readRoot(themePart.data), NAME_THEME_ELEMENTS);
5065
5112
  if (!themeElements) return null;
5066
5113
  const clrScheme = firstChildElement(themeElements, NAME_CLR_SCHEME);
5067
5114
  if (!clrScheme) return null;
@@ -5090,17 +5137,15 @@ const readTypeface = (parent, local) => {
5090
5137
  return v;
5091
5138
  };
5092
5139
  /**
5093
- * Returns the first theme's font scheme, or `null` when the package
5094
- * carries no theme. As with `getPresentationTheme`, multi-master
5095
- * decks surface only the first theme found (alphabetical by part
5096
- * name); per-master font lookup will land if needed.
5140
+ * Returns the deck theme's font scheme, or `null` when the package
5141
+ * carries no theme. As with `getPresentationTheme`, the deck theme is
5142
+ * the first slide master's; per-master font lookup will land if needed.
5097
5143
  */
5098
5144
  const getPresentationFonts = (pres) => {
5099
5145
  const pkg = pres[INTERNAL_PACKAGE];
5100
- const themePart = firstThemePart(pkg);
5146
+ const themePart = deckThemePart(pkg);
5101
5147
  if (!themePart) return null;
5102
- const root = parseXml(decode$1(themePart.data)).root;
5103
- const themeElements = firstChildElement(root, NAME_THEME_ELEMENTS);
5148
+ const themeElements = firstChildElement(readRoot(themePart.data), NAME_THEME_ELEMENTS);
5104
5149
  if (!themeElements) return null;
5105
5150
  const fontScheme = firstChildElement(themeElements, qname("a", "fontScheme", NS.dml));
5106
5151
  if (!fontScheme) return null;
@@ -5116,22 +5161,21 @@ const getPresentationFonts = (pres) => {
5116
5161
  };
5117
5162
  };
5118
5163
  /**
5119
- * Overwrites the named slots of the package's first theme's color
5164
+ * Overwrites the named slots of the deck theme's color
5120
5165
  * scheme (`<a:clrScheme>`), leaving every other slot untouched. Slot
5121
5166
  * values are `#RRGGBB` (or 3-digit `#RGB`) strings; every branded
5122
5167
  * `srgbClr`/`sysClr` slot is normalized to a plain `<a:srgbClr>` on
5123
5168
  * write, since a theme slot is never a scheme-color reference.
5124
5169
  *
5125
5170
  * As with `getPresentationTheme`, multi-master decks are branded via
5126
- * their first theme part only — call this once per theme part if a
5127
- * deck's masters carry different themes.
5171
+ * their first slide master's theme only.
5128
5172
  *
5129
5173
  * Throws if the presentation has no theme part, or if a provided color
5130
5174
  * isn't a valid `#RRGGBB` string.
5131
5175
  */
5132
5176
  const setPresentationTheme = (pres, theme) => {
5133
5177
  const pkg = pres[INTERNAL_PACKAGE];
5134
- const themePart = firstThemePart(pkg);
5178
+ const themePart = deckThemePart(pkg);
5135
5179
  if (!themePart) throw new Error("setPresentationTheme: presentation has no theme part");
5136
5180
  const doc = parseXml(decode$1(themePart.data));
5137
5181
  const themeElements = firstChildElement(doc.root, NAME_THEME_ELEMENTS);
@@ -5161,16 +5205,16 @@ const setTypeface = (fontCollection, local, typeface) => {
5161
5205
  el.attrs.push(attr(ATTR_TYPEFACE$1, typeface));
5162
5206
  };
5163
5207
  /**
5164
- * Overwrites the named typefaces of the package's first theme's font
5165
- * scheme (major = headings, minor = body), leaving unset fields
5166
- * untouched. As with `setPresentationTheme`, only the first theme part
5167
- * is branded.
5208
+ * Overwrites the named typefaces of the deck theme's font scheme
5209
+ * (major = headings, minor = body), leaving unset fields untouched. As
5210
+ * with `setPresentationTheme`, only the first slide master's theme is
5211
+ * branded.
5168
5212
  *
5169
5213
  * Throws if the presentation has no theme part.
5170
5214
  */
5171
5215
  const setPresentationFonts = (pres, fonts) => {
5172
5216
  const pkg = pres[INTERNAL_PACKAGE];
5173
- const themePart = firstThemePart(pkg);
5217
+ const themePart = deckThemePart(pkg);
5174
5218
  if (!themePart) throw new Error("setPresentationFonts: presentation has no theme part");
5175
5219
  const doc = parseXml(decode$1(themePart.data));
5176
5220
  const themeElements = firstChildElement(doc.root, NAME_THEME_ELEMENTS);
@@ -18072,8 +18116,9 @@ const getSlides = (pres) => {
18072
18116
  const presRoot = parseXml(decode$1(presPart.data)).root;
18073
18117
  const presModel = readPresentationPart(presRoot);
18074
18118
  const out = [];
18119
+ const relsById = new Map(presRels.items.map((rel) => [rel.id, rel]));
18075
18120
  for (const sld of presModel.slides) {
18076
- const rel = presRels.items.find((r) => r.id === sld.rId);
18121
+ const rel = relsById.get(sld.rId);
18077
18122
  if (!rel) throw new Error(`presentation.xml.rels missing entry for ${sld.rId}`);
18078
18123
  const target = rel.target;
18079
18124
  const slideName = partName(target.startsWith("/") ? target : `/ppt/${target}`);
@@ -18815,7 +18860,11 @@ const addSlide = (pres, options) => {
18815
18860
  pkg.setRels(PRES_PART_NAME, presRels);
18816
18861
  sldIdLst.children.push(elem(NAME_SLD_ID$1, { attrs: [attr(ATTR_ID$2, String(newSldId)), attr(ATTR_R_ID$1, newRId)] }));
18817
18862
  presPart.data = encode$1(serializeXml(presDoc));
18818
- pres._slidesCache = null;
18863
+ if (pres._slidesCache !== null) {
18864
+ const added = buildSlideData(pkg, newSlidePartName, slideBytes);
18865
+ pres._slidesCache = [...pres._slidesCache, added];
18866
+ return added;
18867
+ }
18819
18868
  const slides = getSlides(pres);
18820
18869
  const last = slides[slides.length - 1];
18821
18870
  if (!last) throw new Error("addSlide: post-condition failed; slide not in cache");
@@ -18971,7 +19020,8 @@ const duplicateSlide = (pres, slide) => {
18971
19020
  const sldIdLst = ensureSldIdLst(presDoc.root);
18972
19021
  const newSldId = allocateSldId(sldIdLst);
18973
19022
  const slideN = allocateSlideN(pkg);
18974
- duplicatePartGraph(pkg, sourcePartName, partName(`/ppt/slides/slide${slideN}.xml`), new Set([
19023
+ const newSlidePartName = partName(`/ppt/slides/slide${slideN}.xml`);
19024
+ duplicatePartGraph(pkg, sourcePartName, newSlidePartName, new Set([
18975
19025
  REL_TYPES.slideLayout,
18976
19026
  REL_TYPES.slideMaster,
18977
19027
  REL_TYPES.notesMaster,
@@ -18994,7 +19044,11 @@ const duplicateSlide = (pres, slide) => {
18994
19044
  pkg.setRels(PRES_PART_NAME, presRels);
18995
19045
  sldIdLst.children.push(elem(NAME_SLD_ID$1, { attrs: [attr(ATTR_ID$2, String(newSldId)), attr(ATTR_R_ID$1, newRId)] }));
18996
19046
  presPart.data = encode$1(serializeXml(presDoc));
18997
- pres._slidesCache = null;
19047
+ if (pres._slidesCache !== null) {
19048
+ const added = buildSlideData(pkg, newSlidePartName, pkg.getPart(newSlidePartName).data);
19049
+ pres._slidesCache = [...pres._slidesCache, added];
19050
+ return added;
19051
+ }
18998
19052
  const slides = getSlides(pres);
18999
19053
  const dup = slides[slides.length - 1];
19000
19054
  if (!dup) throw new Error("duplicateSlide: post-condition failed");
@@ -19492,8 +19546,8 @@ const getShapeMedia = (shape) => {
19492
19546
  const findShapesWithMedia = (slide) => slide[SLIDE_SHAPES].filter((shape) => getShapeMedia(shape) !== null);
19493
19547
  //#endregion
19494
19548
  //#region src/api/index.ts
19495
- const VERSION = "0.18.1";
19549
+ const VERSION = "0.18.3";
19496
19550
  //#endregion
19497
19551
  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 };
19498
19552
 
19499
- //# sourceMappingURL=api-DlzYhUxG.js.map
19553
+ //# sourceMappingURL=api-BqR9_MYK.js.map