@silurus/ooxml 0.80.2 → 0.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +57 -77
  2. package/dist/assets/render-worker-C2ACcLes.js +11 -0
  3. package/dist/assets/render-worker-Cx5uR77k.js +10 -0
  4. package/dist/assets/render-worker-DtU8oQZ7.js +24 -0
  5. package/dist/{canvas-viewer-mechanics-D-r6wHY_.js → canvas-viewer-mechanics-CqxKRGCp.js} +1 -1
  6. package/dist/chart-ex.mjs +1017 -0
  7. package/dist/{document-pull-client-Cukkyojh.js → document-pull-client-Ux4a_ax8.js} +4540 -4412
  8. package/dist/{docx-BlELeDNF.js → docx-SEyQ4gS-.js} +79 -75
  9. package/dist/docx.mjs +5 -4
  10. package/dist/docx_parser_bg.wasm +0 -0
  11. package/dist/index.mjs +3 -3
  12. package/dist/{line-distribute-Bvtp0Gt6.js → line-distribute-BBGvvwLt.js} +17 -16
  13. package/dist/{line-metrics-DdEJYxjx.js → line-metrics-Baz31mML.js} +663 -7488
  14. package/dist/math.mjs +29 -24
  15. package/dist/node.mjs +248 -247
  16. package/dist/plot-area-frame-Dg1VIpUU.js +3669 -0
  17. package/dist/{pptx-JBkXh6Cy.js → pptx-5lQrMvMR.js} +236 -232
  18. package/dist/pptx.mjs +6 -5
  19. package/dist/pptx_parser_bg.wasm +0 -0
  20. package/dist/region-map.mjs +102 -97
  21. package/dist/{render-CoqMHcbF.js → render-DEHjijQD.js} +1 -1
  22. package/dist/{render-worker-host-CM1JXVqg.js → render-worker-host-B1nbV_k7.js} +1 -1
  23. package/dist/{render-worker-host-DFtd9Z-J.js → render-worker-host-Bze5M6k5.js} +1 -1
  24. package/dist/{render-worker-host-Br7ZDyGE.js → render-worker-host-Dg_74V64.js} +1 -1
  25. package/dist/renderer-DuopJE1K.js +5855 -0
  26. package/dist/{renderer-module-contract-BNGz8HvO.js → renderer-module-contract-0bO_5SC0.js} +4 -3
  27. package/dist/{resource-measurement-CgMubiAI.js → resource-measurement-DRLp4nFt.js} +12 -11
  28. package/dist/{session-DkPblDiq.js → session-CNVc3VJ4.js} +8 -8
  29. package/dist/{slide-pull-client-m2blvngt.js → slide-pull-client-CzutXnGc.js} +888 -1082
  30. package/dist/three-d-BYiWCNlz.js +1345 -0
  31. package/dist/three-d.mjs +1238 -798
  32. package/dist/types/chart-ex.d.ts +949 -0
  33. package/dist/types/docx.d.ts +325 -18
  34. package/dist/types/index.d.ts +325 -26
  35. package/dist/types/math.d.ts +1 -1
  36. package/dist/types/node.d.ts +303 -14
  37. package/dist/types/pptx.d.ts +314 -22
  38. package/dist/types/region-map.d.ts +318 -6
  39. package/dist/types/three-d.d.ts +318 -6
  40. package/dist/types/xlsx.d.ts +317 -18
  41. package/dist/{worksheet-pull-client-BntP6RiO.js → worksheet-pull-client-Cxj3Ej0s.js} +19 -19
  42. package/dist/{xlsx-dhsUXUpX.js → xlsx-Bl3TIEVu.js} +1313 -1279
  43. package/dist/xlsx.mjs +6 -5
  44. package/dist/xlsx_parser_bg.wasm +0 -0
  45. package/package.json +7 -1
  46. package/dist/assets/render-worker-BD1_LaFD.js +0 -9
  47. package/dist/assets/render-worker-BIqMQFkZ.js +0 -8
  48. package/dist/assets/render-worker-DuvX4_li.js +0 -22
  49. package/dist/chart-number-format-qLhnk6hj.js +0 -475
  50. package/dist/three-d-C28kqDym.js +0 -1086
  51. /package/dist/{highlight-rect-BuX5rWP4.js → highlight-rect-BqcZMHUE.js} +0 -0
  52. /package/dist/{mathjax-DgAl7Yi5.js → mathjax-DJa-Q93p.js} +0 -0
  53. /package/dist/{transfer-CKZ79zFw.js → transfer-D0U6Uhn4.js} +0 -0
  54. /package/dist/{visible-index-BjesVGhg.js → visible-index-DbDuGMCE.js} +0 -0
@@ -1,28 +1,28 @@
1
1
  import { t as e } from "./chunk-DmhlhrBa.js";
2
- import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./slide-pull-client-m2blvngt.js";
3
- import { B as u, G as d, Ot as f, R as p, Rt as m, a as h, at as g, cn as _, ht as v, it as y, jt as b, ln as x, mt as S, q as C, z as w, zt as ee } from "./line-metrics-DdEJYxjx.js";
4
- import { C as te, E as ne, S as re, T as ie, _ as T, a as E, b as ae, c as D, d as oe, f as se, g as ce, h as le, i as O, l as k, m as ue, n as de, o as fe, p as pe, r as me, s as he, t as ge, v as A, w as _e, x as ve, y as j } from "./canvas-viewer-mechanics-D-r6wHY_.js";
2
+ import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./slide-pull-client-CzutXnGc.js";
3
+ import { B as u, Ct as d, Et as f, G as p, Jt as m, R as h, Yt as g, a as _, at as v, ht as y, it as b, mt as x, q as S, z as C } from "./line-metrics-Baz31mML.js";
4
+ import { C as w, E as ee, S as te, T as ne, _ as re, a as T, b as ie, c as E, d as ae, f as oe, g as se, h as ce, i as D, l as O, m as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, v as ge, w as _e, x as ve, y as k } from "./canvas-viewer-mechanics-CqxKRGCp.js";
5
5
  import { a as ye, i as be, n as xe, t as Se } from "./bounded-raw-part-cache-C6ro6Ezf.js";
6
- import { M } from "./three-d-C28kqDym.js";
7
- import { n as Ce } from "./resource-measurement-CgMubiAI.js";
8
- import { n as we } from "./renderer-module-contract-BNGz8HvO.js";
9
- import { n as Te, r as N, t as Ee } from "./visible-index-BjesVGhg.js";
10
- import { n as De, r as P, t as F } from "./highlight-rect-BuX5rWP4.js";
6
+ import { in as A, mn as Ce, pn as we } from "./plot-area-frame-Dg1VIpUU.js";
7
+ import { n as Te } from "./resource-measurement-DRLp4nFt.js";
8
+ import { n as Ee } from "./renderer-module-contract-0bO_5SC0.js";
9
+ import { n as De, r as j, t as Oe } from "./visible-index-DbDuGMCE.js";
10
+ import { n as ke, r as M, t as N } from "./highlight-rect-BqcZMHUE.js";
11
11
  //#region packages/core/src/nav/internal-target.ts
