@silurus/ooxml 0.78.1 → 0.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -1
- package/THIRD_PARTY_NOTICES.md +13 -0
- package/dist/{canvas-viewer-mechanics-B4K_t5X_.js → canvas-viewer-mechanics-D9tsuHnG.js} +1 -1
- package/dist/chart-number-format-tjYUR9eS.js +435 -0
- package/dist/dash-Cyc-sevN.js +786 -0
- package/dist/{document-pull-client-5AakVD6e.js → document-pull-client-YiU8M4LO.js} +2119 -2113
- package/dist/{docx-bjhRwb2u.js → docx-a1UpmRf8.js} +65 -56
- package/dist/docx.mjs +4 -4
- package/dist/docx_parser_bg.wasm +0 -0
- package/dist/index.mjs +3 -3
- package/dist/{line-distribute-BVFW1-Hs.js → line-distribute-pDqovJpT.js} +1 -1
- package/dist/{line-metrics-DS0NS2Iq.js → line-metrics-DjKxiIUD.js} +4089 -3210
- package/dist/math.mjs +1 -1
- package/dist/node.mjs +322 -322
- package/dist/{pptx-D1rCrHGR.js → pptx-t5ABdzfd.js} +192 -183
- package/dist/pptx.mjs +5 -5
- package/dist/pptx_parser_bg.wasm +0 -0
- package/dist/region-map.mjs +12708 -0
- package/dist/{render-DhlT5jxZ.js → render-BjIEuFIG.js} +1 -1
- package/dist/render-worker-host-BB320snY.js +27 -0
- package/dist/render-worker-host-BjEPZBwf.js +27 -0
- package/dist/render-worker-host-hZ0o4OD7.js +27 -0
- package/dist/{resource-measurement-BA-4Q-II.js → resource-measurement-D8EiTm_E.js} +1 -1
- package/dist/{session-C_HGxbRD.js → session-Bhe_eY-s.js} +10 -10
- package/dist/{slide-pull-client-BiC4sVGi.js → slide-pull-client-BQ8gJPTq.js} +584 -583
- package/dist/three-d.mjs +2158 -0
- package/dist/types/docx.d.ts +185 -16
- package/dist/types/index.d.ts +196 -20
- package/dist/types/math.d.ts +1 -1
- package/dist/types/node.d.ts +157 -1
- package/dist/types/pptx.d.ts +187 -16
- package/dist/types/region-map.d.ts +520 -0
- package/dist/types/three-d.d.ts +520 -0
- package/dist/types/xlsx.d.ts +186 -16
- package/dist/{worksheet-pull-client-BnvgeqfG.js → worksheet-pull-client-T0EzdEEQ.js} +13 -13
- package/dist/{xlsx-BG_WYSc0.js → xlsx-CsDDMJIK.js} +442 -414
- package/dist/xlsx.mjs +5 -5
- package/dist/xlsx_parser_bg.wasm +0 -0
- package/package.json +13 -1
- package/dist/render-worker-host-CtJo7hc9.js +0 -27
- package/dist/render-worker-host-D8vv-Asx.js +0 -27
- package/dist/render-worker-host-DAjG9nmw.js +0 -27
- /package/dist/{highlight-rect-CAkCWJ37.js → highlight-rect-cCvVU-MW.js} +0 -0
- /package/dist/{mathjax-CMjda8Ip.js → mathjax-Dqo857oC.js} +0 -0
- /package/dist/{transfer-DCu4c2BL.js → transfer-3QEJrsJa.js} +0 -0
- /package/dist/{visible-index-CgyJLAS_.js → visible-index-CKvgpUrf.js} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { t as e } from "./chunk-DmhlhrBa.js";
|
|
2
|
-
import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./slide-pull-client-
|
|
3
|
-
import { B as u, Et as d, G as f, It as p, Lt as m, R as h, a as g,
|
|
4
|
-
import { C as te, E as ne, S as re, T as ie, _ as
|
|
2
|
+
import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./slide-pull-client-BQ8gJPTq.js";
|
|
3
|
+
import { B as u, Et as d, G as f, It as p, Lt as m, R as h, a as g, at as _, gt as v, ht as y, it as b, kt as x, on as S, q as C, sn as w, z as ee } from "./line-metrics-DjKxiIUD.js";
|
|
4
|
+
import { C as te, E as ne, S as re, T as ie, _ as T, a as E, b as ae, c as D, d as oe, f as se, g as ce, h as le, i as O, l as k, m as ue, n as de, o as fe, p as pe, r as me, s as he, t as ge, v as A, w as _e, x as ve, y as j } from "./canvas-viewer-mechanics-D9tsuHnG.js";
|
|
5
5
|
import { a as ye, i as be, n as xe, t as Se } from "./bounded-raw-part-cache-C6ro6Ezf.js";
|
|
6
|
-
import {
|
|
7
|
-
import { n as
|
|
8
|
-
import { n as
|
|
6
|
+
import { g as M } from "./dash-Cyc-sevN.js";
|
|
7
|
+
import { n as Ce } from "./resource-measurement-D8EiTm_E.js";
|
|
8
|
+
import { n as we, r as N, t as Te } from "./visible-index-CKvgpUrf.js";
|
|
9
|
+
import { n as Ee, r as P, t as F } from "./highlight-rect-cCvVU-MW.js";
|
|
9
10
|
//#region packages/core/src/nav/internal-target.ts
|
|
10
11
|
function De(e, t) {
|
|
11
12
|
let n = t.startsWith("/") ? [] : e.split("/").filter((e) => e !== "");
|
|
@@ -182,7 +183,7 @@ function V(e, t, n) {
|
|
|
182
183
|
for (let i of t) r += B(i) ? n : e.measureText(i).width;
|
|
183
184
|
return r;
|
|
184
185
|
}
|
|
185
|
-
function
|
|
186
|
+
function H(e, t, n, r, i) {
|
|
186
187
|
let a = e.textAlign;
|
|
187
188
|
e.textAlign = "left";
|
|
188
189
|
let o = n;
|
|
@@ -194,11 +195,11 @@ function je(e, t, n, r, i) {
|
|
|
194
195
|
}
|
|
195
196
|
//#endregion
|
|
196
197
|
//#region packages/pptx/src/presentation-handle.ts
|
|
197
|
-
var
|
|
198
|
-
async function
|
|
198
|
+
var U = (e, t) => e / M * t;
|
|
199
|
+
async function je(e, t, n) {
|
|
199
200
|
let r = e.getContext("2d");
|
|
200
201
|
if (!r) throw Error("2D context not available");
|
|
201
|
-
let a = n.width / (n.slideWidthEmu /
|
|
202
|
+
let a = n.width / (n.slideWidthEmu / M);
|
|
202
203
|
await n.drawBase();
|
|
203
204
|
let o = document.createElement("canvas");
|
|
204
205
|
o.width = e.width, o.height = e.height;
|
|
@@ -222,11 +223,11 @@ async function Me(e, t, n) {
|
|
|
222
223
|
try {
|
|
223
224
|
t = await n.fetchMedia(e.mediaPath);
|
|
224
225
|
} catch (t) {
|
|
225
|
-
throw u(),
|
|
226
|
+
throw u(), Pe(e, t);
|
|
226
227
|
}
|
|
227
228
|
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");
|
|
228
229
|
s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
|
|
229
|
-
let f =
|
|
230
|
+
let f = Me(e, a), p = {
|
|
230
231
|
el: e,
|
|
231
232
|
rect: e.mediaKind === "audio" ? {
|
|
232
233
|
x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
|
|
@@ -244,7 +245,7 @@ async function Me(e, t, n) {
|
|
|
244
245
|
}, h = () => {
|
|
245
246
|
l || (p.loadState = "ready");
|
|
246
247
|
}, g = () => {
|
|
247
|
-
l || (p.loadState = "error", d(
|
|
248
|
+
l || (p.loadState = "error", d(W(e, s, "decode")));
|
|
248
249
|
};
|
|
249
250
|
s.addEventListener("loadedmetadata", m), s.addEventListener("canplay", h), s.addEventListener("error", g), p.detachListeners = () => {
|
|
250
251
|
s.removeEventListener("loadedmetadata", m), s.removeEventListener("canplay", h), s.removeEventListener("error", g);
|
|
@@ -252,7 +253,7 @@ async function Me(e, t, n) {
|
|
|
252
253
|
try {
|
|
253
254
|
s.load();
|
|
254
255
|
} catch (t) {
|
|
255
|
-
let n =
|
|
256
|
+
let n = W(e, s, "load", t);
|
|
256
257
|
throw u(), n;
|
|
257
258
|
}
|
|
258
259
|
}
|
|
@@ -264,14 +265,14 @@ async function Me(e, t, n) {
|
|
|
264
265
|
let t = e.media;
|
|
265
266
|
if (e.loadState !== "loading") {
|
|
266
267
|
if (e.loadState === "error") {
|
|
267
|
-
|
|
268
|
+
Ne(r, e.posterRect, "Media unavailable");
|
|
268
269
|
continue;
|
|
269
270
|
}
|
|
270
271
|
if (e.el.mediaKind === "video" && t.readyState >= 2) {
|
|
271
272
|
let { x: n, y: i, w: a, h: o } = e.posterRect;
|
|
272
273
|
r.drawImage(t, n, i, a, o);
|
|
273
274
|
}
|
|
274
|
-
if (e === p ||
|
|
275
|
+
if (e === p || v?.state === e) ze(r, e, t);
|
|
275
276
|
else if (t.paused) {
|
|
276
277
|
let { x: t, y: n, w: a, h: o } = e.posterRect;
|
|
277
278
|
i(r, t + a / 2, n + o / 2, a, o, "paused");
|
|
@@ -286,11 +287,11 @@ async function Me(e, t, n) {
|
|
|
286
287
|
x: (t - i.left) / i.width * a,
|
|
287
288
|
y: (r - i.top) / i.height * o
|
|
288
289
|
};
|
|
289
|
-
},
|
|
290
|
+
}, _ = (e, t) => {
|
|
290
291
|
for (let n of c) {
|
|
291
292
|
let { x: r, y: i, w: a, h: o } = n.rect;
|
|
292
293
|
if (e < r || e > r + a || t < i || t > i + o) continue;
|
|
293
|
-
let s =
|
|
294
|
+
let s = q(n), c = s.y - 12, l = s.y + s.h + 8;
|
|
294
295
|
return (Number.isFinite(n.media.duration) ? n.media.duration : 0) > 0 && e >= s.x && e <= s.x + s.w && t >= c && t <= l ? {
|
|
295
296
|
kind: "seek",
|
|
296
297
|
state: n,
|
|
@@ -301,24 +302,24 @@ async function Me(e, t, n) {
|
|
|
301
302
|
};
|
|
302
303
|
}
|
|
303
304
|
return null;
|
|
304
|
-
},
|
|
305
|
+
}, v = null, y = (e, t) => {
|
|
305
306
|
let n = Number.isFinite(e.media.duration) ? e.media.duration : 0;
|
|
306
307
|
n <= 0 || (e.media.currentTime = n * t);
|
|
307
|
-
},
|
|
308
|
+
}, b = (e) => {
|
|
308
309
|
try {
|
|
309
310
|
e.media.play().catch((t) => {
|
|
310
|
-
d(
|
|
311
|
+
d(W(e.el, e.media, "play", t));
|
|
311
312
|
});
|
|
312
313
|
} catch (t) {
|
|
313
|
-
d(
|
|
314
|
+
d(W(e.el, e.media, "play", t));
|
|
314
315
|
}
|
|
315
|
-
},
|
|
316
|
-
let { x: n, y: r } = g(t.clientX, t.clientY), i =
|
|
317
|
-
i && (i.kind === "seek" ? (
|
|
316
|
+
}, x = (t) => {
|
|
317
|
+
let { x: n, y: r } = g(t.clientX, t.clientY), i = _(n, r);
|
|
318
|
+
i && (i.kind === "seek" ? (v = {
|
|
318
319
|
state: i.state,
|
|
319
320
|
wasPlaying: !i.state.media.paused
|
|
320
|
-
}, i.state.media.pause(),
|
|
321
|
-
},
|
|
321
|
+
}, 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());
|
|
322
|
+
}, S = (e) => {
|
|
322
323
|
let { x: t, y: n } = g(e.clientX, e.clientY);
|
|
323
324
|
p = null;
|
|
324
325
|
for (let e of c) {
|
|
@@ -328,47 +329,47 @@ async function Me(e, t, n) {
|
|
|
328
329
|
break;
|
|
329
330
|
}
|
|
330
331
|
}
|
|
331
|
-
if (
|
|
332
|
-
let e =
|
|
333
|
-
|
|
332
|
+
if (v) {
|
|
333
|
+
let e = q(v.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
|
|
334
|
+
y(v.state, n);
|
|
334
335
|
}
|
|
335
|
-
},
|
|
336
|
+
}, C = () => {
|
|
336
337
|
p = null;
|
|
337
|
-
},
|
|
338
|
-
if (!
|
|
339
|
-
let { wasPlaying: n, state: r } =
|
|
340
|
-
|
|
338
|
+
}, w = (t) => {
|
|
339
|
+
if (!v) return;
|
|
340
|
+
let { wasPlaying: n, state: r } = v;
|
|
341
|
+
v = null, e.releasePointerCapture(t.pointerId), n && b(r);
|
|
341
342
|
};
|
|
342
|
-
return c.length > 0 && (e.addEventListener("pointerdown",
|
|
343
|
+
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()), {
|
|
343
344
|
play(e) {
|
|
344
|
-
for (let t of c) (!e || t.el.mediaPath === e) &&
|
|
345
|
+
for (let t of c) (!e || t.el.mediaPath === e) && b(t);
|
|
345
346
|
},
|
|
346
347
|
pause(e) {
|
|
347
348
|
for (let t of c) (!e || t.el.mediaPath === e) && t.media.pause();
|
|
348
349
|
},
|
|
349
350
|
destroy() {
|
|
350
|
-
l || (l = !0, f !== null && cancelAnimationFrame(f), e.removeEventListener("pointerdown",
|
|
351
|
+
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());
|
|
351
352
|
}
|
|
352
353
|
};
|
|
353
354
|
}
|
|
354
|
-
function
|
|
355
|
+
function Me(e, t) {
|
|
355
356
|
return {
|
|
356
|
-
x:
|
|
357
|
-
y:
|
|
358
|
-
w:
|
|
359
|
-
h:
|
|
357
|
+
x: U(e.x, t),
|
|
358
|
+
y: U(e.y, t),
|
|
359
|
+
w: U(e.width, t),
|
|
360
|
+
h: U(e.height, t)
|
|
360
361
|
};
|
|
361
362
|
}
|
|
362
|
-
function
|
|
363
|
+
function Ne(e, t, n) {
|
|
363
364
|
let r = Math.max(10, Math.min(14, t.h * .12));
|
|
364
365
|
e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
|
|
365
366
|
let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
|
|
366
|
-
|
|
367
|
+
J(e, t.x + (t.w - a) / 2, t.y + (t.h - i) / 2, a, i, i / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.fillStyle = "rgba(255, 255, 255, 0.95)", e.fillText(n, t.x + t.w / 2, t.y + t.h / 2), e.restore();
|
|
367
368
|
}
|
|
368
|
-
function
|
|
369
|
-
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${
|
|
369
|
+
function Pe(e, t) {
|
|
370
|
+
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${Fe(t)}`);
|
|
370
371
|
}
|
|
371
|
-
function
|
|
372
|
+
function W(e, t, n, r) {
|
|
372
373
|
let i = "";
|
|
373
374
|
try {
|
|
374
375
|
i = e.mimeType ? t.canPlayType(e.mimeType) : "";
|
|
@@ -380,82 +381,82 @@ function U(e, t, n, r) {
|
|
|
380
381
|
`networkState=${t.networkState}`
|
|
381
382
|
];
|
|
382
383
|
a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
|
|
383
|
-
let s = r === void 0 ? "" : `: ${
|
|
384
|
+
let s = r === void 0 ? "" : `: ${Fe(r)}`;
|
|
384
385
|
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
|
|
385
386
|
}
|
|
386
|
-
function
|
|
387
|
+
function Fe(e) {
|
|
387
388
|
return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
|
|
388
389
|
}
|
|
389
|
-
var
|
|
390
|
-
function
|
|
390
|
+
var Ie = 28, G = 14, Le = 72, Re = 10, K = 3;
|
|
391
|
+
function ze(e, t, n) {
|
|
391
392
|
let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
|
|
392
|
-
i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ?
|
|
393
|
+
i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? Ve(e, t, n, r, a) : Be(e, t, n, r, a);
|
|
393
394
|
}
|
|
394
|
-
function
|
|
395
|
+
function Be(e, t, n, r, i) {
|
|
395
396
|
let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
|
|
396
397
|
e.save();
|
|
397
398
|
let d = e.createLinearGradient(0, u, 0, o + c);
|
|
398
399
|
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();
|
|
399
|
-
let f =
|
|
400
|
-
|
|
400
|
+
let f = q(t);
|
|
401
|
+
Ue(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)", He(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
|
|
401
402
|
}
|
|
402
|
-
function
|
|
403
|
-
let a =
|
|
404
|
-
e.save(),
|
|
403
|
+
function Ve(e, t, n, r, i) {
|
|
404
|
+
let a = We(t.rect);
|
|
405
|
+
e.save(), J(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", He(e, n.currentTime, r, a.x + G, a.y + a.h / 2, "middle"), e.restore(), Ue(e, q(t), i, r > 0);
|
|
405
406
|
}
|
|
406
|
-
function
|
|
407
|
-
let o =
|
|
408
|
-
|
|
407
|
+
function He(e, t, n, r, i, a) {
|
|
408
|
+
let o = Ge(t), s = Ge(n), c = Ae(e), l = V(e, o, c), u = V(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
|
|
409
|
+
H(e, o, r + f - l, i, c);
|
|
409
410
|
let p = e.textAlign;
|
|
410
|
-
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p,
|
|
411
|
+
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, H(e, s, r + f + d, i, c);
|
|
411
412
|
}
|
|
412
|
-
function
|
|
413
|
+
function Ue(e, t, n, r) {
|
|
413
414
|
let i = t.h / 2;
|
|
414
|
-
if (e.save(),
|
|
415
|
+
if (e.save(), J(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (J(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
|
|
415
416
|
let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
|
|
416
417
|
e.shadowColor = "rgba(0, 0, 0, 0.3)", e.shadowBlur = 3, e.fillStyle = "#fff", e.beginPath(), e.arc(r, t.y + t.h / 2, 5, 0, Math.PI * 2), e.fill();
|
|
417
418
|
}
|
|
418
419
|
e.restore();
|
|
419
420
|
}
|
|
420
|
-
function
|
|
421
|
+
function We(e) {
|
|
421
422
|
let t = Math.max(220, e.w - 24);
|
|
422
423
|
return {
|
|
423
424
|
x: e.x + e.w / 2 - t / 2,
|
|
424
|
-
y: e.y + e.h -
|
|
425
|
+
y: e.y + e.h - Ie - 4,
|
|
425
426
|
w: t,
|
|
426
|
-
h:
|
|
427
|
+
h: Ie
|
|
427
428
|
};
|
|
428
429
|
}
|
|
429
|
-
function
|
|
430
|
+
function q(e) {
|
|
430
431
|
if (e.el.mediaKind === "audio") {
|
|
431
|
-
let t =
|
|
432
|
+
let t = We(e.rect), n = t.x + G + Le + Re, r = Math.max(40, t.x + t.w - G - n);
|
|
432
433
|
return {
|
|
433
434
|
x: n,
|
|
434
|
-
y: t.y + (t.h -
|
|
435
|
+
y: t.y + (t.h - K) / 2,
|
|
435
436
|
w: r,
|
|
436
|
-
h:
|
|
437
|
+
h: K
|
|
437
438
|
};
|
|
438
439
|
}
|
|
439
440
|
let t = e.rect, n = Math.max(12, t.w * .025), r = Math.max(12, Math.min(18, t.h * .05));
|
|
440
441
|
return {
|
|
441
442
|
x: t.x + n,
|
|
442
|
-
y: t.y + t.h -
|
|
443
|
+
y: t.y + t.h - K - r,
|
|
443
444
|
w: t.w - n * 2,
|
|
444
|
-
h:
|
|
445
|
+
h: K
|
|
445
446
|
};
|
|
446
447
|
}
|
|
447
|
-
function
|
|
448
|
+
function J(e, t, n, r, i, a) {
|
|
448
449
|
let o = Math.min(a, i / 2, r / 2);
|
|
449
450
|
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();
|
|
450
451
|
}
|
|
451
|
-
function
|
|
452
|
+
function Ge(e) {
|
|
452
453
|
if (!Number.isFinite(e) || e < 0) return "0:00";
|
|
453
454
|
let t = Math.floor(e);
|
|
454
455
|
return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
|
|
455
456
|
}
|
|
456
457
|
//#endregion
|
|
457
458
|
//#region packages/pptx/src/slide-nav.ts
|
|
458
|
-
function
|
|
459
|
+
function Ke(e) {
|
|
459
460
|
let t = /* @__PURE__ */ new Map();
|
|
460
461
|
for (let n = 0; n < e.length; n++) {
|
|
461
462
|
let r = e[n];
|
|
@@ -463,18 +464,18 @@ function qe(e) {
|
|
|
463
464
|
}
|
|
464
465
|
return t;
|
|
465
466
|
}
|
|
466
|
-
function
|
|
467
|
+
function qe(e, t) {
|
|
467
468
|
if (e === "") return;
|
|
468
469
|
let n = De("ppt/slides", e);
|
|
469
470
|
return t.get(n);
|
|
470
471
|
}
|
|
471
|
-
function
|
|
472
|
+
function Je(e, t, n) {
|
|
472
473
|
let r = Oe(e);
|
|
473
|
-
return r === null ?
|
|
474
|
+
return r === null ? qe(e, t) : ke(r, n, t.size);
|
|
474
475
|
}
|
|
475
476
|
//#endregion
|
|
476
477
|
//#region packages/pptx/src/slide-repository.ts
|
|
477
|
-
var
|
|
478
|
+
var Ye = class {
|
|
478
479
|
#e;
|
|
479
480
|
#t;
|
|
480
481
|
#n;
|
|
@@ -505,7 +506,7 @@ var Xe = class {
|
|
|
505
506
|
try {
|
|
506
507
|
return await t(r);
|
|
507
508
|
} catch (e) {
|
|
508
|
-
let t =
|
|
509
|
+
let t = Xe(e);
|
|
509
510
|
throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
|
|
510
511
|
}
|
|
511
512
|
});
|
|
@@ -517,7 +518,7 @@ var Xe = class {
|
|
|
517
518
|
try {
|
|
518
519
|
n = await this.#t(e);
|
|
519
520
|
} catch (e) {
|
|
520
|
-
let n =
|
|
521
|
+
let n = Xe(e);
|
|
521
522
|
throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
|
|
522
523
|
}
|
|
523
524
|
if (this.#o === t && this.#a) throw this.#a;
|
|
@@ -534,16 +535,16 @@ var Xe = class {
|
|
|
534
535
|
t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
|
|
535
536
|
}
|
|
536
537
|
};
|
|
537
|
-
function
|
|
538
|
-
return e instanceof
|
|
538
|
+
function Xe(e) {
|
|
539
|
+
return e instanceof w ? e : _(e);
|
|
539
540
|
}
|
|
540
541
|
//#endregion
|
|
541
542
|
//#region packages/pptx/src/worker.ts?worker&inline
|
|
542
|
-
var Qe = "var e=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},t=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const n=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,r=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,a={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:i,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:i,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:n,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:n,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:r,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:r,loadFamily:`Noto Sans Arabic`}};function o(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ-가-]/.test(e)?`kr`:/[-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const s=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,ee={\"noto sans kr\":{url:s(`Noto+Sans+KR`)},\"noto sans sc\":{url:s(`Noto+Sans+SC`)},\"noto sans tc\":{url:s(`Noto+Sans+TC`)},\"noto sans jp\":{url:s(`Noto+Sans+JP`)},\"noto serif kr\":{url:s(`Noto+Serif+KR`)},\"noto serif sc\":{url:s(`Noto+Serif+SC`)},\"noto serif tc\":{url:s(`Noto+Serif+TC`)},\"noto serif jp\":{url:s(`Noto+Serif+JP`)},\"noto sans\":{url:s(`Noto+Sans`)},\"noto serif\":{url:s(`Noto+Serif`)},\"noto sans devanagari\":{url:s(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:s(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:s(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:s(`Noto+Serif+Hebrew`)}};var c=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}},l=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}};function u(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var d=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},te=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ne(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function re(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function ie(e,t){return e({module_or_path:t})}var ae=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new d(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),oe),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new te(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):ie(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,re(e)}};function oe(e){return ne(e)?new te(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function se(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function ce(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return se(t.requiredBytes)&&se(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var f=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function le(e){if(e instanceof f)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!ce(r)))return new f(r)}function ue(e,t,n){let r=le(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}const de=`OOXML_RESOURCE_LIMIT:`;function p(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function fe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return p(t.archiveEntryCount)&&p(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||p(t.largestInflatedEntryBytes))&&p(t.distinctInflatedBytes)&&p(t.operationInflatedBytes)}function pe(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!fe(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function me(e){return e===`docx`||e===`xlsx`||e===`pptx`}function he(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function m(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function h(e){return m(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ge(e){return!m(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const g=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),_e=new Set([...g.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),ve=new Set([...g.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function ye(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!me(t.format)||!m(t.operation,256)||!h(t.resource)||!h(t.metric)||!p(t.limit)||!p(t.observed)||typeof t.configurable!=`boolean`||!fe(t.usage)?!1:!(`part`in t)||ge(t.part)}function _(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!he(t.stage)||!ye(t.violation))return!1;let n=t.violation,r=g.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(_e.has(n.resource)&&ve.has(n.metric))}function be(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function xe(e){if(!_(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:be(t.usage)}};return _(n)?n:void 0}function v(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Se(e){let n=e instanceof Error?e.message:String(e);if(!n.startsWith(de))return;let r;try{r=JSON.parse(n.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!_(i.details)))return new t(v(i.details),i.details)}function Ce(n){if(n instanceof l)return{message:n.message,errorName:n.name,code:n.code,decodedImage:{metric:n.metric,limit:n.limit,observed:n.observed}};let r=le(n);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=n instanceof e||n instanceof t?n:Se(n);if(i instanceof t){let e=xe(i.details);return e?{message:typeof i.message==`string`?i.message:v(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof e)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:m(i.name,128)?i.name:`OoxmlError`,...h(i.code)?{code:i.code}:{}};let a=n instanceof Error?n.message:String(n);if(typeof a==`string`&&a.startsWith(de))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=n instanceof Error?n:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:m(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return Ce(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const we=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Te(n){if(n.code===`ooxml-decoded-image-limit`&&n.decodedImage&&(n.decodedImage.metric===`image-pixels`||n.decodedImage.metric===`active-decoded-bytes`)&&p(n.decodedImage.limit)&&p(n.decodedImage.observed)&&n.decodedImage.observed>n.decodedImage.limit)return new l(n.decodedImage.metric,n.decodedImage.limit,n.decodedImage.observed);if(n.code===`ooxml-insufficient-credit`&&ce(n.insufficientCredit))return new f(n.insufficientCredit);if(n.code===`ooxml-resource-limit`&&_(n.resourceLimit))return new t(n.message,n.resourceLimit);if(n.code&&we.has(n.code))return new e(n.code,n.message);let r=n.errorName===`TypeError`?TypeError(n.message):n.errorName===`RangeError`?RangeError(n.message):Error(n.message);return n.errorName&&(r.name=n.errorName),n.code!==void 0&&Object.assign(r,{code:n.code}),r}function Ee(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const De=67108864;Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function Oe(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const b=`ooxml-pull-v1`;function x(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function ke(e){if(!(typeof e==`string`&&e.length>0||typeof e==`number`&&Number.isSafeInteger(e)&&e>0))throw RangeError(`session id must be a non-empty string or positive safe integer`)}var S=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,x(this.maxRetainedBytes,`max retained lease bytes`),x(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},Ae=class{options;coordinator;coordinatorOwner=Symbol(`pull-session-host`);unregisterCleanup;sequence=0;unacked;leases=new Map;activeDriverLeases=new Set;nextWireLeaseId;cancelRequested=!1;cancelComplete=!1;closeRequested=!1;closeComplete=!1;driverCancelComplete=!1;driverCloseComplete=!1;completed=!1;constructor(e){ke(e.sessionId),x(e.operationId,`operation id`),x(e.generation,`generation`),x(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&x(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=y(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(x(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:b,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){x(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(x(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:b,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:b,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function C(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function w(e,t,n){return C(e,`resource measurement`),C(t,`resource measurement`),C(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function je(e,t=2**53-1){C(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=w(n,a,t),n>t)return n}return n}function T(e,t=2**53-1){C(t,`resource measurement limit`);let n=w(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=w(n,a,t),n>t)return n}return n}function E(e,t){return w(0,e,t)}function D(e,t=2**53-1,n=!1){if(C(t,`resource measurement limit`),e===null)return{jsonBytes:E(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:T(e,t),stringValueUtf8Bytes:je(e,t)};if(typeof e==`boolean`)return{jsonBytes:E(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:E((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=E(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=w(n,1,t));let a=D(e[i],t,!0);n=w(n,a.jsonBytes,t),r=w(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=E(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=w(n,1,t)),n=w(n,T(a,t),t),n=w(n,1,t);let e=D(o,t);n=w(n,e.jsonBytes,t),r=w(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?E(4,t):0,stringValueUtf8Bytes:0}}({...a,...ee});function*O(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*k(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*Me(e){for(let t of e.elements)if(t.type===`shape`)yield*O(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*O(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Ne=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=o(e)??o(t)??null;this.scripts=n??new c(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Me(e));for(let t of e.elements)if(t.type===`shape`)for(let e of k(t.textBody))this.families.add(e);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)for(let e of k(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const A=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),j=67108864;function M(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Pe(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Fe(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return M(t.defaultTextColor,`defaultTextColor`),M(t.majorFont,`majorFont`),M(t.minorFont,`minorFont`),M(t.hlinkColor,`hlinkColor`),M(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,slides:Object.freeze(t.slides.map(Pe))})}function Ie(e){return Object.freeze({type:`media`,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,flipH:e.flipH,flipV:e.flipV,mediaKind:e.mediaKind,posterPath:e.posterPath,posterMimeType:e.posterMimeType,mediaPath:e.mediaPath,mimeType:e.mimeType})}function Le(e,t){if(e.index!==t.index||e.partName!==t.partName)throw Error(`PPTX pulled slide identity does not match bootstrap index ${t.index}`);return Object.freeze({index:t.index,...t.partName===void 0?{}:{partName:t.partName},notes:e.notes??null,hidden:e.hidden??!1,mediaElements:Object.freeze(e.elements.filter(e=>e.type===`media`).map(Ie))})}function N(e,n,r){if(!(e<=n))throw new t(`PPTX presentation preflight exceeded its hard limit of ${n} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:n,observed:Math.min(e,n+1),configurable:!1,usage:r}})}var Re=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Fe(e),r=t.hardLimitForTesting??j;if(!Number.isSafeInteger(r)||r<=0||r>j)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.descriptors=[...n.slides],this.fonts=new Ne(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=D(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=D({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,N(this.projectionBytesValue,this.limit,A)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}addSlide(e,t=A){this.prepareSlide(e,t).commit()}prepareSlide(e,t=A){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=Le(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=D(o,this.limit).jsonBytes,ee=D(i,this.limit).jsonBytes,c=this.projectionBytesValue-this.fontProjectionBytes-D(r,this.limit).jsonBytes+4;c=w(c,s,this.limit),c=w(c,ee,this.limit),this.slides.length!==0&&(c=w(c,1,this.limit));let l=D({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=w(this.projectionBytesValue,l,this.limit);N(Math.max(u,c),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:c};return this.pending=d,{projectedBytes:u,commit:()=>{if(d.state!==`committed`){if(d.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(d.fact),this.fonts=d.fonts,this.fontPreloadNames=d.fontNames,this.fontProjectionBytes=d.fontBytes,this.projectionBytesValue=d.committedBytes,d.state=`committed`,this.pending=null}},rollback:()=>{if(d.state!==`rolled-back`){if(d.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);d.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=D(this.finished,this.limit).jsonBytes,this.finished}};function ze(e){try{return pe(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Be(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,ze(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var Ve=class{coordinatorGeneration=new S;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),Ue(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let r,i=new Promise(e=>{r=e}),a=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let i,a=!1,o=new Ae({...t,maxByteCredit:De,coordinator:this.coordinator,driver:{pull:n=>{let r;try{r=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw ue(e,n,De)||(this.latchResourceFailure(e),e)}let o=Ee(r);return this.acceptSlide&&(i=JSON.parse(new TextDecoder().decode(new Uint8Array(o)))),a=!0,{payload:o,byteLength:o.byteLength,done:!0,transfer:[o]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!a)throw Error(`slide unit is not awaiting acknowledgement`);try{Be(this.executeArchive,t,e,i,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}a=!1,i=void 0,this.sessions.delete(t.sessionId),r()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:o,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=a.then(()=>i,()=>void 0);try{await a}catch(e){throw this.pendingOpens.delete(t.sessionId),r(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:b,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=Te(e.error))}),r)throw r}this.sessions.clear(),await this.operationTail,this.pendingOpens.clear(),this.archive()&&await this.executeArchive(e=>e.close_presentation_session()),this.coordinatorGeneration=new S,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!P(t,e)?this.staleLifecycleResponse(e):{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:b,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return ze(this.executeArchive)}latchResourceFailure(e){let n=e instanceof t?e:Se(e);n&&(this.resourceFailure??=n)}staleLifecycleResponse(e){return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function He(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ue(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function P(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var F=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ge.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=qe(e,J.__wbindgen_malloc),a=q,o=J.pptxarchive_new(i,a,!V(t),V(t)?BigInt(0):t,!V(n),V(n)?BigInt(0):n,!V(r),V(r)?BigInt(0):r);if(o[2])throw U(o[1]);return this.__wbg_ptr=o[0]>>>0,Ge.register(this,this.__wbg_ptr,this),this}parse(){let e=J.pptxarchive_parse(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}presentation_bootstrap(){let e=J.pptxarchive_presentation_bootstrap(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}pull_slide(e,t,n,r){let i=J.pptxarchive_pull_slide(this.__wbg_ptr,e,t,n,r);if(i[3])throw U(i[2]);var a=I(i[0],i[1]).slice();return J.__wbindgen_free(i[0],i[1]*1,1),a}resource_usage(){let e=J.pptxarchive_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}slide_cursor_resource_usage(){let e=J.pptxarchive_slide_cursor_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}to_markdown(){let e,t;try{let i=J.pptxarchive_to_markdown(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,R(n,r)}finally{J.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);function We(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;Ke().setInt32(e+4,i,!0),Ke().setInt32(e+0,r,!0)},__wbindgen_cast_0000000000000001:function(e,t){return R(e,t)},__wbindgen_init_externref_table:function(){let e=J.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}const Ge=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function I(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let L=null;function Ke(){return(L===null||L.buffer.detached===!0||L.buffer.detached===void 0&&L.buffer!==J.memory.buffer)&&(L=new DataView(J.memory.buffer)),L}function R(e,t){return e>>>=0,Je(e,t)}let z=null;function B(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(J.memory.buffer)),z}function V(e){return e==null}function qe(e,t){let n=t(e.length*1,1)>>>0;return B().set(e,n/1),q=e.length,n}function H(e,t,n){if(n===void 0){let n=K.encode(e),r=t(n.length,1)>>>0;return B().subarray(r,r+n.length).set(n),q=n.length,r}let r=e.length,i=t(r,1)>>>0,a=B(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=B().subarray(i+o,i+r),a=K.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return q=o,i}function U(e){let t=J.__wbindgen_externrefs.get(e);return J.__externref_table_dealloc(e),t}let W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});W.decode();let G=0;function Je(e,t){return G+=t,G>=2146435072&&(W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),W.decode(),G=t),W.decode(B().subarray(e,e+t))}const K=new TextEncoder;`encodeInto`in K||(K.encodeInto=function(e,t){let n=K.encode(e);return t.set(n),{read:e.length,written:n.length}});let q=0,J;function Ye(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function Xe(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function Ze(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=We();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Xe(await e,t);return Ye(n,r)}async function Qe(e){return J=void 0,L=null,z=null,Ze(e)}const Y=new ae(Ze,{freeArchive:e=>e.free(),reinit:Qe});let X=null,Z=`empty`;function $e(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new Ve(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(He(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(u(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&($e(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...y(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=Oe(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=new Re(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:pe(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...y(e)})}catch{}}};", $e = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", Qe], { type: "text/javascript;charset=utf-8" });
|
|
543
|
-
function
|
|
543
|
+
var Ze = "var e=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},t=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const n=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,r=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,a={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:i,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:i,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:n,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:n,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:r,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:n,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:r,loadFamily:`Noto Sans Arabic`}};function o(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ-가-]/.test(e)?`kr`:/[-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const s=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,ee={\"noto sans kr\":{url:s(`Noto+Sans+KR`)},\"noto sans sc\":{url:s(`Noto+Sans+SC`)},\"noto sans tc\":{url:s(`Noto+Sans+TC`)},\"noto sans jp\":{url:s(`Noto+Sans+JP`)},\"noto serif kr\":{url:s(`Noto+Serif+KR`)},\"noto serif sc\":{url:s(`Noto+Serif+SC`)},\"noto serif tc\":{url:s(`Noto+Serif+TC`)},\"noto serif jp\":{url:s(`Noto+Serif+JP`)},\"noto sans\":{url:s(`Noto+Sans`)},\"noto serif\":{url:s(`Noto+Serif`)},\"noto sans devanagari\":{url:s(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:s(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:s(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:s(`Noto+Serif+Hebrew`)}};var c=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}},l=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}};function u(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var d=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},te=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ne(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function re(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function ie(e,t){return e({module_or_path:t})}var ae=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new d(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),oe),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new te(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):ie(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,re(e)}};function oe(e){return ne(e)?new te(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function se(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function ce(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return se(t.requiredBytes)&&se(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var f=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function le(e){if(e instanceof f)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!ce(r)))return new f(r)}function ue(e,t,n){let r=le(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}const de=`OOXML_RESOURCE_LIMIT:`;function p(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function fe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return p(t.archiveEntryCount)&&p(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||p(t.largestInflatedEntryBytes))&&p(t.distinctInflatedBytes)&&p(t.operationInflatedBytes)}function pe(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!fe(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function me(e){return e===`docx`||e===`xlsx`||e===`pptx`}function he(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function m(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function h(e){return m(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ge(e){return!m(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const g=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),_e=new Set([...g.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),ve=new Set([...g.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function ye(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!me(t.format)||!m(t.operation,256)||!h(t.resource)||!h(t.metric)||!p(t.limit)||!p(t.observed)||typeof t.configurable!=`boolean`||!fe(t.usage)?!1:!(`part`in t)||ge(t.part)}function _(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!he(t.stage)||!ye(t.violation))return!1;let n=t.violation,r=g.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(_e.has(n.resource)&&ve.has(n.metric))}function be(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function xe(e){if(!_(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:be(t.usage)}};return _(n)?n:void 0}function v(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Se(e){let n=e instanceof Error?e.message:String(e);if(!n.startsWith(de))return;let r;try{r=JSON.parse(n.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!_(i.details)))return new t(v(i.details),i.details)}function Ce(n){if(n instanceof l)return{message:n.message,errorName:n.name,code:n.code,decodedImage:{metric:n.metric,limit:n.limit,observed:n.observed}};let r=le(n);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=n instanceof e||n instanceof t?n:Se(n);if(i instanceof t){let e=xe(i.details);return e?{message:typeof i.message==`string`?i.message:v(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof e)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:m(i.name,128)?i.name:`OoxmlError`,...h(i.code)?{code:i.code}:{}};let a=n instanceof Error?n.message:String(n);if(typeof a==`string`&&a.startsWith(de))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=n instanceof Error?n:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:m(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return Ce(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const we=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Te(n){if(n.code===`ooxml-decoded-image-limit`&&n.decodedImage&&(n.decodedImage.metric===`image-pixels`||n.decodedImage.metric===`active-decoded-bytes`)&&p(n.decodedImage.limit)&&p(n.decodedImage.observed)&&n.decodedImage.observed>n.decodedImage.limit)return new l(n.decodedImage.metric,n.decodedImage.limit,n.decodedImage.observed);if(n.code===`ooxml-insufficient-credit`&&ce(n.insufficientCredit))return new f(n.insufficientCredit);if(n.code===`ooxml-resource-limit`&&_(n.resourceLimit))return new t(n.message,n.resourceLimit);if(n.code&&we.has(n.code))return new e(n.code,n.message);let r=n.errorName===`TypeError`?TypeError(n.message):n.errorName===`RangeError`?RangeError(n.message):Error(n.message);return n.errorName&&(r.name=n.errorName),n.code!==void 0&&Object.assign(r,{code:n.code}),r}function Ee(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const De=67108864;Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function Oe(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const b=`ooxml-pull-v1`;function x(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function ke(e){if(!(typeof e==`string`&&e.length>0||typeof e==`number`&&Number.isSafeInteger(e)&&e>0))throw RangeError(`session id must be a non-empty string or positive safe integer`)}var S=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,x(this.maxRetainedBytes,`max retained lease bytes`),x(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},Ae=class{options;coordinator;coordinatorOwner=Symbol(`pull-session-host`);unregisterCleanup;sequence=0;unacked;leases=new Map;activeDriverLeases=new Set;nextWireLeaseId;cancelRequested=!1;cancelComplete=!1;closeRequested=!1;closeComplete=!1;driverCancelComplete=!1;driverCloseComplete=!1;completed=!1;constructor(e){ke(e.sessionId),x(e.operationId,`operation id`),x(e.generation,`generation`),x(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&x(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=y(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(x(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:b,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){x(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(x(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:b,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:b,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function C(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function w(e,t,n){return C(e,`resource measurement`),C(t,`resource measurement`),C(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function je(e,t=2**53-1){C(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=w(n,a,t),n>t)return n}return n}function T(e,t=2**53-1){C(t,`resource measurement limit`);let n=w(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=w(n,a,t),n>t)return n}return n}function E(e,t){return w(0,e,t)}function D(e,t=2**53-1,n=!1){if(C(t,`resource measurement limit`),e===null)return{jsonBytes:E(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:T(e,t),stringValueUtf8Bytes:je(e,t)};if(typeof e==`boolean`)return{jsonBytes:E(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:E((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=E(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=w(n,1,t));let a=D(e[i],t,!0);n=w(n,a.jsonBytes,t),r=w(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=E(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=w(n,1,t)),n=w(n,T(a,t),t),n=w(n,1,t);let e=D(o,t);n=w(n,e.jsonBytes,t),r=w(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?E(4,t):0,stringValueUtf8Bytes:0}}({...a,...ee});function*O(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*k(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*Me(e){for(let t of e.elements)if(t.type===`shape`)yield*O(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*O(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Ne=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=o(e)??o(t)??null;this.scripts=n??new c(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Me(e));for(let t of e.elements)if(t.type===`shape`)for(let e of k(t.textBody))this.families.add(e);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)for(let e of k(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const A=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),j=67108864;function M(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Pe(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Fe(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return M(t.defaultTextColor,`defaultTextColor`),M(t.majorFont,`majorFont`),M(t.minorFont,`minorFont`),M(t.hlinkColor,`hlinkColor`),M(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,slides:Object.freeze(t.slides.map(Pe))})}function Ie(e){return Object.freeze({type:`media`,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,flipH:e.flipH,flipV:e.flipV,mediaKind:e.mediaKind,posterPath:e.posterPath,posterMimeType:e.posterMimeType,mediaPath:e.mediaPath,mimeType:e.mimeType})}function Le(e,t){if(e.index!==t.index||e.partName!==t.partName)throw Error(`PPTX pulled slide identity does not match bootstrap index ${t.index}`);return Object.freeze({index:t.index,...t.partName===void 0?{}:{partName:t.partName},notes:e.notes??null,hidden:e.hidden??!1,mediaElements:Object.freeze(e.elements.filter(e=>e.type===`media`).map(Ie))})}function N(e,n,r){if(!(e<=n))throw new t(`PPTX presentation preflight exceeded its hard limit of ${n} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:n,observed:Math.min(e,n+1),configurable:!1,usage:r}})}var Re=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Fe(e),r=t.hardLimitForTesting??j;if(!Number.isSafeInteger(r)||r<=0||r>j)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.descriptors=[...n.slides],this.fonts=new Ne(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=D(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=D({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,N(this.projectionBytesValue,this.limit,A)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}addSlide(e,t=A){this.prepareSlide(e,t).commit()}prepareSlide(e,t=A){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=Le(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=D(o,this.limit).jsonBytes,ee=D(i,this.limit).jsonBytes,c=this.projectionBytesValue-this.fontProjectionBytes-D(r,this.limit).jsonBytes+4;c=w(c,s,this.limit),c=w(c,ee,this.limit),this.slides.length!==0&&(c=w(c,1,this.limit));let l=D({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=w(this.projectionBytesValue,l,this.limit);N(Math.max(u,c),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:c};return this.pending=d,{projectedBytes:u,commit:()=>{if(d.state!==`committed`){if(d.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(d.fact),this.fonts=d.fonts,this.fontPreloadNames=d.fontNames,this.fontProjectionBytes=d.fontBytes,this.projectionBytesValue=d.committedBytes,d.state=`committed`,this.pending=null}},rollback:()=>{if(d.state!==`rolled-back`){if(d.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);d.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=D(this.finished,this.limit).jsonBytes,this.finished}};function ze(e){try{return pe(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Be(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,ze(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var Ve=class{coordinatorGeneration=new S;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),Ue(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let r,i=new Promise(e=>{r=e}),a=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let i,a=!1,o=new Ae({...t,maxByteCredit:De,coordinator:this.coordinator,driver:{pull:n=>{let r;try{r=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw ue(e,n,De)||(this.latchResourceFailure(e),e)}let o=Ee(r);return this.acceptSlide&&(i=JSON.parse(new TextDecoder().decode(new Uint8Array(o)))),a=!0,{payload:o,byteLength:o.byteLength,done:!0,transfer:[o]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!a)throw Error(`slide unit is not awaiting acknowledgement`);try{Be(this.executeArchive,t,e,i,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}a=!1,i=void 0,this.sessions.delete(t.sessionId),r()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:o,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=a.then(()=>i,()=>void 0);try{await a}catch(e){throw this.pendingOpens.delete(t.sessionId),r(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:b,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=Te(e.error))}),r)throw r}this.sessions.clear(),await this.operationTail,this.pendingOpens.clear(),this.archive()&&await this.executeArchive(e=>e.close_presentation_session()),this.coordinatorGeneration=new S,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!P(t,e)?this.staleLifecycleResponse(e):{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:b,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return ze(this.executeArchive)}latchResourceFailure(e){let n=e instanceof t?e:Se(e);n&&(this.resourceFailure??=n)}staleLifecycleResponse(e){return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function He(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ue(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function P(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var F=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ge.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=qe(e,J.__wbindgen_malloc),a=q,o=J.pptxarchive_new(i,a,!V(t),V(t)?BigInt(0):t,!V(n),V(n)?BigInt(0):n,!V(r),V(r)?BigInt(0):r);if(o[2])throw U(o[1]);return this.__wbg_ptr=o[0]>>>0,Ge.register(this,this.__wbg_ptr,this),this}parse(){let e=J.pptxarchive_parse(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}presentation_bootstrap(){let e=J.pptxarchive_presentation_bootstrap(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}pull_slide(e,t,n,r){let i=J.pptxarchive_pull_slide(this.__wbg_ptr,e,t,n,r);if(i[3])throw U(i[2]);var a=I(i[0],i[1]).slice();return J.__wbindgen_free(i[0],i[1]*1,1),a}resource_usage(){let e=J.pptxarchive_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}slide_cursor_resource_usage(){let e=J.pptxarchive_slide_cursor_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}to_markdown(){let e,t;try{let i=J.pptxarchive_to_markdown(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,R(n,r)}finally{J.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);function We(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;Ke().setInt32(e+4,i,!0),Ke().setInt32(e+0,r,!0)},__wbindgen_cast_0000000000000001:function(e,t){return R(e,t)},__wbindgen_init_externref_table:function(){let e=J.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}const Ge=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function I(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let L=null;function Ke(){return(L===null||L.buffer.detached===!0||L.buffer.detached===void 0&&L.buffer!==J.memory.buffer)&&(L=new DataView(J.memory.buffer)),L}function R(e,t){return e>>>=0,Je(e,t)}let z=null;function B(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(J.memory.buffer)),z}function V(e){return e==null}function qe(e,t){let n=t(e.length*1,1)>>>0;return B().set(e,n/1),q=e.length,n}function H(e,t,n){if(n===void 0){let n=K.encode(e),r=t(n.length,1)>>>0;return B().subarray(r,r+n.length).set(n),q=n.length,r}let r=e.length,i=t(r,1)>>>0,a=B(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=B().subarray(i+o,i+r),a=K.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return q=o,i}function U(e){let t=J.__wbindgen_externrefs.get(e);return J.__externref_table_dealloc(e),t}let W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});W.decode();let G=0;function Je(e,t){return G+=t,G>=2146435072&&(W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),W.decode(),G=t),W.decode(B().subarray(e,e+t))}const K=new TextEncoder;`encodeInto`in K||(K.encodeInto=function(e,t){let n=K.encode(e);return t.set(n),{read:e.length,written:n.length}});let q=0,J;function Ye(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function Xe(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function Ze(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=We();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Xe(await e,t);return Ye(n,r)}async function Qe(e){return J=void 0,L=null,z=null,Ze(e)}const Y=new ae(Ze,{freeArchive:e=>e.free(),reinit:Qe});let X=null,Z=`empty`;function $e(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new Ve(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(He(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(u(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&($e(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...y(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=Oe(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=new Re(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:pe(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...y(e)})}catch{}}};", Qe = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", Ze], { type: "text/javascript;charset=utf-8" });
|
|
544
|
+
function $e(e) {
|
|
544
545
|
let t;
|
|
545
546
|
try {
|
|
546
|
-
if (t =
|
|
547
|
+
if (t = Qe && (self.URL || self.webkitURL).createObjectURL(Qe), !t) throw "";
|
|
547
548
|
let n = new Worker(t, {
|
|
548
549
|
type: "module",
|
|
549
550
|
name: e?.name
|
|
@@ -552,7 +553,7 @@ function et(e) {
|
|
|
552
553
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
553
554
|
}), n;
|
|
554
555
|
} catch {
|
|
555
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
556
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(Ze), {
|
|
556
557
|
type: "module",
|
|
557
558
|
name: e?.name
|
|
558
559
|
});
|
|
@@ -560,24 +561,24 @@ function et(e) {
|
|
|
560
561
|
}
|
|
561
562
|
//#endregion
|
|
562
563
|
//#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
|
|
563
|
-
var
|
|
564
|
-
function
|
|
564
|
+
var et = new URL("pptx_parser_bg.wasm", import.meta.url).href, Y = 65536, tt = 16384, nt = new Set(["line", "straightconnector1"]);
|
|
565
|
+
function rt(e, t) {
|
|
565
566
|
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;
|
|
566
567
|
return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
|
|
567
568
|
x: l,
|
|
568
569
|
y: u
|
|
569
570
|
};
|
|
570
571
|
}
|
|
571
|
-
function
|
|
572
|
+
function it(e, t, n) {
|
|
572
573
|
let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
|
|
573
574
|
if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
|
|
574
575
|
let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
|
|
575
576
|
return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
|
|
576
577
|
}
|
|
577
|
-
function
|
|
578
|
+
function at(e, t, n = 0) {
|
|
578
579
|
if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
|
|
579
|
-
let r =
|
|
580
|
-
if (e.type === "shape" && (
|
|
580
|
+
let r = rt(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
|
|
581
|
+
if (e.type === "shape" && (nt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return it(r, {
|
|
581
582
|
x: e.x,
|
|
582
583
|
y: e.y
|
|
583
584
|
}, {
|
|
@@ -587,7 +588,7 @@ function ot(e, t, n = 0) {
|
|
|
587
588
|
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);
|
|
588
589
|
return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
|
|
589
590
|
}
|
|
590
|
-
function*
|
|
591
|
+
function* ot(e) {
|
|
591
592
|
if (e) for (let t of e.paragraphs) {
|
|
592
593
|
let e = !0;
|
|
593
594
|
for (let n of t.runs) {
|
|
@@ -599,17 +600,17 @@ function* st(e) {
|
|
|
599
600
|
}
|
|
600
601
|
}
|
|
601
602
|
}
|
|
602
|
-
function*
|
|
603
|
+
function* st(e) {
|
|
603
604
|
if (e.type === "shape") {
|
|
604
|
-
yield*
|
|
605
|
+
yield* ot(e.textBody);
|
|
605
606
|
return;
|
|
606
607
|
}
|
|
607
608
|
if (e.type === "table") {
|
|
608
|
-
for (let t of e.rows) for (let e of t.cells) yield*
|
|
609
|
+
for (let t of e.rows) for (let e of t.cells) yield* ot(e.textBody);
|
|
609
610
|
return;
|
|
610
611
|
}
|
|
611
612
|
}
|
|
612
|
-
function
|
|
613
|
+
function ct(e, t) {
|
|
613
614
|
let n = Math.min(e.length, t);
|
|
614
615
|
if (n > 0 && n < e.length) {
|
|
615
616
|
let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
|
|
@@ -617,9 +618,9 @@ function lt(e, t) {
|
|
|
617
618
|
}
|
|
618
619
|
return e.slice(0, n);
|
|
619
620
|
}
|
|
620
|
-
function
|
|
621
|
+
function lt(e, t = tt) {
|
|
621
622
|
if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
622
|
-
let n = Math.min(
|
|
623
|
+
let n = Math.min(Y, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : ct(r, n), a = r !== void 0 && i.length < r.length;
|
|
623
624
|
return {
|
|
624
625
|
...structuredClone(e),
|
|
625
626
|
...i === void 0 ? {} : { text: i },
|
|
@@ -629,7 +630,7 @@ function ut(e, t = nt) {
|
|
|
629
630
|
maxTextCharacters: n
|
|
630
631
|
};
|
|
631
632
|
}
|
|
632
|
-
function
|
|
633
|
+
function ut(e, t) {
|
|
633
634
|
let n = [], r = 0, i = !1, a = !1;
|
|
634
635
|
for (let o of e) {
|
|
635
636
|
if (a = !0, o.beginsPart && n.length > 0) {
|
|
@@ -639,7 +640,7 @@ function dt(e, t) {
|
|
|
639
640
|
}
|
|
640
641
|
n.push("\n"), r++;
|
|
641
642
|
}
|
|
642
|
-
let e = Math.max(0, t - r), s =
|
|
643
|
+
let e = Math.max(0, t - r), s = ct(o.text, e);
|
|
643
644
|
if (n.push(s), r += s.length, s.length < o.text.length) {
|
|
644
645
|
i = !0;
|
|
645
646
|
break;
|
|
@@ -654,16 +655,16 @@ function dt(e, t) {
|
|
|
654
655
|
textCharacters: 0
|
|
655
656
|
};
|
|
656
657
|
}
|
|
657
|
-
function
|
|
658
|
+
function dt(e, t, n, r = {}) {
|
|
658
659
|
if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
|
|
659
|
-
let i = r.maxTextCharacters ??
|
|
660
|
+
let i = r.maxTextCharacters ?? tt;
|
|
660
661
|
if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
661
|
-
let a = Math.min(
|
|
662
|
+
let a = Math.min(Y, Math.floor(i)), o = r.tolerance ?? 0;
|
|
662
663
|
if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
|
|
663
664
|
for (let r = t.elements.length - 1; r >= 0; r--) {
|
|
664
665
|
let i = t.elements[r];
|
|
665
|
-
if (!
|
|
666
|
-
let s = i.type === "chart" ? oe(i.chart, a) :
|
|
666
|
+
if (!at(i, n, o)) continue;
|
|
667
|
+
let s = i.type === "chart" ? oe(i.chart, a) : ut(st(i), a);
|
|
667
668
|
return {
|
|
668
669
|
format: "pptx",
|
|
669
670
|
kind: "element",
|
|
@@ -707,7 +708,7 @@ function ft(e, t, n, r = {}) {
|
|
|
707
708
|
}
|
|
708
709
|
//#endregion
|
|
709
710
|
//#region packages/pptx/src/presentation.ts
|
|
710
|
-
var
|
|
711
|
+
var X = class e {
|
|
711
712
|
_metrics = null;
|
|
712
713
|
_worker;
|
|
713
714
|
_bridge;
|
|
@@ -719,18 +720,20 @@ var Y = class e {
|
|
|
719
720
|
_slidePartIndex = null;
|
|
720
721
|
_rawParts = new Se({
|
|
721
722
|
maxEntries: 64,
|
|
722
|
-
maxBytes:
|
|
723
|
+
maxBytes: C
|
|
723
724
|
});
|
|
724
725
|
_googleFontFaces = [];
|
|
725
726
|
_fetchImage = (e, t) => this.getImage(e, t);
|
|
726
727
|
_fetchMedia = (e) => this.getMedia(e);
|
|
727
728
|
_math;
|
|
729
|
+
_threeD;
|
|
730
|
+
_regionMap;
|
|
728
731
|
constructor(e, t, n) {
|
|
729
732
|
this._worker = e, this._mode = t, this._bridge = new te(this._worker, {
|
|
730
733
|
correlate: (e) => "protocol" in e && e.protocol === "ooxml-pull-v1" ? e.requestId : "id" in e ? e.id : void 0,
|
|
731
|
-
toError: (e) => !("protocol" in e) && e.kind === "error" ?
|
|
734
|
+
toError: (e) => !("protocol" in e) && e.kind === "error" ? b(e) : void 0
|
|
732
735
|
});
|
|
733
|
-
let r = new URL(n ??
|
|
736
|
+
let r = new URL(n ?? et, location.href).href;
|
|
734
737
|
this._bridge.post({
|
|
735
738
|
kind: "init",
|
|
736
739
|
wasmUrl: r
|
|
@@ -740,7 +743,7 @@ var Y = class e {
|
|
|
740
743
|
if (this._resourceFailure) throw this._resourceFailure;
|
|
741
744
|
}
|
|
742
745
|
_rethrowWithResourceFailure(e) {
|
|
743
|
-
let t = e instanceof
|
|
746
|
+
let t = e instanceof w ? e : _(e);
|
|
744
747
|
throw t ? (this._resourceFailure ??= t, this._resourceFailure) : e;
|
|
745
748
|
}
|
|
746
749
|
static async load(t, n = {}) {
|
|
@@ -761,9 +764,9 @@ var Y = class e {
|
|
|
761
764
|
s = await e.arrayBuffer();
|
|
762
765
|
} else s = t;
|
|
763
766
|
s = ne(await ie(s, n.password)), a.setSourceBytes(s.byteLength), a.checkpoint("container ready");
|
|
764
|
-
let c = i === "worker" ? (await import("./render-worker-host-
|
|
767
|
+
let c = i === "worker" ? (await import("./render-worker-host-BB320snY.js")).createRenderWorker() : new $e(), l;
|
|
765
768
|
try {
|
|
766
|
-
return l = new e(c, i, n.wasmUrl), l._metrics = a, n.math && i === "worker" && console.warn("[ooxml] the math engine is unavailable in mode: 'worker'; equations will be skipped. Use mode: 'main' for documents with equations."), l._math = i === "worker" ? void 0 : n.math, await l._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e)), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && l._preflight && (l._googleFontFaces = await be(l._preflight.fontPreloadNames, o)), a.succeed({ slides: l.slideCount }), l;
|
|
769
|
+
return l = new e(c, i, n.wasmUrl), l._metrics = a, n.math && i === "worker" && console.warn("[ooxml] the math engine is unavailable in mode: 'worker'; equations will be skipped. Use mode: 'main' for documents with equations."), n.threeD && i === "worker" && console.warn("[ooxml] the 3-D chart addon is unavailable in mode: 'worker'; charts use their 2-D family fallback. Use mode: 'main' for authored 3-D charts."), l._math = i === "worker" ? void 0 : n.math, l._threeD = i === "worker" ? void 0 : n.threeD, n.regionMap && i === "worker" && console.warn("[ooxml] the Region Map addon is unavailable in mode: 'worker'; geospatial charts use the unsupported-chart placeholder. Use mode: 'main' for Region Maps."), l._regionMap = i === "worker" ? void 0 : n.regionMap, await l._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e)), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && l._preflight && (l._googleFontFaces = await be(l._preflight.fontPreloadNames, o)), a.succeed({ slides: l.slideCount }), l;
|
|
767
770
|
} catch (e) {
|
|
768
771
|
let t = l;
|
|
769
772
|
throw re(c, t ? () => t.destroy() : void 0), e;
|
|
@@ -808,7 +811,7 @@ var Y = class e {
|
|
|
808
811
|
this._preflight = t((await this._bridge.request((e) => ({
|
|
809
812
|
kind: "finishPresentationPreflight",
|
|
810
813
|
id: e
|
|
811
|
-
}), void 0, { timeoutMs: o })).preflight), this._slides = new
|
|
814
|
+
}), void 0, { timeoutMs: o })).preflight), this._slides = new Ye({
|
|
812
815
|
slideCount: this._preflight.slideCount,
|
|
813
816
|
maxCachedSlides: 8,
|
|
814
817
|
maxCachedStructuralBytes: f,
|
|
@@ -841,13 +844,13 @@ var Y = class e {
|
|
|
841
844
|
return (this._preflight?.slides ?? []).map((e) => e.partName);
|
|
842
845
|
}
|
|
843
846
|
_partIndex() {
|
|
844
|
-
return this._slidePartIndex ||=
|
|
847
|
+
return this._slidePartIndex ||= Ke(this._partNames()), this._slidePartIndex;
|
|
845
848
|
}
|
|
846
849
|
getSlideIndexByPartName(e) {
|
|
847
850
|
return this._partIndex().get(e);
|
|
848
851
|
}
|
|
849
852
|
resolveInternalTarget(e, t = 0) {
|
|
850
|
-
return
|
|
853
|
+
return Je(e, this._partIndex(), t);
|
|
851
854
|
}
|
|
852
855
|
async renderSlide(e, t, r = {}) {
|
|
853
856
|
this._assertResourceHealthy();
|
|
@@ -855,7 +858,7 @@ var Y = class e {
|
|
|
855
858
|
if (this._mode === "worker") throw Error("renderSlide(canvas) is unavailable in mode: 'worker'; use renderSlideToBitmap() and paint it via an ImageBitmapRenderingContext");
|
|
856
859
|
let i = this._preflight, a = this._slides;
|
|
857
860
|
if (!i || !a) throw Error("Presentation not loaded");
|
|
858
|
-
let o = r.dpr ??
|
|
861
|
+
let o = r.dpr ?? y(), s = r.width ?? ((v(e) ? e.offsetWidth : 0) || 960);
|
|
859
862
|
await a.withSlide(t, (t) => (this._assertResourceHealthy(), n(e, t, i.slideWidth, i.slideHeight, {
|
|
860
863
|
width: s,
|
|
861
864
|
dpr: o,
|
|
@@ -867,7 +870,9 @@ var Y = class e {
|
|
|
867
870
|
fetchImage: this._fetchImage,
|
|
868
871
|
skipMediaControls: r.skipMediaControls,
|
|
869
872
|
dim: r.dim,
|
|
870
|
-
math: this._math
|
|
873
|
+
math: this._math,
|
|
874
|
+
threeD: this._threeD,
|
|
875
|
+
regionMap: this._regionMap
|
|
871
876
|
}, r.onTextRun)));
|
|
872
877
|
} catch (e) {
|
|
873
878
|
this._rethrowWithResourceFailure(e);
|
|
@@ -876,7 +881,7 @@ var Y = class e {
|
|
|
876
881
|
async renderSlideToBitmap(e, t = {}) {
|
|
877
882
|
this._assertResourceHealthy();
|
|
878
883
|
try {
|
|
879
|
-
let n = t.width ?? 960, r = t.dpr ??
|
|
884
|
+
let n = t.width ?? 960, r = t.dpr ?? y();
|
|
880
885
|
if (this._mode === "worker") {
|
|
881
886
|
if (!Number.isInteger(e) || e < 0 || e >= this.slideCount) throw Error(`Slide index ${e} out of range (count: ${this.slideCount})`);
|
|
882
887
|
let i = await this._bridge.request((i) => ({
|
|
@@ -935,7 +940,7 @@ var Y = class e {
|
|
|
935
940
|
options: n
|
|
936
941
|
}))).context;
|
|
937
942
|
if (!this._slides) throw Error("Presentation not loaded");
|
|
938
|
-
return await this._slides.withSlide(e, (r) =>
|
|
943
|
+
return await this._slides.withSlide(e, (r) => dt(e, r, t, n));
|
|
939
944
|
} catch (e) {
|
|
940
945
|
this._rethrowWithResourceFailure(e);
|
|
941
946
|
}
|
|
@@ -998,7 +1003,7 @@ var Y = class e {
|
|
|
998
1003
|
try {
|
|
999
1004
|
if (!this._preflight) throw Error("Presentation not loaded");
|
|
1000
1005
|
if (!Number.isInteger(t) || t < 0 || t >= this.slideCount) throw Error(`Slide index ${t} out of range (count: ${this.slideCount})`);
|
|
1001
|
-
let r = n.dpr ??
|
|
1006
|
+
let r = n.dpr ?? y(), i = n.width ?? (e.offsetWidth || 960), a = this._mode === "worker" ? async () => {
|
|
1002
1007
|
let a = await this.renderSlideToBitmap(t, {
|
|
1003
1008
|
width: i,
|
|
1004
1009
|
dpr: r,
|
|
@@ -1017,7 +1022,7 @@ var Y = class e {
|
|
|
1017
1022
|
dim: n.dim,
|
|
1018
1023
|
onTextRun: n.onTextRun
|
|
1019
1024
|
});
|
|
1020
|
-
return await
|
|
1025
|
+
return await je(e, this._preflight.slides[t]?.mediaElements ?? [], {
|
|
1021
1026
|
width: i,
|
|
1022
1027
|
dpr: r,
|
|
1023
1028
|
slideWidthEmu: this.slideWidth,
|
|
@@ -1031,28 +1036,28 @@ var Y = class e {
|
|
|
1031
1036
|
}
|
|
1032
1037
|
}
|
|
1033
1038
|
destroy() {
|
|
1034
|
-
this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._preflight = null, this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (ye(this._googleFontFaces), this._googleFontFaces = []),
|
|
1039
|
+
this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._preflight = null, this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (ye(this._googleFontFaces), this._googleFontFaces = []), x(this._fetchImage), d(this._fetchImage);
|
|
1035
1040
|
}
|
|
1036
1041
|
};
|
|
1037
1042
|
//#endregion
|
|
1038
1043
|
//#region packages/pptx/src/selection-context.ts
|
|
1039
|
-
function
|
|
1044
|
+
function Z(e) {
|
|
1040
1045
|
if (e === void 0 || !/^\d+$/.test(e)) return null;
|
|
1041
1046
|
let t = Number(e);
|
|
1042
1047
|
return Number.isSafeInteger(t) ? t : null;
|
|
1043
1048
|
}
|
|
1044
|
-
function
|
|
1049
|
+
function ft(e) {
|
|
1045
1050
|
for (let t = e; t; t = t.parentElement) {
|
|
1046
|
-
let e =
|
|
1051
|
+
let e = Z(t.dataset.slideIndex);
|
|
1047
1052
|
if (e !== null) return e;
|
|
1048
1053
|
}
|
|
1049
1054
|
return null;
|
|
1050
1055
|
}
|
|
1051
|
-
function
|
|
1056
|
+
function Q(e, t, n = {}) {
|
|
1052
1057
|
let r = he(e, t, (e) => {
|
|
1053
|
-
let t =
|
|
1058
|
+
let t = ft(e), n = Z(e.dataset.runIndex);
|
|
1054
1059
|
if (t === null || n === null) return null;
|
|
1055
|
-
let r =
|
|
1060
|
+
let r = Z(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
|
|
1056
1061
|
return {
|
|
1057
1062
|
slideIndex: t,
|
|
1058
1063
|
runIndex: n,
|
|
@@ -1084,10 +1089,10 @@ function Z(e, t, n = {}) {
|
|
|
1084
1089
|
}
|
|
1085
1090
|
//#endregion
|
|
1086
1091
|
//#region packages/pptx/src/viewer.ts
|
|
1087
|
-
var
|
|
1092
|
+
var $ = Symbol("PptxViewer.borrowedPresentation"), pt = {
|
|
1088
1093
|
color: "#ffffff",
|
|
1089
1094
|
opacity: .6
|
|
1090
|
-
},
|
|
1095
|
+
}, mt = class e {
|
|
1091
1096
|
canvas;
|
|
1092
1097
|
wrapper;
|
|
1093
1098
|
canvasMount;
|
|
@@ -1121,13 +1126,13 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1121
1126
|
static fromPresentation(t, n, r = {}) {
|
|
1122
1127
|
return new e(t, {
|
|
1123
1128
|
...r,
|
|
1124
|
-
[
|
|
1129
|
+
[$]: n
|
|
1125
1130
|
});
|
|
1126
1131
|
}
|
|
1127
1132
|
constructor(e, t = {}) {
|
|
1128
1133
|
this.opts = t, this.canvas = e;
|
|
1129
|
-
let n = t[
|
|
1130
|
-
this.borrowed = n !== void 0, this._mode =
|
|
1134
|
+
let n = t[$];
|
|
1135
|
+
this.borrowed = n !== void 0, this._mode = k("PptxViewer", t.mode, n), this.presentationOwner = new E("PptxViewer", n ?? null, !1);
|
|
1131
1136
|
let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
|
|
1132
1137
|
if (!r) throw Error("PptxViewer requires a canvas with an active Window");
|
|
1133
1138
|
this.hostWindow = r;
|
|
@@ -1136,7 +1141,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1136
1141
|
this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new ge(e, {
|
|
1137
1142
|
wrapperCssText: "position:relative;display:inline-block;vertical-align:top;",
|
|
1138
1143
|
forceDisplayBlock: !0
|
|
1139
|
-
}), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new
|
|
1144
|
+
}), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new O(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new me("PptxViewer", t.onError);
|
|
1140
1145
|
let a = new de(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
|
|
1141
1146
|
this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this.textLayer && (t.onSelectionContextChange || t.enableElementSelection) && (this.selectionChangeListener = () => this._emitSelectionContextChange(), this.wrapper.ownerDocument.addEventListener("selectionchange", this.selectionChangeListener)), t.enableElementSelection && (this.elementClickListener = (e) => {
|
|
1142
1147
|
this._onElementClick(e).catch((e) => this._reportRenderError(e));
|
|
@@ -1147,7 +1152,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1147
1152
|
if (this.borrowed) throw Error("PptxViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
1148
1153
|
let t = !1;
|
|
1149
1154
|
try {
|
|
1150
|
-
if (!await this.presentationOwner.replace(() =>
|
|
1155
|
+
if (!await this.presentationOwner.replace(() => X.load(e, {
|
|
1151
1156
|
password: this.opts.password,
|
|
1152
1157
|
useGoogleFonts: this.opts.useGoogleFonts,
|
|
1153
1158
|
maxZipEntryBytes: this.opts.maxZipEntryBytes,
|
|
@@ -1157,6 +1162,8 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1157
1162
|
workerTimeoutMs: this.opts.workerTimeoutMs,
|
|
1158
1163
|
wasmUrl: this.opts.wasmUrl,
|
|
1159
1164
|
math: this.opts.math,
|
|
1165
|
+
threeD: this.opts.threeD,
|
|
1166
|
+
regionMap: this.opts.regionMap,
|
|
1160
1167
|
mode: this._mode
|
|
1161
1168
|
}), () => {
|
|
1162
1169
|
this._invalidateElementSelection(!1), t = !0, this.renderDispatcher.begin(), this._find.invalidate(), this.handle?.destroy(), this.handle = null;
|
|
@@ -1187,8 +1194,8 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1187
1194
|
}
|
|
1188
1195
|
_dim() {
|
|
1189
1196
|
return {
|
|
1190
|
-
color: this.opts.hiddenSlideDim?.color ??
|
|
1191
|
-
opacity: this.opts.hiddenSlideDim?.opacity ??
|
|
1197
|
+
color: this.opts.hiddenSlideDim?.color ?? pt.color,
|
|
1198
|
+
opacity: this.opts.hiddenSlideDim?.opacity ?? pt.opacity
|
|
1192
1199
|
};
|
|
1193
1200
|
}
|
|
1194
1201
|
async setHiddenSlideMode(e) {
|
|
@@ -1220,7 +1227,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1220
1227
|
}
|
|
1221
1228
|
_naturalWidthPx() {
|
|
1222
1229
|
let e = this.engine?.slideWidth ?? 0;
|
|
1223
|
-
return e > 0 ? e /
|
|
1230
|
+
return e > 0 ? e / M : 0;
|
|
1224
1231
|
}
|
|
1225
1232
|
_targetWidth() {
|
|
1226
1233
|
if (this._scale === null) return this.opts.width ?? (this.canvas.offsetWidth || 960);
|
|
@@ -1243,10 +1250,10 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1243
1250
|
this._scale = t, await this.renderCurrentSlide(), n && this.opts.onScaleChange?.(t);
|
|
1244
1251
|
}
|
|
1245
1252
|
async zoomIn() {
|
|
1246
|
-
await this.setScale(
|
|
1253
|
+
await this.setScale(A(this.getScale()));
|
|
1247
1254
|
}
|
|
1248
1255
|
async zoomOut() {
|
|
1249
|
-
await this.setScale(
|
|
1256
|
+
await this.setScale(j(this.getScale()));
|
|
1250
1257
|
}
|
|
1251
1258
|
async fitWidth() {
|
|
1252
1259
|
await this._fit("width");
|
|
@@ -1258,9 +1265,9 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1258
1265
|
if (!this.engine) return;
|
|
1259
1266
|
let t = this.wrapper.parentElement;
|
|
1260
1267
|
if (!t) return;
|
|
1261
|
-
let n =
|
|
1262
|
-
contentWidth: this.engine.slideWidth /
|
|
1263
|
-
contentHeight: this.engine.slideHeight /
|
|
1268
|
+
let n = T({
|
|
1269
|
+
contentWidth: this.engine.slideWidth / M,
|
|
1270
|
+
contentHeight: this.engine.slideHeight / M,
|
|
1264
1271
|
containerWidth: t.clientWidth,
|
|
1265
1272
|
containerHeight: t.clientHeight
|
|
1266
1273
|
}, e);
|
|
@@ -1376,7 +1383,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1376
1383
|
}
|
|
1377
1384
|
getSelectionContext(e = {}) {
|
|
1378
1385
|
if (this.destroyed) throw Error("PptxViewer is destroyed");
|
|
1379
|
-
return (this.textLayer ?
|
|
1386
|
+
return (this.textLayer ? Q(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? lt(this.elementContext, e.maxTextCharacters) : null);
|
|
1380
1387
|
}
|
|
1381
1388
|
_emitSelectionContextChange() {
|
|
1382
1389
|
let e = this.getSelectionContext();
|
|
@@ -1393,10 +1400,10 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1393
1400
|
_redrawElementOutline() {
|
|
1394
1401
|
let e = this.elementContext, t = this.engine;
|
|
1395
1402
|
if (!e || !t || e.slideIndex !== this.currentSlide) {
|
|
1396
|
-
|
|
1403
|
+
D(this.elementLayer, null);
|
|
1397
1404
|
return;
|
|
1398
1405
|
}
|
|
1399
|
-
|
|
1406
|
+
D(this.elementLayer, {
|
|
1400
1407
|
x: e.bounds.x / t.slideWidth,
|
|
1401
1408
|
y: e.bounds.y / t.slideHeight,
|
|
1402
1409
|
width: e.bounds.width / t.slideWidth,
|
|
@@ -1417,7 +1424,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1417
1424
|
async _resolveContextAt(e) {
|
|
1418
1425
|
let t = this.engine;
|
|
1419
1426
|
if (this.destroyed || !t) return null;
|
|
1420
|
-
if (this.textLayer &&
|
|
1427
|
+
if (this.textLayer && Q(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
|
|
1421
1428
|
if (!this.opts.enableElementSelection) return this.getSelectionContext();
|
|
1422
1429
|
let n = this.canvas.getBoundingClientRect();
|
|
1423
1430
|
if (n.width <= 0 || n.height <= 0) return this._invalidateElementSelection(), null;
|
|
@@ -1430,7 +1437,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1430
1437
|
try {
|
|
1431
1438
|
c = await t.getElementContextAt(o, s, {
|
|
1432
1439
|
tolerance: this.elementHitTolerance / n.width * t.slideWidth,
|
|
1433
|
-
maxTextCharacters:
|
|
1440
|
+
maxTextCharacters: Y
|
|
1434
1441
|
});
|
|
1435
1442
|
} catch (e) {
|
|
1436
1443
|
if (this.destroyed || a !== this.elementHitGeneration || o !== this.currentSlide || t !== this.engine) return null;
|
|
@@ -1441,7 +1448,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1441
1448
|
destroy() {
|
|
1442
1449
|
this.destroyed || (this.destroyed = !0, this.errorRouter.close(), this.renderDispatcher.destroy(), c(this.canvas), this.handle?.destroy(), this.handle = null, this.presentationOwner.close(), this._find.invalidate(), this.selectionChangeListener &&= (this.wrapper.ownerDocument.removeEventListener("selectionchange", this.selectionChangeListener), null), this.elementHitGeneration++, this.elementClickListener &&= (this.wrapper.removeEventListener("click", this.elementClickListener), null), this.contextMenuListener &&= (this.wrapper.removeEventListener("contextmenu", this.contextMenuListener), null), this.elementContext = null, this.canvasMount.restore());
|
|
1443
1450
|
}
|
|
1444
|
-
},
|
|
1451
|
+
}, ht = 150, gt = "0 1px 3px rgba(0,0,0,0.2)", _t = Symbol("PptxScrollViewer.borrowedPresentation"), vt = class e {
|
|
1445
1452
|
_presentationOwner;
|
|
1446
1453
|
get _pres() {
|
|
1447
1454
|
return this._presentationOwner.current;
|
|
@@ -1485,7 +1492,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1485
1492
|
static fromPresentation(t, n, r = {}) {
|
|
1486
1493
|
return new e(t, {
|
|
1487
1494
|
...r,
|
|
1488
|
-
[
|
|
1495
|
+
[_t]: n
|
|
1489
1496
|
});
|
|
1490
1497
|
}
|
|
1491
1498
|
constructor(e, t = {}) {
|
|
@@ -1493,9 +1500,9 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1493
1500
|
this._container = e, this._opts = t;
|
|
1494
1501
|
let n = t.elementHitTolerance ?? 6;
|
|
1495
1502
|
if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
|
|
1496
|
-
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ??
|
|
1497
|
-
let r = t[
|
|
1498
|
-
this._borrowed = r !== void 0, r ? (this._presentationOwner = new
|
|
1503
|
+
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? gt;
|
|
1504
|
+
let r = t[_t];
|
|
1505
|
+
this._borrowed = r !== void 0, r ? (this._presentationOwner = new E("PptxScrollViewer", r, !1), this._mode = k("PptxScrollViewer", t.mode, r)) : (this._presentationOwner = new E("PptxScrollViewer"), this._mode = k("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
|
|
1499
1506
|
this._onElementClick(e).catch((e) => this._reportRenderError(e));
|
|
1500
1507
|
}, this._scrollHost.addEventListener("click", this._elementClickListener)), t.onContextMenu && (this._contextMenuListener = (e) => this._onContextMenu(e), this._scrollHost.addEventListener("contextmenu", this._contextMenuListener)), this._scrollListener = () => this._onScroll(), this._scrollHost.addEventListener("scroll", this._scrollListener), this._opts.enableZoom !== !1 && (this._wheelListener = (e) => {
|
|
1501
1508
|
if (!(e.ctrlKey || e.metaKey) || (e.preventDefault(), e.deltaY === 0)) return;
|
|
@@ -1511,7 +1518,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1511
1518
|
if (this._borrowed) throw Error("PptxScrollViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
1512
1519
|
let t = !1;
|
|
1513
1520
|
try {
|
|
1514
|
-
if (!await this._presentationOwner.replace(() =>
|
|
1521
|
+
if (!await this._presentationOwner.replace(() => X.load(e, {
|
|
1515
1522
|
password: this._opts.password,
|
|
1516
1523
|
useGoogleFonts: this._opts.useGoogleFonts,
|
|
1517
1524
|
maxZipEntryBytes: this._opts.maxZipEntryBytes,
|
|
@@ -1521,6 +1528,8 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1521
1528
|
workerTimeoutMs: this._opts.workerTimeoutMs,
|
|
1522
1529
|
wasmUrl: this._opts.wasmUrl,
|
|
1523
1530
|
math: this._opts.math,
|
|
1531
|
+
threeD: this._opts.threeD,
|
|
1532
|
+
regionMap: this._opts.regionMap,
|
|
1524
1533
|
mode: this._mode
|
|
1525
1534
|
}), (e) => {
|
|
1526
1535
|
if (this._invalidateElementSelection(!1), t = !0, this._find.invalidate(), this._findActive = !1, e) {
|
|
@@ -1541,10 +1550,10 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1541
1550
|
return this._pres?.slideCount ?? 0;
|
|
1542
1551
|
}
|
|
1543
1552
|
_slideWidthPx() {
|
|
1544
|
-
return this._pres.slideWidth /
|
|
1553
|
+
return this._pres.slideWidth / M * this._scale;
|
|
1545
1554
|
}
|
|
1546
1555
|
_slideHeightPx() {
|
|
1547
|
-
return this._pres.slideHeight /
|
|
1556
|
+
return this._pres.slideHeight / M * this._scale;
|
|
1548
1557
|
}
|
|
1549
1558
|
_fitWidthPx() {
|
|
1550
1559
|
if (this._opts.width && this._opts.width > 0) return this._opts.width;
|
|
@@ -1555,7 +1564,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1555
1564
|
}
|
|
1556
1565
|
_baseScale() {
|
|
1557
1566
|
if (!this._pres || this._pres.slideCount === 0) return 0;
|
|
1558
|
-
let e = this._fitWidthPx(), t = this._pres.slideWidth /
|
|
1567
|
+
let e = this._fitWidthPx(), t = this._pres.slideWidth / M;
|
|
1559
1568
|
return e <= 0 || t <= 0 ? 0 : e / t;
|
|
1560
1569
|
}
|
|
1561
1570
|
relayout() {
|
|
@@ -1667,7 +1676,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1667
1676
|
elementLayer: a,
|
|
1668
1677
|
renderedSlide: -1,
|
|
1669
1678
|
renderedScale: -1,
|
|
1670
|
-
dispatcher: new
|
|
1679
|
+
dispatcher: new O(n, this._mode === "worker"),
|
|
1671
1680
|
presentationHandle: null,
|
|
1672
1681
|
mediaInteractive: !1,
|
|
1673
1682
|
renderGeneration: 0,
|
|
@@ -1675,7 +1684,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1675
1684
|
};
|
|
1676
1685
|
}
|
|
1677
1686
|
_recycleSlot(e, t) {
|
|
1678
|
-
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
|
|
1687
|
+
this._slots.delete(e), t.renderGeneration++, t.presentationGeneration++, t.presentationHandle?.destroy(), t.presentationHandle = null, t.mediaInteractive = !1, t.dispatcher.destroy(), this._destroyed || (t.dispatcher = new O(t.canvas, this._mode === "worker")), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", D(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
|
|
1679
1688
|
}
|
|
1680
1689
|
_positionSlot(e, t, n) {
|
|
1681
1690
|
e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${n.offsets[t]}px`;
|
|
@@ -1792,10 +1801,10 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1792
1801
|
return this._scaleEstablished ? this._scale : this._pendingScale ?? 1;
|
|
1793
1802
|
}
|
|
1794
1803
|
zoomIn() {
|
|
1795
|
-
this.setScale(
|
|
1804
|
+
this.setScale(A(this.getScale()));
|
|
1796
1805
|
}
|
|
1797
1806
|
zoomOut() {
|
|
1798
|
-
this.setScale(
|
|
1807
|
+
this.setScale(j(this.getScale()));
|
|
1799
1808
|
}
|
|
1800
1809
|
fitWidth() {
|
|
1801
1810
|
this._fit("width");
|
|
@@ -1805,9 +1814,9 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1805
1814
|
}
|
|
1806
1815
|
_fit(e) {
|
|
1807
1816
|
if (!this._pres || this._pres.slideCount === 0) return;
|
|
1808
|
-
let t =
|
|
1809
|
-
contentWidth: this._pres.slideWidth /
|
|
1810
|
-
contentHeight: this._pres.slideHeight /
|
|
1817
|
+
let t = T({
|
|
1818
|
+
contentWidth: this._pres.slideWidth / M,
|
|
1819
|
+
contentHeight: this._pres.slideHeight / M,
|
|
1811
1820
|
containerWidth: this._fitWidthPx(),
|
|
1812
1821
|
containerHeight: this._scrollHost.clientHeight
|
|
1813
1822
|
}, e);
|
|
@@ -1837,7 +1846,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1837
1846
|
_scheduleSettle() {
|
|
1838
1847
|
this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
|
|
1839
1848
|
this._settleTimer = null, this._settleRender();
|
|
1840
|
-
},
|
|
1849
|
+
}, ht);
|
|
1841
1850
|
}
|
|
1842
1851
|
_settleRender() {
|
|
1843
1852
|
if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
|
|
@@ -1858,7 +1867,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1858
1867
|
}
|
|
1859
1868
|
let o = document.createElement("canvas"), s = ++t.renderGeneration;
|
|
1860
1869
|
o.style.cssText = "display:block;background:#fff;", this._applyPageShadow(o);
|
|
1861
|
-
let c = new
|
|
1870
|
+
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;
|
|
1862
1871
|
this._pres.renderSlide(o, e, {
|
|
1863
1872
|
width: r,
|
|
1864
1873
|
dpr: n,
|
|
@@ -1892,7 +1901,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
1892
1901
|
return;
|
|
1893
1902
|
}
|
|
1894
1903
|
let d = t.canvas, f = t.presentationHandle;
|
|
1895
|
-
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new
|
|
1904
|
+
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new O(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l && L(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._redrawSlotHighlights(e, t);
|
|
1896
1905
|
}).catch((e) => {
|
|
1897
1906
|
o === t.presentationGeneration && this._reportRenderError(e);
|
|
1898
1907
|
});
|
|
@@ -2030,7 +2039,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
2030
2039
|
}
|
|
2031
2040
|
getSelectionContext(e = {}) {
|
|
2032
2041
|
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
2033
|
-
return (this._opts.enableTextSelection ?
|
|
2042
|
+
return (this._opts.enableTextSelection ? Q(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? lt(this._elementContext, e.maxTextCharacters) : null);
|
|
2034
2043
|
}
|
|
2035
2044
|
_emitSelectionContextChange() {
|
|
2036
2045
|
let e = this.getSelectionContext();
|
|
@@ -2050,10 +2059,10 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
2050
2059
|
_redrawElementOutlineForSlot(e, t) {
|
|
2051
2060
|
let n = this._elementContext, r = this._pres;
|
|
2052
2061
|
if (!n || !r || n.slideIndex !== e) {
|
|
2053
|
-
|
|
2062
|
+
D(t.elementLayer, null);
|
|
2054
2063
|
return;
|
|
2055
2064
|
}
|
|
2056
|
-
|
|
2065
|
+
D(t.elementLayer, {
|
|
2057
2066
|
x: n.bounds.x / r.slideWidth,
|
|
2058
2067
|
y: n.bounds.y / r.slideHeight,
|
|
2059
2068
|
width: n.bounds.width / r.slideWidth,
|
|
@@ -2074,7 +2083,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
2074
2083
|
async _resolveContextAt(e) {
|
|
2075
2084
|
let t = this._pres;
|
|
2076
2085
|
if (this._destroyed || !t) return null;
|
|
2077
|
-
if (this._opts.enableTextSelection &&
|
|
2086
|
+
if (this._opts.enableTextSelection && Q(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
|
|
2078
2087
|
if (!this._opts.enableElementSelection) return this.getSelectionContext();
|
|
2079
2088
|
let n = e.target, r = [...this._slots].find(([, e]) => n !== null && e.wrapper.contains(n));
|
|
2080
2089
|
if (!r) return this._invalidateElementSelection(), null;
|
|
@@ -2089,7 +2098,7 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
2089
2098
|
try {
|
|
2090
2099
|
d = await t.getElementContextAt(i, u, {
|
|
2091
2100
|
tolerance: this._elementHitTolerance / o.width * t.slideWidth,
|
|
2092
|
-
maxTextCharacters:
|
|
2101
|
+
maxTextCharacters: Y
|
|
2093
2102
|
});
|
|
2094
2103
|
} catch (e) {
|
|
2095
2104
|
if (this._destroyed || l !== this._elementHitGeneration || t !== this._pres) return null;
|
|
@@ -2106,18 +2115,18 @@ var Q = Symbol("PptxViewer.borrowedPresentation"), mt = {
|
|
|
2106
2115
|
}
|
|
2107
2116
|
}, yt = /* @__PURE__ */ e({
|
|
2108
2117
|
OoxmlDecodedImageLimitError: () => p,
|
|
2109
|
-
OoxmlError: () =>
|
|
2110
|
-
OoxmlResourceLimitError: () =>
|
|
2111
|
-
PptxPresentation: () =>
|
|
2112
|
-
PptxScrollViewer: () =>
|
|
2113
|
-
PptxViewer: () =>
|
|
2118
|
+
OoxmlError: () => S,
|
|
2119
|
+
OoxmlResourceLimitError: () => w,
|
|
2120
|
+
PptxPresentation: () => X,
|
|
2121
|
+
PptxScrollViewer: () => vt,
|
|
2122
|
+
PptxViewer: () => mt,
|
|
2114
2123
|
autoResize: () => _e,
|
|
2115
2124
|
buildPptxHighlightLayer: () => R,
|
|
2116
2125
|
buildPptxTextLayer: () => L,
|
|
2117
2126
|
isOoxmlDecodedImageLimitError: () => m,
|
|
2118
2127
|
openExternalHyperlink: () => g,
|
|
2119
|
-
readPptxTextSelectionContext: () =>
|
|
2128
|
+
readPptxTextSelectionContext: () => Q,
|
|
2120
2129
|
renderSlide: () => n
|
|
2121
2130
|
});
|
|
2122
2131
|
//#endregion
|
|
2123
|
-
export {
|
|
2132
|
+
export { X as a, Q as i, vt as n, R as o, mt as r, L as s, yt as t };
|