@office-kit/pptx 0.11.1 → 0.13.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,38 @@
1
1
  # pptx-kit
2
2
 
3
+ ## 0.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 104f7d2: Read and render the transparency of solid fills and outlines.
8
+
9
+ `@office-kit/pptx` adds `getShapeFillOpacity`, `getShapeStrokeOpacity`, and
10
+ `resolveDrawingColorOpacity`, which resolve `<a:alpha>` / `<a:alphaMod>` /
11
+ `<a:alphaOff>` on a color to a 0–1 opacity. `getShapeFillColorResolved` and
12
+ `getShapeStrokeColorResolved` keep returning the plain `#RRGGBB`.
13
+
14
+ `@office-kit/pptx-preview` now emits `fill-opacity` / `stroke-opacity` for
15
+ translucent solid fills and outlines, including artwork inherited from slide
16
+ layouts and masters. A semi-transparent shape layered over a gradient or the
17
+ slide background previously rendered as an opaque block that hid whatever sat
18
+ beneath it.
19
+
20
+ ## 0.12.0
21
+
22
+ ### Minor Changes
23
+
24
+ - 6294c52: Combo charts: per-series `chartKind` overrides and a secondary value axis.
25
+
26
+ `ChartSeries` gains `chartKind` (`'bar' | 'column' | 'line' | 'area'`) to
27
+ overlay e.g. a line series on a column chart, and `secondaryAxis: true` to
28
+ plot a series against a right-hand secondary value axis — the standard
29
+ PowerPoint combo layout for series with mixed units (counts vs. rates).
30
+ The builder splits series into plot groups (`<c:barChart>` + `<c:lineChart>`
31
+ …) and emits the secondary `<c:valAx>`/`<c:catAx>` pair on demand;
32
+ `getShapeChartSpec` round-trips both fields. The preview renderer paints
33
+ bars below line/area overlays, scales each axis from its own series, and
34
+ draws the secondary ticks on the plot's right edge.
35
+
3
36
  ## 0.11.1
4
37
 
5
38
  ### 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 } : {},
@@ -12725,6 +12839,26 @@ const resolveDrawingColor = (colorEl, theme, clrMap) => {
12725
12839
  if (!baseHex) return null;
12726
12840
  return applyColorTransforms(baseHex, parseColorTransforms(colorEl));
12727
12841
  };
