@silurus/ooxml 0.84.1 → 0.85.1

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.
Files changed (68) hide show
  1. package/README.md +44 -18
  2. package/dist/assets/render-worker-BRKOyWVH.js +24 -0
  3. package/dist/assets/render-worker-CtLMFj9r.js +10 -0
  4. package/dist/assets/render-worker-NZPOUOTU.js +11 -0
  5. package/dist/{canvas-viewer-mechanics-CIfhCgYA.js → canvas-viewer-mechanics-CfRzOhz5.js} +308 -234
  6. package/dist/chart-ex.mjs +270 -270
  7. package/dist/{comment-ui-runtime-CdMMApEN.js → comment-ui-runtime-CAbpuWi_.js} +4 -4
  8. package/dist/{comment-ui-runtime-C5qimVMD.js → comment-ui-runtime-DAKBCpsM.js} +5 -5
  9. package/dist/comment-ui-runtime-DTaaZdXC.js +2 -0
  10. package/dist/{comments-BAlAyIhb.js → comments-Brfxa3hQ.js} +1 -1
  11. package/dist/{document-pull-client-BXw6AAhY.js → document-pull-client-BkHHIdR4.js} +4661 -4357
  12. package/dist/{docx-BA1vB0V-.js → docx-_uelcAui.js} +338 -304
  13. package/dist/docx.mjs +7 -6
  14. package/dist/docx_parser_bg.wasm +0 -0
  15. package/dist/{dom-interaction-boundary-DS6BVyHA.js → dom-interaction-boundary-CMDDgICk.js} +1 -1
  16. package/dist/index.mjs +3 -3
  17. package/dist/line-distribute-CiKeWjBF.js +1023 -0
  18. package/dist/{line-metrics-CXyjyYd5.js → line-metrics-u87yCAfV.js} +2182 -705
  19. package/dist/math.mjs +2 -2
  20. package/dist/node.mjs +404 -394
  21. package/dist/pixel-budget-Dgjw269h.js +37 -0
  22. package/dist/{plot-area-frame-DuXZzovH.js → plot-area-frame-D5hEOgkJ.js} +691 -1418
  23. package/dist/{pptx-C17oBD8Z.js → pptx-WpBbS0mq.js} +255 -222
  24. package/dist/pptx.mjs +7 -6
  25. package/dist/pptx_parser_bg.wasm +0 -0
  26. package/dist/raster-target-whZhvVMt.js +87 -0
  27. package/dist/region-map.mjs +5 -5
  28. package/dist/{render-CVeGktZG.js → render-DrAAZWwH.js} +9 -6
  29. package/dist/{render-worker-host-BbhwA24Y.js → render-worker-host-CBVe8aeD.js} +1 -1
  30. package/dist/{render-worker-host-BWdhjVH_.js → render-worker-host-CHlwYJdK.js} +1 -1
  31. package/dist/{render-worker-host-CbaQivE7.js → render-worker-host-XDMsyVsv.js} +1 -1
  32. package/dist/{renderer-Bmky2yBc.js → renderer-XFSCOT6m.js} +1937 -1936
  33. package/dist/resource-measurement-6uR3Huao.js +150 -0
  34. package/dist/{session-Cl0RVnMs.js → session-DoPwA4gv.js} +79 -79
  35. package/dist/{slide-pull-client-BS0EeZo2.js → slide-pull-client-8i8C4VyD.js} +1054 -824
  36. package/dist/{three-d-B7LsKeOS.js → three-d-YYghQndN.js} +109 -110
  37. package/dist/three-d.mjs +726 -726
  38. package/dist/tiff.mjs +664 -78
  39. package/dist/types/chart-ex.d.ts +2 -2
  40. package/dist/types/docx.d.ts +31 -13
  41. package/dist/types/index.d.ts +46 -21
  42. package/dist/types/math.d.ts +1 -1
  43. package/dist/types/node.d.ts +11 -7
  44. package/dist/types/pptx.d.ts +35 -15
  45. package/dist/types/region-map.d.ts +2 -2
  46. package/dist/types/three-d.d.ts +2 -2
  47. package/dist/types/tiff.d.ts +13 -3
  48. package/dist/types/xlsx.d.ts +30 -13
  49. package/dist/{worksheet-pull-client-B0zfEVau.js → worksheet-pull-client-Btydoxto.js} +47 -47
  50. package/dist/{xlsx-FyKAiNo-.js → xlsx-Bd16V4Xx.js} +1395 -1196
  51. package/dist/xlsx.mjs +7 -6
  52. package/package.json +2 -2
  53. package/dist/assets/render-worker-BWPpayBu.js +0 -10
  54. package/dist/assets/render-worker-CiEWCh_T.js +0 -11
  55. package/dist/assets/render-worker-Cpmy3GDF.js +0 -24
  56. package/dist/comment-ui-runtime-aPzHfV_A.js +0 -2
  57. package/dist/line-distribute-MqInuujx.js +0 -1003
  58. package/dist/resource-measurement-esyGbzAF.js +0 -120
  59. package/dist/tiff-contract-Xjn3qXqK.js +0 -69
  60. /package/dist/{comment-occurrence-C34fWs_F.js → comment-occurrence-tj54AXXB.js} +0 -0
  61. /package/dist/{highlight-rect-MaCt0om0.js → highlight-rect-DBcYVJDv.js} +0 -0
  62. /package/dist/{mathjax-DPEX346v.js → mathjax-DS69BmJd.js} +0 -0
  63. /package/dist/{read-only-comment-decoration-BYCXoSdC.js → read-only-comment-decoration-Mv_SAiHy.js} +0 -0
  64. /package/dist/{read-only-comment-margin-C7b3l0ro.js → read-only-comment-margin-Cqu-Ir0C.js} +0 -0
  65. /package/dist/{renderer-module-contract-C6sYZvTV.js → renderer-module-contract-Cu-GKuPd.js} +0 -0
  66. /package/dist/{source-key-DORuuFb-.js → source-key-BkBB3X82.js} +0 -0
  67. /package/dist/{transfer-vNOFQuvv.js → transfer-mIj7E7NB.js} +0 -0
  68. /package/dist/{visible-index-DwJzuGmJ.js → visible-index-DPoQYSDt.js} +0 -0
@@ -1,31 +1,32 @@
1
1
  import { t as e } from "./chunk-DmhlhrBa.js";
