@silurus/ooxml 0.86.1 → 0.87.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 (65) hide show
  1. package/README.md +42 -2
  2. package/dist/assets/render-worker-CeK_iqK3.js +10 -0
  3. package/dist/assets/render-worker-DusrDhPk.js +11 -0
  4. package/dist/assets/render-worker-n2ZG0lrQ.js +31 -0
  5. package/dist/{canvas-viewer-mechanics-DN5SqWGS.js → canvas-viewer-mechanics-Cpk0YFvM.js} +74 -65
  6. package/dist/chart-ex.mjs +1 -1
  7. package/dist/cjk-fallback-bLI3z70h.js +46 -0
  8. package/dist/{comment-ui-runtime-lXwVOgjW.js → comment-ui-runtime-BfE7MJZn.js} +4 -4
  9. package/dist/comment-ui-runtime-BsK8pmUT.js +2 -0
  10. package/dist/{comment-ui-runtime-DEtgcmj7.js → comment-ui-runtime-DcJOYlw-.js} +5 -5
  11. package/dist/{comments-CAn2A_Xh.js → comments-Diid5ujN.js} +1 -1
  12. package/dist/{document-pull-client-uopDjRde.js → document-pull-client-yKxI8aDH.js} +4588 -4545
  13. package/dist/{docx-wPzeF76A.js → docx-BkSRiy07.js} +318 -311
  14. package/dist/docx.mjs +5 -5
  15. package/dist/docx_parser_bg.wasm +0 -0
  16. package/dist/{dom-interaction-boundary-CswB9Tzi.js → dom-interaction-boundary-CBUQJsIM.js} +22 -19
  17. package/dist/{hyperlink-BR1NCO7S.js → hyperlink-ArrU3ArU.js} +771 -757
  18. package/dist/index.mjs +3 -3
  19. package/dist/{line-distribute-IsUGfHXm.js → line-distribute-Dtudnqhs.js} +1 -1
  20. package/dist/math.mjs +2 -2
  21. package/dist/node.mjs +356 -352
  22. package/dist/{pptx-BxJ_RBSY.js → pptx-62MmVbYB.js} +442 -435
  23. package/dist/pptx.mjs +7 -7
  24. package/dist/pptx_parser_bg.wasm +0 -0
  25. package/dist/region-map.mjs +1 -1
  26. package/dist/{render-DEiun_AH.js → render-8Zo7dnds.js} +31 -29
  27. package/dist/{render-worker-host-Ba6Fchqr.js → render-worker-host-BfbnEChF.js} +1 -1
  28. package/dist/{render-worker-host-BEfLZvSL.js → render-worker-host-DNL9dWRh.js} +1 -1
  29. package/dist/{render-worker-host-C3xwtHnv.js → render-worker-host-IkHrYOci.js} +1 -1
  30. package/dist/{resource-measurement-CclArDRs.js → resource-measurement-CJsgolre.js} +1 -1
  31. package/dist/{session-BuJL_xcp.js → session-CrU8f8DI.js} +98 -98
  32. package/dist/{slide-pull-client-Ck8wfRT_.js → slide-pull-client-B9KA8bU6.js} +773 -744
  33. package/dist/three-d.mjs +1 -1
  34. package/dist/tiff.mjs +1 -1
  35. package/dist/types/chart-ex.d.ts +2 -2
  36. package/dist/types/docx.d.ts +15 -11
  37. package/dist/types/index.d.ts +23 -17
  38. package/dist/types/math.d.ts +1 -1
  39. package/dist/types/node.d.ts +12 -6
  40. package/dist/types/pptx.d.ts +15 -11
  41. package/dist/types/region-map.d.ts +2 -2
  42. package/dist/types/three-d.d.ts +2 -2
  43. package/dist/types/tiff.d.ts +1 -1
  44. package/dist/types/xlsx.d.ts +15 -11
  45. package/dist/{worksheet-pull-client-CAvuf22q.js → worksheet-pull-client-eIcQ-xlD.js} +51 -51
  46. package/dist/{xlsx-Bblm5r1h.js → xlsx-CRcSzZNq.js} +1589 -1563
  47. package/dist/xlsx.mjs +5 -5
  48. package/dist/xlsx_parser_bg.wasm +0 -0
  49. package/package.json +1 -1
  50. package/dist/assets/render-worker-D21h5TGR.js +0 -10
  51. package/dist/assets/render-worker-Dsfekaht.js +0 -11
  52. package/dist/assets/render-worker-DxU7IrKo.js +0 -31
  53. package/dist/comment-ui-runtime-TLHustXJ.js +0 -2
  54. /package/dist/{bounded-raw-part-cache-BfbSxRIL.js → bounded-raw-part-cache-Cg1BsSZQ.js} +0 -0
  55. /package/dist/{comment-occurrence-CqejEuts.js → comment-occurrence-C8Y2uoVr.js} +0 -0
  56. /package/dist/{delimited-text-worker-host-DcHj_JZt.js → delimited-text-worker-host-BVY-Ecni.js} +0 -0
  57. /package/dist/{highlight-rect-FuUSmL3a.js → highlight-rect-C5hkRqUr.js} +0 -0
  58. /package/dist/{line-metrics-CBbw80Ko.js → line-metrics-B60C86uh.js} +0 -0
  59. /package/dist/{mathjax-DS69BmJd.js → mathjax-DoyWZbSp.js} +0 -0
  60. /package/dist/{read-only-comment-decoration-BTnWEeo5.js → read-only-comment-decoration-Dz7eTQ4d.js} +0 -0
  61. /package/dist/{read-only-comment-margin-plStyGfE.js → read-only-comment-margin-DkgzASAl.js} +0 -0
  62. /package/dist/{renderer-module-contract-Cu-GKuPd.js → renderer-module-contract-D91rkYHH.js} +0 -0
  63. /package/dist/{source-key-Ktb1GRE5.js → source-key-DIJG8BA0.js} +0 -0
  64. /package/dist/{transfer-mIj7E7NB.js → transfer-p6iCC2R7.js} +0 -0
  65. /package/dist/{visible-index-DPoQYSDt.js → visible-index-BgiHEc1z.js} +0 -0
@@ -1,32 +1,33 @@
1
1
  import { t as e } from "./chunk-DmhlhrBa.js";