12842
+ /**
12843
+ * Resolves the opacity a DrawingML color element carries through its
12844
+ * `<a:alpha>` / `<a:alphaMod>` / `<a:alphaOff>` children (ECMA-376
12845
+ * §20.1.2.3.1–3) to a `0`–`1` fraction, applied in document order from a
12846
+ * fully opaque base. Returns `null` when the element has no alpha
12847
+ * transform — PowerPoint paints that opaque, but callers can still tell
12848
+ * "unspecified" apart from an explicit `1`.
12849
+ *
12850
+ * Kept separate from `resolveDrawingColor` because alpha never changes the
12851
+ * `#RRGGBB`; OOXML encodes the two independently and renderers emit the
12852
+ * opacity next to the color (`fill-opacity` / `stroke-opacity`).
12853
+ */
12854
+ const resolveDrawingColorOpacity = (colorEl) => {
12855
+ if (colorEl.name.namespaceURI !== NS.dml) return null;
12856
+ let opacity = null;
12857
+ for (const t of parseColorTransforms(colorEl)) if (t.kind === "alpha") opacity = t.val;
12858
+ else if (t.kind === "alphaMod") opacity = (opacity ?? 1) * t.val;
12859
+ else if (t.kind === "alphaOff") opacity = (opacity ?? 1) + t.val;
12860
+ return opacity === null ? null : Math.max(0, Math.min(1, opacity));
12861
+ };
12728
12862
  const parseRPrLikeElement = (rPr, ctx) => {
12729
12863
  const out = {};
12730
12864
  const sz = getAttrValue(rPr, qname("", "sz", ""));
@@ -14048,6 +14182,21 @@ const replaceTokensInSlide = (slide, tokens) => {
14048
14182
  };
14049
14183
  //#endregion
14050
14184
  //#region src/api/fn/shape-read-paint.ts
14185
+ const solidFillColorElement = (container) => {
14186
+ const solid = firstChildElement(container, qname("a", "solidFill", NS.dml));
14187
+ if (!solid) return null;
14188
+ for (const inner of solid.children) if (inner.kind === "element" && inner.name.namespaceURI === NS.dml) return inner;
14189
+ return null;
14190
+ };
14191
+ const fillColorElement = (shape) => {
14192
+ const spPr = firstChildElement(shape[SHAPE_ELEMENT], qname("p", "spPr", NS.pml));
14193
+ return spPr ? solidFillColorElement(spPr) : null;
14194
+ };
14195
+ const strokeColorElement = (shape) => {
14196
+ const spPr = firstChildElement(shape[SHAPE_ELEMENT], qname("p", "spPr", NS.pml));
14197
+ const ln = spPr ? firstChildElement(spPr, qname("a", "ln", NS.dml)) : null;
14198
+ return ln ? solidFillColorElement(ln) : null;
14199
+ };
14051
14200
  /**
14052
14201
  * Convenience over `getShapeStroke(shape)`: returns the solid-
14053
14202
  * stroke color (`#RRGGBB` / `scheme:<token>`) or `null` when the
@@ -14079,17 +14228,19 @@ const getShapeStrokeWidth = (shape) => {
14079
14228
  * color, not the base one.
14080
14229
  */
14081
14230
  const getShapeStrokeColorResolved = (pres, shape) => {
14082
- const spPr = firstChildElement(shape[SHAPE_ELEMENT], qname("p", "spPr", NS.pml));
14083
- if (!spPr) return null;
14084
- const ln = firstChildElement(spPr, qname("a", "ln", NS.dml));
14085
- if (!ln) return null;
14086
- const solid = firstChildElement(ln, qname("a", "solidFill", NS.dml));
14087
- if (!solid) return null;
14088
- for (const inner of solid.children) {
14089
- if (inner.kind !== "element" || inner.name.namespaceURI !== NS.dml) continue;
14090
- return resolveDrawingColor(inner, getPresentationTheme(pres));
14091
- }
14092
- return null;
14231
+ const color = strokeColorElement(shape);
14232
+ return color ? resolveDrawingColor(color, getPresentationTheme(pres)) : null;
14233
+ };
14234
+ /**
14235
+ * Returns the opacity (`0`–`1`) of the shape's own solid outline, read from
14236
+ * the `<a:alpha>` / `<a:alphaMod>` / `<a:alphaOff>` children of its color
14237
+ * element, or `null` when the outline isn't a solid color or carries no
14238
+ * alpha transform (PowerPoint draws it fully opaque). Companion to
14239
+ * `getShapeStrokeColorResolved`, which never carries the alpha channel.
14240
+ */
14241
+ const getShapeStrokeOpacity = (shape) => {
14242
+ const color = strokeColorElement(shape);
14243
+ return color ? resolveDrawingColorOpacity(color) : null;
14093
14244
  };
14094
14245
  /**
14095
14246
  * Reads the stroke's line cap style — `'rnd'` (round), `'sq'` (square),
@@ -14271,15 +14422,20 @@ const getShapeFillColor = (shape) => {
14271
14422
  * need the color PowerPoint actually paints should call this.
14272
14423
  */
14273
14424
  const getShapeFillColorResolved = (pres, shape) => {
14274
- const spPr = firstChildElement(shape[SHAPE_ELEMENT], qname("p", "spPr", NS.pml));
14275
- if (!spPr) return null;
14276
- const solid = firstChildElement(spPr, qname("a", "solidFill", NS.dml));
14277
- if (!solid) return null;
14278
- for (const inner of solid.children) {
14279
- if (inner.kind !== "element" || inner.name.namespaceURI !== NS.dml) continue;
14280
- return resolveDrawingColor(inner, getPresentationTheme(pres));
14281
- }
14282
- return null;
14425
+ const color = fillColorElement(shape);
14426
+ return color ? resolveDrawingColor(color, getPresentationTheme(pres)) : null;
14427
+ };
14428
+ /**
14429
+ * Returns the opacity (`0`–`1`) of the shape's own solid fill, read from
14430
+ * the `<a:alpha>` / `<a:alphaMod>` / `<a:alphaOff>` children of its color
14431
+ * element, or `null` when the fill isn't solid or carries no alpha
14432
+ * transform (PowerPoint paints it fully opaque). Companion to
14433
+ * `getShapeFillColorResolved`, which never carries the alpha channel —
14434
+ * OOXML encodes color and alpha independently.
14435
+ */
14436
+ const getShapeFillOpacity = (shape) => {
14437
+ const color = fillColorElement(shape);
14438
+ return color ? resolveDrawingColorOpacity(color) : null;
14283
14439
  };
14284
14440
  /**
14285
14441
  * Same as `getShapeFill` but walks the layout → master placeholder
@@ -16844,8 +17000,8 @@ const ungroupShapes = (group) => {
16844
17000
  };
16845
17001
  //#endregion
16846
17002
  //#region src/api/index.ts
16847
- const VERSION = "0.11.1";
17003
+ const VERSION = "0.13.0";
16848
17004
  //#endregion
16849
- 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 };
17005
+ export { slideHasAnimations as $, getTableCellPosition as $a, findSlidesWithChartKind as $i, getSlideMasterCount as $n, getShapeHyperlink as $o, getShapeRunHyperlinkTooltip as $r, getCommentPosition as $s, getShapeStrokeCompound as $t, getPresentationTextLength as A, setSlideTransition as Aa, getShapeImageDuotone as Ai, findShapesInRect as An, removeThumbnail as Ao, setShapeStroke as Ar, getSlideLayoutShapes as As, setShapeTextColumns as At, getSlideText as B, setMediaPartBytes as Ba, setShapeImageContrast as Bi, getShapeCustomGeometry as Bn, findLayoutsWithPlaceholderType as Bo, getParagraphBullet as Br, setShapeImage as Bs, setShapeGlow as Bt, findSlideByTitle as C, getVisibleSlides as Ca, findSlidesByLayoutType as Ci, getSlideShapes as Cn, setTableCellTextDirection as Co, setShapeImageFill as Cr, getSlideBackgroundPatternFill as Cs, getShapeTextWrap as Ct, getOutlineText as D, setSlideNotes as Da, getShapeImageBytes as Di, translateShapes as Dn, setTableStyleFlags as Do, setShapePosition as Dr, getSlideLayoutBackgroundImageBytes as Ds, setShapeTextAnchor as Dt, getAllShapes as E, replaceHyperlink as Ea, getShapeImageBrightness as Ei, setSlideLayout as En, setTableRowHeight as Eo, setShapePatternFill as Er, getSlideLayoutBackgroundGradientFill as Es, setShapeText as Et, getSlideIndex as F, getPackageSize as Fa, getShapeImagePartName as Fi, getShapeAdjustValues as Fn, getPresentationModified as Fo, setShapeStrokeJoin as Fr, getSlideMasterShapes as Fs, clearShapeEffects as Ft, isSlideHidden as G, getSlideTables as Ga, SLIDE_SIZE_4_3 as Gi, getShapeName as Gn, getSlideLayoutPartName as Go, getParagraphLineSpacing as Gr, findCommentsAfter as Gs, getShapeFillColor as Gt, getSlideXmlString as H, validatePresentation as Ha, setShapeImageOpacity as Hi, getShapeFlip as Hn, findSlideLayoutByPartName as Ho, getParagraphBulletStyle as Hr, clearAllSlideComments as Hs, getShapeGradientFill as Ht, getSlideInfo as I, getPresentationSummary as Ia, hasShapeImage as Ii, getShapeAltTitle as In, incrementRevision as Io, getShapeRunFormat as Ir, setSlideBackground as Is, findShapesByEffect as It, replaceTextInSlide as J, getTableCellAnchor as Ja, appendSlideNotes as Ji, getShapePosition as Jn, getSlideLayoutUsageCounts as Jo, getShapeParagraphCount as Jr, findCommentsByText as Js, getShapeFillOpacity as Jt, replaceTextInNotes as K, getTableCell as Ka, getSlideSize as Ki, getShapePlaceholderIdx as Kn, getSlideLayoutPlaceholders as Ko, getParagraphSpacing as Kr, findCommentsBefore as Ks, getShapeFillColorResolved as Kt, getSlideLayoutCount as L, getSlideMediaPartNames as La, hasShapeText as Li, getShapeBounds as Ln, setCoreProperties as Lo, resolveDrawingColor as Lr, setSlideBackgroundImage as Ls, getShapeEffect as Lt, getShapeAt as M, compactPackage as Ma, getShapeImageFormat as Mi, getGroupTransform as Mn, getCoreProperties as Mo, setShapeStrokeCap as Mr, getSlideMasterBackgroundGradientFill as Ms, setShapeTextFormat as Mt, getSlideAt as N, getMediaParts as Na, getShapeImageLinkUrl as Ni, getMaxShapeId as Nn, getExtendedProperties as No, setShapeStrokeCompound as Nr, getSlideMasterBackgroundImageBytes as Ns, setShapeTextMargins as Nt, getPresentationShapeCountsBySlide as O, clearSlideTransition as Oa, getShapeImageContrast as Oi, centerShapeOnSlide as On, setTableStyleId as Oo, setShapeRotation as Or, getSlideLayoutBackgroundPatternFill as Os, setShapeTextAutoFit as Ot, getSlideCount as P, getOrphanMediaPartNames as Pa, getShapeImageOpacity as Pi, getMaxShapeIdInPresentation as Pn, getPresentationCreated as Po, setShapeStrokeDash as Pr, getSlideMasterBackgroundPatternFill as Ps, setShapeTextWrap as Pt, setSlideHidden as Q, getTableCellParagraphs as Qa, findSlidesByHyperlink as Qi, getShapeText as Qn, getParagraphPropertiesEffective as Qo, getShapeRunHyperlink as Qr, getCommentDate as Qs, getShapeStrokeColorResolved as Qt, getSlideOutline as R, listPackageParts as Ra, isShapeImageGrayscale as Ri, getShapeBoundsResolved as Rn, setExtendedProperties as Ro, resolveDrawingColorOpacity as Rr, getShapeClickAction as Rs, getShapeEffects as Rt, findSlideByText as S, getSlidesWithTables as Sa, findSlidesByLayoutPartName as Si, getSlideLayout as Sn, setTableCellText as So, setShapeGradientFill as Sr, getSlideBackgroundImageBytes as Ss, getShapeTextMargins as St, findSlidesByText as T, removeSlideNotes as Ta, getShapeImageBiLevelThreshold as Ti, replaceTokensInSlide as Tn, setTableColumnWidth as To, setShapeNoStroke as Tr, getSlideLayoutBackground as Ts, setShapeBullets as Tt, getSlides as U, clearTableCellFill as Ua, SLIDE_SIZE_16_10 as Ui, getShapeId as Un, findSlideLayoutByType as Uo, getParagraphIndent as Ur, clearSlideComments as Us, getShapeGradientFillEffective as Ut, getSlideTextLength as V, slidesUsingMediaPart as Va, setShapeImageCrop as Vi, getShapeDescription as Vn, findSlideLayout as Vo, getParagraphBulletImageBytes as Vr, addSlideComment as Vs, setShapeShadow as Vt, getSlidesByLayout as W, getPresentationTableCountsBySlide as Wa, SLIDE_SIZE_16_9 as Wi, getShapeKind as Wn, getSlideLayoutName as Wo, getParagraphLevel as Wr, findCommentAuthorByName as Ws, getShapeFill as Wt, replaceTokensInPresentation as X, getTableCellFill as Xa, clearAllSlideNotes as Xi, getShapeRotation as Xn, getSlideLayouts as Xo, getShapeRunClickAction as Xr, getCommentAuthor as Xs, getShapeStrokeCap as Xt, replaceTextInSlideNotes as Y, getTableCellBorders as Ya, clearAllHyperlinks as Yi, getShapePreset as Yn, getSlideLayoutUsageCountsByType as Yo, getShapeParagraphElements as Yr, findSlidesWithCommentsByAuthor as Ys, getShapeStroke as Yt, searchSlides as Z, getTableCellMargins as Za, clearSlideHyperlinks as Zi, getShapeSize as Zn, getUnusedSlideLayouts as Zo, getShapeRunCount as Zr, getCommentAuthors as Zs, getShapeStrokeColor as Zt, sortSlides as _, getSlidesWithComments as _a, emu as _c, setShapeAnimation as _i, findSlidePlaceholders as _n, setTableCellAlignment as _o, getShapeStrokeArrow as _r, getEffectiveColorMap as _s, getShapeTextAutoFit as _t, addContentSlide as a, getAllNotes as aa, getPresentationCommenters as ac, setParagraphLineSpacing as ai, findShapeById as an, getTableDimensions as ao, isShapePlaceholder as ar, findChartsBySeriesName as as, bringShapeForward as at, setSlideSections as b, getSlidesWithNotes as ba, pt as bc, findShapesOutsideCanvas as bi, getShapeXmlString as bn, setTableCellFill as bo, setShapeFill as br, getSlideBackground as bs, getShapeTextColumns as bt, addSlideAt as c, getEmptySlides as ca, removeSlideComment as cc, setShapeRunText as ci, findShapeInPresentation as cn, getTableStyleFlags as co, renameShape as cr, getPresentationChartCountsBySlide as cs, copyShape as ct, duplicateSlideAt as d, getPresentationNotesLength as da, setPresentationFonts as dc, setSlideBody as di, findShapesByName as dn, insertTableRow as do, setShapeDescription as dr, getShapeChartKind as ds, sendShapeBackward as dt, findSlidesWithChartTrendlines as ea, getCommentSlide as ec, getShapeRunText as ei, getShapeStrokeEffective as en, getTableCellSpan as eo, getSlideMasterPartName as er, getShapeRunFormatEffective as es, addSlideImage as et, importSlide as f, getPresentationNotesLengthsBySlide as fa, setPresentationTheme as fc, setSlidePlaceholders as fi, findShapesByPreset as fn, isChartShape as fo, setShapeHidden as fr, getShapeChartSeriesNames as fs, sendShapeToBack as ft, reverseSlides as g, getSlidesWithCharts as ga, cm as gc, getShapeAnimation as gi, findSlidePlaceholderByIdx as gn, removeTableRow as go, getShapePatternFill as gr, setChartSpec as gs, getShapeTextAnchor as gt, removeSlide as h, getSlideNotesLength as ha, savePresentation as hc, findShapesWithAnimation as hi, findSlidePlaceholder as hn, removeTableColumn as ho, clearShapeStroke as hr, getSlideCharts as hs, getShapeBodyPrEffective as ht, addBlankSlide as i, getAllImages as ia, getPresentationCommentCountsBySlide as ic, setParagraphLevel as ii, findEmptyPlaceholders as in, getTableColumnWidths as io, isShapeHidden as ir, findChartByKind as is, addSlideTextBox as it, getPresentationTextLengthsBySlide as j, _internalPackageOf as ja, getShapeImageFillBytes as ji, getGroupChildren as jn, setThumbnail as jo, setShapeStrokeArrow as jr, getSlideMasterBackground as js, setShapeTextDirection as jt, getPresentationText as k, getSlideTransition as ka, getShapeImageCrop as ki, findShapesAtPoint as kn, getThumbnail as ko, setShapeSize as kr, getSlideLayoutBackgroundShapes as ks, setShapeTextBodyRotationDeg as kt, addTitleSlide as l, getHiddenSlides as la, getPresentationFonts as lc, getSlideBody as li, findShapesByHyperlink as ln, getTableStyleId as lo, setShapeAltTitle as lr, getPresentationChartKindCounts as ls, getShapeZIndex as lt, moveSlide as m, getSlideNotes as ma, loadPresentation as mc, clearSlideAnimations as mi, findShapesWithHyperlinks as mn, mergeTableCells as mo, clearShapeFill as mr, getShapeChartSpec as ms, appendShapeText as mt, groupShapes as n, getAllComments as na, getCommentsSortedByDate as nc, setParagraphAlignment as ni, getShapeStrokeOpacity as nn, getTableCellTextDirection as no, getSlideMasterUsageCounts as nr, setShapeRunFormat as ns, addSlideShape as nt, addSectionHeaderSlide as o, getAllTables as oa, getSlideCommentAuthors as oc, setParagraphSpacing as oi, findShapeByName as on, getTableRowHeights as oo, isShapeTextBox as or, findChartsWithDataLabels as os, bringShapeToFront as ot, mergePresentations as p, getPresentationNotesText as pa, createPresentation as pc, setSlideTitle as pi, findShapesByText as pn, isTableShape as po, shapesOverlap as pr, getShapeChartSeriesValues as ps, setShapeZIndex as pt, replaceTextInPresentation as q, getTableCellAlignment as qa, setSlideSize as qi, getShapePlaceholderType as qn, getSlideLayoutType as qo, getShapeHyperlinkTooltip as qr, findCommentsByAuthor as qs, getShapeFillEffective as qt, ungroupShapes as r, getAllHyperlinks as ra, getPresentationCommentCountsByAuthor as rc, setParagraphBullet as ri, getShapeStrokeWidth as rn, getTableCells as ro, getUnusedSlideMasters as rr, addSlideChart as rs, addSlideTable as rt, addSlide as s, getDistinctHyperlinkUrls as sa, getSlideComments as sc, setShapeRunHyperlink as si, findShapeByText as sn, getTableSize as so, pointInShape as sr, findChartsWithTrendlines as ss, clearSlideShapes as st, VERSION as t, getAllCharts as ta, getCommentText as tc, isParagraphBulletPicture as ti, getShapeStrokeJoin as tn, getTableCellText as to, getSlideMasterPartNames as tr, setShapeHyperlink as ts, addSlideLine as tt, duplicateSlide as u, getPresentationHyperlinkCountsBySlide as ua, getPresentationTheme as uc, getSlideTitle as ui, findShapesByKind as un, insertTableColumn as uo, setShapeBounds as ur, getShapeChartCategories as us, removeShape as ut, swapSlides as v, getSlidesWithHyperlinks as va, inches as vc, findFlippedShapes as vi, getShapeIndex as vn, setTableCellAnchor as vo, getShapeStrokeDash as vr, resolveDeckBodyTextColor as vs, getShapeTextAutoFitParams as vt, findSlidesByNotes as w, hasSlideNotes as wa, getPresentationImageCountsBySlide as wi, getSlidesWithEmptyPlaceholders as wn, setTableCellTextFormat as wo, setShapeNoFill as wr, getSlideColorMapOverride as ws, setShapeAlignment as wt, findSlideByPartName as x, getSlidesWithOverlap as xa, findSlidesByLayoutName as xi, getShapesBounds as xn, setTableCellMargins as xo, setShapeFlip as xr, getSlideBackgroundGradientFill as xs, getShapeTextDirection as xt, getSlideSections as y, getSlidesWithImages as ya, mm as yc, findOverlappingShapePairs as yi, getShapeSlide as yn, setTableCellBorders as yo, setShapeAdjustValues as yr, clearSlideBackground as ys, getShapeTextBodyRotationDeg as yt, getSlidePartName as z, readPackagePart as za, setShapeImageBrightness as zi, getShapeCenter as zn, touchModified as zo, getParagraphAlignment as zr, setShapeClickAction as zs, getShapeEffectsEffective as zt };
16850
17006
 
16851
- //# sourceMappingURL=api-Cg65Wcm1.js.map
17007
+ //# sourceMappingURL=api-BfZ3bkVf.js.map