@office-kit/pptx 0.11.1 → 0.12.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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # pptx-kit
2
2
 
3
+ ## 0.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6294c52: Combo charts: per-series `chartKind` overrides and a secondary value axis.
8
+
9
+ `ChartSeries` gains `chartKind` (`'bar' | 'column' | 'line' | 'area'`) to
10
+ overlay e.g. a line series on a column chart, and `secondaryAxis: true` to
11
+ plot a series against a right-hand secondary value axis — the standard
12
+ PowerPoint combo layout for series with mixed units (counts vs. rates).
13
+ The builder splits series into plot groups (`<c:barChart>` + `<c:lineChart>`
14
+ …) and emits the secondary `<c:valAx>`/`<c:catAx>` pair on demand;
15
+ `getShapeChartSpec` round-trips both fields. The preview renderer paints
16
+ bars below line/area overlays, scales each axis from its own series, and
17
+ draws the secondary ticks on the plot's right edge.
18
+
3
19
  ## 0.11.1
4
20
 
5
21
  ### Patch Changes
@@ -5247,6 +5247,47 @@ const seriesElement = (spec, seriesIdx, sheet) => {
5247
5247
  };
5248
5248
  const CAT_AX_ID = 111111111;
5249
5249
  const VAL_AX_ID = 222222222;