2
- import { a as t, c as n, d as r, f as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./slide-pull-client-BS0EeZo2.js";
3
- import { B as p, G as m, Qt as h, R as g, Rt as _, Vt as v, W as y, Zt as b, a as x, et as S, ft as C, lt as w, tt as ee, z as te } from "./line-metrics-CXyjyYd5.js";
4
- import { C as ne, E as re, S as ie, T as ae, _ as oe, a as T, b as se, c as E, d as ce, f as le, g as ue, h as de, i as D, l as O, m as fe, n as pe, o as me, p as he, r as ge, s as _e, t as ve, v as ye, w as be, x as xe, y as Se } from "./canvas-viewer-mechanics-CIfhCgYA.js";
5
- import { a as Ce, i as k, n as we, t as Te } from "./bounded-raw-part-cache-C6ro6Ezf.js";
6
- import { a as A, c as Ee, i as De, l as j, n as Oe, r as ke, t as Ae } from "./dom-interaction-boundary-DS6BVyHA.js";
7
- import { o as je, s as Me } from "./tiff-contract-Xjn3qXqK.js";
2
+ import { a as t, c as n, d as r, f as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./slide-pull-client-8i8C4VyD.js";
3
+ import { B as p, G as m, R as h, W as g, Xt as _, a as v, et as y, on as b, pt as x, qt as S, sn as C, tt as w, ut as ee, vt as te, z as ne } from "./line-metrics-u87yCAfV.js";
4
+ import { C as re, D as ie, E as ae, S as oe, T as se, _ as ce, a as T, b as le, c as E, d as ue, f as de, g as fe, h as pe, i as D, l as O, m as me, n as he, o as ge, p as _e, r as ve, s as ye, t as be, v as xe, w as Se, x as Ce, y as we } from "./canvas-viewer-mechanics-CfRzOhz5.js";
5
+ import { a as Te, i as k, n as Ee, t as De } from "./bounded-raw-part-cache-C6ro6Ezf.js";
6
+ import { a as A, c as Oe, i as ke, l as j, n as Ae, r as je, t as Me } from "./dom-interaction-boundary-CMDDgICk.js";
7
+ import { l as Ne, s as Pe } from "./pixel-budget-Dgjw269h.js";
8
8
  import { i as M } from "./units-EJdC96r6.js";
9
- import { n as Ne } from "./resource-measurement-esyGbzAF.js";
10
- import { n as Pe } from "./renderer-module-contract-C6sYZvTV.js";
11
- import { t as Fe } from "./visible-index-DwJzuGmJ.js";
12
- import { n as Ie, t as N } from "./highlight-rect-MaCt0om0.js";
13
- import { t as P } from "./comment-occurrence-C34fWs_F.js";
9
+ import { i as Fe, s as Ie } from "./raster-target-whZhvVMt.js";
10
+ import { n as Le } from "./resource-measurement-6uR3Huao.js";
11
+ import { n as Re } from "./renderer-module-contract-Cu-GKuPd.js";
12
+ import { t as ze } from "./visible-index-DPoQYSDt.js";
13
+ import { n as Be, t as N } from "./highlight-rect-DBcYVJDv.js";
14
+ import { t as P } from "./comment-occurrence-tj54AXXB.js";
14
15
  //#region packages/core/src/nav/internal-target.ts
15
- function Le(e, t) {
16
+ function Ve(e, t) {
16
17
  let n = t.startsWith("/") ? [] : e.split("/").filter((e) => e !== "");
17
18
  for (let e of t.split("/")) if (e === "..") n.pop();
18
19
  else if (e === "." || e === "") continue;
19
20
  else n.push(e);
20
21
  return n.join("/");
21
22
  }
22
- function Re(e) {
23
+ function He(e) {
23
24
  let t = /[?&]jump=([a-zA-Z]+)/.exec(e);
24
25
  if (!t) return null;
25
26
  let n = t[1].toLowerCase();
26
27
  return n === "firstslide" || n === "lastslide" || n === "nextslide" || n === "previousslide" ? n : null;
27
28
  }
28
- function ze(e, t, n) {
29
+ function Ue(e, t, n) {
29
30
  if (!(n <= 0)) switch (e) {
30
31
  case "firstslide": return 0;
31
32
  case "lastslide": return n - 1;
@@ -35,13 +36,13 @@ function ze(e, t, n) {
35
36
  }
36
37
  //#endregion
37
38
  //#region packages/pptx/src/run-frame-transform.ts
38
- function Be(e) {
39
+ function We(e) {
39
40
  let t = e.textBodyRotation ?? 0, n = e.shapeFlipH === !0, r = e.shapeFlipV === !0;
40
41
  if (n || r) return `rotate(${e.rotation}deg) scale(${n ? -1 : 1}, ${r ? -1 : 1})` + (t === 0 ? "" : ` rotate(${t}deg)`);
41
42
  let i = e.rotation + t;
42
43
  return i === 0 ? "" : `rotate(${i}deg)`;
43
44
  }
44
- function Ve(e, t) {
45
+ function Ge(e, t) {
45
46
  return `${e.shapeX},${e.shapeY},${e.shapeW},${e.shapeH},` + t;
46
47
  }
47
48
  //#endregion
@@ -53,7 +54,7 @@ function I(e, t, n, r, i, a) {
53
54
  e.innerHTML = "", F(e, "ooxmlSelectionSurface", "pptx"), F(e, "slideIndex", a === void 0 ? void 0 : String(a));
54
55
  let o = /* @__PURE__ */ new Map(), s = e.ownerDocument ?? document;
55
56
  for (let [a, c] of t.entries()) {
56
- let t = Be(c), l = Ve(c, t), u = o.get(l);
57
+ let t = We(c), l = Ge(c, t), u = o.get(l);
57
58
  if (!u) {
58
59
  let i = s.createElement("div");
59
60
  i.style.cssText = `position:absolute;left:${N(c.shapeX, n)};top:${N(c.shapeY, r)};width:${N(c.shapeW, n)};height:${N(c.shapeH, r)};pointer-events:all;overflow:visible;`, t && (i.style.transformOrigin = "center center", i.style.transform = t), u = {
@@ -73,7 +74,7 @@ function I(e, t, n, r, i, a) {
73
74
  function L(e, t, n, r, i, a, o = {}) {
74
75
  e.innerHTML = "";
75
76
  let s = o.match ?? "rgba(255, 214, 0, 0.42)", c = o.active ?? "rgba(255, 140, 0, 0.55)", l = /* @__PURE__ */ new Map(), u = (t) => {
76
- let n = Be(t), a = Ve(t, n), o = l.get(a);
77
+ let n = We(t), a = Ge(t, n), o = l.get(a);
77
78
  if (!o) {
78
79
  let s = document.createElement("div");
79
80
  s.style.cssText = `position:absolute;left:${N(t.shapeX, r)};top:${N(t.shapeY, i)};width:${N(t.shapeW, r)};height:${N(t.shapeH, i)};pointer-events:none;overflow:hidden;`, n && (s.style.transformOrigin = "center center", s.style.transform = n), o = {
@@ -89,7 +90,7 @@ function L(e, t, n, r, i, a, o = {}) {
89
90
  for (let r of e.slices) {
90
91
  let e = t[r.runIndex];
91
92
  if (!e) continue;
92
- let i = a(e.font), { x: o, width: s } = Ie(e.text, r.start, r.end, i);
93
+ let i = a(e.font), { x: o, width: s } = Be(e.text, r.start, r.end, i);
93
94
  if (s <= 0) continue;
94
95
  let c = u(e), l = document.createElement("div");
95
96
  l.style.cssText = `position:absolute;left:${N(e.inShapeX + o, c.w)};top:${N(e.inShapeY, c.h)};width:${N(s, c.w)};height:${N(e.h, c.h)};background:${n};pointer-events:none;`, c.div.appendChild(l);
@@ -98,18 +99,18 @@ function L(e, t, n, r, i, a, o = {}) {
98
99
  }
99
100
  //#endregion
100
101
  //#region packages/pptx/src/find.ts
101
- function He(e, t) {
102
+ function Ke(e, t) {
102
103
  let n = e.tableCell, r = t.tableCell;
103
104
  return !n && !r ? !0 : !n || !r ? !1 : e.elementIndex === t.elementIndex && e.origin === t.origin && e.shapeId === t.shapeId && n.row === r.row && n.column === r.column;
104
105
  }
105
- function Ue(e, t) {
106
+ function qe(e, t) {
106
107
  for (let n = 1; n < t.length; n++) {
107
108
  let r = e[t[n - 1].runIndex], i = e[t[n].runIndex];
108
- if (!r || !i || !He(r, i)) return !1;
109
+ if (!r || !i || !Ke(r, i)) return !1;
109
110
  }
110
111
  return !0;
111
112
  }
112
- var We = class {
113
+ var Je = class {
113
114
  _slideRuns = /* @__PURE__ */ new Map();
114
115
  _matches = [];
115
116
  _active = -1;
@@ -169,9 +170,9 @@ var We = class {
169
170
  if (n !== this._generation) return [];
170
171
  let o = r === this._runsRevision ? i : new Map([...i, ...this._slideRuns]), s = [];
171
172
  for (let n = 0; n < a; n++) {
172
- let r = o.get(n) ?? [], i = fe(r);
173
- for (let a of de(i, e, t)) {
174
- if (!Ue(r, a.slices)) continue;
173
+ let r = o.get(n) ?? [], i = me(r);
174
+ for (let a of pe(i, e, t)) {
175
+ if (!qe(r, a.slices)) continue;
175
176
  let e = a.slices.map((e) => r[e.runIndex].text.slice(e.start, e.end)).join("");
176
177
  s.push({
177
178
  slide: n,
@@ -183,10 +184,10 @@ var We = class {
183
184
  return this._runsRevision++, this._slideRuns = o, this._matches = s, this._active = -1, this.matches();
184
185
  }
185
186
  next() {
186
- return this._active = le(this._active, this._matches.length), this._activePublic();
187
+ return this._active = de(this._active, this._matches.length), this._activePublic();
187
188
  }
188
189
  prev() {
189
- return this._active = he(this._active, this._matches.length), this._activePublic();
190
+ return this._active = _e(this._active, this._matches.length), this._activePublic();
190
191
  }
191
192
  _activePublic() {
192
193
  let e = this._matches[this._active];
@@ -196,22 +197,22 @@ var We = class {
196
197
  location: { slide: e.slide }
197
198
  } : null;
198
199
  }
199
- }, Ge = (e) => e >= "0" && e <= "9";
200
- function Ke(e) {
200
+ }, Ye = (e) => e >= "0" && e <= "9";
201
+ function Xe(e) {
201
202
  let t = 0;
202
203
  for (let n = 0; n < 10; n++) t = Math.max(t, e.measureText(String(n)).width);
203
204
  return t;
204
205
  }
205
- function qe(e, t, n) {
206
+ function Ze(e, t, n) {
206
207
  let r = 0;
207
- for (let i of t) r += Ge(i) ? n : e.measureText(i).width;
208
+ for (let i of t) r += Ye(i) ? n : e.measureText(i).width;
208
209
  return r;
209
210
  }
210
- function Je(e, t, n, r, i) {
211
+ function Qe(e, t, n, r, i) {
211
212
  let a = e.textAlign;
212
213
  e.textAlign = "left";
213
214
  let o = n;
214
- for (let n of t) if (Ge(n)) {
215
+ for (let n of t) if (Ye(n)) {
215
216
  let t = e.measureText(n).width;
216
217
  e.fillText(n, o + (i - t) / 2, r), o += i;
217
218
  } else e.fillText(n, o, r), o += e.measureText(n).width;
@@ -220,7 +221,7 @@ function Je(e, t, n, r, i) {
220
221
  //#endregion
221
222
  //#region packages/pptx/src/presentation-handle.ts
222
223
  var R = (e, t) => e / M * t;
223
- async function Ye(e, t, n) {
224
+ async function $e(e, t, n) {
224
225
  let r = e.getContext("2d");
225
226
  if (!r) throw Error("2D context not available");
226
227
  let a = n.width / (n.slideWidthEmu / M);
@@ -247,11 +248,11 @@ async function Ye(e, t, n) {
247
248
  try {
248
249
  t = await n.fetchMedia(e.mediaPath);
249
250
  } catch (t) {
250
- throw u(), Qe(e, t);
251
+ throw u(), nt(e, t);
251
252
  }
252
253
  let r = e.mimeType || t.type, i = t.type === r ? t : new Blob([t], { type: r }), o = URL.createObjectURL(i), s = e.mediaKind === "video" ? document.createElement("video") : document.createElement("audio");
253
254
  s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
254
- let f = Xe(e, a), p = {
255
+ let f = et(e, a), p = {
255
256
  el: e,
256
257
  rect: e.mediaKind === "audio" ? {
257
258
  x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
@@ -282,21 +283,19 @@ async function Ye(e, t, n) {
282
283
  }
283
284
  }
284
285
  let f = null, p = null, m = () => {
285
- r.setTransform(n.dpr, 0, 0, n.dpr, 0, 0);
286
- let t = e.width / n.dpr, a = e.height / n.dpr;
287
- r.drawImage(o, 0, 0, e.width, e.height, 0, 0, t, a);
286
+ r.setTransform(e.width / n.width, 0, 0, e.height / n.height, 0, 0), r.drawImage(o, 0, 0, e.width, e.height, 0, 0, n.width, n.height);
288
287
  for (let e of c) {
289
288
  let t = e.media;
290
289
  if (e.loadState !== "loading") {
291
290
  if (e.loadState === "error") {
292
- Ze(r, e.posterRect, "Media unavailable");
291
+ tt(r, e.posterRect, "Media unavailable");
293
292
  continue;
294
293
  }
295
294
  if (e.el.mediaKind === "video" && t.readyState >= 2) {
296
295
  let { x: n, y: i, w: a, h: o } = e.posterRect;
297
296
  r.drawImage(t, n, i, a, o);
298
297
  }
299
- if (e === p || v?.state === e) rt(r, e, t);
298
+ if (e === p || v?.state === e) st(r, e, t);
300
299
  else if (t.paused) {
301
300
  let { x: t, y: n, w: a, h: o } = e.posterRect;
302
301
  i(r, t + a / 2, n + o / 2, a, o, "paused");
@@ -306,10 +305,10 @@ async function Ye(e, t, n) {
306
305
  }, h = () => {
307
306
  l || (m(), f = requestAnimationFrame(h));
308
307
  }, g = (t, r) => {
309
- let i = e.getBoundingClientRect(), a = e.width / n.dpr, o = e.height / n.dpr;
308
+ let i = e.getBoundingClientRect();
310
309
  return {
311
- x: (t - i.left) / i.width * a,
312
- y: (r - i.top) / i.height * o
310
+ x: (t - i.left) / i.width * n.width,
311
+ y: (r - i.top) / i.height * n.height
313
312
  };
314
313
  }, _ = (e, t) => {
315
314
  for (let n of c) {
@@ -376,7 +375,7 @@ async function Ye(e, t, n) {
376
375
  }
377
376
  };
378
377
  }
379
- function Xe(e, t) {
378
+ function et(e, t) {
380
379
  return {
381
380
  x: R(e.x, t),
382
381
  y: R(e.y, t),
@@ -384,14 +383,14 @@ function Xe(e, t) {
384
383
  h: R(e.height, t)
385
384
  };
386
385
  }
387
- function Ze(e, t, n) {
386
+ function tt(e, t, n) {
388
387
  let r = Math.max(10, Math.min(14, t.h * .12));
389
388
  e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
390
389
  let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
391
390
  U(e, t.x + (t.w - a) / 2, t.y + (t.h - i) / 2, a, i, i / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.fillStyle = "rgba(255, 255, 255, 0.95)", e.fillText(n, t.x + t.w / 2, t.y + t.h / 2), e.restore();
392
391
  }
393
- function Qe(e, t) {
394
- return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${$e(t)}`);
392
+ function nt(e, t) {
393
+ return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${rt(t)}`);
395
394
  }
396
395
  function z(e, t, n, r) {
397
396
  let i = "";
@@ -405,36 +404,36 @@ function z(e, t, n, r) {
405
404
  `networkState=${t.networkState}`
406
405
  ];
407
406
  a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
408
- let s = r === void 0 ? "" : `: ${$e(r)}`;
407
+ let s = r === void 0 ? "" : `: ${rt(r)}`;
409
408
  return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
410
409
  }
411
- function $e(e) {
410
+ function rt(e) {
412
411
  return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
413
412
  }
414
- var et = 28, B = 14, tt = 72, nt = 10, V = 3;
415
- function rt(e, t, n) {
413
+ var it = 28, B = 14, at = 72, ot = 10, V = 3;
414
+ function st(e, t, n) {
416
415
  let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
417
- i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? at(e, t, n, r, a) : it(e, t, n, r, a);
416
+ i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? lt(e, t, n, r, a) : ct(e, t, n, r, a);
418
417
  }
419
- function it(e, t, n, r, i) {
418
+ function ct(e, t, n, r, i) {
420
419
  let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
421
420
  e.save();
422
421
  let d = e.createLinearGradient(0, u, 0, o + c);
423
422
  d.addColorStop(0, "rgba(0, 0, 0, 0)"), d.addColorStop(1, "rgba(0, 0, 0, 0.55)"), e.fillStyle = d, e.fillRect(a, u, s, l), e.restore();
424
423
  let f = H(t);
425
- st(e, f, i, r > 0), e.save(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.shadowColor = "rgba(0, 0, 0, 0.75)", e.shadowBlur = 3, e.fillStyle = "rgba(255, 255, 255, 0.95)", ot(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
424
+ dt(e, f, i, r > 0), e.save(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.shadowColor = "rgba(0, 0, 0, 0.75)", e.shadowBlur = 3, e.fillStyle = "rgba(255, 255, 255, 0.95)", ut(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
426
425
  }
427
- function at(e, t, n, r, i) {
428
- let a = ct(t.rect);
429
- e.save(), U(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", ot(e, n.currentTime, r, a.x + B, a.y + a.h / 2, "middle"), e.restore(), st(e, H(t), i, r > 0);
426
+ function lt(e, t, n, r, i) {
427
+ let a = ft(t.rect);
428
+ e.save(), U(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", ut(e, n.currentTime, r, a.x + B, a.y + a.h / 2, "middle"), e.restore(), dt(e, H(t), i, r > 0);
430
429
  }
431
- function ot(e, t, n, r, i, a) {
432
- let o = lt(t), s = lt(n), c = Ke(e), l = qe(e, o, c), u = qe(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
433
- Je(e, o, r + f - l, i, c);
430
+ function ut(e, t, n, r, i, a) {
431
+ let o = pt(t), s = pt(n), c = Xe(e), l = Ze(e, o, c), u = Ze(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
432
+ Qe(e, o, r + f - l, i, c);
434
433
  let p = e.textAlign;
435
- e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, Je(e, s, r + f + d, i, c);
434
+ e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, Qe(e, s, r + f + d, i, c);
436
435
  }
437
- function st(e, t, n, r) {
436
+ function dt(e, t, n, r) {
438
437
  let i = t.h / 2;
439
438
  if (e.save(), U(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (U(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
440
439
  let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
@@ -442,18 +441,18 @@ function st(e, t, n, r) {
442
441
  }
443
442
  e.restore();
444
443
  }
445
- function ct(e) {
444
+ function ft(e) {
446
445
  let t = Math.max(220, e.w - 24);
447
446
  return {
448
447
  x: e.x + e.w / 2 - t / 2,
449
- y: e.y + e.h - et - 4,
448
+ y: e.y + e.h - it - 4,
450
449
  w: t,
451
- h: et
450
+ h: it
452
451
  };
453
452
  }
454
453
  function H(e) {
455
454
  if (e.el.mediaKind === "audio") {
456
- let t = ct(e.rect), n = t.x + B + tt + nt, r = Math.max(40, t.x + t.w - B - n);
455
+ let t = ft(e.rect), n = t.x + B + at + ot, r = Math.max(40, t.x + t.w - B - n);
457
456
  return {
458
457
  x: n,
459
458
  y: t.y + (t.h - V) / 2,
@@ -473,14 +472,14 @@ function U(e, t, n, r, i, a) {
473
472
  let o = Math.min(a, i / 2, r / 2);
474
473
  e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
475
474
  }
476
- function lt(e) {
475
+ function pt(e) {
477
476
  if (!Number.isFinite(e) || e < 0) return "0:00";
478
477
  let t = Math.floor(e);
479
478
  return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
480
479
  }
481
480
  //#endregion
482
481
  //#region packages/pptx/src/slide-nav.ts
483
- function ut(e) {
482
+ function mt(e) {
484
483
  let t = /* @__PURE__ */ new Map();
485
484
  for (let n = 0; n < e.length; n++) {
486
485
  let r = e[n];
@@ -488,18 +487,18 @@ function ut(e) {
488
487
  }
489
488
  return t;
490
489
  }
491
- function dt(e, t) {
490
+ function ht(e, t) {
492
491
  if (e === "") return;
493
- let n = Le("ppt/slides", e);
492
+ let n = Ve("ppt/slides", e);
494
493
  return t.get(n);
495
494
  }
496
- function ft(e, t, n) {
497
- let r = Re(e);
498
- return r === null ? dt(e, t) : ze(r, n, t.size);
495
+ function gt(e, t, n) {
496
+ let r = He(e);
497
+ return r === null ? ht(e, t) : Ue(r, n, t.size);
499
498
  }
500
499
  //#endregion
501
500
  //#region packages/pptx/src/slide-repository.ts
502
- var pt = class {
501
+ var _t = class {
503
502
  #e;
504
503
  #t;
505
504
  #n;
@@ -509,10 +508,10 @@ var pt = class {
509
508
  #o;
510
509
  constructor(e) {
511
510
  if (!Number.isSafeInteger(e.slideCount) || e.slideCount < 0) throw TypeError("slideCount must be a non-negative safe integer");
512
- this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new we({
511
+ this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new Ee({
513
512
  maxEntries: e.maxCachedSlides,
514
513
  maxWeight: e.maxCachedStructuralBytes,
515
- measure: (e) => Ne(e).jsonBytes
514
+ measure: (e) => Le(e).jsonBytes
516
515
  });
517
516
  }
518
517
  get slideCount() {
@@ -530,7 +529,7 @@ var pt = class {
530
529
  try {
531
530
  return await t(r);
532
531
  } catch (e) {
533
- let t = mt(e);
532
+ let t = vt(e);
534
533
  throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
535
534
  }
536
535
  });
@@ -542,7 +541,7 @@ var pt = class {
542
541
  try {
543
542
  n = await this.#t(e);
544
543
  } catch (e) {
545
- let n = mt(e);
544
+ let n = vt(e);
546
545
  throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
547
546
  }
548
547
  if (this.#o === t && this.#a) throw this.#a;
@@ -559,22 +558,22 @@ var pt = class {
559
558
  t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
560
559
  }
561
560
  };
562
- function mt(e) {
563
- return e instanceof h ? e : m(e);
561
+ function vt(e) {
562
+ return e instanceof C ? e : m(e);
564
563
  }
565
564
  //#endregion
566
565
  //#region packages/pptx/src/embedded-fonts.ts
567
- var ht = 1;
566
+ var yt = 1;
568
567
  function W(e) {
569
568
  return e.trim().toLowerCase();
570
569
  }
571
- async function gt(e, t) {
570
+ async function bt(e, t) {
572
571
  if (e.length === 0) return {
573
572
  faces: [],
574
573
  aliases: /* @__PURE__ */ new Map(),
575
574
  authoredFamilies: /* @__PURE__ */ new Map()
576
575
  };
577
- let n = ht++, r = /* @__PURE__ */ new Map();
576
+ let n = yt++, r = /* @__PURE__ */ new Map();
578
577
  for (let t of e) {
579
578
  let e = W(t.fontName);
580
579
  r.has(e) || r.set(e, `__ooxml_pptx_${n}_${r.size + 1}`);
@@ -594,7 +593,7 @@ async function gt(e, t) {
594
593
  return null;
595
594
  }
596
595
  }))).filter((e) => e !== null);
597
- if (o.length !== 0) for (let e of await Ee(o)) a.has(e) ? j([e]) : (a.add(e), i.push(e));
596
+ if (o.length !== 0) for (let e of await Oe(o)) a.has(e) ? j([e]) : (a.add(e), i.push(e));
598
597
  }
599
598
  let o = new Set(i.map((e) => W(e.family))), s = new Map([...r].filter(([, e]) => o.has(W(e))));
600
599
  return {
@@ -603,16 +602,16 @@ async function gt(e, t) {
603
602
  authoredFamilies: new Map([...s].map(([e, t]) => [t, e]))
604
603
  };
605
604
  }
606
- function _t(e, t) {
605
+ function xt(e, t) {
607
606
  return e.filter((e) => e === null || !t.has(e.trim().toLowerCase()));
608
607
  }
609
608
  //#endregion
610
609
  //#region packages/pptx/src/worker.ts?worker&inline
611
- var vt = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=67108864,i=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,o=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,s={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:o,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:o,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:i,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:i,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:a,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:a,loadFamily:`Noto Sans Arabic`}};function c(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ㄰-㆏가-힯]/.test(e)?`kr`:/[぀-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const l=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,ee={\"noto sans kr\":{url:l(`Noto+Sans+KR`)},\"noto sans sc\":{url:l(`Noto+Sans+SC`)},\"noto sans tc\":{url:l(`Noto+Sans+TC`)},\"noto sans jp\":{url:l(`Noto+Sans+JP`)},\"noto serif kr\":{url:l(`Noto+Serif+KR`)},\"noto serif sc\":{url:l(`Noto+Serif+SC`)},\"noto serif tc\":{url:l(`Noto+Serif+TC`)},\"noto serif jp\":{url:l(`Noto+Serif+JP`)},\"noto sans\":{url:l(`Noto+Sans`)},\"noto serif\":{url:l(`Noto+Serif`)},\"noto sans devanagari\":{url:l(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:l(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:l(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:l(`Noto+Serif+Hebrew`)}};var u=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}},d,f,te=e((()=>{d=1<<25,d*4,f=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ne(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var re=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},ie=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ae(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function oe(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function se(e,t){return e({module_or_path:t})}var ce=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new re(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),le),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new ie(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):se(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,oe(e)}};function le(e){return ae(e)?new ie(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function ue(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function de(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return ue(t.requiredBytes)&&ue(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var p=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function fe(e){if(e instanceof p)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!de(r)))return new p(r)}function pe(e,t,n){let r=fe(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}te();const me=`OOXML_RESOURCE_LIMIT:`;function m(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function he(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return m(t.archiveEntryCount)&&m(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||m(t.largestInflatedEntryBytes))&&m(t.distinctInflatedBytes)&&m(t.operationInflatedBytes)}function ge(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!he(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function _e(e){return e===`docx`||e===`xlsx`||e===`pptx`}function ve(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function h(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function g(e){return h(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ye(e){return!h(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const _=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),be=new Set([..._.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),xe=new Set([..._.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function Se(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!_e(t.format)||!h(t.operation,256)||!g(t.resource)||!g(t.metric)||!m(t.limit)||!m(t.observed)||typeof t.configurable!=`boolean`||!he(t.usage)?!1:!(`part`in t)||ye(t.part)}function v(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!ve(t.stage)||!Se(t.violation))return!1;let n=t.violation,r=_.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(be.has(n.resource)&&xe.has(n.metric))}function Ce(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function we(e){if(!v(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:Ce(t.usage)}};return v(n)?n:void 0}function Te(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Ee(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(me))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!v(i.details)))return new n(Te(i.details),i.details)}function De(e){if(e instanceof f)return{message:e.message,errorName:e.name,code:e.code,decodedImage:{metric:e.metric,limit:e.limit,observed:e.observed}};let r=fe(e);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=e instanceof t||e instanceof n?e:Ee(e);if(i instanceof n){let e=we(i.details);return e?{message:typeof i.message==`string`?i.message:Te(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof t)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:h(i.name,128)?i.name:`OoxmlError`,...g(i.code)?{code:i.code}:{}};let a=e instanceof Error?e.message:String(e);if(typeof a==`string`&&a.startsWith(me))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=e instanceof Error?e:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:h(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return De(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const Oe=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function ke(e){if(e.code===`ooxml-decoded-image-limit`&&e.decodedImage&&(e.decodedImage.metric===`image-pixels`||e.decodedImage.metric===`active-decoded-bytes`)&&m(e.decodedImage.limit)&&m(e.decodedImage.observed)&&e.decodedImage.observed>e.decodedImage.limit)return new f(e.decodedImage.metric,e.decodedImage.limit,e.decodedImage.observed);if(e.code===`ooxml-insufficient-credit`&&de(e.insufficientCredit))return new p(e.insufficientCredit);if(e.code===`ooxml-resource-limit`&&v(e.resourceLimit))return new n(e.message,e.resourceLimit);if(e.code&&Oe.has(e.code))return new t(e.code,e.message);let r=e.errorName===`TypeError`?TypeError(e.message):e.errorName===`RangeError`?RangeError(e.message):Error(e.message);return e.errorName&&(r.name=e.errorName),e.code!==void 0&&Object.assign(r,{code:e.code}),r}function Ae(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function je(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const b=`ooxml-pull-v1`;function x(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function Me(e){if(!(typeof e==`string`&&e.length>0||typeof e==`number`&&Number.isSafeInteger(e)&&e>0))throw RangeError(`session id must be a non-empty string or positive safe integer`)}var S=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,x(this.maxRetainedBytes,`max retained lease bytes`),x(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},Ne=class{options;coordinator;coordinatorOwner=Symbol(`pull-session-host`);unregisterCleanup;sequence=0;unacked;leases=new Map;activeDriverLeases=new Set;nextWireLeaseId;cancelRequested=!1;cancelComplete=!1;closeRequested=!1;closeComplete=!1;driverCancelComplete=!1;driverCloseComplete=!1;completed=!1;constructor(e){Me(e.sessionId),x(e.operationId,`operation id`),x(e.generation,`generation`),x(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&x(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=y(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(x(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:b,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){x(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(x(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:b,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:b,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function C(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function w(e,t,n){return C(e,`resource measurement`),C(t,`resource measurement`),C(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Pe(e,t=2**53-1){C(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=w(n,a,t),n>t)return n}return n}function T(e,t=2**53-1){C(t,`resource measurement limit`);let n=w(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=w(n,a,t),n>t)return n}return n}function E(e,t){return w(0,e,t)}function D(e,t=2**53-1,n=!1){if(C(t,`resource measurement limit`),e===null)return{jsonBytes:E(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:T(e,t),stringValueUtf8Bytes:Pe(e,t)};if(typeof e==`boolean`)return{jsonBytes:E(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:E((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=E(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=w(n,1,t));let a=D(e[i],t,!0);n=w(n,a.jsonBytes,t),r=w(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=E(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=w(n,1,t)),n=w(n,T(a,t),t),n=w(n,1,t);let e=D(o,t);n=w(n,e.jsonBytes,t),r=w(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?E(4,t):0,stringValueUtf8Bytes:0}}({...s,...ee});function*Fe(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*Ie(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*Le(e){for(let t of e.elements)if(t.type===`shape`)yield*Fe(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*Fe(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Re=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=c(e)??c(t)??null;this.scripts=n??new u(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Le(e));for(let t of e.elements)if(t.type===`shape`)for(let e of Ie(t.textBody))this.families.add(e);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)for(let e of Ie(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const O=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),k=67108864;function A(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function ze(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Be(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap embedded font at ${t}`);let n=e;if(typeof n.fontName!=`string`||n.fontName.length===0||![`regular`,`bold`,`italic`,`boldItalic`].includes(n.style??``)||typeof n.partPath!=`string`||n.partPath.length===0||n.partPath.startsWith(`/`)||n.partPath.split(`/`).includes(`..`)||![`application/x-font-ttf`,`application/x-fontdata`].includes(n.contentType??``))throw Error(`invalid PPTX presentation bootstrap embedded font fields at ${t}`);return Object.freeze({fontName:n.fontName,style:n.style,partPath:n.partPath,contentType:n.contentType})}function Ve(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.embeddedFonts)||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return A(t.defaultTextColor,`defaultTextColor`),A(t.majorFont,`majorFont`),A(t.minorFont,`minorFont`),A(t.hlinkColor,`hlinkColor`),A(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,embeddedFonts:Object.freeze(t.embeddedFonts.map(Be)),slides:Object.freeze(t.slides.map(ze))})}function He(e){return Object.freeze({type:`media`,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,flipH:e.flipH,flipV:e.flipV,mediaKind:e.mediaKind,posterPath:e.posterPath,posterMimeType:e.posterMimeType,mediaPath:e.mediaPath,mimeType:e.mimeType})}function Ue(e){return Object.freeze({...e.id===void 0?{}:{id:e.id},...e.authorId===void 0?{}:{authorId:e.authorId},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.status===void 0?{}:{status:e.status},text:e.text})}function We(e){return Object.freeze({...e})}function Ge(e){return Object.freeze({...e.authorId===void 0?{}:{authorId:e.authorId},...e.modernAuthorId===void 0?{}:{modernAuthorId:e.modernAuthorId},...e.id===void 0?{}:{id:e.id},...e.index===void 0?{}:{index:e.index},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.x===void 0?{}:{x:e.x},...e.y===void 0?{}:{y:e.y},...e.anchors?.length?{anchors:Object.freeze(e.anchors.map(We))}:{},...e.status===void 0?{}:{status:e.status},text:e.text,...e.replies?.length?{replies:Object.freeze(e.replies.map(Ue))}:{}})}function Ke(e,t){if(e.index!==t.index||e.partName!==t.partName)throw Error(`PPTX pulled slide identity does not match bootstrap index ${t.index}`);return Object.freeze({index:t.index,...t.partName===void 0?{}:{partName:t.partName},notes:e.notes??null,hidden:e.hidden??!1,mediaElements:Object.freeze(e.elements.filter(e=>e.type===`media`).map(He)),...e.comments?.length?{comments:Object.freeze(e.comments.map(Ge))}:{}})}function j(e,t,r){if(!(e<=t))throw new n(`PPTX presentation preflight exceeded its hard limit of ${t} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:t,observed:Math.min(e,t+1),configurable:!1,usage:r}})}var qe=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;embeddedFontsValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Ve(e),r=t.hardLimitForTesting??k;if(!Number.isSafeInteger(r)||r<=0||r>k)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.embeddedFontsValue=n.embeddedFonts,this.descriptors=[...n.slides],this.fonts=new Re(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=D(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=D({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,j(this.projectionBytesValue,this.limit,O)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}get latestSlide(){return this.slides[this.slides.length-1]}get currentFontPreloadNames(){return this.fontPreloadNames}snapshot(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);return Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames})}addSlide(e,t=O){this.prepareSlide(e,t).commit()}prepareSlide(e,t=O){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=Ke(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=D(o,this.limit).jsonBytes,c=D(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-D(r,this.limit).jsonBytes+4;l=w(l,s,this.limit),l=w(l,c,this.limit),this.slides.length!==0&&(l=w(l,1,this.limit));let ee=D({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=w(this.projectionBytesValue,ee,this.limit);j(Math.max(u,l),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=d,{projectedBytes:u,commit:()=>{if(d.state!==`committed`){if(d.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(d.fact),this.fonts=d.fonts,this.fontPreloadNames=d.fontNames,this.fontProjectionBytes=d.fontBytes,this.projectionBytesValue=d.committedBytes,d.state=`committed`,this.pending=null}},rollback:()=>{if(d.state!==`rolled-back`){if(d.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);d.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=D(this.finished,this.limit).jsonBytes,this.finished}};function M(e){try{return ge(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Je(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,M(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var Ye=class{coordinatorGeneration=new S;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),Ze(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!N(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let i,a=new Promise(e=>{i=e}),o=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let a,o=!1,s=new Ne({...t,maxByteCredit:r,coordinator:this.coordinator,driver:{pull:n=>{let i;try{i=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw pe(e,n,r)||(this.latchResourceFailure(e),e)}let s=Ae(i);return this.acceptSlide&&(a=JSON.parse(new TextDecoder().decode(new Uint8Array(s)))),o=!0,{payload:s,byteLength:s.byteLength,done:!0,transfer:[s]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!o)throw Error(`slide unit is not awaiting acknowledgement`);try{Je(this.executeArchive,t,e,a,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}o=!1,a=void 0,this.sessions.delete(t.sessionId),i()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:s,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=o.then(()=>a,()=>void 0);try{await o}catch(e){throw this.pendingOpens.delete(t.sessionId),i(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=N(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:b,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=ke(e.error))}),r)throw r}this.sessions.clear(),await this.operationTail,this.pendingOpens.clear(),this.archive()&&await this.executeArchive(e=>e.close_presentation_session()),this.coordinatorGeneration=new S,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!N(t,e)?this.staleLifecycleResponse(e):{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:b,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&N(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return M(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:Ee(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function Xe(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ze(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function N(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var P=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,F.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_font(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_font(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=et(e,J.__wbindgen_malloc),a=q,o=J.pptxarchive_new(i,a,!V(t),V(t)?BigInt(0):t,!V(n),V(n)?BigInt(0):n,!V(r),V(r)?BigInt(0):r);if(o[2])throw U(o[1]);return this.__wbg_ptr=o[0]>>>0,F.register(this,this.__wbg_ptr,this),this}parse(){let e=J.pptxarchive_parse(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}presentation_bootstrap(){let e=J.pptxarchive_presentation_bootstrap(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}pull_slide(e,t,n,r){let i=J.pptxarchive_pull_slide(this.__wbg_ptr,e,t,n,r);if(i[3])throw U(i[2]);var a=I(i[0],i[1]).slice();return J.__wbindgen_free(i[0],i[1]*1,1),a}resource_usage(){let e=J.pptxarchive_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}slide_cursor_resource_usage(){let e=J.pptxarchive_slide_cursor_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}to_markdown(){let e,t;try{let i=J.pptxarchive_to_markdown(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,R(n,r)}finally{J.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);function Qe(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;$e().setInt32(e+4,i,!0),$e().setInt32(e+0,r,!0)},__wbindgen_cast_0000000000000001:function(e,t){return R(e,t)},__wbindgen_init_externref_table:function(){let e=J.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}const F=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function I(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let L=null;function $e(){return(L===null||L.buffer.detached===!0||L.buffer.detached===void 0&&L.buffer!==J.memory.buffer)&&(L=new DataView(J.memory.buffer)),L}function R(e,t){return e>>>=0,tt(e,t)}let z=null;function B(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(J.memory.buffer)),z}function V(e){return e==null}function et(e,t){let n=t(e.length*1,1)>>>0;return B().set(e,n/1),q=e.length,n}function H(e,t,n){if(n===void 0){let n=K.encode(e),r=t(n.length,1)>>>0;return B().subarray(r,r+n.length).set(n),q=n.length,r}let r=e.length,i=t(r,1)>>>0,a=B(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=B().subarray(i+o,i+r),a=K.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return q=o,i}function U(e){let t=J.__wbindgen_externrefs.get(e);return J.__externref_table_dealloc(e),t}let W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});W.decode();let G=0;function tt(e,t){return G+=t,G>=2146435072&&(W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),W.decode(),G=t),W.decode(B().subarray(e,e+t))}const K=new TextEncoder;`encodeInto`in K||(K.encodeInto=function(e,t){let n=K.encode(e);return t.set(n),{read:e.length,written:n.length}});let q=0,J;function nt(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function rt(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function it(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=Qe();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await rt(await e,t);return nt(n,r)}async function at(e){return J=void 0,L=null,z=null,it(e)}const Y=new ce(it,{freeArchive:e=>e.free(),reinit:at});let X=null,Z=`empty`;function ot(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new Ye(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(Xe(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(ne(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(ot(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...y(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=je(t.resourcePolicy),a=Y.run(()=>{let n=new P(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=t.progressiveLayout?null:new qe(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractFont`){let r=Y.run(()=>e.extract_font(t.path).buffer);$({kind:`fontExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:ge(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...y(e)})}catch{}}};", yt = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", vt], { type: "text/javascript;charset=utf-8" });
612
- function bt(e) {
610
+ var St = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=67108864,i=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,o=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,s={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:o,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:o,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:i,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:i,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:a,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:a,loadFamily:`Noto Sans Arabic`}};function c(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ㄰-㆏가-힯]/.test(e)?`kr`:/[぀-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const l=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,u={\"noto sans kr\":{url:l(`Noto+Sans+KR`)},\"noto sans sc\":{url:l(`Noto+Sans+SC`)},\"noto sans tc\":{url:l(`Noto+Sans+TC`)},\"noto sans jp\":{url:l(`Noto+Sans+JP`)},\"noto serif kr\":{url:l(`Noto+Serif+KR`)},\"noto serif sc\":{url:l(`Noto+Serif+SC`)},\"noto serif tc\":{url:l(`Noto+Serif+TC`)},\"noto serif jp\":{url:l(`Noto+Serif+JP`)},\"noto sans\":{url:l(`Noto+Sans`)},\"noto serif\":{url:l(`Noto+Serif`)},\"noto sans devanagari\":{url:l(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:l(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:l(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:l(`Noto+Serif+Hebrew`)}};var d=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}};function f(e){return e===`image-dimension`||e===`image-pixels`||e===`active-decoded-bytes`}function p(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function ee(e){if(!(!e||typeof e!=`object`))try{let t=e,n=t.code,r=t.metric,i=t.limit,a=t.observed;return n!==`ooxml-decoded-image-limit`||!f(r)||!p(i)||!p(a)||a<=i?void 0:{metric:r,limit:i,observed:a}}catch{return}}var te,ne,m,re=e((()=>{te=1<<25,ne=1<<27,te*4,ne*4,m=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ie(e){if(!(typeof e!=`object`||!e))try{let t=e,n=t.code,r=t.message;return n===`ooxml-tiff-decode`&&typeof r==`string`?{message:r}:void 0}catch{return}}var ae,oe=e((()=>{ae=class e extends Error{code=`ooxml-tiff-decode`;constructor(t,n){super(t,n),this.name=`TiffDecodeError`,Object.setPrototypeOf(this,e.prototype)}}}));function se(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var ce=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},le=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ue(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function de(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function fe(e,t){return e({module_or_path:t})}var pe=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new ce(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),me),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new le(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):fe(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,de(e)}};function me(e){return ue(e)?new le(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function h(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function he(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return h(t.requiredBytes)&&h(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var g=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function ge(e){if(e instanceof g)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!he(r)))return new g(r)}function _e(e,t,n){let r=ge(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}re(),oe();const _=`OOXML_RESOURCE_LIMIT:`;function v(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function ve(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return v(t.archiveEntryCount)&&v(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||v(t.largestInflatedEntryBytes))&&v(t.distinctInflatedBytes)&&v(t.operationInflatedBytes)}function ye(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!ve(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function be(e){return e===`docx`||e===`xlsx`||e===`pptx`}function xe(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function y(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function b(e){return y(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function Se(e){return!y(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const x=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),Ce=new Set([...x.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),we=new Set([...x.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function Te(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!be(t.format)||!y(t.operation,256)||!b(t.resource)||!b(t.metric)||!v(t.limit)||!v(t.observed)||typeof t.configurable!=`boolean`||!ve(t.usage)?!1:!(`part`in t)||Se(t.part)}function S(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!xe(t.stage)||!Te(t.violation))return!1;let n=t.violation,r=x.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(Ce.has(n.resource)&&we.has(n.metric))}function Ee(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function De(e){if(!S(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:Ee(t.usage)}};return S(n)?n:void 0}function Oe(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function C(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(_))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!S(i.details)))return new n(Oe(i.details),i.details)}function ke(e){let r=ee(e);if(r){let e=new m(r.metric,r.limit,r.observed);return{message:e.message,errorName:e.name,code:e.code,decodedImage:r}}let i=ie(e);if(i)return{message:i.message,errorName:`TiffDecodeError`,code:`ooxml-tiff-decode`};let a=ge(e);if(a)return{message:a.message,errorName:a.name,code:a.code,insufficientCredit:{requiredBytes:a.requiredBytes,offeredBytes:a.offeredBytes}};let o=e instanceof t||e instanceof n?e:C(e);if(o instanceof n){let e=De(o.details);return e?{message:typeof o.message==`string`?o.message:Oe(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(o instanceof t)return{message:typeof o.message==`string`?o.message:String(o.message),errorName:y(o.name,128)?o.name:`OoxmlError`,...b(o.code)?{code:o.code}:{}};let s=e instanceof Error?e.message:String(e);if(typeof s==`string`&&s.startsWith(_))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let c=e instanceof Error?e:Error(s),l=c;return{message:typeof c.message==`string`?c.message:String(c.message),errorName:y(c.name,128)?c.name:`Error`,...typeof l.code==`string`?{code:l.code}:{}}}function w(e){try{return ke(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const Ae=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]),je={\"image-dimension\":!0,\"image-pixels\":!0,\"active-decoded-bytes\":!0};function Me(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(je,e)}function Ne(e,t){if(e!==`ooxml-decoded-image-limit`||!t||typeof t!=`object`)return;let n=t,r=n.metric,i=n.limit,a=n.observed;if(!(!Me(r)||!v(i)||!v(a)||a<=i))return{metric:r,limit:i,observed:a}}function Pe(e){let r=e.message,i=e.errorName,a=e.code,o=e.decodedImage,s=e.insufficientCredit,c=e.resourceLimit,l=typeof r==`string`?r:`Worker operation failed with an invalid error payload`,u=y(i,128)?i:void 0,d=typeof a==`string`?a:void 0,f=Ne(d,o);if(f)return new m(f.metric,f.limit,f.observed);if(d===`ooxml-tiff-decode`)return new ae(l);if(d===`ooxml-insufficient-credit`&&he(s))return new g(s);if(d===`ooxml-resource-limit`&&S(c))return new n(l,c);if(d&&Ae.has(d))return new t(d,l);let p=u===`TypeError`?TypeError(l):u===`RangeError`?RangeError(l):Error(l);return u&&(p.name=u),d!==void 0&&Object.assign(p,{code:d}),p}function Fe(e){try{return Pe(e)}catch{return Error(`Worker operation failed with an unreadable error payload`)}}function Ie(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function Le(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const T=`ooxml-pull-v1`;function E(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function Re(e){if(!(typeof e==`string`&&e.length>0||typeof e==`number`&&Number.isSafeInteger(e)&&e>0))throw RangeError(`session id must be a non-empty string or positive safe integer`)}var ze=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,E(this.maxRetainedBytes,`max retained lease bytes`),E(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},Be=class{options;coordinator;coordinatorOwner=Symbol(`pull-session-host`);unregisterCleanup;sequence=0;unacked;leases=new Map;activeDriverLeases=new Set;nextWireLeaseId;cancelRequested=!1;cancelComplete=!1;closeRequested=!1;closeComplete=!1;driverCancelComplete=!1;driverCloseComplete=!1;completed=!1;constructor(e){Re(e.sessionId),E(e.operationId,`operation id`),E(e.generation,`generation`),E(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&E(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=w(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(E(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:T,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){E(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(E(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:T,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:T,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function D(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function O(e,t,n){return D(e,`resource measurement`),D(t,`resource measurement`),D(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Ve(e,t=2**53-1){D(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=O(n,a,t),n>t)return n}return n}function He(e,t=2**53-1){D(t,`resource measurement limit`);let n=O(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=O(n,a,t),n>t)return n}return n}function k(e,t){return O(0,e,t)}function A(e,t=2**53-1,n=!1){if(D(t,`resource measurement limit`),e===null)return{jsonBytes:k(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:He(e,t),stringValueUtf8Bytes:Ve(e,t)};if(typeof e==`boolean`)return{jsonBytes:k(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:k((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=k(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=O(n,1,t));let a=A(e[i],t,!0);n=O(n,a.jsonBytes,t),r=O(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=k(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=O(n,1,t)),n=O(n,He(a,t),t),n=O(n,1,t);let e=A(o,t);n=O(n,e.jsonBytes,t),r=O(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?k(4,t):0,stringValueUtf8Bytes:0}}({...s,...u});function*Ue(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*j(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*We(e){for(let t of e.elements)if(t.type===`shape`)yield*Ue(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*Ue(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Ge=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=c(e)??c(t)??null;this.scripts=n??new d(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(We(e));for(let t of e.elements)if(t.type===`shape`)for(let e of j(t.textBody))this.families.add(e);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)for(let e of j(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const M=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),Ke=67108864;function N(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function qe(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Je(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap embedded font at ${t}`);let n=e;if(typeof n.fontName!=`string`||n.fontName.length===0||![`regular`,`bold`,`italic`,`boldItalic`].includes(n.style??``)||typeof n.partPath!=`string`||n.partPath.length===0||n.partPath.startsWith(`/`)||n.partPath.split(`/`).includes(`..`)||![`application/x-font-ttf`,`application/x-fontdata`].includes(n.contentType??``))throw Error(`invalid PPTX presentation bootstrap embedded font fields at ${t}`);return Object.freeze({fontName:n.fontName,style:n.style,partPath:n.partPath,contentType:n.contentType})}function Ye(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.embeddedFonts)||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return N(t.defaultTextColor,`defaultTextColor`),N(t.majorFont,`majorFont`),N(t.minorFont,`minorFont`),N(t.hlinkColor,`hlinkColor`),N(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,embeddedFonts:Object.freeze(t.embeddedFonts.map(Je)),slides:Object.freeze(t.slides.map(qe))})}function Xe(e){return Object.freeze({type:`media`,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,flipH:e.flipH,flipV:e.flipV,mediaKind:e.mediaKind,posterPath:e.posterPath,posterMimeType:e.posterMimeType,mediaPath:e.mediaPath,mimeType:e.mimeType})}function Ze(e){return Object.freeze({...e.id===void 0?{}:{id:e.id},...e.authorId===void 0?{}:{authorId:e.authorId},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.status===void 0?{}:{status:e.status},text:e.text})}function Qe(e){return Object.freeze({...e})}function $e(e){return Object.freeze({...e.authorId===void 0?{}:{authorId:e.authorId},...e.modernAuthorId===void 0?{}:{modernAuthorId:e.modernAuthorId},...e.id===void 0?{}:{id:e.id},...e.index===void 0?{}:{index:e.index},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.x===void 0?{}:{x:e.x},...e.y===void 0?{}:{y:e.y},...e.anchors?.length?{anchors:Object.freeze(e.anchors.map(Qe))}:{},...e.status===void 0?{}:{status:e.status},text:e.text,...e.replies?.length?{replies:Object.freeze(e.replies.map(Ze))}:{}})}function et(e,t){if(e.index!==t.index||e.partName!==t.partName)throw Error(`PPTX pulled slide identity does not match bootstrap index ${t.index}`);return Object.freeze({index:t.index,...t.partName===void 0?{}:{partName:t.partName},notes:e.notes??null,hidden:e.hidden??!1,mediaElements:Object.freeze(e.elements.filter(e=>e.type===`media`).map(Xe)),...e.comments?.length?{comments:Object.freeze(e.comments.map($e))}:{}})}function tt(e,t,r){if(!(e<=t))throw new n(`PPTX presentation preflight exceeded its hard limit of ${t} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:t,observed:Math.min(e,t+1),configurable:!1,usage:r}})}var nt=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;embeddedFontsValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Ye(e),r=t.hardLimitForTesting??Ke;if(!Number.isSafeInteger(r)||r<=0||r>Ke)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.embeddedFontsValue=n.embeddedFonts,this.descriptors=[...n.slides],this.fonts=new Ge(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=A(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=A({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,tt(this.projectionBytesValue,this.limit,M)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}get latestSlide(){return this.slides[this.slides.length-1]}get currentFontPreloadNames(){return this.fontPreloadNames}snapshot(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);return Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames})}addSlide(e,t=M){this.prepareSlide(e,t).commit()}prepareSlide(e,t=M){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=et(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=A(o,this.limit).jsonBytes,c=A(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-A(r,this.limit).jsonBytes+4;l=O(l,s,this.limit),l=O(l,c,this.limit),this.slides.length!==0&&(l=O(l,1,this.limit));let u=A({slide:i,fontPreloadNames:o},this.limit).jsonBytes,d=O(this.projectionBytesValue,u,this.limit);tt(Math.max(d,l),this.limit,t);let f={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=f,{projectedBytes:d,commit:()=>{if(f.state!==`committed`){if(f.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(f.fact),this.fonts=f.fonts,this.fontPreloadNames=f.fontNames,this.fontProjectionBytes=f.fontBytes,this.projectionBytesValue=f.committedBytes,f.state=`committed`,this.pending=null}},rollback:()=>{if(f.state!==`rolled-back`){if(f.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);f.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=A(this.finished,this.limit).jsonBytes,this.finished}};function rt(e){try{return ye(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function it(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,rt(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var at=class{coordinatorGeneration=new ze;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),st(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let i,a=new Promise(e=>{i=e}),o=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let a,o=!1,s=new Be({...t,maxByteCredit:r,coordinator:this.coordinator,driver:{pull:n=>{let i;try{i=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw _e(e,n,r)||(this.latchResourceFailure(e),e)}let s=Ie(i);return this.acceptSlide&&(a=JSON.parse(new TextDecoder().decode(new Uint8Array(s)))),o=!0,{payload:s,byteLength:s.byteLength,done:!0,transfer:[s]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!o)throw Error(`slide unit is not awaiting acknowledgement`);try{it(this.executeArchive,t,e,a,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}o=!1,a=void 0,this.sessions.delete(t.sessionId),i()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:s,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=o.then(()=>a,()=>void 0);try{await o}catch(e){throw this.pendingOpens.delete(t.sessionId),i(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:T,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=Fe(e.error))}),r)throw r}this.sessions.clear(),await this.operationTail,this.pendingOpens.clear(),this.archive()&&await this.executeArchive(e=>e.close_presentation_session()),this.coordinatorGeneration=new ze,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!P(t,e)?this.staleLifecycleResponse(e):{protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:T,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return rt(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:C(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function ot(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function st(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function P(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var F=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,lt.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_font(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_font(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=dt(e,J.__wbindgen_malloc),a=q,o=J.pptxarchive_new(i,a,!V(t),V(t)?BigInt(0):t,!V(n),V(n)?BigInt(0):n,!V(r),V(r)?BigInt(0):r);if(o[2])throw U(o[1]);return this.__wbg_ptr=o[0]>>>0,lt.register(this,this.__wbg_ptr,this),this}parse(){let e=J.pptxarchive_parse(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}presentation_bootstrap(){let e=J.pptxarchive_presentation_bootstrap(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}pull_slide(e,t,n,r){let i=J.pptxarchive_pull_slide(this.__wbg_ptr,e,t,n,r);if(i[3])throw U(i[2]);var a=I(i[0],i[1]).slice();return J.__wbindgen_free(i[0],i[1]*1,1),a}resource_usage(){let e=J.pptxarchive_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}slide_cursor_resource_usage(){let e=J.pptxarchive_slide_cursor_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}to_markdown(){let e,t;try{let i=J.pptxarchive_to_markdown(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,R(n,r)}finally{J.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);function ct(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;ut().setInt32(e+4,i,!0),ut().setInt32(e+0,r,!0)},__wbindgen_cast_0000000000000001:function(e,t){return R(e,t)},__wbindgen_init_externref_table:function(){let e=J.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}const lt=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function I(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let L=null;function ut(){return(L===null||L.buffer.detached===!0||L.buffer.detached===void 0&&L.buffer!==J.memory.buffer)&&(L=new DataView(J.memory.buffer)),L}function R(e,t){return e>>>=0,ft(e,t)}let z=null;function B(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(J.memory.buffer)),z}function V(e){return e==null}function dt(e,t){let n=t(e.length*1,1)>>>0;return B().set(e,n/1),q=e.length,n}function H(e,t,n){if(n===void 0){let n=K.encode(e),r=t(n.length,1)>>>0;return B().subarray(r,r+n.length).set(n),q=n.length,r}let r=e.length,i=t(r,1)>>>0,a=B(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=B().subarray(i+o,i+r),a=K.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return q=o,i}function U(e){let t=J.__wbindgen_externrefs.get(e);return J.__externref_table_dealloc(e),t}let W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});W.decode();let G=0;function ft(e,t){return G+=t,G>=2146435072&&(W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),W.decode(),G=t),W.decode(B().subarray(e,e+t))}const K=new TextEncoder;`encodeInto`in K||(K.encodeInto=function(e,t){let n=K.encode(e);return t.set(n),{read:e.length,written:n.length}});let q=0,J;function pt(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function mt(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function ht(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=ct();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await mt(await e,t);return pt(n,r)}async function gt(e){return J=void 0,L=null,z=null,ht(e)}const Y=new pe(ht,{freeArchive:e=>e.free(),reinit:gt});let X=null,Z=`empty`;function _t(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new at(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(ot(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(se(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(_t(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...w(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=Le(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=t.progressiveLayout?null:new nt(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractFont`){let r=Y.run(()=>e.extract_font(t.path).buffer);$({kind:`fontExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:ye(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...w(e)})}catch{}}};", Ct = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", St], { type: "text/javascript;charset=utf-8" });
611
+ function wt(e) {
613
612
  let t;
614
613
  try {
615
- if (t = yt && (self.URL || self.webkitURL).createObjectURL(yt), !t) throw "";
614
+ if (t = Ct && (self.URL || self.webkitURL).createObjectURL(Ct), !t) throw "";
616
615
  let n = new Worker(t, {
617
616
  type: "module",
618
617
  name: e?.name
@@ -621,7 +620,7 @@ function bt(e) {
621
620
  (self.URL || self.webkitURL).revokeObjectURL(t);
622
621
  }), n;
623
622
  } catch {
624
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(vt), {
623
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(St), {
625
624
  type: "module",
626
625
  name: e?.name
627
626
  });
@@ -629,24 +628,24 @@ function bt(e) {
629
628
  }
630
629
  //#endregion
631
630
  //#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
632
- var xt = new URL("pptx_parser_bg.wasm", import.meta.url).href, G = 65536, St = 16384, Ct = new Set(["line", "straightconnector1"]);
633
- function wt(e, t) {
631
+ var Tt = new URL("pptx_parser_bg.wasm", import.meta.url).href, G = 65536, Et = 16384, Dt = new Set(["line", "straightconnector1"]);
632
+ function Ot(e, t) {
634
633
  let n = e.x + e.width / 2, r = e.y + e.height / 2, i = -e.rotation * Math.PI / 180, a = Math.cos(i), o = Math.sin(i), s = t.x - n, c = t.y - r, l = n + a * s - o * c, u = r + o * s + a * c;
635
634
  return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
636
635
  x: l,
637
636
  y: u
638
637
  };
639
638
  }
640
- function Tt(e, t, n) {
639
+ function kt(e, t, n) {
641
640
  let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
642
641
  if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
643
642
  let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
644
643
  return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
645
644
  }
646
- function Et(e, t, n = 0) {
645
+ function At(e, t, n = 0) {
647
646
  if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
648
- let r = wt(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
649
- if (e.type === "shape" && (Ct.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return Tt(r, {
647
+ let r = Ot(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
648
+ if (e.type === "shape" && (Dt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return kt(r, {
650
649
  x: e.x,
651
650
  y: e.y
652
651
  }, {
@@ -656,7 +655,7 @@ function Et(e, t, n = 0) {
656
655
  let a = Math.min(e.x, e.x + e.width), o = Math.max(e.x, e.x + e.width), s = Math.min(e.y, e.y + e.height), c = Math.max(e.y, e.y + e.height);
657
656
  return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
658
657
  }
659
- function* Dt(e) {
658
+ function* jt(e) {
660
659
  if (e) for (let t of e.paragraphs) {
661
660
  let e = !0;
662
661
  for (let n of t.runs) {
@@ -668,17 +667,17 @@ function* Dt(e) {
668
667
  }
669
668
  }
670
669
  }
671
- function* Ot(e) {
670
+ function* Mt(e) {
672
671
  if (e.type === "shape") {
673
- yield* Dt(e.textBody);
672
+ yield* jt(e.textBody);
674
673
  return;
675
674
  }
676
675
  if (e.type === "table") {
677
- for (let t of e.rows) for (let e of t.cells) yield* Dt(e.textBody);
676
+ for (let t of e.rows) for (let e of t.cells) yield* jt(e.textBody);
678
677
  return;
679
678
  }
680
679
  }
681
- function kt(e, t) {
680
+ function Nt(e, t) {
682
681
  let n = Math.min(e.length, t);
683
682
  if (n > 0 && n < e.length) {
684
683
  let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
@@ -686,9 +685,9 @@ function kt(e, t) {
686
685
  }
687
686
  return e.slice(0, n);
688
687
  }
689
- function At(e, t = St) {
688
+ function Pt(e, t = Et) {
690
689
  if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
691
- let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : kt(r, n), a = r !== void 0 && i.length < r.length;
690
+ let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : Nt(r, n), a = r !== void 0 && i.length < r.length;
692
691
  return {
693
692
  ...structuredClone(e),
694
693
  ...i === void 0 ? {} : { text: i },
@@ -698,7 +697,7 @@ function At(e, t = St) {
698
697
  maxTextCharacters: n
699
698
  };
700
699
  }
701
- function jt(e, t) {
700
+ function Ft(e, t) {
702
701
  let n = [], r = 0, i = !1, a = !1;
703
702
  for (let o of e) {
704
703
  if (a = !0, o.beginsPart && n.length > 0) {
@@ -708,7 +707,7 @@ function jt(e, t) {
708
707
  }
709
708
  n.push("\n"), r++;
710
709
  }
711
- let e = Math.max(0, t - r), s = kt(o.text, e);
710
+ let e = Math.max(0, t - r), s = Nt(o.text, e);
712
711
  if (n.push(s), r += s.length, s.length < o.text.length) {
713
712
  i = !0;
714
713
  break;
@@ -723,16 +722,16 @@ function jt(e, t) {
723
722
  textCharacters: 0
724
723
  };
725
724
  }
726
- function Mt(e, t, n, r = {}) {
725
+ function It(e, t, n, r = {}) {
727
726
  if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
728
- let i = r.maxTextCharacters ?? St;
727
+ let i = r.maxTextCharacters ?? Et;
729
728
  if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
730
729
  let a = Math.min(G, Math.floor(i)), o = r.tolerance ?? 0;
731
730
  if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
732
731
  for (let r = t.elements.length - 1; r >= 0; r--) {
733
732
  let i = t.elements[r];
734
- if (!Et(i, n, o)) continue;
735
- let s = i.type === "chart" ? ce(i.chart, a) : jt(Ot(i), a);
733
+ if (!At(i, n, o)) continue;
734
+ let s = i.type === "chart" ? ue(i.chart, a) : Ft(Mt(i), a);
736
735
  return {
737
736
  format: "pptx",
738
737
  kind: "element",
@@ -774,7 +773,7 @@ function Mt(e, t, n, r = {}) {
774
773
  }
775
774
  return null;
776
775
  }
777
- function Nt(e, t) {
776
+ function Lt(e, t) {
778
777
  let n = new Set(t.filter((e) => e.length > 0));
779
778
  if (n.size === 0) return Object.freeze([]);
780
779
  let r = /* @__PURE__ */ new Map();
@@ -816,7 +815,7 @@ function q(e, t) {
816
815
  } catch {}
817
816
  }
818
817
  }
819
- function Pt(e, t, n, r) {
818
+ function Rt(e, t, n, r) {
820
819
  let i = K.get(e);
821
820
  i || (i = /* @__PURE__ */ new Set(), K.set(e, i));
822
821
  let a = Object.freeze({
@@ -837,7 +836,7 @@ function Pt(e, t, n, r) {
837
836
  }
838
837
  //#endregion
839
838
  //#region packages/pptx/src/worker-task-scheduler.ts
840
- function Ft() {
839
+ function zt() {
841
840
  return new Promise((e) => {
842
841
  let t = new MessageChannel();
843
842
  t.port1.onmessage = () => {
@@ -847,7 +846,7 @@ function Ft() {
847
846
  }
848
847
  //#endregion
849
848
  //#region packages/pptx/src/presentation.ts
850
- function It() {
849
+ function Bt() {
851
850
  let e, t;
852
851
  return {
853
852
  promise: new Promise((n, r) => {
@@ -865,8 +864,8 @@ var J = class e {
865
864
  _bootstrap = null;
866
865
  _preflight = null;
867
866
  _availableSlideCount = 0;
868
- _layoutLifecycle = new De();
869
- _layoutObservers = new ke();
867
+ _layoutLifecycle = new ke();
868
+ _layoutObservers = new je();
870
869
  _layoutCompletion = null;
871
870
  _parseRequestId = null;
872
871
  _progressive = null;
@@ -877,9 +876,9 @@ var J = class e {
877
876
  _slidePullClient = null;
878
877
  _resourceFailure = null;
879
878
  _slidePartIndex = null;
880
- _rawParts = new Te({
879
+ _rawParts = new De({
881
880
  maxEntries: 64,
882
- maxBytes: v
881
+ maxBytes: _
883
882
  });
884
883
  _googleFontFaces = [];
885
884
  _embeddedFontFaces = [];
@@ -894,12 +893,12 @@ var J = class e {
894
893
  _chartEx;
895
894
  _tiff;
896
895
  constructor(e, t, n) {
897
- this._worker = e, this._mode = t, this._bridge = new ne(this._worker, {
896
+ this._worker = e, this._mode = t, this._bridge = new Se(this._worker, {
898
897
  correlate: (e) => "protocol" in e && e.protocol === "ooxml-pull-v1" ? e.requestId : "id" in e ? e.id : void 0,
899
- toError: (e) => !("protocol" in e) && e.kind === "error" ? y(e) : void 0,
898
+ toError: (e) => !("protocol" in e) && e.kind === "error" ? g(e) : void 0,
900
899
  onUnsolicited: (e) => this._onWorkerLayoutPush(e)
901
900
  });
902
- let r = new URL(n ?? xt, location.href).href;
901
+ let r = new URL(n ?? Tt, location.href).href;
903
902
  this._bridge.post({
904
903
  kind: "init",
905
904
  wasmUrl: r
@@ -909,11 +908,11 @@ var J = class e {
909
908
  if (this._resourceFailure) throw this._resourceFailure;
910
909
  }
911
910
  _rethrowWithResourceFailure(e) {
912
- let t = e instanceof h ? e : m(e);
911
+ let t = e instanceof C ? e : m(e);
913
912
  throw t ? (this._resourceFailure ??= t, this._resourceFailure) : e;
914
913
  }
915
914
  static async load(t, r = {}) {
916
- let i = p(r), a = r.mode ?? "main", o = new g({
915
+ let i = p(r), a = r.mode ?? "main", o = new h({
917
916
  enabled: !0,
918
917
  format: "pptx",
919
918
  mode: a,
@@ -929,23 +928,23 @@ var J = class e {
929
928
  if (!e.ok) throw Error(`Failed to fetch: ${e.status} ${e.statusText}`);
930
929
  s = await e.arrayBuffer();
931
930
  } else s = t;
932
- s = re(await ae(s, r.password)), o.setSourceBytes(s.byteLength), o.checkpoint("container ready");
933
- let c = a === "worker" ? (await import("./render-worker-host-CbaQivE7.js")).createRenderWorker() : new bt(), l = a === "worker" ? Pe(r) : void 0, u;
931
+ s = ie(await ae(s, r.password)), o.setSourceBytes(s.byteLength), o.checkpoint("container ready");
932
+ let c = a === "worker" ? (await import("./render-worker-host-XDMsyVsv.js")).createRenderWorker() : new wt(), l = a === "worker" ? Re(r) : void 0, u;
934
933
  try {
935
- u = new e(c, a, r.wasmUrl), u._metrics = o, r.math && a === "worker" && !l?.math && console.warn("[ooxml] a custom math renderer cannot cross the worker boundary; equations will be skipped in mode: 'worker'. Use the math renderer from @silurus/ooxml/math."), r.threeD && a === "worker" && !l?.threeD && console.warn("[ooxml] a custom 3-D chart renderer cannot cross the worker boundary; charts use their 2-D family fallback in mode: 'worker'. Use the renderer from @silurus/ooxml/three-d."), u._math = a === "worker" ? void 0 : r.math, u._threeD = a === "worker" ? void 0 : r.threeD, r.regionMap && a === "worker" && !l?.regionMap && console.warn("[ooxml] a custom Region Map renderer cannot cross the worker boundary; geospatial charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/region-map."), u._regionMap = a === "worker" ? void 0 : r.regionMap, r.chartEx && a === "worker" && !l?.chartEx && console.warn("[ooxml] a custom ChartEx renderer cannot cross the worker boundary; ChartEx charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/chart-ex."), u._chartEx = a === "worker" ? void 0 : r.chartEx, r.tiff && a === "worker" && !l?.tiff && console.warn("[ooxml] a custom TIFF codec cannot cross the worker boundary; TIFF images will be skipped in mode: 'worker'. Use the codec from @silurus/ooxml/tiff."), u._tiff = a === "worker" ? void 0 : r.tiff;
934
+ u = new e(c, a, r.wasmUrl), u._metrics = o, r.math && a === "worker" && !l?.math && console.warn("[ooxml] a custom math renderer cannot cross the worker boundary; equations will be skipped in mode: 'worker'. Use the math renderer from @silurus/ooxml/math."), r.threeD && a === "worker" && !l?.threeD && console.warn("[ooxml] a custom 3-D chart renderer cannot cross the worker boundary; charts use their 2-D family fallback in mode: 'worker'. Use the renderer from @silurus/ooxml/three-d."), u._math = a === "worker" ? void 0 : r.math, u._threeD = a === "worker" ? void 0 : r.threeD, r.regionMap && a === "worker" && !l?.regionMap && console.warn("[ooxml] a custom Region Map renderer cannot cross the worker boundary; geospatial charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/region-map."), u._regionMap = a === "worker" ? void 0 : r.regionMap, r.chartEx && a === "worker" && !l?.chartEx && console.warn("[ooxml] a custom ChartEx renderer cannot cross the worker boundary; ChartEx charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/chart-ex."), u._chartEx = a === "worker" ? void 0 : r.chartEx, r.tiff && a === "worker" && !l?.tiff && console.warn("[ooxml] a custom TIFF codec cannot cross the worker boundary; recognized TIFF images will use an unavailable-image placeholder in mode: 'worker'. Use the codec from @silurus/ooxml/tiff to display them."), u._tiff = a === "worker" ? void 0 : r.tiff;
936
935
  let t = r.progressiveLayout ? {
937
936
  onProgress: r.onLayoutProgress,
938
937
  onPartial: r.onLayoutPartial,
939
938
  onComplete: r.onLayoutComplete,
940
- firstPublication: It(),
939
+ firstPublication: Bt(),
941
940
  published: !1,
942
941
  deferred: !1,
943
942
  settled: !1
944
943
  } : void 0;
945
- return await u._parse(s, i.policy, !!r.useGoogleFonts, r.workerTimeoutMs, (e) => o.observeUsage(e), l, t), o.checkpoint("presentation preflight ready"), a === "main" && r.useGoogleFonts && u._preflight && !t && (u._googleFontFaces = await k(_t(u._preflight.fontPreloadNames, u._embeddedFontAliases), n)), o.succeed({ slides: u.slideCount }), u;
944
+ return await u._parse(s, i.policy, !!r.useGoogleFonts, r.workerTimeoutMs, (e) => o.observeUsage(e), l, t), o.checkpoint("presentation preflight ready"), a === "main" && r.useGoogleFonts && u._preflight && !t && (u._googleFontFaces = await k(xt(u._preflight.fontPreloadNames, u._embeddedFontAliases), n)), o.succeed({ slides: u.slideCount }), u;
946
945
  } catch (e) {
947
946
  let t = u;
948
- throw ie(c, t ? () => t.destroy() : void 0), e;
947
+ throw re(c, t ? () => t.destroy() : void 0), e;
949
948
  }
950
949
  } catch (e) {
951
950
  throw o.fail(e), e;
@@ -976,7 +975,7 @@ var J = class e {
976
975
  }
977
976
  let f = t(u.bootstrap);
978
977
  this._bootstrap = f;
979
- let p = gt(f.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
978
+ let p = bt(f.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
980
979
  this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
981
980
  });
982
981
  this._slidePullClient = new d({
@@ -1002,10 +1001,10 @@ var J = class e {
1002
1001
  } catch (e) {
1003
1002
  throw p.catch(() => void 0), e;
1004
1003
  }
1005
- this._preflight = c(m.preflight), this._availableSlideCount = this._preflight.slideCount, this._slides = new pt({
1004
+ this._preflight = c(m.preflight), this._availableSlideCount = this._preflight.slideCount, this._slides = new _t({
1006
1005
  slideCount: this._preflight.slideCount,
1007
1006
  maxCachedSlides: 8,
1008
- maxCachedStructuralBytes: _,
1007
+ maxCachedStructuralBytes: S,
1009
1008
  loadSlide: async (e) => {
1010
1009
  let t = await this._slidePullClient?.load(e, !0, i);
1011
1010
  if (!t) throw Error("PPTX slide pull client is unavailable");
@@ -1022,13 +1021,13 @@ var J = class e {
1022
1021
  progressiveLayout: !0
1023
1022
  }), [e], { timeoutMs: a })).bootstrap);
1024
1023
  this._bootstrap = c;
1025
- let u = gt(c.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
1024
+ let u = bt(c.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
1026
1025
  this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
1027
1026
  });
1028
- this._slidePullClient = this._createSlidePullClient(c.slideCount, a, o), this._slides = new pt({
1027
+ this._slidePullClient = this._createSlidePullClient(c.slideCount, a, o), this._slides = new _t({
1029
1028
  slideCount: c.slideCount,
1030
1029
  maxCachedSlides: 8,
1031
- maxCachedStructuralBytes: _,
1030
+ maxCachedStructuralBytes: S,
1032
1031
  loadSlide: async (e) => {
1033
1032
  let t = await this._slidePullClient?.load(e, !0, a);
1034
1033
  if (!t) throw Error("PPTX slide pull client is unavailable");
@@ -1037,7 +1036,7 @@ var J = class e {
1037
1036
  });
1038
1037
  let d = new l(c), f = /* @__PURE__ */ new Set(), p = async () => {
1039
1038
  if (await u, !i) return;
1040
- let e = _t(d.currentFontPreloadNames, this._embeddedFontAliases).filter((e) => !!e && !f.has(e));
1039
+ let e = xt(d.currentFontPreloadNames, this._embeddedFontAliases).filter((e) => !!e && !f.has(e));
1041
1040
  if (e.length !== 0) {
1042
1041
  for (let t of e) f.add(t);
1043
1042
  this._googleFontFaces.push(...await k(e, n));
@@ -1046,7 +1045,7 @@ var J = class e {
1046
1045
  this._layoutCompletion = (async () => {
1047
1046
  for (let e = 0; e < c.slideCount; e += 1) await this._slides.withSlide(e, (e) => {
1048
1047
  d.addSlide(e);
1049
- }), await p(), this._applyProgressivePrefix(d.snapshot(), s), e === 0 && s.deferred && await Ft();
1048
+ }), await p(), this._applyProgressivePrefix(d.snapshot(), s), e === 0 && s.deferred && await zt();
1050
1049
  await u, this._finishProgressiveLayout(d.finish(), s);
1051
1050
  })().then(() => void 0, (e) => this._failProgressiveLayout(e, s)), await s.firstPublication.promise;
1052
1051
  }
@@ -1085,7 +1084,7 @@ var J = class e {
1085
1084
  });
1086
1085
  }
1087
1086
  _onWorkerLayoutPush(e) {
1088
- if (!(!("kind" in e) || e.kind !== "presentationLayoutPartial" || e.forId !== this._parseRequestId || !this._progressive)) try {
1087
+ if (!oe((e, t) => this._worker.postMessage(e, t), e) && !(!("kind" in e) || e.kind !== "presentationLayoutPartial" || e.forId !== this._parseRequestId || !this._progressive)) try {
1089
1088
  this._rearmProgressiveWatchdog(), e.usage && this._metrics?.observeUsage(e.usage), e.bootstrap && (this._bootstrap = t(e.bootstrap));
1090
1089
  let n = this._bootstrap;
1091
1090
  if (!n) throw Error("PPTX progressive worker published before bootstrap");
@@ -1095,7 +1094,7 @@ var J = class e {
1095
1094
  ...n,
1096
1095
  slides: [...r, e.slide],
1097
1096
  fontPreloadNames: e.fontPreloadNames
1098
- }), this._progressive), Ft().then(() => {
1097
+ }), this._progressive), zt().then(() => {
1099
1098
  this._destroyed || this._parseRequestId !== e.forId || this._bridge.post({
1100
1099
  kind: "continuePresentationPreflight",
1101
1100
  forId: e.forId,
@@ -1209,13 +1208,13 @@ var J = class e {
1209
1208
  return (this._bootstrap?.slides ?? this._preflight?.slides ?? []).map((e) => e.partName);
1210
1209
  }
1211
1210
  _partIndex() {
1212
- return this._slidePartIndex ||= ut(this._partNames()), this._slidePartIndex;
1211
+ return this._slidePartIndex ||= mt(this._partNames()), this._slidePartIndex;
1213
1212
  }
1214
1213
  getSlideIndexByPartName(e) {
1215
1214
  return this._partIndex().get(e);
1216
1215
  }
1217
1216
  resolveInternalTarget(e, t = 0) {
1218
- return ft(e, this._partIndex(), t);
1217
+ return gt(e, this._partIndex(), t);
1219
1218
  }
1220
1219
  async renderSlide(e, t, n = {}) {
1221
1220
  this._assertResourceHealthy();
@@ -1224,7 +1223,7 @@ var J = class e {
1224
1223
  this._assertSlideIndex(t), await this._waitForSlide(t);
1225
1224
  let i = this._preflight, a = this._slides;
1226
1225
  if (!i || !a) throw Error("Presentation not loaded");
1227
- let o = n.dpr ?? S(), s = n.width ?? ((ee(e) ? e.offsetWidth : 0) || 960);
1226
+ let o = n.dpr ?? y(), s = n.width ?? ((w(e) ? e.offsetWidth : 0) || 960);
1228
1227
  await a.withSlide(t, (t) => (this._assertResourceHealthy(), r(e, t, i.slideWidth, i.slideHeight, {
1229
1228
  width: s,
1230
1229
  dpr: o,
@@ -1242,7 +1241,8 @@ var J = class e {
1242
1241
  threeD: this._threeD,
1243
1242
  regionMap: this._regionMap,
1244
1243
  chartEx: this._chartEx,
1245
- tiff: this._tiff
1244
+ tiff: this._tiff,
1245
+ imageResources: n.imageResources
1246
1246
  }, n.onTextRun)));
1247
1247
  } catch (e) {
1248
1248
  this._rethrowWithResourceFailure(e);
@@ -1252,7 +1252,7 @@ var J = class e {
1252
1252
  this._assertResourceHealthy();
1253
1253
  try {
1254
1254
  this._assertSlideIndex(e), await this._waitForSlide(e);
1255
- let n = t.width ?? 960, r = t.dpr ?? S();
1255
+ let n = t.width ?? 960, r = t.dpr ?? y();
1256
1256
  if (this._mode === "worker") {
1257
1257
  let i = await this._bridge.request((i) => ({
1258
1258
  kind: "renderSlide",
@@ -1260,16 +1260,22 @@ var J = class e {
1260
1260
  slideIndex: e,
1261
1261
  width: n,
1262
1262
  dpr: r,
1263
+ imageResources: t.imageResources,
1263
1264
  skipMediaControls: t.skipMediaControls,
1264
1265
  dim: t.dim
1265
1266
  }));
1266
- if (t.onTextRun) for (let e of i.runs) t.onTextRun(e);
1267
+ try {
1268
+ if (t.onTextRun) for (let e of i.runs) t.onTextRun(e);
1269
+ } catch (e) {
1270
+ throw te(i.bitmap), e;
1271
+ }
1267
1272
  return i.bitmap;
1268
1273
  }
1269
1274
  let i = new OffscreenCanvas(1, 1);
1270
1275
  return await this.renderSlide(i, e, {
1271
1276
  width: n,
1272
1277
  dpr: r,
1278
+ imageResources: t.imageResources,
1273
1279
  skipMediaControls: t.skipMediaControls,
1274
1280
  dim: t.dim,
1275
1281
  onTextRun: t.onTextRun
@@ -1307,7 +1313,7 @@ var J = class e {
1307
1313
  options: n
1308
1314
  }))).context;
1309
1315
  if (!this._slides) throw Error("Presentation not loaded");
1310
- return await this._slides.withSlide(e, (r) => Mt(e, r, t, n));
1316
+ return await this._slides.withSlide(e, (r) => It(e, r, t, n));
1311
1317
  } catch (e) {
1312
1318
  this._rethrowWithResourceFailure(e);
1313
1319
  }
@@ -1324,7 +1330,7 @@ var J = class e {
1324
1330
  elementIds: n
1325
1331
  }))).bounds;
1326
1332
  if (!this._slides) throw Error("Presentation not loaded");
1327
- return await this._slides.withSlide(e, (e) => Nt(e, n));
1333
+ return await this._slides.withSlide(e, (e) => Lt(e, n));
1328
1334
  } catch (e) {
1329
1335
  this._rethrowWithResourceFailure(e);
1330
1336
  }
@@ -1379,7 +1385,7 @@ var J = class e {
1379
1385
  async getResourceMetrics() {
1380
1386
  let e = this._metrics;
1381
1387
  if (!e) throw Error("Presentation not loaded");
1382
- return te(e, async (e) => (await this._bridge.request((e) => ({
1388
+ return ne(e, async (e) => (await this._bridge.request((e) => ({
1383
1389
  kind: "resourceUsage",
1384
1390
  id: e
1385
1391
  }), void 0, { timeoutMs: e })).usage);
@@ -1399,32 +1405,40 @@ var J = class e {
1399
1405
  this._assertResourceHealthy();
1400
1406
  try {
1401
1407
  if (this._assertSlideIndex(t), await this._waitForSlide(t), !this._preflight) throw Error("Presentation not loaded");
1402
- let r = n.dpr ?? S(), i = n.width ?? (e.offsetWidth || 960), a = this._mode === "worker" ? async () => {
1408
+ let r = n.dpr ?? y(), i = n.width ?? (e.offsetWidth || 960), a = this.slideWidth > 0 ? i * this.slideHeight / this.slideWidth : 0;
1409
+ e.style.width = `${Math.round(i)}px`, e.style.height = `${Math.round(a)}px`, e.style.display || (e.style.display = "block");
1410
+ let o = this._mode === "worker" ? async () => {
1403
1411
  let a = await this.renderSlideToBitmap(t, {
1404
1412
  width: i,
1405
1413
  dpr: r,
1414
+ imageResources: n.imageResources,
1406
1415
  skipMediaControls: !0,
1407
1416
  dim: n.dim,
1408
1417
  onTextRun: n.onTextRun
1409
1418
  });
1410
- e.width = a.width, e.height = a.height, e.style.width = `${Math.round(a.width / r)}px`, e.style.display || (e.style.display = "block");
1411
- let o = e.getContext("2d");
1412
- if (!o) throw Error("2D context not available");
1413
- o.drawImage(a, 0, 0), a.close();
1419
+ try {
1420
+ e.width = a.width, e.height = a.height;
1421
+ let t = e.getContext("2d");
1422
+ if (!t) throw Error("2D context not available");
1423
+ t.drawImage(a, 0, 0);
1424
+ } finally {
1425
+ te(a);
1426
+ }
1414
1427
  } : () => this.renderSlide(e, t, {
1415
1428
  width: i,
1416
1429
  dpr: r,
1430
+ imageResources: n.imageResources,
1417
1431
  skipMediaControls: !0,
1418
1432
  dim: n.dim,
1419
1433
  onTextRun: n.onTextRun
1420
1434
  });
1421
- return await Ye(e, this._preflight.slides[t]?.mediaElements ?? [], {
1435
+ return await $e(e, this._preflight.slides[t]?.mediaElements ?? [], {
1422
1436
  width: i,
1423
- dpr: r,
1437
+ height: a,
1424
1438
  slideWidthEmu: this.slideWidth,
1425
1439
  fetchMedia: this._fetchMedia,
1426
1440
  fetchImage: this._fetchImage,
1427
- drawBase: a,
1441
+ drawBase: o,
1428
1442
  onError: n.onError
1429
1443
  });
1430
1444
  } catch (e) {
@@ -1432,13 +1446,13 @@ var J = class e {
1432
1446
  }
1433
1447
  }
1434
1448
  destroy() {
1435
- this._destroyed = !0, this._clearProgressiveWatchdog(), this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._bootstrap = null, this._preflight = null, this._availableSlideCount = 0, this._layoutLifecycle.succeed(), this._layoutCompletion = null, this._progressive = null, this._parseRequestId = null, this._wakeLayoutWaiters(), this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (Ce(this._googleFontFaces), this._googleFontFaces = []), this._embeddedFontFaces.length > 0 && (j(this._embeddedFontFaces), this._embeddedFontFaces = []), this._embeddedFontAliases = /* @__PURE__ */ new Map(), this._embeddedFontAuthoredFamilies = /* @__PURE__ */ new Map(), C(this._fetchImage), w(this._fetchImage);
1449
+ this._destroyed = !0, this._clearProgressiveWatchdog(), this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._bootstrap = null, this._preflight = null, this._availableSlideCount = 0, this._layoutLifecycle.succeed(), this._layoutCompletion = null, this._progressive = null, this._parseRequestId = null, this._wakeLayoutWaiters(), this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (Te(this._googleFontFaces), this._googleFontFaces = []), this._embeddedFontFaces.length > 0 && (j(this._embeddedFontFaces), this._embeddedFontFaces = []), this._embeddedFontAliases = /* @__PURE__ */ new Map(), this._embeddedFontAuthoredFamilies = /* @__PURE__ */ new Map(), x(this._fetchImage), ee(this._fetchImage);
1436
1450
  }
1437
1451
  };
1438
1452
  //#endregion
1439
1453
  //#region packages/pptx/src/selection-context.ts
1440
- function Lt(e, t, n, r, i = {}) {
1441
- let a = Oe({
1454
+ function Vt(e, t, n, r, i = {}) {
1455
+ let a = Ae({
1442
1456
  id: e.id,
1443
1457
  author: e.author,
1444
1458
  date: e.date,
@@ -1474,7 +1488,7 @@ function Y(e) {
1474
1488
  let t = Number(e);
1475
1489
  return Number.isSafeInteger(t) ? t : null;
1476
1490
  }
1477
- function Rt(e) {
1491
+ function Ht(e) {
1478
1492
  for (let t = e; t; t = t.parentElement) {
1479
1493
  let e = Y(t.dataset.slideIndex);
1480
1494
  if (e !== null) return e;
@@ -1482,8 +1496,8 @@ function Rt(e) {
1482
1496
  return null;
1483
1497
  }
1484
1498
  function X(e, t, n = {}) {
1485
- let r = _e(e, t, (e) => {
1486
- let t = Rt(e), n = Y(e.dataset.runIndex);
1499
+ let r = ye(e, t, (e) => {
1500
+ let t = Ht(e), n = Y(e.dataset.runIndex);
1487
1501
  if (t === null || n === null) return null;
1488
1502
  let r = Y(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
1489
1503
  return {
@@ -1522,10 +1536,10 @@ function Z(e, t, n, r, i) {
1522
1536
  }
1523
1537
  //#endregion
1524
1538
  //#region packages/pptx/src/viewer.ts
1525
- var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1539
+ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1526
1540
  color: "#ffffff",
1527
1541
  opacity: .6
1528
- }, Q = class e {
1542
+ }, Gt = class e {
1529
1543
  canvas;
1530
1544
  wrapper;
1531
1545
  canvasMount;
@@ -1571,23 +1585,23 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1571
1585
  static fromPresentation(t, n, r = {}) {
1572
1586
  return new e(t, {
1573
1587
  ...r,
1574
- [zt]: n
1588
+ [Ut]: n
1575
1589
  });
1576
1590
  }
1577
1591
  constructor(e, t = {}) {
1578
1592
  this.opts = t, this.canvas = e;
1579
- let n = t[zt];
1593
+ let n = t[Ut];
1580
1594
  this.borrowed = n !== void 0, this._mode = O("PptxViewer", t.mode, n), this.presentationOwner = new T("PptxViewer", n ?? null, !1);
1581
1595
  let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
1582
1596
  if (!r) throw Error("PptxViewer requires a canvas with an active Window");
1583
1597
  this.hostWindow = r;
1584
1598
  let i = t.elementHitTolerance ?? 6;
1585
1599
  if (!Number.isFinite(i) || i < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
1586
- this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new ve(e, {
1600
+ this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new be(e, {
1587
1601
  wrapperCssText: "position:relative;display:inline-block;vertical-align:top;",
1588
1602
  forceDisplayBlock: !0
1589
- }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new D(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new ge("PptxViewer", t.onError);
1590
- let a = new pe(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1603
+ }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new D(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new ve("PptxViewer", t.onError);
1604
+ let a = new he(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1591
1605
  this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this._loadingLayer = this.wrapper.ownerDocument.createElement("span"), this._loadingLayer.style.cssText = [
1592
1606
  "position:absolute",
1593
1607
  "inset:0",
@@ -1601,7 +1615,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1601
1615
  let o = this.wrapper.ownerDocument.createElement("progress");
1602
1616
  o.setAttribute("aria-hidden", "true"), this._loadingLayer.appendChild(o), this.wrapper.insertBefore(this._loadingLayer, this.elementLayer), this.textLayer && (t.onSelectionContextChange || t.enableElementSelection) && (this.selectionChangeListener = () => this._emitSelectionContextChange(), this.wrapper.ownerDocument.addEventListener("selectionchange", this.selectionChangeListener)), t.enableElementSelection && (this.elementClickListener = (e) => {
1603
1617
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
1604
- }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new We(() => this.slideCount, (e) => this._collectSlideRuns(e)), n && this._bindLayoutPresentation(n);
1618
+ }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new Je(() => this.slideCount, (e) => this._collectSlideRuns(e)), n && this._bindLayoutPresentation(n);
1605
1619
  }
1606
1620
  async load(e) {
1607
1621
  if (this.destroyed) throw Error("PptxViewer is destroyed");
@@ -1621,6 +1635,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1621
1635
  threeD: this.opts.threeD,
1622
1636
  regionMap: this.opts.regionMap,
1623
1637
  chartEx: this.opts.chartEx,
1638
+ tiff: this.opts.tiff,
1624
1639
  mode: this._mode,
1625
1640
  progressiveLayout: this.opts.progressiveLayout,
1626
1641
  onLayoutProgress: this.opts.onLayoutProgress,
@@ -1674,8 +1689,8 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1674
1689
  }
1675
1690
  _dim() {
1676
1691
  return {
1677
- color: this.opts.hiddenSlideDim?.color ?? Bt.color,
1678
- opacity: this.opts.hiddenSlideDim?.opacity ?? Bt.opacity
1692
+ color: this.opts.hiddenSlideDim?.color ?? Wt.color,
1693
+ opacity: this.opts.hiddenSlideDim?.opacity ?? Wt.opacity
1679
1694
  };
1680
1695
  }
1681
1696
  async setHiddenSlideMode(e) {
@@ -1697,7 +1712,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1697
1712
  get visibleSlideCount() {
1698
1713
  if (!this.engine) return 0;
1699
1714
  let e = this.engine;
1700
- return Fe((t) => e.isHidden(t), this.slideCount);
1715
+ return ze((t) => e.isHidden(t), this.slideCount);
1701
1716
  }
1702
1717
  get slideIndex() {
1703
1718
  return this.currentSlide;
@@ -1743,14 +1758,14 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1743
1758
  return this.opts.zoomMax ?? 4;
1744
1759
  }
1745
1760
  async setScale(e) {
1746
- let t = ue(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1761
+ let t = fe(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1747
1762
  this._scale = t, await this.renderCurrentSlide(), n && this.opts.onScaleChange?.(t);
1748
1763
  }
1749
1764
  async zoomIn() {
1750
- await this.setScale(ye(this.getScale()));
1765
+ await this.setScale(xe(this.getScale()));
1751
1766
  }
1752
1767
  async zoomOut() {
1753
- await this.setScale(Se(this.getScale()));
1768
+ await this.setScale(we(this.getScale()));
1754
1769
  }
1755
1770
  async fitWidth() {
1756
1771
  await this._fit("width");
@@ -1762,7 +1777,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1762
1777
  if (!this.engine) return;
1763
1778
  let t = this.wrapper.parentElement;
1764
1779
  if (!t) return;
1765
- let n = oe({
1780
+ let n = ce({
1766
1781
  contentWidth: this.engine.slideWidth / M,
1767
1782
  contentHeight: this.engine.slideHeight / M,
1768
1783
  containerWidth: t.clientWidth,
@@ -1785,6 +1800,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1785
1800
  let n = await e.presentSlide(this.canvas, t, {
1786
1801
  width: a,
1787
1802
  dpr: o,
1803
+ imageResources: this.opts.imageResources,
1788
1804
  dim: i,
1789
1805
  onTextRun: d,
1790
1806
  onError: (e) => {
@@ -1800,6 +1816,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1800
1816
  let e = await Z(this.engine, this.canvas, t, "worker", {
1801
1817
  width: a,
1802
1818
  dpr: o,
1819
+ imageResources: this.opts.imageResources,
1803
1820
  dim: i,
1804
1821
  onTextRun: d
1805
1822
  });
@@ -1807,6 +1824,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1807
1824
  } else if (await Z(this.engine, this.canvas, t, "main", {
1808
1825
  width: a,
1809
1826
  dpr: o,
1827
+ imageResources: this.opts.imageResources,
1810
1828
  onTextRun: d,
1811
1829
  dim: i
1812
1830
  }), !this.renderDispatcher.isCurrent(r)) return;
@@ -1821,7 +1839,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1821
1839
  _bindLayoutPresentation(e) {
1822
1840
  this._unbindLayoutPresentation(), this._layoutFailed = !1;
1823
1841
  let t = !0;
1824
- this._layoutUnsubscribe = Pt(e, () => ({
1842
+ this._layoutUnsubscribe = Rt(e, () => ({
1825
1843
  availableSlides: e.availableSlideCount,
1826
1844
  slideCount: e.slideCount,
1827
1845
  exact: e.layoutComplete,
@@ -1920,7 +1938,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1920
1938
  return;
1921
1939
  }
1922
1940
  if (t.kind === "external") {
1923
- x(t.url, void 0, this.hostWindow);
1941
+ v(t.url, void 0, this.hostWindow);
1924
1942
  return;
1925
1943
  }
1926
1944
  t.slideIndex !== void 0 && this.goToSlide(t.slideIndex).catch((e) => this._reportRenderError(e));
@@ -1942,7 +1960,7 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
1942
1960
  }
1943
1961
  getSelectionContext(e = {}) {
1944
1962
  if (this.destroyed) throw Error("PptxViewer is destroyed");
1945
- return (this.textLayer ? X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? At(this.elementContext, e.maxTextCharacters) : null);
1963
+ return (this.textLayer ? X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? Pt(this.elementContext, e.maxTextCharacters) : null);
1946
1964
  }
1947
1965
  _emitSelectionContextChange() {
1948
1966
  let e = this.getSelectionContext();
@@ -2007,11 +2025,11 @@ var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
2007
2025
  destroy() {
2008
2026
  this.destroyed || (this.destroyed = !0, this.errorRouter.close(), this.renderDispatcher.destroy(), o(this.canvas), this.handle?.destroy(), this.handle = null, this._unbindLayoutPresentation(), this.presentationOwner.close(), this._invalidateFind(), this.selectionChangeListener &&= (this.wrapper.ownerDocument.removeEventListener("selectionchange", this.selectionChangeListener), null), this.elementHitGeneration++, this.elementClickListener &&= (this.wrapper.removeEventListener("click", this.elementClickListener), null), this.contextMenuListener &&= (this.wrapper.removeEventListener("contextmenu", this.contextMenuListener), null), this.elementContext = null, this.canvasMount.restore());
2009
2027
  }
2010
- }, Vt = 150, Ht = "0 1px 3px rgba(0,0,0,0.2)", Ut = 12, Wt;
2011
- function Gt() {
2012
- return Wt ??= import("./comment-ui-runtime-CdMMApEN.js");
2028
+ }, Kt = 150, qt = "0 1px 3px rgba(0,0,0,0.2)", Q = 12, Jt;
2029
+ function Yt() {
2030
+ return Jt ??= import("./comment-ui-runtime-CAbpuWi_.js");
2013
2031
  }
2014
- var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt = class e {
2032
+ var $ = 440, Xt = 20, Zt = Symbol("PptxScrollViewer.borrowedPresentation"), Qt = class e {
2015
2033
  _presentationOwner;
2016
2034
  get _pres() {
2017
2035
  return this._presentationOwner.current;
@@ -2066,24 +2084,24 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2066
2084
  _prevBase = 0;
2067
2085
  _lastFitWidth = 0;
2068
2086
  _pageShadow;
2069
- _find = new We(() => this.slideCount, (e) => this._collectSlideRuns(e));
2087
+ _find = new Je(() => this.slideCount, (e) => this._collectSlideRuns(e));
2070
2088
  _findGeneration = 0;
2071
2089
  _findActive = !1;
2072
2090
  _findMeasureCtx;
2073
2091
  static fromPresentation(t, n, r = {}) {
2074
2092
  return new e(t, {
2075
2093
  ...r,
2076
- [qt]: n
2094
+ [Zt]: n
2077
2095
  });
2078
2096
  }
2079
2097
  constructor(e, t = {}) {
2080
2098
  if (e.tagName === "CANVAS") throw Error("PptxScrollViewer takes a container element (e.g. a <div>), not a <canvas> — the viewer creates and manages its own canvases. Pass a block container; for the single-slide canvas API use PptxViewer.");
2081
- this._container = e, this._opts = t, this._errorRouter = new ge("PptxScrollViewer", t.onError);
2099
+ this._container = e, this._opts = t, this._errorRouter = new ve("PptxScrollViewer", t.onError);
2082
2100
  let n = t.elementHitTolerance ?? 6;
2083
2101
  if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
2084
- this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? Ht;
2085
- let r = t[qt];
2086
- this._borrowed = r !== void 0, r ? (this._presentationOwner = new T("PptxScrollViewer", r, !1), this._mode = O("PptxScrollViewer", t.mode, r), this._scanAvailableComments(r, !1)) : (this._presentationOwner = new T("PptxScrollViewer"), this._mode = O("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper), this._commentsEnabled() && Gt().then((e) => {
2102
+ this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? qt;
2103
+ let r = t[Zt];
2104
+ this._borrowed = r !== void 0, r ? (this._presentationOwner = new T("PptxScrollViewer", r, !1), this._mode = O("PptxScrollViewer", t.mode, r), this._scanAvailableComments(r, !1)) : (this._presentationOwner = new T("PptxScrollViewer"), this._mode = O("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper), this._commentsEnabled() && Yt().then((e) => {
2087
2105
  if (!this._destroyed) {
2088
2106
  this._commentUi = e;
2089
2107
  for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
@@ -2091,7 +2109,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2091
2109
  }).catch((e) => this._reportRenderError(e)), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
2092
2110
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
2093
2111
  }, this._scrollHost.addEventListener("click", this._elementClickListener)), t.onContextMenu && (this._contextMenuListener = (e) => this._onContextMenu(e), this._scrollHost.addEventListener("contextmenu", this._contextMenuListener)), this._scrollListener = () => this._onScroll(), this._scrollHost.addEventListener("scroll", this._scrollListener), t.comments && (this._commentOutsidePointerListener = (e) => {
2094
- if (!Ae(e, this._wrapper, "ooxmlCommentId") && this._activeCommentId !== null) {
2112
+ if (!Me(e, this._wrapper, "ooxmlCommentId") && this._activeCommentId !== null) {
2095
2113
  this._activeCommentId = null, this._activeCommentSlide = null;
2096
2114
  for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
2097
2115
  this._emitSelectionContextChange();
@@ -2102,7 +2120,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2102
2120
  this._pendingZoomAnchor = Number.isFinite(n) && Number.isFinite(r) ? {
2103
2121
  x: n,
2104
2122
  y: r
2105
- } : null, this.setScale(xe(this._scale, e.deltaY, e.deltaMode));
2123
+ } : null, this.setScale(Ce(this._scale, e.deltaY, e.deltaMode));
2106
2124
  }, this._scrollHost.addEventListener("wheel", this._wheelListener, { passive: !1 })), typeof ResizeObserver < "u" && (this._resizeObserver = new ResizeObserver(() => this._onResize()), this._resizeObserver.observe(this._container)), this._borrowed && (this._bindLayoutPresentation(r), this.relayout());
2107
2125
  }
2108
2126
  async load(e) {
@@ -2123,6 +2141,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2123
2141
  threeD: this._opts.threeD,
2124
2142
  regionMap: this._opts.regionMap,
2125
2143
  chartEx: this._opts.chartEx,
2144
+ tiff: this._opts.tiff,
2126
2145
  mode: this._mode,
2127
2146
  progressiveLayout: this._opts.progressiveLayout,
2128
2147
  onLayoutProgress: this._opts.onLayoutProgress,
@@ -2172,7 +2191,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2172
2191
  return r <= 0 ? 0 : r;
2173
2192
  }
2174
2193
  _commentMarginExtent() {
2175
- return this._hasCommentMargin() ? (Ut + $) * this._commentZoom() : 0;
2194
+ return this._hasCommentMargin() ? (Q + $) * this._commentZoom() : 0;
2176
2195
  }
2177
2196
  _hasCommentMargin() {
2178
2197
  return this._commentsEnabled() && this._hasComments && this._commentsOptions()?.cards !== !1;
@@ -2192,8 +2211,9 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2192
2211
  }
2193
2212
  _syncCommentMarginGeometry(e) {
2194
2213
  if (!e) return;
2195
- let t = this._commentZoom(), n = `calc(100% + ${Ut * t}px)`;
2196
- e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${Kt}px`, e.dataset.ooxmlCommentZoom = String(t);
2214
+ e.style.display = this._hasCommentMargin() ? "" : "none";
2215
+ let t = this._commentZoom(), n = `calc(100% + ${Q * t}px)`;
2216
+ e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${Xt}px`, e.dataset.ooxmlCommentZoom = String(t);
2197
2217
  }
2198
2218
  _scanAvailableComments(e, t) {
2199
2219
  if (!this._commentsEnabled() || this._hasComments) return;
@@ -2331,7 +2351,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2331
2351
  o.setAttribute("aria-hidden", "true"), a.appendChild(o), t.appendChild(a);
2332
2352
  let s = null, c = null, l = null;
2333
2353
  this._commentsEnabled() && (s = document.createElement("div"), s.style.cssText = "position:absolute;inset:0;overflow:hidden;pointer-events:none;", t.appendChild(s), this._commentsOptions()?.cards !== !1 && (c = document.createElement("div"), c.style.cssText = "position:absolute;top:0;height:100%;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;pointer-events:auto;", this._syncCommentMarginGeometry(c), this._commentsOptions()?.connectors !== void 0 && (l = document.createElement("div"), l.style.cssText = "position:absolute;top:0;left:0;overflow:visible;pointer-events:none;", t.appendChild(l)), t.appendChild(c)));
2334
- let u = me(t, this._opts.enableElementSelection === !0);
2354
+ let u = ge(t, this._opts.enableElementSelection === !0);
2335
2355
  return this._scrollHost.appendChild(t), {
2336
2356
  wrapper: t,
2337
2357
  canvas: n,
@@ -2356,7 +2376,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2356
2376
  };
2357
2377
  }
2358
2378
  _recycleSlot(e, t) {
2359
- this._slots.delete(e), t.renderGeneration++, t.presentationGeneration++, t.presentationHandle?.destroy(), t.presentationHandle = null, t.mediaInteractive = !1, t.dispatcher.destroy(), this._destroyed || (t.dispatcher = new D(t.canvas, this._mode === "worker" && !this._opts.enableMediaPlayback)), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", t.loadingLayer.style.display = "none", t.commentMarkerLayer && (t.commentMarkerLayer.replaceChildren(), t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (this._commentUi?.disposeReadOnlyCommentMargin(t.commentMargin), this._commentUi || t.commentMargin.replaceChildren(), t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (this._commentUi?.disposeReadOnlyCommentDecoration(t.commentDecorationLayer), this._commentUi || t.commentDecorationLayer.replaceChildren(), t.commentDecorationLayer.style.visibility = ""), t.commentElementBounds = Object.freeze([]), t.commentGeometry = null, t.commentAnchorSlide = -1, t.commentAnchorGeneration++, E(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
2379
+ this._slots.delete(e), t.renderGeneration++, t.presentationGeneration++, t.presentationHandle?.destroy(), t.presentationHandle = null, t.mediaInteractive = !1, t.dispatcher.destroy(), this._destroyed || (t.dispatcher = new D(t.canvas, this._mode === "worker" && !this._opts.enableMediaPlayback)), t.textLayer && (t.textLayer.innerHTML = "", this._clearTextLayerPreview(t.textLayer)), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", t.loadingLayer.style.display = "none", t.commentMarkerLayer && (t.commentMarkerLayer.replaceChildren(), t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (this._commentUi?.disposeReadOnlyCommentMargin(t.commentMargin), this._commentUi || t.commentMargin.replaceChildren(), t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (this._commentUi?.disposeReadOnlyCommentDecoration(t.commentDecorationLayer), this._commentUi || t.commentDecorationLayer.replaceChildren(), t.commentDecorationLayer.style.visibility = ""), t.commentElementBounds = Object.freeze([]), t.commentGeometry = null, t.commentAnchorSlide = -1, t.commentAnchorGeneration++, E(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
2360
2380
  }
2361
2381
  _positionSlot(e, t, n) {
2362
2382
  e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${this._slideOffset(t)}px`;
@@ -2385,6 +2405,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2385
2405
  return this._trackSlotLoading(e, t, i, Z(this._pres, h, e, "main", {
2386
2406
  width: o,
2387
2407
  dpr: a,
2408
+ imageResources: this._opts.imageResources,
2388
2409
  onTextRun: m
2389
2410
  }).then(() => {
2390
2411
  i !== t.renderGeneration || !l.isCurrent(u) || h !== t.canvas || s !== this._renderEpoch || this._slots.get(e) !== t || t.renderedSlide !== e || (t.renderedScale = c, f && t.textLayer && I(t.textLayer, d, Math.round(o), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), p && this._refreshFindRuns(e, d), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t));
@@ -2403,7 +2424,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2403
2424
  _bindLayoutPresentation(e) {
2404
2425
  this._unbindLayoutPresentation();
2405
2426
  let t = !0;
2406
- this._layoutUnsubscribe = Pt(e, () => ({
2427
+ this._layoutUnsubscribe = Rt(e, () => ({
2407
2428
  availableSlides: e.availableSlideCount,
2408
2429
  slideCount: e.slideCount,
2409
2430
  exact: e.layoutComplete,
@@ -2457,6 +2478,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2457
2478
  return this._pres.presentSlide(t.canvas, e, {
2458
2479
  width: n,
2459
2480
  dpr: r,
2481
+ imageResources: this._opts.imageResources,
2460
2482
  onTextRun: d,
2461
2483
  onError: (e) => {
2462
2484
  s === t.presentationGeneration && this._reportRenderError(e);
@@ -2490,6 +2512,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2490
2512
  let c = await Z(this._pres, u, e, "worker", {
2491
2513
  width: n,
2492
2514
  dpr: r,
2515
+ imageResources: this._opts.imageResources,
2493
2516
  onTextRun: p ? (e) => m.push(e) : void 0
2494
2517
  });
2495
2518
  if (a !== t.renderGeneration || !o.isCurrent(s) || u !== t.canvas || l !== this._renderEpoch || this._slots.get(e) !== t || t.renderedSlide !== e) {
@@ -2497,11 +2520,11 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2497
2520
  return;
2498
2521
  }
2499
2522
  let h = {
2500
- cssWidth: Math.round(c.width / r),
2501
- cssHeight: Math.round(c.height / r)
2523
+ cssWidth: Math.round(n),
2524
+ cssHeight: Math.round(this._slideHeightPx())
2502
2525
  };
2503
2526
  if (!(this._opts.enableMediaPlayback ? o.commitBitmapTo2d(s, c, h) : o.commitBitmap(s, c, h))) return;
2504
- t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", f && I(t.textLayer, m, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), p && this._refreshFindRuns(e, m), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t), d = !0;
2527
+ t.renderedScale = i, t.textLayer && (this._clearTextLayerPreview(t.textLayer), f && I(t.textLayer, m, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), p && this._refreshFindRuns(e, m), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t), d = !0;
2505
2528
  } catch (n) {
2506
2529
  if (a === t.renderGeneration && o.isCurrent(s) && u === t.canvas && l === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e) if (c) this._reportRenderError(n);
2507
2530
  else throw n;
@@ -2512,7 +2535,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2512
2535
  }
2513
2536
  }
2514
2537
  setScale(e) {
2515
- let t = this._opts.zoomMin ?? .1, n = this._opts.zoomMax ?? 4, r = Math.min(n, Math.max(t, e)), i = this._pendingZoomAnchor;
2538
+ let t = this._effectiveZoomMin(), n = this._opts.zoomMax ?? 4, r = Math.min(n, Math.max(t, e)), i = this._pendingZoomAnchor;
2516
2539
  if (this._pendingZoomAnchor = null, !this._pres || this._pres.slideCount === 0 || !this._scaleEstablished) {
2517
2540
  this._pendingScale = r;
2518
2541
  return;
@@ -2527,7 +2550,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2527
2550
  let h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._slideOffset(l) + d * this._uniformSlideHeight, _ = c < this._slideOffset(0) ? s : g - o;
2528
2551
  if (this._scrollHost.scrollTop = Math.min(h, Math.max(0, _)), i) {
2529
2552
  let e = Math.max(0, (this._spacer.offsetWidth || 0) - this._scrollHost.clientWidth);
2530
- this._scrollHost.scrollLeft = se(p, i.x - f, a, r, { maxScroll: e });
2553
+ this._scrollHost.scrollLeft = le(p, i.x - f, a, r, { maxScroll: e });
2531
2554
  }
2532
2555
  this._previewVisible(), this._scheduleSettle(), this._opts.onScaleChange?.(r);
2533
2556
  }
@@ -2535,10 +2558,14 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2535
2558
  return this._scaleEstablished ? this._scale : this._pendingScale ?? 1;
2536
2559
  }
2537
2560
  zoomIn() {
2538
- this.setScale(ye(this.getScale()));
2561
+ this.setScale(xe(this.getScale()));
2539
2562
  }
2540
2563
  zoomOut() {
2541
- this.setScale(Se(this.getScale()));
2564
+ this.setScale(we(this.getScale(), this._effectiveZoomMin()));
2565
+ }
2566
+ _effectiveZoomMin() {
2567
+ let e = this._opts.zoomMin ?? .1;
2568
+ return this._scaleEstablished && this._prevBase > 0 ? Math.min(e, this._prevBase) : e;
2542
2569
  }
2543
2570
  fitWidth() {
2544
2571
  this._fit("width");
@@ -2548,7 +2575,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2548
2575
  }
2549
2576
  _fit(e) {
2550
2577
  if (!this._pres || this._pres.slideCount === 0) return;
2551
- let t = oe({
2578
+ let t = ce({
2552
2579
  contentWidth: this._pres.slideWidth / M,
2553
2580
  contentHeight: this._pres.slideHeight / M,
2554
2581
  containerWidth: this._fitWidthPx(),
@@ -2574,7 +2601,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2574
2601
  _previewSlot(e, t, n) {
2575
2602
  if (this._positionSlot(e, t, n), e.canvas.style.width = `${this._slideWidthPx()}px`, e.canvas.style.height = `${this._slideHeightPx()}px`, e.textLayer && e.renderedScale > 0) {
2576
2603
  let t = this._scale / e.renderedScale;
2577
- e.textLayer.style.transformOrigin = "0 0", e.textLayer.style.transform = `scale(${t})`;
2604
+ e.textLayer.style.transformOrigin = "0 0", e.textLayer.style.width = `${this._slideWidthPx() / t}px`, e.textLayer.style.height = `${this._slideHeightPx() / t}px`, e.textLayer.style.transform = `scale(${t})`;
2578
2605
  }
2579
2606
  if (e.renderedScale > 0) {
2580
2607
  let t = this._scale / e.renderedScale, n = Math.round(t * 1e6) / 1e6;
@@ -2585,10 +2612,13 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2585
2612
  }
2586
2613
  e.commentMarkerLayer && (e.commentMarkerLayer.style.visibility = "hidden"), e.commentMargin && (e.commentMargin.style.visibility = "hidden"), e.commentDecorationLayer && (e.commentDecorationLayer.style.visibility = "hidden");
2587
2614
  }
2615
+ _clearTextLayerPreview(e) {
2616
+ e.style.transform = "", e.style.transformOrigin = "", e.style.width = "100%", e.style.height = "100%";
2617
+ }
2588
2618
  _scheduleSettle() {
2589
2619
  this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
2590
2620
  this._settleTimer = null, this._settleRender();
2591
- }, Vt);
2621
+ }, Kt);
2592
2622
  }
2593
2623
  _settleRender() {
2594
2624
  if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
@@ -2620,7 +2650,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2620
2650
  return;
2621
2651
  }
2622
2652
  let n = t.canvas;
2623
- t.dispatcher.destroy(), t.wrapper.insertBefore(o, n), n.remove(), t.canvas = o, t.dispatcher = c, t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", d && I(t.textLayer, u, Math.round(r), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), f && this._refreshFindRuns(e, u), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2653
+ t.dispatcher.destroy(), t.wrapper.insertBefore(o, n), n.remove(), t.canvas = o, t.dispatcher = c, t.renderedScale = i, t.textLayer && (this._clearTextLayerPreview(t.textLayer), d && I(t.textLayer, u, Math.round(r), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), f && this._refreshFindRuns(e, u), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2624
2654
  }).catch((n) => {
2625
2655
  s === t.renderGeneration && c.isCurrent(l) && a === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e && this._reportRenderError(n), c.destroy();
2626
2656
  });
@@ -2643,7 +2673,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2643
2673
  return;
2644
2674
  }
2645
2675
  let d = t.canvas, f = t.presentationHandle;
2646
- t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new D(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l && I(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2676
+ t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new D(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (this._clearTextLayerPreview(t.textLayer), l && I(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2647
2677
  }).catch((e) => {
2648
2678
  o === t.presentationGeneration && this._reportRenderError(e);
2649
2679
  });
@@ -2741,6 +2771,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2741
2771
  }
2742
2772
  _redrawSlotComments(e, t) {
2743
2773
  if (!this._pres || !t.commentMarkerLayer) return;
2774
+ this._syncCommentMarginGeometry(t.commentMargin);
2744
2775
  let n = this._commentUi;
2745
2776
  if (!n) {
2746
2777
  t.commentMarkerLayer.replaceChildren(), t.commentMargin?.replaceChildren(), t.commentDecorationLayer?.replaceChildren(), t.commentGeometry = null;
@@ -2844,7 +2875,7 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2844
2875
  return;
2845
2876
  }
2846
2877
  if (t.kind === "external") {
2847
- x(t.url);
2878
+ v(t.url);
2848
2879
  return;
2849
2880
  }
2850
2881
  t.slideIndex !== void 0 && this.scrollToSlide(t.slideIndex);
@@ -2917,9 +2948,9 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2917
2948
  if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
2918
2949
  if (this._pres && this._activeCommentId !== null && this._activeCommentSlide !== null) {
2919
2950
  let t = this._pres.getComments(this._activeCommentSlide), n = t.findIndex((e, t) => P(e, t, this._activeCommentSlide) === this._activeCommentId), r = t[n];
2920
- if (r && n >= 0) return Lt(r, this._activeCommentSlide, n, this._activeCommentId, e);
2951
+ if (r && n >= 0) return Vt(r, this._activeCommentSlide, n, this._activeCommentId, e);
2921
2952
  }
2922
- return (this._opts.enableTextSelection ? X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? At(this._elementContext, e.maxTextCharacters) : null);
2953
+ return (this._opts.enableTextSelection ? X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? Pt(this._elementContext, e.maxTextCharacters) : null);
2923
2954
  }
2924
2955
  _emitSelectionContextChange() {
2925
2956
  let e = this.getSelectionContext();
@@ -2993,20 +3024,22 @@ var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt =
2993
3024
  this._free.length = 0, this._presentationOwner.close(), this._wrapper.remove();
2994
3025
  }
2995
3026
  }
2996
- }, Yt = /* @__PURE__ */ e({
2997
- OoxmlDecodedImageLimitError: () => je,
3027
+ }, $t = /* @__PURE__ */ e({
3028
+ OoxmlDecodedImageLimitError: () => Pe,
2998
3029
  OoxmlError: () => b,
2999
- OoxmlResourceLimitError: () => h,
3030
+ OoxmlResourceLimitError: () => C,
3000
3031
  PptxPresentation: () => J,
3001
- PptxScrollViewer: () => Jt,
3002
- PptxViewer: () => Q,
3003
- autoResize: () => be,
3032
+ PptxScrollViewer: () => Qt,
3033
+ PptxViewer: () => Gt,
3034
+ TiffDecodeError: () => Fe,
3035
+ autoResize: () => se,
3004
3036
  buildPptxHighlightLayer: () => L,
3005
3037
  buildPptxTextLayer: () => I,
3006
- isOoxmlDecodedImageLimitError: () => Me,
3007
- openExternalHyperlink: () => x,
3038
+ isOoxmlDecodedImageLimitError: () => Ne,
3039
+ isTiffDecodeError: () => Ie,
3040
+ openExternalHyperlink: () => v,
3008
3041
  readPptxTextSelectionContext: () => X,
3009
3042
  renderSlide: () => f
3010
3043
  });
3011
3044
  //#endregion
3012
- export { J as a, X as i, Jt as n, L as o, Q as r, I as s, Yt as t };
3045
+ export { J as a, X as i, Qt as n, L as o, Gt as r, I as s, $t as t };