12
- function Oe(e, t) {
12
+ function Ae(e, t) {
13
13
  let n = t.startsWith("/") ? [] : e.split("/").filter((e) => e !== "");
14
14
  for (let e of t.split("/")) if (e === "..") n.pop();
15
15
  else if (e === "." || e === "") continue;
16
16
  else n.push(e);
17
17
  return n.join("/");
18
18
  }
19
- function ke(e) {
19
+ function je(e) {
20
20
  let t = /[?&]jump=([a-zA-Z]+)/.exec(e);
21
21
  if (!t) return null;
22
22
  let n = t[1].toLowerCase();
23
23
  return n === "firstslide" || n === "lastslide" || n === "nextslide" || n === "previousslide" ? n : null;
24
24
  }
25
- function Ae(e, t, n) {
25
+ function Me(e, t, n) {
26
26
  if (!(n <= 0)) switch (e) {
27
27
  case "firstslide": return 0;
28
28
  case "lastslide": return n - 1;
@@ -32,17 +32,17 @@ function Ae(e, t, n) {
32
32
  }
33
33
  //#endregion
34
34
  //#region packages/pptx/src/text-layer.ts
35
- function I(e, t, n) {
35
+ function P(e, t, n) {
36
36
  e.dataset ? n === void 0 ? delete e.dataset[t] : e.dataset[t] = n : n !== void 0 && e.setAttribute?.(`data-${t.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`)}`, n);
37
37
  }
38
- function L(e, t, n, r, i, a) {
39
- e.innerHTML = "", I(e, "ooxmlSelectionSurface", "pptx"), I(e, "slideIndex", a === void 0 ? void 0 : String(a));
38
+ function F(e, t, n, r, i, a) {
39
+ e.innerHTML = "", P(e, "ooxmlSelectionSurface", "pptx"), P(e, "slideIndex", a === void 0 ? void 0 : String(a));
40
40
  let o = /* @__PURE__ */ new Map(), s = e.ownerDocument ?? document;
41
41
  for (let [a, c] of t.entries()) {
42
42
  let t = c.rotation + (c.textBodyRotation ?? 0), l = `${c.shapeX},${c.shapeY},${c.shapeW},${c.shapeH},${t}`;
43
43
  if (!o.has(l)) {
44
44
  let i = s.createElement("div");
45
- i.style.cssText = `position:absolute;left:${F(c.shapeX, n)};top:${F(c.shapeY, r)};width:${F(c.shapeW, n)};height:${F(c.shapeH, r)};pointer-events:all;overflow:hidden;`, t !== 0 && (i.style.transformOrigin = "center center", i.style.transform = `rotate(${t}deg)`), o.set(l, {
45
+ 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:hidden;`, t !== 0 && (i.style.transformOrigin = "center center", i.style.transform = `rotate(${t}deg)`), o.set(l, {
46
46
  div: i,
47
47
  x: c.shapeX,
48
48
  y: c.shapeY,
@@ -52,20 +52,20 @@ function L(e, t, n, r, i, a) {
52
52
  }), e.appendChild(i);
53
53
  }
54
54
  let u = o.get(l), d = s.createElement("span");
55
- I(d, "ooxmlSelectionRun", "pptx"), I(d, "runIndex", String(a)), c.shapeId !== void 0 && I(d, "shapeId", c.shapeId), c.elementIndex !== void 0 && I(d, "elementIndex", String(c.elementIndex)), c.origin !== void 0 && I(d, "elementOrigin", c.origin), d.textContent = c.text;
55
+ P(d, "ooxmlSelectionRun", "pptx"), P(d, "runIndex", String(a)), c.shapeId !== void 0 && P(d, "shapeId", c.shapeId), c.elementIndex !== void 0 && P(d, "elementIndex", String(c.elementIndex)), c.origin !== void 0 && P(d, "elementOrigin", c.origin), d.textContent = c.text;
56
56
  let f = i ? c.hyperlink : void 0;
57
- d.style.cssText = `position:absolute;left:${F(c.inShapeX, u.w)};top:${F(c.inShapeY, u.h)};font:${c.font};line-height:${c.h}px;letter-spacing:0;white-space:pre;color:transparent;cursor:${f ? "pointer" : "text"};`, f && i && (d.title = f.kind === "external" ? f.url : f.ref, d.addEventListener("click", (e) => {
57
+ d.style.cssText = `position:absolute;left:${N(c.inShapeX, u.w)};top:${N(c.inShapeY, u.h)};font:${c.font};line-height:${c.h}px;letter-spacing:0;white-space:pre;color:transparent;cursor:${f ? "pointer" : "text"};`, f && i && (d.title = f.kind === "external" ? f.url : f.ref, d.addEventListener("click", (e) => {
58
58
  e.preventDefault(), i(f);
59
59
  })), u.div.appendChild(d);
60
60
  }
61
61
  }
62
- function R(e, t, n, r, i, a, o = {}) {
62
+ function I(e, t, n, r, i, a, o = {}) {
63
63
  e.innerHTML = "";
64
64
  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) => {
65
65
  let n = t.rotation + (t.textBodyRotation ?? 0), a = `${t.shapeX},${t.shapeY},${t.shapeW},${t.shapeH},${n}`, o = l.get(a);
66
66
  if (!o) {
67
67
  let s = document.createElement("div");
68
- s.style.cssText = `position:absolute;left:${F(t.shapeX, r)};top:${F(t.shapeY, i)};width:${F(t.shapeW, r)};height:${F(t.shapeH, i)};pointer-events:none;overflow:hidden;`, n !== 0 && (s.style.transformOrigin = "center center", s.style.transform = `rotate(${n}deg)`), o = {
68
+ 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 !== 0 && (s.style.transformOrigin = "center center", s.style.transform = `rotate(${n}deg)`), o = {
69
69
  div: s,
70
70
  w: t.shapeW,
71
71
  h: t.shapeH
@@ -78,16 +78,16 @@ function R(e, t, n, r, i, a, o = {}) {
78
78
  for (let r of e.slices) {
79
79
  let e = t[r.runIndex];
80
80
  if (!e) continue;
81
- let i = a(e.font), { x: o, width: s } = De(e.text, r.start, r.end, i);
81
+ let i = a(e.font), { x: o, width: s } = ke(e.text, r.start, r.end, i);
82
82
  if (s <= 0) continue;
83
83
  let c = u(e), l = document.createElement("div");
84
- l.style.cssText = `position:absolute;left:${F(e.inShapeX + o, c.w)};top:${F(e.inShapeY, c.h)};width:${F(s, c.w)};height:${F(e.h, c.h)};background:${n};pointer-events:none;`, c.div.appendChild(l);
84
+ 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);
85
85
  }
86
86
  }
87
87
  }
88
88
  //#endregion
89
89
  //#region packages/pptx/src/find.ts
90
- var z = class {
90
+ var L = class {
91
91
  _slideRuns = /* @__PURE__ */ new Map();
92
92
  _matches = [];
93
93
  _active = -1;
@@ -147,8 +147,8 @@ var z = class {
147
147
  if (n !== this._generation) return [];
148
148
  let o = r === this._runsRevision ? i : new Map([...i, ...this._slideRuns]), s = [];
149
149
  for (let n = 0; n < a; n++) {
150
- let r = o.get(n) ?? [], i = ue(r);
151
- for (let a of le(i, e, t)) {
150
+ let r = o.get(n) ?? [], i = le(r);
151
+ for (let a of ce(i, e, t)) {
152
152
  let e = a.slices.map((e) => r[e.runIndex].text.slice(e.start, e.end)).join("");
153
153
  s.push({
154
154
  slide: n,
@@ -160,10 +160,10 @@ var z = class {
160
160
  return this._runsRevision++, this._slideRuns = o, this._matches = s, this._active = -1, this.matches();
161
161
  }
162
162
  next() {
163
- return this._active = se(this._active, this._matches.length), this._activePublic();
163
+ return this._active = oe(this._active, this._matches.length), this._activePublic();
164
164
  }
165
165
  prev() {
166
- return this._active = pe(this._active, this._matches.length), this._activePublic();
166
+ return this._active = fe(this._active, this._matches.length), this._activePublic();
167
167
  }
168
168
  _activePublic() {
169
169
  let e = this._matches[this._active];
@@ -173,22 +173,22 @@ var z = class {
173
173
  location: { slide: e.slide }
174
174
  } : null;
175
175
  }
176
- }, B = (e) => e >= "0" && e <= "9";
177
- function je(e) {
176
+ }, R = (e) => e >= "0" && e <= "9";
177
+ function Ne(e) {
178
178
  let t = 0;
179
179
  for (let n = 0; n < 10; n++) t = Math.max(t, e.measureText(String(n)).width);
180
180
  return t;
181
181
  }
182
- function V(e, t, n) {
182
+ function z(e, t, n) {
183
183
  let r = 0;
184
- for (let i of t) r += B(i) ? n : e.measureText(i).width;
184
+ for (let i of t) r += R(i) ? n : e.measureText(i).width;
185
185
  return r;
186
186
  }
187
- function H(e, t, n, r, i) {
187
+ function B(e, t, n, r, i) {
188
188
  let a = e.textAlign;
189
189
  e.textAlign = "left";
190
190
  let o = n;
191
- for (let n of t) if (B(n)) {
191
+ for (let n of t) if (R(n)) {
192
192
  let t = e.measureText(n).width;
193
193
  e.fillText(n, o + (i - t) / 2, r), o += i;
194
194
  } else e.fillText(n, o, r), o += e.measureText(n).width;
@@ -196,11 +196,11 @@ function H(e, t, n, r, i) {
196
196
  }
197
197
  //#endregion
198
198
  //#region packages/pptx/src/presentation-handle.ts
199
- var U = (e, t) => e / M * t;
200
- async function Me(e, t, n) {
199
+ var V = (e, t) => e / A * t;
200
+ async function Pe(e, t, n) {
201
201
  let r = e.getContext("2d");
202
202
  if (!r) throw Error("2D context not available");
203
- let a = n.width / (n.slideWidthEmu / M);
203
+ let a = n.width / (n.slideWidthEmu / A);
204
204
  await n.drawBase();
205
205
  let o = document.createElement("canvas");
206
206
  o.width = e.width, o.height = e.height;
@@ -224,11 +224,11 @@ async function Me(e, t, n) {
224
224
  try {
225
225
  t = await n.fetchMedia(e.mediaPath);
226
226
  } catch (t) {
227
- throw u(), Fe(e, t);
227
+ throw u(), Le(e, t);
228
228
  }
229
229
  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");
230
230
  s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
231
- let f = Ne(e, a), p = {
231
+ let f = Fe(e, a), p = {
232
232
  el: e,
233
233
  rect: e.mediaKind === "audio" ? {
234
234
  x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
@@ -246,7 +246,7 @@ async function Me(e, t, n) {
246
246
  }, h = () => {
247
247
  l || (p.loadState = "ready");
248
248
  }, g = () => {
249
- l || (p.loadState = "error", d(W(e, s, "decode")));
249
+ l || (p.loadState = "error", d(H(e, s, "decode")));
250
250
  };
251
251
  s.addEventListener("loadedmetadata", m), s.addEventListener("canplay", h), s.addEventListener("error", g), p.detachListeners = () => {
252
252
  s.removeEventListener("loadedmetadata", m), s.removeEventListener("canplay", h), s.removeEventListener("error", g);
@@ -254,7 +254,7 @@ async function Me(e, t, n) {
254
254
  try {
255
255
  s.load();
256
256
  } catch (t) {
257
- let n = W(e, s, "load", t);
257
+ let n = H(e, s, "load", t);
258
258
  throw u(), n;
259
259
  }
260
260
  }
@@ -266,14 +266,14 @@ async function Me(e, t, n) {
266
266
  let t = e.media;
267
267
  if (e.loadState !== "loading") {
268
268
  if (e.loadState === "error") {
269
- Pe(r, e.posterRect, "Media unavailable");
269
+ Ie(r, e.posterRect, "Media unavailable");
270
270
  continue;
271
271
  }
272
272
  if (e.el.mediaKind === "video" && t.readyState >= 2) {
273
273
  let { x: n, y: i, w: a, h: o } = e.posterRect;
274
274
  r.drawImage(t, n, i, a, o);
275
275
  }
276
- if (e === p || v?.state === e) Be(r, e, t);
276
+ if (e === p || v?.state === e) Ve(r, e, t);
277
277
  else if (t.paused) {
278
278
  let { x: t, y: n, w: a, h: o } = e.posterRect;
279
279
  i(r, t + a / 2, n + o / 2, a, o, "paused");
@@ -292,7 +292,7 @@ async function Me(e, t, n) {
292
292
  for (let n of c) {
293
293
  let { x: r, y: i, w: a, h: o } = n.rect;
294
294
  if (e < r || e > r + a || t < i || t > i + o) continue;
295
- let s = q(n), c = s.y - 12, l = s.y + s.h + 8;
295
+ let s = K(n), c = s.y - 12, l = s.y + s.h + 8;
296
296
  return (Number.isFinite(n.media.duration) ? n.media.duration : 0) > 0 && e >= s.x && e <= s.x + s.w && t >= c && t <= l ? {
297
297
  kind: "seek",
298
298
  state: n,
@@ -309,10 +309,10 @@ async function Me(e, t, n) {
309
309
  }, b = (e) => {
310
310
  try {
311
311
  e.media.play().catch((t) => {
312
- d(W(e.el, e.media, "play", t));
312
+ d(H(e.el, e.media, "play", t));
313
313
  });
314
314
  } catch (t) {
315
- d(W(e.el, e.media, "play", t));
315
+ d(H(e.el, e.media, "play", t));
316
316
  }
317
317
  }, x = (t) => {
318
318
  let { x: n, y: r } = g(t.clientX, t.clientY), i = _(n, r);
@@ -331,7 +331,7 @@ async function Me(e, t, n) {
331
331
  }
332
332
  }
333
333
  if (v) {
334
- let e = q(v.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
334
+ let e = K(v.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
335
335
  y(v.state, n);
336
336
  }
337
337
  }, C = () => {
@@ -353,24 +353,24 @@ async function Me(e, t, n) {
353
353
  }
354
354
  };
355
355
  }
356
- function Ne(e, t) {
356
+ function Fe(e, t) {
357
357
  return {
358
- x: U(e.x, t),
359
- y: U(e.y, t),
360
- w: U(e.width, t),
361
- h: U(e.height, t)
358
+ x: V(e.x, t),
359
+ y: V(e.y, t),
360
+ w: V(e.width, t),
361
+ h: V(e.height, t)
362
362
  };
363
363
  }
364
- function Pe(e, t, n) {
364
+ function Ie(e, t, n) {
365
365
  let r = Math.max(10, Math.min(14, t.h * .12));
366
366
  e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
367
367
  let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
368
- J(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();
368
+ q(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();
369
369
  }
370
- function Fe(e, t) {
371
- return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${Ie(t)}`);
370
+ function Le(e, t) {
371
+ return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${U(t)}`);
372
372
  }
373
- function W(e, t, n, r) {
373
+ function H(e, t, n, r) {
374
374
  let i = "";
375
375
  try {
376
376
  i = e.mimeType ? t.canPlayType(e.mimeType) : "";
@@ -382,82 +382,82 @@ function W(e, t, n, r) {
382
382
  `networkState=${t.networkState}`
383
383
  ];
384
384
  a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
385
- let s = r === void 0 ? "" : `: ${Ie(r)}`;
385
+ let s = r === void 0 ? "" : `: ${U(r)}`;
386
386
  return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
387
387
  }
388
- function Ie(e) {
388
+ function U(e) {
389
389
  return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
390
390
  }
391
- var Le = 28, G = 14, Re = 72, ze = 10, K = 3;
392
- function Be(e, t, n) {
391
+ var Re = 28, W = 14, ze = 72, Be = 10, G = 3;
392
+ function Ve(e, t, n) {
393
393
  let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
394
- i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? He(e, t, n, r, a) : Ve(e, t, n, r, a);
394
+ i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? Ue(e, t, n, r, a) : He(e, t, n, r, a);
395
395
  }
396
- function Ve(e, t, n, r, i) {
396
+ function He(e, t, n, r, i) {
397
397
  let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
398
398
  e.save();
399
399
  let d = e.createLinearGradient(0, u, 0, o + c);
400
400
  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();
401
- let f = q(t);
402
- We(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)", Ue(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
401
+ let f = K(t);
402
+ Ge(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)", We(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
403
403
  }
404
- function He(e, t, n, r, i) {
405
- let a = Ge(t.rect);
406
- e.save(), J(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)", Ue(e, n.currentTime, r, a.x + G, a.y + a.h / 2, "middle"), e.restore(), We(e, q(t), i, r > 0);
404
+ function Ue(e, t, n, r, i) {
405
+ let a = Ke(t.rect);
406
+ e.save(), q(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)", We(e, n.currentTime, r, a.x + W, a.y + a.h / 2, "middle"), e.restore(), Ge(e, K(t), i, r > 0);
407
407
  }
408
- function Ue(e, t, n, r, i, a) {
409
- let o = Ke(t), s = Ke(n), c = je(e), l = V(e, o, c), u = V(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
410
- H(e, o, r + f - l, i, c);
408
+ function We(e, t, n, r, i, a) {
409
+ let o = qe(t), s = qe(n), c = Ne(e), l = z(e, o, c), u = z(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
410
+ B(e, o, r + f - l, i, c);
411
411
  let p = e.textAlign;
412
- e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, H(e, s, r + f + d, i, c);
412
+ e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, B(e, s, r + f + d, i, c);
413
413
  }
414
- function We(e, t, n, r) {
414
+ function Ge(e, t, n, r) {
415
415
  let i = t.h / 2;
416
- if (e.save(), J(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (J(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
416
+ if (e.save(), q(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (q(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
417
417
  let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
418
418
  e.shadowColor = "rgba(0, 0, 0, 0.3)", e.shadowBlur = 3, e.fillStyle = "#fff", e.beginPath(), e.arc(r, t.y + t.h / 2, 5, 0, Math.PI * 2), e.fill();
419
419
  }
420
420
  e.restore();
421
421
  }
422
- function Ge(e) {
422
+ function Ke(e) {
423
423
  let t = Math.max(220, e.w - 24);
424
424
  return {
425
425
  x: e.x + e.w / 2 - t / 2,
426
- y: e.y + e.h - Le - 4,
426
+ y: e.y + e.h - Re - 4,
427
427
  w: t,
428
- h: Le
428
+ h: Re
429
429
  };
430
430
  }
431
- function q(e) {
431
+ function K(e) {
432
432
  if (e.el.mediaKind === "audio") {
433
- let t = Ge(e.rect), n = t.x + G + Re + ze, r = Math.max(40, t.x + t.w - G - n);
433
+ let t = Ke(e.rect), n = t.x + W + ze + Be, r = Math.max(40, t.x + t.w - W - n);
434
434
  return {
435
435
  x: n,
436
- y: t.y + (t.h - K) / 2,
436
+ y: t.y + (t.h - G) / 2,
437
437
  w: r,
438
- h: K
438
+ h: G
439
439
  };
440
440
  }
441
441
  let t = e.rect, n = Math.max(12, t.w * .025), r = Math.max(12, Math.min(18, t.h * .05));
442
442
  return {
443
443
  x: t.x + n,
444
- y: t.y + t.h - K - r,
444
+ y: t.y + t.h - G - r,
445
445
  w: t.w - n * 2,
446
- h: K
446
+ h: G
447
447
  };
448
448
  }
449
- function J(e, t, n, r, i, a) {
449
+ function q(e, t, n, r, i, a) {
450
450
  let o = Math.min(a, i / 2, r / 2);
451
451
  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();
452
452
  }
453
- function Ke(e) {
453
+ function qe(e) {
454
454
  if (!Number.isFinite(e) || e < 0) return "0:00";
455
455
  let t = Math.floor(e);
456
456
  return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
457
457
  }
458
458
  //#endregion
459
459
  //#region packages/pptx/src/slide-nav.ts
460
- function qe(e) {
460
+ function Je(e) {
461
461
  let t = /* @__PURE__ */ new Map();
462
462
  for (let n = 0; n < e.length; n++) {
463
463
  let r = e[n];
@@ -465,18 +465,18 @@ function qe(e) {
465
465
  }
466
466
  return t;
467
467
  }
468
- function Je(e, t) {
468
+ function Ye(e, t) {
469
469
  if (e === "") return;
470
- let n = Oe("ppt/slides", e);
470
+ let n = Ae("ppt/slides", e);
471
471
  return t.get(n);
472
472
  }
473
- function Ye(e, t, n) {
474
- let r = ke(e);
475
- return r === null ? Je(e, t) : Ae(r, n, t.size);
473
+ function Xe(e, t, n) {
474
+ let r = je(e);
475
+ return r === null ? Ye(e, t) : Me(r, n, t.size);
476
476
  }
477
477
  //#endregion
478
478
  //#region packages/pptx/src/slide-repository.ts
479
- var Xe = class {
479
+ var Ze = class {
480
480
  #e;
481
481
  #t;
482
482
  #n;
@@ -489,7 +489,7 @@ var Xe = class {
489
489
  this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new xe({
490
490
  maxEntries: e.maxCachedSlides,
491
491
  maxWeight: e.maxCachedStructuralBytes,
492
- measure: (e) => Ce(e).jsonBytes
492
+ measure: (e) => Te(e).jsonBytes
493
493
  });
494
494
  }
495
495
  get slideCount() {
@@ -507,7 +507,7 @@ var Xe = class {
507
507
  try {
508
508
  return await t(r);
509
509
  } catch (e) {
510
- let t = Ze(e);
510
+ let t = Qe(e);
511
511
  throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
512
512
  }
513
513
  });
@@ -519,7 +519,7 @@ var Xe = class {
519
519
  try {
520
520
  n = await this.#t(e);
521
521
  } catch (e) {
522
- let n = Ze(e);
522
+ let n = Qe(e);
523
523
  throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
524
524
  }
525
525
  if (this.#o === t && this.#a) throw this.#a;
@@ -536,16 +536,16 @@ var Xe = class {
536
536
  t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
537
537
  }
538
538
  };
539
- function Ze(e) {
540
- return e instanceof x ? e : g(e);
539
+ function Qe(e) {
540
+ return e instanceof g ? e : v(e);
541
541
  }
542
542
  //#endregion
543
543
  //#region packages/pptx/src/worker.ts?worker&inline
544
- var Qe = "var e=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},t=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 n=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,r=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,a={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:i,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:i,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:n,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:n,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:r,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:r,loadFamily:`Noto Sans Arabic`}};function o(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 s=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,ee={\"noto sans kr\":{url:s(`Noto+Sans+KR`)},\"noto sans sc\":{url:s(`Noto+Sans+SC`)},\"noto sans tc\":{url:s(`Noto+Sans+TC`)},\"noto sans jp\":{url:s(`Noto+Sans+JP`)},\"noto serif kr\":{url:s(`Noto+Serif+KR`)},\"noto serif sc\":{url:s(`Noto+Serif+SC`)},\"noto serif tc\":{url:s(`Noto+Serif+TC`)},\"noto serif jp\":{url:s(`Noto+Serif+JP`)},\"noto sans\":{url:s(`Noto+Sans`)},\"noto serif\":{url:s(`Noto+Serif`)},\"noto sans devanagari\":{url:s(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:s(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:s(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:s(`Noto+Serif+Hebrew`)}};var c=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}},l=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 u(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 d=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`)}},te=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ne(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 re(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 ie(e,t){return e({module_or_path:t})}var ae=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new d(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),oe),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 te(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):ie(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,re(e)}};function oe(e){return ne(e)?new te(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function se(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function ce(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return se(t.requiredBytes)&&se(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var f=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 le(e){if(e instanceof f)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`||!ce(r)))return new f(r)}function ue(e,t,n){let r=le(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}const de=`OOXML_RESOURCE_LIMIT:`;function p(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function fe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return p(t.archiveEntryCount)&&p(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||p(t.largestInflatedEntryBytes))&&p(t.distinctInflatedBytes)&&p(t.operationInflatedBytes)}function pe(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!fe(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function me(e){return e===`docx`||e===`xlsx`||e===`pptx`}function he(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function m(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function h(e){return m(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ge(e){return!m(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 g=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}]]),_e=new Set([...g.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),ve=new Set([...g.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function ye(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!me(t.format)||!m(t.operation,256)||!h(t.resource)||!h(t.metric)||!p(t.limit)||!p(t.observed)||typeof t.configurable!=`boolean`||!fe(t.usage)?!1:!(`part`in t)||ge(t.part)}function _(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!he(t.stage)||!ye(t.violation))return!1;let n=t.violation,r=g.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:!(_e.has(n.resource)&&ve.has(n.metric))}function be(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function xe(e){if(!_(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:be(t.usage)}};return _(n)?n:void 0}function v(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Se(e){let n=e instanceof Error?e.message:String(e);if(!n.startsWith(de))return;let r;try{r=JSON.parse(n.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!_(i.details)))return new t(v(i.details),i.details)}function Ce(n){if(n instanceof l)return{message:n.message,errorName:n.name,code:n.code,decodedImage:{metric:n.metric,limit:n.limit,observed:n.observed}};let r=le(n);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=n instanceof e||n instanceof t?n:Se(n);if(i instanceof t){let e=xe(i.details);return e?{message:typeof i.message==`string`?i.message:v(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof e)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:m(i.name,128)?i.name:`OoxmlError`,...h(i.code)?{code:i.code}:{}};let a=n instanceof Error?n.message:String(n);if(typeof a==`string`&&a.startsWith(de))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=n instanceof Error?n:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:m(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return Ce(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const we=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Te(n){if(n.code===`ooxml-decoded-image-limit`&&n.decodedImage&&(n.decodedImage.metric===`image-pixels`||n.decodedImage.metric===`active-decoded-bytes`)&&p(n.decodedImage.limit)&&p(n.decodedImage.observed)&&n.decodedImage.observed>n.decodedImage.limit)return new l(n.decodedImage.metric,n.decodedImage.limit,n.decodedImage.observed);if(n.code===`ooxml-insufficient-credit`&&ce(n.insufficientCredit))return new f(n.insufficientCredit);if(n.code===`ooxml-resource-limit`&&_(n.resourceLimit))return new t(n.message,n.resourceLimit);if(n.code&&we.has(n.code))return new e(n.code,n.message);let r=n.errorName===`TypeError`?TypeError(n.message):n.errorName===`RangeError`?RangeError(n.message):Error(n.message);return n.errorName&&(r.name=n.errorName),n.code!==void 0&&Object.assign(r,{code:n.code}),r}function Ee(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const De=67108864;Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function Oe(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 ke(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}},Ae=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){ke(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 je(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:je(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}}({...a,...ee});function*O(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*k(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*Me(e){for(let t of e.elements)if(t.type===`shape`)yield*O(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*O(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 Ne=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=o(e)??o(t)??null;this.scripts=n??new c(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Me(e));for(let t of e.elements)if(t.type===`shape`)for(let e of k(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 k(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 A=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),j=67108864;function M(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Pe(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 Fe(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.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return M(t.defaultTextColor,`defaultTextColor`),M(t.majorFont,`majorFont`),M(t.minorFont,`minorFont`),M(t.hlinkColor,`hlinkColor`),M(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,slides:Object.freeze(t.slides.map(Pe))})}function Ie(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 Le(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(Ie))})}function N(e,n,r){if(!(e<=n))throw new t(`PPTX presentation preflight exceeded its hard limit of ${n} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:n,observed:Math.min(e,n+1),configurable:!1,usage:r}})}var Re=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Fe(e),r=t.hardLimitForTesting??j;if(!Number.isSafeInteger(r)||r<=0||r>j)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.descriptors=[...n.slides],this.fonts=new Ne(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,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,N(this.projectionBytesValue,this.limit,A)}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)}addSlide(e,t=A){this.prepareSlide(e,t).commit()}prepareSlide(e,t=A){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=Le(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=D(o,this.limit).jsonBytes,ee=D(i,this.limit).jsonBytes,c=this.projectionBytesValue-this.fontProjectionBytes-D(r,this.limit).jsonBytes+4;c=w(c,s,this.limit),c=w(c,ee,this.limit),this.slides.length!==0&&(c=w(c,1,this.limit));let l=D({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=w(this.projectionBytesValue,l,this.limit);N(Math.max(u,c),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:c};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,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=D(this.finished,this.limit).jsonBytes,this.finished}};function ze(e){try{return pe(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Be(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,ze(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 Ve=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(),Ue(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 r,i=new Promise(e=>{r=e}),a=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let i,a=!1,o=new Ae({...t,maxByteCredit:De,coordinator:this.coordinator,driver:{pull:n=>{let r;try{r=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw ue(e,n,De)||(this.latchResourceFailure(e),e)}let o=Ee(r);return this.acceptSlide&&(i=JSON.parse(new TextDecoder().decode(new Uint8Array(o)))),a=!0,{payload:o,byteLength:o.byteLength,done:!0,transfer:[o]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!a)throw Error(`slide unit is not awaiting acknowledgement`);try{Be(this.executeArchive,t,e,i,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}a=!1,i=void 0,this.sessions.delete(t.sessionId),r()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:o,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=a.then(()=>i,()=>void 0);try{await a}catch(e){throw this.pendingOpens.delete(t.sessionId),r(),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: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=Te(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&&!P(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&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return ze(this.executeArchive)}latchResourceFailure(e){let n=e instanceof t?e:Se(e);n&&(this.resourceFailure??=n)}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 He(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ue(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,Ge.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_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=qe(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,Ge.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 We(){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;Ke().setInt32(e+4,i,!0),Ke().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 Ge=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 Ke(){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,Je(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 qe(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 Je(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 Ye(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function Xe(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 Ze(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=We();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Xe(await e,t);return Ye(n,r)}async function Qe(e){return J=void 0,L=null,z=null,Ze(e)}const Y=new ae(Ze,{freeArchive:e=>e.free(),reinit:Qe});let X=null,Z=`empty`;function $e(){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 Ve(()=>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(He(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(u(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&($e(),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]=Oe(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=new Re(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===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:pe(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{}}};", $e = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", Qe], { type: "text/javascript;charset=utf-8" });
545
- function et(e) {
544
+ var $e = "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=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,o={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:a,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:a,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:r,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:r,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:i,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:i,loadFamily:`Noto Sans Arabic`}};function s(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 c=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,l={\"noto sans kr\":{url:c(`Noto+Sans+KR`)},\"noto sans sc\":{url:c(`Noto+Sans+SC`)},\"noto sans tc\":{url:c(`Noto+Sans+TC`)},\"noto sans jp\":{url:c(`Noto+Sans+JP`)},\"noto serif kr\":{url:c(`Noto+Serif+KR`)},\"noto serif sc\":{url:c(`Noto+Serif+SC`)},\"noto serif tc\":{url:c(`Noto+Serif+TC`)},\"noto serif jp\":{url:c(`Noto+Serif+JP`)},\"noto sans\":{url:c(`Noto+Sans`)},\"noto serif\":{url:c(`Noto+Serif`)},\"noto sans devanagari\":{url:c(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:c(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:c(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:c(`Noto+Serif+Hebrew`)}};var ee=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}},u,d,te=e((()=>{u=1<<25,u*4,d=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 f=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 f)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 f(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 p(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 p(t.archiveEntryCount)&&p(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||p(t.largestInflatedEntryBytes))&&p(t.distinctInflatedBytes)&&p(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 m(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function h(e){return m(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ye(e){return!m(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 g=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([...g.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),xe=new Set([...g.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)||!m(t.operation,256)||!h(t.resource)||!h(t.metric)||!p(t.limit)||!p(t.observed)||typeof t.configurable!=`boolean`||!he(t.usage)?!1:!(`part`in t)||ye(t.part)}function _(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=g.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(!_(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 _(n)?n:void 0}function v(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Te(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`||!_(i.details)))return new n(v(i.details),i.details)}function Ee(e){if(e instanceof d)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:Te(e);if(i instanceof n){let e=we(i.details);return e?{message:typeof i.message==`string`?i.message:v(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:m(i.name,128)?i.name:`OoxmlError`,...h(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:m(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return Ee(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const De=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Oe(e){if(e.code===`ooxml-decoded-image-limit`&&e.decodedImage&&(e.decodedImage.metric===`image-pixels`||e.decodedImage.metric===`active-decoded-bytes`)&&p(e.decodedImage.limit)&&p(e.decodedImage.observed)&&e.decodedImage.observed>e.decodedImage.limit)return new d(e.decodedImage.metric,e.decodedImage.limit,e.decodedImage.observed);if(e.code===`ooxml-insufficient-credit`&&de(e.insufficientCredit))return new f(e.insufficientCredit);if(e.code===`ooxml-resource-limit`&&_(e.resourceLimit))return new n(e.message,e.resourceLimit);if(e.code&&De.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 ke(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const Ae=67108864;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 Ne=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}},Pe=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 S(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function C(e,t,n){return S(e,`resource measurement`),S(t,`resource measurement`),S(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Fe(e,t=2**53-1){S(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=C(n,a,t),n>t)return n}return n}function w(e,t=2**53-1){S(t,`resource measurement limit`);let n=C(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=C(n,a,t),n>t)return n}return n}function T(e,t){return C(0,e,t)}function E(e,t=2**53-1,n=!1){if(S(t,`resource measurement limit`),e===null)return{jsonBytes:T(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:w(e,t),stringValueUtf8Bytes:Fe(e,t)};if(typeof e==`boolean`)return{jsonBytes:T(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:T((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=T(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=C(n,1,t));let a=E(e[i],t,!0);n=C(n,a.jsonBytes,t),r=C(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=T(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=C(n,1,t)),n=C(n,w(a,t),t),n=C(n,1,t);let e=E(o,t);n=C(n,e.jsonBytes,t),r=C(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?T(4,t):0,stringValueUtf8Bytes:0}}({...o,...l});function*D(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*O(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*Ie(e){for(let t of e.elements)if(t.type===`shape`)yield*D(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*D(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 Le=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=s(e)??s(t)??null;this.scripts=n??new ee(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Ie(e));for(let t of e.elements)if(t.type===`shape`)for(let e of O(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 O(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 k=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),A=67108864;function j(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Re(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 ze(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.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return j(t.defaultTextColor,`defaultTextColor`),j(t.majorFont,`majorFont`),j(t.minorFont,`minorFont`),j(t.hlinkColor,`hlinkColor`),j(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,slides:Object.freeze(t.slides.map(Re))})}function Be(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 Ve(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(Be))})}function M(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 He=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=ze(e),r=t.hardLimitForTesting??A;if(!Number.isSafeInteger(r)||r<=0||r>A)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.descriptors=[...n.slides],this.fonts=new Le(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=E(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=E({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,M(this.projectionBytesValue,this.limit,k)}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)}addSlide(e,t=k){this.prepareSlide(e,t).commit()}prepareSlide(e,t=k){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=Ve(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=E(o,this.limit).jsonBytes,c=E(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-E(r,this.limit).jsonBytes+4;l=C(l,s,this.limit),l=C(l,c,this.limit),this.slides.length!==0&&(l=C(l,1,this.limit));let ee=E({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=C(this.projectionBytesValue,ee,this.limit);M(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,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=E(this.finished,this.limit).jsonBytes,this.finished}};function N(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 Ue(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,N(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 We=class{coordinatorGeneration=new Ne;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(),Ke(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 r,i=new Promise(e=>{r=e}),a=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let i,a=!1,o=new Pe({...t,maxByteCredit:Ae,coordinator:this.coordinator,driver:{pull:n=>{let r;try{r=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw pe(e,n,Ae)||(this.latchResourceFailure(e),e)}let o=ke(r);return this.acceptSlide&&(i=JSON.parse(new TextDecoder().decode(new Uint8Array(o)))),a=!0,{payload:o,byteLength:o.byteLength,done:!0,transfer:[o]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!a)throw Error(`slide unit is not awaiting acknowledgement`);try{Ue(this.executeArchive,t,e,i,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}a=!1,i=void 0,this.sessions.delete(t.sessionId),r()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:o,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=a.then(()=>i,()=>void 0);try{await a}catch(e){throw this.pendingOpens.delete(t.sessionId),r(),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: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=Oe(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 Ne,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: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&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return N(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:Te(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 Ge(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ke(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,Je.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_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=Xe(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,Je.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 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;Ye().setInt32(e+4,i,!0),Ye().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 Je=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 Ye(){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,Ze(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 Xe(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 Ze(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 Qe(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function $e(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 et(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 $e(await e,t);return Qe(n,r)}async function tt(e){return J=void 0,L=null,z=null,et(e)}const Y=new ce(et,{freeArchive:e=>e.free(),reinit:tt});let X=null,Z=`empty`;function nt(){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 We(()=>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(Ge(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`&&(nt(),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 F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=new He(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===`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{}}};", et = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", $e], { type: "text/javascript;charset=utf-8" });
545
+ function tt(e) {
546
546
  let t;
547
547
  try {
548
- if (t = $e && (self.URL || self.webkitURL).createObjectURL($e), !t) throw "";
548
+ if (t = et && (self.URL || self.webkitURL).createObjectURL(et), !t) throw "";
549
549
  let n = new Worker(t, {
550
550
  type: "module",
551
551
  name: e?.name
@@ -554,7 +554,7 @@ function et(e) {
554
554
  (self.URL || self.webkitURL).revokeObjectURL(t);
555
555
  }), n;
556
556
  } catch {
557
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(Qe), {
557
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent($e), {
558
558
  type: "module",
559
559
  name: e?.name
560
560
  });
@@ -562,24 +562,24 @@ function et(e) {
562
562
  }
563
563
  //#endregion
564
564
  //#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
565
- var tt = new URL("pptx_parser_bg.wasm", import.meta.url).href, Y = 65536, nt = 16384, rt = new Set(["line", "straightconnector1"]);
566
- function it(e, t) {
565
+ var nt = new URL("pptx_parser_bg.wasm", import.meta.url).href, J = 65536, rt = 16384, it = new Set(["line", "straightconnector1"]);
566
+ function at(e, t) {
567
567
  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;
568
568
  return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
569
569
  x: l,
570
570
  y: u
571
571
  };
572
572
  }
573
- function at(e, t, n) {
573
+ function ot(e, t, n) {
574
574
  let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
575
575
  if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
576
576
  let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
577
577
  return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
578
578
  }
579
- function ot(e, t, n = 0) {
579
+ function st(e, t, n = 0) {
580
580
  if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
581
- let r = it(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
582
- if (e.type === "shape" && (rt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return at(r, {
581
+ let r = at(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
582
+ if (e.type === "shape" && (it.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return ot(r, {
583
583
  x: e.x,
584
584
  y: e.y
585
585
  }, {
@@ -589,7 +589,7 @@ function ot(e, t, n = 0) {
589
589
  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);
590
590
  return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
591
591
  }
592
- function* st(e) {
592
+ function* ct(e) {
593
593
  if (e) for (let t of e.paragraphs) {
594
594
  let e = !0;
595
595
  for (let n of t.runs) {
@@ -601,17 +601,17 @@ function* st(e) {
601
601
  }
602
602
  }
603
603
  }
604
- function* ct(e) {
604
+ function* lt(e) {
605
605
  if (e.type === "shape") {
606
- yield* st(e.textBody);
606
+ yield* ct(e.textBody);
607
607
  return;
608
608
  }
609
609
  if (e.type === "table") {
610
- for (let t of e.rows) for (let e of t.cells) yield* st(e.textBody);
610
+ for (let t of e.rows) for (let e of t.cells) yield* ct(e.textBody);
611
611
  return;
612
612
  }
613
613
  }
614
- function lt(e, t) {
614
+ function ut(e, t) {
615
615
  let n = Math.min(e.length, t);
616
616
  if (n > 0 && n < e.length) {
617
617
  let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
@@ -619,9 +619,9 @@ function lt(e, t) {
619
619
  }
620
620
  return e.slice(0, n);
621
621
  }
622
- function ut(e, t = nt) {
622
+ function dt(e, t = rt) {
623
623
  if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
624
- let n = Math.min(Y, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : lt(r, n), a = r !== void 0 && i.length < r.length;
624
+ let n = Math.min(J, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : ut(r, n), a = r !== void 0 && i.length < r.length;
625
625
  return {
626
626
  ...structuredClone(e),
627
627
  ...i === void 0 ? {} : { text: i },
@@ -631,7 +631,7 @@ function ut(e, t = nt) {
631
631
  maxTextCharacters: n
632
632
  };
633
633
  }
634
- function dt(e, t) {
634
+ function ft(e, t) {
635
635
  let n = [], r = 0, i = !1, a = !1;
636
636
  for (let o of e) {
637
637
  if (a = !0, o.beginsPart && n.length > 0) {
@@ -641,7 +641,7 @@ function dt(e, t) {
641
641
  }
642
642
  n.push("\n"), r++;
643
643
  }
644
- let e = Math.max(0, t - r), s = lt(o.text, e);
644
+ let e = Math.max(0, t - r), s = ut(o.text, e);
645
645
  if (n.push(s), r += s.length, s.length < o.text.length) {
646
646
  i = !0;
647
647
  break;
@@ -656,16 +656,16 @@ function dt(e, t) {
656
656
  textCharacters: 0
657
657
  };
658
658
  }
659
- function ft(e, t, n, r = {}) {
659
+ function pt(e, t, n, r = {}) {
660
660
  if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
661
- let i = r.maxTextCharacters ?? nt;
661
+ let i = r.maxTextCharacters ?? rt;
662
662
  if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
663
- let a = Math.min(Y, Math.floor(i)), o = r.tolerance ?? 0;
663
+ let a = Math.min(J, Math.floor(i)), o = r.tolerance ?? 0;
664
664
  if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
665
665
  for (let r = t.elements.length - 1; r >= 0; r--) {
666
666
  let i = t.elements[r];
667
- if (!ot(i, n, o)) continue;
668
- let s = i.type === "chart" ? oe(i.chart, a) : dt(ct(i), a);
667
+ if (!st(i, n, o)) continue;
668
+ let s = i.type === "chart" ? ae(i.chart, a) : ft(lt(i), a);
669
669
  return {
670
670
  format: "pptx",
671
671
  kind: "element",
@@ -709,7 +709,7 @@ function ft(e, t, n, r = {}) {
709
709
  }
710
710
  //#endregion
711
711
  //#region packages/pptx/src/presentation.ts
712
- var X = class e {
712
+ var Y = class e {
713
713
  _metrics = null;
714
714
  _worker;
715
715
  _bridge;
@@ -721,7 +721,7 @@ var X = class e {
721
721
  _slidePartIndex = null;
722
722
  _rawParts = new Se({
723
723
  maxEntries: 64,
724
- maxBytes: C
724
+ maxBytes: S
725
725
  });
726
726
  _googleFontFaces = [];
727
727
  _fetchImage = (e, t) => this.getImage(e, t);
@@ -729,12 +729,13 @@ var X = class e {
729
729
  _math;
730
730
  _threeD;
731
731
  _regionMap;
732
+ _chartEx;
732
733
  constructor(e, t, n) {
733
- this._worker = e, this._mode = t, this._bridge = new te(this._worker, {
734
+ this._worker = e, this._mode = t, this._bridge = new w(this._worker, {
734
735
  correlate: (e) => "protocol" in e && e.protocol === "ooxml-pull-v1" ? e.requestId : "id" in e ? e.id : void 0,
735
- toError: (e) => !("protocol" in e) && e.kind === "error" ? y(e) : void 0
736
+ toError: (e) => !("protocol" in e) && e.kind === "error" ? b(e) : void 0
736
737
  });
737
- let r = new URL(n ?? tt, location.href).href;
738
+ let r = new URL(n ?? nt, location.href).href;
738
739
  this._bridge.post({
739
740
  kind: "init",
740
741
  wasmUrl: r
@@ -744,11 +745,11 @@ var X = class e {
744
745
  if (this._resourceFailure) throw this._resourceFailure;
745
746
  }
746
747
  _rethrowWithResourceFailure(e) {
747
- let t = e instanceof x ? e : g(e);
748
+ let t = e instanceof g ? e : v(e);
748
749
  throw t ? (this._resourceFailure ??= t, this._resourceFailure) : e;
749
750
  }
750
751
  static async load(t, n = {}) {
751
- let r = u(n), i = n.mode ?? "main", a = new p({
752
+ let r = u(n), i = n.mode ?? "main", a = new h({
752
753
  enabled: !0,
753
754
  format: "pptx",
754
755
  mode: i,
@@ -764,13 +765,13 @@ var X = class e {
764
765
  if (!e.ok) throw Error(`Failed to fetch: ${e.status} ${e.statusText}`);
765
766
  s = await e.arrayBuffer();
766
767
  } else s = t;
767
- s = ne(await ie(s, n.password)), a.setSourceBytes(s.byteLength), a.checkpoint("container ready");
768
- let c = i === "worker" ? (await import("./render-worker-host-CM1JXVqg.js")).createRenderWorker() : new et(), l = i === "worker" ? we(n) : void 0, u;
768
+ s = ee(await ne(s, n.password)), a.setSourceBytes(s.byteLength), a.checkpoint("container ready");
769
+ let c = i === "worker" ? (await import("./render-worker-host-B1nbV_k7.js")).createRenderWorker() : new tt(), l = i === "worker" ? Ee(n) : void 0, u;
769
770
  try {
770
- return u = new e(c, i, n.wasmUrl), u._metrics = a, n.math && i === "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."), n.threeD && i === "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 = i === "worker" ? void 0 : n.math, u._threeD = i === "worker" ? void 0 : n.threeD, n.regionMap && i === "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 = i === "worker" ? void 0 : n.regionMap, await u._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e), l), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && u._preflight && (u._googleFontFaces = await be(u._preflight.fontPreloadNames, o)), a.succeed({ slides: u.slideCount }), u;
771
+ return u = new e(c, i, n.wasmUrl), u._metrics = a, n.math && i === "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."), n.threeD && i === "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 = i === "worker" ? void 0 : n.math, u._threeD = i === "worker" ? void 0 : n.threeD, n.regionMap && i === "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 = i === "worker" ? void 0 : n.regionMap, n.chartEx && i === "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 = i === "worker" ? void 0 : n.chartEx, await u._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e), l), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && u._preflight && (u._googleFontFaces = await be(u._preflight.fontPreloadNames, o)), a.succeed({ slides: u.slideCount }), u;
771
772
  } catch (e) {
772
773
  let t = u;
773
- throw re(c, t ? () => t.destroy() : void 0), e;
774
+ throw te(c, t ? () => t.destroy() : void 0), e;
774
775
  }
775
776
  } catch (e) {
776
777
  throw a.fail(e), e;
@@ -795,9 +796,9 @@ var X = class e {
795
796
  e.usage && s?.(e.usage), this._preflight = t(u.preflight);
796
797
  return;
797
798
  }
798
- let f = r(u.bootstrap);
799
+ let d = r(u.bootstrap);
799
800
  this._slidePullClient = new l({
800
- slideCount: f.slideCount,
801
+ slideCount: d.slideCount,
801
802
  transport: this._bridge.transport(a),
802
803
  open: async (e, t, n) => {
803
804
  await this._bridge.request((n) => ({
@@ -809,14 +810,14 @@ var X = class e {
809
810
  },
810
811
  onUsage: s
811
812
  });
812
- for (let e = 0; e < f.slideCount; e += 1) await this._slidePullClient.load(e, !1, o);
813
+ for (let e = 0; e < d.slideCount; e += 1) await this._slidePullClient.load(e, !1, o);
813
814
  this._preflight = t((await this._bridge.request((e) => ({
814
815
  kind: "finishPresentationPreflight",
815
816
  id: e
816
- }), void 0, { timeoutMs: o })).preflight), this._slides = new Xe({
817
+ }), void 0, { timeoutMs: o })).preflight), this._slides = new Ze({
817
818
  slideCount: this._preflight.slideCount,
818
819
  maxCachedSlides: 8,
819
- maxCachedStructuralBytes: d,
820
+ maxCachedStructuralBytes: p,
820
821
  loadSlide: async (e) => {
821
822
  let t = await this._slidePullClient?.load(e, !0);
822
823
  if (!t) throw Error("PPTX slide pull client is unavailable");
@@ -846,13 +847,13 @@ var X = class e {
846
847
  return (this._preflight?.slides ?? []).map((e) => e.partName);
847
848
  }
848
849
  _partIndex() {
849
- return this._slidePartIndex ||= qe(this._partNames()), this._slidePartIndex;
850
+ return this._slidePartIndex ||= Je(this._partNames()), this._slidePartIndex;
850
851
  }
851
852
  getSlideIndexByPartName(e) {
852
853
  return this._partIndex().get(e);
853
854
  }
854
855
  resolveInternalTarget(e, t = 0) {
855
- return Ye(e, this._partIndex(), t);
856
+ return Xe(e, this._partIndex(), t);
856
857
  }
857
858
  async renderSlide(e, t, r = {}) {
858
859
  this._assertResourceHealthy();
@@ -860,7 +861,7 @@ var X = class e {
860
861
  if (this._mode === "worker") throw Error("renderSlide(canvas) is unavailable in mode: 'worker'; use renderSlideToBitmap() and paint it via an ImageBitmapRenderingContext");
861
862
  let i = this._preflight, a = this._slides;
862
863
  if (!i || !a) throw Error("Presentation not loaded");
863
- let o = r.dpr ?? S(), s = r.width ?? ((v(e) ? e.offsetWidth : 0) || 960);
864
+ let o = r.dpr ?? x(), s = r.width ?? ((y(e) ? e.offsetWidth : 0) || 960);
864
865
  await a.withSlide(t, (t) => (this._assertResourceHealthy(), n(e, t, i.slideWidth, i.slideHeight, {
865
866
  width: s,
866
867
  dpr: o,
@@ -874,7 +875,8 @@ var X = class e {
874
875
  dim: r.dim,
875
876
  math: this._math,
876
877
  threeD: this._threeD,
877
- regionMap: this._regionMap
878
+ regionMap: this._regionMap,
879
+ chartEx: this._chartEx
878
880
  }, r.onTextRun)));
879
881
  } catch (e) {
880
882
  this._rethrowWithResourceFailure(e);
@@ -883,7 +885,7 @@ var X = class e {
883
885
  async renderSlideToBitmap(e, t = {}) {
884
886
  this._assertResourceHealthy();
885
887
  try {
886
- let n = t.width ?? 960, r = t.dpr ?? S();
888
+ let n = t.width ?? 960, r = t.dpr ?? x();
887
889
  if (this._mode === "worker") {
888
890
  if (!Number.isInteger(e) || e < 0 || e >= this.slideCount) throw Error(`Slide index ${e} out of range (count: ${this.slideCount})`);
889
891
  let i = await this._bridge.request((i) => ({
@@ -942,7 +944,7 @@ var X = class e {
942
944
  options: n
943
945
  }))).context;
944
946
  if (!this._slides) throw Error("Presentation not loaded");
945
- return await this._slides.withSlide(e, (r) => ft(e, r, t, n));
947
+ return await this._slides.withSlide(e, (r) => pt(e, r, t, n));
946
948
  } catch (e) {
947
949
  this._rethrowWithResourceFailure(e);
948
950
  }
@@ -984,7 +986,7 @@ var X = class e {
984
986
  async getResourceMetrics() {
985
987
  let e = this._metrics;
986
988
  if (!e) throw Error("Presentation not loaded");
987
- return w(e, async (e) => (await this._bridge.request((e) => ({
989
+ return C(e, async (e) => (await this._bridge.request((e) => ({
988
990
  kind: "resourceUsage",
989
991
  id: e
990
992
  }), void 0, { timeoutMs: e })).usage);
@@ -1005,7 +1007,7 @@ var X = class e {
1005
1007
  try {
1006
1008
  if (!this._preflight) throw Error("Presentation not loaded");
1007
1009
  if (!Number.isInteger(t) || t < 0 || t >= this.slideCount) throw Error(`Slide index ${t} out of range (count: ${this.slideCount})`);
1008
- let r = n.dpr ?? S(), i = n.width ?? (e.offsetWidth || 960), a = this._mode === "worker" ? async () => {
1010
+ let r = n.dpr ?? x(), i = n.width ?? (e.offsetWidth || 960), a = this._mode === "worker" ? async () => {
1009
1011
  let a = await this.renderSlideToBitmap(t, {
1010
1012
  width: i,
1011
1013
  dpr: r,
@@ -1024,7 +1026,7 @@ var X = class e {
1024
1026
  dim: n.dim,
1025
1027
  onTextRun: n.onTextRun
1026
1028
  });
1027
- return await Me(e, this._preflight.slides[t]?.mediaElements ?? [], {
1029
+ return await Pe(e, this._preflight.slides[t]?.mediaElements ?? [], {
1028
1030
  width: i,
1029
1031
  dpr: r,
1030
1032
  slideWidthEmu: this.slideWidth,
@@ -1038,28 +1040,28 @@ var X = class e {
1038
1040
  }
1039
1041
  }
1040
1042
  destroy() {
1041
- this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._preflight = null, this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (ye(this._googleFontFaces), this._googleFontFaces = []), b(this._fetchImage), f(this._fetchImage);
1043
+ this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._preflight = null, this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (ye(this._googleFontFaces), this._googleFontFaces = []), f(this._fetchImage), d(this._fetchImage);
1042
1044
  }
1043
1045
  };
1044
1046
  //#endregion
1045
1047
  //#region packages/pptx/src/selection-context.ts
1046
- function Z(e) {
1048
+ function X(e) {
1047
1049
  if (e === void 0 || !/^\d+$/.test(e)) return null;
1048
1050
  let t = Number(e);
1049
1051
  return Number.isSafeInteger(t) ? t : null;
1050
1052
  }
1051
- function pt(e) {
1053
+ function mt(e) {
1052
1054
  for (let t = e; t; t = t.parentElement) {
1053
- let e = Z(t.dataset.slideIndex);
1055
+ let e = X(t.dataset.slideIndex);
1054
1056
  if (e !== null) return e;
1055
1057
  }
1056
1058
  return null;
1057
1059
  }
1058
- function Q(e, t, n = {}) {
1059
- let r = he(e, t, (e) => {
1060
- let t = pt(e), n = Z(e.dataset.runIndex);
1060
+ function Z(e, t, n = {}) {
1061
+ let r = me(e, t, (e) => {
1062
+ let t = mt(e), n = X(e.dataset.runIndex);
1061
1063
  if (t === null || n === null) return null;
1062
- let r = Z(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
1064
+ let r = X(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
1063
1065
  return {
1064
1066
  slideIndex: t,
1065
1067
  runIndex: n,
@@ -1091,10 +1093,10 @@ function Q(e, t, n = {}) {
1091
1093
  }
1092
1094
  //#endregion
1093
1095
  //#region packages/pptx/src/viewer.ts
1094
- var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1096
+ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
1095
1097
  color: "#ffffff",
1096
1098
  opacity: .6
1097
- }, gt = class e {
1099
+ }, _t = class e {
1098
1100
  canvas;
1099
1101
  wrapper;
1100
1102
  canvasMount;
@@ -1128,33 +1130,33 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1128
1130
  static fromPresentation(t, n, r = {}) {
1129
1131
  return new e(t, {
1130
1132
  ...r,
1131
- [mt]: n
1133
+ [ht]: n
1132
1134
  });
1133
1135
  }
1134
1136
  constructor(e, t = {}) {
1135
1137
  this.opts = t, this.canvas = e;
1136
- let n = t[mt];
1137
- this.borrowed = n !== void 0, this._mode = k("PptxViewer", t.mode, n), this.presentationOwner = new E("PptxViewer", n ?? null, !1);
1138
+ let n = t[ht];
1139
+ this.borrowed = n !== void 0, this._mode = O("PptxViewer", t.mode, n), this.presentationOwner = new T("PptxViewer", n ?? null, !1);
1138
1140
  let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
1139
1141
  if (!r) throw Error("PptxViewer requires a canvas with an active Window");
1140
1142
  this.hostWindow = r;
1141
1143
  let i = t.elementHitTolerance ?? 6;
1142
1144
  if (!Number.isFinite(i) || i < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
1143
- this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new ge(e, {
1145
+ this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new he(e, {
1144
1146
  wrapperCssText: "position:relative;display:inline-block;vertical-align:top;",
1145
1147
  forceDisplayBlock: !0
1146
- }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new O(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new me("PptxViewer", t.onError);
1147
- let a = new de(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1148
+ }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new D(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new pe("PptxViewer", t.onError);
1149
+ let a = new ue(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1148
1150
  this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this.textLayer && (t.onSelectionContextChange || t.enableElementSelection) && (this.selectionChangeListener = () => this._emitSelectionContextChange(), this.wrapper.ownerDocument.addEventListener("selectionchange", this.selectionChangeListener)), t.enableElementSelection && (this.elementClickListener = (e) => {
1149
1151
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
1150
- }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new z(() => this.slideCount, (e) => this._collectSlideRuns(e));
1152
+ }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new L(() => this.slideCount, (e) => this._collectSlideRuns(e));
1151
1153
  }
1152
1154
  async load(e) {
1153
1155
  if (this.destroyed) throw Error("PptxViewer is destroyed");
1154
1156
  if (this.borrowed) throw Error("PptxViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
1155
1157
  let t = !1;
1156
1158
  try {
1157
- if (!await this.presentationOwner.replace(() => X.load(e, {
1159
+ if (!await this.presentationOwner.replace(() => Y.load(e, {
1158
1160
  password: this.opts.password,
1159
1161
  useGoogleFonts: this.opts.useGoogleFonts,
1160
1162
  maxZipEntryBytes: this.opts.maxZipEntryBytes,
@@ -1166,6 +1168,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1166
1168
  math: this.opts.math,
1167
1169
  threeD: this.opts.threeD,
1168
1170
  regionMap: this.opts.regionMap,
1171
+ chartEx: this.opts.chartEx,
1169
1172
  mode: this._mode
1170
1173
  }), () => {
1171
1174
  this._invalidateElementSelection(!1), t = !0, this.renderDispatcher.begin(), this._find.invalidate(), this.handle?.destroy(), this.handle = null;
@@ -1189,21 +1192,21 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1189
1192
  await this.goToSlide(this._step(-1));
1190
1193
  }
1191
1194
  _step(e) {
1192
- return this._hiddenMode === "skip" && this.engine ? Te(this.currentSlide, e, (e) => this.engine.isHidden(e), this.slideCount) : this.currentSlide + e;
1195
+ return this._hiddenMode === "skip" && this.engine ? De(this.currentSlide, e, (e) => this.engine.isHidden(e), this.slideCount) : this.currentSlide + e;
1193
1196
  }
1194
1197
  _initialSlide() {
1195
- return this._hiddenMode === "skip" && this.engine ? N(0, (e) => this.engine.isHidden(e), this.slideCount) : 0;
1198
+ return this._hiddenMode === "skip" && this.engine ? j(0, (e) => this.engine.isHidden(e), this.slideCount) : 0;
1196
1199
  }
1197
1200
  _dim() {
1198
1201
  return {
1199
- color: this.opts.hiddenSlideDim?.color ?? ht.color,
1200
- opacity: this.opts.hiddenSlideDim?.opacity ?? ht.opacity
1202
+ color: this.opts.hiddenSlideDim?.color ?? gt.color,
1203
+ opacity: this.opts.hiddenSlideDim?.opacity ?? gt.opacity
1201
1204
  };
1202
1205
  }
1203
1206
  async setHiddenSlideMode(e) {
1204
1207
  this._hiddenMode = e;
1205
1208
  let t = this.currentSlide;
1206
- e === "skip" && this.engine && (t = N(this.currentSlide, (e) => this.engine.isHidden(e), this.slideCount));
1209
+ e === "skip" && this.engine && (t = j(this.currentSlide, (e) => this.engine.isHidden(e), this.slideCount));
1207
1210
  let n = t !== this.currentSlide;
1208
1211
  n && this._invalidateElementSelection(!1), this.currentSlide = t, await this.renderCurrentSlide(), n && !this.destroyed && this._emitSelectionContextChange();
1209
1212
  }
@@ -1213,7 +1216,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1213
1216
  get visibleSlideCount() {
1214
1217
  if (!this.engine) return 0;
1215
1218
  let e = this.engine;
1216
- return Ee((t) => e.isHidden(t), this.slideCount);
1219
+ return Oe((t) => e.isHidden(t), this.slideCount);
1217
1220
  }
1218
1221
  get slideIndex() {
1219
1222
  return this.currentSlide;
@@ -1229,7 +1232,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1229
1232
  }
1230
1233
  _naturalWidthPx() {
1231
1234
  let e = this.engine?.slideWidth ?? 0;
1232
- return e > 0 ? e / M : 0;
1235
+ return e > 0 ? e / A : 0;
1233
1236
  }
1234
1237
  _targetWidth() {
1235
1238
  if (this._scale === null) return this.opts.width ?? (this.canvas.offsetWidth || 960);
@@ -1248,14 +1251,14 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1248
1251
  return this.opts.zoomMax ?? 4;
1249
1252
  }
1250
1253
  async setScale(e) {
1251
- let t = ce(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1254
+ let t = se(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1252
1255
  this._scale = t, await this.renderCurrentSlide(), n && this.opts.onScaleChange?.(t);
1253
1256
  }
1254
1257
  async zoomIn() {
1255
- await this.setScale(A(this.getScale()));
1258
+ await this.setScale(ge(this.getScale()));
1256
1259
  }
1257
1260
  async zoomOut() {
1258
- await this.setScale(j(this.getScale()));
1261
+ await this.setScale(k(this.getScale()));
1259
1262
  }
1260
1263
  async fitWidth() {
1261
1264
  await this._fit("width");
@@ -1267,9 +1270,9 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1267
1270
  if (!this.engine) return;
1268
1271
  let t = this.wrapper.parentElement;
1269
1272
  if (!t) return;
1270
- let n = T({
1271
- contentWidth: this.engine.slideWidth / M,
1272
- contentHeight: this.engine.slideHeight / M,
1273
+ let n = re({
1274
+ contentWidth: this.engine.slideWidth / A,
1275
+ contentHeight: this.engine.slideHeight / A,
1273
1276
  containerWidth: t.clientWidth,
1274
1277
  containerHeight: t.clientHeight
1275
1278
  }, e);
@@ -1319,7 +1322,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1319
1322
  }
1320
1323
  _buildHighlightLayer(e, t, n) {
1321
1324
  let r = this.highlightLayer;
1322
- r && R(r, e, this._find.slideHighlights(this.currentSlide), t, n, (e) => this._measureForFont(e), this.opts.findHighlightColors);
1325
+ r && I(r, e, this._find.slideHighlights(this.currentSlide), t, n, (e) => this._measureForFont(e), this.opts.findHighlightColors);
1323
1326
  }
1324
1327
  _measureForFont(e) {
1325
1328
  this._measureCtx ||= document.createElement("canvas").getContext("2d");
@@ -1351,7 +1354,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1351
1354
  this._buildHighlightLayer(e, t, n);
1352
1355
  }
1353
1356
  _buildTextLayer(e, t, n, r) {
1354
- L(e, t, n, r, this._hyperlinkHandler(), this.currentSlide);
1357
+ F(e, t, n, r, this._hyperlinkHandler(), this.currentSlide);
1355
1358
  }
1356
1359
  _hyperlinkHandler() {
1357
1360
  if (this.opts.enableHyperlinks !== !1) return (e) => this._onHyperlinkClick(e);
@@ -1363,7 +1366,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1363
1366
  return;
1364
1367
  }
1365
1368
  if (t.kind === "external") {
1366
- h(t.url, void 0, this.hostWindow);
1369
+ _(t.url, void 0, this.hostWindow);
1367
1370
  return;
1368
1371
  }
1369
1372
  t.slideIndex !== void 0 && this.goToSlide(t.slideIndex).catch((e) => this._reportRenderError(e));
@@ -1385,7 +1388,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1385
1388
  }
1386
1389
  getSelectionContext(e = {}) {
1387
1390
  if (this.destroyed) throw Error("PptxViewer is destroyed");
1388
- return (this.textLayer ? Q(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? ut(this.elementContext, e.maxTextCharacters) : null);
1391
+ return (this.textLayer ? Z(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? dt(this.elementContext, e.maxTextCharacters) : null);
1389
1392
  }
1390
1393
  _emitSelectionContextChange() {
1391
1394
  let e = this.getSelectionContext();
@@ -1402,10 +1405,10 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1402
1405
  _redrawElementOutline() {
1403
1406
  let e = this.elementContext, t = this.engine;
1404
1407
  if (!e || !t || e.slideIndex !== this.currentSlide) {
1405
- D(this.elementLayer, null);
1408
+ E(this.elementLayer, null);
1406
1409
  return;
1407
1410
  }
1408
- D(this.elementLayer, {
1411
+ E(this.elementLayer, {
1409
1412
  x: e.bounds.x / t.slideWidth,
1410
1413
  y: e.bounds.y / t.slideHeight,
1411
1414
  width: e.bounds.width / t.slideWidth,
@@ -1426,7 +1429,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1426
1429
  async _resolveContextAt(e) {
1427
1430
  let t = this.engine;
1428
1431
  if (this.destroyed || !t) return null;
1429
- if (this.textLayer && Q(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
1432
+ if (this.textLayer && Z(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
1430
1433
  if (!this.opts.enableElementSelection) return this.getSelectionContext();
1431
1434
  let n = this.canvas.getBoundingClientRect();
1432
1435
  if (n.width <= 0 || n.height <= 0) return this._invalidateElementSelection(), null;
@@ -1439,7 +1442,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1439
1442
  try {
1440
1443
  c = await t.getElementContextAt(o, s, {
1441
1444
  tolerance: this.elementHitTolerance / n.width * t.slideWidth,
1442
- maxTextCharacters: Y
1445
+ maxTextCharacters: J
1443
1446
  });
1444
1447
  } catch (e) {
1445
1448
  if (this.destroyed || a !== this.elementHitGeneration || o !== this.currentSlide || t !== this.engine) return null;
@@ -1450,7 +1453,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1450
1453
  destroy() {
1451
1454
  this.destroyed || (this.destroyed = !0, this.errorRouter.close(), this.renderDispatcher.destroy(), c(this.canvas), this.handle?.destroy(), this.handle = null, this.presentationOwner.close(), this._find.invalidate(), 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());
1452
1455
  }
1453
- }, _t = 150, vt = "0 1px 3px rgba(0,0,0,0.2)", $ = Symbol("PptxScrollViewer.borrowedPresentation"), yt = class e {
1456
+ }, vt = 150, yt = "0 1px 3px rgba(0,0,0,0.2)", Q = Symbol("PptxScrollViewer.borrowedPresentation"), $ = class e {
1454
1457
  _presentationOwner;
1455
1458
  get _pres() {
1456
1459
  return this._presentationOwner.current;
@@ -1488,13 +1491,13 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1488
1491
  _prevBase = 0;
1489
1492
  _lastFitWidth = 0;
1490
1493
  _pageShadow;
1491
- _find = new z(() => this.slideCount, (e) => this._collectSlideRuns(e));
1494
+ _find = new L(() => this.slideCount, (e) => this._collectSlideRuns(e));
1492
1495
  _findActive = !1;
1493
1496
  _findMeasureCtx;
1494
1497
  static fromPresentation(t, n, r = {}) {
1495
1498
  return new e(t, {
1496
1499
  ...r,
1497
- [$]: n
1500
+ [Q]: n
1498
1501
  });
1499
1502
  }
1500
1503
  constructor(e, t = {}) {
@@ -1502,9 +1505,9 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1502
1505
  this._container = e, this._opts = t;
1503
1506
  let n = t.elementHitTolerance ?? 6;
1504
1507
  if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
1505
- this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? vt;
1506
- let r = t[$];
1507
- this._borrowed = r !== void 0, r ? (this._presentationOwner = new E("PptxScrollViewer", r, !1), this._mode = k("PptxScrollViewer", t.mode, r)) : (this._presentationOwner = new E("PptxScrollViewer"), this._mode = k("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), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
1508
+ this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? yt;
1509
+ let r = t[Q];
1510
+ this._borrowed = r !== void 0, r ? (this._presentationOwner = new T("PptxScrollViewer", r, !1), this._mode = O("PptxScrollViewer", t.mode, r)) : (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), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
1508
1511
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
1509
1512
  }, 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), this._opts.enableZoom !== !1 && (this._wheelListener = (e) => {
1510
1513
  if (!(e.ctrlKey || e.metaKey) || (e.preventDefault(), e.deltaY === 0)) return;
@@ -1520,7 +1523,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1520
1523
  if (this._borrowed) throw Error("PptxScrollViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
1521
1524
  let t = !1;
1522
1525
  try {
1523
- if (!await this._presentationOwner.replace(() => X.load(e, {
1526
+ if (!await this._presentationOwner.replace(() => Y.load(e, {
1524
1527
  password: this._opts.password,
1525
1528
  useGoogleFonts: this._opts.useGoogleFonts,
1526
1529
  maxZipEntryBytes: this._opts.maxZipEntryBytes,
@@ -1532,6 +1535,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1532
1535
  math: this._opts.math,
1533
1536
  threeD: this._opts.threeD,
1534
1537
  regionMap: this._opts.regionMap,
1538
+ chartEx: this._opts.chartEx,
1535
1539
  mode: this._mode
1536
1540
  }), (e) => {
1537
1541
  if (this._invalidateElementSelection(!1), t = !0, this._find.invalidate(), this._findActive = !1, e) {
@@ -1552,10 +1556,10 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1552
1556
  return this._pres?.slideCount ?? 0;
1553
1557
  }
1554
1558
  _slideWidthPx() {
1555
- return this._pres.slideWidth / M * this._scale;
1559
+ return this._pres.slideWidth / A * this._scale;
1556
1560
  }
1557
1561
  _slideHeightPx() {
1558
- return this._pres.slideHeight / M * this._scale;
1562
+ return this._pres.slideHeight / A * this._scale;
1559
1563
  }
1560
1564
  _fitWidthPx() {
1561
1565
  if (this._opts.width && this._opts.width > 0) return this._opts.width;
@@ -1566,7 +1570,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1566
1570
  }
1567
1571
  _baseScale() {
1568
1572
  if (!this._pres || this._pres.slideCount === 0) return 0;
1569
- let e = this._fitWidthPx(), t = this._pres.slideWidth / M;
1573
+ let e = this._fitWidthPx(), t = this._pres.slideWidth / A;
1570
1574
  return e <= 0 || t <= 0 ? 0 : e / t;
1571
1575
  }
1572
1576
  relayout() {
@@ -1622,10 +1626,10 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1622
1626
  return a;
1623
1627
  }
1624
1628
  _range() {
1625
- return P(this._heights, this._gap(), this._scrollHost.scrollTop, this._scrollHost.clientHeight, this._overscan(), this._pad());
1629
+ return M(this._heights, this._gap(), this._scrollHost.scrollTop, this._scrollHost.clientHeight, this._overscan(), this._pad());
1626
1630
  }
1627
1631
  _mediaRange() {
1628
- return P(this._heights, this._gap(), this._scrollHost.scrollTop, this._scrollHost.clientHeight, this._mediaOverscan(), this._pad());
1632
+ return M(this._heights, this._gap(), this._scrollHost.scrollTop, this._scrollHost.clientHeight, this._mediaOverscan(), this._pad());
1629
1633
  }
1630
1634
  _rangeContains(e, t) {
1631
1635
  return t >= e.start && t <= e.end;
@@ -1669,7 +1673,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1669
1673
  this._opts.enableTextSelection && (r = document.createElement("div"), r.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;user-select:text;-webkit-user-select:text;", t.appendChild(r));
1670
1674
  let i = document.createElement("div");
1671
1675
  i.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;", t.appendChild(i);
1672
- let a = fe(t, this._opts.enableElementSelection === !0);
1676
+ let a = de(t, this._opts.enableElementSelection === !0);
1673
1677
  return this._scrollHost.appendChild(t), {
1674
1678
  wrapper: t,
1675
1679
  canvas: n,
@@ -1678,7 +1682,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1678
1682
  elementLayer: a,
1679
1683
  renderedSlide: -1,
1680
1684
  renderedScale: -1,
1681
- dispatcher: new O(n, this._mode === "worker"),
1685
+ dispatcher: new D(n, this._mode === "worker"),
1682
1686
  presentationHandle: null,
1683
1687
  mediaInteractive: !1,
1684
1688
  renderGeneration: 0,
@@ -1686,7 +1690,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1686
1690
  };
1687
1691
  }
1688
1692
  _recycleSlot(e, t) {
1689
- 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 O(t.canvas, this._mode === "worker")), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", D(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
1693
+ 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")), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", E(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
1690
1694
  }
1691
1695
  _positionSlot(e, t, n) {
1692
1696
  e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${n.offsets[t]}px`;
@@ -1710,7 +1714,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1710
1714
  dpr: a,
1711
1715
  onTextRun: m
1712
1716
  }).then(() => {
1713
- 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 && L(t.textLayer, d, Math.round(o), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), p && this._refreshFindRuns(e, d), this._redrawSlotHighlights(e, t));
1717
+ 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 && F(t.textLayer, d, Math.round(o), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), p && this._refreshFindRuns(e, d), this._redrawSlotHighlights(e, t));
1714
1718
  }).catch((n) => {
1715
1719
  if (i === t.renderGeneration && l.isCurrent(u) && h === t.canvas && s === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e) if (r) this._reportRenderError(n);
1716
1720
  else throw n;
@@ -1733,7 +1737,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1733
1737
  r.destroy();
1734
1738
  return;
1735
1739
  }
1736
- t.presentationHandle = r, t.renderedScale = i, l && t.textLayer && L(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), u && this._refreshFindRuns(e, c), this._redrawSlotHighlights(e, t);
1740
+ t.presentationHandle = r, t.renderedScale = i, l && t.textLayer && F(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), u && this._refreshFindRuns(e, c), this._redrawSlotHighlights(e, t);
1737
1741
  }).catch((e) => {
1738
1742
  if (s === t.presentationGeneration) if (o) this._reportRenderError(e);
1739
1743
  else throw e;
@@ -1769,7 +1773,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1769
1773
  cssWidth: Math.round(c.width / r),
1770
1774
  cssHeight: Math.round(c.height / r)
1771
1775
  })) return;
1772
- t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", f && L(t.textLayer, m, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), p && this._refreshFindRuns(e, m), this._redrawSlotHighlights(e, t), d = !0;
1776
+ t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", f && F(t.textLayer, m, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), p && this._refreshFindRuns(e, m), this._redrawSlotHighlights(e, t), d = !0;
1773
1777
  } catch (n) {
1774
1778
  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);
1775
1779
  else throw n;
@@ -1790,12 +1794,12 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1790
1794
  f = Math.min(1, Math.max(0, f));
1791
1795
  let p = this._padH().left, m = this._scrollHost.scrollLeft || 0;
1792
1796
  this._renderEpoch++, this._scale = r, this._recomputeHeights();
1793
- let h = P(this._heights, this._gap(), 0, this._scrollHost.clientHeight, this._overscan(), this._pad());
1797
+ let h = M(this._heights, this._gap(), 0, this._scrollHost.clientHeight, this._overscan(), this._pad());
1794
1798
  this._spacer.style.height = `${h.totalHeight}px`, this._syncSpacerWidth();
1795
1799
  let g = Math.max(0, h.totalHeight - this._scrollHost.clientHeight), _ = (h.offsets[u] ?? 0) + f * (this._heights[u] || 0), v = l < (s.offsets[0] ?? 0) ? c : _ - o;
1796
1800
  if (this._scrollHost.scrollTop = Math.min(g, Math.max(0, v)), i) {
1797
1801
  let e = Math.max(0, (this._spacer.offsetWidth || 0) - this._scrollHost.clientWidth);
1798
- this._scrollHost.scrollLeft = ae(m, i.x - p, a, r, { maxScroll: e });
1802
+ this._scrollHost.scrollLeft = ie(m, i.x - p, a, r, { maxScroll: e });
1799
1803
  }
1800
1804
  this._previewVisible(), this._scheduleSettle(), this._opts.onScaleChange?.(r);
1801
1805
  }
@@ -1803,10 +1807,10 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1803
1807
  return this._scaleEstablished ? this._scale : this._pendingScale ?? 1;
1804
1808
  }
1805
1809
  zoomIn() {
1806
- this.setScale(A(this.getScale()));
1810
+ this.setScale(ge(this.getScale()));
1807
1811
  }
1808
1812
  zoomOut() {
1809
- this.setScale(j(this.getScale()));
1813
+ this.setScale(k(this.getScale()));
1810
1814
  }
1811
1815
  fitWidth() {
1812
1816
  this._fit("width");
@@ -1816,9 +1820,9 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1816
1820
  }
1817
1821
  _fit(e) {
1818
1822
  if (!this._pres || this._pres.slideCount === 0) return;
1819
- let t = T({
1820
- contentWidth: this._pres.slideWidth / M,
1821
- contentHeight: this._pres.slideHeight / M,
1823
+ let t = re({
1824
+ contentWidth: this._pres.slideWidth / A,
1825
+ contentHeight: this._pres.slideHeight / A,
1822
1826
  containerWidth: this._fitWidthPx(),
1823
1827
  containerHeight: this._scrollHost.clientHeight
1824
1828
  }, e);
@@ -1848,7 +1852,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1848
1852
  _scheduleSettle() {
1849
1853
  this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
1850
1854
  this._settleTimer = null, this._settleRender();
1851
- }, _t);
1855
+ }, vt);
1852
1856
  }
1853
1857
  _settleRender() {
1854
1858
  if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
@@ -1869,7 +1873,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1869
1873
  }
1870
1874
  let o = document.createElement("canvas"), s = ++t.renderGeneration;
1871
1875
  o.style.cssText = "display:block;background:#fff;", this._applyPageShadow(o);
1872
- let c = new O(o, !1), l = c.begin(), u = [], d = !!this._opts.enableTextSelection && !!t.textLayer, f = d || this._findActive, p = f ? (e) => u.push(e) : void 0;
1876
+ let c = new D(o, !1), l = c.begin(), u = [], d = !!this._opts.enableTextSelection && !!t.textLayer, f = d || this._findActive, p = f ? (e) => u.push(e) : void 0;
1873
1877
  this._pres.renderSlide(o, e, {
1874
1878
  width: r,
1875
1879
  dpr: n,
@@ -1880,7 +1884,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1880
1884
  return;
1881
1885
  }
1882
1886
  let n = t.canvas;
1883
- 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 && L(t.textLayer, u, Math.round(r), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), f && this._refreshFindRuns(e, u), this._redrawSlotHighlights(e, t);
1887
+ 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 && F(t.textLayer, u, Math.round(r), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), f && this._refreshFindRuns(e, u), this._redrawSlotHighlights(e, t);
1884
1888
  }).catch((n) => {
1885
1889
  s === t.renderGeneration && c.isCurrent(l) && a === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e && this._reportRenderError(n), c.destroy();
1886
1890
  });
@@ -1903,14 +1907,14 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1903
1907
  return;
1904
1908
  }
1905
1909
  let d = t.canvas, f = t.presentationHandle;
1906
- t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new O(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l && L(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._redrawSlotHighlights(e, t);
1910
+ 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 && F(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._redrawSlotHighlights(e, t);
1907
1911
  }).catch((e) => {
1908
1912
  o === t.presentationGeneration && this._reportRenderError(e);
1909
1913
  });
1910
1914
  }
1911
1915
  scrollToSlide(e, t) {
1912
1916
  if (!this._pres || this._pres.slideCount === 0 || !this._scaleEstablished) return;
1913
- let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r = P(this._heights, this._gap(), 0, this._scrollHost.clientHeight, this._overscan(), this._pad()), i = r.offsets[n] ?? 0, a = Math.max(0, r.totalHeight - this._scrollHost.clientHeight), o = Math.min(a, Math.max(0, i)), s = this._scrollHost;
1917
+ let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r = M(this._heights, this._gap(), 0, this._scrollHost.clientHeight, this._overscan(), this._pad()), i = r.offsets[n] ?? 0, a = Math.max(0, r.totalHeight - this._scrollHost.clientHeight), o = Math.min(a, Math.max(0, i)), s = this._scrollHost;
1914
1918
  typeof s.scrollTo == "function" ? s.scrollTo({
1915
1919
  top: o,
1916
1920
  behavior: t?.behavior ?? "auto"
@@ -1953,7 +1957,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1953
1957
  t.highlightLayer.innerHTML = "";
1954
1958
  return;
1955
1959
  }
1956
- R(t.highlightLayer, n, this._find.slideHighlights(e), this._slideWidthPx(), this._slideHeightPx(), (e) => this._measureForFind(e), this._opts.findHighlightColors);
1960
+ I(t.highlightLayer, n, this._find.slideHighlights(e), this._slideWidthPx(), this._slideHeightPx(), (e) => this._measureForFind(e), this._opts.findHighlightColors);
1957
1961
  }
1958
1962
  _measureForFind(e) {
1959
1963
  this._findMeasureCtx === void 0 && (this._findMeasureCtx = document.createElement("canvas").getContext("2d"));
@@ -1970,7 +1974,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
1970
1974
  return;
1971
1975
  }
1972
1976
  if (t.kind === "external") {
1973
- h(t.url);
1977
+ _(t.url);
1974
1978
  return;
1975
1979
  }
1976
1980
  t.slideIndex !== void 0 && this.scrollToSlide(t.slideIndex);
@@ -2041,7 +2045,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
2041
2045
  }
2042
2046
  getSelectionContext(e = {}) {
2043
2047
  if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
2044
- return (this._opts.enableTextSelection ? Q(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? ut(this._elementContext, e.maxTextCharacters) : null);
2048
+ return (this._opts.enableTextSelection ? Z(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? dt(this._elementContext, e.maxTextCharacters) : null);
2045
2049
  }
2046
2050
  _emitSelectionContextChange() {
2047
2051
  let e = this.getSelectionContext();
@@ -2061,10 +2065,10 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
2061
2065
  _redrawElementOutlineForSlot(e, t) {
2062
2066
  let n = this._elementContext, r = this._pres;
2063
2067
  if (!n || !r || n.slideIndex !== e) {
2064
- D(t.elementLayer, null);
2068
+ E(t.elementLayer, null);
2065
2069
  return;
2066
2070
  }
2067
- D(t.elementLayer, {
2071
+ E(t.elementLayer, {
2068
2072
  x: n.bounds.x / r.slideWidth,
2069
2073
  y: n.bounds.y / r.slideHeight,
2070
2074
  width: n.bounds.width / r.slideWidth,
@@ -2085,7 +2089,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
2085
2089
  async _resolveContextAt(e) {
2086
2090
  let t = this._pres;
2087
2091
  if (this._destroyed || !t) return null;
2088
- if (this._opts.enableTextSelection && Q(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
2092
+ if (this._opts.enableTextSelection && Z(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
2089
2093
  if (!this._opts.enableElementSelection) return this.getSelectionContext();
2090
2094
  let n = e.target, r = [...this._slots].find(([, e]) => n !== null && e.wrapper.contains(n));
2091
2095
  if (!r) return this._invalidateElementSelection(), null;
@@ -2100,7 +2104,7 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
2100
2104
  try {
2101
2105
  d = await t.getElementContextAt(i, u, {
2102
2106
  tolerance: this._elementHitTolerance / o.width * t.slideWidth,
2103
- maxTextCharacters: Y
2107
+ maxTextCharacters: J
2104
2108
  });
2105
2109
  } catch (e) {
2106
2110
  if (this._destroyed || l !== this._elementHitGeneration || t !== this._pres) return null;
@@ -2116,19 +2120,19 @@ var mt = Symbol("PptxViewer.borrowedPresentation"), ht = {
2116
2120
  }
2117
2121
  }
2118
2122
  }, bt = /* @__PURE__ */ e({
2119
- OoxmlDecodedImageLimitError: () => m,
2120
- OoxmlError: () => _,
2121
- OoxmlResourceLimitError: () => x,
2122
- PptxPresentation: () => X,
2123
- PptxScrollViewer: () => yt,
2124
- PptxViewer: () => gt,
2123
+ OoxmlDecodedImageLimitError: () => we,
2124
+ OoxmlError: () => m,
2125
+ OoxmlResourceLimitError: () => g,
2126
+ PptxPresentation: () => Y,
2127
+ PptxScrollViewer: () => $,
2128
+ PptxViewer: () => _t,
2125
2129
  autoResize: () => _e,
2126
- buildPptxHighlightLayer: () => R,
2127
- buildPptxTextLayer: () => L,
2128
- isOoxmlDecodedImageLimitError: () => ee,
2129
- openExternalHyperlink: () => h,
2130
- readPptxTextSelectionContext: () => Q,
2130
+ buildPptxHighlightLayer: () => I,
2131
+ buildPptxTextLayer: () => F,
2132
+ isOoxmlDecodedImageLimitError: () => Ce,
2133
+ openExternalHyperlink: () => _,
2134
+ readPptxTextSelectionContext: () => Z,
2131
2135
  renderSlide: () => n
2132
2136
  });
2133
2137
  //#endregion
2134
- export { X as a, Q as i, yt as n, R as o, gt as r, L as s, bt as t };
2138
+ export { Y as a, Z as i, $ as n, I as o, _t as r, F as s, bt as t };