2
- import { a as t, c as n, d as r, f as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./slide-pull-client-Ck8wfRT_.js";
3
- import { $ as p, Jt as m, L as h, R as g, U as _, W as v, Zt as y, _t as b, cn as x, et as S, ft as C, lt as w, r as T, sn as ee, z as te } from "./hyperlink-BR1NCO7S.js";
4
- import { C as ne, D as re, M as ie, N as ae, O as oe, S as se, T as ce, _ as le, a as E, b as ue, c as D, d as de, f as fe, g as pe, h as me, i as O, l as k, m as he, n as ge, o as _e, p as ve, r as ye, s as be, t as xe, v as Se, w as Ce, x as we, y as A } from "./canvas-viewer-mechanics-DN5SqWGS.js";
5
- import { a as Te, d as j, i as Ee, n as De, r as Oe, t as ke, u as Ae } from "./dom-interaction-boundary-CswB9Tzi.js";
6
- import { l as je, s as Me } from "./pixel-budget-Dgjw269h.js";
7
- import { i as M } from "./units-EJdC96r6.js";
8
- import { i as Ne, s as Pe } from "./raster-target-ojDdQizC.js";
9
- import { n as Fe } from "./resource-measurement-CclArDRs.js";
10
- import { n as Ie } from "./renderer-module-contract-Cu-GKuPd.js";
11
- import { t as Le } from "./visible-index-DPoQYSDt.js";
12
- import { n as Re, t as N } from "./highlight-rect-FuUSmL3a.js";
13
- import { n as ze, t as Be } from "./bounded-raw-part-cache-BfbSxRIL.js";
14
- import { t as P } from "./comment-occurrence-CqejEuts.js";
2
+ import { $ as t, $t as n, L as r, R as i, U as a, W as o, Xt as s, _t as c, et as l, ft as u, ln as d, lt as f, r as p, un as m, z as h } from "./hyperlink-ArrU3ArU.js";
3
+ import { C as g, D as _, M as v, N as y, O as b, S as x, T as S, _ as C, a as w, b as ee, c as T, d as te, f as ne, g as re, h as ie, i as E, l as D, m as ae, n as oe, o as se, p as ce, r as le, s as ue, t as de, v as fe, w as pe, x as me, y as he } from "./canvas-viewer-mechanics-Cpk0YFvM.js";
4
+ import { a as ge, c as _e, d as ve, f as O, i as ye, n as be, r as xe, t as Se } from "./dom-interaction-boundary-CBUQJsIM.js";
5
+ import { n as Ce } from "./cjk-fallback-bLI3z70h.js";
6
+ import { l as we, s as Te } from "./pixel-budget-Dgjw269h.js";
7
+ import { i as k } from "./units-EJdC96r6.js";
8
+ import { i as Ee, s as De } from "./raster-target-ojDdQizC.js";
9
+ import { n as Oe } from "./resource-measurement-CJsgolre.js";
10
+ import { a as A, c as ke, d as j, f as Ae, i as je, l as Me, n as Ne, o as M, r as Pe, s as Fe, t as Ie, u as Le } from "./slide-pull-client-B9KA8bU6.js";
11
+ import { n as Re } from "./renderer-module-contract-D91rkYHH.js";
12
+ import { t as ze } from "./visible-index-BgiHEc1z.js";
13
+ import { n as Be, t as N } from "./highlight-rect-C5hkRqUr.js";
14
+ import { n as Ve, t as He } from "./bounded-raw-part-cache-Cg1BsSZQ.js";
15
+ import { t as P } from "./comment-occurrence-C8Y2uoVr.js";
15
16
  //#region packages/core/src/nav/internal-target.ts
16
- function Ve(e, t) {
17
+ function Ue(e, t) {
17
18
  let n = t.startsWith("/") ? [] : e.split("/").filter((e) => e !== "");
18
19
  for (let e of t.split("/")) if (e === "..") n.pop();
19
20
  else if (e === "." || e === "") continue;
20
21
  else n.push(e);
21
22
  return n.join("/");
22
23
  }
23
- function He(e) {
24
+ function We(e) {
24
25
  let t = /[?&]jump=([a-zA-Z]+)/.exec(e);
25
26
  if (!t) return null;
26
27
  let n = t[1].toLowerCase();
27
28
  return n === "firstslide" || n === "lastslide" || n === "nextslide" || n === "previousslide" ? n : null;
28
29
  }
29
- function Ue(e, t, n) {
30
+ function Ge(e, t, n) {
30
31
  if (!(n <= 0)) switch (e) {
31
32
  case "firstslide": return 0;
32
33
  case "lastslide": return n - 1;
@@ -36,13 +37,13 @@ function Ue(e, t, n) {
36
37
  }
37
38
  //#endregion
38
39
  //#region packages/pptx/src/run-frame-transform.ts
39
- function We(e) {
40
+ function Ke(e) {
40
41
  let t = e.textBodyRotation ?? 0, n = e.shapeFlipH === !0, r = e.shapeFlipV === !0;
41
42
  if (n || r) return `rotate(${e.rotation}deg) scale(${n ? -1 : 1}, ${r ? -1 : 1})` + (t === 0 ? "" : ` rotate(${t}deg)`);
42
43
  let i = e.rotation + t;
43
44
  return i === 0 ? "" : `rotate(${i}deg)`;
44
45
  }
45
- function Ge(e, t) {
46
+ function qe(e, t) {
46
47
  return `${e.shapeX},${e.shapeY},${e.shapeW},${e.shapeH},` + t;
47
48
  }
48
49
  //#endregion
@@ -54,7 +55,7 @@ function I(e, t, n, r, i, a) {
54
55
  e.innerHTML = "", F(e, "ooxmlSelectionSurface", "pptx"), F(e, "slideIndex", a === void 0 ? void 0 : String(a));
55
56
  let o = /* @__PURE__ */ new Map(), s = e.ownerDocument ?? document;
56
57
  for (let [a, c] of t.entries()) {
57
- let t = We(c), l = Ge(c, t), u = o.get(l);
58
+ let t = Ke(c), l = qe(c, t), u = o.get(l);
58
59
  if (!u) {
59
60
  let i = s.createElement("div");
60
61
  i.style.cssText = `position:absolute;left:${N(c.shapeX, n)};top:${N(c.shapeY, r)};width:${N(c.shapeW, n)};height:${N(c.shapeH, r)};pointer-events:all;overflow:visible;`, t && (i.style.transformOrigin = "center center", i.style.transform = t), u = {
@@ -74,7 +75,7 @@ function I(e, t, n, r, i, a) {
74
75
  function L(e, t, n, r, i, a, o = {}) {
75
76
  e.innerHTML = "";
76
77
  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) => {
77
- let n = We(t), a = Ge(t, n), o = l.get(a);
78
+ let n = Ke(t), a = qe(t, n), o = l.get(a);
78
79
  if (!o) {
79
80
  let s = document.createElement("div");
80
81
  s.style.cssText = `position:absolute;left:${N(t.shapeX, r)};top:${N(t.shapeY, i)};width:${N(t.shapeW, r)};height:${N(t.shapeH, i)};pointer-events:none;overflow:hidden;`, n && (s.style.transformOrigin = "center center", s.style.transform = n), o = {
@@ -90,7 +91,7 @@ function L(e, t, n, r, i, a, o = {}) {
90
91
  for (let r of e.slices) {
91
92
  let e = t[r.runIndex];
92
93
  if (!e) continue;
93
- let i = a(e.font), { x: o, width: s } = Re(e.text, r.start, r.end, i);
94
+ let i = a(e.font), { x: o, width: s } = Be(e.text, r.start, r.end, i);
94
95
  if (s <= 0) continue;
95
96
  let c = u(e), l = document.createElement("div");
96
97
  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);
@@ -99,18 +100,18 @@ function L(e, t, n, r, i, a, o = {}) {
99
100
  }
100
101
  //#endregion
101
102
  //#region packages/pptx/src/find.ts
102
- function Ke(e, t) {
103
+ function Je(e, t) {
103
104
  let n = e.tableCell, r = t.tableCell;
104
105
  return !n && !r ? !0 : !n || !r ? !1 : e.elementIndex === t.elementIndex && e.origin === t.origin && e.shapeId === t.shapeId && n.row === r.row && n.column === r.column;
105
106
  }
106
- function qe(e, t) {
107
+ function Ye(e, t) {
107
108
  for (let n = 1; n < t.length; n++) {
108
109
  let r = e[t[n - 1].runIndex], i = e[t[n].runIndex];
109
- if (!r || !i || !Ke(r, i)) return !1;
110
+ if (!r || !i || !Je(r, i)) return !1;
110
111
  }
111
112
  return !0;
112
113
  }
113
- var Je = class {
114
+ var Xe = class {
114
115
  _slideRuns = /* @__PURE__ */ new Map();
115
116
  _matches = [];
116
117
  _active = -1;
@@ -170,9 +171,9 @@ var Je = class {
170
171
  if (n !== this._generation) return [];
171
172
  let o = r === this._runsRevision ? i : new Map([...i, ...this._slideRuns]), s = [];
172
173
  for (let n = 0; n < a; n++) {
173
- let r = o.get(n) ?? [], i = he(r);
174
- for (let a of me(i, e, t)) {
175
- if (!qe(r, a.slices)) continue;
174
+ let r = o.get(n) ?? [], i = ae(r);
175
+ for (let a of ie(i, e, t)) {
176
+ if (!Ye(r, a.slices)) continue;
176
177
  let e = a.slices.map((e) => r[e.runIndex].text.slice(e.start, e.end)).join("");
177
178
  s.push({
178
179
  slide: n,
@@ -184,10 +185,10 @@ var Je = class {
184
185
  return this._runsRevision++, this._slideRuns = o, this._matches = s, this._active = -1, this.matches();
185
186
  }
186
187
  next() {
187
- return this._active = fe(this._active, this._matches.length), this._activePublic();
188
+ return this._active = ne(this._active, this._matches.length), this._activePublic();
188
189
  }
189
190
  prev() {
190
- return this._active = ve(this._active, this._matches.length), this._activePublic();
191
+ return this._active = ce(this._active, this._matches.length), this._activePublic();
191
192
  }
192
193
  _activePublic() {
193
194
  let e = this._matches[this._active];
@@ -197,22 +198,22 @@ var Je = class {
197
198
  location: { slide: e.slide }
198
199
  } : null;
199
200
  }
200
- }, Ye = (e) => e >= "0" && e <= "9";
201
- function Xe(e) {
201
+ }, Ze = (e) => e >= "0" && e <= "9";
202
+ function Qe(e) {
202
203
  let t = 0;
203
204
  for (let n = 0; n < 10; n++) t = Math.max(t, e.measureText(String(n)).width);
204
205
  return t;
205
206
  }
206
- function Ze(e, t, n) {
207
+ function $e(e, t, n) {
207
208
  let r = 0;
208
- for (let i of t) r += Ye(i) ? n : e.measureText(i).width;
209
+ for (let i of t) r += Ze(i) ? n : e.measureText(i).width;
209
210
  return r;
210
211
  }
211
- function Qe(e, t, n, r, i) {
212
+ function et(e, t, n, r, i) {
212
213
  let a = e.textAlign;
213
214
  e.textAlign = "left";
214
215
  let o = n;
215
- for (let n of t) if (Ye(n)) {
216
+ for (let n of t) if (Ze(n)) {
216
217
  let t = e.measureText(n).width;
217
218
  e.fillText(n, o + (i - t) / 2, r), o += i;
218
219
  } else e.fillText(n, o, r), o += e.measureText(n).width;
@@ -220,39 +221,39 @@ function Qe(e, t, n, r, i) {
220
221
  }
221
222
  //#endregion
222
223
  //#region packages/pptx/src/presentation-handle.ts
223
- var R = (e, t) => e / M * t;
224
- async function $e(e, t, n) {
224
+ var R = (e, t) => e / k * t;
225
+ async function tt(e, t, n) {
225
226
  let r = e.getContext("2d");
226
227
  if (!r) throw Error("2D context not available");
227
- let a = n.width / (n.slideWidthEmu / M);
228
+ let i = n.width / (n.slideWidthEmu / k);
228
229
  await n.drawBase();
229
- let o = document.createElement("canvas");
230
- o.width = e.width, o.height = e.height;
231
- let s = o.getContext("2d");
232
- if (!s) throw Error("base 2D context not available");
233
- s.drawImage(e, 0, 0);
234
- let c = [], l = !1, u = () => {
235
- for (let e of c) {
230
+ let a = document.createElement("canvas");
231
+ a.width = e.width, a.height = e.height;
232
+ let o = a.getContext("2d");
233
+ if (!o) throw Error("base 2D context not available");
234
+ o.drawImage(e, 0, 0);
235
+ let s = [], c = !1, l = () => {
236
+ for (let e of s) {
236
237
  e.detachListeners(), e.media.pause(), e.media.removeAttribute("src");
237
238
  try {
238
239
  e.media.load();
239
240
  } catch {}
240
241
  URL.revokeObjectURL(e.objectUrl);
241
242
  }
242
- c.length = 0;
243
- }, d = (e) => {
244
- l || (n.onError ? n.onError(e) : console.error("[ooxml] PPTX embedded media failed:", e));
243
+ s.length = 0;
244
+ }, u = (e) => {
245
+ c || (n.onError ? n.onError(e) : console.error("[ooxml] PPTX embedded media failed:", e));
245
246
  };
246
247
  for (let e of t) {
247
248
  let t;
248
249
  try {
249
250
  t = await n.fetchMedia(e.mediaPath);
250
251
  } catch (t) {
251
- throw u(), nt(e, t);
252
+ throw l(), it(e, t);
252
253
  }
253
- let r = e.mimeType || t.type, i = t.type === r ? t : new Blob([t], { type: r }), o = URL.createObjectURL(i), s = e.mediaKind === "video" ? document.createElement("video") : document.createElement("audio");
254
- s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
255
- let f = et(e, a), p = {
254
+ let r = e.mimeType || t.type, a = t.type === r ? t : new Blob([t], { type: r }), o = URL.createObjectURL(a), d = e.mediaKind === "video" ? document.createElement("video") : document.createElement("audio");
255
+ d.src = o, d.preload = "metadata", e.mediaKind === "video" && (d.playsInline = !0);
256
+ let f = nt(e, i), p = {
256
257
  el: e,
257
258
  rect: e.mediaKind === "audio" ? {
258
259
  x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
@@ -261,57 +262,57 @@ async function $e(e, t, n) {
261
262
  h: f.h + 36
262
263
  } : f,
263
264
  posterRect: f,
264
- media: s,
265
+ media: d,
265
266
  objectUrl: o,
266
267
  loadState: "loading",
267
268
  detachListeners: () => {}
268
269
  }, m = () => {
269
- l || (p.loadState = "metadata");
270
+ c || (p.loadState = "metadata");
270
271
  }, h = () => {
271
- l || (p.loadState = "ready");
272
+ c || (p.loadState = "ready");
272
273
  }, g = () => {
273
- l || (p.loadState = "error", d(z(e, s, "decode")));
274
+ c || (p.loadState = "error", u(z(e, d, "decode")));
274
275
  };
275
- s.addEventListener("loadedmetadata", m), s.addEventListener("canplay", h), s.addEventListener("error", g), p.detachListeners = () => {
276
- s.removeEventListener("loadedmetadata", m), s.removeEventListener("canplay", h), s.removeEventListener("error", g);
277
- }, c.push(p);
276
+ d.addEventListener("loadedmetadata", m), d.addEventListener("canplay", h), d.addEventListener("error", g), p.detachListeners = () => {
277
+ d.removeEventListener("loadedmetadata", m), d.removeEventListener("canplay", h), d.removeEventListener("error", g);
278
+ }, s.push(p);
278
279
  try {
279
- s.load();
280
+ d.load();
280
281
  } catch (t) {
281
- let n = z(e, s, "load", t);
282
- throw u(), n;
282
+ let n = z(e, d, "load", t);
283
+ throw l(), n;
283
284
  }
284
285
  }
285
- let f = null, p = null, m = () => {
286
- r.setTransform(e.width / n.width, 0, 0, e.height / n.height, 0, 0), r.drawImage(o, 0, 0, e.width, e.height, 0, 0, n.width, n.height);
287
- for (let e of c) {
286
+ let d = null, f = null, p = () => {
287
+ r.setTransform(e.width / n.width, 0, 0, e.height / n.height, 0, 0), r.drawImage(a, 0, 0, e.width, e.height, 0, 0, n.width, n.height);
288
+ for (let e of s) {
288
289
  let t = e.media;
289
290
  if (e.loadState !== "loading") {
290
291
  if (e.loadState === "error") {
291
- tt(r, e.posterRect, "Media unavailable");
292
+ rt(r, e.posterRect, "Media unavailable");
292
293
  continue;
293
294
  }
294
295
  if (e.el.mediaKind === "video" && t.readyState >= 2) {
295
296
  let { x: n, y: i, w: a, h: o } = e.posterRect;
296
297
  r.drawImage(t, n, i, a, o);
297
298
  }
298
- if (e === p || v?.state === e) st(r, e, t);
299
+ if (e === f || _?.state === e) lt(r, e, t);
299
300
  else if (t.paused) {
300
- let { x: t, y: n, w: a, h: o } = e.posterRect;
301
- i(r, t + a / 2, n + o / 2, a, o, "paused");
301
+ let { x: t, y: n, w: i, h: a } = e.posterRect;
302
+ j(r, t + i / 2, n + a / 2, i, a, "paused");
302
303
  }
303
304
  }
304
305
  }
305
- }, h = () => {
306
- l || (m(), f = requestAnimationFrame(h));
307
- }, g = (t, r) => {
306
+ }, m = () => {
307
+ c || (p(), d = requestAnimationFrame(m));
308
+ }, h = (t, r) => {
308
309
  let i = e.getBoundingClientRect();
309
310
  return {
310
311
  x: (t - i.left) / i.width * n.width,
311
312
  y: (r - i.top) / i.height * n.height
312
313
  };
313
- }, _ = (e, t) => {
314
- for (let n of c) {
314
+ }, g = (e, t) => {
315
+ for (let n of s) {
315
316
  let { x: r, y: i, w: a, h: o } = n.rect;
316
317
  if (e < r || e > r + a || t < i || t > i + o) continue;
317
318
  let s = H(n), c = s.y - 12, l = s.y + s.h + 8;
@@ -325,57 +326,57 @@ async function $e(e, t, n) {
325
326
  };
326
327
  }
327
328
  return null;
328
- }, v = null, y = (e, t) => {
329
+ }, _ = null, v = (e, t) => {
329
330
  let n = Number.isFinite(e.media.duration) ? e.media.duration : 0;
330
331
  n <= 0 || (e.media.currentTime = n * t);
331
- }, b = (e) => {
332
+ }, y = (e) => {
332
333
  try {
333
334
  e.media.play().catch((t) => {
334
- d(z(e.el, e.media, "play", t));
335
+ u(z(e.el, e.media, "play", t));
335
336
  });
336
337
  } catch (t) {
337
- d(z(e.el, e.media, "play", t));
338
+ u(z(e.el, e.media, "play", t));
338
339
  }
339
- }, x = (t) => {
340
- let { x: n, y: r } = g(t.clientX, t.clientY), i = _(n, r);
341
- i && (i.kind === "seek" ? (v = {
340
+ }, b = (t) => {
341
+ let { x: n, y: r } = h(t.clientX, t.clientY), i = g(n, r);
342
+ i && (i.kind === "seek" ? (_ = {
342
343
  state: i.state,
343
344
  wasPlaying: !i.state.media.paused
344
- }, i.state.media.pause(), y(i.state, i.fraction), e.setPointerCapture(t.pointerId), t.preventDefault()) : i.state.media.paused ? b(i.state) : i.state.media.pause());
345
- }, S = (e) => {
346
- let { x: t, y: n } = g(e.clientX, e.clientY);
347
- p = null;
348
- for (let e of c) {
345
+ }, i.state.media.pause(), v(i.state, i.fraction), e.setPointerCapture(t.pointerId), t.preventDefault()) : i.state.media.paused ? y(i.state) : i.state.media.pause());
346
+ }, x = (e) => {
347
+ let { x: t, y: n } = h(e.clientX, e.clientY);
348
+ f = null;
349
+ for (let e of s) {
349
350
  let { x: r, y: i, w: a, h: o } = e.rect;
350
351
  if (t >= r && t <= r + a && n >= i && n <= i + o) {
351
- p = e;
352
+ f = e;
352
353
  break;
353
354
  }
354
355
  }
355
- if (v) {
356
- let e = H(v.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
357
- y(v.state, n);
356
+ if (_) {
357
+ let e = H(_.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
358
+ v(_.state, n);
358
359
  }
359
- }, C = () => {
360
- p = null;
361
- }, w = (t) => {
362
- if (!v) return;
363
- let { wasPlaying: n, state: r } = v;
364
- v = null, e.releasePointerCapture(t.pointerId), n && b(r);
360
+ }, S = () => {
361
+ f = null;
362
+ }, C = (t) => {
363
+ if (!_) return;
364
+ let { wasPlaying: n, state: r } = _;
365
+ _ = null, e.releasePointerCapture(t.pointerId), n && y(r);
365
366
  };
366
- return c.length > 0 && (e.addEventListener("pointerdown", x), e.addEventListener("pointermove", S), e.addEventListener("pointerleave", C), e.addEventListener("pointerup", w), e.addEventListener("pointercancel", w), e.style.cursor = "pointer", h()), {
367
+ return s.length > 0 && (e.addEventListener("pointerdown", b), e.addEventListener("pointermove", x), e.addEventListener("pointerleave", S), e.addEventListener("pointerup", C), e.addEventListener("pointercancel", C), e.style.cursor = "pointer", m()), {
367
368
  play(e) {
368
- for (let t of c) (!e || t.el.mediaPath === e) && b(t);
369
+ for (let t of s) (!e || t.el.mediaPath === e) && y(t);
369
370
  },
370
371
  pause(e) {
371
- for (let t of c) (!e || t.el.mediaPath === e) && t.media.pause();
372
+ for (let t of s) (!e || t.el.mediaPath === e) && t.media.pause();
372
373
  },
373
374
  destroy() {
374
- l || (l = !0, f !== null && cancelAnimationFrame(f), e.removeEventListener("pointerdown", x), e.removeEventListener("pointermove", S), e.removeEventListener("pointerleave", C), e.removeEventListener("pointerup", w), e.removeEventListener("pointercancel", w), e.style.cursor = "", u());
375
+ c || (c = !0, d !== null && cancelAnimationFrame(d), e.removeEventListener("pointerdown", b), e.removeEventListener("pointermove", x), e.removeEventListener("pointerleave", S), e.removeEventListener("pointerup", C), e.removeEventListener("pointercancel", C), e.style.cursor = "", l());
375
376
  }
376
377
  };
377
378
  }
378
- function et(e, t) {
379
+ function nt(e, t) {
379
380
  return {
380
381
  x: R(e.x, t),
381
382
  y: R(e.y, t),
@@ -383,14 +384,14 @@ function et(e, t) {
383
384
  h: R(e.height, t)
384
385
  };
385
386
  }
386
- function tt(e, t, n) {
387
+ function rt(e, t, n) {
387
388
  let r = Math.max(10, Math.min(14, t.h * .12));
388
389
  e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
389
390
  let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
390
391
  U(e, t.x + (t.w - a) / 2, t.y + (t.h - i) / 2, a, i, i / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.fillStyle = "rgba(255, 255, 255, 0.95)", e.fillText(n, t.x + t.w / 2, t.y + t.h / 2), e.restore();
391
392
  }
392
- function nt(e, t) {
393
- return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${rt(t)}`);
393
+ function it(e, t) {
394
+ return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${at(t)}`);
394
395
  }
395
396
  function z(e, t, n, r) {
396
397
  let i = "";
@@ -404,36 +405,36 @@ function z(e, t, n, r) {
404
405
  `networkState=${t.networkState}`
405
406
  ];
406
407
  a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
407
- let s = r === void 0 ? "" : `: ${rt(r)}`;
408
+ let s = r === void 0 ? "" : `: ${at(r)}`;
408
409
  return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
409
410
  }
410
- function rt(e) {
411
+ function at(e) {
411
412
  return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
412
413
  }
413
- var it = 28, B = 14, at = 72, ot = 10, V = 3;
414
- function st(e, t, n) {
415
- let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
416
- i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? lt(e, t, n, r, a) : ct(e, t, n, r, a);
414
+ var ot = 28, B = 14, st = 72, ct = 10, V = 3;
415
+ function lt(e, t, n) {
416
+ let r = Number.isFinite(n.duration) ? n.duration : 0, i = r > 0 ? Math.min(1, n.currentTime / r) : 0, a = t.posterRect;
417
+ j(e, a.x + a.w / 2, a.y + a.h / 2, a.w, a.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? dt(e, t, n, r, i) : ut(e, t, n, r, i);
417
418
  }
418
- function ct(e, t, n, r, i) {
419
+ function ut(e, t, n, r, i) {
419
420
  let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
420
421
  e.save();
421
422
  let d = e.createLinearGradient(0, u, 0, o + c);
422
423
  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();
423
424
  let f = H(t);
424
- dt(e, f, i, r > 0), e.save(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.shadowColor = "rgba(0, 0, 0, 0.75)", e.shadowBlur = 3, e.fillStyle = "rgba(255, 255, 255, 0.95)", ut(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
425
+ pt(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)", ft(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
425
426
  }
426
- function lt(e, t, n, r, i) {
427
- let a = ft(t.rect);
428
- e.save(), U(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", ut(e, n.currentTime, r, a.x + B, a.y + a.h / 2, "middle"), e.restore(), dt(e, H(t), i, r > 0);
427
+ function dt(e, t, n, r, i) {
428
+ let a = mt(t.rect);
429
+ e.save(), U(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", ft(e, n.currentTime, r, a.x + B, a.y + a.h / 2, "middle"), e.restore(), pt(e, H(t), i, r > 0);
429
430
  }
430
- function ut(e, t, n, r, i, a) {
431
- let o = pt(t), s = pt(n), c = Xe(e), l = Ze(e, o, c), u = Ze(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
432
- Qe(e, o, r + f - l, i, c);
431
+ function ft(e, t, n, r, i, a) {
432
+ let o = ht(t), s = ht(n), c = Qe(e), l = $e(e, o, c), u = $e(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
433
+ et(e, o, r + f - l, i, c);
433
434
  let p = e.textAlign;
434
- e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, Qe(e, s, r + f + d, i, c);
435
+ e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, et(e, s, r + f + d, i, c);
435
436
  }
436
- function dt(e, t, n, r) {
437
+ function pt(e, t, n, r) {
437
438
  let i = t.h / 2;
438
439
  if (e.save(), U(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (U(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
439
440
  let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
@@ -441,18 +442,18 @@ function dt(e, t, n, r) {
441
442
  }
442
443
  e.restore();
443
444
  }
444
- function ft(e) {
445
+ function mt(e) {
445
446
  let t = Math.max(220, e.w - 24);
446
447
  return {
447
448
  x: e.x + e.w / 2 - t / 2,
448
- y: e.y + e.h - it - 4,
449
+ y: e.y + e.h - ot - 4,
449
450
  w: t,
450
- h: it
451
+ h: ot
451
452
  };
452
453
  }
453
454
  function H(e) {
454
455
  if (e.el.mediaKind === "audio") {
455
- let t = ft(e.rect), n = t.x + B + at + ot, r = Math.max(40, t.x + t.w - B - n);
456
+ let t = mt(e.rect), n = t.x + B + st + ct, r = Math.max(40, t.x + t.w - B - n);
456
457
  return {
457
458
  x: n,
458
459
  y: t.y + (t.h - V) / 2,
@@ -472,14 +473,14 @@ function U(e, t, n, r, i, a) {
472
473
  let o = Math.min(a, i / 2, r / 2);
473
474
  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();
474
475
  }
475
- function pt(e) {
476
+ function ht(e) {
476
477
  if (!Number.isFinite(e) || e < 0) return "0:00";
477
478
  let t = Math.floor(e);
478
479
  return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
479
480
  }
480
481
  //#endregion
481
482
  //#region packages/pptx/src/slide-nav.ts
482
- function mt(e) {
483
+ function gt(e) {
483
484
  let t = /* @__PURE__ */ new Map();
484
485
  for (let n = 0; n < e.length; n++) {
485
486
  let r = e[n];
@@ -487,18 +488,18 @@ function mt(e) {
487
488
  }
488
489
  return t;
489
490
  }
490
- function ht(e, t) {
491
+ function _t(e, t) {
491
492
  if (e === "") return;
492
- let n = Ve("ppt/slides", e);
493
+ let n = Ue("ppt/slides", e);
493
494
  return t.get(n);
494
495
  }
495
- function gt(e, t, n) {
496
- let r = He(e);
497
- return r === null ? ht(e, t) : Ue(r, n, t.size);
496
+ function vt(e, t, n) {
497
+ let r = We(e);
498
+ return r === null ? _t(e, t) : Ge(r, n, t.size);
498
499
  }
499
500
  //#endregion
500
501
  //#region packages/pptx/src/slide-repository.ts
501
- var _t = class {
502
+ var yt = class {
502
503
  #e;
503
504
  #t;
504
505
  #n;
@@ -508,10 +509,10 @@ var _t = class {
508
509
  #o;
509
510
  constructor(e) {
510
511
  if (!Number.isSafeInteger(e.slideCount) || e.slideCount < 0) throw TypeError("slideCount must be a non-negative safe integer");
511
- this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new ze({
512
+ this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new Ve({
512
513
  maxEntries: e.maxCachedSlides,
513
514
  maxWeight: e.maxCachedStructuralBytes,
514
- measure: (e) => Fe(e).jsonBytes
515
+ measure: (e) => Oe(e).jsonBytes
515
516
  });
516
517
  }
517
518
  get slideCount() {
@@ -529,7 +530,7 @@ var _t = class {
529
530
  try {
530
531
  return await t(r);
531
532
  } catch (e) {
532
- let t = vt(e);
533
+ let t = bt(e);
533
534
  throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
534
535
  }
535
536
  });
@@ -541,7 +542,7 @@ var _t = class {
541
542
  try {
542
543
  n = await this.#t(e);
543
544
  } catch (e) {
544
- let n = vt(e);
545
+ let n = bt(e);
545
546
  throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
546
547
  }
547
548
  if (this.#o === t && this.#a) throw this.#a;
@@ -558,22 +559,22 @@ var _t = class {
558
559
  t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
559
560
  }
560
561
  };
561
- function vt(e) {
562
- return e instanceof x ? e : v(e);
562
+ function bt(e) {
563
+ return e instanceof m ? e : o(e);
563
564
  }
564
565
  //#endregion
565
566
  //#region packages/pptx/src/embedded-fonts.ts
566
- var yt = 1;
567
+ var xt = 1;
567
568
  function W(e) {
568
569
  return e.trim().toLowerCase();
569
570
  }
570
- async function bt(e, t) {
571
+ async function St(e, t) {
571
572
  if (e.length === 0) return {
572
573
  faces: [],
573
574
  aliases: /* @__PURE__ */ new Map(),
574
575
  authoredFamilies: /* @__PURE__ */ new Map()
575
576
  };
576
- let n = yt++, r = /* @__PURE__ */ new Map();
577
+ let n = xt++, r = /* @__PURE__ */ new Map();
577
578
  for (let t of e) {
578
579
  let e = W(t.fontName);
579
580
  r.has(e) || r.set(e, `__ooxml_pptx_${n}_${r.size + 1}`);
@@ -593,7 +594,7 @@ async function bt(e, t) {
593
594
  return null;
594
595
  }
595
596
  }))).filter((e) => e !== null);
596
- if (o.length !== 0) for (let e of await Ae(o)) a.has(e) ? j([e]) : (a.add(e), i.push(e));
597
+ if (o.length !== 0) for (let e of await ve(o)) a.has(e) ? O([e]) : (a.add(e), i.push(e));
597
598
  }
598
599
  let o = new Set(i.map((e) => W(e.family))), s = new Map([...r].filter(([, e]) => o.has(W(e))));
599
600
  return {
@@ -602,16 +603,16 @@ async function bt(e, t) {
602
603
  authoredFamilies: new Map([...s].map(([e, t]) => [t, e]))
603
604
  };
604
605
  }
605
- function xt(e, t) {
606
+ function Ct(e, t) {
606
607
  return e.filter((e) => e === null || !t.has(e.trim().toLowerCase()));
607
608
  }
608
609
  //#endregion
609
610
  //#region packages/pptx/src/worker.ts?worker&inline
610
- var St = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=67108864,i=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,o=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,s={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:o,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:o,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:i,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:i,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:a,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:a,loadFamily:`Noto Sans Arabic`}},c={\"noto sans cjk sc\":`Noto Sans SC`,\"noto serif cjk sc\":`Noto Serif SC`,\"noto sans cjk tc\":`Noto Sans TC`,\"noto serif cjk tc\":`Noto Serif TC`,\"noto sans cjk jp\":`Noto Sans JP`,\"noto serif cjk jp\":`Noto Serif JP`,\"noto sans cjk kr\":`Noto Sans KR`,\"noto serif cjk kr\":`Noto Serif KR`,\"noto sans cjk hk\":`Noto Sans HK`};function l(e){return e?c[e.trim().toLowerCase()]??null:null}function u(e){if(!e)return null;let t=l(e)??e.trim(),n=t.toLowerCase(),r=n.match(/^noto\\s+(?:sans|serif)\\s+(?:cjk\\s+)?(sc|tc|hk|jp|kr)$/);return r?r[1]:/[ᄀ-ᇿ㄰-㆏가-힯]/.test(t)?`kr`:/[぀-ヿ]/.test(t)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(n)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(t)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(n)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(t)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(n)?`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(n)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(t)?`jp`:null}const d=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,f={\"noto sans kr\":{url:d(`Noto+Sans+KR`)},\"noto sans sc\":{url:d(`Noto+Sans+SC`)},\"noto sans tc\":{url:d(`Noto+Sans+TC`)},\"noto sans hk\":{url:d(`Noto+Sans+HK`)},\"noto sans jp\":{url:d(`Noto+Sans+JP`)},\"noto serif kr\":{url:d(`Noto+Serif+KR`)},\"noto serif sc\":{url:d(`Noto+Serif+SC`)},\"noto serif tc\":{url:d(`Noto+Serif+TC`)},\"noto serif jp\":{url:d(`Noto+Serif+JP`)}},p=Object.fromEntries(Object.entries(c).map(([e,t])=>[e,{...f[t.toLowerCase()],loadFamily:t}])),ee={...f,...p,\"noto sans\":{url:d(`Noto+Sans`)},\"noto serif\":{url:d(`Noto+Serif`)},\"noto sans devanagari\":{url:d(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:d(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:d(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:d(`Noto+Serif+Hebrew`)}};var te=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`,`hk`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,hk:`HK`,jp:`JP`}[n];e.push(`Noto Sans ${t}`),n!==`hk`&&e.push(`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}};function ne(e){return e===`image-dimension`||e===`image-pixels`||e===`active-decoded-bytes`}function re(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function ie(e){if(!(!e||typeof e!=`object`))try{let t=e,n=t.code,r=t.metric,i=t.limit,a=t.observed;return n!==`ooxml-decoded-image-limit`||!ne(r)||!re(i)||!re(a)||a<=i?void 0:{metric:r,limit:i,observed:a}}catch{return}}var ae,oe,m,se=e((()=>{ae=1<<25,oe=1<<27,ae*4,oe*4,m=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ce(e){if(!(typeof e!=`object`||!e))try{let t=e,n=t.code,r=t.message;return n===`ooxml-tiff-decode`&&typeof r==`string`?{message:r}:void 0}catch{return}}var le,ue=e((()=>{le=class e extends Error{code=`ooxml-tiff-decode`;constructor(t,n){super(t,n),this.name=`TiffDecodeError`,Object.setPrototypeOf(this,e.prototype)}}}));function de(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 fe=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`)}},h=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function pe(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 me(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 he(e,t){return e({module_or_path:t})}var ge=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new fe(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),_e),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 h(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):he(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,me(e)}};function _e(e){return pe(e)?new h(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function ve(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function ye(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return ve(t.requiredBytes)&&ve(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var g=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function be(e){if(e instanceof g)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!ye(r)))return new g(r)}function xe(e,t,n){let r=be(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}se(),ue();const _=`OOXML_RESOURCE_LIMIT:`;function v(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Se(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return v(t.archiveEntryCount)&&v(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||v(t.largestInflatedEntryBytes))&&v(t.distinctInflatedBytes)&&v(t.operationInflatedBytes)}function y(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!Se(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function Ce(e){return e===`docx`||e===`xlsx`||e===`pptx`}function we(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function b(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function x(e){return b(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function Te(e){return!b(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 S=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}]]),Ee=new Set([...S.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),De=new Set([...S.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function Oe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!Ce(t.format)||!b(t.operation,256)||!x(t.resource)||!x(t.metric)||!v(t.limit)||!v(t.observed)||typeof t.configurable!=`boolean`||!Se(t.usage)?!1:!(`part`in t)||Te(t.part)}function C(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!we(t.stage)||!Oe(t.violation))return!1;let n=t.violation,r=S.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:!(Ee.has(n.resource)&&De.has(n.metric))}function ke(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function Ae(e){if(!C(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:ke(t.usage)}};return C(n)?n:void 0}function je(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Me(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(_))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!C(i.details)))return new n(je(i.details),i.details)}function Ne(e){let r=ie(e);if(r){let e=new m(r.metric,r.limit,r.observed);return{message:e.message,errorName:e.name,code:e.code,decodedImage:r}}let i=ce(e);if(i)return{message:i.message,errorName:`TiffDecodeError`,code:`ooxml-tiff-decode`};let a=be(e);if(a)return{message:a.message,errorName:a.name,code:a.code,insufficientCredit:{requiredBytes:a.requiredBytes,offeredBytes:a.offeredBytes}};let o=e instanceof t||e instanceof n?e:Me(e);if(o instanceof n){let e=Ae(o.details);return e?{message:typeof o.message==`string`?o.message:je(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(o instanceof t)return{message:typeof o.message==`string`?o.message:String(o.message),errorName:b(o.name,128)?o.name:`OoxmlError`,...x(o.code)?{code:o.code}:{}};let s=e instanceof Error?e.message:String(e);if(typeof s==`string`&&s.startsWith(_))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let c=e instanceof Error?e:Error(s),l=c;return{message:typeof c.message==`string`?c.message:String(c.message),errorName:b(c.name,128)?c.name:`Error`,...typeof l.code==`string`?{code:l.code}:{}}}function w(e){try{return Ne(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const Pe=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]),Fe={\"image-dimension\":!0,\"image-pixels\":!0,\"active-decoded-bytes\":!0};function Ie(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(Fe,e)}function Le(e,t){if(e!==`ooxml-decoded-image-limit`||!t||typeof t!=`object`)return;let n=t,r=n.metric,i=n.limit,a=n.observed;if(!(!Ie(r)||!v(i)||!v(a)||a<=i))return{metric:r,limit:i,observed:a}}function Re(e){let r=e.message,i=e.errorName,a=e.code,o=e.decodedImage,s=e.insufficientCredit,c=e.resourceLimit,l=typeof r==`string`?r:`Worker operation failed with an invalid error payload`,u=b(i,128)?i:void 0,d=typeof a==`string`?a:void 0,f=Le(d,o);if(f)return new m(f.metric,f.limit,f.observed);if(d===`ooxml-tiff-decode`)return new le(l);if(d===`ooxml-insufficient-credit`&&ye(s))return new g(s);if(d===`ooxml-resource-limit`&&C(c))return new n(l,c);if(d&&Pe.has(d))return new t(d,l);let p=u===`TypeError`?TypeError(l):u===`RangeError`?RangeError(l):Error(l);return u&&(p.name=u),d!==void 0&&Object.assign(p,{code:d}),p}function ze(e){try{return Re(e)}catch{return Error(`Worker operation failed with an unreadable error payload`)}}function Be(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function Ve(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const T=`ooxml-pull-v1`;function E(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function He(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 Ue=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,E(this.maxRetainedBytes,`max retained lease bytes`),E(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},We=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){He(e.sessionId),E(e.operationId,`operation id`),E(e.generation,`generation`),E(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&E(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=w(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(E(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:T,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){E(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(E(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:T,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:T,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function D(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function O(e,t,n){return D(e,`resource measurement`),D(t,`resource measurement`),D(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Ge(e,t=2**53-1){D(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=O(n,a,t),n>t)return n}return n}function Ke(e,t=2**53-1){D(t,`resource measurement limit`);let n=O(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=O(n,a,t),n>t)return n}return n}function k(e,t){return O(0,e,t)}function A(e,t=2**53-1,n=!1){if(D(t,`resource measurement limit`),e===null)return{jsonBytes:k(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:Ke(e,t),stringValueUtf8Bytes:Ge(e,t)};if(typeof e==`boolean`)return{jsonBytes:k(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:k((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=k(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=O(n,1,t));let a=A(e[i],t,!0);n=O(n,a.jsonBytes,t),r=O(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=k(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=O(n,1,t)),n=O(n,Ke(a,t),t),n=O(n,1,t);let e=A(o,t);n=O(n,e.jsonBytes,t),r=O(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?k(4,t):0,stringValueUtf8Bytes:0}}({...s,...ee});function*j(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*qe(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*Je(e){for(let t of e.elements)if(t.type===`shape`)yield*j(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*j(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 Ye=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=u(e)??u(t)??null;this.scripts=n??new te(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Je(e));for(let t of e.elements)if(t.type===`shape`)for(let e of qe(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 qe(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const M=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),Xe=67108864;function N(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Ze(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Qe(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap embedded font at ${t}`);let n=e;if(typeof n.fontName!=`string`||n.fontName.length===0||![`regular`,`bold`,`italic`,`boldItalic`].includes(n.style??``)||typeof n.partPath!=`string`||n.partPath.length===0||n.partPath.startsWith(`/`)||n.partPath.split(`/`).includes(`..`)||![`application/x-font-ttf`,`application/x-fontdata`].includes(n.contentType??``))throw Error(`invalid PPTX presentation bootstrap embedded font fields at ${t}`);return Object.freeze({fontName:n.fontName,style:n.style,partPath:n.partPath,contentType:n.contentType})}function $e(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.embeddedFonts)||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return N(t.defaultTextColor,`defaultTextColor`),N(t.majorFont,`majorFont`),N(t.minorFont,`minorFont`),N(t.hlinkColor,`hlinkColor`),N(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,embeddedFonts:Object.freeze(t.embeddedFonts.map(Qe)),slides:Object.freeze(t.slides.map(Ze))})}function et(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 tt(e){return Object.freeze({...e.id===void 0?{}:{id:e.id},...e.authorId===void 0?{}:{authorId:e.authorId},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.status===void 0?{}:{status:e.status},text:e.text})}function nt(e){return Object.freeze({...e})}function rt(e){return Object.freeze({...e.authorId===void 0?{}:{authorId:e.authorId},...e.modernAuthorId===void 0?{}:{modernAuthorId:e.modernAuthorId},...e.id===void 0?{}:{id:e.id},...e.index===void 0?{}:{index:e.index},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.x===void 0?{}:{x:e.x},...e.y===void 0?{}:{y:e.y},...e.anchors?.length?{anchors:Object.freeze(e.anchors.map(nt))}:{},...e.status===void 0?{}:{status:e.status},text:e.text,...e.replies?.length?{replies:Object.freeze(e.replies.map(tt))}:{}})}function it(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(et)),...e.comments?.length?{comments:Object.freeze(e.comments.map(rt))}:{}})}function at(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 ot=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;embeddedFontsValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=$e(e),r=t.hardLimitForTesting??Xe;if(!Number.isSafeInteger(r)||r<=0||r>Xe)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.embeddedFontsValue=n.embeddedFonts,this.descriptors=[...n.slides],this.fonts=new Ye(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=A(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=A({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,at(this.projectionBytesValue,this.limit,M)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}get latestSlide(){return this.slides[this.slides.length-1]}get currentFontPreloadNames(){return this.fontPreloadNames}snapshot(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);return Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames})}addSlide(e,t=M){this.prepareSlide(e,t).commit()}prepareSlide(e,t=M){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=it(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=A(o,this.limit).jsonBytes,c=A(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-A(r,this.limit).jsonBytes+4;l=O(l,s,this.limit),l=O(l,c,this.limit),this.slides.length!==0&&(l=O(l,1,this.limit));let u=A({slide:i,fontPreloadNames:o},this.limit).jsonBytes,d=O(this.projectionBytesValue,u,this.limit);at(Math.max(d,l),this.limit,t);let f={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=f,{projectedBytes:d,commit:()=>{if(f.state!==`committed`){if(f.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(f.fact),this.fonts=f.fonts,this.fontPreloadNames=f.fontNames,this.fontProjectionBytes=f.fontBytes,this.projectionBytesValue=f.committedBytes,f.state=`committed`,this.pending=null}},rollback:()=>{if(f.state!==`rolled-back`){if(f.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);f.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=A(this.finished,this.limit).jsonBytes,this.finished}};function st(e){try{return y(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function ct(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,st(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 lt=class{coordinatorGeneration=new Ue;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(),dt(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let i,a=new Promise(e=>{i=e}),o=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let a,o=!1,s=new We({...t,maxByteCredit:r,coordinator:this.coordinator,driver:{pull:n=>{let i;try{i=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw xe(e,n,r)||(this.latchResourceFailure(e),e)}let s=Be(i);return this.acceptSlide&&(a=JSON.parse(new TextDecoder().decode(new Uint8Array(s)))),o=!0,{payload:s,byteLength:s.byteLength,done:!0,transfer:[s]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!o)throw Error(`slide unit is not awaiting acknowledgement`);try{ct(this.executeArchive,t,e,a,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}o=!1,a=void 0,this.sessions.delete(t.sessionId),i()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:s,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=o.then(()=>a,()=>void 0);try{await o}catch(e){throw this.pendingOpens.delete(t.sessionId),i(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:T,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=ze(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 Ue,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!P(t,e)?this.staleLifecycleResponse(e):{protocol:T,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:w(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:T,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return st(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:Me(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:T,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function ut(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function dt(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,pt.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_font(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_font(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=ht(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,pt.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 ft(){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;mt().setInt32(e+4,i,!0),mt().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 pt=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 mt(){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,gt(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 ht(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 gt(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 _t(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function vt(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 yt(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=ft();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await vt(await e,t);return _t(n,r)}async function bt(e){return J=void 0,L=null,z=null,yt(e)}const Y=new ge(yt,{freeArchive:e=>e.free(),reinit:bt});let X=null,Z=`empty`;function xt(){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 lt(()=>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(ut(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(de(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(xt(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...w(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=Ve(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=t.progressiveLayout?null:new ot(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractFont`){let r=Y.run(()=>e.extract_font(t.path).buffer);$({kind:`fontExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:y(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...w(e)})}catch{}}};", Ct = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", St], { type: "text/javascript;charset=utf-8" });
611
- function wt(e) {
611
+ var wt = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=67108864,i=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,o=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,s={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:o,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:o,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:i,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:i,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:a,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:i,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:a,loadFamily:`Noto Sans Arabic`}},c={\"noto sans cjk sc\":`Noto Sans SC`,\"noto serif cjk sc\":`Noto Serif SC`,\"noto sans cjk tc\":`Noto Sans TC`,\"noto serif cjk tc\":`Noto Serif TC`,\"noto sans cjk jp\":`Noto Sans JP`,\"noto serif cjk jp\":`Noto Serif JP`,\"noto sans cjk kr\":`Noto Sans KR`,\"noto serif cjk kr\":`Noto Serif KR`,\"noto sans cjk hk\":`Noto Sans HK`};function l(e){return e?c[e.trim().toLowerCase()]??null:null}function u(e){if(!e)return null;let t=l(e)??e.trim(),n=t.toLowerCase(),r=n.match(/^noto\\s+(?:sans|serif)\\s+(?:cjk\\s+)?(sc|tc|hk|jp|kr)$/);return r?r[1]:/[ᄀ-ᇿ㄰-㆏가-힯]/.test(t)?`kr`:/[぀-ヿ]/.test(t)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(n)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(t)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(n)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(t)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(n)?`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(n)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(t)?`jp`:null}const d=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,f={\"noto sans kr\":{url:d(`Noto+Sans+KR`)},\"noto sans sc\":{url:d(`Noto+Sans+SC`)},\"noto sans tc\":{url:d(`Noto+Sans+TC`)},\"noto sans hk\":{url:d(`Noto+Sans+HK`)},\"noto sans jp\":{url:d(`Noto+Sans+JP`)},\"noto serif kr\":{url:d(`Noto+Serif+KR`)},\"noto serif sc\":{url:d(`Noto+Serif+SC`)},\"noto serif tc\":{url:d(`Noto+Serif+TC`)},\"noto serif jp\":{url:d(`Noto+Serif+JP`)}},p=Object.fromEntries(Object.entries(c).map(([e,t])=>[e,{...f[t.toLowerCase()],loadFamily:t}])),ee={...f,...p,\"noto sans\":{url:d(`Noto+Sans`)},\"noto serif\":{url:d(`Noto+Serif`)},\"noto sans devanagari\":{url:d(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:d(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:d(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:d(`Noto+Serif+Hebrew`)}};function te(e){return/\\p{Script=Han}/u.test(e)}var ne=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}scriptCjkLanguage(){return this.hasHangul?`kr`:this.hasKana?`jp`:null}preferredCjkLanguage(){return this.scriptCjkLanguage()??this.cjkLang??`jp`}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:te(e)?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(e=!1){let t=[],n=new Set;this.hasHangul&&n.add(`kr`),this.hasKana&&n.add(`jp`),this.hasHan&&(n.size===0||e)&&n.add(this.cjkLang??`jp`);for(let e of[`kr`,`sc`,`tc`,`hk`,`jp`])if(n.has(e)){let n={kr:`KR`,sc:`SC`,tc:`TC`,hk:`HK`,jp:`JP`}[e];t.push(`Noto Sans ${n}`),e!==`hk`&&t.push(`Noto Serif ${n}`)}return this.hasCyrGreek&&t.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&t.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&t.push(`Noto Sans Thai`),this.hasHebrew&&t.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&t.push(`Noto Sans Devanagari`),t}};function re(e,t,n=!1){let r=new ne(t);return r.addText(e),r.names(n)}function ie(e){return e===`image-dimension`||e===`image-pixels`||e===`active-decoded-bytes`}function ae(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function oe(e){if(!(!e||typeof e!=`object`))try{let t=e,n=t.code,r=t.metric,i=t.limit,a=t.observed;return n!==`ooxml-decoded-image-limit`||!ie(r)||!ae(i)||!ae(a)||a<=i?void 0:{metric:r,limit:i,observed:a}}catch{return}}var se,ce,m,le=e((()=>{se=1<<25,ce=1<<27,se*4,ce*4,m=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ue(e){if(!(typeof e!=`object`||!e))try{let t=e,n=t.code,r=t.message;return n===`ooxml-tiff-decode`&&typeof r==`string`?{message:r}:void 0}catch{return}}var h,de=e((()=>{h=class e extends Error{code=`ooxml-tiff-decode`;constructor(t,n){super(t,n),this.name=`TiffDecodeError`,Object.setPrototypeOf(this,e.prototype)}}}));function fe(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 pe=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`)}},me=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function he(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 ge(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 _e(e,t){return e({module_or_path:t})}var ve=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new pe(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),ye),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 me(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):_e(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,ge(e)}};function ye(e){return he(e)?new me(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function be(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function xe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return be(t.requiredBytes)&&be(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var g=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function Se(e){if(e instanceof g)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!xe(r)))return new g(r)}function Ce(e,t,n){let r=Se(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}le(),de();const _=`OOXML_RESOURCE_LIMIT:`;function v(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function we(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return v(t.archiveEntryCount)&&v(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||v(t.largestInflatedEntryBytes))&&v(t.distinctInflatedBytes)&&v(t.operationInflatedBytes)}function Te(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!we(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function Ee(e){return e===`docx`||e===`xlsx`||e===`pptx`}function De(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function y(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function b(e){return y(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function Oe(e){return!y(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const x=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),ke=new Set([...x.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),Ae=new Set([...x.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function je(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!Ee(t.format)||!y(t.operation,256)||!b(t.resource)||!b(t.metric)||!v(t.limit)||!v(t.observed)||typeof t.configurable!=`boolean`||!we(t.usage)?!1:!(`part`in t)||Oe(t.part)}function S(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!De(t.stage)||!je(t.violation))return!1;let n=t.violation,r=x.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(ke.has(n.resource)&&Ae.has(n.metric))}function Me(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function Ne(e){if(!S(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:Me(t.usage)}};return S(n)?n:void 0}function Pe(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Fe(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(_))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!S(i.details)))return new n(Pe(i.details),i.details)}function Ie(e){let r=oe(e);if(r){let e=new m(r.metric,r.limit,r.observed);return{message:e.message,errorName:e.name,code:e.code,decodedImage:r}}let i=ue(e);if(i)return{message:i.message,errorName:`TiffDecodeError`,code:`ooxml-tiff-decode`};let a=Se(e);if(a)return{message:a.message,errorName:a.name,code:a.code,insufficientCredit:{requiredBytes:a.requiredBytes,offeredBytes:a.offeredBytes}};let o=e instanceof t||e instanceof n?e:Fe(e);if(o instanceof n){let e=Ne(o.details);return e?{message:typeof o.message==`string`?o.message:Pe(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(o instanceof t)return{message:typeof o.message==`string`?o.message:String(o.message),errorName:y(o.name,128)?o.name:`OoxmlError`,...b(o.code)?{code:o.code}:{}};let s=e instanceof Error?e.message:String(e);if(typeof s==`string`&&s.startsWith(_))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let c=e instanceof Error?e:Error(s),l=c;return{message:typeof c.message==`string`?c.message:String(c.message),errorName:y(c.name,128)?c.name:`Error`,...typeof l.code==`string`?{code:l.code}:{}}}function C(e){try{return Ie(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const Le=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]),Re={\"image-dimension\":!0,\"image-pixels\":!0,\"active-decoded-bytes\":!0};function ze(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(Re,e)}function Be(e,t){if(e!==`ooxml-decoded-image-limit`||!t||typeof t!=`object`)return;let n=t,r=n.metric,i=n.limit,a=n.observed;if(!(!ze(r)||!v(i)||!v(a)||a<=i))return{metric:r,limit:i,observed:a}}function Ve(e){let r=e.message,i=e.errorName,a=e.code,o=e.decodedImage,s=e.insufficientCredit,c=e.resourceLimit,l=typeof r==`string`?r:`Worker operation failed with an invalid error payload`,u=y(i,128)?i:void 0,d=typeof a==`string`?a:void 0,f=Be(d,o);if(f)return new m(f.metric,f.limit,f.observed);if(d===`ooxml-tiff-decode`)return new h(l);if(d===`ooxml-insufficient-credit`&&xe(s))return new g(s);if(d===`ooxml-resource-limit`&&S(c))return new n(l,c);if(d&&Le.has(d))return new t(d,l);let p=u===`TypeError`?TypeError(l):u===`RangeError`?RangeError(l):Error(l);return u&&(p.name=u),d!==void 0&&Object.assign(p,{code:d}),p}function He(e){try{return Ve(e)}catch{return Error(`Worker operation failed with an unreadable error payload`)}}function Ue(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function We(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const w=`ooxml-pull-v1`;function T(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function Ge(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 Ke=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,T(this.maxRetainedBytes,`max retained lease bytes`),T(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}},qe=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){Ge(e.sessionId),T(e.operationId,`operation id`),T(e.generation,`generation`),T(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&T(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=C(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(T(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:w,...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){T(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(T(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:w,...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:w,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 E(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function D(e,t,n){return E(e,`resource measurement`),E(t,`resource measurement`),E(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){E(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=D(n,a,t),n>t)return n}return n}function O(e,t=2**53-1){E(t,`resource measurement limit`);let n=D(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=D(n,a,t),n>t)return n}return n}function k(e,t){return D(0,e,t)}function A(e,t=2**53-1,n=!1){if(E(t,`resource measurement limit`),e===null)return{jsonBytes:k(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:O(e,t),stringValueUtf8Bytes:Je(e,t)};if(typeof e==`boolean`)return{jsonBytes:k(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:k((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=k(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=D(n,1,t));let a=A(e[i],t,!0);n=D(n,a.jsonBytes,t),r=D(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=k(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=D(n,1,t)),n=D(n,O(a,t),t),n=D(n,1,t);let e=A(o,t);n=D(n,e.jsonBytes,t),r=D(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?k(4,t):0,stringValueUtf8Bytes:0}}({...s,...ee});function*j(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*Ye(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*Xe(e){for(let t of e.elements)if(t.type===`shape`)yield*j(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*j(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 Ze=class e{scripts;families;constructor(e,t,n,r,i,a=new Set){this.majorFont=e,this.minorFont=t,this.fallback=i,this.scriptNames=a;let o=u(e)??u(t)??i??null;this.scripts=n??new ne(o),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Xe(e));for(let t of re(Xe(e),u(this.majorFont)??u(this.minorFont)??this.fallback??null))this.scriptNames.add(t);for(let t of e.elements)if(t.type===`shape`)for(let e of Ye(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 Ye(t.textBody))this.families.add(e)}names(){return[...new Set([...this.families,...this.scripts.names(),...this.scriptNames])]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families),this.fallback,new Set(this.scriptNames));return n.addSlide(t),n}};const M=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),Qe=67108864;function N(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function $e(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 et(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap embedded font at ${t}`);let n=e;if(typeof n.fontName!=`string`||n.fontName.length===0||![`regular`,`bold`,`italic`,`boldItalic`].includes(n.style??``)||typeof n.partPath!=`string`||n.partPath.length===0||n.partPath.startsWith(`/`)||n.partPath.split(`/`).includes(`..`)||![`application/x-font-ttf`,`application/x-fontdata`].includes(n.contentType??``))throw Error(`invalid PPTX presentation bootstrap embedded font fields at ${t}`);return Object.freeze({fontName:n.fontName,style:n.style,partPath:n.partPath,contentType:n.contentType})}function tt(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.embeddedFonts)||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return N(t.defaultTextColor,`defaultTextColor`),N(t.majorFont,`majorFont`),N(t.minorFont,`minorFont`),N(t.hlinkColor,`hlinkColor`),N(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,embeddedFonts:Object.freeze(t.embeddedFonts.map(et)),slides:Object.freeze(t.slides.map($e))})}function nt(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 rt(e){return Object.freeze({...e.id===void 0?{}:{id:e.id},...e.authorId===void 0?{}:{authorId:e.authorId},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.status===void 0?{}:{status:e.status},text:e.text})}function it(e){return Object.freeze({...e})}function at(e){return Object.freeze({...e.authorId===void 0?{}:{authorId:e.authorId},...e.modernAuthorId===void 0?{}:{modernAuthorId:e.modernAuthorId},...e.id===void 0?{}:{id:e.id},...e.index===void 0?{}:{index:e.index},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.x===void 0?{}:{x:e.x},...e.y===void 0?{}:{y:e.y},...e.anchors?.length?{anchors:Object.freeze(e.anchors.map(it))}:{},...e.status===void 0?{}:{status:e.status},text:e.text,...e.replies?.length?{replies:Object.freeze(e.replies.map(rt))}:{}})}function ot(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(nt)),...e.comments?.length?{comments:Object.freeze(e.comments.map(at))}:{}})}function st(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 ct=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;embeddedFontsValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=tt(e),r=t.hardLimitForTesting??Qe;if(!Number.isSafeInteger(r)||r<=0||r>Qe)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.embeddedFontsValue=n.embeddedFonts,this.descriptors=[...n.slides],this.fonts=new Ze(this.majorFontValue,this.minorFontValue,void 0,void 0,t.cjkFallback),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=A(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=A({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,st(this.projectionBytesValue,this.limit,M)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}get latestSlide(){return this.slides[this.slides.length-1]}get currentFontPreloadNames(){return this.fontPreloadNames}snapshot(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);return Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames})}addSlide(e,t=M){this.prepareSlide(e,t).commit()}prepareSlide(e,t=M){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=ot(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=A(o,this.limit).jsonBytes,c=A(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-A(r,this.limit).jsonBytes+4;l=D(l,s,this.limit),l=D(l,c,this.limit),this.slides.length!==0&&(l=D(l,1,this.limit));let u=A({slide:i,fontPreloadNames:o},this.limit).jsonBytes,d=D(this.projectionBytesValue,u,this.limit);st(Math.max(d,l),this.limit,t);let f={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=f,{projectedBytes:d,commit:()=>{if(f.state!==`committed`){if(f.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(f.fact),this.fonts=f.fonts,this.fontPreloadNames=f.fontNames,this.fontProjectionBytes=f.fontBytes,this.projectionBytesValue=f.committedBytes,f.state=`committed`,this.pending=null}},rollback:()=>{if(f.state!==`rolled-back`){if(f.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==f)throw Error(`PPTX presentation preflight prepared slide is stale`);f.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,embeddedFonts:this.embeddedFontsValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=A(this.finished,this.limit).jsonBytes,this.finished}};function lt(e){try{return Te(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function ut(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,lt(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 dt=class{coordinatorGeneration=new Ke;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(),pt(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let i,a=new Promise(e=>{i=e}),o=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let a,o=!1,s=new qe({...t,maxByteCredit:r,coordinator:this.coordinator,driver:{pull:n=>{let i;try{i=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw Ce(e,n,r)||(this.latchResourceFailure(e),e)}let s=Ue(i);return this.acceptSlide&&(a=JSON.parse(new TextDecoder().decode(new Uint8Array(s)))),o=!0,{payload:s,byteLength:s.byteLength,done:!0,transfer:[s]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!o)throw Error(`slide unit is not awaiting acknowledgement`);try{ut(this.executeArchive,t,e,a,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}o=!1,a=void 0,this.sessions.delete(t.sessionId),i()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{a=void 0,o=!1,this.sessions.delete(t.sessionId),i()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:s,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=o.then(()=>a,()=>void 0);try{await o}catch(e){throw this.pendingOpens.delete(t.sessionId),i(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:w,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:w,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:w,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:C(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:w,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:C(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:w,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=He(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 Ke,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:w,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:w,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:C(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:w,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 lt(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:Fe(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:w,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 ft(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function pt(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,ht.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_font(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_font(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=_t(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,ht.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 mt(){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;gt().setInt32(e+4,i,!0),gt().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 ht=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 gt(){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,vt(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 _t(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 vt(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 yt(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function bt(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 xt(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=mt();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await bt(await e,t);return yt(n,r)}async function St(e){return J=void 0,L=null,z=null,xt(e)}const Y=new ve(xt,{freeArchive:e=>e.free(),reinit:St});let X=null,Z=`empty`;function Ct(){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 dt(()=>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(ft(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(fe(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(Ct(),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,...C(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]=We(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=t.progressiveLayout?null:new ct(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractFont`){let r=Y.run(()=>e.extract_font(t.path).buffer);$({kind:`fontExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:Te(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,...C(e)})}catch{}}};", Tt = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", wt], { type: "text/javascript;charset=utf-8" });
612
+ function Et(e) {
612
613
  let t;
613
614
  try {
614
- if (t = Ct && (self.URL || self.webkitURL).createObjectURL(Ct), !t) throw "";
615
+ if (t = Tt && (self.URL || self.webkitURL).createObjectURL(Tt), !t) throw "";
615
616
  let n = new Worker(t, {
616
617
  type: "module",
617
618
  name: e?.name
@@ -620,7 +621,7 @@ function wt(e) {
620
621
  (self.URL || self.webkitURL).revokeObjectURL(t);
621
622
  }), n;
622
623
  } catch {
623
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(St), {
624
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(wt), {
624
625
  type: "module",
625
626
  name: e?.name
626
627
  });
@@ -628,24 +629,24 @@ function wt(e) {
628
629
  }
629
630
  //#endregion
630
631
  //#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
631
- var Tt = new URL("pptx_parser_bg.wasm", import.meta.url).href, G = 65536, Et = 16384, Dt = new Set(["line", "straightconnector1"]);
632
- function Ot(e, t) {
632
+ var Dt = new URL("pptx_parser_bg.wasm", import.meta.url).href, G = 65536, Ot = 16384, kt = new Set(["line", "straightconnector1"]);
633
+ function At(e, t) {
633
634
  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;
634
635
  return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
635
636
  x: l,
636
637
  y: u
637
638
  };
638
639
  }
639
- function kt(e, t, n) {
640
+ function jt(e, t, n) {
640
641
  let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
641
642
  if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
642
643
  let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
643
644
  return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
644
645
  }
645
- function At(e, t, n = 0) {
646
+ function Mt(e, t, n = 0) {
646
647
  if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
647
- let r = Ot(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
648
- if (e.type === "shape" && (Dt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return kt(r, {
648
+ let r = At(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
649
+ if (e.type === "shape" && (kt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return jt(r, {
649
650
  x: e.x,
650
651
  y: e.y
651
652
  }, {
@@ -655,7 +656,7 @@ function At(e, t, n = 0) {
655
656
  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);
656
657
  return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
657
658
  }
658
- function* jt(e) {
659
+ function* Nt(e) {
659
660
  if (e) for (let t of e.paragraphs) {
660
661
  let e = !0;
661
662
  for (let n of t.runs) {
@@ -667,17 +668,17 @@ function* jt(e) {
667
668
  }
668
669
  }
669
670
  }
670
- function* Mt(e) {
671
+ function* Pt(e) {
671
672
  if (e.type === "shape") {
672
- yield* jt(e.textBody);
673
+ yield* Nt(e.textBody);
673
674
  return;
674
675
  }
675
676
  if (e.type === "table") {
676
- for (let t of e.rows) for (let e of t.cells) yield* jt(e.textBody);
677
+ for (let t of e.rows) for (let e of t.cells) yield* Nt(e.textBody);
677
678
  return;
678
679
  }
679
680
  }
680
- function Nt(e, t) {
681
+ function Ft(e, t) {
681
682
  let n = Math.min(e.length, t);
682
683
  if (n > 0 && n < e.length) {
683
684
  let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
@@ -685,9 +686,9 @@ function Nt(e, t) {
685
686
  }
686
687
  return e.slice(0, n);
687
688
  }
688
- function Pt(e, t = Et) {
689
+ function It(e, t = Ot) {
689
690
  if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
690
- let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : Nt(r, n), a = r !== void 0 && i.length < r.length;
691
+ let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : Ft(r, n), a = r !== void 0 && i.length < r.length;
691
692
  return {
692
693
  ...structuredClone(e),
693
694
  ...i === void 0 ? {} : { text: i },
@@ -697,7 +698,7 @@ function Pt(e, t = Et) {
697
698
  maxTextCharacters: n
698
699
  };
699
700
  }
700
- function Ft(e, t) {
701
+ function Lt(e, t) {
701
702
  let n = [], r = 0, i = !1, a = !1;
702
703
  for (let o of e) {
703
704
  if (a = !0, o.beginsPart && n.length > 0) {
@@ -707,7 +708,7 @@ function Ft(e, t) {
707
708
  }
708
709
  n.push("\n"), r++;
709
710
  }
710
- let e = Math.max(0, t - r), s = Nt(o.text, e);
711
+ let e = Math.max(0, t - r), s = Ft(o.text, e);
711
712
  if (n.push(s), r += s.length, s.length < o.text.length) {
712
713
  i = !0;
713
714
  break;
@@ -722,16 +723,16 @@ function Ft(e, t) {
722
723
  textCharacters: 0
723
724
  };
724
725
  }
725
- function It(e, t, n, r = {}) {
726
+ function Rt(e, t, n, r = {}) {
726
727
  if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
727
- let i = r.maxTextCharacters ?? Et;
728
+ let i = r.maxTextCharacters ?? Ot;
728
729
  if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
729
730
  let a = Math.min(G, Math.floor(i)), o = r.tolerance ?? 0;
730
731
  if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
731
732
  for (let r = t.elements.length - 1; r >= 0; r--) {
732
733
  let i = t.elements[r];
733
- if (!At(i, n, o)) continue;
734
- let s = i.type === "chart" ? de(i.chart, a) : Ft(Mt(i), a);
734
+ if (!Mt(i, n, o)) continue;
735
+ let s = i.type === "chart" ? te(i.chart, a) : Lt(Pt(i), a);
735
736
  return {
736
737
  format: "pptx",
737
738
  kind: "element",
@@ -773,7 +774,7 @@ function It(e, t, n, r = {}) {
773
774
  }
774
775
  return null;
775
776
  }
776
- function Lt(e, t) {
777
+ function zt(e, t) {
777
778
  let n = new Set(t.filter((e) => e.length > 0));
778
779
  if (n.size === 0) return Object.freeze([]);
779
780
  let r = /* @__PURE__ */ new Map();
@@ -815,7 +816,7 @@ function q(e, t) {
815
816
  } catch {}
816
817
  }
817
818
  }
818
- function J(e, t, n, r) {
819
+ function Bt(e, t, n, r) {
819
820
  let i = K.get(e);
820
821
  i || (i = /* @__PURE__ */ new Set(), K.set(e, i));
821
822
  let a = Object.freeze({
@@ -836,7 +837,7 @@ function J(e, t, n, r) {
836
837
  }
837
838
  //#endregion
838
839
  //#region packages/pptx/src/worker-task-scheduler.ts
839
- function Rt() {
840
+ function Vt() {
840
841
  return new Promise((e) => {
841
842
  let t = new MessageChannel();
842
843
  t.port1.onmessage = () => {
@@ -846,7 +847,7 @@ function Rt() {
846
847
  }
847
848
  //#endregion
848
849
  //#region packages/pptx/src/presentation.ts
849
- function zt() {
850
+ function Ht() {
850
851
  let e, t;
851
852
  return {
852
853
  promise: new Promise((n, r) => {
@@ -856,7 +857,8 @@ function zt() {
856
857
  reject: t
857
858
  };
858
859
  }
859
- var Y = class e {
860
+ var J = class e {
861
+ _cjkFallback = "jp";
860
862
  _metrics = null;
861
863
  _worker;
862
864
  _bridge;
@@ -864,8 +866,8 @@ var Y = class e {
864
866
  _bootstrap = null;
865
867
  _preflight = null;
866
868
  _availableSlideCount = 0;
867
- _layoutLifecycle = new Ee();
868
- _layoutObservers = new Oe();
869
+ _layoutLifecycle = new ye();
870
+ _layoutObservers = new xe();
869
871
  _layoutCompletion = null;
870
872
  _parseRequestId = null;
871
873
  _progressive = null;
@@ -876,9 +878,9 @@ var Y = class e {
876
878
  _slidePullClient = null;
877
879
  _resourceFailure = null;
878
880
  _slidePartIndex = null;
879
- _rawParts = new Be({
881
+ _rawParts = new He({
880
882
  maxEntries: 64,
881
- maxBytes: y
883
+ maxBytes: n
882
884
  });
883
885
  _googleFontFaces = [];
884
886
  _embeddedFontFaces = [];
@@ -893,12 +895,12 @@ var Y = class e {
893
895
  _chartEx;
894
896
  _tiff;
895
897
  constructor(e, t, n) {
896
- this._worker = e, this._mode = t, this._bridge = new Ce(this._worker, {
898
+ this._worker = e, this._mode = t, this._bridge = new pe(this._worker, {
897
899
  correlate: (e) => "protocol" in e && e.protocol === "ooxml-pull-v1" ? e.requestId : "id" in e ? e.id : void 0,
898
- toError: (e) => !("protocol" in e) && e.kind === "error" ? _(e) : void 0,
900
+ toError: (e) => !("protocol" in e) && e.kind === "error" ? a(e) : void 0,
899
901
  onUnsolicited: (e) => this._onWorkerLayoutPush(e)
900
902
  });
901
- let r = new URL(n ?? Tt, location.href).href;
903
+ let r = new URL(n ?? Dt, location.href).href;
902
904
  this._bridge.post({
903
905
  kind: "init",
904
906
  wasmUrl: r
@@ -908,79 +910,80 @@ var Y = class e {
908
910
  if (this._resourceFailure) throw this._resourceFailure;
909
911
  }
910
912
  _rethrowWithResourceFailure(e) {
911
- let t = e instanceof x ? e : v(e);
913
+ let t = e instanceof m ? e : o(e);
912
914
  throw t ? (this._resourceFailure ??= t, this._resourceFailure) : e;
913
915
  }
914
- static async load(t, r = {}) {
915
- let i = te(r), a = r.mode ?? "main", o = new h({
916
+ static async load(t, n = {}) {
917
+ let i = Ce(n.cjkFallback), a = h(n), o = n.mode ?? "main", s = new r({
916
918
  enabled: !0,
917
919
  format: "pptx",
918
- mode: a,
919
- policy: i.policy,
920
- onMetrics: i.onResourceMetrics,
921
- emitToConsole: i.debug
920
+ mode: o,
921
+ policy: a.policy,
922
+ onMetrics: a.onResourceMetrics,
923
+ emitToConsole: a.debug
922
924
  });
923
925
  try {
924
- if (a === "worker" && (typeof Worker > "u" || typeof OffscreenCanvas > "u")) throw Error("mode: 'worker' requires Worker and OffscreenCanvas support");
925
- let s;
926
+ if (o === "worker" && (typeof Worker > "u" || typeof OffscreenCanvas > "u")) throw Error("mode: 'worker' requires Worker and OffscreenCanvas support");
927
+ let r;
926
928
  if (typeof t == "string") {
927
929
  let e = await fetch(t);
928
930
  if (!e.ok) throw Error(`Failed to fetch: ${e.status} ${e.statusText}`);
929
- s = await e.arrayBuffer();
930
- } else s = t;
931
- s = ae(await ie(s, r.password)), o.setSourceBytes(s.byteLength), o.checkpoint("container ready");
932
- let c = a === "worker" ? (await import("./render-worker-host-BEfLZvSL.js")).createRenderWorker() : new wt(), l = a === "worker" ? Ie(r) : void 0, u;
931
+ r = await e.arrayBuffer();
932
+ } else r = t;
933
+ r = y(await v(r, n.password)), s.setSourceBytes(r.byteLength), s.checkpoint("container ready");
934
+ let c = o === "worker" ? (await import("./render-worker-host-DNL9dWRh.js")).createRenderWorker() : new Et(), l = o === "worker" ? Re(n) : void 0, u;
933
935
  try {
934
- u = new e(c, a, r.wasmUrl), u._metrics = o, r.math && a === "worker" && !l?.math && console.warn("[ooxml] a custom math renderer cannot cross the worker boundary; equations will be skipped in mode: 'worker'. Use the math renderer from @silurus/ooxml/math."), r.threeD && a === "worker" && !l?.threeD && console.warn("[ooxml] a custom 3-D chart renderer cannot cross the worker boundary; charts use their 2-D family fallback in mode: 'worker'. Use the renderer from @silurus/ooxml/three-d."), u._math = a === "worker" ? void 0 : r.math, u._threeD = a === "worker" ? void 0 : r.threeD, r.regionMap && a === "worker" && !l?.regionMap && console.warn("[ooxml] a custom Region Map renderer cannot cross the worker boundary; geospatial charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/region-map."), u._regionMap = a === "worker" ? void 0 : r.regionMap, r.chartEx && a === "worker" && !l?.chartEx && console.warn("[ooxml] a custom ChartEx renderer cannot cross the worker boundary; ChartEx charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/chart-ex."), u._chartEx = a === "worker" ? void 0 : r.chartEx, r.tiff && a === "worker" && !l?.tiff && console.warn("[ooxml] a custom TIFF codec cannot cross the worker boundary; recognized TIFF images will use an unavailable-image placeholder in mode: 'worker'. Use the codec from @silurus/ooxml/tiff to display them."), u._tiff = a === "worker" ? void 0 : r.tiff;
935
- let t = r.progressiveLayout ? {
936
- onProgress: r.onLayoutProgress,
937
- onPartial: r.onLayoutPartial,
938
- onComplete: r.onLayoutComplete,
939
- firstPublication: zt(),
936
+ u = new e(c, o, n.wasmUrl), u._metrics = s, n.math && o === "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 && o === "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._cjkFallback = i, u._math = o === "worker" ? void 0 : n.math, u._threeD = o === "worker" ? void 0 : n.threeD, n.regionMap && o === "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 = o === "worker" ? void 0 : n.regionMap, n.chartEx && o === "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 = o === "worker" ? void 0 : n.chartEx, n.tiff && o === "worker" && !l?.tiff && console.warn("[ooxml] a custom TIFF codec cannot cross the worker boundary; recognized TIFF images will use an unavailable-image placeholder in mode: 'worker'. Use the codec from @silurus/ooxml/tiff to display them."), u._tiff = o === "worker" ? void 0 : n.tiff;
937
+ let t = n.progressiveLayout ? {
938
+ onProgress: n.onLayoutProgress,
939
+ onPartial: n.onLayoutPartial,
940
+ onComplete: n.onLayoutComplete,
941
+ firstPublication: Ht(),
940
942
  published: !1,
941
943
  deferred: !1,
942
944
  settled: !1
943
945
  } : void 0;
944
- return await u._parse(s, i.policy, !!r.useGoogleFonts, r.workerTimeoutMs, (e) => o.observeUsage(e), l, t), o.checkpoint("presentation preflight ready"), a === "main" && r.useGoogleFonts && u._preflight && !t && (u._googleFontFaces = await re(xt(u._preflight.fontPreloadNames, u._embeddedFontAliases), n)), o.succeed({ slides: u.slideCount }), u;
946
+ return await u._parse(r, a.policy, !!n.useGoogleFonts, n.workerTimeoutMs, (e) => s.observeUsage(e), l, t), s.checkpoint("presentation preflight ready"), o === "main" && n.useGoogleFonts && u._preflight && !t && (u._googleFontFaces = await _(Ct(u._preflight.fontPreloadNames, u._embeddedFontAliases), Ae)), s.succeed({ slides: u.slideCount }), u;
945
947
  } catch (e) {
946
948
  let t = u;
947
- throw ne(c, t ? () => t.destroy() : void 0), e;
949
+ throw g(c, t ? () => t.destroy() : void 0), e;
948
950
  }
949
951
  } catch (e) {
950
- throw o.fail(e), e;
952
+ throw s.fail(e), e;
951
953
  }
952
954
  }
953
- async _parse(e, n, r = !1, i, a, o, l) {
954
- if (l) {
955
- this._progressive = l, this._mode === "worker" ? await this._parseWorkerProgressively(e, n, r, i, a, o, l) : await this._parseMainProgressively(e, n, r, i, a, l);
955
+ async _parse(e, t, n = !1, r, i, a, o) {
956
+ if (o) {
957
+ this._progressive = o, this._mode === "worker" ? await this._parseWorkerProgressively(e, t, n, r, i, a, o) : await this._parseMainProgressively(e, t, n, r, i, o);
956
958
  return;
957
959
  }
958
- let u = await this._bridge.request((t) => this._mode === "worker" ? {
960
+ let c = await this._bridge.request((r) => this._mode === "worker" ? {
959
961
  kind: "parse",
960
- id: t,
962
+ id: r,
961
963
  buffer: e,
962
- resourcePolicy: n,
963
- useGoogleFonts: r,
964
- renderers: o
964
+ resourcePolicy: t,
965
+ useGoogleFonts: n,
966
+ cjkFallback: this._cjkFallback,
967
+ renderers: a
965
968
  } : {
966
969
  kind: "parse",
967
- id: t,
970
+ id: r,
968
971
  buffer: e,
969
- resourcePolicy: n
970
- }, [e], { timeoutMs: i });
972
+ resourcePolicy: t
973
+ }, [e], { timeoutMs: r });
971
974
  if (this._mode === "worker") {
972
- let e = u;
973
- e.usage && a?.(e.usage), this._preflight = c(u.preflight), this._bootstrap = this._preflight, this._availableSlideCount = this._preflight.slideCount;
975
+ let e = c;
976
+ e.usage && i?.(e.usage), this._preflight = M(c.preflight), this._bootstrap = this._preflight, this._availableSlideCount = this._preflight.slideCount;
974
977
  return;
975
978
  }
976
- let f = t(u.bootstrap);
977
- this._bootstrap = f;
978
- let p = bt(f.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
979
- this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
979
+ let l = A(c.bootstrap);
980
+ this._bootstrap = l;
981
+ let u = St(l.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
982
+ this._destroyed ? O(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
980
983
  });
981
- this._slidePullClient = new d({
982
- slideCount: f.slideCount,
983
- transport: this._bridge.transport(s),
984
+ this._slidePullClient = new Ie({
985
+ slideCount: l.slideCount,
986
+ transport: this._bridge.transport(Ne),
984
987
  open: async (e, t, n) => {
985
988
  await this._bridge.request((n) => ({
986
989
  kind: "openSlideSession",
@@ -989,65 +992,65 @@ var Y = class e {
989
992
  ...t
990
993
  }), void 0, { timeoutMs: n });
991
994
  },
992
- onUsage: a
995
+ onUsage: i
993
996
  });
994
- let h;
997
+ let d;
995
998
  try {
996
- for (let e = 0; e < f.slideCount; e += 1) await this._slidePullClient.load(e, !1, i);
997
- h = await this._bridge.request((e) => ({
999
+ for (let e = 0; e < l.slideCount; e += 1) await this._slidePullClient.load(e, !1, r);
1000
+ d = await this._bridge.request((e) => ({
998
1001
  kind: "finishPresentationPreflight",
999
1002
  id: e
1000
- }), void 0, { timeoutMs: i }), await p;
1003
+ }), void 0, { timeoutMs: r }), await u;
1001
1004
  } catch (e) {
1002
- throw p.catch(() => void 0), e;
1005
+ throw u.catch(() => void 0), e;
1003
1006
  }
1004
- this._preflight = c(h.preflight), this._availableSlideCount = this._preflight.slideCount, this._slides = new _t({
1007
+ this._preflight = M(d.preflight), this._availableSlideCount = this._preflight.slideCount, this._slides = new yt({
1005
1008
  slideCount: this._preflight.slideCount,
1006
1009
  maxCachedSlides: 8,
1007
- maxCachedStructuralBytes: m,
1010
+ maxCachedStructuralBytes: s,
1008
1011
  loadSlide: async (e) => {
1009
- let t = await this._slidePullClient?.load(e, !0, i);
1012
+ let t = await this._slidePullClient?.load(e, !0, r);
1010
1013
  if (!t) throw Error("PPTX slide pull client is unavailable");
1011
1014
  return t;
1012
1015
  }
1013
1016
  });
1014
1017
  }
1015
- async _parseMainProgressively(e, r, i, a, o, s) {
1016
- let c = t((await this._bridge.request((t) => ({
1018
+ async _parseMainProgressively(e, t, n, r, i, a) {
1019
+ let o = A((await this._bridge.request((n) => ({
1017
1020
  kind: "parse",
1018
- id: t,
1021
+ id: n,
1019
1022
  buffer: e,
1020
- resourcePolicy: r,
1023
+ resourcePolicy: t,
1021
1024
  progressiveLayout: !0
1022
- }), [e], { timeoutMs: a })).bootstrap);
1023
- this._bootstrap = c;
1024
- let u = bt(c.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
1025
- this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
1025
+ }), [e], { timeoutMs: r })).bootstrap);
1026
+ this._bootstrap = o;
1027
+ let c = St(o.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
1028
+ this._destroyed ? O(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
1026
1029
  });
1027
- this._slidePullClient = this._createSlidePullClient(c.slideCount, a, o), this._slides = new _t({
1028
- slideCount: c.slideCount,
1030
+ this._slidePullClient = this._createSlidePullClient(o.slideCount, r, i), this._slides = new yt({
1031
+ slideCount: o.slideCount,
1029
1032
  maxCachedSlides: 8,
1030
- maxCachedStructuralBytes: m,
1033
+ maxCachedStructuralBytes: s,
1031
1034
  loadSlide: async (e) => {
1032
- let t = await this._slidePullClient?.load(e, !0, a);
1035
+ let t = await this._slidePullClient?.load(e, !0, r);
1033
1036
  if (!t) throw Error("PPTX slide pull client is unavailable");
1034
1037
  return t;
1035
1038
  }
1036
1039
  });
1037
- let d = new l(c), f = /* @__PURE__ */ new Set(), p = async () => {
1038
- if (await u, !i) return;
1039
- let e = xt(d.currentFontPreloadNames, this._embeddedFontAliases).filter((e) => !!e && !f.has(e));
1040
+ let l = new Pe(o, { cjkFallback: this._cjkFallback }), u = /* @__PURE__ */ new Set(), d = async () => {
1041
+ if (await c, !n) return;
1042
+ let e = Ct(l.currentFontPreloadNames, this._embeddedFontAliases).filter((e) => !!e && !u.has(e));
1040
1043
  if (e.length !== 0) {
1041
- for (let t of e) f.add(t);
1042
- this._googleFontFaces.push(...await re(e, n));
1044
+ for (let t of e) u.add(t);
1045
+ this._googleFontFaces.push(...await _(e, Ae));
1043
1046
  }
1044
1047
  };
1045
1048
  this._layoutCompletion = (async () => {
1046
- for (let e = 0; e < c.slideCount; e += 1) await this._slides.withSlide(e, (e) => {
1047
- d.addSlide(e);
1048
- }), await p(), this._applyProgressivePrefix(d.snapshot(), s), e === 0 && s.deferred && await Rt();
1049
- await u, this._finishProgressiveLayout(d.finish(), s);
1050
- })().then(() => void 0, (e) => this._failProgressiveLayout(e, s)), await s.firstPublication.promise;
1049
+ for (let e = 0; e < o.slideCount; e += 1) await this._slides.withSlide(e, (e) => {
1050
+ l.addSlide(e);
1051
+ }), await d(), this._applyProgressivePrefix(l.snapshot(), a), e === 0 && a.deferred && await Vt();
1052
+ await c, this._finishProgressiveLayout(l.finish(), a);
1053
+ })().then(() => void 0, (e) => this._failProgressiveLayout(e, a)), await a.firstPublication.promise;
1051
1054
  }
1052
1055
  async _parseWorkerProgressively(e, t, n, r, i, a, o) {
1053
1056
  this._progressiveWatchdogMs = r;
@@ -1057,21 +1060,22 @@ var Y = class e {
1057
1060
  buffer: e,
1058
1061
  resourcePolicy: t,
1059
1062
  useGoogleFonts: n,
1063
+ cjkFallback: this._cjkFallback,
1060
1064
  renderers: a,
1061
1065
  progressiveLayout: !0
1062
1066
  }), [e], { timeoutMs: !1 });
1063
1067
  this._rearmProgressiveWatchdog(), this._layoutCompletion = s.then((e) => {
1064
1068
  this._parseRequestId = null;
1065
1069
  let t = e;
1066
- t.usage && i?.(t.usage), this._finishProgressiveLayout(c(t.preflight), o);
1070
+ t.usage && i?.(t.usage), this._finishProgressiveLayout(M(t.preflight), o);
1067
1071
  }, (e) => {
1068
1072
  this._parseRequestId = null, this._failProgressiveLayout(e, o);
1069
1073
  }), await o.firstPublication.promise;
1070
1074
  }
1071
1075
  _createSlidePullClient(e, t, n) {
1072
- return new d({
1076
+ return new Ie({
1073
1077
  slideCount: e,
1074
- transport: this._bridge.transport(s),
1078
+ transport: this._bridge.transport(Ne),
1075
1079
  open: async (e, n, r) => {
1076
1080
  await this._bridge.request((t) => ({
1077
1081
  kind: "openSlideSession",
@@ -1084,17 +1088,17 @@ var Y = class e {
1084
1088
  });
1085
1089
  }
1086
1090
  _onWorkerLayoutPush(e) {
1087
- if (!se((e, t) => this._worker.postMessage(e, t), e) && !(!("kind" in e) || e.kind !== "presentationLayoutPartial" || e.forId !== this._parseRequestId || !this._progressive)) try {
1088
- this._rearmProgressiveWatchdog(), e.usage && this._metrics?.observeUsage(e.usage), e.bootstrap && (this._bootstrap = t(e.bootstrap));
1089
- let n = this._bootstrap;
1090
- if (!n) throw Error("PPTX progressive worker published before bootstrap");
1091
- let r = this._preflight?.slides ?? [];
1092
- if (e.availableSlides !== r.length + 1 || e.slide.index !== r.length) throw Error("PPTX progressive worker published a non-sequential slide");
1093
- this._applyProgressivePrefix(u({
1094
- ...n,
1095
- slides: [...r, e.slide],
1091
+ if (!x((e, t) => this._worker.postMessage(e, t), e) && !(!("kind" in e) || e.kind !== "presentationLayoutPartial" || e.forId !== this._parseRequestId || !this._progressive)) try {
1092
+ this._rearmProgressiveWatchdog(), e.usage && this._metrics?.observeUsage(e.usage), e.bootstrap && (this._bootstrap = A(e.bootstrap));
1093
+ let t = this._bootstrap;
1094
+ if (!t) throw Error("PPTX progressive worker published before bootstrap");
1095
+ let n = this._preflight?.slides ?? [];
1096
+ if (e.availableSlides !== n.length + 1 || e.slide.index !== n.length) throw Error("PPTX progressive worker published a non-sequential slide");
1097
+ this._applyProgressivePrefix(Fe({
1098
+ ...t,
1099
+ slides: [...n, e.slide],
1096
1100
  fontPreloadNames: e.fontPreloadNames
1097
- }), this._progressive), Rt().then(() => {
1101
+ }), this._progressive), Vt().then(() => {
1098
1102
  this._destroyed || this._parseRequestId !== e.forId || this._bridge.post({
1099
1103
  kind: "continuePresentationPreflight",
1100
1104
  forId: e.forId,
@@ -1135,11 +1139,11 @@ var Y = class e {
1135
1139
  slideCount: this.slideCount,
1136
1140
  exact: !0,
1137
1141
  complete: !0
1138
- }), t.deferred && this._layoutObservers.notify("onLayoutComplete", t.onComplete));
1142
+ }), this._layoutObservers.notify("onLayoutComplete", t.onComplete));
1139
1143
  }
1140
1144
  _failProgressiveLayout(e, t) {
1141
1145
  if (t.settled || (t.settled = !0, this._clearProgressiveWatchdog(), this._destroyed)) return;
1142
- if (!t.published) {
1146
+ if (!t.deferred) {
1143
1147
  t.firstPublication.reject(e);
1144
1148
  return;
1145
1149
  }
@@ -1208,26 +1212,27 @@ var Y = class e {
1208
1212
  return (this._bootstrap?.slides ?? this._preflight?.slides ?? []).map((e) => e.partName);
1209
1213
  }
1210
1214
  _partIndex() {
1211
- return this._slidePartIndex ||= mt(this._partNames()), this._slidePartIndex;
1215
+ return this._slidePartIndex ||= gt(this._partNames()), this._slidePartIndex;
1212
1216
  }
1213
1217
  getSlideIndexByPartName(e) {
1214
1218
  return this._partIndex().get(e);
1215
1219
  }
1216
1220
  resolveInternalTarget(e, t = 0) {
1217
- return gt(e, this._partIndex(), t);
1221
+ return vt(e, this._partIndex(), t);
1218
1222
  }
1219
- async renderSlide(e, t, n = {}) {
1223
+ async renderSlide(e, n, r = {}) {
1220
1224
  this._assertResourceHealthy();
1221
1225
  try {
1222
1226
  if (this._mode === "worker") throw Error("renderSlide(canvas) is unavailable in mode: 'worker'; use renderSlideToBitmap() and paint it via an ImageBitmapRenderingContext");
1223
- this._assertSlideIndex(t), await this._waitForSlide(t);
1227
+ this._assertSlideIndex(n), await this._waitForSlide(n);
1224
1228
  let i = this._preflight, a = this._slides;
1225
1229
  if (!i || !a) throw Error("Presentation not loaded");
1226
- let o = n.dpr ?? p(), s = n.width ?? ((S(e) ? e.offsetWidth : 0) || 960);
1227
- await a.withSlide(t, (t) => (this._assertResourceHealthy(), r(e, t, i.slideWidth, i.slideHeight, {
1230
+ let o = r.dpr ?? t(), s = r.width ?? ((l(e) ? e.offsetWidth : 0) || 960);
1231
+ await a.withSlide(n, (t) => (this._assertResourceHealthy(), Le(e, t, i.slideWidth, i.slideHeight, {
1228
1232
  width: s,
1229
1233
  dpr: o,
1230
1234
  defaultTextColor: i.defaultTextColor,
1235
+ cjkFallback: this._cjkFallback,
1231
1236
  majorFont: i.majorFont,
1232
1237
  minorFont: i.minorFont,
1233
1238
  hlinkColor: i.hlinkColor,
@@ -1235,51 +1240,51 @@ var Y = class e {
1235
1240
  embeddedFontAuthoredFamilies: this._embeddedFontAuthoredFamilies,
1236
1241
  fetchMedia: this._fetchMedia,
1237
1242
  fetchImage: this._fetchImage,
1238
- skipMediaControls: n.skipMediaControls,
1239
- dim: n.dim,
1243
+ skipMediaControls: r.skipMediaControls,
1244
+ dim: r.dim,
1240
1245
  math: this._math,
1241
1246
  threeD: this._threeD,
1242
1247
  regionMap: this._regionMap,
1243
1248
  chartEx: this._chartEx,
1244
1249
  tiff: this._tiff,
1245
- imageResources: n.imageResources
1246
- }, n.onTextRun)));
1250
+ imageResources: r.imageResources
1251
+ }, r.onTextRun)));
1247
1252
  } catch (e) {
1248
1253
  this._rethrowWithResourceFailure(e);
1249
1254
  }
1250
1255
  }
1251
- async renderSlideToBitmap(e, t = {}) {
1256
+ async renderSlideToBitmap(e, n = {}) {
1252
1257
  this._assertResourceHealthy();
1253
1258
  try {
1254
1259
  this._assertSlideIndex(e), await this._waitForSlide(e);
1255
- let n = t.width ?? 960, r = t.dpr ?? p();
1260
+ let r = n.width ?? 960, i = n.dpr ?? t();
1256
1261
  if (this._mode === "worker") {
1257
- let i = await this._bridge.request((i) => ({
1262
+ let t = await this._bridge.request((t) => ({
1258
1263
  kind: "renderSlide",
1259
- id: i,
1264
+ id: t,
1260
1265
  slideIndex: e,
1261
- width: n,
1262
- dpr: r,
1263
- imageResources: t.imageResources,
1264
- skipMediaControls: t.skipMediaControls,
1265
- dim: t.dim
1266
+ width: r,
1267
+ dpr: i,
1268
+ imageResources: n.imageResources,
1269
+ skipMediaControls: n.skipMediaControls,
1270
+ dim: n.dim
1266
1271
  }));
1267
1272
  try {
1268
- if (t.onTextRun) for (let e of i.runs) t.onTextRun(e);
1273
+ if (n.onTextRun) for (let e of t.runs) n.onTextRun(e);
1269
1274
  } catch (e) {
1270
- throw b(i.bitmap), e;
1275
+ throw c(t.bitmap), e;
1271
1276
  }
1272
- return i.bitmap;
1277
+ return t.bitmap;
1273
1278
  }
1274
- let i = new OffscreenCanvas(1, 1);
1275
- return await this.renderSlide(i, e, {
1276
- width: n,
1277
- dpr: r,
1278
- imageResources: t.imageResources,
1279
- skipMediaControls: t.skipMediaControls,
1280
- dim: t.dim,
1281
- onTextRun: t.onTextRun
1282
- }), i.transferToImageBitmap();
1279
+ let a = new OffscreenCanvas(1, 1);
1280
+ return await this.renderSlide(a, e, {
1281
+ width: r,
1282
+ dpr: i,
1283
+ imageResources: n.imageResources,
1284
+ skipMediaControls: n.skipMediaControls,
1285
+ dim: n.dim,
1286
+ onTextRun: n.onTextRun
1287
+ }), a.transferToImageBitmap();
1283
1288
  } catch (e) {
1284
1289
  this._rethrowWithResourceFailure(e);
1285
1290
  }
@@ -1313,7 +1318,7 @@ var Y = class e {
1313
1318
  options: n
1314
1319
  }))).context;
1315
1320
  if (!this._slides) throw Error("Presentation not loaded");
1316
- return await this._slides.withSlide(e, (r) => It(e, r, t, n));
1321
+ return await this._slides.withSlide(e, (r) => Rt(e, r, t, n));
1317
1322
  } catch (e) {
1318
1323
  this._rethrowWithResourceFailure(e);
1319
1324
  }
@@ -1330,7 +1335,7 @@ var Y = class e {
1330
1335
  elementIds: n
1331
1336
  }))).bounds;
1332
1337
  if (!this._slides) throw Error("Presentation not loaded");
1333
- return await this._slides.withSlide(e, (e) => Lt(e, n));
1338
+ return await this._slides.withSlide(e, (e) => zt(e, n));
1334
1339
  } catch (e) {
1335
1340
  this._rethrowWithResourceFailure(e);
1336
1341
  }
@@ -1352,7 +1357,7 @@ var Y = class e {
1352
1357
  }
1353
1358
  }
1354
1359
  _findMimeTypeForPath(e) {
1355
- return this._preflight ? a(this._preflight, e) : "";
1360
+ return this._preflight ? je(this._preflight, e) : "";
1356
1361
  }
1357
1362
  async getImage(e, t) {
1358
1363
  this._assertResourceHealthy();
@@ -1385,7 +1390,7 @@ var Y = class e {
1385
1390
  async getResourceMetrics() {
1386
1391
  let e = this._metrics;
1387
1392
  if (!e) throw Error("Presentation not loaded");
1388
- return g(e, async (e) => (await this._bridge.request((e) => ({
1393
+ return i(e, async (e) => (await this._bridge.request((e) => ({
1389
1394
  kind: "resourceUsage",
1390
1395
  id: e
1391
1396
  }), void 0, { timeoutMs: e })).usage);
@@ -1401,58 +1406,58 @@ var Y = class e {
1401
1406
  this._rethrowWithResourceFailure(e);
1402
1407
  }
1403
1408
  }
1404
- async presentSlide(e, t, n = {}) {
1409
+ async presentSlide(e, n, r = {}) {
1405
1410
  this._assertResourceHealthy();
1406
1411
  try {
1407
- if (this._assertSlideIndex(t), await this._waitForSlide(t), !this._preflight) throw Error("Presentation not loaded");
1408
- let r = n.dpr ?? p(), i = n.width ?? (e.offsetWidth || 960), a = this.slideWidth > 0 ? i * this.slideHeight / this.slideWidth : 0;
1409
- e.style.width = `${Math.round(i)}px`, e.style.height = `${Math.round(a)}px`, e.style.display || (e.style.display = "block");
1410
- let o = this._mode === "worker" ? async () => {
1411
- let a = await this.renderSlideToBitmap(t, {
1412
- width: i,
1413
- dpr: r,
1414
- imageResources: n.imageResources,
1412
+ if (this._assertSlideIndex(n), await this._waitForSlide(n), !this._preflight) throw Error("Presentation not loaded");
1413
+ let i = r.dpr ?? t(), a = r.width ?? (e.offsetWidth || 960), o = this.slideWidth > 0 ? a * this.slideHeight / this.slideWidth : 0;
1414
+ e.style.width = `${Math.round(a)}px`, e.style.height = `${Math.round(o)}px`, e.style.display || (e.style.display = "block");
1415
+ let s = this._mode === "worker" ? async () => {
1416
+ let t = await this.renderSlideToBitmap(n, {
1417
+ width: a,
1418
+ dpr: i,
1419
+ imageResources: r.imageResources,
1415
1420
  skipMediaControls: !0,
1416
- dim: n.dim,
1417
- onTextRun: n.onTextRun
1421
+ dim: r.dim,
1422
+ onTextRun: r.onTextRun
1418
1423
  });
1419
1424
  try {
1420
- e.width = a.width, e.height = a.height;
1421
- let t = e.getContext("2d");
1422
- if (!t) throw Error("2D context not available");
1423
- t.drawImage(a, 0, 0);
1425
+ e.width = t.width, e.height = t.height;
1426
+ let n = e.getContext("2d");
1427
+ if (!n) throw Error("2D context not available");
1428
+ n.drawImage(t, 0, 0);
1424
1429
  } finally {
1425
- b(a);
1430
+ c(t);
1426
1431
  }
1427
- } : () => this.renderSlide(e, t, {
1428
- width: i,
1429
- dpr: r,
1430
- imageResources: n.imageResources,
1432
+ } : () => this.renderSlide(e, n, {
1433
+ width: a,
1434
+ dpr: i,
1435
+ imageResources: r.imageResources,
1431
1436
  skipMediaControls: !0,
1432
- dim: n.dim,
1433
- onTextRun: n.onTextRun
1437
+ dim: r.dim,
1438
+ onTextRun: r.onTextRun
1434
1439
  });
1435
- return await $e(e, this._preflight.slides[t]?.mediaElements ?? [], {
1436
- width: i,
1437
- height: a,
1440
+ return await tt(e, this._preflight.slides[n]?.mediaElements ?? [], {
1441
+ width: a,
1442
+ height: o,
1438
1443
  slideWidthEmu: this.slideWidth,
1439
1444
  fetchMedia: this._fetchMedia,
1440
1445
  fetchImage: this._fetchImage,
1441
- drawBase: o,
1442
- onError: n.onError
1446
+ drawBase: s,
1447
+ onError: r.onError
1443
1448
  });
1444
1449
  } catch (e) {
1445
1450
  this._rethrowWithResourceFailure(e);
1446
1451
  }
1447
1452
  }
1448
1453
  destroy() {
1449
- this._destroyed = !0, this._clearProgressiveWatchdog(), this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._bootstrap = null, this._preflight = null, this._availableSlideCount = 0, this._layoutLifecycle.succeed(), this._layoutCompletion = null, this._progressive = null, this._parseRequestId = null, this._wakeLayoutWaiters(), this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (oe(this._googleFontFaces), this._googleFontFaces = []), this._embeddedFontFaces.length > 0 && (j(this._embeddedFontFaces), this._embeddedFontFaces = []), this._embeddedFontAliases = /* @__PURE__ */ new Map(), this._embeddedFontAuthoredFamilies = /* @__PURE__ */ new Map(), C(this._fetchImage), w(this._fetchImage);
1454
+ this._destroyed = !0, this._clearProgressiveWatchdog(), this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._bootstrap = null, this._preflight = null, this._availableSlideCount = 0, this._layoutLifecycle.succeed(), this._layoutCompletion = null, this._progressive = null, this._parseRequestId = null, this._wakeLayoutWaiters(), this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (b(this._googleFontFaces), this._googleFontFaces = []), this._embeddedFontFaces.length > 0 && (O(this._embeddedFontFaces), this._embeddedFontFaces = []), this._embeddedFontAliases = /* @__PURE__ */ new Map(), this._embeddedFontAuthoredFamilies = /* @__PURE__ */ new Map(), u(this._fetchImage), f(this._fetchImage);
1450
1455
  }
1451
1456
  };
1452
1457
  //#endregion
1453
1458
  //#region packages/pptx/src/selection-context.ts
1454
- function Bt(e, t, n, r, i = {}) {
1455
- let a = De({
1459
+ function Ut(e, t, n, r, i = {}) {
1460
+ let a = be({
1456
1461
  id: e.id,
1457
1462
  author: e.author,
1458
1463
  date: e.date,
@@ -1483,23 +1488,23 @@ function Bt(e, t, n, r, i = {}) {
1483
1488
  maxTextCharacters: a.maxTextCharacters
1484
1489
  });
1485
1490
  }
1486
- function X(e) {
1491
+ function Y(e) {
1487
1492
  if (e === void 0 || !/^\d+$/.test(e)) return null;
1488
1493
  let t = Number(e);
1489
1494
  return Number.isSafeInteger(t) ? t : null;
1490
1495
  }
1491
- function Vt(e) {
1496
+ function Wt(e) {
1492
1497
  for (let t = e; t; t = t.parentElement) {
1493
- let e = X(t.dataset.slideIndex);
1498
+ let e = Y(t.dataset.slideIndex);
1494
1499
  if (e !== null) return e;
1495
1500
  }
1496
1501
  return null;
1497
1502
  }
1498
- function Z(e, t, n = {}) {
1499
- let r = be(e, t, (e) => {
1500
- let t = Vt(e), n = X(e.dataset.runIndex);
1503
+ function X(e, t, n = {}) {
1504
+ let r = ue(e, t, (e) => {
1505
+ let t = Wt(e), n = Y(e.dataset.runIndex);
1501
1506
  if (t === null || n === null) return null;
1502
- let r = X(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
1507
+ let r = Y(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
1503
1508
  return {
1504
1509
  slideIndex: t,
1505
1510
  runIndex: n,
@@ -1531,12 +1536,12 @@ function Z(e, t, n = {}) {
1531
1536
  }
1532
1537
  //#endregion
1533
1538
  //#region packages/pptx/src/focused-view-runtime.ts
1534
- function Q(e, t, n, r, i) {
1539
+ function Z(e, t, n, r, i) {
1535
1540
  return r === "worker" ? e.renderSlideToBitmap(n, i) : e.renderSlide(t, n, i);
1536
1541
  }
1537
1542
  //#endregion
1538
1543
  //#region packages/pptx/src/loading-indicator.ts
1539
- function Ht(e) {
1544
+ function Gt(e) {
1540
1545
  let t = e.createElement("span");
1541
1546
  t.style.cssText = [
1542
1547
  "position:absolute",
@@ -1569,10 +1574,10 @@ function Ht(e) {
1569
1574
  }
1570
1575
  //#endregion
1571
1576
  //#region packages/pptx/src/viewer.ts
1572
- var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1577
+ var Kt = Symbol("PptxViewer.borrowedPresentation"), qt = {
1573
1578
  color: "#ffffff",
1574
1579
  opacity: .6
1575
- }, Gt = class e {
1580
+ }, Q = class e {
1576
1581
  canvas;
1577
1582
  wrapper;
1578
1583
  canvasMount;
@@ -1618,35 +1623,36 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1618
1623
  static fromPresentation(t, n, r = {}) {
1619
1624
  return new e(t, {
1620
1625
  ...r,
1621
- [Ut]: n
1626
+ [Kt]: n
1622
1627
  });
1623
1628
  }
1624
1629
  constructor(e, t = {}) {
1625
1630
  this.opts = t, this.canvas = e;
1626
- let n = t[Ut];
1627
- this.borrowed = n !== void 0, this._mode = k("PptxViewer", t.mode, n), this.presentationOwner = new E("PptxViewer", n ?? null, !1);
1631
+ let n = t[Kt];
1632
+ this.borrowed = n !== void 0, this._mode = D("PptxViewer", t.mode, n), this.presentationOwner = new w("PptxViewer", n ?? null, !1);
1628
1633
  let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
1629
1634
  if (!r) throw Error("PptxViewer requires a canvas with an active Window");
1630
1635
  this.hostWindow = r;
1631
1636
  let i = t.elementHitTolerance ?? 6;
1632
1637
  if (!Number.isFinite(i) || i < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
1633
- this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new xe(e, {
1638
+ this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new de(e, {
1634
1639
  wrapperCssText: "position:relative;display:inline-block;vertical-align:top;",
1635
1640
  forceDisplayBlock: !0
1636
- }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new O(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new ye("PptxViewer", t.onError);
1637
- let a = new ge(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1638
- this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this._loadingLayer = Ht(this.wrapper.ownerDocument), this.wrapper.insertBefore(this._loadingLayer, this.elementLayer), this.textLayer && (t.onSelectionContextChange || t.enableElementSelection) && (this.selectionChangeListener = () => this._emitSelectionContextChange(), this.wrapper.ownerDocument.addEventListener("selectionchange", this.selectionChangeListener)), t.enableElementSelection && (this.elementClickListener = (e) => {
1641
+ }), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new E(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new le("PptxViewer", t.onError);
1642
+ let a = new oe(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
1643
+ this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this._loadingLayer = Gt(this.wrapper.ownerDocument), this.wrapper.insertBefore(this._loadingLayer, this.elementLayer), this.textLayer && (t.onSelectionContextChange || t.enableElementSelection) && (this.selectionChangeListener = () => this._emitSelectionContextChange(), this.wrapper.ownerDocument.addEventListener("selectionchange", this.selectionChangeListener)), t.enableElementSelection && (this.elementClickListener = (e) => {
1639
1644
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
1640
- }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new Je(() => this.slideCount, (e) => this._collectSlideRuns(e)), n && this._bindLayoutPresentation(n);
1645
+ }, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new Xe(() => this.slideCount, (e) => this._collectSlideRuns(e)), n && this._bindLayoutPresentation(n);
1641
1646
  }
1642
1647
  async load(e) {
1643
1648
  if (this.destroyed) throw Error("PptxViewer is destroyed");
1644
1649
  if (this.borrowed) throw Error("PptxViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
1645
1650
  let t = !1;
1646
1651
  try {
1647
- let n = await this.presentationOwner.replace(() => Y.load(e, {
1652
+ let n = await this.presentationOwner.replace(() => J.load(e, {
1648
1653
  password: this.opts.password,
1649
1654
  useGoogleFonts: this.opts.useGoogleFonts,
1655
+ cjkFallback: this.opts.cjkFallback,
1650
1656
  maxZipEntryBytes: this.opts.maxZipEntryBytes,
1651
1657
  resourceLimits: this.opts.resourceLimits,
1652
1658
  debug: this.opts.debug,
@@ -1711,8 +1717,8 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1711
1717
  }
1712
1718
  _dim() {
1713
1719
  return {
1714
- color: this.opts.hiddenSlideDim?.color ?? Wt.color,
1715
- opacity: this.opts.hiddenSlideDim?.opacity ?? Wt.opacity
1720
+ color: this.opts.hiddenSlideDim?.color ?? qt.color,
1721
+ opacity: this.opts.hiddenSlideDim?.opacity ?? qt.opacity
1716
1722
  };
1717
1723
  }
1718
1724
  async setHiddenSlideMode(e) {
@@ -1734,7 +1740,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1734
1740
  get visibleSlideCount() {
1735
1741
  if (!this.engine) return 0;
1736
1742
  let e = this.engine;
1737
- return Le((t) => e.isHidden(t), this.slideCount);
1743
+ return ze((t) => e.isHidden(t), this.slideCount);
1738
1744
  }
1739
1745
  get slideIndex() {
1740
1746
  return this.currentSlide;
@@ -1761,7 +1767,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1761
1767
  }
1762
1768
  _naturalWidthPx() {
1763
1769
  let e = this.engine?.slideWidth ?? 0;
1764
- return e > 0 ? e / M : 0;
1770
+ return e > 0 ? e / k : 0;
1765
1771
  }
1766
1772
  _targetWidth() {
1767
1773
  if (this._scale === null) return this.opts.width ?? (this.canvas.offsetWidth || 960);
@@ -1780,14 +1786,14 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1780
1786
  return this.opts.zoomMax ?? 4;
1781
1787
  }
1782
1788
  async setScale(e) {
1783
- let t = pe(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1789
+ let t = re(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
1784
1790
  this._scale = t, await this.renderCurrentSlide(), n && this.opts.onScaleChange?.(t);
1785
1791
  }
1786
1792
  async zoomIn() {
1787
- await this.setScale(Se(this.getScale()));
1793
+ await this.setScale(fe(this.getScale()));
1788
1794
  }
1789
1795
  async zoomOut() {
1790
- await this.setScale(A(this.getScale()));
1796
+ await this.setScale(he(this.getScale()));
1791
1797
  }
1792
1798
  async fitWidth() {
1793
1799
  await this._fit("width");
@@ -1799,9 +1805,9 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1799
1805
  if (!this.engine) return;
1800
1806
  let t = this.wrapper.parentElement;
1801
1807
  if (!t) return;
1802
- let n = le({
1803
- contentWidth: this.engine.slideWidth / M,
1804
- contentHeight: this.engine.slideHeight / M,
1808
+ let n = C({
1809
+ contentWidth: this.engine.slideWidth / k,
1810
+ contentHeight: this.engine.slideHeight / k,
1805
1811
  containerWidth: t.clientWidth,
1806
1812
  containerHeight: t.clientHeight
1807
1813
  }, e);
@@ -1835,7 +1841,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1835
1841
  }
1836
1842
  this.handle = n;
1837
1843
  } else if (l) {
1838
- let e = await Q(this.engine, this.canvas, t, "worker", {
1844
+ let e = await Z(this.engine, this.canvas, t, "worker", {
1839
1845
  width: a,
1840
1846
  dpr: o,
1841
1847
  imageResources: this.opts.imageResources,
@@ -1843,7 +1849,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1843
1849
  onTextRun: d
1844
1850
  });
1845
1851
  if (!this.renderDispatcher.commitBitmap(r, e)) return;
1846
- } else if (await Q(this.engine, this.canvas, t, "main", {
1852
+ } else if (await Z(this.engine, this.canvas, t, "main", {
1847
1853
  width: a,
1848
1854
  dpr: o,
1849
1855
  imageResources: this.opts.imageResources,
@@ -1861,7 +1867,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1861
1867
  _bindLayoutPresentation(e) {
1862
1868
  this._unbindLayoutPresentation(), this._layoutFailed = !1;
1863
1869
  let t = !0;
1864
- this._layoutUnsubscribe = J(e, () => ({
1870
+ this._layoutUnsubscribe = Bt(e, () => ({
1865
1871
  availableSlides: e.availableSlideCount,
1866
1872
  slideCount: e.slideCount,
1867
1873
  exact: e.layoutComplete,
@@ -1960,7 +1966,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1960
1966
  return;
1961
1967
  }
1962
1968
  if (t.kind === "external") {
1963
- T(t.url, void 0, this.hostWindow);
1969
+ p(t.url, void 0, this.hostWindow);
1964
1970
  return;
1965
1971
  }
1966
1972
  t.slideIndex !== void 0 && this.goToSlide(t.slideIndex).catch((e) => this._reportRenderError(e));
@@ -1982,7 +1988,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1982
1988
  }
1983
1989
  getSelectionContext(e = {}) {
1984
1990
  if (this.destroyed) throw Error("PptxViewer is destroyed");
1985
- return (this.textLayer ? Z(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? Pt(this.elementContext, e.maxTextCharacters) : null);
1991
+ return (this.textLayer ? X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? It(this.elementContext, e.maxTextCharacters) : null);
1986
1992
  }
1987
1993
  _emitSelectionContextChange() {
1988
1994
  let e = this.getSelectionContext();
@@ -1999,10 +2005,10 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
1999
2005
  _redrawElementOutline() {
2000
2006
  let e = this.elementContext, t = this.engine;
2001
2007
  if (!e || !t || e.slideIndex !== this.currentSlide) {
2002
- D(this.elementLayer, null);
2008
+ T(this.elementLayer, null);
2003
2009
  return;
2004
2010
  }
2005
- D(this.elementLayer, {
2011
+ T(this.elementLayer, {
2006
2012
  x: e.bounds.x / t.slideWidth,
2007
2013
  y: e.bounds.y / t.slideHeight,
2008
2014
  width: e.bounds.width / t.slideWidth,
@@ -2023,7 +2029,7 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
2023
2029
  async _resolveContextAt(e) {
2024
2030
  let t = this.engine;
2025
2031
  if (this.destroyed || !t) return null;
2026
- if (this.textLayer && Z(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
2032
+ if (this.textLayer && X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
2027
2033
  if (!this.opts.enableElementSelection) return this.getSelectionContext();
2028
2034
  let n = this.canvas.getBoundingClientRect();
2029
2035
  if (n.width <= 0 || n.height <= 0) return this._invalidateElementSelection(), null;
@@ -2045,13 +2051,13 @@ var Ut = Symbol("PptxViewer.borrowedPresentation"), Wt = {
2045
2051
  return this.destroyed || a !== this.elementHitGeneration || o !== this.currentSlide || t !== this.engine ? null : (this._setElementContext(c), this.destroyed ? null : this.getSelectionContext());
2046
2052
  }
2047
2053
  destroy() {
2048
- this.destroyed || (this.destroyed = !0, this.errorRouter.close(), this.renderDispatcher.destroy(), o(this.canvas), this.handle?.destroy(), this.handle = null, this._unbindLayoutPresentation(), this.presentationOwner.close(), this._invalidateFind(), this.selectionChangeListener &&= (this.wrapper.ownerDocument.removeEventListener("selectionchange", this.selectionChangeListener), null), this.elementHitGeneration++, this.elementClickListener &&= (this.wrapper.removeEventListener("click", this.elementClickListener), null), this.contextMenuListener &&= (this.wrapper.removeEventListener("contextmenu", this.contextMenuListener), null), this.elementContext = null, this.canvasMount.restore());
2054
+ this.destroyed || (this.destroyed = !0, this.errorRouter.close(), this.renderDispatcher.destroy(), ke(this.canvas), this.handle?.destroy(), this.handle = null, this._unbindLayoutPresentation(), this.presentationOwner.close(), this._invalidateFind(), this.selectionChangeListener &&= (this.wrapper.ownerDocument.removeEventListener("selectionchange", this.selectionChangeListener), null), this.elementHitGeneration++, this.elementClickListener &&= (this.wrapper.removeEventListener("click", this.elementClickListener), null), this.contextMenuListener &&= (this.wrapper.removeEventListener("contextmenu", this.contextMenuListener), null), this.elementContext = null, this.canvasMount.restore());
2049
2055
  }
2050
- }, Kt = 150, qt = "0 1px 3px rgba(0,0,0,0.2)", Jt = 12, Yt;
2051
- function Xt() {
2052
- return Yt ??= import("./comment-ui-runtime-lXwVOgjW.js");
2056
+ }, Jt = 150, Yt = "0 1px 3px rgba(0,0,0,0.2)", Xt = 12, Zt;
2057
+ function Qt() {
2058
+ return Zt ??= import("./comment-ui-runtime-BfE7MJZn.js");
2053
2059
  }
2054
- var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t = class e {
2060
+ var $ = 440, $t = 20, en = Symbol("PptxScrollViewer.borrowedPresentation"), tn = class e {
2055
2061
  _presentationOwner;
2056
2062
  get _pres() {
2057
2063
  return this._presentationOwner.current;
@@ -2106,24 +2112,24 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2106
2112
  _prevBase = 0;
2107
2113
  _lastFitWidth = 0;
2108
2114
  _pageShadow;
2109
- _find = new Je(() => this.slideCount, (e) => this._collectSlideRuns(e));
2115
+ _find = new Xe(() => this.slideCount, (e) => this._collectSlideRuns(e));
2110
2116
  _findGeneration = 0;
2111
2117
  _findActive = !1;
2112
2118
  _findMeasureCtx;
2113
2119
  static fromPresentation(t, n, r = {}) {
2114
2120
  return new e(t, {
2115
2121
  ...r,
2116
- [Qt]: n
2122
+ [en]: n
2117
2123
  });
2118
2124
  }
2119
2125
  constructor(e, t = {}) {
2120
2126
  if (e.tagName === "CANVAS") throw Error("PptxScrollViewer takes a container element (e.g. a <div>), not a <canvas> — the viewer creates and manages its own canvases. Pass a block container; for the single-slide canvas API use PptxViewer.");
2121
- this._container = e, this._opts = t, this._errorRouter = new ye("PptxScrollViewer", t.onError);
2127
+ this._container = e, this._opts = t, this._errorRouter = new le("PptxScrollViewer", t.onError);
2122
2128
  let n = t.elementHitTolerance ?? 6;
2123
2129
  if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
2124
- this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? qt;
2125
- let r = t[Qt];
2126
- this._borrowed = r !== void 0, r ? (this._presentationOwner = new E("PptxScrollViewer", r, !1), this._mode = k("PptxScrollViewer", t.mode, r), this._scanAvailableComments(r, !1)) : (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), this._commentsEnabled() && Xt().then((e) => {
2130
+ this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? Yt;
2131
+ let r = t[en];
2132
+ this._borrowed = r !== void 0, r ? (this._presentationOwner = new w("PptxScrollViewer", r, !1), this._mode = D("PptxScrollViewer", t.mode, r), this._scanAvailableComments(r, !1)) : (this._presentationOwner = new w("PptxScrollViewer"), this._mode = D("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper), this._commentsEnabled() && Qt().then((e) => {
2127
2133
  if (!this._destroyed) {
2128
2134
  this._commentUi = e;
2129
2135
  for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
@@ -2131,7 +2137,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2131
2137
  }).catch((e) => this._reportRenderError(e)), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
2132
2138
  this._onElementClick(e).catch((e) => this._reportRenderError(e));
2133
2139
  }, this._scrollHost.addEventListener("click", this._elementClickListener)), t.onContextMenu && (this._contextMenuListener = (e) => this._onContextMenu(e), this._scrollHost.addEventListener("contextmenu", this._contextMenuListener)), this._scrollListener = () => this._onScroll(), this._scrollHost.addEventListener("scroll", this._scrollListener), t.comments && (this._commentOutsidePointerListener = (e) => {
2134
- if (!ke(e, this._wrapper, "ooxmlCommentId") && this._activeCommentId !== null) {
2140
+ if (!Se(e, this._wrapper, "ooxmlCommentId") && this._activeCommentId !== null) {
2135
2141
  this._activeCommentId = null, this._activeCommentSlide = null;
2136
2142
  for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
2137
2143
  this._emitSelectionContextChange();
@@ -2142,7 +2148,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2142
2148
  this._pendingZoomAnchor = Number.isFinite(n) && Number.isFinite(r) ? {
2143
2149
  x: n,
2144
2150
  y: r
2145
- } : null, this.setScale(we(this._scale, e.deltaY, e.deltaMode));
2151
+ } : null, this.setScale(me(this._scale, e.deltaY, e.deltaMode));
2146
2152
  }, this._scrollHost.addEventListener("wheel", this._wheelListener, { passive: !1 })), typeof ResizeObserver < "u" && (this._resizeObserver = new ResizeObserver(() => this._onResize()), this._resizeObserver.observe(this._container)), this._borrowed && (this._bindLayoutPresentation(r), this.relayout());
2147
2153
  }
2148
2154
  async load(e) {
@@ -2150,9 +2156,10 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2150
2156
  if (this._borrowed) throw Error("PptxScrollViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
2151
2157
  let t = !1;
2152
2158
  try {
2153
- let n = await this._presentationOwner.replace(() => Y.load(e, {
2159
+ let n = await this._presentationOwner.replace(() => J.load(e, {
2154
2160
  password: this._opts.password,
2155
2161
  useGoogleFonts: this._opts.useGoogleFonts,
2162
+ cjkFallback: this._opts.cjkFallback,
2156
2163
  maxZipEntryBytes: this._opts.maxZipEntryBytes,
2157
2164
  resourceLimits: this._opts.resourceLimits,
2158
2165
  debug: this._opts.debug,
@@ -2200,10 +2207,10 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2200
2207
  });
2201
2208
  }
2202
2209
  _slideWidthPx() {
2203
- return this._pres.slideWidth / M * this._scale;
2210
+ return this._pres.slideWidth / k * this._scale;
2204
2211
  }
2205
2212
  _slideHeightPx() {
2206
- return this._pres.slideHeight / M * this._scale;
2213
+ return this._pres.slideHeight / k * this._scale;
2207
2214
  }
2208
2215
  _fitWidthPx() {
2209
2216
  if (this._opts.width && this._opts.width > 0) return this._opts.width;
@@ -2213,7 +2220,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2213
2220
  return r <= 0 ? 0 : r;
2214
2221
  }
2215
2222
  _commentMarginExtent() {
2216
- return this._hasCommentMargin() ? (Jt + $) * this._commentZoom() : 0;
2223
+ return this._hasCommentMargin() ? (Xt + $) * this._commentZoom() : 0;
2217
2224
  }
2218
2225
  _hasCommentMargin() {
2219
2226
  return this._commentsEnabled() && this._hasComments && this._commentsOptions()?.cards !== !1;
@@ -2234,8 +2241,8 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2234
2241
  _syncCommentMarginGeometry(e) {
2235
2242
  if (!e) return;
2236
2243
  e.style.display = this._hasCommentMargin() ? "" : "none";
2237
- let t = this._commentZoom(), n = `calc(100% + ${Jt * t}px)`;
2238
- e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${Zt}px`, e.dataset.ooxmlCommentZoom = String(t);
2244
+ let t = this._commentZoom(), n = `calc(100% + ${Xt * t}px)`;
2245
+ e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${$t}px`, e.dataset.ooxmlCommentZoom = String(t);
2239
2246
  }
2240
2247
  _scanAvailableComments(e, t) {
2241
2248
  if (!this._commentsEnabled() || this._hasComments) return;
@@ -2252,7 +2259,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2252
2259
  }
2253
2260
  _baseScale() {
2254
2261
  if (!this._pres || this._pres.slideCount === 0) return 0;
2255
- let e = this._fitWidthPx(), t = this._pres.slideWidth / M;
2262
+ let e = this._fitWidthPx(), t = this._pres.slideWidth / k;
2256
2263
  return e <= 0 || t <= 0 ? 0 : e / t;
2257
2264
  }
2258
2265
  relayout() {
@@ -2302,10 +2309,10 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2302
2309
  return this._pad().leading + e * (this._uniformSlideHeight + this._gap());
2303
2310
  }
2304
2311
  _slideIndexAtOffset(e) {
2305
- return Te(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, 0, 0, this._pad()).topIndex;
2312
+ return ge(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, 0, 0, this._pad()).topIndex;
2306
2313
  }
2307
2314
  _rangeAt(e, t) {
2308
- return Te(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, this._scrollHost.clientHeight, t, this._pad());
2315
+ return ge(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, this._scrollHost.clientHeight, t, this._pad());
2309
2316
  }
2310
2317
  _range() {
2311
2318
  return this._rangeAt(this._scrollHost.scrollTop, this._overscan());
@@ -2355,11 +2362,11 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2355
2362
  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));
2356
2363
  let i = document.createElement("div");
2357
2364
  i.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;", t.appendChild(i);
2358
- let a = Ht(document);
2365
+ let a = Gt(document);
2359
2366
  t.appendChild(a);
2360
2367
  let o = null, s = null, c = null;
2361
2368
  this._commentsEnabled() && (o = document.createElement("div"), o.style.cssText = "position:absolute;inset:0;overflow:hidden;pointer-events:none;", t.appendChild(o), this._commentsOptions()?.cards !== !1 && (s = document.createElement("div"), s.style.cssText = "position:absolute;top:0;height:100%;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;pointer-events:auto;", this._syncCommentMarginGeometry(s), this._commentsOptions()?.connectors !== void 0 && (c = document.createElement("div"), c.style.cssText = "position:absolute;top:0;left:0;overflow:visible;pointer-events:none;", t.appendChild(c)), t.appendChild(s)));
2362
- let l = _e(t, this._opts.enableElementSelection === !0);
2369
+ let l = se(t, this._opts.enableElementSelection === !0);
2363
2370
  return this._scrollHost.appendChild(t), {
2364
2371
  wrapper: t,
2365
2372
  canvas: n,
@@ -2376,7 +2383,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2376
2383
  commentAnchorGeneration: 0,
2377
2384
  renderedSlide: -1,
2378
2385
  renderedScale: -1,
2379
- dispatcher: new O(n, this._mode === "worker" && !this._opts.enableMediaPlayback),
2386
+ dispatcher: new E(n, this._mode === "worker" && !this._opts.enableMediaPlayback),
2380
2387
  presentationHandle: null,
2381
2388
  mediaInteractive: !1,
2382
2389
  renderGeneration: 0,
@@ -2384,7 +2391,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2384
2391
  };
2385
2392
  }
2386
2393
  _recycleSlot(e, t) {
2387
- 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" && !this._opts.enableMediaPlayback)), t.textLayer && (t.textLayer.innerHTML = "", this._clearTextLayerPreview(t.textLayer)), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", t.loadingLayer.style.display = "none", t.commentMarkerLayer && (t.commentMarkerLayer.replaceChildren(), t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (this._commentUi?.disposeReadOnlyCommentMargin(t.commentMargin), this._commentUi || t.commentMargin.replaceChildren(), t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (this._commentUi?.disposeReadOnlyCommentDecoration(t.commentDecorationLayer), this._commentUi || t.commentDecorationLayer.replaceChildren(), t.commentDecorationLayer.style.visibility = ""), t.commentElementBounds = Object.freeze([]), t.commentGeometry = null, t.commentAnchorSlide = -1, t.commentAnchorGeneration++, D(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
2394
+ 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 E(t.canvas, this._mode === "worker" && !this._opts.enableMediaPlayback)), t.textLayer && (t.textLayer.innerHTML = "", this._clearTextLayerPreview(t.textLayer)), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", t.loadingLayer.style.display = "none", t.commentMarkerLayer && (t.commentMarkerLayer.replaceChildren(), t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (this._commentUi?.disposeReadOnlyCommentMargin(t.commentMargin), this._commentUi || t.commentMargin.replaceChildren(), t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (this._commentUi?.disposeReadOnlyCommentDecoration(t.commentDecorationLayer), this._commentUi || t.commentDecorationLayer.replaceChildren(), t.commentDecorationLayer.style.visibility = ""), t.commentElementBounds = Object.freeze([]), t.commentGeometry = null, t.commentAnchorSlide = -1, t.commentAnchorGeneration++, T(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
2388
2395
  }
2389
2396
  _positionSlot(e, t, n) {
2390
2397
  e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${this._slideOffset(t)}px`;
@@ -2410,7 +2417,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2410
2417
  if (this._opts.enableMediaPlayback && n) return t.mediaInteractive = !0, this._trackSlotLoading(e, t, i, this._renderInteractiveSlot(e, t, o, a, c, s, r));
2411
2418
  if (t.mediaInteractive = !1, this._mode === "worker") return this._trackSlotLoading(e, t, i, this._renderSlotBitmap(e, t, o, a, c, i, l, u, r));
2412
2419
  let d = [], f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = p ? (e) => d.push(e) : void 0, h = t.canvas;
2413
- return this._trackSlotLoading(e, t, i, Q(this._pres, h, e, "main", {
2420
+ return this._trackSlotLoading(e, t, i, Z(this._pres, h, e, "main", {
2414
2421
  width: o,
2415
2422
  dpr: a,
2416
2423
  imageResources: this._opts.imageResources,
@@ -2432,7 +2439,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2432
2439
  _bindLayoutPresentation(e) {
2433
2440
  this._unbindLayoutPresentation();
2434
2441
  let t = !0;
2435
- this._layoutUnsubscribe = J(e, () => ({
2442
+ this._layoutUnsubscribe = Bt(e, () => ({
2436
2443
  availableSlides: e.availableSlideCount,
2437
2444
  slideCount: e.slideCount,
2438
2445
  exact: e.layoutComplete,
@@ -2517,7 +2524,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2517
2524
  this._slideInFlight.add(e);
2518
2525
  let u = t.canvas, d = !1, f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = [];
2519
2526
  try {
2520
- let c = await Q(this._pres, u, e, "worker", {
2527
+ let c = await Z(this._pres, u, e, "worker", {
2521
2528
  width: n,
2522
2529
  dpr: r,
2523
2530
  imageResources: this._opts.imageResources,
@@ -2561,7 +2568,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2561
2568
  let h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._slideOffset(l) + d * this._uniformSlideHeight, _ = c < this._slideOffset(0) ? s : g - o;
2562
2569
  if (this._scrollHost.scrollTop = Math.min(h, Math.max(0, _)), i) {
2563
2570
  let e = Math.max(0, (this._spacer.offsetWidth || 0) - this._scrollHost.clientWidth);
2564
- this._scrollHost.scrollLeft = ue(p, i.x - f, a, r, { maxScroll: e });
2571
+ this._scrollHost.scrollLeft = ee(p, i.x - f, a, r, { maxScroll: e });
2565
2572
  }
2566
2573
  this._previewVisible(), this._scheduleSettle(), this._opts.onScaleChange?.(r);
2567
2574
  }
@@ -2569,10 +2576,10 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2569
2576
  return this._scaleEstablished ? this._scale : this._pendingScale ?? 1;
2570
2577
  }
2571
2578
  zoomIn() {
2572
- this.setScale(Se(this.getScale()));
2579
+ this.setScale(fe(this.getScale()));
2573
2580
  }
2574
2581
  zoomOut() {
2575
- this.setScale(A(this.getScale(), this._effectiveZoomMin()));
2582
+ this.setScale(he(this.getScale(), this._effectiveZoomMin()));
2576
2583
  }
2577
2584
  _effectiveZoomMin() {
2578
2585
  let e = this._opts.zoomMin ?? .1;
@@ -2586,9 +2593,9 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2586
2593
  }
2587
2594
  _fit(e) {
2588
2595
  if (!this._pres || this._pres.slideCount === 0) return;
2589
- let t = le({
2590
- contentWidth: this._pres.slideWidth / M,
2591
- contentHeight: this._pres.slideHeight / M,
2596
+ let t = C({
2597
+ contentWidth: this._pres.slideWidth / k,
2598
+ contentHeight: this._pres.slideHeight / k,
2592
2599
  containerWidth: this._fitWidthPx(),
2593
2600
  containerHeight: this._scrollHost.clientHeight
2594
2601
  }, e);
@@ -2629,7 +2636,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2629
2636
  _scheduleSettle() {
2630
2637
  this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
2631
2638
  this._settleTimer = null, this._settleRender();
2632
- }, Kt);
2639
+ }, Jt);
2633
2640
  }
2634
2641
  _settleRender() {
2635
2642
  if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
@@ -2650,8 +2657,8 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2650
2657
  }
2651
2658
  let o = document.createElement("canvas"), s = ++t.renderGeneration;
2652
2659
  o.style.cssText = "display:block;background:#fff;", this._applyPageShadow(o);
2653
- 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;
2654
- Q(this._pres, o, e, "main", {
2660
+ let c = new E(o, !1), l = c.begin(), u = [], d = !!this._opts.enableTextSelection && !!t.textLayer, f = d || this._findActive, p = f ? (e) => u.push(e) : void 0;
2661
+ Z(this._pres, o, e, "main", {
2655
2662
  width: r,
2656
2663
  dpr: n,
2657
2664
  onTextRun: p
@@ -2684,18 +2691,18 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2684
2691
  return;
2685
2692
  }
2686
2693
  let d = t.canvas, f = t.presentationHandle;
2687
- 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 && (this._clearTextLayerPreview(t.textLayer), l && I(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2694
+ t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new E(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (this._clearTextLayerPreview(t.textLayer), l && I(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
2688
2695
  }).catch((e) => {
2689
2696
  o === t.presentationGeneration && this._reportRenderError(e);
2690
2697
  });
2691
2698
  }
2692
2699
  scrollToSlide(e, t) {
2693
2700
  if (!this._pres || this._pres.slideCount === 0 || !this._scaleEstablished) return;
2694
- let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r = this._rangeAt(0, this._overscan()), i = this._slideOffset(n), a = Math.max(0, r.totalHeight - this._scrollHost.clientHeight), o = Math.min(a, Math.max(0, i)), s = this._scrollHost;
2695
- typeof s.scrollTo == "function" ? s.scrollTo({
2696
- top: o,
2701
+ let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r = this._rangeAt(0, this._overscan()), i = _e(this._slideOffset(n), Math.max(0, r.totalHeight - this._scrollHost.clientHeight)), a = this._scrollHost;
2702
+ typeof a.scrollTo == "function" ? a.scrollTo({
2703
+ top: i,
2697
2704
  behavior: t?.behavior ?? "auto"
2698
- }) : this._scrollHost.scrollTop = o, this._mountVisible();
2705
+ }) : this._scrollHost.scrollTop = i, this._mountVisible();
2699
2706
  }
2700
2707
  _scrollToSlideCommentTarget(e, t, n, r) {
2701
2708
  if (!this._pres) return !1;
@@ -2705,7 +2712,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2705
2712
  return t ? [t] : [];
2706
2713
  })[0], s = t.anchors ?? [], c = Number.isFinite(t.x) && Number.isFinite(t.y) && (s.length === 0 || s.some((e) => e.type === "slide"));
2707
2714
  if (!o && !c) return !1;
2708
- let l = o ? o.x + (c ? t.x : o.width) : t.x, u = o ? o.y + (c ? t.y : 0) : t.y, d = this._slideWidthPx(), { left: f } = this._padH(), p = Math.max(f, (this._scrollHost.clientWidth - d) / 2) + this._reviewOriginPx, m = this._rangeAt(0, this._overscan()), h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._spacer.offsetWidth || Number.parseFloat(this._spacer.style.width) || 0, _ = Math.max(0, g - this._scrollHost.clientWidth), v = l / M * this._scale, y = u / M * this._scale, b = Math.min(h, Math.max(0, this._slideOffset(e) + y - this._scrollHost.clientHeight / 2)), x = Math.min(_, Math.max(0, p + v - this._scrollHost.clientWidth / 2)), S = this._scrollHost;
2715
+ let l = o ? o.x + (c ? t.x : o.width) : t.x, u = o ? o.y + (c ? t.y : 0) : t.y, d = this._slideWidthPx(), { left: f } = this._padH(), p = Math.max(f, (this._scrollHost.clientWidth - d) / 2) + this._reviewOriginPx, m = this._rangeAt(0, this._overscan()), h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._spacer.offsetWidth || Number.parseFloat(this._spacer.style.width) || 0, _ = Math.max(0, g - this._scrollHost.clientWidth), v = l / k * this._scale, y = u / k * this._scale, b = Math.min(h, Math.max(0, this._slideOffset(e) + y - this._scrollHost.clientHeight / 2)), x = Math.min(_, Math.max(0, p + v - this._scrollHost.clientWidth / 2)), S = this._scrollHost;
2709
2716
  return typeof S.scrollTo == "function" ? S.scrollTo({
2710
2717
  top: b,
2711
2718
  left: x,
@@ -2886,7 +2893,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2886
2893
  return;
2887
2894
  }
2888
2895
  if (t.kind === "external") {
2889
- T(t.url);
2896
+ p(t.url);
2890
2897
  return;
2891
2898
  }
2892
2899
  t.slideIndex !== void 0 && this.scrollToSlide(t.slideIndex);
@@ -2959,9 +2966,9 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2959
2966
  if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
2960
2967
  if (this._pres && this._activeCommentId !== null && this._activeCommentSlide !== null) {
2961
2968
  let t = this._pres.getComments(this._activeCommentSlide), n = t.findIndex((e, t) => P(e, t, this._activeCommentSlide) === this._activeCommentId), r = t[n];
2962
- if (r && n >= 0) return Bt(r, this._activeCommentSlide, n, this._activeCommentId, e);
2969
+ if (r && n >= 0) return Ut(r, this._activeCommentSlide, n, this._activeCommentId, e);
2963
2970
  }
2964
- return (this._opts.enableTextSelection ? Z(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? Pt(this._elementContext, e.maxTextCharacters) : null);
2971
+ return (this._opts.enableTextSelection ? X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? It(this._elementContext, e.maxTextCharacters) : null);
2965
2972
  }
2966
2973
  _emitSelectionContextChange() {
2967
2974
  let e = this.getSelectionContext();
@@ -2981,10 +2988,10 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
2981
2988
  _redrawElementOutlineForSlot(e, t) {
2982
2989
  let n = this._elementContext, r = this._pres;
2983
2990
  if (!n || !r || n.slideIndex !== e) {
2984
- D(t.elementLayer, null);
2991
+ T(t.elementLayer, null);
2985
2992
  return;
2986
2993
  }
2987
- D(t.elementLayer, {
2994
+ T(t.elementLayer, {
2988
2995
  x: n.bounds.x / r.slideWidth,
2989
2996
  y: n.bounds.y / r.slideHeight,
2990
2997
  width: n.bounds.width / r.slideWidth,
@@ -3005,7 +3012,7 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
3005
3012
  async _resolveContextAt(e) {
3006
3013
  let t = this._pres;
3007
3014
  if (this._destroyed || !t) return null;
3008
- if (this._opts.enableTextSelection && Z(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
3015
+ if (this._opts.enableTextSelection && X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
3009
3016
  if (!this._opts.enableElementSelection) return this.getSelectionContext();
3010
3017
  let n = e.target, r = [...this._slots].find(([, e]) => n !== null && e.wrapper.contains(n));
3011
3018
  if (!r) return this._invalidateElementSelection(), null;
@@ -3035,22 +3042,22 @@ var $ = 440, Zt = 20, Qt = Symbol("PptxScrollViewer.borrowedPresentation"), $t =
3035
3042
  this._free.length = 0, this._presentationOwner.close(), this._wrapper.remove();
3036
3043
  }
3037
3044
  }
3038
- }, en = /* @__PURE__ */ e({
3039
- OoxmlDecodedImageLimitError: () => Me,
3040
- OoxmlError: () => ee,
3041
- OoxmlResourceLimitError: () => x,
3042
- PptxPresentation: () => Y,
3043
- PptxScrollViewer: () => $t,
3044
- PptxViewer: () => Gt,
3045
- TiffDecodeError: () => Ne,
3046
- autoResize: () => ce,
3045
+ }, nn = /* @__PURE__ */ e({
3046
+ OoxmlDecodedImageLimitError: () => Te,
3047
+ OoxmlError: () => d,
3048
+ OoxmlResourceLimitError: () => m,
3049
+ PptxPresentation: () => J,
3050
+ PptxScrollViewer: () => tn,
3051
+ PptxViewer: () => Q,
3052
+ TiffDecodeError: () => Ee,
3053
+ autoResize: () => S,
3047
3054
  buildPptxHighlightLayer: () => L,
3048
3055
  buildPptxTextLayer: () => I,
3049
- isOoxmlDecodedImageLimitError: () => je,
3050
- isTiffDecodeError: () => Pe,
3051
- openExternalHyperlink: () => T,
3052
- readPptxTextSelectionContext: () => Z,
3053
- renderSlide: () => f
3056
+ isOoxmlDecodedImageLimitError: () => we,
3057
+ isTiffDecodeError: () => De,
3058
+ openExternalHyperlink: () => p,
3059
+ readPptxTextSelectionContext: () => X,
3060
+ renderSlide: () => Me
3054
3061
  });
3055
3062
  //#endregion
3056
- export { Y as a, Z as i, $t as n, L as o, Gt as r, I as s, en as t };
3063
+ export { J as a, X as i, tn as n, L as o, Q as r, I as s, nn as t };