@silurus/ooxml 0.81.0 → 0.82.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -8
- package/dist/assets/render-worker-Cy-QsDge.js +10 -0
- package/dist/assets/{render-worker-DtU8oQZ7.js → render-worker-Dw_wQRIh.js} +1 -1
- package/dist/assets/{render-worker-C2ACcLes.js → render-worker-aHayzR7v.js} +4 -4
- package/dist/{canvas-viewer-mechanics-CqxKRGCp.js → canvas-viewer-mechanics-CS_qbr6T.js} +1 -1
- package/dist/chart-ex.mjs +4 -4
- package/dist/comment-occurrence-C34fWs_F.js +6 -0
- package/dist/comment-ui-runtime-C1RV_3iu.js +112 -0
- package/dist/comment-ui-runtime-DTGN3Vyy.js +2 -0
- package/dist/comment-ui-runtime-DgCZpPR0.js +171 -0
- package/dist/comments-Cf9W7r3M.js +241 -0
- package/dist/{document-pull-client-Ux4a_ax8.js → document-pull-client-B1WOjA0z.js} +2206 -2193
- package/dist/{docx-SEyQ4gS-.js → docx-HoZXZUPA.js} +674 -249
- package/dist/docx.mjs +6 -5
- package/dist/docx_parser_bg.wasm +0 -0
- package/dist/dom-interaction-boundary-C8F6HO5x.js +119 -0
- package/dist/highlight-rect-MaCt0om0.js +13 -0
- package/dist/index.mjs +3 -3
- package/dist/{line-distribute-BBGvvwLt.js → line-distribute-iXsUCIH-.js} +2 -2
- package/dist/{line-metrics-Baz31mML.js → line-metrics-B3syvDn2.js} +52 -52
- package/dist/math.mjs +2 -2
- package/dist/node.mjs +10 -10
- package/dist/{plot-area-frame-Dg1VIpUU.js → plot-area-frame-DHV02PJU.js} +591 -590
- package/dist/{pptx-5lQrMvMR.js → pptx-DEUP4Yq5.js} +537 -243
- package/dist/pptx.mjs +6 -6
- package/dist/pptx_parser_bg.wasm +0 -0
- package/dist/read-only-comment-decoration-DcFevX_Q.js +96 -0
- package/dist/read-only-comment-margin-DrUX-YrP.js +189 -0
- package/dist/region-map.mjs +2 -2
- package/dist/{render-DEHjijQD.js → render-BC8p7vZQ.js} +1 -1
- package/dist/{render-worker-host-B1nbV_k7.js → render-worker-host-BNnXCtAu.js} +1 -1
- package/dist/{render-worker-host-Bze5M6k5.js → render-worker-host-CmPBviYJ.js} +1 -1
- package/dist/{render-worker-host-Dg_74V64.js → render-worker-host-DhnkTyjj.js} +1 -1
- package/dist/{renderer-DuopJE1K.js → renderer-CYr9YTXM.js} +436 -435
- package/dist/{resource-measurement-DRLp4nFt.js → resource-measurement-CsW4_eYt.js} +2 -2
- package/dist/{session-CNVc3VJ4.js → session-Da7LEQUB.js} +3 -3
- package/dist/{slide-pull-client-CzutXnGc.js → slide-pull-client-Bg9DusLX.js} +413 -300
- package/dist/source-key-BklvnEyQ.js +42 -0
- package/dist/{three-d-BYiWCNlz.js → three-d-7MaVzQuZ.js} +48 -47
- package/dist/three-d.mjs +324 -323
- package/dist/types/chart-ex.d.ts +2 -2
- package/dist/types/docx.d.ts +183 -19
- package/dist/types/index.d.ts +343 -26
- package/dist/types/math.d.ts +1 -1
- package/dist/types/node.d.ts +428 -348
- package/dist/types/pptx.d.ts +132 -11
- package/dist/types/region-map.d.ts +2 -2
- package/dist/types/three-d.d.ts +2 -2
- package/dist/types/xlsx.d.ts +78 -10
- package/dist/units-BzZ0gAxs.js +4 -0
- package/dist/{worksheet-pull-client-Cxj3Ej0s.js → worksheet-pull-client-CYtwXP5D.js} +3 -3
- package/dist/{xlsx-Bl3TIEVu.js → xlsx-DMWeXT-c.js} +429 -218
- package/dist/xlsx.mjs +6 -6
- package/dist/xlsx_parser_bg.wasm +0 -0
- package/package.json +2 -1
- package/dist/assets/render-worker-Cx5uR77k.js +0 -10
- package/dist/highlight-rect-BqcZMHUE.js +0 -48
- /package/dist/{mathjax-DJa-Q93p.js → mathjax-DwIrafQ6.js} +0 -0
- /package/dist/{renderer-module-contract-0bO_5SC0.js → renderer-module-contract-DLbb7zY0.js} +0 -0
- /package/dist/{transfer-D0U6Uhn4.js → transfer-R6NjgBKD.js} +0 -0
- /package/dist/{visible-index-DbDuGMCE.js → visible-index-BFE3PWiY.js} +0 -0
|
@@ -1,28 +1,31 @@
|
|
|
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, Ct as d, Et as f, G as p, Jt as m, R as h, Yt as g, a as _, at as v, ht as y, it as b, mt as x, q as S, z as C } from "./line-metrics-
|
|
4
|
-
import { C as w, E as ee, S as te, T as ne, _ as re, a as T, b as ie, c as E, d as ae, f as oe, g as se, h as ce, i as D, l as O, m as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, v as ge, w as _e, x as ve, y as
|
|
5
|
-
import { a as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { n as Ee } from "./
|
|
9
|
-
import { n as De
|
|
10
|
-
import { n 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-Bg9DusLX.js";
|
|
3
|
+
import { B as u, Ct as d, Et as f, G as p, Jt as m, R as h, Yt as g, a as _, at as v, ht as y, it as b, mt as x, q as S, z as C } from "./line-metrics-B3syvDn2.js";
|
|
4
|
+
import { C as w, E as ee, S as te, T as ne, _ as re, a as T, b as ie, c as E, d as ae, f as oe, g as se, h as ce, i as D, l as O, m as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, v as ge, w as _e, x as ve, y as ye } from "./canvas-viewer-mechanics-CS_qbr6T.js";
|
|
5
|
+
import { a as be, i as xe, n as Se, t as Ce } from "./bounded-raw-part-cache-C6ro6Ezf.js";
|
|
6
|
+
import { cn as we, ln as Te } from "./plot-area-frame-DHV02PJU.js";
|
|
7
|
+
import { i as k } from "./units-BzZ0gAxs.js";
|
|
8
|
+
import { n as Ee } from "./resource-measurement-CsW4_eYt.js";
|
|
9
|
+
import { n as De } from "./renderer-module-contract-DLbb7zY0.js";
|
|
10
|
+
import { n as Oe, r as ke, t as Ae } from "./visible-index-BFE3PWiY.js";
|
|
11
|
+
import { n as je, r as Me, t as Ne } from "./dom-interaction-boundary-C8F6HO5x.js";
|
|
12
|
+
import { n as Pe, t as A } from "./highlight-rect-MaCt0om0.js";
|
|
13
|
+
import { t as j } from "./comment-occurrence-C34fWs_F.js";
|
|
11
14
|
//#region packages/core/src/nav/internal-target.ts
|
|
12
|
-
function
|
|
15
|
+
function Fe(e, t) {
|
|
13
16
|
let n = t.startsWith("/") ? [] : e.split("/").filter((e) => e !== "");
|
|
14
17
|
for (let e of t.split("/")) if (e === "..") n.pop();
|
|
15
18
|
else if (e === "." || e === "") continue;
|
|
16
19
|
else n.push(e);
|
|
17
20
|
return n.join("/");
|
|
18
21
|
}
|
|
19
|
-
function
|
|
22
|
+
function Ie(e) {
|
|
20
23
|
let t = /[?&]jump=([a-zA-Z]+)/.exec(e);
|
|
21
24
|
if (!t) return null;
|
|
22
25
|
let n = t[1].toLowerCase();
|
|
23
26
|
return n === "firstslide" || n === "lastslide" || n === "nextslide" || n === "previousslide" ? n : null;
|
|
24
27
|
}
|
|
25
|
-
function
|
|
28
|
+
function Le(e, t, n) {
|
|
26
29
|
if (!(n <= 0)) switch (e) {
|
|
27
30
|
case "firstslide": return 0;
|
|
28
31
|
case "lastslide": return n - 1;
|
|
@@ -32,17 +35,17 @@ function Me(e, t, n) {
|
|
|
32
35
|
}
|
|
33
36
|
//#endregion
|
|
34
37
|
//#region packages/pptx/src/text-layer.ts
|
|
35
|
-
function
|
|
38
|
+
function M(e, t, n) {
|
|
36
39
|
e.dataset ? n === void 0 ? delete e.dataset[t] : e.dataset[t] = n : n !== void 0 && e.setAttribute?.(`data-${t.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`)}`, n);
|
|
37
40
|
}
|
|
38
|
-
function
|
|
39
|
-
e.innerHTML = "",
|
|
41
|
+
function N(e, t, n, r, i, a) {
|
|
42
|
+
e.innerHTML = "", M(e, "ooxmlSelectionSurface", "pptx"), M(e, "slideIndex", a === void 0 ? void 0 : String(a));
|
|
40
43
|
let o = /* @__PURE__ */ new Map(), s = e.ownerDocument ?? document;
|
|
41
44
|
for (let [a, c] of t.entries()) {
|
|
42
45
|
let t = c.rotation + (c.textBodyRotation ?? 0), l = `${c.shapeX},${c.shapeY},${c.shapeW},${c.shapeH},${t}`;
|
|
43
46
|
if (!o.has(l)) {
|
|
44
47
|
let i = s.createElement("div");
|
|
45
|
-
i.style.cssText = `position:absolute;left:${
|
|
48
|
+
i.style.cssText = `position:absolute;left:${A(c.shapeX, n)};top:${A(c.shapeY, r)};width:${A(c.shapeW, n)};height:${A(c.shapeH, r)};pointer-events:all;overflow:hidden;`, t !== 0 && (i.style.transformOrigin = "center center", i.style.transform = `rotate(${t}deg)`), o.set(l, {
|
|
46
49
|
div: i,
|
|
47
50
|
x: c.shapeX,
|
|
48
51
|
y: c.shapeY,
|
|
@@ -52,20 +55,20 @@ function F(e, t, n, r, i, a) {
|
|
|
52
55
|
}), e.appendChild(i);
|
|
53
56
|
}
|
|
54
57
|
let u = o.get(l), d = s.createElement("span");
|
|
55
|
-
|
|
58
|
+
M(d, "ooxmlSelectionRun", "pptx"), M(d, "runIndex", String(a)), c.shapeId !== void 0 && M(d, "shapeId", c.shapeId), c.elementIndex !== void 0 && M(d, "elementIndex", String(c.elementIndex)), c.origin !== void 0 && M(d, "elementOrigin", c.origin), d.textContent = c.text;
|
|
56
59
|
let f = i ? c.hyperlink : void 0;
|
|
57
|
-
d.style.cssText = `position:absolute;left:${
|
|
60
|
+
d.style.cssText = `position:absolute;left:${A(c.inShapeX, u.w)};top:${A(c.inShapeY, u.h)};font:${c.font};line-height:${c.h}px;letter-spacing:0;white-space:pre;color:transparent;cursor:${f ? "pointer" : "text"};`, f && i && (d.title = f.kind === "external" ? f.url : f.ref, d.addEventListener("click", (e) => {
|
|
58
61
|
e.preventDefault(), i(f);
|
|
59
62
|
})), u.div.appendChild(d);
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
|
-
function
|
|
65
|
+
function P(e, t, n, r, i, a, o = {}) {
|
|
63
66
|
e.innerHTML = "";
|
|
64
67
|
let s = o.match ?? "rgba(255, 214, 0, 0.42)", c = o.active ?? "rgba(255, 140, 0, 0.55)", l = /* @__PURE__ */ new Map(), u = (t) => {
|
|
65
68
|
let n = t.rotation + (t.textBodyRotation ?? 0), a = `${t.shapeX},${t.shapeY},${t.shapeW},${t.shapeH},${n}`, o = l.get(a);
|
|
66
69
|
if (!o) {
|
|
67
70
|
let s = document.createElement("div");
|
|
68
|
-
s.style.cssText = `position:absolute;left:${
|
|
71
|
+
s.style.cssText = `position:absolute;left:${A(t.shapeX, r)};top:${A(t.shapeY, i)};width:${A(t.shapeW, r)};height:${A(t.shapeH, i)};pointer-events:none;overflow:hidden;`, n !== 0 && (s.style.transformOrigin = "center center", s.style.transform = `rotate(${n}deg)`), o = {
|
|
69
72
|
div: s,
|
|
70
73
|
w: t.shapeW,
|
|
71
74
|
h: t.shapeH
|
|
@@ -78,16 +81,16 @@ function I(e, t, n, r, i, a, o = {}) {
|
|
|
78
81
|
for (let r of e.slices) {
|
|
79
82
|
let e = t[r.runIndex];
|
|
80
83
|
if (!e) continue;
|
|
81
|
-
let i = a(e.font), { x: o, width: s } =
|
|
84
|
+
let i = a(e.font), { x: o, width: s } = Pe(e.text, r.start, r.end, i);
|
|
82
85
|
if (s <= 0) continue;
|
|
83
86
|
let c = u(e), l = document.createElement("div");
|
|
84
|
-
l.style.cssText = `position:absolute;left:${
|
|
87
|
+
l.style.cssText = `position:absolute;left:${A(e.inShapeX + o, c.w)};top:${A(e.inShapeY, c.h)};width:${A(s, c.w)};height:${A(e.h, c.h)};background:${n};pointer-events:none;`, c.div.appendChild(l);
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
//#endregion
|
|
89
92
|
//#region packages/pptx/src/find.ts
|
|
90
|
-
var
|
|
93
|
+
var Re = class {
|
|
91
94
|
_slideRuns = /* @__PURE__ */ new Map();
|
|
92
95
|
_matches = [];
|
|
93
96
|
_active = -1;
|
|
@@ -173,22 +176,22 @@ var L = class {
|
|
|
173
176
|
location: { slide: e.slide }
|
|
174
177
|
} : null;
|
|
175
178
|
}
|
|
176
|
-
},
|
|
177
|
-
function
|
|
179
|
+
}, ze = (e) => e >= "0" && e <= "9";
|
|
180
|
+
function Be(e) {
|
|
178
181
|
let t = 0;
|
|
179
182
|
for (let n = 0; n < 10; n++) t = Math.max(t, e.measureText(String(n)).width);
|
|
180
183
|
return t;
|
|
181
184
|
}
|
|
182
|
-
function
|
|
185
|
+
function F(e, t, n) {
|
|
183
186
|
let r = 0;
|
|
184
|
-
for (let i of t) r +=
|
|
187
|
+
for (let i of t) r += ze(i) ? n : e.measureText(i).width;
|
|
185
188
|
return r;
|
|
186
189
|
}
|
|
187
|
-
function
|
|
190
|
+
function I(e, t, n, r, i) {
|
|
188
191
|
let a = e.textAlign;
|
|
189
192
|
e.textAlign = "left";
|
|
190
193
|
let o = n;
|
|
191
|
-
for (let n of t) if (
|
|
194
|
+
for (let n of t) if (ze(n)) {
|
|
192
195
|
let t = e.measureText(n).width;
|
|
193
196
|
e.fillText(n, o + (i - t) / 2, r), o += i;
|
|
194
197
|
} else e.fillText(n, o, r), o += e.measureText(n).width;
|
|
@@ -196,11 +199,11 @@ function B(e, t, n, r, i) {
|
|
|
196
199
|
}
|
|
197
200
|
//#endregion
|
|
198
201
|
//#region packages/pptx/src/presentation-handle.ts
|
|
199
|
-
var
|
|
200
|
-
async function
|
|
202
|
+
var L = (e, t) => e / k * t;
|
|
203
|
+
async function Ve(e, t, n) {
|
|
201
204
|
let r = e.getContext("2d");
|
|
202
205
|
if (!r) throw Error("2D context not available");
|
|
203
|
-
let a = n.width / (n.slideWidthEmu /
|
|
206
|
+
let a = n.width / (n.slideWidthEmu / k);
|
|
204
207
|
await n.drawBase();
|
|
205
208
|
let o = document.createElement("canvas");
|
|
206
209
|
o.width = e.width, o.height = e.height;
|
|
@@ -224,11 +227,11 @@ async function Pe(e, t, n) {
|
|
|
224
227
|
try {
|
|
225
228
|
t = await n.fetchMedia(e.mediaPath);
|
|
226
229
|
} catch (t) {
|
|
227
|
-
throw u(),
|
|
230
|
+
throw u(), We(e, t);
|
|
228
231
|
}
|
|
229
232
|
let r = e.mimeType || t.type, i = t.type === r ? t : new Blob([t], { type: r }), o = URL.createObjectURL(i), s = e.mediaKind === "video" ? document.createElement("video") : document.createElement("audio");
|
|
230
233
|
s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
|
|
231
|
-
let f =
|
|
234
|
+
let f = He(e, a), p = {
|
|
232
235
|
el: e,
|
|
233
236
|
rect: e.mediaKind === "audio" ? {
|
|
234
237
|
x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
|
|
@@ -246,7 +249,7 @@ async function Pe(e, t, n) {
|
|
|
246
249
|
}, h = () => {
|
|
247
250
|
l || (p.loadState = "ready");
|
|
248
251
|
}, g = () => {
|
|
249
|
-
l || (p.loadState = "error", d(
|
|
252
|
+
l || (p.loadState = "error", d(R(e, s, "decode")));
|
|
250
253
|
};
|
|
251
254
|
s.addEventListener("loadedmetadata", m), s.addEventListener("canplay", h), s.addEventListener("error", g), p.detachListeners = () => {
|
|
252
255
|
s.removeEventListener("loadedmetadata", m), s.removeEventListener("canplay", h), s.removeEventListener("error", g);
|
|
@@ -254,7 +257,7 @@ async function Pe(e, t, n) {
|
|
|
254
257
|
try {
|
|
255
258
|
s.load();
|
|
256
259
|
} catch (t) {
|
|
257
|
-
let n =
|
|
260
|
+
let n = R(e, s, "load", t);
|
|
258
261
|
throw u(), n;
|
|
259
262
|
}
|
|
260
263
|
}
|
|
@@ -266,14 +269,14 @@ async function Pe(e, t, n) {
|
|
|
266
269
|
let t = e.media;
|
|
267
270
|
if (e.loadState !== "loading") {
|
|
268
271
|
if (e.loadState === "error") {
|
|
269
|
-
|
|
272
|
+
Ue(r, e.posterRect, "Media unavailable");
|
|
270
273
|
continue;
|
|
271
274
|
}
|
|
272
275
|
if (e.el.mediaKind === "video" && t.readyState >= 2) {
|
|
273
276
|
let { x: n, y: i, w: a, h: o } = e.posterRect;
|
|
274
277
|
r.drawImage(t, n, i, a, o);
|
|
275
278
|
}
|
|
276
|
-
if (e === p || v?.state === e)
|
|
279
|
+
if (e === p || v?.state === e) Ye(r, e, t);
|
|
277
280
|
else if (t.paused) {
|
|
278
281
|
let { x: t, y: n, w: a, h: o } = e.posterRect;
|
|
279
282
|
i(r, t + a / 2, n + o / 2, a, o, "paused");
|
|
@@ -292,7 +295,7 @@ async function Pe(e, t, n) {
|
|
|
292
295
|
for (let n of c) {
|
|
293
296
|
let { x: r, y: i, w: a, h: o } = n.rect;
|
|
294
297
|
if (e < r || e > r + a || t < i || t > i + o) continue;
|
|
295
|
-
let s =
|
|
298
|
+
let s = W(n), c = s.y - 12, l = s.y + s.h + 8;
|
|
296
299
|
return (Number.isFinite(n.media.duration) ? n.media.duration : 0) > 0 && e >= s.x && e <= s.x + s.w && t >= c && t <= l ? {
|
|
297
300
|
kind: "seek",
|
|
298
301
|
state: n,
|
|
@@ -309,10 +312,10 @@ async function Pe(e, t, n) {
|
|
|
309
312
|
}, b = (e) => {
|
|
310
313
|
try {
|
|
311
314
|
e.media.play().catch((t) => {
|
|
312
|
-
d(
|
|
315
|
+
d(R(e.el, e.media, "play", t));
|
|
313
316
|
});
|
|
314
317
|
} catch (t) {
|
|
315
|
-
d(
|
|
318
|
+
d(R(e.el, e.media, "play", t));
|
|
316
319
|
}
|
|
317
320
|
}, x = (t) => {
|
|
318
321
|
let { x: n, y: r } = g(t.clientX, t.clientY), i = _(n, r);
|
|
@@ -331,7 +334,7 @@ async function Pe(e, t, n) {
|
|
|
331
334
|
}
|
|
332
335
|
}
|
|
333
336
|
if (v) {
|
|
334
|
-
let e =
|
|
337
|
+
let e = W(v.state), n = Math.max(0, Math.min(1, (t - e.x) / e.w));
|
|
335
338
|
y(v.state, n);
|
|
336
339
|
}
|
|
337
340
|
}, C = () => {
|
|
@@ -353,24 +356,24 @@ async function Pe(e, t, n) {
|
|
|
353
356
|
}
|
|
354
357
|
};
|
|
355
358
|
}
|
|
356
|
-
function
|
|
359
|
+
function He(e, t) {
|
|
357
360
|
return {
|
|
358
|
-
x:
|
|
359
|
-
y:
|
|
360
|
-
w:
|
|
361
|
-
h:
|
|
361
|
+
x: L(e.x, t),
|
|
362
|
+
y: L(e.y, t),
|
|
363
|
+
w: L(e.width, t),
|
|
364
|
+
h: L(e.height, t)
|
|
362
365
|
};
|
|
363
366
|
}
|
|
364
|
-
function
|
|
367
|
+
function Ue(e, t, n) {
|
|
365
368
|
let r = Math.max(10, Math.min(14, t.h * .12));
|
|
366
369
|
e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
|
|
367
370
|
let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
|
|
368
|
-
|
|
371
|
+
G(e, t.x + (t.w - a) / 2, t.y + (t.h - i) / 2, a, i, i / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.fillStyle = "rgba(255, 255, 255, 0.95)", e.fillText(n, t.x + t.w / 2, t.y + t.h / 2), e.restore();
|
|
369
372
|
}
|
|
370
|
-
function
|
|
371
|
-
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${
|
|
373
|
+
function We(e, t) {
|
|
374
|
+
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${Ge(t)}`);
|
|
372
375
|
}
|
|
373
|
-
function
|
|
376
|
+
function R(e, t, n, r) {
|
|
374
377
|
let i = "";
|
|
375
378
|
try {
|
|
376
379
|
i = e.mimeType ? t.canPlayType(e.mimeType) : "";
|
|
@@ -382,82 +385,82 @@ function H(e, t, n, r) {
|
|
|
382
385
|
`networkState=${t.networkState}`
|
|
383
386
|
];
|
|
384
387
|
a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
|
|
385
|
-
let s = r === void 0 ? "" : `: ${
|
|
388
|
+
let s = r === void 0 ? "" : `: ${Ge(r)}`;
|
|
386
389
|
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
|
|
387
390
|
}
|
|
388
|
-
function
|
|
391
|
+
function Ge(e) {
|
|
389
392
|
return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
|
|
390
393
|
}
|
|
391
|
-
var
|
|
392
|
-
function
|
|
394
|
+
var Ke = 28, z = 14, qe = 72, Je = 10, B = 3;
|
|
395
|
+
function Ye(e, t, n) {
|
|
393
396
|
let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
|
|
394
|
-
i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ?
|
|
397
|
+
i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ? Ze(e, t, n, r, a) : Xe(e, t, n, r, a);
|
|
395
398
|
}
|
|
396
|
-
function
|
|
399
|
+
function Xe(e, t, n, r, i) {
|
|
397
400
|
let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
|
|
398
401
|
e.save();
|
|
399
402
|
let d = e.createLinearGradient(0, u, 0, o + c);
|
|
400
403
|
d.addColorStop(0, "rgba(0, 0, 0, 0)"), d.addColorStop(1, "rgba(0, 0, 0, 0.55)"), e.fillStyle = d, e.fillRect(a, u, s, l), e.restore();
|
|
401
|
-
let f =
|
|
402
|
-
|
|
404
|
+
let f = W(t);
|
|
405
|
+
H(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)", V(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
|
|
403
406
|
}
|
|
404
|
-
function
|
|
405
|
-
let a =
|
|
406
|
-
e.save(),
|
|
407
|
+
function Ze(e, t, n, r, i) {
|
|
408
|
+
let a = U(t.rect);
|
|
409
|
+
e.save(), G(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)", V(e, n.currentTime, r, a.x + z, a.y + a.h / 2, "middle"), e.restore(), H(e, W(t), i, r > 0);
|
|
407
410
|
}
|
|
408
|
-
function
|
|
409
|
-
let o =
|
|
410
|
-
|
|
411
|
+
function V(e, t, n, r, i, a) {
|
|
412
|
+
let o = Qe(t), s = Qe(n), c = Be(e), l = F(e, o, c), u = F(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
|
|
413
|
+
I(e, o, r + f - l, i, c);
|
|
411
414
|
let p = e.textAlign;
|
|
412
|
-
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p,
|
|
415
|
+
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, I(e, s, r + f + d, i, c);
|
|
413
416
|
}
|
|
414
|
-
function
|
|
417
|
+
function H(e, t, n, r) {
|
|
415
418
|
let i = t.h / 2;
|
|
416
|
-
if (e.save(),
|
|
419
|
+
if (e.save(), G(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (G(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
|
|
417
420
|
let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
|
|
418
421
|
e.shadowColor = "rgba(0, 0, 0, 0.3)", e.shadowBlur = 3, e.fillStyle = "#fff", e.beginPath(), e.arc(r, t.y + t.h / 2, 5, 0, Math.PI * 2), e.fill();
|
|
419
422
|
}
|
|
420
423
|
e.restore();
|
|
421
424
|
}
|
|
422
|
-
function
|
|
425
|
+
function U(e) {
|
|
423
426
|
let t = Math.max(220, e.w - 24);
|
|
424
427
|
return {
|
|
425
428
|
x: e.x + e.w / 2 - t / 2,
|
|
426
|
-
y: e.y + e.h -
|
|
429
|
+
y: e.y + e.h - Ke - 4,
|
|
427
430
|
w: t,
|
|
428
|
-
h:
|
|
431
|
+
h: Ke
|
|
429
432
|
};
|
|
430
433
|
}
|
|
431
|
-
function
|
|
434
|
+
function W(e) {
|
|
432
435
|
if (e.el.mediaKind === "audio") {
|
|
433
|
-
let t =
|
|
436
|
+
let t = U(e.rect), n = t.x + z + qe + Je, r = Math.max(40, t.x + t.w - z - n);
|
|
434
437
|
return {
|
|
435
438
|
x: n,
|
|
436
|
-
y: t.y + (t.h -
|
|
439
|
+
y: t.y + (t.h - B) / 2,
|
|
437
440
|
w: r,
|
|
438
|
-
h:
|
|
441
|
+
h: B
|
|
439
442
|
};
|
|
440
443
|
}
|
|
441
444
|
let t = e.rect, n = Math.max(12, t.w * .025), r = Math.max(12, Math.min(18, t.h * .05));
|
|
442
445
|
return {
|
|
443
446
|
x: t.x + n,
|
|
444
|
-
y: t.y + t.h -
|
|
447
|
+
y: t.y + t.h - B - r,
|
|
445
448
|
w: t.w - n * 2,
|
|
446
|
-
h:
|
|
449
|
+
h: B
|
|
447
450
|
};
|
|
448
451
|
}
|
|
449
|
-
function
|
|
452
|
+
function G(e, t, n, r, i, a) {
|
|
450
453
|
let o = Math.min(a, i / 2, r / 2);
|
|
451
454
|
e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
|
|
452
455
|
}
|
|
453
|
-
function
|
|
456
|
+
function Qe(e) {
|
|
454
457
|
if (!Number.isFinite(e) || e < 0) return "0:00";
|
|
455
458
|
let t = Math.floor(e);
|
|
456
459
|
return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
|
|
457
460
|
}
|
|
458
461
|
//#endregion
|
|
459
462
|
//#region packages/pptx/src/slide-nav.ts
|
|
460
|
-
function
|
|
463
|
+
function $e(e) {
|
|
461
464
|
let t = /* @__PURE__ */ new Map();
|
|
462
465
|
for (let n = 0; n < e.length; n++) {
|
|
463
466
|
let r = e[n];
|
|
@@ -465,18 +468,18 @@ function Je(e) {
|
|
|
465
468
|
}
|
|
466
469
|
return t;
|
|
467
470
|
}
|
|
468
|
-
function
|
|
471
|
+
function et(e, t) {
|
|
469
472
|
if (e === "") return;
|
|
470
|
-
let n =
|
|
473
|
+
let n = Fe("ppt/slides", e);
|
|
471
474
|
return t.get(n);
|
|
472
475
|
}
|
|
473
|
-
function
|
|
474
|
-
let r =
|
|
475
|
-
return r === null ?
|
|
476
|
+
function tt(e, t, n) {
|
|
477
|
+
let r = Ie(e);
|
|
478
|
+
return r === null ? et(e, t) : Le(r, n, t.size);
|
|
476
479
|
}
|
|
477
480
|
//#endregion
|
|
478
481
|
//#region packages/pptx/src/slide-repository.ts
|
|
479
|
-
var
|
|
482
|
+
var nt = class {
|
|
480
483
|
#e;
|
|
481
484
|
#t;
|
|
482
485
|
#n;
|
|
@@ -486,10 +489,10 @@ var Ze = class {
|
|
|
486
489
|
#o;
|
|
487
490
|
constructor(e) {
|
|
488
491
|
if (!Number.isSafeInteger(e.slideCount) || e.slideCount < 0) throw TypeError("slideCount must be a non-negative safe integer");
|
|
489
|
-
this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new
|
|
492
|
+
this.#e = e.slideCount, this.#t = e.loadSlide, this.#n = new Se({
|
|
490
493
|
maxEntries: e.maxCachedSlides,
|
|
491
494
|
maxWeight: e.maxCachedStructuralBytes,
|
|
492
|
-
measure: (e) =>
|
|
495
|
+
measure: (e) => Ee(e).jsonBytes
|
|
493
496
|
});
|
|
494
497
|
}
|
|
495
498
|
get slideCount() {
|
|
@@ -507,7 +510,7 @@ var Ze = class {
|
|
|
507
510
|
try {
|
|
508
511
|
return await t(r);
|
|
509
512
|
} catch (e) {
|
|
510
|
-
let t =
|
|
513
|
+
let t = rt(e);
|
|
511
514
|
throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
|
|
512
515
|
}
|
|
513
516
|
});
|
|
@@ -519,7 +522,7 @@ var Ze = class {
|
|
|
519
522
|
try {
|
|
520
523
|
n = await this.#t(e);
|
|
521
524
|
} catch (e) {
|
|
522
|
-
let n =
|
|
525
|
+
let n = rt(e);
|
|
523
526
|
throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
|
|
524
527
|
}
|
|
525
528
|
if (this.#o === t && this.#a) throw this.#a;
|
|
@@ -536,16 +539,16 @@ var Ze = class {
|
|
|
536
539
|
t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
|
|
537
540
|
}
|
|
538
541
|
};
|
|
539
|
-
function
|
|
542
|
+
function rt(e) {
|
|
540
543
|
return e instanceof g ? e : v(e);
|
|
541
544
|
}
|
|
542
545
|
//#endregion
|
|
543
546
|
//#region packages/pptx/src/worker.ts?worker&inline
|
|
544
|
-
var $e = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,o={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:a,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:a,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:r,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:r,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:i,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:i,loadFamily:`Noto Sans Arabic`}};function s(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ-가-]/.test(e)?`kr`:/[-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const c=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,l={\"noto sans kr\":{url:c(`Noto+Sans+KR`)},\"noto sans sc\":{url:c(`Noto+Sans+SC`)},\"noto sans tc\":{url:c(`Noto+Sans+TC`)},\"noto sans jp\":{url:c(`Noto+Sans+JP`)},\"noto serif kr\":{url:c(`Noto+Serif+KR`)},\"noto serif sc\":{url:c(`Noto+Serif+SC`)},\"noto serif tc\":{url:c(`Noto+Serif+TC`)},\"noto serif jp\":{url:c(`Noto+Serif+JP`)},\"noto sans\":{url:c(`Noto+Sans`)},\"noto serif\":{url:c(`Noto+Serif`)},\"noto sans devanagari\":{url:c(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:c(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:c(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:c(`Noto+Serif+Hebrew`)}};var ee=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}},u,d,te=e((()=>{u=1<<25,u*4,d=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ne(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var re=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},ie=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ae(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function oe(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function se(e,t){return e({module_or_path:t})}var ce=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new re(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),le),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new ie(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):se(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,oe(e)}};function le(e){return ae(e)?new ie(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function ue(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function de(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return ue(t.requiredBytes)&&ue(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var f=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function fe(e){if(e instanceof f)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!de(r)))return new f(r)}function pe(e,t,n){let r=fe(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}te();const me=`OOXML_RESOURCE_LIMIT:`;function p(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function he(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return p(t.archiveEntryCount)&&p(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||p(t.largestInflatedEntryBytes))&&p(t.distinctInflatedBytes)&&p(t.operationInflatedBytes)}function ge(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!he(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function _e(e){return e===`docx`||e===`xlsx`||e===`pptx`}function ve(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function m(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function h(e){return m(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function ye(e){return!m(e,4096)||e.startsWith(`/`)||e.startsWith(`\\\\`)||e.includes(`\\\\`)||e.includes(`?`)||e.includes(`#`)||e.includes(`://`)||/^[a-z]:/iu.test(e)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}const g=new Map([[`archive-entry:declared-inflated-bytes`,{stage:`container`,part:`required`}],[`archive-entry:actual-inflated-bytes`,{stage:`decompression`,part:`required`}],[`archive:entry-count`,{stage:`container`,part:`forbidden`}],[`archive:central-directory-bytes`,{stage:`container`,part:`forbidden`,configurable:!1}],[`archive:distinct-inflated-bytes`,{stage:`decompression`,part:`required`}],[`xml-event:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-context:bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`xml-tree:depth`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-row:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}],[`worksheet-shell:projected-bytes`,{stage:`parsing`,part:`optional`,configurable:!1}]]),be=new Set([...g.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),xe=new Set([...g.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function Se(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!_e(t.format)||!m(t.operation,256)||!h(t.resource)||!h(t.metric)||!p(t.limit)||!p(t.observed)||typeof t.configurable!=`boolean`||!he(t.usage)?!1:!(`part`in t)||ye(t.part)}function _(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!ve(t.stage)||!Se(t.violation))return!1;let n=t.violation,r=g.get(`${n.resource}:${n.metric}`);return r?t.stage!==r.stage||r.configurable===!1&&n.configurable!==!1?!1:r.part===`required`?n.part!==void 0:r.part===`forbidden`?n.part===void 0:!0:!(be.has(n.resource)&&xe.has(n.metric))}function Ce(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function we(e){if(!_(e))return;let t=e.violation,n={stage:e.stage,violation:{format:t.format,operation:t.operation,resource:t.resource,metric:t.metric,...t.part===void 0?{}:{part:t.part},limit:t.limit,observed:t.observed,configurable:t.configurable,usage:Ce(t.usage)}};return _(n)?n:void 0}function v(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function Te(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(me))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!_(i.details)))return new n(v(i.details),i.details)}function Ee(e){if(e instanceof d)return{message:e.message,errorName:e.name,code:e.code,decodedImage:{metric:e.metric,limit:e.limit,observed:e.observed}};let r=fe(e);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=e instanceof t||e instanceof n?e:Te(e);if(i instanceof n){let e=we(i.details);return e?{message:typeof i.message==`string`?i.message:v(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof t)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:m(i.name,128)?i.name:`OoxmlError`,...h(i.code)?{code:i.code}:{}};let a=e instanceof Error?e.message:String(e);if(typeof a==`string`&&a.startsWith(me))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=e instanceof Error?e:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:m(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function y(e){try{return Ee(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const De=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Oe(e){if(e.code===`ooxml-decoded-image-limit`&&e.decodedImage&&(e.decodedImage.metric===`image-pixels`||e.decodedImage.metric===`active-decoded-bytes`)&&p(e.decodedImage.limit)&&p(e.decodedImage.observed)&&e.decodedImage.observed>e.decodedImage.limit)return new d(e.decodedImage.metric,e.decodedImage.limit,e.decodedImage.observed);if(e.code===`ooxml-insufficient-credit`&&de(e.insufficientCredit))return new f(e.insufficientCredit);if(e.code===`ooxml-resource-limit`&&_(e.resourceLimit))return new n(e.message,e.resourceLimit);if(e.code&&De.has(e.code))return new t(e.code,e.message);let r=e.errorName===`TypeError`?TypeError(e.message):e.errorName===`RangeError`?RangeError(e.message):Error(e.message);return e.errorName&&(r.name=e.errorName),e.code!==void 0&&Object.assign(r,{code:e.code}),r}function ke(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const Ae=67108864;Object.freeze({maxArchiveEntryBytes:134217728,maxTotalInflatedBytes:268435456,maxArchiveEntries:4096});function je(e){return[e.maxArchiveEntryBytes===null?0n:BigInt(e.maxArchiveEntryBytes),e.maxTotalInflatedBytes===null?0n:BigInt(e.maxTotalInflatedBytes),e.maxArchiveEntries===null?0n:BigInt(e.maxArchiveEntries)]}const b=`ooxml-pull-v1`;function x(e,t){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`${t} must be a positive safe integer`)}function Me(e){if(!(typeof e==`string`&&e.length>0||typeof e==`number`&&Number.isSafeInteger(e)&&e>0))throw RangeError(`session id must be a non-empty string or positive safe integer`)}var Ne=class{owner;queue=Promise.resolve();leases=new Map;retainedBytes=0;retainedCount=0;maxRetainedBytes;maxRetainedCount;cleanups=new Set;pendingFatalCleanups=[];poisonRunning=!1;fatal;constructor(e){this.maxRetainedBytes=e?.maxRetainedBytes??64*1024*1024,this.maxRetainedCount=e?.maxRetainedCount??256,x(this.maxRetainedBytes,`max retained lease bytes`),x(this.maxRetainedCount,`max retained lease count`)}enqueue(e){let t=this.queue.then(e,e);return this.queue=t.then(()=>void 0,()=>void 0),t}acquire(e){return this.owner===void 0?(this.owner=e,!0):this.owner===e}release(e){this.owner===e&&(this.owner=void 0)}retainLease(e,t,n){if(!Number.isSafeInteger(n)||n<0)throw RangeError(`retained lease bytes are invalid`);let r=this.leases.get(e)??new Map;if(r.has(t))throw Error(`driver returned a duplicate lease id`);if(this.retainedCount+1>this.maxRetainedCount)throw RangeError(`retained lease count exceeds limit`);if(this.retainedBytes+n>this.maxRetainedBytes)throw RangeError(`retained lease bytes exceed limit`);r.set(t,n),this.leases.set(e,r),this.retainedCount++,this.retainedBytes+=n}releaseLease(e,t){let n=this.leases.get(e),r=n?.get(t);r!==void 0&&(n?.delete(t),n?.size===0&&this.leases.delete(e),this.retainedCount--,this.retainedBytes-=r)}registerCleanup(e){return this.fatal?(this.poisonRunning?this.pendingFatalCleanups.push(e):this.enqueue(e).catch(()=>void 0),()=>void 0):(this.cleanups.add(e),()=>this.cleanups.delete(e))}get fatalError(){return this.fatal}get registeredHostCount(){return this.cleanups.size}async poison(e){if(this.fatal??=e,this.poisonRunning)return this.fatal;this.poisonRunning=!0,this.pendingFatalCleanups.push(...this.cleanups);try{let e;for(;(e=this.pendingFatalCleanups.shift())!==void 0;)await e().catch(()=>void 0)}finally{this.poisonRunning=!1}return this.fatal}},Pe=class{options;coordinator;coordinatorOwner=Symbol(`pull-session-host`);unregisterCleanup;sequence=0;unacked;leases=new Map;activeDriverLeases=new Set;nextWireLeaseId;cancelRequested=!1;cancelComplete=!1;closeRequested=!1;closeComplete=!1;driverCancelComplete=!1;driverCloseComplete=!1;completed=!1;constructor(e){Me(e.sessionId),x(e.operationId,`operation id`),x(e.generation,`generation`),x(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&x(e.wireLeaseIdStart,`wire lease id start`),this.options=e,this.coordinator=e.coordinator,this.nextWireLeaseId=e.wireLeaseIdStart??1,this.unregisterCleanup=this.coordinator.registerCleanup(()=>this.forceFatalCleanup())}dispatch(e,t){return this.coordinator.enqueue(async()=>{let n=await this.execute(e);try{t(n.response,n.transfer)}catch(e){throw await this.rollbackFailedPost(n),e}})}async rollbackFailedPost(e){let t=e.response;if(t.kind===`chunk`){let n=t.leaseId===void 0?void 0:this.leases.get(t.leaseId);try{await this.options.driver.disposeInvalidChunk?.({payload:t.payload,byteLength:t.byteLength,done:t.done,leaseId:n?.driverLeaseId,retainedBytes:n?.retainedBytes,transfer:e.transfer})}catch{}}this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);for(let[e,t]of[...this.leases])try{await this.options.driver.releaseLease?.(t.driverLeaseId)}catch{}finally{this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e)}if(this.cancelRequested=!0,!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch{}this.unregisterCleanup()}async execute(e){try{if(this.isStaleLifecycle(e)){let t=e.kind===`cancel`?`cancel`:`close`;return this.sameOperationIdentity(e)?{response:this.accepted(e,t,!0)}:{response:this.errorResponse(e,{message:`stale lifecycle targets another session or operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`})}}this.validateCommandIdentity(e);let t=this.coordinator.fatalError;if(t)return e.kind===`pull`?{response:this.errorResponse(e,t)}:(e.kind===`cancel`?await this.cancel():e.kind===`close`?await this.close():e.kind===`release`&&await this.release(e.leaseId),{response:this.accepted(e,e.kind)});switch(e.kind){case`pull`:return await this.pull(e);case`ack`:return await this.ack(e.sequence),{response:this.accepted(e,`ack`)};case`release`:return await this.release(e.leaseId),{response:this.accepted(e,`release`)};case`cancel`:return await this.cancel(),{response:this.accepted(e,`cancel`)};case`close`:return await this.close(),{response:this.accepted(e,`close`)}}}catch(t){let n=y(t);return n.code===`ooxml-resource-limit`&&(n=await this.coordinator.poison(n)),{response:this.errorResponse(e,n)}}}async pull(e){if(this.closeRequested||this.cancelRequested||this.completed)throw Error(`pull session is closed`);if(this.unacked)throw Error(`previous chunk is not acknowledged`);if(!Number.isSafeInteger(e.sequence)||e.sequence<0||e.sequence!==this.sequence)throw Error(`pull command sequence mismatch`);if(this.validateHostCredit(e.byteCredit),!this.coordinator.acquire(this.coordinatorOwner))throw Error(`another operation has an unacknowledged package chunk`);let t;try{t=await this.options.driver.pull(e.byteCredit)}catch(e){throw this.coordinator.release(this.coordinatorOwner),e}let n=!1,r=!1,i,a;try{let o=this.options.driver.measureChunk(t),s=this.arrayBufferTransferBytes(t.transfer);if(o<s)throw RangeError(`measured chunk bytes are below ArrayBuffer transfer bytes`);if(a=Math.max(o,s),t.leaseId!==void 0){if(x(t.leaseId,`lease id`),t.retainedBytes===void 0)throw Error(`retained lease bytes are required`);if(this.activeDriverLeases.has(t.leaseId))throw r=!0,Error(`driver returned an active duplicate lease id`);i=this.allocateWireLeaseId(),this.coordinator.retainLease(this.coordinatorOwner,i,t.retainedBytes),this.leases.set(i,{driverLeaseId:t.leaseId,retainedBytes:t.retainedBytes}),this.activeDriverLeases.add(t.leaseId),n=!0}else if(t.retainedBytes!==void 0)throw Error(`retained lease bytes require a lease id`);if(!Number.isSafeInteger(a)||a<0)throw RangeError(`host chunk byte length must be a non-negative safe integer`);if(a>e.byteCredit)throw RangeError(`host chunk exceeds byte credit`)}catch(e){let a;try{await this.options.driver.disposeInvalidChunk?.(t)}catch(e){a=e}if(n&&i!==void 0)try{await this.release(i)}catch(e){a??=e}else if(t.leaseId!==void 0&&!r)try{await this.options.driver.releaseLease?.(t.leaseId)}catch(e){a??=e}if(r)try{await this.cancel()}catch(e){a??=e}throw this.coordinator.release(this.coordinatorOwner),a||e}return this.unacked={sequence:this.sequence,done:t.done},{response:{kind:`chunk`,protocol:b,...this.identity(),requestId:e.requestId,sequence:this.sequence,byteLength:a,done:t.done,payload:t.payload,leaseId:i,usage:this.resourceUsage()},transfer:t.transfer}}async ack(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`invalid ack sequence`);if(e<this.sequence)return;if(!this.unacked||e!==this.sequence)throw Error(`ack sequence mismatch`);let t=this.unacked.done;await this.options.driver.acknowledge?.(e),this.unacked=void 0,this.coordinator.release(this.coordinatorOwner),this.sequence++,t&&(this.completed=!0,this.maybeUnregisterCompleted())}async release(e){x(e,`wire lease id`);let t=this.leases.get(e);t&&(await this.options.driver.releaseLease?.(t.driverLeaseId),this.leases.delete(e),this.activeDriverLeases.delete(t.driverLeaseId),this.coordinator.releaseLease(this.coordinatorOwner,e),this.maybeUnregisterCompleted())}async cancel(){if(this.cancelComplete)return;this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.cancelComplete=!0,this.unregisterCleanup()}async close(){if(this.closeComplete)return;this.closeRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;try{await this.releaseAllLeases()}catch(t){e=t}if(!this.driverCloseComplete)try{await this.options.driver.close?.(),this.driverCloseComplete=!0}catch(t){e??=t}if(e)throw e;this.closeComplete=!0,this.unregisterCleanup()}async releaseAllLeases(){let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(e)throw e}validateCommandIdentity(e){if(e.protocol!==`ooxml-pull-v1`||e.sessionId!==this.options.sessionId||e.operationId!==this.options.operationId||e.generation!==this.options.generation||!Number.isSafeInteger(e.requestId)||e.requestId<=0)throw Error(`stale or mismatched pull session command`)}validateHostCredit(e){if(x(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:b,...n?{sessionId:e.sessionId,operationId:e.operationId,generation:e.generation}:this.identity(),requestId:e.requestId,command:t,usage:this.resourceUsage()}}identity(){return{sessionId:this.options.sessionId,operationId:this.options.operationId,generation:this.options.generation}}isStaleLifecycle(e){return(e.kind===`cancel`||e.kind===`close`)&&e.protocol===`ooxml-pull-v1`&&Number.isSafeInteger(e.requestId)&&e.requestId>0&&Number.isSafeInteger(e.generation)&&e.generation>0&&e.generation<this.options.generation}sameOperationIdentity(e){return e.sessionId===this.options.sessionId&&e.operationId===this.options.operationId}errorResponse(e,t){return{kind:`error`,protocol:b,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:t,usage:this.errorResourceUsage()}}async forceFatalCleanup(){this.cancelRequested=!0,this.unacked=void 0,this.coordinator.release(this.coordinatorOwner);let e;for(let t of[...this.leases.keys()])try{await this.release(t)}catch(t){e??=t}if(!this.driverCancelComplete)try{await this.options.driver.cancel?.(),this.driverCancelComplete=!0}catch(t){e??=t}if(e)throw e;this.unregisterCleanup()}allocateWireLeaseId(){if(!Number.isSafeInteger(this.nextWireLeaseId)||this.nextWireLeaseId<=0)throw RangeError(`wire lease id space exhausted`);return this.nextWireLeaseId++}arrayBufferTransferBytes(e){let t=0;for(let n of e??[])if(n instanceof ArrayBuffer&&(t+=n.byteLength,!Number.isSafeInteger(t)))throw RangeError(`ArrayBuffer transfer bytes overflow`);return t}maybeUnregisterCompleted(){this.completed&&this.leases.size===0&&this.unregisterCleanup()}resourceUsage(){return this.options.driver.resourceUsage?.()}errorResourceUsage(){try{return this.resourceUsage()}catch{return}}};function S(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function C(e,t,n){return S(e,`resource measurement`),S(t,`resource measurement`),S(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Fe(e,t=2**53-1){S(t,`resource measurement limit`);let n=0;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=3}else a=3;if(n=C(n,a,t),n>t)return n}return n}function w(e,t=2**53-1){S(t,`resource measurement limit`);let n=C(0,2,t);if(n>t)return n;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a;if(i===34||i===92||i===8||i===9||i===10||i===12||i===13)a=2;else if(i<=31)a=6;else if(i<=127)a=1;else if(i<=2047)a=2;else if(i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);t>=56320&&t<=57343?(a=4,r+=1):a=6}else a=i>=55296&&i<=57343?6:3;if(n=C(n,a,t),n>t)return n}return n}function T(e,t){return C(0,e,t)}function E(e,t=2**53-1,n=!1){if(S(t,`resource measurement limit`),e===null)return{jsonBytes:T(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:w(e,t),stringValueUtf8Bytes:Fe(e,t)};if(typeof e==`boolean`)return{jsonBytes:T(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:T((Number.isFinite(e)?String(Object.is(e,-0)?0:e):`null`).length,t),stringValueUtf8Bytes:0};if(typeof e==`bigint`)throw TypeError(`BigInt values cannot be serialized to JSON`);if(Array.isArray(e)){let n=T(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=C(n,1,t));let a=E(e[i],t,!0);n=C(n,a.jsonBytes,t),r=C(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=T(2,t),r=0,i=0;for(let[a,o]of Object.entries(e)){if(o===void 0||typeof o==`function`||typeof o==`symbol`)continue;i++!==0&&(n=C(n,1,t)),n=C(n,w(a,t),t),n=C(n,1,t);let e=E(o,t);n=C(n,e.jsonBytes,t),r=C(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?T(4,t):0,stringValueUtf8Bytes:0}}({...o,...l});function*D(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*O(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*Ie(e){for(let t of e.elements)if(t.type===`shape`)yield*D(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*D(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Le=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=s(e)??s(t)??null;this.scripts=n??new ee(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Ie(e));for(let t of e.elements)if(t.type===`shape`)for(let e of O(t.textBody))this.families.add(e);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)for(let e of O(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const k=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),A=67108864;function j(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function Re(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function ze(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap payload`);let t=e;if(!Number.isSafeInteger(t.slideCount)||(t.slideCount??-1)<0||!Number.isSafeInteger(t.slideWidth)||(t.slideWidth??0)<=0||!Number.isSafeInteger(t.slideHeight)||(t.slideHeight??0)<=0||!Array.isArray(t.slides)||t.slides.length!==t.slideCount)throw Error(`invalid PPTX presentation bootstrap dimensions or slide count`);return j(t.defaultTextColor,`defaultTextColor`),j(t.majorFont,`majorFont`),j(t.minorFont,`minorFont`),j(t.hlinkColor,`hlinkColor`),j(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,slides:Object.freeze(t.slides.map(Re))})}function Be(e){return Object.freeze({type:`media`,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,flipH:e.flipH,flipV:e.flipV,mediaKind:e.mediaKind,posterPath:e.posterPath,posterMimeType:e.posterMimeType,mediaPath:e.mediaPath,mimeType:e.mimeType})}function Ve(e,t){if(e.index!==t.index||e.partName!==t.partName)throw Error(`PPTX pulled slide identity does not match bootstrap index ${t.index}`);return Object.freeze({index:t.index,...t.partName===void 0?{}:{partName:t.partName},notes:e.notes??null,hidden:e.hidden??!1,mediaElements:Object.freeze(e.elements.filter(e=>e.type===`media`).map(Be))})}function M(e,t,r){if(!(e<=t))throw new n(`PPTX presentation preflight exceeded its hard limit of ${t} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:t,observed:Math.min(e,t+1),configurable:!1,usage:r}})}var He=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=ze(e),r=t.hardLimitForTesting??A;if(!Number.isSafeInteger(r)||r<=0||r>A)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.descriptors=[...n.slides],this.fonts=new Le(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=E(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=E({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,remainingSlides:this.descriptors,slides:[],fontPreloadNames:this.fontPreloadNames},this.limit).jsonBytes,M(this.projectionBytesValue,this.limit,k)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}addSlide(e,t=k){this.prepareSlide(e,t).commit()}prepareSlide(e,t=k){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=Ve(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=E(o,this.limit).jsonBytes,c=E(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-E(r,this.limit).jsonBytes+4;l=C(l,s,this.limit),l=C(l,c,this.limit),this.slides.length!==0&&(l=C(l,1,this.limit));let ee=E({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=C(this.projectionBytesValue,ee,this.limit);M(Math.max(u,l),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=d,{projectedBytes:u,commit:()=>{if(d.state!==`committed`){if(d.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(d.fact),this.fonts=d.fonts,this.fontPreloadNames=d.fontNames,this.fontProjectionBytes=d.fontBytes,this.projectionBytesValue=d.committedBytes,d.state=`committed`,this.pending=null}},rollback:()=>{if(d.state!==`rolled-back`){if(d.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);d.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=E(this.finished,this.limit).jsonBytes,this.finished}};function N(e){try{return ge(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Ue(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,N(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var We=class{coordinatorGeneration=new Ne;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),Ke(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!P(n.identity,t))throw Error(`slide pull session open reservation is stale or missing`);let r,i=new Promise(e=>{r=e}),a=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(n.canceled)throw Error(`slide pull session open was canceled`);let i,a=!1,o=new Pe({...t,maxByteCredit:Ae,coordinator:this.coordinator,driver:{pull:n=>{let r;try{r=this.executeArchive(r=>r.pull_slide(e,t.operationId,t.generation,n))}catch(e){throw pe(e,n,Ae)||(this.latchResourceFailure(e),e)}let o=ke(r);return this.acceptSlide&&(i=JSON.parse(new TextDecoder().decode(new Uint8Array(o)))),a=!0,{payload:o,byteLength:o.byteLength,done:!0,transfer:[o]}},measureChunk:({payload:e})=>e.byteLength,acknowledge:()=>{if(!a)throw Error(`slide unit is not awaiting acknowledgement`);try{Ue(this.executeArchive,t,e,i,this.acceptSlide)}catch(e){throw this.latchResourceFailure(e),e}a=!1,i=void 0,this.sessions.delete(t.sessionId),r()},cancel:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},close:async()=>{try{this.archive()&&await this.executeArchive(e=>e.cancel_slide())}finally{i=void 0,a=!1,this.sessions.delete(t.sessionId),r()}},resourceUsage:()=>{try{return this.readResourceUsage()}catch(e){throw this.latchResourceFailure(e),e}}}});this.sessions.set(t.sessionId,{host:o,identity:t}),this.pendingOpens.delete(t.sessionId)}));this.operationTail=a.then(()=>i,()=>void 0);try{await a}catch(e){throw this.pendingOpens.delete(t.sessionId),r(),e}}async postOpenedSafely(e,t,n){if(this.lifecycleState!==`ready`){try{n(this.lifecycleError())}catch{}return}try{t()}catch(t){await this.closeIdentity(e);try{n(t)}catch{}}}dispatch(e,t){if(this.lifecycleState!==`ready`)return t(this.responseDuringReset(e)),Promise.resolve();let n=this.sessions.get(e.sessionId);if(n)return n.host.dispatch(e,t);let r=this.pendingOpens.get(e.sessionId);if(r&&(e.kind===`cancel`||e.kind===`close`)){let n=P(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}:this.staleLifecycleResponse(e)),Promise.resolve()}return e.kind===`cancel`||e.kind===`close`?(t({protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(n)})}catch{}}}run(e){if(this.lifecycleState!==`ready`)return Promise.reject(this.lifecycleError());let t=this.operationTail.then(()=>this.coordinator.enqueue(async()=>{if(this.resourceFailure)throw this.resourceFailure;return e()})).catch(e=>{throw this.latchResourceFailure(e),e});return this.operationTail=t.then(()=>void 0,()=>void 0),t}reset(){if(this.resetBarrier)return this.resetBarrier;this.lifecycleState=`resetting`,this.captureResetIdentities();let e=this.performReset().then(()=>{this.resetIdentities.clear(),this.lifecycleState=`ready`},e=>{throw this.lifecycleState=`reset-failed`,e}).finally(()=>{this.resetBarrier===e&&(this.resetBarrier=void 0)});return this.resetBarrier=e,e}async performReset(){for(let e of this.pendingOpens.values())e.canceled=!0;let e=1;for(let{host:t,identity:n}of[...this.sessions.values()]){let r;if(await t.dispatch({protocol:b,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=Oe(e.error))}),r)throw r}this.sessions.clear(),await this.operationTail,this.pendingOpens.clear(),this.archive()&&await this.executeArchive(e=>e.close_presentation_session()),this.coordinatorGeneration=new Ne,this.resourceFailure=void 0}assertReady(){if(this.lifecycleState!==`ready`)throw this.lifecycleError()}lifecycleError(){let e=this.lifecycleState===`reset-failed`,t=Error(e?`slide pull worker reset failed; retry reset before new work`:`slide pull worker reset is in progress`);return t.name=`PullSessionLifecycleError`,Object.assign(t,{code:e?`ooxml-pull-reset-failed`:`ooxml-pull-resetting`})}captureResetIdentities(){for(let{identity:e}of this.sessions.values())this.resetIdentities.set(e.sessionId,e);for(let{identity:e}of this.pendingOpens.values())this.resetIdentities.set(e.sessionId,e)}responseDuringReset(e){if(e.kind===`cancel`||e.kind===`close`){let t=this.resetIdentities.get(e.sessionId);return t&&!P(t,e)?this.staleLifecycleResponse(e):{protocol:b,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:y(this.lifecycleError())}}requireArchive(){let e=this.archive();if(!e)throw Error(`Presentation not loaded`);return e}async closeIdentity(e){if(this.lifecycleState!==`ready`)return;let t=this.sessions.get(e.sessionId);if(t){await t.host.dispatch({protocol:b,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&P(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return N(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:Te(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:b,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function Ge(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ke(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function P(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var F=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Je.unregister(this),e}free(){let e=this.__destroy_into_raw();J.__wbg_pptxarchive_free(e,0)}acknowledge_slide(e,t){let n=J.pptxarchive_acknowledge_slide(this.__wbg_ptr,e,t);if(n[1])throw U(n[0])}assert_healthy(){let e=J.pptxarchive_assert_healthy(this.__wbg_ptr);if(e[1])throw U(e[0])}cancel_slide(){J.pptxarchive_cancel_slide(this.__wbg_ptr)}close_presentation_session(){J.pptxarchive_close_presentation_session(this.__wbg_ptr)}extract_image(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_image(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}extract_media(e){let t=H(e,J.__wbindgen_malloc,J.__wbindgen_realloc),n=q,r=J.pptxarchive_extract_media(this.__wbg_ptr,t,n);if(r[3])throw U(r[2]);var i=I(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=Xe(e,J.__wbindgen_malloc),a=q,o=J.pptxarchive_new(i,a,!V(t),V(t)?BigInt(0):t,!V(n),V(n)?BigInt(0):n,!V(r),V(r)?BigInt(0):r);if(o[2])throw U(o[1]);return this.__wbg_ptr=o[0]>>>0,Je.register(this,this.__wbg_ptr,this),this}parse(){let e=J.pptxarchive_parse(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}presentation_bootstrap(){let e=J.pptxarchive_presentation_bootstrap(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}pull_slide(e,t,n,r){let i=J.pptxarchive_pull_slide(this.__wbg_ptr,e,t,n,r);if(i[3])throw U(i[2]);var a=I(i[0],i[1]).slice();return J.__wbindgen_free(i[0],i[1]*1,1),a}resource_usage(){let e=J.pptxarchive_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}slide_cursor_resource_usage(){let e=J.pptxarchive_slide_cursor_resource_usage(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=I(e[0],e[1]).slice();return J.__wbindgen_free(e[0],e[1]*1,1),t}to_markdown(){let e,t;try{let i=J.pptxarchive_to_markdown(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,R(n,r)}finally{J.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);function qe(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;Ye().setInt32(e+4,i,!0),Ye().setInt32(e+0,r,!0)},__wbindgen_cast_0000000000000001:function(e,t){return R(e,t)},__wbindgen_init_externref_table:function(){let e=J.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}const Je=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function I(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let L=null;function Ye(){return(L===null||L.buffer.detached===!0||L.buffer.detached===void 0&&L.buffer!==J.memory.buffer)&&(L=new DataView(J.memory.buffer)),L}function R(e,t){return e>>>=0,Ze(e,t)}let z=null;function B(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(J.memory.buffer)),z}function V(e){return e==null}function Xe(e,t){let n=t(e.length*1,1)>>>0;return B().set(e,n/1),q=e.length,n}function H(e,t,n){if(n===void 0){let n=K.encode(e),r=t(n.length,1)>>>0;return B().subarray(r,r+n.length).set(n),q=n.length,r}let r=e.length,i=t(r,1)>>>0,a=B(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=B().subarray(i+o,i+r),a=K.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return q=o,i}function U(e){let t=J.__wbindgen_externrefs.get(e);return J.__externref_table_dealloc(e),t}let W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});W.decode();let G=0;function Ze(e,t){return G+=t,G>=2146435072&&(W=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),W.decode(),G=t),W.decode(B().subarray(e,e+t))}const K=new TextEncoder;`encodeInto`in K||(K.encodeInto=function(e,t){let n=K.encode(e);return t.set(n),{read:e.length,written:n.length}});let q=0,J;function Qe(e,t){return J=e.exports,L=null,z=null,J.__wbindgen_start(),J}async function $e(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function et(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=qe();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await $e(await e,t);return Qe(n,r)}async function tt(e){return J=void 0,L=null,z=null,et(e)}const Y=new ce(et,{freeArchive:e=>e.free(),reinit:tt});let X=null,Z=`empty`;function nt(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new We(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(Ge(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(ne(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(nt(),r=!0),t.kind===`openSlideSession`){await Y.ensureReady(),await Q.open(t.slideIndex,t),await Q.postOpenedSafely(t,()=>$({kind:`slideSessionOpened`,id:n,sessionId:t.sessionId,operationId:t.operationId,generation:t.generation}),e=>$({kind:`error`,id:n,...y(e)}));return}t.kind===`parse`&&await Q.reset(),await Q.run(async()=>{if(await Y.ensureReady(),t.kind!==`parse`&&Y.archive){let e=Y.archive;Y.run(()=>e.assert_healthy())}if(t.kind===`parse`){X=null;let[e,r,i]=je(t.resourcePolicy),a=Y.run(()=>{let n=new F(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=new He(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:ge(Y.run(()=>e.resource_usage()))});return}t.kind===`toMarkdown`&&$({kind:`markdownRendered`,id:n,markdown:Y.run(()=>e.to_markdown())})})}catch(e){r&&(Z=`failed`),t.kind===`openSlideSession`&&Q.abandonOpen(t.sessionId);try{$({kind:`error`,id:n,...y(e)})}catch{}}};", et = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", $e], { type: "text/javascript;charset=utf-8" });
|
|
545
|
-
function
|
|
547
|
+
var it = "var e=(e,t)=>()=>(e&&(t=e(e=0)),t),t=class e extends Error{code;constructor(t,n){super(n),this.name=`OoxmlError`,this.code=t,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{code=`ooxml-resource-limit`;details;constructor(t,n){super(t),this.name=`OoxmlResourceLimitError`;let r=n.violation,i=Object.freeze({format:r.format,operation:r.operation,resource:r.resource,metric:r.metric,...r.part===void 0?{}:{part:r.part},limit:r.limit,observed:r.observed,configurable:r.configurable,usage:Object.freeze({archiveEntryCount:r.usage.archiveEntryCount,declaredInflatedBytes:r.usage.declaredInflatedBytes,...r.usage.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:r.usage.largestInflatedEntryBytes},distinctInflatedBytes:r.usage.distinctInflatedBytes,operationInflatedBytes:r.usage.operationInflatedBytes})});this.details=Object.freeze({stage:n.stage,violation:i}),Object.setPrototypeOf(this,e.prototype)}};const r=`https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@400;700&display=swap`,i=`https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap`,a=`https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap`,o={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},\"calibri light\":{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"cambria math\":{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`},\"franklin gothic book\":{url:a,loadFamily:`Libre Franklin`},\"franklin gothic medium\":{url:a,loadFamily:`Libre Franklin`},\"nunito sans\":{url:`https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},nunito:{url:`https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"open sans\":{url:`https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap`},roboto:{url:`https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap`},lato:{url:`https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap`},montserrat:{url:`https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;1,400;1,700&display=swap`},poppins:{url:`https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap`},raleway:{url:`https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"playfair display\":{url:`https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap`},ubuntu:{url:`https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap`},\"sakkal majalla\":{url:r,loadFamily:`Noto Naskh Arabic`},\"traditional arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"simplified arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"arabic typesetting\":{url:r,loadFamily:`Noto Naskh Arabic`},\"univers next arabic\":{url:i,loadFamily:`Noto Sans Arabic`},\"noto naskh arabic\":{url:r,loadFamily:`Noto Naskh Arabic`},\"noto sans arabic\":{url:i,loadFamily:`Noto Sans Arabic`}};function s(e){if(!e)return null;let t=e.toLowerCase();return/[ᄀ-ᇿ-가-]/.test(e)?`kr`:/[-ヿ]/.test(e)?`jp`:/jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\\s*liu/.test(t)||/新細明體|細明體|標楷體|微軟正黑體|華康/.test(e)?`tc`:/simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t)||/宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e)?`sc`:/malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t)?`kr`:/\\bmeiryo\\b|\\byu\\s*(gothic|mincho)\\b|yugothic|yumincho|hiragino|\\bms\\s*(gothic|mincho|pgothic|pmincho|ui\\s*gothic)\\b|\\bms[pg]?(gothic|mincho)\\b|ipa(ex)?(gothic|mincho)|noto\\s+(sans|serif)\\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t)||/游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e)?`jp`:null}const c=e=>`https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`,l={\"noto sans kr\":{url:c(`Noto+Sans+KR`)},\"noto sans sc\":{url:c(`Noto+Sans+SC`)},\"noto sans tc\":{url:c(`Noto+Sans+TC`)},\"noto sans jp\":{url:c(`Noto+Sans+JP`)},\"noto serif kr\":{url:c(`Noto+Serif+KR`)},\"noto serif sc\":{url:c(`Noto+Serif+SC`)},\"noto serif tc\":{url:c(`Noto+Serif+TC`)},\"noto serif jp\":{url:c(`Noto+Serif+JP`)},\"noto sans\":{url:c(`Noto+Sans`)},\"noto serif\":{url:c(`Noto+Serif`)},\"noto sans devanagari\":{url:c(`Noto+Sans+Devanagari`)},\"noto sans thai\":{url:c(`Noto+Sans+Thai`)},\"noto sans hebrew\":{url:c(`Noto+Sans+Hebrew`)},\"noto serif hebrew\":{url:c(`Noto+Serif+Hebrew`)}};var ee=class e{hasHan=!1;hasHangul=!1;hasKana=!1;hasArabic=!1;hasThai=!1;hasHebrew=!1;hasDevanagari=!1;hasCyrGreek=!1;constructor(e){this.cjkLang=e}clone(){let t=new e(this.cjkLang);return t.hasHan=this.hasHan,t.hasHangul=this.hasHangul,t.hasKana=this.hasKana,t.hasArabic=this.hasArabic,t.hasThai=this.hasThai,t.hasHebrew=this.hasHebrew,t.hasDevanagari=this.hasDevanagari,t.hasCyrGreek=this.hasCyrGreek,t}addText(e){let t=()=>this.hasHan&&this.hasHangul&&this.hasKana&&this.hasArabic&&this.hasThai&&this.hasHebrew&&this.hasDevanagari&&this.hasCyrGreek;outer:for(let n of e)if(n)for(let e of n){let n=e.codePointAt(0);if(n!==void 0&&!(n<=591)&&(n>=4352&&n<=4607||n>=12592&&n<=12687||n>=44032&&n<=55215?this.hasHangul=!0:n>=12352&&n<=12543?this.hasKana=!0:n>=13312&&n<=19903||n>=19968&&n<=40959||n>=63744&&n<=64255||n>=131072&&n<=195103?this.hasHan=!0:n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279?this.hasArabic=!0:n>=3584&&n<=3711?this.hasThai=!0:n>=1424&&n<=1535||n>=64285&&n<=64335?this.hasHebrew=!0:n>=2304&&n<=2431?this.hasDevanagari=!0:(n>=1024&&n<=1279||n>=880&&n<=1023)&&(this.hasCyrGreek=!0),t()))break outer}}names(){let e=[],t=new Set;this.hasHangul&&t.add(`kr`),this.hasKana&&t.add(`jp`),this.hasHan&&t.size===0&&t.add(this.cjkLang??`jp`);for(let n of[`kr`,`sc`,`tc`,`jp`])if(t.has(n)){let t={kr:`KR`,sc:`SC`,tc:`TC`,jp:`JP`}[n];e.push(`Noto Sans ${t}`,`Noto Serif ${t}`)}return this.hasCyrGreek&&e.push(`Noto Sans`,`Noto Serif`),this.hasArabic&&e.push(`Noto Naskh Arabic`,`Noto Sans Arabic`),this.hasThai&&e.push(`Noto Sans Thai`),this.hasHebrew&&e.push(`Noto Sans Hebrew`,`Noto Serif Hebrew`),this.hasDevanagari&&e.push(`Noto Sans Devanagari`),e}},u,d,te=e((()=>{u=1<<25,u*4,d=class e extends RangeError{code=`ooxml-decoded-image-limit`;constructor(t,n,r){super(`OOXML decoded image limit exceeded: ${t} ${r} > ${n}`),this.metric=t,this.limit=n,this.observed=r,this.name=`OoxmlDecodedImageLimitError`,Object.setPrototypeOf(this,e.prototype)}}}));function ne(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t===-1)return null;let n=atob(e.slice(t+1)),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}var re=class{state=`uninitialized`;generationValue=0;readiness;poisonListeners=new Set;constructor(e,t,n){this.initialize=e,this.reinitialize=t,this.normalizeFailure=n}get generation(){return this.generationValue}get poisoned(){return this.state===`poisoned`}onPoison(e){return this.poisonListeners.add(e),()=>this.poisonListeners.delete(e)}async ensureReady(){if(this.state!==`ready`){if(!this.readiness){let e=this.state===`uninitialized`?this.initialize:this.reinitialize;this.readiness=Promise.resolve().then(e).then(()=>{this.generationValue+=1,this.state=`ready`,this.readiness=void 0},e=>{throw this.readiness=void 0,e})}await this.readiness}}run(e){try{return e()}catch(e){let t=this.normalizeFailure(e);throw t?(this.poison(t),t):e}}tryRunReady(e){if(this.state!==`ready`)return{current:!1};let t=this.generationValue,n=this.run(e);return this.state!==`ready`||t!==this.generationValue?{current:!1}:{current:!0,generation:t,value:n}}poison(e){this.state=`poisoned`,this.readiness=void 0;for(let t of this.poisonListeners)t(e)}assertCurrent(e){if(this.state!==`ready`||e!==this.generationValue)throw Error(`WASM archive session belongs to a discarded runtime generation`)}},ie=class e extends Error{code=`parser-crashed`;constructor(t){super(t),this.name=`WasmTrapError`,Object.setPrototypeOf(this,e.prototype)}};function ae(e){let t=globalThis.WebAssembly?.RuntimeError;return t&&e instanceof t||e instanceof RangeError?!0:e instanceof Error?e.name===`RuntimeError`||e.name===`CompileError`||e.name===`LinkError`||e.name===`InternalError`||e.name===`OOMError`:!1}function oe(e){try{if((typeof e!=`object`||!e)&&typeof e!=`function`)return;let t=Reflect.get(e,`__destroy_into_raw`);typeof t==`function`&&Reflect.apply(t,e,[])}catch{}}function se(e,t){return e({module_or_path:t})}var ce=class{runtime;wasmInput=null;currentArchive=null;constructor(e,t={}){this.init=e,this.options=t,this.runtime=new re(()=>this.invokeConfigured(this.init),()=>this.invokeConfigured(this.options.reinit??this.init),le),this.runtime.onPoison(()=>this.dropPoisonedArchive())}setWasmInput(e){this.wasmInput=e,this.runtime.ensureReady().catch(()=>void 0)}setWasmUrl(e){this.setWasmInput(e)}get archive(){return this.currentArchive}setArchive(e){this.freeArchive(),this.currentArchive=e}disposeArchive(){this.freeArchive()}get poisoned(){return this.runtime.poisoned}async ensureReady(){await this.runtime.ensureReady()}run(e){return this.runtime.run(e)}poison(){this.runtime.poison(new ie(`WASM parser was recycled`))}invokeConfigured(e){return this.wasmInput===null?Promise.reject(Error(`WasmParserHost: setWasmInput was never called`)):se(e,this.wasmInput)}freeArchive(){this.currentArchive!==null&&this.options.freeArchive&&this.options.freeArchive(this.currentArchive),this.currentArchive=null}dropPoisonedArchive(){let e=this.currentArchive;this.currentArchive=null,oe(e)}};function le(e){return ae(e)?new ie(`WASM parser trapped and was recycled: ${e instanceof Error?e.message:String(e)}`):null}function f(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function ue(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return f(t.requiredBytes)&&f(t.offeredBytes)&&t.requiredBytes>t.offeredBytes}var p=class e extends RangeError{code=`ooxml-insufficient-credit`;requiredBytes;offeredBytes;constructor(t){super(`Pull unit requires ${t.requiredBytes} bytes but credit is ${t.offeredBytes}`),this.name=`PullSessionInsufficientCreditError`,this.requiredBytes=t.requiredBytes,this.offeredBytes=t.offeredBytes,Object.setPrototypeOf(this,e.prototype)}};function de(e){if(e instanceof p)return e;let t=e instanceof Error?e.message:String(e);if(!t.startsWith(`OOXML_INSUFFICIENT_CREDIT:`))return;let n;try{n=JSON.parse(t.slice(26))}catch{return}if(!n||typeof n!=`object`||Array.isArray(n))return;let r=n;if(!(r.code!==`ooxml-insufficient-credit`||!ue(r)))return new p(r)}function fe(e,t,n){let r=de(e);if(!(!r||r.offeredBytes!==t||r.requiredBytes>n))return r}te();const pe=`OOXML_RESOURCE_LIMIT:`;function m(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function me(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return m(t.archiveEntryCount)&&m(t.declaredInflatedBytes)&&(t.largestInflatedEntryBytes===void 0||m(t.largestInflatedEntryBytes))&&m(t.distinctInflatedBytes)&&m(t.operationInflatedBytes)}function h(e){let t;try{t=JSON.parse(new TextDecoder().decode(e))}catch{throw TypeError(`OOXML resource usage checkpoint is not valid JSON`)}if(!me(t))throw TypeError(`OOXML resource usage checkpoint is invalid`);return t}function he(e){return e===`docx`||e===`xlsx`||e===`pptx`}function ge(e){return e===`container`||e===`decompression`||e===`parsing`||e===`serialization`||e===`layout`||e===`rendering`||e===`worker`}function g(e,t){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\\u0000-\\u001f\\u007f]/u.test(e)}function _(e){return g(e,128)&&/^[a-z0-9][a-z0-9-]*$/u.test(e)}function _e(e){return!g(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 v=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}]]),ve=new Set([...v.keys()].map(e=>e.slice(0,e.indexOf(`:`)))),ye=new Set([...v.keys()].map(e=>e.slice(e.indexOf(`:`)+1)));function be(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!he(t.format)||!g(t.operation,256)||!_(t.resource)||!_(t.metric)||!m(t.limit)||!m(t.observed)||typeof t.configurable!=`boolean`||!me(t.usage)?!1:!(`part`in t)||_e(t.part)}function y(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;if(!ge(t.stage)||!be(t.violation))return!1;let n=t.violation,r=v.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:!(ve.has(n.resource)&&ye.has(n.metric))}function xe(e){return{archiveEntryCount:e.archiveEntryCount,declaredInflatedBytes:e.declaredInflatedBytes,...e.largestInflatedEntryBytes===void 0?{}:{largestInflatedEntryBytes:e.largestInflatedEntryBytes},distinctInflatedBytes:e.distinctInflatedBytes,operationInflatedBytes:e.operationInflatedBytes}}function Se(e){if(!y(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:xe(t.usage)}};return y(n)?n:void 0}function Ce(e){let t=e.violation;return`OOXML resource limit exceeded${t.part?` for ${t.part}`:``}: ${t.metric} ${t.observed} > ${t.limit}`}function b(e){let t=e instanceof Error?e.message:String(e);if(!t.startsWith(pe))return;let r;try{r=JSON.parse(t.slice(21))}catch{return}if(!r||typeof r!=`object`)return;let i=r;if(!(i.code!==`ooxml-resource-limit`||!y(i.details)))return new n(Ce(i.details),i.details)}function we(e){if(e instanceof d)return{message:e.message,errorName:e.name,code:e.code,decodedImage:{metric:e.metric,limit:e.limit,observed:e.observed}};let r=de(e);if(r)return{message:r.message,errorName:r.name,code:r.code,insufficientCredit:{requiredBytes:r.requiredBytes,offeredBytes:r.offeredBytes}};let i=e instanceof t||e instanceof n?e:b(e);if(i instanceof n){let e=Se(i.details);return e?{message:typeof i.message==`string`?i.message:Ce(e),errorName:`OoxmlResourceLimitError`,code:`ooxml-resource-limit`,resourceLimit:e}:{message:`Invalid OOXML resource-limit error payload`,errorName:`Error`}}if(i instanceof t)return{message:typeof i.message==`string`?i.message:String(i.message),errorName:g(i.name,128)?i.name:`OoxmlError`,..._(i.code)?{code:i.code}:{}};let a=e instanceof Error?e.message:String(e);if(typeof a==`string`&&a.startsWith(pe))return{message:`Invalid OOXML resource-limit payload`,errorName:`Error`};let o=e instanceof Error?e:Error(a),s=o;return{message:typeof o.message==`string`?o.message:String(o.message),errorName:g(o.name,128)?o.name:`Error`,...typeof s.code==`string`?{code:s.code}:{}}}function x(e){try{return we(e)}catch{return{message:`Worker operation failed with an unreadable error`,errorName:`Error`}}}const Te=new Set([`encrypted`,`invalid-password`,`unsupported-encryption`,`legacy-binary-format`,`not-ooxml`]);function Ee(e){if(e.code===`ooxml-decoded-image-limit`&&e.decodedImage&&(e.decodedImage.metric===`image-pixels`||e.decodedImage.metric===`active-decoded-bytes`)&&m(e.decodedImage.limit)&&m(e.decodedImage.observed)&&e.decodedImage.observed>e.decodedImage.limit)return new d(e.decodedImage.metric,e.decodedImage.limit,e.decodedImage.observed);if(e.code===`ooxml-insufficient-credit`&&ue(e.insufficientCredit))return new p(e.insufficientCredit);if(e.code===`ooxml-resource-limit`&&y(e.resourceLimit))return new n(e.message,e.resourceLimit);if(e.code&&Te.has(e.code))return new t(e.code,e.message);let r=e.errorName===`TypeError`?TypeError(e.message):e.errorName===`RangeError`?RangeError(e.message):Error(e.message);return e.errorName&&(r.name=e.errorName),e.code!==void 0&&Object.assign(r,{code:e.code}),r}function De(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength&&e.buffer instanceof ArrayBuffer?e.buffer:e.slice().buffer}const S=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 C=`ooxml-pull-v1`;function w(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 Ae=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,w(this.maxRetainedBytes,`max retained lease bytes`),w(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}},je=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),w(e.operationId,`operation id`),w(e.generation,`generation`),w(e.maxByteCredit,`max byte credit`),e.wireLeaseIdStart!==void 0&&w(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=x(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(w(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:C,...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){w(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(w(e,`byte credit`),e>this.options.maxByteCredit)throw RangeError(`byte credit exceeds host maximum`)}accepted(e,t,n=!1){return{kind:`accepted`,protocol:C,...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:C,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 T(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function E(e,t,n){return T(e,`resource measurement`),T(t,`resource measurement`),T(n,`resource measurement limit`),e>n||t>n||t>n-e?n===2**53-1?n:n+1:e+t}function Me(e,t=2**53-1){T(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=E(n,a,t),n>t)return n}return n}function Ne(e,t=2**53-1){T(t,`resource measurement limit`);let n=E(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=E(n,a,t),n>t)return n}return n}function D(e,t){return E(0,e,t)}function O(e,t=2**53-1,n=!1){if(T(t,`resource measurement limit`),e===null)return{jsonBytes:D(4,t),stringValueUtf8Bytes:0};if(typeof e==`string`)return{jsonBytes:Ne(e,t),stringValueUtf8Bytes:Me(e,t)};if(typeof e==`boolean`)return{jsonBytes:D(e?4:5,t),stringValueUtf8Bytes:0};if(typeof e==`number`)return{jsonBytes:D((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=D(2,t),r=0;for(let i=0;i<e.length;i+=1){i!==0&&(n=E(n,1,t));let a=O(e[i],t,!0);n=E(n,a.jsonBytes,t),r=E(r,a.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}if(typeof e==`object`){let n=D(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=E(n,1,t)),n=E(n,Ne(a,t),t),n=E(n,1,t);let e=O(o,t);n=E(n,e.jsonBytes,t),r=E(r,e.stringValueUtf8Bytes,t)}return{jsonBytes:n,stringValueUtf8Bytes:r}}return{jsonBytes:n?D(4,t):0,stringValueUtf8Bytes:0}}({...o,...l});function*Pe(e){for(let t of e?.paragraphs??[])for(let e of t.runs)e.type===`text`&&(yield e.text)}function*Fe(e){for(let t of e?.paragraphs??[]){t.defFontFamily&&(yield t.defFontFamily);for(let e of t.runs)e.type===`text`&&(e.fontFamily&&(yield e.fontFamily),e.fontFamilyEa&&(yield e.fontFamilyEa),e.fontFamilySym&&(yield e.fontFamilySym))}}function*Ie(e){for(let t of e.elements)if(t.type===`shape`)yield*Pe(t.textBody);else if(t.type===`table`)for(let e of t.rows)for(let t of e.cells)yield*Pe(t.textBody);else if(t.type===`chart`){t.chart.title&&(yield t.chart.title);for(let e of t.chart.categories)yield e;for(let e of t.chart.series)e.name&&(yield e.name)}}var Le=class e{scripts;families;constructor(e,t,n,r){this.majorFont=e,this.minorFont=t;let i=s(e)??s(t)??null;this.scripts=n??new ee(i),this.families=r??new Set,e&&this.families.add(e),t&&this.families.add(t)}addSlide(e){this.scripts.addText(Ie(e));for(let t of e.elements)if(t.type===`shape`)for(let e of Fe(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 Fe(t.textBody))this.families.add(e)}names(){return[...this.families,...this.scripts.names()]}withSlide(t){let n=new e(this.majorFont,this.minorFont,this.scripts.clone(),new Set(this.families));return n.addSlide(t),n}};const k=Object.freeze({archiveEntryCount:0,declaredInflatedBytes:0,distinctInflatedBytes:0,operationInflatedBytes:0}),Re=67108864;function A(e,t){if(e!==null&&typeof e!=`string`)throw Error(`invalid PPTX presentation bootstrap ${t}`)}function ze(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid PPTX presentation bootstrap slide at ${t}`);let n=e;if(n.index!==t)throw Error(`invalid PPTX presentation bootstrap slide index ${n.index}`);if(n.partName!==void 0&&typeof n.partName!=`string`)throw Error(`invalid PPTX presentation bootstrap slide partName at ${t}`);return Object.freeze({index:n.index,...n.partName===void 0?{}:{partName:n.partName}})}function Be(e){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 A(t.defaultTextColor,`defaultTextColor`),A(t.majorFont,`majorFont`),A(t.minorFont,`minorFont`),A(t.hlinkColor,`hlinkColor`),A(t.folHlinkColor,`folHlinkColor`),Object.freeze({slideCount:t.slideCount,slideWidth:t.slideWidth,slideHeight:t.slideHeight,defaultTextColor:t.defaultTextColor,majorFont:t.majorFont,minorFont:t.minorFont,hlinkColor:t.hlinkColor,folHlinkColor:t.folHlinkColor,slides:Object.freeze(t.slides.map(ze))})}function Ve(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 He(e){return Object.freeze({...e.id===void 0?{}:{id:e.id},...e.authorId===void 0?{}:{authorId:e.authorId},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.status===void 0?{}:{status:e.status},text:e.text})}function Ue(e){return Object.freeze({...e})}function We(e){return Object.freeze({...e.authorId===void 0?{}:{authorId:e.authorId},...e.modernAuthorId===void 0?{}:{modernAuthorId:e.modernAuthorId},...e.id===void 0?{}:{id:e.id},...e.index===void 0?{}:{index:e.index},...e.author===void 0?{}:{author:e.author},...e.date===void 0?{}:{date:e.date},...e.x===void 0?{}:{x:e.x},...e.y===void 0?{}:{y:e.y},...e.anchors?.length?{anchors:Object.freeze(e.anchors.map(Ue))}:{},...e.status===void 0?{}:{status:e.status},text:e.text,...e.replies?.length?{replies:Object.freeze(e.replies.map(He))}:{}})}function Ge(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(Ve)),...e.comments?.length?{comments:Object.freeze(e.comments.map(We))}:{}})}function Ke(e,t,r){if(!(e<=t))throw new n(`PPTX presentation preflight exceeded its hard limit of ${t} projected bytes`,{stage:`parsing`,violation:{format:`pptx`,operation:`presentation-preflight`,resource:`presentation-preflight`,metric:`projected-bytes`,limit:t,observed:Math.min(e,t+1),configurable:!1,usage:r}})}var qe=class{slideCountValue;slideWidthValue;slideHeightValue;defaultTextColorValue;majorFontValue;minorFontValue;hlinkColorValue;folHlinkColorValue;descriptors;slides=[];fonts;fontPreloadNames;fontProjectionBytes;projectionBytesValue;limit;pending=null;finished=null;constructor(e,t={}){let n=Be(e),r=t.hardLimitForTesting??Re;if(!Number.isSafeInteger(r)||r<=0||r>Re)throw Error(`invalid PPTX presentation preflight test limit`);this.limit=r,this.slideCountValue=n.slideCount,this.slideWidthValue=n.slideWidth,this.slideHeightValue=n.slideHeight,this.defaultTextColorValue=n.defaultTextColor,this.majorFontValue=n.majorFont,this.minorFontValue=n.minorFont,this.hlinkColorValue=n.hlinkColor,this.folHlinkColorValue=n.folHlinkColor,this.descriptors=[...n.slides],this.fonts=new Le(this.majorFontValue,this.minorFontValue),this.fontPreloadNames=Object.freeze(this.fonts.names()),this.fontProjectionBytes=O(this.fontPreloadNames,this.limit).jsonBytes,this.projectionBytesValue=O({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,Ke(this.projectionBytesValue,this.limit,k)}get acceptedSlideCount(){return this.finished?.slideCount??this.slides.length}get projectedBytes(){return this.projectionBytesValue}get remainingDescriptorCount(){return this.descriptors.reduce((e,t)=>e+Number(t!==void 0),0)}addSlide(e,t=k){this.prepareSlide(e,t).commit()}prepareSlide(e,t=k){if(this.finished)throw Error(`PPTX presentation preflight is already finished`);if(this.pending)throw Error(`PPTX presentation preflight already has a prepared slide`);let n=this.slides.length,r=this.descriptors[n];if(!r)throw Error(`PPTX presentation preflight received an extra slide`);let i=Ge(e,r),a=this.fonts.withSlide(e),o=Object.freeze(a.names()),s=O(o,this.limit).jsonBytes,c=O(i,this.limit).jsonBytes,l=this.projectionBytesValue-this.fontProjectionBytes-O(r,this.limit).jsonBytes+4;l=E(l,s,this.limit),l=E(l,c,this.limit),this.slides.length!==0&&(l=E(l,1,this.limit));let ee=O({slide:i,fontPreloadNames:o},this.limit).jsonBytes,u=E(this.projectionBytesValue,ee,this.limit);Ke(Math.max(u,l),this.limit,t);let d={state:`prepared`,fact:i,fonts:a,fontNames:o,fontBytes:s,committedBytes:l};return this.pending=d,{projectedBytes:u,commit:()=>{if(d.state!==`committed`){if(d.state===`rolled-back`)throw Error(`PPTX presentation preflight cannot commit a rolled-back slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);this.descriptors[n]=void 0,this.slides.push(d.fact),this.fonts=d.fonts,this.fontPreloadNames=d.fontNames,this.fontProjectionBytes=d.fontBytes,this.projectionBytesValue=d.committedBytes,d.state=`committed`,this.pending=null}},rollback:()=>{if(d.state!==`rolled-back`){if(d.state===`committed`)throw Error(`PPTX presentation preflight cannot roll back a committed slide`);if(this.pending!==d)throw Error(`PPTX presentation preflight prepared slide is stale`);d.state=`rolled-back`,this.pending=null}}}}finish(){if(this.finished)return this.finished;if(this.pending)throw Error(`PPTX presentation preflight has an uncommitted slide`);if(this.slides.length!==this.slideCountValue)throw Error(`PPTX presentation preflight is incomplete: ${this.slides.length}/${this.slideCountValue} slides`);return this.finished=Object.freeze({slideCount:this.slideCountValue,slideWidth:this.slideWidthValue,slideHeight:this.slideHeightValue,defaultTextColor:this.defaultTextColorValue,majorFont:this.majorFontValue,minorFont:this.minorFontValue,hlinkColor:this.hlinkColorValue,folHlinkColor:this.folHlinkColorValue,slides:Object.freeze([...this.slides]),fontPreloadNames:this.fontPreloadNames}),this.descriptors=[],this.slides=[],this.projectionBytesValue=O(this.finished,this.limit).jsonBytes,this.finished}};function j(e){try{return h(e(e=>e.slide_cursor_resource_usage()))}catch(e){if(String(e).includes(`slide cursor usage is unavailable`))return;throw e}}function Je(e,t,n,r,i){let a,o;try{if(i){if(!r)throw Error(`slide payload is missing before acknowledgement`);let t=i(n,r,j(e));typeof t==`function`?a=t:t&&({rollback:a,commit:o}=t)}e(e=>e.acknowledge_slide(t.operationId,t.generation)),o?.()}catch(e){try{a?.()}catch{}throw e}}var Ye=class{coordinatorGeneration=new Ae;sessions=new Map;pendingOpens=new Map;operationTail=Promise.resolve();resourceFailure;lifecycleState=`ready`;resetBarrier;resetIdentities=new Map;constructor(e,t,n=e=>e(this.requireArchive())){this.archive=e,this.acceptSlide=t,this.executeArchive=n}get coordinator(){return this.coordinatorGeneration}reserveOpen(e){if(this.assertReady(),Ze(e),this.pendingOpens.has(e.sessionId)||this.sessions.has(e.sessionId))throw Error(`slide pull session id is already reserved`);this.pendingOpens.set(e.sessionId,{identity:e,canceled:!1})}abandonOpen(e){this.pendingOpens.delete(e)}get pendingOpenCount(){return this.pendingOpens.size}async open(e,t){if(this.assertReady(),this.resourceFailure)throw this.resourceFailure;if(!Number.isSafeInteger(e)||e<0)throw RangeError(`slide index must be a non-negative safe integer`);let n=this.pendingOpens.get(t.sessionId);if(!n||!M(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 je({...t,maxByteCredit:S,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 fe(e,n,S)||(this.latchResourceFailure(e),e)}let o=De(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{Je(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=M(r.identity,e);return n&&(r.canceled=!0),t(n?{protocol:C,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:C,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}),Promise.resolve()):(t({protocol:C,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:x(Error(`slide pull session is not open`))}),Promise.resolve())}async dispatchSafely(e,t){try{await this.dispatch(e,t)}catch(n){try{t({protocol:C,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:x(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:C,kind:`close`,...n,requestId:e++},e=>{e.kind===`error`&&(r=Ee(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 Ae,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&&!M(t,e)?this.staleLifecycleResponse(e):{protocol:C,kind:`accepted`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,command:e.kind}}return{protocol:C,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:x(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:C,kind:`close`,...e,requestId:1},()=>void 0);return}let n=this.pendingOpens.get(e.sessionId);n&&M(n.identity,e)&&(n.canceled=!0)}readResourceUsage(){return j(this.executeArchive)}latchResourceFailure(e){let t=e instanceof n?e:b(e);t&&(this.resourceFailure??=t)}staleLifecycleResponse(e){return{protocol:C,kind:`error`,sessionId:e.sessionId,operationId:e.operationId,generation:e.generation,requestId:e.requestId,error:{message:`stale lifecycle targets another slide operation`,errorName:`PullSessionProtocolError`,code:`ooxml-stale-lifecycle`}}}};function Xe(e){return!!e&&typeof e==`object`&&e.protocol===`ooxml-pull-v1`}function Ze(e){if(!Number.isSafeInteger(e.sessionId)||e.sessionId<=0)throw RangeError(`session id must be a positive safe integer`);if(!Number.isSafeInteger(e.operationId)||e.operationId<=0)throw RangeError(`operation id must be a positive safe integer`);if(!Number.isSafeInteger(e.generation)||e.generation<=0)throw RangeError(`generation must be a positive safe integer`)}function M(e,t){return e.sessionId===t.sessionId&&e.operationId===t.operationId&&e.generation===t.generation}var N=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,P.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=F(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=F(r[0],r[1]).slice();return J.__wbindgen_free(r[0],r[1]*1,1),i}constructor(e,t,n,r){let i=$e(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,P.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=F(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=F(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=F(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=F(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=F(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&&(N.prototype[Symbol.dispose]=N.prototype.free);function Qe(){return{__proto__:null,\"./pptx_parser_bg.js\":{__proto__:null,__wbg___wbindgen_throw_6b64449b9b9ed33c:function(e,t){throw Error(R(e,t))},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(R(e,t))}finally{J.__wbindgen_free(n,r,1)}},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=H(n,J.__wbindgen_malloc,J.__wbindgen_realloc),i=q;L().setInt32(e+4,i,!0),L().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 P=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>J.__wbg_pptxarchive_free(e>>>0,1));function F(e,t){return e>>>=0,B().subarray(e/1,e/1+t)}let I=null;function L(){return(I===null||I.buffer.detached===!0||I.buffer.detached===void 0&&I.buffer!==J.memory.buffer)&&(I=new DataView(J.memory.buffer)),I}function R(e,t){return e>>>=0,et(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 $e(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 et(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 tt(e,t){return J=e.exports,I=null,z=null,J.__wbindgen_start(),J}async function nt(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 rt(e){if(J!==void 0)return J;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`));let t=Qe();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await nt(await e,t);return tt(n,r)}async function it(e){return J=void 0,I=null,z=null,rt(e)}const Y=new ce(rt,{freeArchive:e=>e.free(),reinit:it});let X=null,Z=`empty`;function at(){if(Z!==`empty`){let e=Error(`this PPTX worker already owns a presentation parse`);throw e.name=`PptxWorkerStateError`,Object.assign(e,{code:`ooxml-pptx-parse-already-started`})}Z=`opening`}const Q=new Ye(()=>Y.archive,(e,t,n)=>{if(X){if(e!==X.acceptedSlideCount)throw Error(`PPTX preflight expected slide ${X.acceptedSlideCount}, received ${e}`);return X.prepareSlide(t,n)}},e=>{let t=Y.archive;if(!t)throw Error(`Presentation not loaded`);return Y.run(()=>e(t))}),$=(e,t)=>self.postMessage(e,t);self.onmessage=async e=>{let t=e.data;if(Xe(t)){await Q.dispatchSafely(t,$);return}if(t.kind===`init`){Y.setWasmInput(ne(t.wasmUrl)??t.wasmUrl);return}let n=t.id,r=!1;try{if(t.kind===`openSlideSession`&&Q.reserveOpen(t),t.kind===`parse`&&(at(),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,...x(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 N(new Uint8Array(t.buffer),e,r,i);return Y.setArchive(n),JSON.parse(new TextDecoder().decode(n.presentation_bootstrap()))});X=new qe(a),$({kind:`presentationOpened`,id:n,bootstrap:a}),Z=`ready`;return}let e=Y.archive;if(!e)throw Error(`No pptx loaded`);if(t.kind===`finishPresentationPreflight`){if(!X)throw Error(`PPTX presentation preflight is not active`);let e=X.finish();X=null,$({kind:`presentationPreflightReady`,id:n,preflight:e});return}if(t.kind===`extractMedia`){let r=Y.run(()=>e.extract_media(t.path).buffer);$({kind:`mediaExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`extractImage`){let r=Y.run(()=>e.extract_image(t.path).buffer);$({kind:`imageExtracted`,id:n,bytes:r},[r]);return}if(t.kind===`resourceUsage`){$({kind:`resourceUsage`,id:n,usage:h(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,...x(e)})}catch{}}};", at = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", it], { type: "text/javascript;charset=utf-8" });
|
|
548
|
+
function ot(e) {
|
|
546
549
|
let t;
|
|
547
550
|
try {
|
|
548
|
-
if (t =
|
|
551
|
+
if (t = at && (self.URL || self.webkitURL).createObjectURL(at), !t) throw "";
|
|
549
552
|
let n = new Worker(t, {
|
|
550
553
|
type: "module",
|
|
551
554
|
name: e?.name
|
|
@@ -554,7 +557,7 @@ function tt(e) {
|
|
|
554
557
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
555
558
|
}), n;
|
|
556
559
|
} catch {
|
|
557
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
560
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(it), {
|
|
558
561
|
type: "module",
|
|
559
562
|
name: e?.name
|
|
560
563
|
});
|
|
@@ -562,24 +565,24 @@ function tt(e) {
|
|
|
562
565
|
}
|
|
563
566
|
//#endregion
|
|
564
567
|
//#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
|
|
565
|
-
var
|
|
566
|
-
function
|
|
568
|
+
var st = new URL("pptx_parser_bg.wasm", import.meta.url).href, K = 65536, ct = 16384, lt = new Set(["line", "straightconnector1"]);
|
|
569
|
+
function ut(e, t) {
|
|
567
570
|
let n = e.x + e.width / 2, r = e.y + e.height / 2, i = -e.rotation * Math.PI / 180, a = Math.cos(i), o = Math.sin(i), s = t.x - n, c = t.y - r, l = n + a * s - o * c, u = r + o * s + a * c;
|
|
568
571
|
return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
|
|
569
572
|
x: l,
|
|
570
573
|
y: u
|
|
571
574
|
};
|
|
572
575
|
}
|
|
573
|
-
function
|
|
576
|
+
function dt(e, t, n) {
|
|
574
577
|
let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
|
|
575
578
|
if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
|
|
576
579
|
let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
|
|
577
580
|
return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
|
|
578
581
|
}
|
|
579
|
-
function
|
|
582
|
+
function ft(e, t, n = 0) {
|
|
580
583
|
if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
|
|
581
|
-
let r =
|
|
582
|
-
if (e.type === "shape" && (
|
|
584
|
+
let r = ut(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
|
|
585
|
+
if (e.type === "shape" && (lt.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return dt(r, {
|
|
583
586
|
x: e.x,
|
|
584
587
|
y: e.y
|
|
585
588
|
}, {
|
|
@@ -589,7 +592,7 @@ function st(e, t, n = 0) {
|
|
|
589
592
|
let a = Math.min(e.x, e.x + e.width), o = Math.max(e.x, e.x + e.width), s = Math.min(e.y, e.y + e.height), c = Math.max(e.y, e.y + e.height);
|
|
590
593
|
return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
|
|
591
594
|
}
|
|
592
|
-
function*
|
|
595
|
+
function* pt(e) {
|
|
593
596
|
if (e) for (let t of e.paragraphs) {
|
|
594
597
|
let e = !0;
|
|
595
598
|
for (let n of t.runs) {
|
|
@@ -601,17 +604,17 @@ function* ct(e) {
|
|
|
601
604
|
}
|
|
602
605
|
}
|
|
603
606
|
}
|
|
604
|
-
function*
|
|
607
|
+
function* mt(e) {
|
|
605
608
|
if (e.type === "shape") {
|
|
606
|
-
yield*
|
|
609
|
+
yield* pt(e.textBody);
|
|
607
610
|
return;
|
|
608
611
|
}
|
|
609
612
|
if (e.type === "table") {
|
|
610
|
-
for (let t of e.rows) for (let e of t.cells) yield*
|
|
613
|
+
for (let t of e.rows) for (let e of t.cells) yield* pt(e.textBody);
|
|
611
614
|
return;
|
|
612
615
|
}
|
|
613
616
|
}
|
|
614
|
-
function
|
|
617
|
+
function ht(e, t) {
|
|
615
618
|
let n = Math.min(e.length, t);
|
|
616
619
|
if (n > 0 && n < e.length) {
|
|
617
620
|
let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
|
|
@@ -619,9 +622,9 @@ function ut(e, t) {
|
|
|
619
622
|
}
|
|
620
623
|
return e.slice(0, n);
|
|
621
624
|
}
|
|
622
|
-
function
|
|
625
|
+
function gt(e, t = ct) {
|
|
623
626
|
if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
624
|
-
let n = Math.min(
|
|
627
|
+
let n = Math.min(K, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : ht(r, n), a = r !== void 0 && i.length < r.length;
|
|
625
628
|
return {
|
|
626
629
|
...structuredClone(e),
|
|
627
630
|
...i === void 0 ? {} : { text: i },
|
|
@@ -631,7 +634,7 @@ function dt(e, t = rt) {
|
|
|
631
634
|
maxTextCharacters: n
|
|
632
635
|
};
|
|
633
636
|
}
|
|
634
|
-
function
|
|
637
|
+
function _t(e, t) {
|
|
635
638
|
let n = [], r = 0, i = !1, a = !1;
|
|
636
639
|
for (let o of e) {
|
|
637
640
|
if (a = !0, o.beginsPart && n.length > 0) {
|
|
@@ -641,7 +644,7 @@ function ft(e, t) {
|
|
|
641
644
|
}
|
|
642
645
|
n.push("\n"), r++;
|
|
643
646
|
}
|
|
644
|
-
let e = Math.max(0, t - r), s =
|
|
647
|
+
let e = Math.max(0, t - r), s = ht(o.text, e);
|
|
645
648
|
if (n.push(s), r += s.length, s.length < o.text.length) {
|
|
646
649
|
i = !0;
|
|
647
650
|
break;
|
|
@@ -656,16 +659,16 @@ function ft(e, t) {
|
|
|
656
659
|
textCharacters: 0
|
|
657
660
|
};
|
|
658
661
|
}
|
|
659
|
-
function
|
|
662
|
+
function vt(e, t, n, r = {}) {
|
|
660
663
|
if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
|
|
661
|
-
let i = r.maxTextCharacters ??
|
|
664
|
+
let i = r.maxTextCharacters ?? ct;
|
|
662
665
|
if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
663
|
-
let a = Math.min(
|
|
666
|
+
let a = Math.min(K, Math.floor(i)), o = r.tolerance ?? 0;
|
|
664
667
|
if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
|
|
665
668
|
for (let r = t.elements.length - 1; r >= 0; r--) {
|
|
666
669
|
let i = t.elements[r];
|
|
667
|
-
if (!
|
|
668
|
-
let s = i.type === "chart" ? ae(i.chart, a) :
|
|
670
|
+
if (!ft(i, n, o)) continue;
|
|
671
|
+
let s = i.type === "chart" ? ae(i.chart, a) : _t(mt(i), a);
|
|
669
672
|
return {
|
|
670
673
|
format: "pptx",
|
|
671
674
|
kind: "element",
|
|
@@ -707,9 +710,38 @@ function pt(e, t, n, r = {}) {
|
|
|
707
710
|
}
|
|
708
711
|
return null;
|
|
709
712
|
}
|
|
713
|
+
function yt(e, t) {
|
|
714
|
+
let n = new Set(t.filter((e) => e.length > 0));
|
|
715
|
+
if (n.size === 0) return Object.freeze([]);
|
|
716
|
+
let r = /* @__PURE__ */ new Map();
|
|
717
|
+
for (let [t, i] of e.elements.entries()) {
|
|
718
|
+
let a = i.id;
|
|
719
|
+
if (!a || !n.has(a)) continue;
|
|
720
|
+
let o = e.elementSources?.[t]?.origin ?? "unknown", s = o === "slide" ? 3 : o === "layout" ? 2 : +(o === "master"), c = r.get(a), l = c?.origin === "slide" ? 3 : c?.origin === "layout" ? 2 : +(c?.origin === "master");
|
|
721
|
+
c && l > s || r.set(a, Object.freeze({
|
|
722
|
+
elementId: a,
|
|
723
|
+
elementIndex: t,
|
|
724
|
+
origin: o,
|
|
725
|
+
elementType: i.type,
|
|
726
|
+
bounds: Object.freeze({
|
|
727
|
+
x: i.x,
|
|
728
|
+
y: i.y,
|
|
729
|
+
width: i.width,
|
|
730
|
+
height: i.height,
|
|
731
|
+
rotation: i.rotation,
|
|
732
|
+
flipH: i.flipH,
|
|
733
|
+
flipV: i.flipV
|
|
734
|
+
})
|
|
735
|
+
}));
|
|
736
|
+
}
|
|
737
|
+
return Object.freeze(t.flatMap((e) => {
|
|
738
|
+
let t = r.get(e);
|
|
739
|
+
return t ? [t] : [];
|
|
740
|
+
}));
|
|
741
|
+
}
|
|
710
742
|
//#endregion
|
|
711
743
|
//#region packages/pptx/src/presentation.ts
|
|
712
|
-
var
|
|
744
|
+
var q = class e {
|
|
713
745
|
_metrics = null;
|
|
714
746
|
_worker;
|
|
715
747
|
_bridge;
|
|
@@ -719,7 +751,7 @@ var Y = class e {
|
|
|
719
751
|
_slidePullClient = null;
|
|
720
752
|
_resourceFailure = null;
|
|
721
753
|
_slidePartIndex = null;
|
|
722
|
-
_rawParts = new
|
|
754
|
+
_rawParts = new Ce({
|
|
723
755
|
maxEntries: 64,
|
|
724
756
|
maxBytes: S
|
|
725
757
|
});
|
|
@@ -735,7 +767,7 @@ var Y = class e {
|
|
|
735
767
|
correlate: (e) => "protocol" in e && e.protocol === "ooxml-pull-v1" ? e.requestId : "id" in e ? e.id : void 0,
|
|
736
768
|
toError: (e) => !("protocol" in e) && e.kind === "error" ? b(e) : void 0
|
|
737
769
|
});
|
|
738
|
-
let r = new URL(n ??
|
|
770
|
+
let r = new URL(n ?? st, location.href).href;
|
|
739
771
|
this._bridge.post({
|
|
740
772
|
kind: "init",
|
|
741
773
|
wasmUrl: r
|
|
@@ -766,9 +798,9 @@ var Y = class e {
|
|
|
766
798
|
s = await e.arrayBuffer();
|
|
767
799
|
} else s = t;
|
|
768
800
|
s = ee(await ne(s, n.password)), a.setSourceBytes(s.byteLength), a.checkpoint("container ready");
|
|
769
|
-
let c = i === "worker" ? (await import("./render-worker-host-
|
|
801
|
+
let c = i === "worker" ? (await import("./render-worker-host-BNnXCtAu.js")).createRenderWorker() : new ot(), l = i === "worker" ? De(n) : void 0, u;
|
|
770
802
|
try {
|
|
771
|
-
return u = new e(c, i, n.wasmUrl), u._metrics = a, n.math && i === "worker" && !l?.math && console.warn("[ooxml] a custom math renderer cannot cross the worker boundary; equations will be skipped in mode: 'worker'. Use the math renderer from @silurus/ooxml/math."), n.threeD && i === "worker" && !l?.threeD && console.warn("[ooxml] a custom 3-D chart renderer cannot cross the worker boundary; charts use their 2-D family fallback in mode: 'worker'. Use the renderer from @silurus/ooxml/three-d."), u._math = i === "worker" ? void 0 : n.math, u._threeD = i === "worker" ? void 0 : n.threeD, n.regionMap && i === "worker" && !l?.regionMap && console.warn("[ooxml] a custom Region Map renderer cannot cross the worker boundary; geospatial charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/region-map."), u._regionMap = i === "worker" ? void 0 : n.regionMap, n.chartEx && i === "worker" && !l?.chartEx && console.warn("[ooxml] a custom ChartEx renderer cannot cross the worker boundary; ChartEx charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/chart-ex."), u._chartEx = i === "worker" ? void 0 : n.chartEx, await u._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e), l), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && u._preflight && (u._googleFontFaces = await
|
|
803
|
+
return u = new e(c, i, n.wasmUrl), u._metrics = a, n.math && i === "worker" && !l?.math && console.warn("[ooxml] a custom math renderer cannot cross the worker boundary; equations will be skipped in mode: 'worker'. Use the math renderer from @silurus/ooxml/math."), n.threeD && i === "worker" && !l?.threeD && console.warn("[ooxml] a custom 3-D chart renderer cannot cross the worker boundary; charts use their 2-D family fallback in mode: 'worker'. Use the renderer from @silurus/ooxml/three-d."), u._math = i === "worker" ? void 0 : n.math, u._threeD = i === "worker" ? void 0 : n.threeD, n.regionMap && i === "worker" && !l?.regionMap && console.warn("[ooxml] a custom Region Map renderer cannot cross the worker boundary; geospatial charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/region-map."), u._regionMap = i === "worker" ? void 0 : n.regionMap, n.chartEx && i === "worker" && !l?.chartEx && console.warn("[ooxml] a custom ChartEx renderer cannot cross the worker boundary; ChartEx charts use the unsupported-chart placeholder in mode: 'worker'. Use the renderer from @silurus/ooxml/chart-ex."), u._chartEx = i === "worker" ? void 0 : n.chartEx, await u._parse(s, r.policy, i === "worker" ? !!n.useGoogleFonts : !1, n.workerTimeoutMs, (e) => a.observeUsage(e), l), a.checkpoint("presentation preflight ready"), i === "main" && n.useGoogleFonts && u._preflight && (u._googleFontFaces = await xe(u._preflight.fontPreloadNames, o)), a.succeed({ slides: u.slideCount }), u;
|
|
772
804
|
} catch (e) {
|
|
773
805
|
let t = u;
|
|
774
806
|
throw te(c, t ? () => t.destroy() : void 0), e;
|
|
@@ -814,7 +846,7 @@ var Y = class e {
|
|
|
814
846
|
this._preflight = t((await this._bridge.request((e) => ({
|
|
815
847
|
kind: "finishPresentationPreflight",
|
|
816
848
|
id: e
|
|
817
|
-
}), void 0, { timeoutMs: o })).preflight), this._slides = new
|
|
849
|
+
}), void 0, { timeoutMs: o })).preflight), this._slides = new nt({
|
|
818
850
|
slideCount: this._preflight.slideCount,
|
|
819
851
|
maxCachedSlides: 8,
|
|
820
852
|
maxCachedStructuralBytes: p,
|
|
@@ -840,6 +872,9 @@ var Y = class e {
|
|
|
840
872
|
getNotes(e) {
|
|
841
873
|
return Number.isInteger(e) ? this._preflight?.slides[e]?.notes ?? null : null;
|
|
842
874
|
}
|
|
875
|
+
getComments(e) {
|
|
876
|
+
return Number.isInteger(e) ? this._preflight?.slides[e]?.comments ?? [] : [];
|
|
877
|
+
}
|
|
843
878
|
isHidden(e) {
|
|
844
879
|
return Number.isInteger(e) ? this._preflight?.slides[e]?.hidden ?? !1 : !1;
|
|
845
880
|
}
|
|
@@ -847,13 +882,13 @@ var Y = class e {
|
|
|
847
882
|
return (this._preflight?.slides ?? []).map((e) => e.partName);
|
|
848
883
|
}
|
|
849
884
|
_partIndex() {
|
|
850
|
-
return this._slidePartIndex ||=
|
|
885
|
+
return this._slidePartIndex ||= $e(this._partNames()), this._slidePartIndex;
|
|
851
886
|
}
|
|
852
887
|
getSlideIndexByPartName(e) {
|
|
853
888
|
return this._partIndex().get(e);
|
|
854
889
|
}
|
|
855
890
|
resolveInternalTarget(e, t = 0) {
|
|
856
|
-
return
|
|
891
|
+
return tt(e, this._partIndex(), t);
|
|
857
892
|
}
|
|
858
893
|
async renderSlide(e, t, r = {}) {
|
|
859
894
|
this._assertResourceHealthy();
|
|
@@ -944,7 +979,24 @@ var Y = class e {
|
|
|
944
979
|
options: n
|
|
945
980
|
}))).context;
|
|
946
981
|
if (!this._slides) throw Error("Presentation not loaded");
|
|
947
|
-
return await this._slides.withSlide(e, (r) =>
|
|
982
|
+
return await this._slides.withSlide(e, (r) => vt(e, r, t, n));
|
|
983
|
+
} catch (e) {
|
|
984
|
+
this._rethrowWithResourceFailure(e);
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
async getElementBoundsByIds(e, t) {
|
|
988
|
+
if (this._assertResourceHealthy(), !Number.isInteger(e) || e < 0 || e >= this.slideCount) throw Error(`Slide index ${e} out of range (count: ${this.slideCount})`);
|
|
989
|
+
let n = Object.freeze(t.filter((e) => typeof e == "string" && e.length > 0));
|
|
990
|
+
if (n.length === 0) return Object.freeze([]);
|
|
991
|
+
try {
|
|
992
|
+
if (this._mode === "worker") return (await this._bridge.request((t) => ({
|
|
993
|
+
kind: "resolveElementBounds",
|
|
994
|
+
id: t,
|
|
995
|
+
slideIndex: e,
|
|
996
|
+
elementIds: n
|
|
997
|
+
}))).bounds;
|
|
998
|
+
if (!this._slides) throw Error("Presentation not loaded");
|
|
999
|
+
return await this._slides.withSlide(e, (e) => yt(e, n));
|
|
948
1000
|
} catch (e) {
|
|
949
1001
|
this._rethrowWithResourceFailure(e);
|
|
950
1002
|
}
|
|
@@ -1026,7 +1078,7 @@ var Y = class e {
|
|
|
1026
1078
|
dim: n.dim,
|
|
1027
1079
|
onTextRun: n.onTextRun
|
|
1028
1080
|
});
|
|
1029
|
-
return await
|
|
1081
|
+
return await Ve(e, this._preflight.slides[t]?.mediaElements ?? [], {
|
|
1030
1082
|
width: i,
|
|
1031
1083
|
dpr: r,
|
|
1032
1084
|
slideWidthEmu: this.slideWidth,
|
|
@@ -1040,28 +1092,60 @@ var Y = class e {
|
|
|
1040
1092
|
}
|
|
1041
1093
|
}
|
|
1042
1094
|
destroy() {
|
|
1043
|
-
this._slidePullClient?.cancelAll(), this._bridge.terminate(), this._slides?.clear(), this._slides = null, this._slidePullClient = null, this._preflight = null, this._resourceFailure = null, this._slidePartIndex = null, this._rawParts.clear(), this._googleFontFaces.length > 0 && (
|
|
1095
|
+
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 && (be(this._googleFontFaces), this._googleFontFaces = []), f(this._fetchImage), d(this._fetchImage);
|
|
1044
1096
|
}
|
|
1045
1097
|
};
|
|
1046
1098
|
//#endregion
|
|
1047
1099
|
//#region packages/pptx/src/selection-context.ts
|
|
1048
|
-
function
|
|
1100
|
+
function bt(e, t, n, r, i = {}) {
|
|
1101
|
+
let a = je({
|
|
1102
|
+
id: e.id,
|
|
1103
|
+
author: e.author,
|
|
1104
|
+
date: e.date,
|
|
1105
|
+
text: e.text,
|
|
1106
|
+
status: e.status ?? "active"
|
|
1107
|
+
}, (e.replies ?? []).map((e) => ({
|
|
1108
|
+
id: e.id,
|
|
1109
|
+
author: e.author,
|
|
1110
|
+
date: e.date,
|
|
1111
|
+
text: e.text,
|
|
1112
|
+
status: e.status ?? "active"
|
|
1113
|
+
})), i.maxTextCharacters);
|
|
1114
|
+
return Object.freeze({
|
|
1115
|
+
format: "pptx",
|
|
1116
|
+
kind: "comment",
|
|
1117
|
+
slideIndex: t,
|
|
1118
|
+
commentIndex: n,
|
|
1119
|
+
occurrenceId: r,
|
|
1120
|
+
...e.id ? { commentId: e.id } : {},
|
|
1121
|
+
...Number.isFinite(e.x) && Number.isFinite(e.y) ? { point: Object.freeze({
|
|
1122
|
+
x: e.x,
|
|
1123
|
+
y: e.y
|
|
1124
|
+
}) } : {},
|
|
1125
|
+
thread: a.thread,
|
|
1126
|
+
truncated: a.truncated,
|
|
1127
|
+
truncationReasons: a.truncated ? ["text"] : [],
|
|
1128
|
+
textCharacters: a.textCharacters,
|
|
1129
|
+
maxTextCharacters: a.maxTextCharacters
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1132
|
+
function J(e) {
|
|
1049
1133
|
if (e === void 0 || !/^\d+$/.test(e)) return null;
|
|
1050
1134
|
let t = Number(e);
|
|
1051
1135
|
return Number.isSafeInteger(t) ? t : null;
|
|
1052
1136
|
}
|
|
1053
|
-
function
|
|
1137
|
+
function xt(e) {
|
|
1054
1138
|
for (let t = e; t; t = t.parentElement) {
|
|
1055
|
-
let e =
|
|
1139
|
+
let e = J(t.dataset.slideIndex);
|
|
1056
1140
|
if (e !== null) return e;
|
|
1057
1141
|
}
|
|
1058
1142
|
return null;
|
|
1059
1143
|
}
|
|
1060
|
-
function
|
|
1144
|
+
function Y(e, t, n = {}) {
|
|
1061
1145
|
let r = me(e, t, (e) => {
|
|
1062
|
-
let t =
|
|
1146
|
+
let t = xt(e), n = J(e.dataset.runIndex);
|
|
1063
1147
|
if (t === null || n === null) return null;
|
|
1064
|
-
let r =
|
|
1148
|
+
let r = J(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
|
|
1065
1149
|
return {
|
|
1066
1150
|
slideIndex: t,
|
|
1067
1151
|
runIndex: n,
|
|
@@ -1092,11 +1176,16 @@ function Z(e, t, n = {}) {
|
|
|
1092
1176
|
};
|
|
1093
1177
|
}
|
|
1094
1178
|
//#endregion
|
|
1179
|
+
//#region packages/pptx/src/focused-view-runtime.ts
|
|
1180
|
+
function X(e, t, n, r, i) {
|
|
1181
|
+
return r === "worker" ? e.renderSlideToBitmap(n, i) : e.renderSlide(t, n, i);
|
|
1182
|
+
}
|
|
1183
|
+
//#endregion
|
|
1095
1184
|
//#region packages/pptx/src/viewer.ts
|
|
1096
|
-
var
|
|
1185
|
+
var St = Symbol("PptxViewer.borrowedPresentation"), Z = {
|
|
1097
1186
|
color: "#ffffff",
|
|
1098
1187
|
opacity: .6
|
|
1099
|
-
},
|
|
1188
|
+
}, Ct = class e {
|
|
1100
1189
|
canvas;
|
|
1101
1190
|
wrapper;
|
|
1102
1191
|
canvasMount;
|
|
@@ -1130,12 +1219,12 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1130
1219
|
static fromPresentation(t, n, r = {}) {
|
|
1131
1220
|
return new e(t, {
|
|
1132
1221
|
...r,
|
|
1133
|
-
[
|
|
1222
|
+
[St]: n
|
|
1134
1223
|
});
|
|
1135
1224
|
}
|
|
1136
1225
|
constructor(e, t = {}) {
|
|
1137
1226
|
this.opts = t, this.canvas = e;
|
|
1138
|
-
let n = t[
|
|
1227
|
+
let n = t[St];
|
|
1139
1228
|
this.borrowed = n !== void 0, this._mode = O("PptxViewer", t.mode, n), this.presentationOwner = new T("PptxViewer", n ?? null, !1);
|
|
1140
1229
|
let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
|
|
1141
1230
|
if (!r) throw Error("PptxViewer requires a canvas with an active Window");
|
|
@@ -1149,14 +1238,14 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1149
1238
|
let a = new ue(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
|
|
1150
1239
|
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) => {
|
|
1151
1240
|
this._onElementClick(e).catch((e) => this._reportRenderError(e));
|
|
1152
|
-
}, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new
|
|
1241
|
+
}, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new Re(() => this.slideCount, (e) => this._collectSlideRuns(e));
|
|
1153
1242
|
}
|
|
1154
1243
|
async load(e) {
|
|
1155
1244
|
if (this.destroyed) throw Error("PptxViewer is destroyed");
|
|
1156
1245
|
if (this.borrowed) throw Error("PptxViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
1157
1246
|
let t = !1;
|
|
1158
1247
|
try {
|
|
1159
|
-
if (!await this.presentationOwner.replace(() =>
|
|
1248
|
+
if (!await this.presentationOwner.replace(() => q.load(e, {
|
|
1160
1249
|
password: this.opts.password,
|
|
1161
1250
|
useGoogleFonts: this.opts.useGoogleFonts,
|
|
1162
1251
|
maxZipEntryBytes: this.opts.maxZipEntryBytes,
|
|
@@ -1192,21 +1281,21 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1192
1281
|
await this.goToSlide(this._step(-1));
|
|
1193
1282
|
}
|
|
1194
1283
|
_step(e) {
|
|
1195
|
-
return this._hiddenMode === "skip" && this.engine ?
|
|
1284
|
+
return this._hiddenMode === "skip" && this.engine ? Oe(this.currentSlide, e, (e) => this.engine.isHidden(e), this.slideCount) : this.currentSlide + e;
|
|
1196
1285
|
}
|
|
1197
1286
|
_initialSlide() {
|
|
1198
|
-
return this._hiddenMode === "skip" && this.engine ?
|
|
1287
|
+
return this._hiddenMode === "skip" && this.engine ? ke(0, (e) => this.engine.isHidden(e), this.slideCount) : 0;
|
|
1199
1288
|
}
|
|
1200
1289
|
_dim() {
|
|
1201
1290
|
return {
|
|
1202
|
-
color: this.opts.hiddenSlideDim?.color ??
|
|
1203
|
-
opacity: this.opts.hiddenSlideDim?.opacity ??
|
|
1291
|
+
color: this.opts.hiddenSlideDim?.color ?? Z.color,
|
|
1292
|
+
opacity: this.opts.hiddenSlideDim?.opacity ?? Z.opacity
|
|
1204
1293
|
};
|
|
1205
1294
|
}
|
|
1206
1295
|
async setHiddenSlideMode(e) {
|
|
1207
1296
|
this._hiddenMode = e;
|
|
1208
1297
|
let t = this.currentSlide;
|
|
1209
|
-
e === "skip" && this.engine && (t =
|
|
1298
|
+
e === "skip" && this.engine && (t = ke(this.currentSlide, (e) => this.engine.isHidden(e), this.slideCount));
|
|
1210
1299
|
let n = t !== this.currentSlide;
|
|
1211
1300
|
n && this._invalidateElementSelection(!1), this.currentSlide = t, await this.renderCurrentSlide(), n && !this.destroyed && this._emitSelectionContextChange();
|
|
1212
1301
|
}
|
|
@@ -1216,7 +1305,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1216
1305
|
get visibleSlideCount() {
|
|
1217
1306
|
if (!this.engine) return 0;
|
|
1218
1307
|
let e = this.engine;
|
|
1219
|
-
return
|
|
1308
|
+
return Ae((t) => e.isHidden(t), this.slideCount);
|
|
1220
1309
|
}
|
|
1221
1310
|
get slideIndex() {
|
|
1222
1311
|
return this.currentSlide;
|
|
@@ -1232,7 +1321,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1232
1321
|
}
|
|
1233
1322
|
_naturalWidthPx() {
|
|
1234
1323
|
let e = this.engine?.slideWidth ?? 0;
|
|
1235
|
-
return e > 0 ? e /
|
|
1324
|
+
return e > 0 ? e / k : 0;
|
|
1236
1325
|
}
|
|
1237
1326
|
_targetWidth() {
|
|
1238
1327
|
if (this._scale === null) return this.opts.width ?? (this.canvas.offsetWidth || 960);
|
|
@@ -1258,7 +1347,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1258
1347
|
await this.setScale(ge(this.getScale()));
|
|
1259
1348
|
}
|
|
1260
1349
|
async zoomOut() {
|
|
1261
|
-
await this.setScale(
|
|
1350
|
+
await this.setScale(ye(this.getScale()));
|
|
1262
1351
|
}
|
|
1263
1352
|
async fitWidth() {
|
|
1264
1353
|
await this._fit("width");
|
|
@@ -1271,8 +1360,8 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1271
1360
|
let t = this.wrapper.parentElement;
|
|
1272
1361
|
if (!t) return;
|
|
1273
1362
|
let n = re({
|
|
1274
|
-
contentWidth: this.engine.slideWidth /
|
|
1275
|
-
contentHeight: this.engine.slideHeight /
|
|
1363
|
+
contentWidth: this.engine.slideWidth / k,
|
|
1364
|
+
contentHeight: this.engine.slideHeight / k,
|
|
1276
1365
|
containerWidth: t.clientWidth,
|
|
1277
1366
|
containerHeight: t.clientHeight
|
|
1278
1367
|
}, e);
|
|
@@ -1300,14 +1389,14 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1300
1389
|
}
|
|
1301
1390
|
this.handle = i;
|
|
1302
1391
|
} else if (o) {
|
|
1303
|
-
let i = await this.engine.
|
|
1392
|
+
let i = await X(this.engine, this.canvas, this.currentSlide, "worker", {
|
|
1304
1393
|
width: n,
|
|
1305
1394
|
dpr: r,
|
|
1306
1395
|
dim: t,
|
|
1307
1396
|
onTextRun: c
|
|
1308
1397
|
});
|
|
1309
1398
|
if (!this.renderDispatcher.commitBitmap(e, i)) return;
|
|
1310
|
-
} else if (await this.engine
|
|
1399
|
+
} else if (await X(this.engine, this.canvas, this.currentSlide, "main", {
|
|
1311
1400
|
width: n,
|
|
1312
1401
|
dpr: r,
|
|
1313
1402
|
onTextRun: c,
|
|
@@ -1322,7 +1411,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1322
1411
|
}
|
|
1323
1412
|
_buildHighlightLayer(e, t, n) {
|
|
1324
1413
|
let r = this.highlightLayer;
|
|
1325
|
-
r &&
|
|
1414
|
+
r && P(r, e, this._find.slideHighlights(this.currentSlide), t, n, (e) => this._measureForFont(e), this.opts.findHighlightColors);
|
|
1326
1415
|
}
|
|
1327
1416
|
_measureForFont(e) {
|
|
1328
1417
|
this._measureCtx ||= document.createElement("canvas").getContext("2d");
|
|
@@ -1354,7 +1443,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1354
1443
|
this._buildHighlightLayer(e, t, n);
|
|
1355
1444
|
}
|
|
1356
1445
|
_buildTextLayer(e, t, n, r) {
|
|
1357
|
-
|
|
1446
|
+
N(e, t, n, r, this._hyperlinkHandler(), this.currentSlide);
|
|
1358
1447
|
}
|
|
1359
1448
|
_hyperlinkHandler() {
|
|
1360
1449
|
if (this.opts.enableHyperlinks !== !1) return (e) => this._onHyperlinkClick(e);
|
|
@@ -1388,7 +1477,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1388
1477
|
}
|
|
1389
1478
|
getSelectionContext(e = {}) {
|
|
1390
1479
|
if (this.destroyed) throw Error("PptxViewer is destroyed");
|
|
1391
|
-
return (this.textLayer ?
|
|
1480
|
+
return (this.textLayer ? Y(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? gt(this.elementContext, e.maxTextCharacters) : null);
|
|
1392
1481
|
}
|
|
1393
1482
|
_emitSelectionContextChange() {
|
|
1394
1483
|
let e = this.getSelectionContext();
|
|
@@ -1429,7 +1518,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1429
1518
|
async _resolveContextAt(e) {
|
|
1430
1519
|
let t = this.engine;
|
|
1431
1520
|
if (this.destroyed || !t) return null;
|
|
1432
|
-
if (this.textLayer &&
|
|
1521
|
+
if (this.textLayer && Y(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
|
|
1433
1522
|
if (!this.opts.enableElementSelection) return this.getSelectionContext();
|
|
1434
1523
|
let n = this.canvas.getBoundingClientRect();
|
|
1435
1524
|
if (n.width <= 0 || n.height <= 0) return this._invalidateElementSelection(), null;
|
|
@@ -1442,7 +1531,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1442
1531
|
try {
|
|
1443
1532
|
c = await t.getElementContextAt(o, s, {
|
|
1444
1533
|
tolerance: this.elementHitTolerance / n.width * t.slideWidth,
|
|
1445
|
-
maxTextCharacters:
|
|
1534
|
+
maxTextCharacters: K
|
|
1446
1535
|
});
|
|
1447
1536
|
} catch (e) {
|
|
1448
1537
|
if (this.destroyed || a !== this.elementHitGeneration || o !== this.currentSlide || t !== this.engine) return null;
|
|
@@ -1453,7 +1542,11 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1453
1542
|
destroy() {
|
|
1454
1543
|
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());
|
|
1455
1544
|
}
|
|
1456
|
-
},
|
|
1545
|
+
}, wt = 150, Tt = "0 1px 3px rgba(0,0,0,0.2)", Q = 12, Et;
|
|
1546
|
+
function Dt() {
|
|
1547
|
+
return Et ??= import("./comment-ui-runtime-C1RV_3iu.js");
|
|
1548
|
+
}
|
|
1549
|
+
var $ = 440, Ot = 20, kt = Symbol("PptxScrollViewer.borrowedPresentation"), At = class e {
|
|
1457
1550
|
_presentationOwner;
|
|
1458
1551
|
get _pres() {
|
|
1459
1552
|
return this._presentationOwner.current;
|
|
@@ -1470,7 +1563,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1470
1563
|
_pendingScale = null;
|
|
1471
1564
|
_slots = /* @__PURE__ */ new Map();
|
|
1472
1565
|
_free = [];
|
|
1473
|
-
|
|
1566
|
+
_uniformSlideHeight = 0;
|
|
1474
1567
|
_lastRange = null;
|
|
1475
1568
|
_lastTopIndex = -1;
|
|
1476
1569
|
_scrollListener = null;
|
|
@@ -1478,7 +1571,16 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1478
1571
|
_selectionContextKey = "null";
|
|
1479
1572
|
_elementClickListener = null;
|
|
1480
1573
|
_contextMenuListener = null;
|
|
1574
|
+
_commentOutsidePointerListener = null;
|
|
1481
1575
|
_elementContext = null;
|
|
1576
|
+
_activeCommentId = null;
|
|
1577
|
+
_activeCommentSlide = null;
|
|
1578
|
+
_commentNavigationGeneration = 0;
|
|
1579
|
+
_commentUi = null;
|
|
1580
|
+
_commentGeometryScheduled = !1;
|
|
1581
|
+
_commentGeometryFrame = null;
|
|
1582
|
+
_pendingCommentGeometry = /* @__PURE__ */ new Map();
|
|
1583
|
+
_hasComments = !1;
|
|
1482
1584
|
_elementHitGeneration = 0;
|
|
1483
1585
|
_elementHitTolerance;
|
|
1484
1586
|
_destroyed = !1;
|
|
@@ -1491,13 +1593,13 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1491
1593
|
_prevBase = 0;
|
|
1492
1594
|
_lastFitWidth = 0;
|
|
1493
1595
|
_pageShadow;
|
|
1494
|
-
_find = new
|
|
1596
|
+
_find = new Re(() => this.slideCount, (e) => this._collectSlideRuns(e));
|
|
1495
1597
|
_findActive = !1;
|
|
1496
1598
|
_findMeasureCtx;
|
|
1497
1599
|
static fromPresentation(t, n, r = {}) {
|
|
1498
1600
|
return new e(t, {
|
|
1499
1601
|
...r,
|
|
1500
|
-
[
|
|
1602
|
+
[kt]: n
|
|
1501
1603
|
});
|
|
1502
1604
|
}
|
|
1503
1605
|
constructor(e, t = {}) {
|
|
@@ -1505,11 +1607,22 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1505
1607
|
this._container = e, this._opts = t;
|
|
1506
1608
|
let n = t.elementHitTolerance ?? 6;
|
|
1507
1609
|
if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
|
|
1508
|
-
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ??
|
|
1509
|
-
let r = t[
|
|
1510
|
-
this._borrowed = r !== void 0, r ? (this._presentationOwner = new T("PptxScrollViewer", r, !1), this._mode = O("PptxScrollViewer", t.mode, r)) : (this._presentationOwner = new T("PptxScrollViewer"), this._mode = O("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper),
|
|
1610
|
+
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? Tt;
|
|
1611
|
+
let r = t[kt];
|
|
1612
|
+
this._borrowed = r !== void 0, r ? (this._presentationOwner = new T("PptxScrollViewer", r, !1), this._mode = O("PptxScrollViewer", t.mode, r), this._hasComments = (t.comments === !0 || typeof t.comments == "object") && this._presentationHasComments(r)) : (this._presentationOwner = new T("PptxScrollViewer"), this._mode = O("PptxScrollViewer", t.mode, void 0)), this._wrapper = document.createElement("div"), this._wrapper.style.cssText = "position:relative;width:100%;height:100%;overflow:hidden;", this._scrollHost = document.createElement("div"), this._scrollHost.style.cssText = "position:absolute;inset:0;overflow:auto;", this._scrollHost.style.scrollbarGutter = "stable", t.background && (this._scrollHost.style.background = t.background), this._spacer = document.createElement("div"), this._spacer.style.cssText = "position:absolute;top:0;left:0;width:1px;height:0;pointer-events:none;", this._scrollHost.appendChild(this._spacer), this._wrapper.appendChild(this._scrollHost), this._container.appendChild(this._wrapper), this._commentsEnabled() && Dt().then((e) => {
|
|
1613
|
+
if (!this._destroyed) {
|
|
1614
|
+
this._commentUi = e;
|
|
1615
|
+
for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
|
|
1616
|
+
}
|
|
1617
|
+
}).catch((e) => this._reportRenderError(e)), t.enableTextSelection && (t.onSelectionContextChange || t.enableElementSelection) && (this._selectionChangeListener = () => this._emitSelectionContextChange(), this._wrapper.ownerDocument.addEventListener("selectionchange", this._selectionChangeListener)), t.enableElementSelection && (this._elementClickListener = (e) => {
|
|
1511
1618
|
this._onElementClick(e).catch((e) => this._reportRenderError(e));
|
|
1512
|
-
}, this._scrollHost.addEventListener("click", this._elementClickListener)), t.onContextMenu && (this._contextMenuListener = (e) => this._onContextMenu(e), this._scrollHost.addEventListener("contextmenu", this._contextMenuListener)), this._scrollListener = () => this._onScroll(), this._scrollHost.addEventListener("scroll", this._scrollListener),
|
|
1619
|
+
}, this._scrollHost.addEventListener("click", this._elementClickListener)), t.onContextMenu && (this._contextMenuListener = (e) => this._onContextMenu(e), this._scrollHost.addEventListener("contextmenu", this._contextMenuListener)), this._scrollListener = () => this._onScroll(), this._scrollHost.addEventListener("scroll", this._scrollListener), t.comments && (this._commentOutsidePointerListener = (e) => {
|
|
1620
|
+
if (!Ne(e, this._wrapper, "ooxmlCommentId") && this._activeCommentId !== null) {
|
|
1621
|
+
this._activeCommentId = null, this._activeCommentSlide = null;
|
|
1622
|
+
for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
|
|
1623
|
+
this._emitSelectionContextChange();
|
|
1624
|
+
}
|
|
1625
|
+
}, this._wrapper.ownerDocument.addEventListener("pointerdown", this._commentOutsidePointerListener)), this._opts.enableZoom !== !1 && (this._wheelListener = (e) => {
|
|
1513
1626
|
if (!(e.ctrlKey || e.metaKey) || (e.preventDefault(), e.deltaY === 0)) return;
|
|
1514
1627
|
let t = this._scrollHost.getBoundingClientRect(), n = e.clientX - t.left, r = e.clientY - t.top;
|
|
1515
1628
|
this._pendingZoomAnchor = Number.isFinite(n) && Number.isFinite(r) ? {
|
|
@@ -1523,7 +1636,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1523
1636
|
if (this._borrowed) throw Error("PptxScrollViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
1524
1637
|
let t = !1;
|
|
1525
1638
|
try {
|
|
1526
|
-
|
|
1639
|
+
let n = await this._presentationOwner.replace(() => q.load(e, {
|
|
1527
1640
|
password: this._opts.password,
|
|
1528
1641
|
useGoogleFonts: this._opts.useGoogleFonts,
|
|
1529
1642
|
maxZipEntryBytes: this._opts.maxZipEntryBytes,
|
|
@@ -1538,15 +1651,16 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1538
1651
|
chartEx: this._opts.chartEx,
|
|
1539
1652
|
mode: this._mode
|
|
1540
1653
|
}), (e) => {
|
|
1541
|
-
if (this._invalidateElementSelection(!1), t = !0, this._find.invalidate(), this._findActive = !1, e) {
|
|
1654
|
+
if (this._invalidateElementSelection(!1), t = !0, this._find.invalidate(), this._findActive = !1, this._activeCommentId = null, this._activeCommentSlide = null, this._hasComments = !1, e) {
|
|
1542
1655
|
for (let [e, t] of [...this._slots]) this._recycleSlot(e, t);
|
|
1543
1656
|
this._lastTopIndex = -1;
|
|
1544
1657
|
}
|
|
1545
|
-
})
|
|
1658
|
+
});
|
|
1659
|
+
if (!n) return;
|
|
1546
1660
|
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
1547
|
-
this._find.invalidate(), this._findActive = !1;
|
|
1548
|
-
let
|
|
1549
|
-
this._relayout(
|
|
1661
|
+
this._find.invalidate(), this._findActive = !1, this._activeCommentId = null, this._activeCommentSlide = null, this._hasComments = this._commentsEnabled() && this._presentationHasComments(n);
|
|
1662
|
+
let r = [];
|
|
1663
|
+
this._relayout(r), await Promise.all(r);
|
|
1550
1664
|
} catch (e) {
|
|
1551
1665
|
throw this._destroyed ? Error("PptxScrollViewer is destroyed") : e instanceof Error ? e : Error(String(e));
|
|
1552
1666
|
}
|
|
@@ -1556,21 +1670,52 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1556
1670
|
return this._pres?.slideCount ?? 0;
|
|
1557
1671
|
}
|
|
1558
1672
|
_slideWidthPx() {
|
|
1559
|
-
return this._pres.slideWidth /
|
|
1673
|
+
return this._pres.slideWidth / k * this._scale;
|
|
1560
1674
|
}
|
|
1561
1675
|
_slideHeightPx() {
|
|
1562
|
-
return this._pres.slideHeight /
|
|
1676
|
+
return this._pres.slideHeight / k * this._scale;
|
|
1563
1677
|
}
|
|
1564
1678
|
_fitWidthPx() {
|
|
1565
1679
|
if (this._opts.width && this._opts.width > 0) return this._opts.width;
|
|
1566
1680
|
let e = this._scrollHost.clientWidth || this._container.clientWidth;
|
|
1567
1681
|
if (e <= 0) return 0;
|
|
1568
1682
|
let { left: t, right: n } = this._padH(), r = e - t - n;
|
|
1569
|
-
|
|
1683
|
+
if (r <= 0) return 0;
|
|
1684
|
+
let i = this._pres ? this._pres.slideWidth / k : 0, a = this._hasCommentMargin() && i > 0 ? r * i / (i + Q + $) : r;
|
|
1685
|
+
return a > 0 ? a : 0;
|
|
1686
|
+
}
|
|
1687
|
+
_commentMarginExtent() {
|
|
1688
|
+
return this._hasCommentMargin() ? (Q + $) * this._commentZoom() : 0;
|
|
1689
|
+
}
|
|
1690
|
+
_hasCommentMargin() {
|
|
1691
|
+
return this._commentsEnabled() && this._hasComments && this._commentsOptions()?.cards !== !1;
|
|
1692
|
+
}
|
|
1693
|
+
_commentZoom() {
|
|
1694
|
+
return this._scaleEstablished ? this._scale : 1;
|
|
1695
|
+
}
|
|
1696
|
+
_commentsEnabled() {
|
|
1697
|
+
return this._opts.comments === !0 || typeof this._opts.comments == "object";
|
|
1698
|
+
}
|
|
1699
|
+
_commentsOptions() {
|
|
1700
|
+
return typeof this._opts.comments == "object" ? this._opts.comments : void 0;
|
|
1701
|
+
}
|
|
1702
|
+
_commentSide() {
|
|
1703
|
+
let e = this._commentsOptions()?.side;
|
|
1704
|
+
return e === "left" || e === "right" ? e : (this._container.ownerDocument.defaultView?.getComputedStyle?.(this._container).direction || this._container.dir || this._container.style.direction) === "rtl" ? "left" : "right";
|
|
1705
|
+
}
|
|
1706
|
+
_syncCommentMarginGeometry(e) {
|
|
1707
|
+
if (!e) return;
|
|
1708
|
+
let t = this._commentZoom(), n = `calc(100% + ${Q * t}px)`;
|
|
1709
|
+
e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${Ot}px`, e.dataset.ooxmlCommentZoom = String(t);
|
|
1710
|
+
}
|
|
1711
|
+
_presentationHasComments(e) {
|
|
1712
|
+
let t = this._commentsOptions()?.includeResolved === !0;
|
|
1713
|
+
for (let n = 0; n < e.slideCount; n++) if (e.getComments(n).some((e) => t || e.status !== "resolved" && e.status !== "closed")) return !0;
|
|
1714
|
+
return !1;
|
|
1570
1715
|
}
|
|
1571
1716
|
_baseScale() {
|
|
1572
1717
|
if (!this._pres || this._pres.slideCount === 0) return 0;
|
|
1573
|
-
let e = this._fitWidthPx(), t = this._pres.slideWidth /
|
|
1718
|
+
let e = this._fitWidthPx(), t = this._pres.slideWidth / k;
|
|
1574
1719
|
return e <= 0 || t <= 0 ? 0 : e / t;
|
|
1575
1720
|
}
|
|
1576
1721
|
relayout() {
|
|
@@ -1591,8 +1736,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1591
1736
|
}
|
|
1592
1737
|
}
|
|
1593
1738
|
_recomputeHeights() {
|
|
1594
|
-
|
|
1595
|
-
this._heights = Array(e).fill(t);
|
|
1739
|
+
this._uniformSlideHeight = this._slideHeightPx();
|
|
1596
1740
|
}
|
|
1597
1741
|
_gap() {
|
|
1598
1742
|
return this._opts.gap ?? 16;
|
|
@@ -1617,19 +1761,20 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1617
1761
|
right: this._opts.paddingRight ?? e
|
|
1618
1762
|
};
|
|
1619
1763
|
}
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1764
|
+
_slideOffset(e) {
|
|
1765
|
+
return this._pad().leading + e * (this._uniformSlideHeight + this._gap());
|
|
1766
|
+
}
|
|
1767
|
+
_slideIndexAtOffset(e) {
|
|
1768
|
+
return Me(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, 0, 0, this._pad()).topIndex;
|
|
1769
|
+
}
|
|
1770
|
+
_rangeAt(e, t) {
|
|
1771
|
+
return Me(this._pres?.slideCount ?? 0, this._uniformSlideHeight, this._gap(), e, this._scrollHost.clientHeight, t, this._pad());
|
|
1627
1772
|
}
|
|
1628
1773
|
_range() {
|
|
1629
|
-
return
|
|
1774
|
+
return this._rangeAt(this._scrollHost.scrollTop, this._overscan());
|
|
1630
1775
|
}
|
|
1631
1776
|
_mediaRange() {
|
|
1632
|
-
return
|
|
1777
|
+
return this._rangeAt(this._scrollHost.scrollTop, this._mediaOverscan());
|
|
1633
1778
|
}
|
|
1634
1779
|
_rangeContains(e, t) {
|
|
1635
1780
|
return t >= e.start && t <= e.end;
|
|
@@ -1640,24 +1785,24 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1640
1785
|
}
|
|
1641
1786
|
_syncSpacerWidth() {
|
|
1642
1787
|
let { left: e, right: t } = this._padH();
|
|
1643
|
-
this._spacer.style.width = `${this._slideWidthPx() + e + t}px`;
|
|
1788
|
+
this._spacer.style.width = `${this._slideWidthPx() + this._commentMarginExtent() + e + t}px`;
|
|
1644
1789
|
}
|
|
1645
1790
|
_onScroll() {
|
|
1646
|
-
!this._pres || !this._scaleEstablished || this._mountVisible();
|
|
1791
|
+
!this._pres || !this._scaleEstablished || this._mountVisible(void 0, !1);
|
|
1647
1792
|
}
|
|
1648
|
-
_mountVisible(e) {
|
|
1793
|
+
_mountVisible(e, t = !0) {
|
|
1649
1794
|
if (!this._pres || this._pres.slideCount === 0) return;
|
|
1650
|
-
let
|
|
1651
|
-
this._lastRange =
|
|
1652
|
-
for (let [e,
|
|
1653
|
-
for (let
|
|
1795
|
+
let n = this._range(), r = this._opts.enableMediaPlayback ? this._mediaRange() : null;
|
|
1796
|
+
this._lastRange = n;
|
|
1797
|
+
for (let [e, t] of [...this._slots]) (e < n.start || e > n.end) && this._recycleSlot(e, t);
|
|
1798
|
+
for (let i = n.start; i <= n.end; i++) if (this._slots.has(i)) t && this._positionSlot(this._slots.get(i), i, n);
|
|
1654
1799
|
else {
|
|
1655
|
-
let
|
|
1656
|
-
this._positionSlot(
|
|
1657
|
-
let a = this._renderSlot(
|
|
1800
|
+
let t = this._acquireSlot();
|
|
1801
|
+
this._positionSlot(t, i, n), this._slots.set(i, t), this._redrawSlotComments(i, t);
|
|
1802
|
+
let a = this._renderSlot(i, t, !!r && this._rangeContains(r, i), e === void 0);
|
|
1658
1803
|
e && a && e.push(a);
|
|
1659
1804
|
}
|
|
1660
|
-
|
|
1805
|
+
r && this._syncMediaPlayback(r), n.topIndex !== this._lastTopIndex && (this._lastTopIndex = n.topIndex, this._opts.onVisibleSlideChange?.(n.topIndex, this._pres.slideCount));
|
|
1661
1806
|
}
|
|
1662
1807
|
_applyPageShadow(e) {
|
|
1663
1808
|
this._pageShadow !== !1 && (e.style.boxShadow = this._pageShadow);
|
|
@@ -1673,13 +1818,22 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1673
1818
|
this._opts.enableTextSelection && (r = document.createElement("div"), r.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;user-select:text;-webkit-user-select:text;", t.appendChild(r));
|
|
1674
1819
|
let i = document.createElement("div");
|
|
1675
1820
|
i.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;", t.appendChild(i);
|
|
1676
|
-
let a =
|
|
1821
|
+
let a = null, o = null, s = null;
|
|
1822
|
+
this._commentsEnabled() && this._hasComments && (a = document.createElement("div"), a.style.cssText = "position:absolute;inset:0;overflow:hidden;pointer-events:none;", t.appendChild(a), this._hasCommentMargin() && (o = document.createElement("div"), o.style.cssText = "position:absolute;top:0;height:100%;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;pointer-events:auto;", this._syncCommentMarginGeometry(o), this._commentsOptions()?.connectors !== void 0 && (s = document.createElement("div"), s.style.cssText = "position:absolute;top:0;left:0;overflow:visible;pointer-events:none;", t.appendChild(s)), t.appendChild(o)));
|
|
1823
|
+
let c = de(t, this._opts.enableElementSelection === !0);
|
|
1677
1824
|
return this._scrollHost.appendChild(t), {
|
|
1678
1825
|
wrapper: t,
|
|
1679
1826
|
canvas: n,
|
|
1680
1827
|
textLayer: r,
|
|
1681
1828
|
highlightLayer: i,
|
|
1682
|
-
elementLayer:
|
|
1829
|
+
elementLayer: c,
|
|
1830
|
+
commentMarkerLayer: a,
|
|
1831
|
+
commentMargin: o,
|
|
1832
|
+
commentDecorationLayer: s,
|
|
1833
|
+
commentElementBounds: Object.freeze([]),
|
|
1834
|
+
commentGeometry: null,
|
|
1835
|
+
commentAnchorSlide: -1,
|
|
1836
|
+
commentAnchorGeneration: 0,
|
|
1683
1837
|
renderedSlide: -1,
|
|
1684
1838
|
renderedScale: -1,
|
|
1685
1839
|
dispatcher: new D(n, this._mode === "worker"),
|
|
@@ -1690,14 +1844,18 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1690
1844
|
};
|
|
1691
1845
|
}
|
|
1692
1846
|
_recycleSlot(e, t) {
|
|
1693
|
-
this._slots.delete(e), t.renderGeneration++, t.presentationGeneration++, t.presentationHandle?.destroy(), t.presentationHandle = null, t.mediaInteractive = !1, t.dispatcher.destroy(), this._destroyed || (t.dispatcher = new D(t.canvas, this._mode === "worker")), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", E(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
|
|
1847
|
+
this._slots.delete(e), t.renderGeneration++, t.presentationGeneration++, t.presentationHandle?.destroy(), t.presentationHandle = null, t.mediaInteractive = !1, t.dispatcher.destroy(), this._destroyed || (t.dispatcher = new D(t.canvas, this._mode === "worker")), t.textLayer && (t.textLayer.innerHTML = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), t.highlightLayer.innerHTML = "", t.highlightLayer.style.transform = "", t.highlightLayer.style.transformOrigin = "", t.commentMarkerLayer && (t.commentMarkerLayer.replaceChildren(), t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (this._commentUi?.disposeReadOnlyCommentMargin(t.commentMargin), this._commentUi || t.commentMargin.replaceChildren(), t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (this._commentUi?.disposeReadOnlyCommentDecoration(t.commentDecorationLayer), this._commentUi || t.commentDecorationLayer.replaceChildren(), t.commentDecorationLayer.style.visibility = ""), t.commentElementBounds = Object.freeze([]), t.commentGeometry = null, t.commentAnchorSlide = -1, t.commentAnchorGeneration++, E(t.elementLayer, null), t.canvas.style.height = "", t.renderedSlide = -1, t.renderedScale = -1, t.wrapper.remove(), this._free.push(t);
|
|
1694
1848
|
}
|
|
1695
1849
|
_positionSlot(e, t, n) {
|
|
1696
|
-
e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${
|
|
1850
|
+
e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${this._slideOffset(t)}px`;
|
|
1697
1851
|
let r = this._slideWidthPx();
|
|
1698
|
-
e.wrapper.style.width = `${r}px`, e.wrapper.style.height = `${this._slideHeightPx()}px`, this.
|
|
1699
|
-
|
|
1700
|
-
|
|
1852
|
+
if (e.wrapper.style.width = `${r}px`, e.wrapper.style.height = `${this._slideHeightPx()}px`, this._syncCommentMarginGeometry(e.commentMargin), e.commentDecorationLayer) {
|
|
1853
|
+
let t = this._commentMarginExtent();
|
|
1854
|
+
e.commentDecorationLayer.style.left = this._commentSide() === "left" ? `${-t}px` : "0px", e.commentDecorationLayer.style.width = `${r + t}px`, e.commentDecorationLayer.style.height = `${this._slideHeightPx()}px`;
|
|
1855
|
+
}
|
|
1856
|
+
this._redrawElementOutlineForSlot(t, e);
|
|
1857
|
+
let { left: i } = this._padH(), a = this._scrollHost.clientWidth, o = this._commentMarginExtent(), s = r + o, c = Math.max(i, (a - s) / 2);
|
|
1858
|
+
e.wrapper.style.left = `${c + (this._commentSide() === "left" ? o : 0)}px`;
|
|
1701
1859
|
}
|
|
1702
1860
|
_dpr() {
|
|
1703
1861
|
return this._opts.dpr ?? (typeof window < "u" && window.devicePixelRatio || 1);
|
|
@@ -1709,12 +1867,12 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1709
1867
|
if (this._opts.enableMediaPlayback && n) return t.mediaInteractive = !0, this._renderInteractiveSlot(e, t, o, a, c, s, r);
|
|
1710
1868
|
if (t.mediaInteractive = !1, this._mode === "worker") return this._renderSlotBitmap(e, t, o, a, c, i, l, u, r);
|
|
1711
1869
|
let d = [], f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = p ? (e) => d.push(e) : void 0, h = t.canvas;
|
|
1712
|
-
return this._pres
|
|
1870
|
+
return X(this._pres, h, e, "main", {
|
|
1713
1871
|
width: o,
|
|
1714
1872
|
dpr: a,
|
|
1715
1873
|
onTextRun: m
|
|
1716
1874
|
}).then(() => {
|
|
1717
|
-
i !== t.renderGeneration || !l.isCurrent(u) || h !== t.canvas || s !== this._renderEpoch || this._slots.get(e) !== t || t.renderedSlide !== e || (t.renderedScale = c, f && t.textLayer &&
|
|
1875
|
+
i !== t.renderGeneration || !l.isCurrent(u) || h !== t.canvas || s !== this._renderEpoch || this._slots.get(e) !== t || t.renderedSlide !== e || (t.renderedScale = c, f && t.textLayer && N(t.textLayer, d, Math.round(o), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), p && this._refreshFindRuns(e, d), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t));
|
|
1718
1876
|
}).catch((n) => {
|
|
1719
1877
|
if (i === t.renderGeneration && l.isCurrent(u) && h === t.canvas && s === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e) if (r) this._reportRenderError(n);
|
|
1720
1878
|
else throw n;
|
|
@@ -1737,7 +1895,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1737
1895
|
r.destroy();
|
|
1738
1896
|
return;
|
|
1739
1897
|
}
|
|
1740
|
-
t.presentationHandle = r, t.renderedScale = i, l && t.textLayer &&
|
|
1898
|
+
t.presentationHandle = r, t.renderedScale = i, l && t.textLayer && N(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
|
|
1741
1899
|
}).catch((e) => {
|
|
1742
1900
|
if (s === t.presentationGeneration) if (o) this._reportRenderError(e);
|
|
1743
1901
|
else throw e;
|
|
@@ -1760,7 +1918,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1760
1918
|
this._slideInFlight.add(e);
|
|
1761
1919
|
let u = t.canvas, d = !1, f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = [];
|
|
1762
1920
|
try {
|
|
1763
|
-
let c = await this._pres
|
|
1921
|
+
let c = await X(this._pres, u, e, "worker", {
|
|
1764
1922
|
width: n,
|
|
1765
1923
|
dpr: r,
|
|
1766
1924
|
onTextRun: p ? (e) => m.push(e) : void 0
|
|
@@ -1773,7 +1931,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1773
1931
|
cssWidth: Math.round(c.width / r),
|
|
1774
1932
|
cssHeight: Math.round(c.height / r)
|
|
1775
1933
|
})) return;
|
|
1776
|
-
t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", f &&
|
|
1934
|
+
t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", f && N(t.textLayer, m, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), p && this._refreshFindRuns(e, m), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t), d = !0;
|
|
1777
1935
|
} catch (n) {
|
|
1778
1936
|
if (a === t.renderGeneration && o.isCurrent(s) && u === t.canvas && l === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e) if (c) this._reportRenderError(n);
|
|
1779
1937
|
else throw n;
|
|
@@ -1790,16 +1948,16 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1790
1948
|
return;
|
|
1791
1949
|
}
|
|
1792
1950
|
if (r === this._scale) return;
|
|
1793
|
-
let a = this._scale, o = i ? i.y : 0, s = this.
|
|
1794
|
-
|
|
1795
|
-
let
|
|
1951
|
+
let a = this._scale, o = i ? i.y : 0, s = this._scrollHost.scrollTop, c = s + o, l = this._slideIndexAtOffset(c), u = this._uniformSlideHeight, d = u > 0 ? (c - this._slideOffset(l)) / u : 0;
|
|
1952
|
+
d = Math.min(1, Math.max(0, d));
|
|
1953
|
+
let f = this._padH().left, p = this._scrollHost.scrollLeft || 0;
|
|
1796
1954
|
this._renderEpoch++, this._scale = r, this._recomputeHeights();
|
|
1797
|
-
let
|
|
1798
|
-
this._spacer.style.height = `${
|
|
1799
|
-
let
|
|
1800
|
-
if (this._scrollHost.scrollTop = Math.min(
|
|
1955
|
+
let m = this._rangeAt(0, this._overscan());
|
|
1956
|
+
this._spacer.style.height = `${m.totalHeight}px`, this._syncSpacerWidth();
|
|
1957
|
+
let h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._slideOffset(l) + d * this._uniformSlideHeight, _ = c < this._slideOffset(0) ? s : g - o;
|
|
1958
|
+
if (this._scrollHost.scrollTop = Math.min(h, Math.max(0, _)), i) {
|
|
1801
1959
|
let e = Math.max(0, (this._spacer.offsetWidth || 0) - this._scrollHost.clientWidth);
|
|
1802
|
-
this._scrollHost.scrollLeft = ie(
|
|
1960
|
+
this._scrollHost.scrollLeft = ie(p, i.x - f, a, r, { maxScroll: e });
|
|
1803
1961
|
}
|
|
1804
1962
|
this._previewVisible(), this._scheduleSettle(), this._opts.onScaleChange?.(r);
|
|
1805
1963
|
}
|
|
@@ -1810,7 +1968,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1810
1968
|
this.setScale(ge(this.getScale()));
|
|
1811
1969
|
}
|
|
1812
1970
|
zoomOut() {
|
|
1813
|
-
this.setScale(
|
|
1971
|
+
this.setScale(ye(this.getScale()));
|
|
1814
1972
|
}
|
|
1815
1973
|
fitWidth() {
|
|
1816
1974
|
this._fit("width");
|
|
@@ -1821,8 +1979,8 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1821
1979
|
_fit(e) {
|
|
1822
1980
|
if (!this._pres || this._pres.slideCount === 0) return;
|
|
1823
1981
|
let t = re({
|
|
1824
|
-
contentWidth: this._pres.slideWidth /
|
|
1825
|
-
contentHeight: this._pres.slideHeight /
|
|
1982
|
+
contentWidth: this._pres.slideWidth / k,
|
|
1983
|
+
contentHeight: this._pres.slideHeight / k,
|
|
1826
1984
|
containerWidth: this._fitWidthPx(),
|
|
1827
1985
|
containerHeight: this._scrollHost.clientHeight
|
|
1828
1986
|
}, e);
|
|
@@ -1838,7 +1996,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1838
1996
|
if (r) this._previewSlot(r, n, e);
|
|
1839
1997
|
else {
|
|
1840
1998
|
let r = this._acquireSlot();
|
|
1841
|
-
this._positionSlot(r, n, e), this._slots.set(n, r), this._renderSlot(n, r, !!t && this._rangeContains(t, n));
|
|
1999
|
+
this._positionSlot(r, n, e), this._slots.set(n, r), this._redrawSlotComments(n, r), this._renderSlot(n, r, !!t && this._rangeContains(t, n));
|
|
1842
2000
|
}
|
|
1843
2001
|
}
|
|
1844
2002
|
t && this._syncMediaPlayback(t), e.topIndex !== this._lastTopIndex && (this._lastTopIndex = e.topIndex, this._opts.onVisibleSlideChange?.(e.topIndex, this._pres.slideCount));
|
|
@@ -1848,11 +2006,19 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1848
2006
|
let t = this._scale / e.renderedScale;
|
|
1849
2007
|
e.textLayer.style.transformOrigin = "0 0", e.textLayer.style.transform = `scale(${t})`;
|
|
1850
2008
|
}
|
|
2009
|
+
if (e.renderedScale > 0) {
|
|
2010
|
+
let t = this._scale / e.renderedScale, n = Math.round(t * 1e6) / 1e6;
|
|
2011
|
+
e.commentMargin && this._commentUi?.previewReadOnlyCommentMargin(e.commentMargin, t);
|
|
2012
|
+
for (let t of e.commentMarkerLayer?.children ?? []) t.dataset.ooxmlCommentMarker !== void 0 && (t.style.transform = `translate(-50%,-50%) scale(${n})`);
|
|
2013
|
+
e.commentMarkerLayer && (e.commentMarkerLayer.style.visibility = ""), e.commentMargin && (e.commentMargin.style.visibility = ""), e.commentDecorationLayer && (e.commentDecorationLayer.style.visibility = "");
|
|
2014
|
+
return;
|
|
2015
|
+
}
|
|
2016
|
+
e.commentMarkerLayer && (e.commentMarkerLayer.style.visibility = "hidden"), e.commentMargin && (e.commentMargin.style.visibility = "hidden"), e.commentDecorationLayer && (e.commentDecorationLayer.style.visibility = "hidden");
|
|
1851
2017
|
}
|
|
1852
2018
|
_scheduleSettle() {
|
|
1853
2019
|
this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
|
|
1854
2020
|
this._settleTimer = null, this._settleRender();
|
|
1855
|
-
},
|
|
2021
|
+
}, wt);
|
|
1856
2022
|
}
|
|
1857
2023
|
_settleRender() {
|
|
1858
2024
|
if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
|
|
@@ -1874,7 +2040,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1874
2040
|
let o = document.createElement("canvas"), s = ++t.renderGeneration;
|
|
1875
2041
|
o.style.cssText = "display:block;background:#fff;", this._applyPageShadow(o);
|
|
1876
2042
|
let c = new D(o, !1), l = c.begin(), u = [], d = !!this._opts.enableTextSelection && !!t.textLayer, f = d || this._findActive, p = f ? (e) => u.push(e) : void 0;
|
|
1877
|
-
this._pres
|
|
2043
|
+
X(this._pres, o, e, "main", {
|
|
1878
2044
|
width: r,
|
|
1879
2045
|
dpr: n,
|
|
1880
2046
|
onTextRun: p
|
|
@@ -1884,7 +2050,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1884
2050
|
return;
|
|
1885
2051
|
}
|
|
1886
2052
|
let n = t.canvas;
|
|
1887
|
-
t.dispatcher.destroy(), t.wrapper.insertBefore(o, n), n.remove(), t.canvas = o, t.dispatcher = c, t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", d &&
|
|
2053
|
+
t.dispatcher.destroy(), t.wrapper.insertBefore(o, n), n.remove(), t.canvas = o, t.dispatcher = c, t.renderedScale = i, t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", d && N(t.textLayer, u, Math.round(r), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), f && this._refreshFindRuns(e, u), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
|
|
1888
2054
|
}).catch((n) => {
|
|
1889
2055
|
s === t.renderGeneration && c.isCurrent(l) && a === this._renderEpoch && this._slots.get(e) === t && t.renderedSlide === e && this._reportRenderError(n), c.destroy();
|
|
1890
2056
|
});
|
|
@@ -1907,19 +2073,65 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1907
2073
|
return;
|
|
1908
2074
|
}
|
|
1909
2075
|
let d = t.canvas, f = t.presentationHandle;
|
|
1910
|
-
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new D(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l &&
|
|
2076
|
+
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new D(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l && N(t.textLayer, c, Math.round(n), Math.round(this._slideHeightPx()), this._hyperlinkHandler(), e)), u && this._refreshFindRuns(e, c), this._commitSlotComments(e, t), this._redrawSlotHighlights(e, t);
|
|
1911
2077
|
}).catch((e) => {
|
|
1912
2078
|
o === t.presentationGeneration && this._reportRenderError(e);
|
|
1913
2079
|
});
|
|
1914
2080
|
}
|
|
1915
2081
|
scrollToSlide(e, t) {
|
|
1916
2082
|
if (!this._pres || this._pres.slideCount === 0 || !this._scaleEstablished) return;
|
|
1917
|
-
let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r =
|
|
2083
|
+
let n = Math.max(0, Math.min(e, this._pres.slideCount - 1)), r = this._rangeAt(0, this._overscan()), i = this._slideOffset(n), a = Math.max(0, r.totalHeight - this._scrollHost.clientHeight), o = Math.min(a, Math.max(0, i)), s = this._scrollHost;
|
|
1918
2084
|
typeof s.scrollTo == "function" ? s.scrollTo({
|
|
1919
2085
|
top: o,
|
|
1920
2086
|
behavior: t?.behavior ?? "auto"
|
|
1921
2087
|
}) : this._scrollHost.scrollTop = o, this._mountVisible();
|
|
1922
2088
|
}
|
|
2089
|
+
_scrollToSlideCommentTarget(e, t, n, r) {
|
|
2090
|
+
if (!this._pres) return !1;
|
|
2091
|
+
let i = this._slots.get(e), a = new Map((i?.commentElementBounds ?? []).map((e) => [e.elementId, e.bounds])), o = r ?? (t.anchors ?? []).flatMap((e) => {
|
|
2092
|
+
if (e.type !== "drawingElement" && e.type !== "textRange" || !e.elementId) return [];
|
|
2093
|
+
let t = a.get(e.elementId);
|
|
2094
|
+
return t ? [t] : [];
|
|
2095
|
+
})[0], s = t.anchors ?? [], c = Number.isFinite(t.x) && Number.isFinite(t.y) && (s.length === 0 || s.some((e) => e.type === "slide"));
|
|
2096
|
+
if (!o && !c) return !1;
|
|
2097
|
+
let l = o ? o.x + (c ? t.x : o.width) : t.x, u = o ? o.y + (c ? t.y : 0) : t.y, d = this._slideWidthPx(), f = this._commentMarginExtent(), { left: p } = this._padH(), m = Math.max(p, (this._scrollHost.clientWidth - d - f) / 2) + (this._commentSide() === "left" ? f : 0), h = this._rangeAt(0, this._overscan()), g = Math.max(0, h.totalHeight - this._scrollHost.clientHeight), _ = this._spacer.offsetWidth || Number.parseFloat(this._spacer.style.width) || 0, v = Math.max(0, _ - this._scrollHost.clientWidth), y = l / k * this._scale, b = u / k * this._scale, x = Math.min(g, Math.max(0, this._slideOffset(e) + b - this._scrollHost.clientHeight / 2)), S = Math.min(v, Math.max(0, m + y - this._scrollHost.clientWidth / 2)), C = this._scrollHost;
|
|
2098
|
+
return typeof C.scrollTo == "function" ? C.scrollTo({
|
|
2099
|
+
top: x,
|
|
2100
|
+
left: S,
|
|
2101
|
+
behavior: n?.behavior ?? "auto"
|
|
2102
|
+
}) : (this._scrollHost.scrollTop = x, this._scrollHost.scrollLeft = S), this._mountVisible(), !0;
|
|
2103
|
+
}
|
|
2104
|
+
async _resolveSlideCommentElementBounds(e, t) {
|
|
2105
|
+
let n = this._pres;
|
|
2106
|
+
if (!n) return;
|
|
2107
|
+
let r = (t.anchors ?? []).flatMap((e) => (e.type === "drawingElement" || e.type === "textRange") && e.elementId ? [e.elementId] : []);
|
|
2108
|
+
if (r.length === 0) return;
|
|
2109
|
+
let i = new Map((this._slots.get(e)?.commentElementBounds ?? []).map((e) => [e.elementId, e.bounds])), a = r.flatMap((e) => {
|
|
2110
|
+
let t = i.get(e);
|
|
2111
|
+
return t ? [t] : [];
|
|
2112
|
+
})[0];
|
|
2113
|
+
if (a) return a;
|
|
2114
|
+
let o = await n.getElementBoundsByIds(e, r);
|
|
2115
|
+
return r.flatMap((e) => {
|
|
2116
|
+
let t = o.find((t) => t.elementId === e);
|
|
2117
|
+
return t ? [t.bounds] : [];
|
|
2118
|
+
})[0];
|
|
2119
|
+
}
|
|
2120
|
+
async goToComment(e, t, n) {
|
|
2121
|
+
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
2122
|
+
let r = this._pres;
|
|
2123
|
+
if (!r || !Number.isInteger(e) || !Number.isInteger(t) || e < 0 || e >= r.slideCount) return !1;
|
|
2124
|
+
let i = r.getComments(e)[t];
|
|
2125
|
+
if (!i) return !1;
|
|
2126
|
+
let a = ++this._commentNavigationGeneration, o = await this._resolveSlideCommentElementBounds(e, i);
|
|
2127
|
+
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
2128
|
+
if (a !== this._commentNavigationGeneration || r !== this._pres) return !1;
|
|
2129
|
+
let s = i.anchors ?? [], c = Number.isFinite(i.x) && Number.isFinite(i.y) && (s.length === 0 || s.some((e) => e.type === "slide"));
|
|
2130
|
+
if (!o && !c || (this.scrollToSlide(e, n), !this._scrollToSlideCommentTarget(e, i, n, o))) return !1;
|
|
2131
|
+
this._activeCommentId = j(i, t, e), this._activeCommentSlide = e, this._elementContext = null;
|
|
2132
|
+
for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
|
|
2133
|
+
return this._emitSelectionContextChange(), !0;
|
|
2134
|
+
}
|
|
1923
2135
|
async findText(e, t = {}) {
|
|
1924
2136
|
if (!this._pres) return [];
|
|
1925
2137
|
this._findActive = e.length > 0;
|
|
@@ -1947,6 +2159,84 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1947
2159
|
_refreshFindRuns(e, t) {
|
|
1948
2160
|
this._findActive && this._find.setSlideRuns(e, t);
|
|
1949
2161
|
}
|
|
2162
|
+
_redrawSlotComments(e, t) {
|
|
2163
|
+
if (!this._pres || !t.commentMarkerLayer) return;
|
|
2164
|
+
let n = this._commentUi;
|
|
2165
|
+
if (!n) {
|
|
2166
|
+
t.commentMarkerLayer.replaceChildren(), t.commentMargin?.replaceChildren(), t.commentDecorationLayer?.replaceChildren(), t.commentGeometry = null;
|
|
2167
|
+
return;
|
|
2168
|
+
}
|
|
2169
|
+
t.commentGeometry = n.buildPptxCommentMargin(t.commentMarkerLayer, t.commentMargin, this._pres.getComments(e), t.commentElementBounds, e, this._pres.slideWidth, this._pres.slideHeight, this._activeCommentId, (t, n) => {
|
|
2170
|
+
let r = n ? t : this._activeCommentId === t ? null : this._activeCommentId;
|
|
2171
|
+
if (r !== this._activeCommentId) {
|
|
2172
|
+
this._activeCommentId = r, this._activeCommentSlide = r ? e : null, this._elementContext = null;
|
|
2173
|
+
for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
|
|
2174
|
+
this._emitSelectionContextChange();
|
|
2175
|
+
}
|
|
2176
|
+
}, this._commentZoom(), $, this._commentsOptions()?.markers !== !1, this._commentsOptions()?.includeResolved === !0, t.commentDecorationLayer ? () => this._scheduleCommentGeometry(e, t, !1) : void 0, t.commentDecorationLayer ? () => this._scheduleCommentGeometry(e, t, !0) : void 0), this._redrawSlotCommentConnectors(e, t);
|
|
2177
|
+
}
|
|
2178
|
+
_redrawSlotCommentConnectors(e, t) {
|
|
2179
|
+
let n = t.commentDecorationLayer, r = t.commentMargin, i = t.commentGeometry, a = this._commentsOptions()?.connectors;
|
|
2180
|
+
if (!n || !r || !i || !a) return;
|
|
2181
|
+
let o = this._slideWidthPx(), s = this._slideHeightPx(), c = this._commentSide(), l = this._commentMarginExtent(), u = this._commentUi;
|
|
2182
|
+
u && u.buildReadOnlyCommentDecoration(n, Object.freeze({
|
|
2183
|
+
surfaceBounds: Object.freeze({
|
|
2184
|
+
x: c === "left" ? -l : 0,
|
|
2185
|
+
y: 0,
|
|
2186
|
+
width: o + l,
|
|
2187
|
+
height: s
|
|
2188
|
+
}),
|
|
2189
|
+
contentBounds: Object.freeze({
|
|
2190
|
+
x: 0,
|
|
2191
|
+
y: 0,
|
|
2192
|
+
width: o,
|
|
2193
|
+
height: s
|
|
2194
|
+
}),
|
|
2195
|
+
side: c,
|
|
2196
|
+
threads: u.projectReadOnlyCommentMarginScroll(i, r.scrollTop)
|
|
2197
|
+
}), {
|
|
2198
|
+
route: a.route ?? "bezier",
|
|
2199
|
+
stroke: a.stroke ?? "solid",
|
|
2200
|
+
color: a.color,
|
|
2201
|
+
activeColor: a.activeColor
|
|
2202
|
+
});
|
|
2203
|
+
}
|
|
2204
|
+
_commitSlotComments(e, t) {
|
|
2205
|
+
this._ensureSlotCommentAnchors(e, t), this._redrawSlotComments(e, t), t.commentMarkerLayer && (t.commentMarkerLayer.style.visibility = ""), t.commentMargin && (t.commentMargin.style.visibility = ""), t.commentDecorationLayer && (t.commentDecorationLayer.style.visibility = "");
|
|
2206
|
+
}
|
|
2207
|
+
_ensureSlotCommentAnchors(e, t) {
|
|
2208
|
+
let n = this._pres;
|
|
2209
|
+
if (!n || t.commentAnchorSlide === e) return;
|
|
2210
|
+
t.commentAnchorSlide = e, t.commentElementBounds = Object.freeze([]);
|
|
2211
|
+
let r = [...new Set(n.getComments(e).flatMap((e) => (e.anchors ?? []).flatMap((e) => (e.type === "drawingElement" || e.type === "textRange") && e.elementId ? [e.elementId] : [])))];
|
|
2212
|
+
if (r.length === 0) return;
|
|
2213
|
+
let i = ++t.commentAnchorGeneration;
|
|
2214
|
+
n.getElementBoundsByIds(e, r).then((r) => {
|
|
2215
|
+
if (this._destroyed || i !== t.commentAnchorGeneration || n !== this._pres || this._slots.get(e) !== t || t.commentAnchorSlide !== e) return;
|
|
2216
|
+
t.commentElementBounds = r, this._redrawSlotComments(e, t);
|
|
2217
|
+
let a = n.getComments(e).find((t, n) => j(t, n, e) === this._activeCommentId);
|
|
2218
|
+
a && this._scrollToSlideCommentTarget(e, a);
|
|
2219
|
+
}).catch((e) => {
|
|
2220
|
+
!this._destroyed && i === t.commentAnchorGeneration && this._reportRenderError(e);
|
|
2221
|
+
});
|
|
2222
|
+
}
|
|
2223
|
+
_scheduleCommentGeometry(e, t, n = !1) {
|
|
2224
|
+
let r = this._pendingCommentGeometry.get(e);
|
|
2225
|
+
if (this._pendingCommentGeometry.set(e, {
|
|
2226
|
+
slot: t,
|
|
2227
|
+
connectorsOnly: r?.slot === t ? r.connectorsOnly && n : n
|
|
2228
|
+
}), this._commentGeometryScheduled) return;
|
|
2229
|
+
this._commentGeometryScheduled = !0;
|
|
2230
|
+
let i = () => {
|
|
2231
|
+
this._commentGeometryScheduled = !1, this._commentGeometryFrame = null;
|
|
2232
|
+
let e = [...this._pendingCommentGeometry];
|
|
2233
|
+
if (this._pendingCommentGeometry.clear(), !this._destroyed) for (let [t, n] of e) {
|
|
2234
|
+
let { slot: e, connectorsOnly: r } = n;
|
|
2235
|
+
this._slots.get(t) === e && e.renderedScale === this._scale && (r ? this._redrawSlotCommentConnectors(t, e) : this._redrawSlotComments(t, e));
|
|
2236
|
+
}
|
|
2237
|
+
}, a = this._wrapper.ownerDocument.defaultView;
|
|
2238
|
+
a?.requestAnimationFrame ? this._commentGeometryFrame = a.requestAnimationFrame(i) : queueMicrotask(i);
|
|
2239
|
+
}
|
|
1950
2240
|
_redrawSlotHighlights(e, t) {
|
|
1951
2241
|
if (!this._findActive) {
|
|
1952
2242
|
t.highlightLayer.innerHTML = "";
|
|
@@ -1957,7 +2247,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
1957
2247
|
t.highlightLayer.innerHTML = "";
|
|
1958
2248
|
return;
|
|
1959
2249
|
}
|
|
1960
|
-
|
|
2250
|
+
P(t.highlightLayer, n, this._find.slideHighlights(e), this._slideWidthPx(), this._slideHeightPx(), (e) => this._measureForFind(e), this._opts.findHighlightColors);
|
|
1961
2251
|
}
|
|
1962
2252
|
_measureForFind(e) {
|
|
1963
2253
|
this._findMeasureCtx === void 0 && (this._findMeasureCtx = document.createElement("canvas").getContext("2d"));
|
|
@@ -2030,14 +2320,14 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
2030
2320
|
this._onResize();
|
|
2031
2321
|
}
|
|
2032
2322
|
contentAtViewportYForTest(e) {
|
|
2033
|
-
let t = this.
|
|
2323
|
+
let t = this._scrollHost.scrollTop + e, n = this._slideIndexAtOffset(t), r = this._uniformSlideHeight;
|
|
2034
2324
|
return {
|
|
2035
|
-
slide:
|
|
2036
|
-
frac:
|
|
2325
|
+
slide: n,
|
|
2326
|
+
frac: r > 0 ? Math.min(1, Math.max(0, (t - this._slideOffset(n)) / r)) : 0
|
|
2037
2327
|
};
|
|
2038
2328
|
}
|
|
2039
2329
|
viewportYOfForTest(e, t) {
|
|
2040
|
-
return
|
|
2330
|
+
return this._slideOffset(e) + t * this._uniformSlideHeight - this._scrollHost.scrollTop;
|
|
2041
2331
|
}
|
|
2042
2332
|
async getResourceMetrics() {
|
|
2043
2333
|
if (!this._pres) throw Error("Presentation not loaded");
|
|
@@ -2045,7 +2335,11 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
2045
2335
|
}
|
|
2046
2336
|
getSelectionContext(e = {}) {
|
|
2047
2337
|
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
2048
|
-
|
|
2338
|
+
if (this._pres && this._activeCommentId !== null && this._activeCommentSlide !== null) {
|
|
2339
|
+
let t = this._pres.getComments(this._activeCommentSlide), n = t.findIndex((e, t) => j(e, t, this._activeCommentSlide) === this._activeCommentId), r = t[n];
|
|
2340
|
+
if (r && n >= 0) return bt(r, this._activeCommentSlide, n, this._activeCommentId, e);
|
|
2341
|
+
}
|
|
2342
|
+
return (this._opts.enableTextSelection ? Y(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? gt(this._elementContext, e.maxTextCharacters) : null);
|
|
2049
2343
|
}
|
|
2050
2344
|
_emitSelectionContextChange() {
|
|
2051
2345
|
let e = this.getSelectionContext();
|
|
@@ -2089,7 +2383,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
2089
2383
|
async _resolveContextAt(e) {
|
|
2090
2384
|
let t = this._pres;
|
|
2091
2385
|
if (this._destroyed || !t) return null;
|
|
2092
|
-
if (this._opts.enableTextSelection &&
|
|
2386
|
+
if (this._opts.enableTextSelection && Y(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
|
|
2093
2387
|
if (!this._opts.enableElementSelection) return this.getSelectionContext();
|
|
2094
2388
|
let n = e.target, r = [...this._slots].find(([, e]) => n !== null && e.wrapper.contains(n));
|
|
2095
2389
|
if (!r) return this._invalidateElementSelection(), null;
|
|
@@ -2104,7 +2398,7 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
2104
2398
|
try {
|
|
2105
2399
|
d = await t.getElementContextAt(i, u, {
|
|
2106
2400
|
tolerance: this._elementHitTolerance / o.width * t.slideWidth,
|
|
2107
|
-
maxTextCharacters:
|
|
2401
|
+
maxTextCharacters: K
|
|
2108
2402
|
});
|
|
2109
2403
|
} catch (e) {
|
|
2110
2404
|
if (this._destroyed || l !== this._elementHitGeneration || t !== this._pres) return null;
|
|
@@ -2114,25 +2408,25 @@ var ht = Symbol("PptxViewer.borrowedPresentation"), gt = {
|
|
|
2114
2408
|
}
|
|
2115
2409
|
destroy() {
|
|
2116
2410
|
if (!this._destroyed) {
|
|
2117
|
-
this._destroyed = !0, this._find.invalidate(), this._findActive = !1, this._selectionChangeListener &&= (this._wrapper.ownerDocument.removeEventListener("selectionchange", this._selectionChangeListener), null), this._elementHitGeneration++, this._elementClickListener &&= (this._scrollHost.removeEventListener("click", this._elementClickListener), null), this._contextMenuListener &&= (this._scrollHost.removeEventListener("contextmenu", this._contextMenuListener), null), this._elementContext = null, this._scrollListener &&= (this._scrollHost.removeEventListener("scroll", this._scrollListener), null), this._wheelListener &&= (this._scrollHost.removeEventListener("wheel", this._wheelListener), null), this._resizeObserver?.disconnect(), this._resizeObserver = null, this._settleTimer !== null && (clearTimeout(this._settleTimer), this._settleTimer = null);
|
|
2411
|
+
this._destroyed = !0, this._find.invalidate(), this._findActive = !1, this._selectionChangeListener &&= (this._wrapper.ownerDocument.removeEventListener("selectionchange", this._selectionChangeListener), null), this._elementHitGeneration++, this._elementClickListener &&= (this._scrollHost.removeEventListener("click", this._elementClickListener), null), this._contextMenuListener &&= (this._scrollHost.removeEventListener("contextmenu", this._contextMenuListener), null), this._commentOutsidePointerListener &&= (this._wrapper.ownerDocument.removeEventListener("pointerdown", this._commentOutsidePointerListener), null), this._commentGeometryFrame !== null && (this._wrapper.ownerDocument.defaultView?.cancelAnimationFrame?.(this._commentGeometryFrame), this._commentGeometryFrame = null), this._commentGeometryScheduled = !1, this._pendingCommentGeometry.clear(), this._elementContext = null, this._scrollListener &&= (this._scrollHost.removeEventListener("scroll", this._scrollListener), null), this._wheelListener &&= (this._scrollHost.removeEventListener("wheel", this._wheelListener), null), this._resizeObserver?.disconnect(), this._resizeObserver = null, this._settleTimer !== null && (clearTimeout(this._settleTimer), this._settleTimer = null);
|
|
2118
2412
|
for (let [e, t] of [...this._slots]) this._recycleSlot(e, t);
|
|
2119
2413
|
this._free.length = 0, this._presentationOwner.close(), this._wrapper.remove();
|
|
2120
2414
|
}
|
|
2121
2415
|
}
|
|
2122
|
-
},
|
|
2416
|
+
}, jt = /* @__PURE__ */ e({
|
|
2123
2417
|
OoxmlDecodedImageLimitError: () => we,
|
|
2124
2418
|
OoxmlError: () => m,
|
|
2125
2419
|
OoxmlResourceLimitError: () => g,
|
|
2126
|
-
PptxPresentation: () =>
|
|
2127
|
-
PptxScrollViewer: () =>
|
|
2128
|
-
PptxViewer: () =>
|
|
2420
|
+
PptxPresentation: () => q,
|
|
2421
|
+
PptxScrollViewer: () => At,
|
|
2422
|
+
PptxViewer: () => Ct,
|
|
2129
2423
|
autoResize: () => _e,
|
|
2130
|
-
buildPptxHighlightLayer: () =>
|
|
2131
|
-
buildPptxTextLayer: () =>
|
|
2132
|
-
isOoxmlDecodedImageLimitError: () =>
|
|
2424
|
+
buildPptxHighlightLayer: () => P,
|
|
2425
|
+
buildPptxTextLayer: () => N,
|
|
2426
|
+
isOoxmlDecodedImageLimitError: () => Te,
|
|
2133
2427
|
openExternalHyperlink: () => _,
|
|
2134
|
-
readPptxTextSelectionContext: () =>
|
|
2428
|
+
readPptxTextSelectionContext: () => Y,
|
|
2135
2429
|
renderSlide: () => n
|
|
2136
2430
|
});
|
|
2137
2431
|
//#endregion
|
|
2138
|
-
export {
|
|
2432
|
+
export { q as a, Y as i, At as n, P as o, Ct as r, N as s, jt as t };
|