5250
+ const SEC_CAT_AX_ID = 333333333;
5251
+ const SEC_VAL_AX_ID = 444444444;
5252
+ const PRIMARY_AXES = {
5253
+ cat: CAT_AX_ID,
5254
+ val: VAL_AX_ID
5255
+ };
5256
+ const SECONDARY_AXES = {
5257
+ cat: SEC_CAT_AX_ID,
5258
+ val: SEC_VAL_AX_ID
5259
+ };
5260
+ /** Category kinds that can participate in a combo plot-group split. */
5261
+ const COMBO_KINDS = new Set([
5262
+ "bar",
5263
+ "column",
5264
+ "line",
5265
+ "area"
5266
+ ]);
5267
+ const effectiveSeriesKind = (spec, seriesIdx) => spec.series[seriesIdx]?.chartKind ?? spec.kind;
5268
+ /**
5269
+ * Splits the series into plot groups keyed by (effective kind, axis).
5270
+ * Primary-axis groups come first so secondary overlays paint on top,
5271
+ * and bar groups precede line/area within each axis for the same reason
5272
+ * (matching PowerPoint's combo emit order).
5273
+ */
5274
+ const comboPlotGroups = (spec) => {
5275
+ const groups = /* @__PURE__ */ new Map();
5276
+ for (let i = 0; i < spec.series.length; i++) {
5277
+ const kind = effectiveSeriesKind(spec, i);
5278
+ const secondary = spec.series[i]?.secondaryAxis === true;
5279
+ const key = `${kind}|${secondary ? "1" : "0"}`;
5280
+ const group = groups.get(key);
5281
+ if (group) group.indices.push(i);
5282
+ else groups.set(key, {
5283
+ kind,
5284
+ secondary,
5285
+ indices: [i]
5286
+ });
5287
+ }
5288
+ const paintOrder = (g) => (g.secondary ? 2 : 0) + (g.kind === "line" || g.kind === "area" ? 1 : 0);
5289
+ return [...groups.values()].sort((a, b) => paintOrder(a) - paintOrder(b));
5290
+ };
5250
5291
  const axisTxPrElement = (style, rotationDeg) => {
5251
5292
  if (style === void 0 && rotationDeg === void 0) return null;
5252
5293
  const bodyAttrs = [];
@@ -5336,8 +5377,8 @@ const buildDLblsFromLabels = (dl) => {
5336
5377
  return elem(c("dLbls"), { children });
5337
5378
  };
5338
5379
  const dLblsElement = (spec) => buildDLblsFromLabels(spec.dataLabels);
5339
- const buildBarChart = (spec, sheet, direction) => {
5340
- const ser = spec.series.map((_, i) => seriesElement(spec, i, sheet));
5380
+ const buildBarChart = (spec, sheet, direction, seriesIndices, axes) => {
5381
+ const ser = seriesIndices.map((i) => seriesElement(spec, i, sheet));
5341
5382
  const dl = dLblsElement(spec);
5342
5383
  const grouping = spec.grouping ?? "clustered";
5343
5384
  const children = [
@@ -5350,11 +5391,11 @@ const buildBarChart = (spec, sheet, direction) => {
5350
5391
  if (spec.gapWidthPct !== void 0) children.push(valNode(c("gapWidth"), gapAmountPercent(spec.gapWidthPct, "chart: gapWidthPct")));
5351
5392
  const overlapPct = spec.overlapPct ?? (grouping === "stacked" || grouping === "percentStacked" ? 100 : void 0);
5352
5393
  if (overlapPct !== void 0) children.push(valNode(c("overlap"), overlapPercent(overlapPct, "chart: overlapPct")));
5353
- children.push(valNode(c("axId"), CAT_AX_ID), valNode(c("axId"), VAL_AX_ID));
5394
+ children.push(valNode(c("axId"), axes.cat), valNode(c("axId"), axes.val));
5354
5395
  return elem(c(direction === "col" ? "barChart" : "barChart"), { children });
5355
5396
  };
5356
- const buildLineChart = (spec, sheet) => {
5357
- const ser = spec.series.map((_, i) => seriesElement(spec, i, sheet));
5397
+ const buildLineChart = (spec, sheet, seriesIndices, axes) => {
5398
+ const ser = seriesIndices.map((i) => seriesElement(spec, i, sheet));
5358
5399
  const dl = dLblsElement(spec);
5359
5400
  const children = [
5360
5401
  valNode(c("grouping"), spec.grouping ?? "standard"),
@@ -5364,7 +5405,7 @@ const buildLineChart = (spec, sheet) => {
5364
5405
  ];
5365
5406
  if (spec.dropLines) children.push(elem(c("dropLines")));
5366
5407
  if (spec.hiLowLines) children.push(elem(c("hiLowLines")));
5367
- children.push(valNode(c("marker"), spec.lineMarkers === false ? "0" : "1"), valNode(c("axId"), CAT_AX_ID), valNode(c("axId"), VAL_AX_ID));
5408
+ children.push(valNode(c("marker"), spec.lineMarkers === false ? "0" : "1"), valNode(c("axId"), axes.cat), valNode(c("axId"), axes.val));
5368
5409
  return elem(c("lineChart"), { children });
5369
5410
  };
5370
5411
  const buildPieChart = (spec, sheet) => {
@@ -5392,18 +5433,52 @@ const buildDoughnutChart = (spec, sheet) => {
5392
5433
  children.push(valNode(c("holeSize"), holeSizePercent(spec.holeSizePct ?? 50, "chart: holeSizePct")));
5393
5434
  return elem(c("doughnutChart"), { children });
5394
5435
  };
5395
- const buildAreaChart = (spec, sheet) => {
5396
- const ser = spec.series.map((_, i) => seriesElement(spec, i, sheet));
5436
+ const buildAreaChart = (spec, sheet, seriesIndices, axes) => {
5437
+ const ser = seriesIndices.map((i) => seriesElement(spec, i, sheet));
5397
5438
  const dl = dLblsElement(spec);
5398
5439
  return elem(c("areaChart"), { children: [
5399
5440
  valNode(c("grouping"), spec.grouping ?? "standard"),
5400
5441
  valNode(c("varyColors"), spec.varyColors ? "1" : "0"),
5401
5442
  ...ser,
5402
5443
  ...dl ? [dl] : [],
5403
- valNode(c("axId"), CAT_AX_ID),
5404
- valNode(c("axId"), VAL_AX_ID)
5444
+ valNode(c("axId"), axes.cat),
5445
+ valNode(c("axId"), axes.val)
5405
5446
  ] });
5406
5447
  };
5448
+ /** One combo plot group, dispatched by its effective kind. */
5449
+ const buildComboGroupChart = (spec, sheet, kind, seriesIndices, axes) => {
5450
+ switch (kind) {
5451
+ case "column": return buildBarChart(spec, sheet, "col", seriesIndices, axes);
5452
+ case "bar": return buildBarChart(spec, sheet, "bar", seriesIndices, axes);
5453
+ case "line": return buildLineChart(spec, sheet, seriesIndices, axes);
5454
+ case "area": return buildAreaChart(spec, sheet, seriesIndices, axes);
5455
+ default: throw new Error(`combo chart: series chartKind '${kind}' is not authorable`);
5456
+ }
5457
+ };
5458
+ /**
5459
+ * Secondary value axis (`axPos="r"`, crossing at the category maximum) —
5460
+ * the right-hand axis PowerPoint pairs with `secondaryAxis` series.
5461
+ */
5462
+ const secondaryValAxis = () => elem(c("valAx"), { children: [
5463
+ valNode(c("axId"), SEC_VAL_AX_ID),
5464
+ elem(c("scaling"), { children: [valNode(c("orientation"), "minMax")] }),
5465
+ valNode(c("delete"), "0"),
5466
+ valNode(c("axPos"), "r"),
5467
+ valNode(c("crossAx"), SEC_CAT_AX_ID),
5468
+ valNode(c("crosses"), "max")
5469
+ ] });
5470
+ /**
5471
+ * Deleted companion category axis for the secondary pair. PowerPoint
5472
+ * requires every plot group's axId pair to resolve to a cat+val pair,
5473
+ * so the secondary group gets its own (hidden) category axis.
5474
+ */
5475
+ const secondaryCatAxis = () => elem(c("catAx"), { children: [
5476
+ valNode(c("axId"), SEC_CAT_AX_ID),
5477
+ elem(c("scaling"), { children: [valNode(c("orientation"), "minMax")] }),
5478
+ valNode(c("delete"), "1"),
5479
+ valNode(c("axPos"), "b"),
5480
+ valNode(c("crossAx"), SEC_VAL_AX_ID)
5481
+ ] });
5407
5482
  const rPrAttrsFromStyle = (style) => {
5408
5483
  const attrs = [];
5409
5484
  const children = [];
@@ -5459,25 +5534,27 @@ const titleElement = (title, style, rotationDeg) => {
5459
5534
  */
5460
5535
  const buildChartSpaceDoc = (spec) => {
5461
5536
  const sheet = "Sheet1";
5462
- let plotted;
5537
+ const usesComboFields = spec.series.some((series) => series.chartKind !== void 0 || series.secondaryAxis === true);
5538
+ if (usesComboFields && !COMBO_KINDS.has(spec.kind)) throw new Error(`chart kind '${spec.kind}' does not support per-series chartKind / secondaryAxis (combo charts require a bar / column / line / area base kind)`);
5539
+ const allIndices = spec.series.map((_, i) => i);
5540
+ let plottedGroups;
5541
+ let hasSecondary = false;
5463
5542
  switch (spec.kind) {
5464
5543
  case "column":
5465
- plotted = buildBarChart(spec, sheet, "col");
5466
- break;
5467
5544
  case "bar":
5468
- plotted = buildBarChart(spec, sheet, "bar");
5469
- break;
5470
5545
  case "line":
5471
- plotted = buildLineChart(spec, sheet);
5546
+ case "area":
5547
+ if (usesComboFields) {
5548
+ const groups = comboPlotGroups(spec);
5549
+ hasSecondary = groups.some((group) => group.secondary);
5550
+ plottedGroups = groups.map((group) => buildComboGroupChart(spec, sheet, group.kind, group.indices, group.secondary ? SECONDARY_AXES : PRIMARY_AXES));
5551
+ } else plottedGroups = [buildComboGroupChart(spec, sheet, spec.kind, allIndices, PRIMARY_AXES)];
5472
5552
  break;
5473
5553
  case "pie":
5474
- plotted = buildPieChart(spec, sheet);
5554
+ plottedGroups = [buildPieChart(spec, sheet)];
5475
5555
  break;
5476
5556
  case "doughnut":
5477
- plotted = buildDoughnutChart(spec, sheet);
5478
- break;
5479
- case "area":
5480
- plotted = buildAreaChart(spec, sheet);
5557
+ plottedGroups = [buildDoughnutChart(spec, sheet)];
5481
5558
  break;
5482
5559
  case "scatter":
5483
5560
  case "radar":
@@ -5488,8 +5565,11 @@ const buildChartSpaceDoc = (spec) => {
5488
5565
  }
5489
5566
  }
5490
5567
  const axisless = spec.kind === "pie" || spec.kind === "doughnut";
5491
- const plotAreaChildren = [elem(c("layout")), plotted];
5492
- if (!axisless) plotAreaChildren.push(catAxis(spec), valAxis(spec));
5568
+ const plotAreaChildren = [elem(c("layout")), ...plottedGroups];
5569
+ if (!axisless) {
5570
+ plotAreaChildren.push(catAxis(spec), valAxis(spec));
5571
+ if (hasSecondary) plotAreaChildren.push(secondaryValAxis(), secondaryCatAxis());
5572
+ }
5493
5573
  if (spec.plotAreaFill !== void 0 || spec.plotAreaStrokeColor !== void 0) plotAreaChildren.push(spPrChildren(spec.plotAreaFill, spec.plotAreaStrokeColor));
5494
5574
  const plotArea = elem(c("plotArea"), { children: plotAreaChildren });
5495
5575
  const chartChildren = [];
@@ -5573,6 +5653,8 @@ const NAME_SOLID_FILL$1 = qname("a", "solidFill", NS_A);
5573
5653
  const NAME_SRGB_CLR = qname("a", "srgbClr", NS_A);
5574
5654
  const ATTR_VAL = qname("", "val", "");
5575
5655
  const ATTR_IDX = qname("", "idx", "");
5656
+ /** Kinds a combo plot group can carry (mirrors `ChartSeries.chartKind`). */
5657
+ const isComboSeriesKind = (kind) => kind === "bar" || kind === "column" || kind === "line" || kind === "area";
5576
5658
  const KIND_MAP = [
5577
5659
  {
5578
5660
  localName: "barChart",
@@ -6027,24 +6109,54 @@ const readChartSpec = (root) => {
6027
6109
  if (!chart) throw new Error("<c:chartSpace> has no <c:chart>");
6028
6110
  const plotArea = firstChildElement(chart, NAME_PLOT_AREA);
6029
6111
  if (!plotArea) throw new Error("<c:chart> has no <c:plotArea>");
6030
- let plotted = null;
6031
- let kind = null;
6032
- for (const candidate of KIND_MAP) {
6033
- const found = findFirst(plotArea, [candidate.localName]);
6034
- if (found) {
6035
- plotted = found;
6036
- kind = candidate.kind;
6037
- if (candidate.localName === "barChart" || candidate.localName === "bar3DChart") {
6038
- const barDir = firstChildElement(found, qname("c", "barDir", NS_C));
6039
- kind = (barDir !== null ? getAttrValue(barDir, ATTR_VAL) : null) === "bar" ? "bar" : "column";
6040
- }
6041
- break;
6112
+ const kindByLocalName = new Map(KIND_MAP.map((entry) => [entry.localName, entry]));
6113
+ const plotGroups = [];
6114
+ for (const child of plotArea.children) {
6115
+ if (child.kind !== "element" || child.name.namespaceURI !== NS_C) continue;
6116
+ const mapped = kindByLocalName.get(child.name.localName);
6117
+ if (!mapped) continue;
6118
+ let groupKind = mapped.kind;
6119
+ if (mapped.localName === "barChart" || mapped.localName === "bar3DChart") {
6120
+ const barDir = firstChildElement(child, qname("c", "barDir", NS_C));
6121
+ groupKind = (barDir !== null ? getAttrValue(barDir, ATTR_VAL) : null) === "bar" ? "bar" : "column";
6042
6122
  }
6123
+ plotGroups.push({
6124
+ element: child,
6125
+ kind: groupKind
6126
+ });
6043
6127
  }
6044
- if (!plotted || !kind) return null;
6128
+ const firstGroup = plotGroups[0];
6129
+ if (!firstGroup) return null;
6130
+ const plotted = firstGroup.element;
6131
+ const kind = firstGroup.kind;
6132
+ const secondaryValAxisIds = /* @__PURE__ */ new Set();
6133
+ for (const child of plotArea.children) {
6134
+ if (child.kind !== "element" || child.name.namespaceURI !== NS_C || child.name.localName !== "valAx") continue;
6135
+ const axIdEl = firstChildElement(child, qname("c", "axId", NS_C));
6136
+ const axPosEl = firstChildElement(child, qname("c", "axPos", NS_C));
6137
+ const axId = axIdEl !== null ? getAttrValue(axIdEl, ATTR_VAL) : null;
6138
+ const axPos = axPosEl !== null ? getAttrValue(axPosEl, ATTR_VAL) : null;
6139
+ if (axId !== null && (axPos === "r" || axPos === "t")) secondaryValAxisIds.add(axId);
6140
+ }
6141
+ const groupUsesSecondaryAxis = (group) => {
6142
+ for (const child of group.children) if (child.kind === "element" && child.name.namespaceURI === NS_C && child.name.localName === "axId") {
6143
+ const id = getAttrValue(child, ATTR_VAL);
6144
+ if (id !== null && secondaryValAxisIds.has(id)) return true;
6145
+ }
6146
+ return false;
6147
+ };
6045
6148
  const series = [];
6046
6149
  let categoriesFromFirst = null;
6047
- for (const ser of allChildElements(plotted, NAME_SER)) {
6150
+ const serEntries = [];
6151
+ for (const group of plotGroups) {
6152
+ const secondary = groupUsesSecondaryAxis(group.element);
6153
+ for (const ser of allChildElements(group.element, NAME_SER)) serEntries.push({
6154
+ ser,
6155
+ groupKind: group.kind,
6156
+ secondary
6157
+ });
6158
+ }
6159
+ for (const { ser, groupKind, secondary } of serEntries) {
6048
6160
  const name = readSeriesName(ser);
6049
6161
  const cat = firstChildElement(ser, NAME_CAT);
6050
6162
  if (cat !== null && categoriesFromFirst === null) {
@@ -6103,6 +6215,8 @@ const readChartSpec = (root) => {
6103
6215
  series.push({
6104
6216
  name,
6105
6217
  values: values ?? [],
6218
+ ...groupKind !== kind && isComboSeriesKind(groupKind) ? { chartKind: groupKind } : {},
6219
+ ...secondary ? { secondaryAxis: true } : {},
6106
6220
  ...xValues !== null ? { xValues } : {},
6107
6221
  ...bubbleSizes !== null ? { bubbleSizes } : {},
6108
6222
  ...color !== void 0 ? { color } : {},
@@ -16844,8 +16958,8 @@ const ungroupShapes = (group) => {
16844
16958
  };
16845
16959
  //#endregion
16846
16960
  //#region src/api/index.ts
16847
- const VERSION = "0.11.1";
16961
+ const VERSION = "0.12.0";
16848
16962
  //#endregion
16849
16963
  export { slideHasAnimations as $, getTableCellTextDirection as $a, getAllComments as $i, getSlideMasterPartNames as $n, setShapeRunFormat as $o, setParagraphAlignment as $r, getCommentsSortedByDate as $s, getShapeStrokeEffective as $t, getPresentationTextLength as A, getMediaParts as Aa, getShapeImageLinkUrl as Ai, getGroupTransform as An, getExtendedProperties as Ao, setShapeStrokeCap as Ar, getSlideMasterBackgroundImageBytes as As, setShapeTextColumns as At, getSlideText as B, clearTableCellFill as Ba, SLIDE_SIZE_16_10 as Bi, getShapeFlip as Bn, findSlideLayoutByType as Bo, getParagraphIndent as Br, clearSlideComments as Bs, setShapeGlow as Bt, findSlideByTitle as C, replaceHyperlink as Ca, getShapeImageBrightness as Ci, replaceTokensInSlide as Cn, setTableRowHeight as Co, setShapeNoStroke as Cr, getSlideLayoutBackgroundGradientFill as Cs, getShapeTextWrap as Ct, getOutlineText as D, setSlideTransition as Da, getShapeImageDuotone as Di, findShapesAtPoint as Dn, removeThumbnail as Do, setShapeSize as Dr, getSlideLayoutShapes as Ds, setShapeTextAnchor as Dt, getAllShapes as E, getSlideTransition as Ea, getShapeImageCrop as Ei, centerShapeOnSlide as En, getThumbnail as Eo, setShapeRotation as Er, getSlideLayoutBackgroundShapes as Es, setShapeText as Et, getSlideIndex as F, listPackageParts as Fa, isShapeImageGrayscale as Fi, getShapeBounds as Fn, setExtendedProperties as Fo, resolveDrawingColor as Fr, getShapeClickAction as Fs, clearShapeEffects as Ft, isSlideHidden as G, getTableCellAnchor as Ga, appendSlideNotes as Gi, getShapePlaceholderType as Gn, getSlideLayoutUsageCounts as Go, getShapeParagraphCount as Gr, findCommentsByText as Gs, getShapeFillColor as Gt, getSlideXmlString as H, getSlideTables as Ha, SLIDE_SIZE_4_3 as Hi, getShapeKind as Hn, getSlideLayoutPartName as Ho, getParagraphLineSpacing as Hr, findCommentsAfter as Hs, getShapeGradientFill as Ht, getSlideInfo as I, readPackagePart as Ia, setShapeImageBrightness as Ii, getShapeBoundsResolved as In, touchModified as Io, getParagraphAlignment as Ir, setShapeClickAction as Is, findShapesByEffect as It, replaceTextInSlide as J, getTableCellMargins as Ja, clearSlideHyperlinks as Ji, getShapeRotation as Jn, getUnusedSlideLayouts as Jo, getShapeRunCount as Jr, getCommentAuthors as Js, getShapeStroke as Jt, replaceTextInNotes as K, getTableCellBorders as Ka, clearAllHyperlinks as Ki, getShapePosition as Kn, getSlideLayoutUsageCountsByType as Ko, getShapeParagraphElements as Kr, findSlidesWithCommentsByAuthor as Ks, getShapeFillColorResolved as Kt, getSlideLayoutCount as L, setMediaPartBytes as La, setShapeImageContrast as Li, getShapeCenter as Ln, findLayoutsWithPlaceholderType as Lo, getParagraphBullet as Lr, setShapeImage as Ls, getShapeEffect as Lt, getShapeAt as M, getPackageSize as Ma, getShapeImagePartName as Mi, getMaxShapeIdInPresentation as Mn, getPresentationModified as Mo, setShapeStrokeDash as Mr, getSlideMasterShapes as Ms, setShapeTextFormat as Mt, getSlideAt as N, getPresentationSummary as Na, hasShapeImage as Ni, getShapeAdjustValues as Nn, incrementRevision as No, setShapeStrokeJoin as Nr, setSlideBackground as Ns, setShapeTextMargins as Nt, getPresentationShapeCountsBySlide as O, _internalPackageOf as Oa, getShapeImageFillBytes as Oi, findShapesInRect as On, setThumbnail as Oo, setShapeStroke as Or, getSlideMasterBackground as Os, setShapeTextAutoFit as Ot, getSlideCount as P, getSlideMediaPartNames as Pa, hasShapeText as Pi, getShapeAltTitle as Pn, setCoreProperties as Po, getShapeRunFormat as Pr, setSlideBackgroundImage as Ps, setShapeTextWrap as Pt, setSlideHidden as Q, getTableCellText as Qa, getAllCharts as Qi, getSlideMasterPartName as Qn, setShapeHyperlink as Qo, isParagraphBulletPicture as Qr, getCommentText as Qs, getShapeStrokeCompound as Qt, getSlideOutline as R, slidesUsingMediaPart as Ra, setShapeImageCrop as Ri, getShapeCustomGeometry as Rn, findSlideLayout as Ro, getParagraphBulletImageBytes as Rr, addSlideComment as Rs, getShapeEffects as Rt, findSlideByText as S, removeSlideNotes as Sa, getShapeImageBiLevelThreshold as Si, getSlidesWithEmptyPlaceholders as Sn, setTableColumnWidth as So, setShapeNoFill as Sr, getSlideLayoutBackground as Ss, getShapeTextMargins as St, findSlidesByText as T, clearSlideTransition as Ta, getShapeImageContrast as Ti, translateShapes as Tn, setTableStyleId as To, setShapePosition as Tr, getSlideLayoutBackgroundPatternFill as Ts, setShapeBullets as Tt, getSlides as U, getTableCell as Ua, getSlideSize as Ui, getShapeName as Un, getSlideLayoutPlaceholders as Uo, getParagraphSpacing as Ur, findCommentsBefore as Us, getShapeGradientFillEffective as Ut, getSlideTextLength as V, getPresentationTableCountsBySlide as Va, SLIDE_SIZE_16_9 as Vi, getShapeId as Vn, getSlideLayoutName as Vo, getParagraphLevel as Vr, findCommentAuthorByName as Vs, setShapeShadow as Vt, getSlidesByLayout as W, getTableCellAlignment as Wa, setSlideSize as Wi, getShapePlaceholderIdx as Wn, getSlideLayoutType as Wo, getShapeHyperlinkTooltip as Wr, findCommentsByAuthor as Ws, getShapeFill as Wt, replaceTokensInPresentation as X, getTableCellPosition as Xa, findSlidesWithChartKind as Xi, getShapeText as Xn, getShapeHyperlink as Xo, getShapeRunHyperlinkTooltip as Xr, getCommentPosition as Xs, getShapeStrokeColor as Xt, replaceTextInSlideNotes as Y, getTableCellParagraphs as Ya, findSlidesByHyperlink as Yi, getShapeSize as Yn, getParagraphPropertiesEffective as Yo, getShapeRunHyperlink as Yr, getCommentDate as Ys, getShapeStrokeCap as Yt, searchSlides as Z, getTableCellSpan as Za, findSlidesWithChartTrendlines as Zi, getSlideMasterCount as Zn, getShapeRunFormatEffective as Zo, getShapeRunText as Zr, getCommentSlide as Zs, getShapeStrokeColorResolved as Zt, sortSlides as _, getSlidesWithNotes as _a, pt as _c, findShapesOutsideCanvas as _i, getShapeSlide as _n, setTableCellFill as _o, setShapeAdjustValues as _r, getSlideBackground as _s, getShapeTextAutoFit as _t, addContentSlide as a, getEmptySlides as aa, removeSlideComment as ac, setShapeRunText as ai, findShapeByText as an, getTableStyleFlags as ao, pointInShape as ar, getPresentationChartCountsBySlide as as, bringShapeForward as at, setSlideSections as b, getVisibleSlides as ba, findSlidesByLayoutType as bi, getSlideLayout as bn, setTableCellTextDirection as bo, setShapeGradientFill as br, getSlideBackgroundPatternFill as bs, getShapeTextColumns as bt, addSlideAt as c, getPresentationNotesLength as ca, setPresentationFonts as cc, setSlideBody as ci, findShapesByKind as cn, insertTableRow as co, setShapeBounds as cr, getShapeChartKind as cs, copyShape as ct, duplicateSlideAt as d, getSlideNotes as da, loadPresentation as dc, clearSlideAnimations as di, findShapesByText as dn, mergeTableCells as do, shapesOverlap as dr, getShapeChartSpec as ds, sendShapeBackward as dt, getAllHyperlinks as ea, getPresentationCommentCountsByAuthor as ec, setParagraphBullet as ei, getShapeStrokeJoin as en, getTableCells as eo, getSlideMasterUsageCounts as er, addSlideChart as es, addSlideImage as et, importSlide as f, getSlideNotesLength as fa, savePresentation as fc, findShapesWithAnimation as fi, findShapesWithHyperlinks as fn, removeTableColumn as fo, clearShapeFill as fr, getSlideCharts as fs, sendShapeToBack as ft, reverseSlides as g, getSlidesWithImages as ga, mm as gc, findOverlappingShapePairs as gi, getShapeIndex as gn, setTableCellBorders as go, getShapeStrokeDash as gr, clearSlideBackground as gs, getShapeTextAnchor as gt, removeSlide as h, getSlidesWithHyperlinks as ha, inches as hc, findFlippedShapes as hi, findSlidePlaceholders as hn, setTableCellAnchor as ho, getShapeStrokeArrow as hr, resolveDeckBodyTextColor as hs, getShapeBodyPrEffective as ht, addBlankSlide as i, getDistinctHyperlinkUrls as ia, getSlideComments as ic, setShapeRunHyperlink as ii, findShapeByName as in, getTableSize as io, isShapeTextBox as ir, findChartsWithTrendlines as is, addSlideTextBox as it, getPresentationTextLengthsBySlide as j, getOrphanMediaPartNames as ja, getShapeImageOpacity as ji, getMaxShapeId as jn, getPresentationCreated as jo, setShapeStrokeCompound as jr, getSlideMasterBackgroundPatternFill as js, setShapeTextDirection as jt, getPresentationText as k, compactPackage as ka, getShapeImageFormat as ki, getGroupChildren as kn, getCoreProperties as ko, setShapeStrokeArrow as kr, getSlideMasterBackgroundGradientFill as ks, setShapeTextBodyRotationDeg as kt, addTitleSlide as l, getPresentationNotesLengthsBySlide as la, setPresentationTheme as lc, setSlidePlaceholders as li, findShapesByName as ln, isChartShape as lo, setShapeDescription as lr, getShapeChartSeriesNames as ls, getShapeZIndex as lt, moveSlide as m, getSlidesWithComments as ma, emu as mc, setShapeAnimation as mi, findSlidePlaceholderByIdx as mn, setTableCellAlignment as mo, getShapePatternFill as mr, getEffectiveColorMap as ms, appendShapeText as mt, groupShapes as n, getAllNotes as na, getPresentationCommenters as nc, setParagraphLineSpacing as ni, findEmptyPlaceholders as nn, getTableDimensions as no, isShapeHidden as nr, findChartsBySeriesName as ns, addSlideShape as nt, addSectionHeaderSlide as o, getHiddenSlides as oa, getPresentationFonts as oc, getSlideBody as oi, findShapeInPresentation as on, getTableStyleId as oo, renameShape as or, getPresentationChartKindCounts as os, bringShapeToFront as ot, mergePresentations as p, getSlidesWithCharts as pa, cm as pc, getShapeAnimation as pi, findSlidePlaceholder as pn, removeTableRow as po, clearShapeStroke as pr, setChartSpec as ps, setShapeZIndex as pt, replaceTextInPresentation as q, getTableCellFill as qa, clearAllSlideNotes as qi, getShapePreset as qn, getSlideLayouts as qo, getShapeRunClickAction as qr, getCommentAuthor as qs, getShapeFillEffective as qt, ungroupShapes as r, getAllTables as ra, getSlideCommentAuthors as rc, setParagraphSpacing as ri, findShapeById as rn, getTableRowHeights as ro, isShapePlaceholder as rr, findChartsWithDataLabels as rs, addSlideTable as rt, addSlide as s, getPresentationHyperlinkCountsBySlide as sa, getPresentationTheme as sc, getSlideTitle as si, findShapesByHyperlink as sn, insertTableColumn as so, setShapeAltTitle as sr, getShapeChartCategories as ss, clearSlideShapes as st, VERSION as t, getAllImages as ta, getPresentationCommentCountsBySlide as tc, setParagraphLevel as ti, getShapeStrokeWidth as tn, getTableColumnWidths as to, getUnusedSlideMasters as tr, findChartByKind as ts, addSlideLine as tt, duplicateSlide as u, getPresentationNotesText as ua, createPresentation as uc, setSlideTitle as ui, findShapesByPreset as un, isTableShape as uo, setShapeHidden as ur, getShapeChartSeriesValues as us, removeShape as ut, swapSlides as v, getSlidesWithOverlap as va, findSlidesByLayoutName as vi, getShapeXmlString as vn, setTableCellMargins as vo, setShapeFill as vr, getSlideBackgroundGradientFill as vs, getShapeTextAutoFitParams as vt, findSlidesByNotes as w, setSlideNotes as wa, getShapeImageBytes as wi, setSlideLayout as wn, setTableStyleFlags as wo, setShapePatternFill as wr, getSlideLayoutBackgroundImageBytes as ws, setShapeAlignment as wt, findSlideByPartName as x, hasSlideNotes as xa, getPresentationImageCountsBySlide as xi, getSlideShapes as xn, setTableCellTextFormat as xo, setShapeImageFill as xr, getSlideColorMapOverride as xs, getShapeTextDirection as xt, getSlideSections as y, getSlidesWithTables as ya, findSlidesByLayoutPartName as yi, getShapesBounds as yn, setTableCellText as yo, setShapeFlip as yr, getSlideBackgroundImageBytes as ys, getShapeTextBodyRotationDeg as yt, getSlidePartName as z, validatePresentation as za, setShapeImageOpacity as zi, getShapeDescription as zn, findSlideLayoutByPartName as zo, getParagraphBulletStyle as zr, clearAllSlideComments as zs, getShapeEffectsEffective as zt };
16850
16964
 
16851
- //# sourceMappingURL=api-Cg65Wcm1.js.map
16965
+ //# sourceMappingURL=api-CJkBUILx.js.map