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