@silurus/ooxml 0.83.0 → 0.83.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 +2 -2
- package/dist/assets/{render-worker-DuztdEcX.js → render-worker-4GSYWsM3.js} +1 -1
- package/dist/assets/{render-worker-Bu31cf1J.js → render-worker-DwFpY197.js} +1 -1
- package/dist/{document-pull-client-BAhqoTmm.js → document-pull-client-DSx36ZsB.js} +20 -9
- package/dist/{docx-Dg73PGgC.js → docx-BF-WKW73.js} +365 -288
- package/dist/docx.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/node.mjs +5 -5
- package/dist/{pptx-BcUCETmQ.js → pptx-CA-Q09yW.js} +205 -185
- package/dist/pptx.mjs +2 -2
- package/dist/{render-CL-7V3E8.js → render-DtbFbO5c.js} +1 -1
- package/dist/{render-worker-host-FJ19-fUI.js → render-worker-host-D1jcACJV.js} +1 -1
- package/dist/{render-worker-host-DDZo0feh.js → render-worker-host-DCLyw6UR.js} +1 -1
- package/dist/{session-BjydZEDF.js → session-CxT-t0BX.js} +1 -1
- package/dist/{slide-pull-client-CwvvncPA.js → slide-pull-client-B9rcJdO4.js} +83 -53
- package/dist/types/docx.d.ts +6 -1
- package/dist/types/index.d.ts +13 -2
- package/dist/types/pptx.d.ts +7 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
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-B9rcJdO4.js";
|
|
3
3
|
import { B as p, G as m, Qt as h, R as g, Rt as _, Vt as v, W as y, Zt as b, a as x, et as S, ft as C, lt as w, tt as ee, z as te } from "./line-metrics-Bpn7OeZD.js";
|
|
4
|
-
import { C as ne, E as re, S as ie, T as ae, _ as
|
|
5
|
-
import { a as
|
|
4
|
+
import { C as ne, E as re, S as ie, T as ae, _ as oe, a as T, b as se, c as E, d as ce, f as le, g as ue, h as de, i as D, l as O, m as fe, n as pe, o as me, p as he, r as ge, s as _e, t as ve, v as ye, w as be, x as xe, y as Se } from "./canvas-viewer-mechanics-h07vpVOQ.js";
|
|
5
|
+
import { a as Ce, i as k, n as we, t as Te } from "./bounded-raw-part-cache-C6ro6Ezf.js";
|
|
6
6
|
import { a as A, c as Ee, i as De, l as j, n as Oe, r as ke, t as Ae } from "./dom-interaction-boundary-CepOlXt6.js";
|
|
7
7
|
import { cn as je, ln as Me } from "./plot-area-frame-DHV02PJU.js";
|
|
8
8
|
import { i as M } from "./units-BzZ0gAxs.js";
|
|
@@ -34,6 +34,17 @@ function ze(e, t, n) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
//#endregion
|
|
37
|
+
//#region packages/pptx/src/run-frame-transform.ts
|
|
38
|
+
function Be(e) {
|
|
39
|
+
let t = e.textBodyRotation ?? 0, n = e.shapeFlipH === !0, r = e.shapeFlipV === !0;
|
|
40
|
+
if (n || r) return `rotate(${e.rotation}deg) scale(${n ? -1 : 1}, ${r ? -1 : 1})` + (t === 0 ? "" : ` rotate(${t}deg)`);
|
|
41
|
+
let i = e.rotation + t;
|
|
42
|
+
return i === 0 ? "" : `rotate(${i}deg)`;
|
|
43
|
+
}
|
|
44
|
+
function Ve(e, t) {
|
|
45
|
+
return `${e.shapeX},${e.shapeY},${e.shapeW},${e.shapeH},` + t;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
37
48
|
//#region packages/pptx/src/text-layer.ts
|
|
38
49
|
function F(e, t, n) {
|
|
39
50
|
e.dataset ? n === void 0 ? delete e.dataset[t] : e.dataset[t] = n : n !== void 0 && e.setAttribute?.(`data-${t.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`)}`, n);
|
|
@@ -42,19 +53,16 @@ function I(e, t, n, r, i, a) {
|
|
|
42
53
|
e.innerHTML = "", F(e, "ooxmlSelectionSurface", "pptx"), F(e, "slideIndex", a === void 0 ? void 0 : String(a));
|
|
43
54
|
let o = /* @__PURE__ */ new Map(), s = e.ownerDocument ?? document;
|
|
44
55
|
for (let [a, c] of t.entries()) {
|
|
45
|
-
let t = c
|
|
46
|
-
if (!
|
|
56
|
+
let t = Be(c), l = Ve(c, t), u = o.get(l);
|
|
57
|
+
if (!u) {
|
|
47
58
|
let i = s.createElement("div");
|
|
48
|
-
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
|
|
59
|
+
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 = {
|
|
49
60
|
div: i,
|
|
50
|
-
x: c.shapeX,
|
|
51
|
-
y: c.shapeY,
|
|
52
61
|
w: c.shapeW,
|
|
53
|
-
h: c.shapeH
|
|
54
|
-
|
|
55
|
-
}), e.appendChild(i);
|
|
62
|
+
h: c.shapeH
|
|
63
|
+
}, o.set(l, u), e.appendChild(i);
|
|
56
64
|
}
|
|
57
|
-
let
|
|
65
|
+
let d = s.createElement("span");
|
|
58
66
|
F(d, "ooxmlSelectionRun", "pptx"), F(d, "runIndex", String(a)), c.shapeId !== void 0 && F(d, "shapeId", c.shapeId), c.elementIndex !== void 0 && F(d, "elementIndex", String(c.elementIndex)), c.origin !== void 0 && F(d, "elementOrigin", c.origin), d.textContent = c.text;
|
|
59
67
|
let f = i ? c.hyperlink : void 0;
|
|
60
68
|
d.style.cssText = `position:absolute;left:${N(c.inShapeX, u.w)};top:${N(c.inShapeY, u.h)};font:${c.font};line-height:${c.h}px;letter-spacing:0;white-space:pre;color:transparent;cursor:${f ? "pointer" : "text"};`, f && i && (d.title = f.kind === "external" ? f.url : f.ref, d.addEventListener("click", (e) => {
|
|
@@ -65,10 +73,10 @@ function I(e, t, n, r, i, a) {
|
|
|
65
73
|
function L(e, t, n, r, i, a, o = {}) {
|
|
66
74
|
e.innerHTML = "";
|
|
67
75
|
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) => {
|
|
68
|
-
let n =
|
|
76
|
+
let n = Be(t), a = Ve(t, n), o = l.get(a);
|
|
69
77
|
if (!o) {
|
|
70
78
|
let s = document.createElement("div");
|
|
71
|
-
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
|
|
79
|
+
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 = {
|
|
72
80
|
div: s,
|
|
73
81
|
w: t.shapeW,
|
|
74
82
|
h: t.shapeH
|
|
@@ -90,7 +98,18 @@ function L(e, t, n, r, i, a, o = {}) {
|
|
|
90
98
|
}
|
|
91
99
|
//#endregion
|
|
92
100
|
//#region packages/pptx/src/find.ts
|
|
93
|
-
|
|
101
|
+
function He(e, t) {
|
|
102
|
+
let n = e.tableCell, r = t.tableCell;
|
|
103
|
+
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
|
+
function Ue(e, t) {
|
|
106
|
+
for (let n = 1; n < t.length; n++) {
|
|
107
|
+
let r = e[t[n - 1].runIndex], i = e[t[n].runIndex];
|
|
108
|
+
if (!r || !i || !He(r, i)) return !1;
|
|
109
|
+
}
|
|
110
|
+
return !0;
|
|
111
|
+
}
|
|
112
|
+
var We = class {
|
|
94
113
|
_slideRuns = /* @__PURE__ */ new Map();
|
|
95
114
|
_matches = [];
|
|
96
115
|
_active = -1;
|
|
@@ -150,8 +169,9 @@ var Be = class {
|
|
|
150
169
|
if (n !== this._generation) return [];
|
|
151
170
|
let o = r === this._runsRevision ? i : new Map([...i, ...this._slideRuns]), s = [];
|
|
152
171
|
for (let n = 0; n < a; n++) {
|
|
153
|
-
let r = o.get(n) ?? [], i =
|
|
154
|
-
for (let a of
|
|
172
|
+
let r = o.get(n) ?? [], i = fe(r);
|
|
173
|
+
for (let a of de(i, e, t)) {
|
|
174
|
+
if (!Ue(r, a.slices)) continue;
|
|
155
175
|
let e = a.slices.map((e) => r[e.runIndex].text.slice(e.start, e.end)).join("");
|
|
156
176
|
s.push({
|
|
157
177
|
slide: n,
|
|
@@ -163,10 +183,10 @@ var Be = class {
|
|
|
163
183
|
return this._runsRevision++, this._slideRuns = o, this._matches = s, this._active = -1, this.matches();
|
|
164
184
|
}
|
|
165
185
|
next() {
|
|
166
|
-
return this._active =
|
|
186
|
+
return this._active = le(this._active, this._matches.length), this._activePublic();
|
|
167
187
|
}
|
|
168
188
|
prev() {
|
|
169
|
-
return this._active =
|
|
189
|
+
return this._active = he(this._active, this._matches.length), this._activePublic();
|
|
170
190
|
}
|
|
171
191
|
_activePublic() {
|
|
172
192
|
let e = this._matches[this._active];
|
|
@@ -176,22 +196,22 @@ var Be = class {
|
|
|
176
196
|
location: { slide: e.slide }
|
|
177
197
|
} : null;
|
|
178
198
|
}
|
|
179
|
-
},
|
|
180
|
-
function
|
|
199
|
+
}, Ge = (e) => e >= "0" && e <= "9";
|
|
200
|
+
function Ke(e) {
|
|
181
201
|
let t = 0;
|
|
182
202
|
for (let n = 0; n < 10; n++) t = Math.max(t, e.measureText(String(n)).width);
|
|
183
203
|
return t;
|
|
184
204
|
}
|
|
185
|
-
function
|
|
205
|
+
function qe(e, t, n) {
|
|
186
206
|
let r = 0;
|
|
187
|
-
for (let i of t) r +=
|
|
207
|
+
for (let i of t) r += Ge(i) ? n : e.measureText(i).width;
|
|
188
208
|
return r;
|
|
189
209
|
}
|
|
190
|
-
function
|
|
210
|
+
function Je(e, t, n, r, i) {
|
|
191
211
|
let a = e.textAlign;
|
|
192
212
|
e.textAlign = "left";
|
|
193
213
|
let o = n;
|
|
194
|
-
for (let n of t) if (
|
|
214
|
+
for (let n of t) if (Ge(n)) {
|
|
195
215
|
let t = e.measureText(n).width;
|
|
196
216
|
e.fillText(n, o + (i - t) / 2, r), o += i;
|
|
197
217
|
} else e.fillText(n, o, r), o += e.measureText(n).width;
|
|
@@ -200,7 +220,7 @@ function We(e, t, n, r, i) {
|
|
|
200
220
|
//#endregion
|
|
201
221
|
//#region packages/pptx/src/presentation-handle.ts
|
|
202
222
|
var R = (e, t) => e / M * t;
|
|
203
|
-
async function
|
|
223
|
+
async function Ye(e, t, n) {
|
|
204
224
|
let r = e.getContext("2d");
|
|
205
225
|
if (!r) throw Error("2D context not available");
|
|
206
226
|
let a = n.width / (n.slideWidthEmu / M);
|
|
@@ -227,11 +247,11 @@ async function Ge(e, t, n) {
|
|
|
227
247
|
try {
|
|
228
248
|
t = await n.fetchMedia(e.mediaPath);
|
|
229
249
|
} catch (t) {
|
|
230
|
-
throw u(),
|
|
250
|
+
throw u(), Qe(e, t);
|
|
231
251
|
}
|
|
232
252
|
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");
|
|
233
253
|
s.src = o, s.preload = "metadata", e.mediaKind === "video" && (s.playsInline = !0);
|
|
234
|
-
let f =
|
|
254
|
+
let f = Xe(e, a), p = {
|
|
235
255
|
el: e,
|
|
236
256
|
rect: e.mediaKind === "audio" ? {
|
|
237
257
|
x: f.x + f.w / 2 - Math.max(f.w, 260) / 2,
|
|
@@ -269,14 +289,14 @@ async function Ge(e, t, n) {
|
|
|
269
289
|
let t = e.media;
|
|
270
290
|
if (e.loadState !== "loading") {
|
|
271
291
|
if (e.loadState === "error") {
|
|
272
|
-
|
|
292
|
+
Ze(r, e.posterRect, "Media unavailable");
|
|
273
293
|
continue;
|
|
274
294
|
}
|
|
275
295
|
if (e.el.mediaKind === "video" && t.readyState >= 2) {
|
|
276
296
|
let { x: n, y: i, w: a, h: o } = e.posterRect;
|
|
277
297
|
r.drawImage(t, n, i, a, o);
|
|
278
298
|
}
|
|
279
|
-
if (e === p || v?.state === e)
|
|
299
|
+
if (e === p || v?.state === e) rt(r, e, t);
|
|
280
300
|
else if (t.paused) {
|
|
281
301
|
let { x: t, y: n, w: a, h: o } = e.posterRect;
|
|
282
302
|
i(r, t + a / 2, n + o / 2, a, o, "paused");
|
|
@@ -356,7 +376,7 @@ async function Ge(e, t, n) {
|
|
|
356
376
|
}
|
|
357
377
|
};
|
|
358
378
|
}
|
|
359
|
-
function
|
|
379
|
+
function Xe(e, t) {
|
|
360
380
|
return {
|
|
361
381
|
x: R(e.x, t),
|
|
362
382
|
y: R(e.y, t),
|
|
@@ -364,14 +384,14 @@ function Ke(e, t) {
|
|
|
364
384
|
h: R(e.height, t)
|
|
365
385
|
};
|
|
366
386
|
}
|
|
367
|
-
function
|
|
387
|
+
function Ze(e, t, n) {
|
|
368
388
|
let r = Math.max(10, Math.min(14, t.h * .12));
|
|
369
389
|
e.save(), e.font = `500 ${r}px system-ui, -apple-system, sans-serif`, e.textAlign = "center", e.textBaseline = "middle";
|
|
370
390
|
let i = r + 12, a = Math.min(t.w, Math.max(100, e.measureText(n).width + 24));
|
|
371
391
|
U(e, t.x + (t.w - a) / 2, t.y + (t.h - i) / 2, a, i, i / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.fillStyle = "rgba(255, 255, 255, 0.95)", e.fillText(n, t.x + t.w / 2, t.y + t.h / 2), e.restore();
|
|
372
392
|
}
|
|
373
|
-
function
|
|
374
|
-
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${
|
|
393
|
+
function Qe(e, t) {
|
|
394
|
+
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} fetch failed for "${e.mediaPath}" (mime=${e.mimeType || "unknown"}): ${$e(t)}`);
|
|
375
395
|
}
|
|
376
396
|
function z(e, t, n, r) {
|
|
377
397
|
let i = "";
|
|
@@ -385,36 +405,36 @@ function z(e, t, n, r) {
|
|
|
385
405
|
`networkState=${t.networkState}`
|
|
386
406
|
];
|
|
387
407
|
a && o.push(`mediaError=${a.code}${a.message ? ` ${a.message}` : ""}`);
|
|
388
|
-
let s = r === void 0 ? "" : `: ${
|
|
408
|
+
let s = r === void 0 ? "" : `: ${$e(r)}`;
|
|
389
409
|
return /* @__PURE__ */ Error(`Embedded ${e.mediaKind} ${n} failed for "${e.mediaPath}" (${o.join("; ")})${s}`);
|
|
390
410
|
}
|
|
391
|
-
function
|
|
411
|
+
function $e(e) {
|
|
392
412
|
return e instanceof Error ? `${e.name || "Error"}${e.message ? `: ${e.message}` : ""}` : String(e);
|
|
393
413
|
}
|
|
394
|
-
var
|
|
395
|
-
function
|
|
414
|
+
var et = 28, B = 14, tt = 72, nt = 10, V = 3;
|
|
415
|
+
function rt(e, t, n) {
|
|
396
416
|
let r = Number.isFinite(n.duration) ? n.duration : 0, a = r > 0 ? Math.min(1, n.currentTime / r) : 0, o = t.posterRect;
|
|
397
|
-
i(e, o.x + o.w / 2, o.y + o.h / 2, o.w, o.h, n.paused ? "paused" : "playing"), t.el.mediaKind === "audio" ?
|
|
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" ? at(e, t, n, r, a) : it(e, t, n, r, a);
|
|
398
418
|
}
|
|
399
|
-
function
|
|
419
|
+
function it(e, t, n, r, i) {
|
|
400
420
|
let { x: a, y: o, w: s, h: c } = t.rect, l = Math.max(28, Math.min(56, c * .22)), u = o + c - l;
|
|
401
421
|
e.save();
|
|
402
422
|
let d = e.createLinearGradient(0, u, 0, o + c);
|
|
403
423
|
d.addColorStop(0, "rgba(0, 0, 0, 0)"), d.addColorStop(1, "rgba(0, 0, 0, 0.55)"), e.fillStyle = d, e.fillRect(a, u, s, l), e.restore();
|
|
404
424
|
let f = H(t);
|
|
405
|
-
|
|
425
|
+
st(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)", ot(e, n.currentTime, r, f.x, f.y - 10, "bottom"), e.restore();
|
|
406
426
|
}
|
|
407
|
-
function
|
|
408
|
-
let a =
|
|
409
|
-
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)",
|
|
427
|
+
function at(e, t, n, r, i) {
|
|
428
|
+
let a = ct(t.rect);
|
|
429
|
+
e.save(), U(e, a.x, a.y, a.w, a.h, a.h / 2), e.fillStyle = "rgba(20, 20, 20, 0.72)", e.fill(), e.font = "500 11px system-ui, -apple-system, sans-serif", e.textBaseline = "middle", e.fillStyle = "rgba(255, 255, 255, 0.95)", ot(e, n.currentTime, r, a.x + B, a.y + a.h / 2, "middle"), e.restore(), st(e, H(t), i, r > 0);
|
|
410
430
|
}
|
|
411
|
-
function
|
|
412
|
-
let o =
|
|
413
|
-
|
|
431
|
+
function ot(e, t, n, r, i, a) {
|
|
432
|
+
let o = lt(t), s = lt(n), c = Ke(e), l = qe(e, o, c), u = qe(e, s, c), d = e.measureText(" / ").width, f = Math.max(l, u);
|
|
433
|
+
Je(e, o, r + f - l, i, c);
|
|
414
434
|
let p = e.textAlign;
|
|
415
|
-
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p,
|
|
435
|
+
e.textAlign = "left", e.fillText(" / ", r + f, i), e.textAlign = p, Je(e, s, r + f + d, i, c);
|
|
416
436
|
}
|
|
417
|
-
function
|
|
437
|
+
function st(e, t, n, r) {
|
|
418
438
|
let i = t.h / 2;
|
|
419
439
|
if (e.save(), U(e, t.x, t.y, t.w, t.h, i), e.fillStyle = "rgba(255, 255, 255, 0.35)", e.fill(), n > 0 && (U(e, t.x, t.y, t.w * n, t.h, i), e.fillStyle = "#fff", e.fill()), r) {
|
|
420
440
|
let r = Math.max(t.x + 5, Math.min(t.x + t.w - 5, t.x + t.w * n));
|
|
@@ -422,18 +442,18 @@ function rt(e, t, n, r) {
|
|
|
422
442
|
}
|
|
423
443
|
e.restore();
|
|
424
444
|
}
|
|
425
|
-
function
|
|
445
|
+
function ct(e) {
|
|
426
446
|
let t = Math.max(220, e.w - 24);
|
|
427
447
|
return {
|
|
428
448
|
x: e.x + e.w / 2 - t / 2,
|
|
429
|
-
y: e.y + e.h -
|
|
449
|
+
y: e.y + e.h - et - 4,
|
|
430
450
|
w: t,
|
|
431
|
-
h:
|
|
451
|
+
h: et
|
|
432
452
|
};
|
|
433
453
|
}
|
|
434
454
|
function H(e) {
|
|
435
455
|
if (e.el.mediaKind === "audio") {
|
|
436
|
-
let t =
|
|
456
|
+
let t = ct(e.rect), n = t.x + B + tt + nt, r = Math.max(40, t.x + t.w - B - n);
|
|
437
457
|
return {
|
|
438
458
|
x: n,
|
|
439
459
|
y: t.y + (t.h - V) / 2,
|
|
@@ -453,14 +473,14 @@ function U(e, t, n, r, i, a) {
|
|
|
453
473
|
let o = Math.min(a, i / 2, r / 2);
|
|
454
474
|
e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
|
|
455
475
|
}
|
|
456
|
-
function
|
|
476
|
+
function lt(e) {
|
|
457
477
|
if (!Number.isFinite(e) || e < 0) return "0:00";
|
|
458
478
|
let t = Math.floor(e);
|
|
459
479
|
return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
|
|
460
480
|
}
|
|
461
481
|
//#endregion
|
|
462
482
|
//#region packages/pptx/src/slide-nav.ts
|
|
463
|
-
function
|
|
483
|
+
function ut(e) {
|
|
464
484
|
let t = /* @__PURE__ */ new Map();
|
|
465
485
|
for (let n = 0; n < e.length; n++) {
|
|
466
486
|
let r = e[n];
|
|
@@ -468,18 +488,18 @@ function ot(e) {
|
|
|
468
488
|
}
|
|
469
489
|
return t;
|
|
470
490
|
}
|
|
471
|
-
function
|
|
491
|
+
function dt(e, t) {
|
|
472
492
|
if (e === "") return;
|
|
473
493
|
let n = Le("ppt/slides", e);
|
|
474
494
|
return t.get(n);
|
|
475
495
|
}
|
|
476
|
-
function
|
|
496
|
+
function ft(e, t, n) {
|
|
477
497
|
let r = Re(e);
|
|
478
|
-
return r === null ?
|
|
498
|
+
return r === null ? dt(e, t) : ze(r, n, t.size);
|
|
479
499
|
}
|
|
480
500
|
//#endregion
|
|
481
501
|
//#region packages/pptx/src/slide-repository.ts
|
|
482
|
-
var
|
|
502
|
+
var pt = class {
|
|
483
503
|
#e;
|
|
484
504
|
#t;
|
|
485
505
|
#n;
|
|
@@ -510,7 +530,7 @@ var lt = class {
|
|
|
510
530
|
try {
|
|
511
531
|
return await t(r);
|
|
512
532
|
} catch (e) {
|
|
513
|
-
let t =
|
|
533
|
+
let t = mt(e);
|
|
514
534
|
throw t ? (this.#l(t, n), this.#o === n ? this.#a ?? t : t) : e;
|
|
515
535
|
}
|
|
516
536
|
});
|
|
@@ -522,7 +542,7 @@ var lt = class {
|
|
|
522
542
|
try {
|
|
523
543
|
n = await this.#t(e);
|
|
524
544
|
} catch (e) {
|
|
525
|
-
let n =
|
|
545
|
+
let n = mt(e);
|
|
526
546
|
throw n ? (this.#l(n, t), this.#o === t ? this.#a ?? n : n) : e;
|
|
527
547
|
}
|
|
528
548
|
if (this.#o === t && this.#a) throw this.#a;
|
|
@@ -539,22 +559,22 @@ var lt = class {
|
|
|
539
559
|
t !== this.#r || this.#a || (this.#a = e, this.#o = t, this.#r += 1, this.#n.clear());
|
|
540
560
|
}
|
|
541
561
|
};
|
|
542
|
-
function
|
|
562
|
+
function mt(e) {
|
|
543
563
|
return e instanceof h ? e : m(e);
|
|
544
564
|
}
|
|
545
565
|
//#endregion
|
|
546
566
|
//#region packages/pptx/src/embedded-fonts.ts
|
|
547
|
-
var
|
|
567
|
+
var ht = 1;
|
|
548
568
|
function W(e) {
|
|
549
569
|
return e.trim().toLowerCase();
|
|
550
570
|
}
|
|
551
|
-
async function
|
|
571
|
+
async function gt(e, t) {
|
|
552
572
|
if (e.length === 0) return {
|
|
553
573
|
faces: [],
|
|
554
574
|
aliases: /* @__PURE__ */ new Map(),
|
|
555
575
|
authoredFamilies: /* @__PURE__ */ new Map()
|
|
556
576
|
};
|
|
557
|
-
let n =
|
|
577
|
+
let n = ht++, r = /* @__PURE__ */ new Map();
|
|
558
578
|
for (let t of e) {
|
|
559
579
|
let e = W(t.fontName);
|
|
560
580
|
r.has(e) || r.set(e, `__ooxml_pptx_${n}_${r.size + 1}`);
|
|
@@ -583,16 +603,16 @@ async function ft(e, t) {
|
|
|
583
603
|
authoredFamilies: new Map([...s].map(([e, t]) => [t, e]))
|
|
584
604
|
};
|
|
585
605
|
}
|
|
586
|
-
function
|
|
606
|
+
function _t(e, t) {
|
|
587
607
|
return e.filter((e) => e === null || !t.has(e.trim().toLowerCase()));
|
|
588
608
|
}
|
|
589
609
|
//#endregion
|
|
590
610
|
//#region packages/pptx/src/worker.ts?worker&inline
|
|
591
|
-
var mt = "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{}}};", ht = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", mt], { type: "text/javascript;charset=utf-8" });
|
|
592
|
-
function
|
|
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 bt(e) {
|
|
593
613
|
let t;
|
|
594
614
|
try {
|
|
595
|
-
if (t =
|
|
615
|
+
if (t = yt && (self.URL || self.webkitURL).createObjectURL(yt), !t) throw "";
|
|
596
616
|
let n = new Worker(t, {
|
|
597
617
|
type: "module",
|
|
598
618
|
name: e?.name
|
|
@@ -601,7 +621,7 @@ function gt(e) {
|
|
|
601
621
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
602
622
|
}), n;
|
|
603
623
|
} catch {
|
|
604
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
624
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(vt), {
|
|
605
625
|
type: "module",
|
|
606
626
|
name: e?.name
|
|
607
627
|
});
|
|
@@ -609,24 +629,24 @@ function gt(e) {
|
|
|
609
629
|
}
|
|
610
630
|
//#endregion
|
|
611
631
|
//#region packages/pptx/src/wasm/pptx_parser_bg.wasm?url
|
|
612
|
-
var
|
|
613
|
-
function
|
|
632
|
+
var xt = new URL("pptx_parser_bg.wasm", import.meta.url).href, G = 65536, St = 16384, Ct = new Set(["line", "straightconnector1"]);
|
|
633
|
+
function wt(e, t) {
|
|
614
634
|
let n = e.x + e.width / 2, r = e.y + e.height / 2, i = -e.rotation * Math.PI / 180, a = Math.cos(i), o = Math.sin(i), s = t.x - n, c = t.y - r, l = n + a * s - o * c, u = r + o * s + a * c;
|
|
615
635
|
return e.flipH && (l = 2 * n - l), e.flipV && (u = 2 * r - u), {
|
|
616
636
|
x: l,
|
|
617
637
|
y: u
|
|
618
638
|
};
|
|
619
639
|
}
|
|
620
|
-
function
|
|
640
|
+
function Tt(e, t, n) {
|
|
621
641
|
let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
|
|
622
642
|
if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
|
|
623
643
|
let o = Math.max(0, Math.min(1, ((e.x - t.x) * r + (e.y - t.y) * i) / a));
|
|
624
644
|
return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
|
|
625
645
|
}
|
|
626
|
-
function
|
|
646
|
+
function Et(e, t, n = 0) {
|
|
627
647
|
if (!Number.isFinite(t.x) || !Number.isFinite(t.y)) return !1;
|
|
628
|
-
let r =
|
|
629
|
-
if (e.type === "shape" && (
|
|
648
|
+
let r = wt(e, t), i = Number.isFinite(n) && n > 0 ? n : 0;
|
|
649
|
+
if (e.type === "shape" && (Ct.has(e.geometry.toLowerCase()) || e.width === 0 || e.height === 0)) return Tt(r, {
|
|
630
650
|
x: e.x,
|
|
631
651
|
y: e.y
|
|
632
652
|
}, {
|
|
@@ -636,7 +656,7 @@ function St(e, t, n = 0) {
|
|
|
636
656
|
let a = Math.min(e.x, e.x + e.width), o = Math.max(e.x, e.x + e.width), s = Math.min(e.y, e.y + e.height), c = Math.max(e.y, e.y + e.height);
|
|
637
657
|
return r.x >= a && r.x <= o && r.y >= s && r.y <= c;
|
|
638
658
|
}
|
|
639
|
-
function*
|
|
659
|
+
function* Dt(e) {
|
|
640
660
|
if (e) for (let t of e.paragraphs) {
|
|
641
661
|
let e = !0;
|
|
642
662
|
for (let n of t.runs) {
|
|
@@ -648,17 +668,17 @@ function* Ct(e) {
|
|
|
648
668
|
}
|
|
649
669
|
}
|
|
650
670
|
}
|
|
651
|
-
function*
|
|
671
|
+
function* Ot(e) {
|
|
652
672
|
if (e.type === "shape") {
|
|
653
|
-
yield*
|
|
673
|
+
yield* Dt(e.textBody);
|
|
654
674
|
return;
|
|
655
675
|
}
|
|
656
676
|
if (e.type === "table") {
|
|
657
|
-
for (let t of e.rows) for (let e of t.cells) yield*
|
|
677
|
+
for (let t of e.rows) for (let e of t.cells) yield* Dt(e.textBody);
|
|
658
678
|
return;
|
|
659
679
|
}
|
|
660
680
|
}
|
|
661
|
-
function
|
|
681
|
+
function kt(e, t) {
|
|
662
682
|
let n = Math.min(e.length, t);
|
|
663
683
|
if (n > 0 && n < e.length) {
|
|
664
684
|
let t = e.charCodeAt(n - 1), r = e.charCodeAt(n);
|
|
@@ -666,9 +686,9 @@ function Tt(e, t) {
|
|
|
666
686
|
}
|
|
667
687
|
return e.slice(0, n);
|
|
668
688
|
}
|
|
669
|
-
function
|
|
689
|
+
function At(e, t = St) {
|
|
670
690
|
if (!Number.isFinite(t) || t < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
671
|
-
let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 :
|
|
691
|
+
let n = Math.min(G, Math.floor(t)), r = e.text, i = r === void 0 ? void 0 : kt(r, n), a = r !== void 0 && i.length < r.length;
|
|
672
692
|
return {
|
|
673
693
|
...structuredClone(e),
|
|
674
694
|
...i === void 0 ? {} : { text: i },
|
|
@@ -678,7 +698,7 @@ function Et(e, t = vt) {
|
|
|
678
698
|
maxTextCharacters: n
|
|
679
699
|
};
|
|
680
700
|
}
|
|
681
|
-
function
|
|
701
|
+
function jt(e, t) {
|
|
682
702
|
let n = [], r = 0, i = !1, a = !1;
|
|
683
703
|
for (let o of e) {
|
|
684
704
|
if (a = !0, o.beginsPart && n.length > 0) {
|
|
@@ -688,7 +708,7 @@ function Dt(e, t) {
|
|
|
688
708
|
}
|
|
689
709
|
n.push("\n"), r++;
|
|
690
710
|
}
|
|
691
|
-
let e = Math.max(0, t - r), s =
|
|
711
|
+
let e = Math.max(0, t - r), s = kt(o.text, e);
|
|
692
712
|
if (n.push(s), r += s.length, s.length < o.text.length) {
|
|
693
713
|
i = !0;
|
|
694
714
|
break;
|
|
@@ -703,16 +723,16 @@ function Dt(e, t) {
|
|
|
703
723
|
textCharacters: 0
|
|
704
724
|
};
|
|
705
725
|
}
|
|
706
|
-
function
|
|
726
|
+
function Mt(e, t, n, r = {}) {
|
|
707
727
|
if (!Number.isFinite(n.x) || !Number.isFinite(n.y)) throw RangeError("PPTX hit-test point must contain finite coordinates.");
|
|
708
|
-
let i = r.maxTextCharacters ??
|
|
728
|
+
let i = r.maxTextCharacters ?? St;
|
|
709
729
|
if (!Number.isFinite(i) || i < 0) throw RangeError("maxTextCharacters must be a finite non-negative number.");
|
|
710
730
|
let a = Math.min(G, Math.floor(i)), o = r.tolerance ?? 0;
|
|
711
731
|
if (!Number.isFinite(o) || o < 0) throw RangeError("tolerance must be a finite non-negative number.");
|
|
712
732
|
for (let r = t.elements.length - 1; r >= 0; r--) {
|
|
713
733
|
let i = t.elements[r];
|
|
714
|
-
if (!
|
|
715
|
-
let s = i.type === "chart" ?
|
|
734
|
+
if (!Et(i, n, o)) continue;
|
|
735
|
+
let s = i.type === "chart" ? ce(i.chart, a) : jt(Ot(i), a);
|
|
716
736
|
return {
|
|
717
737
|
format: "pptx",
|
|
718
738
|
kind: "element",
|
|
@@ -754,7 +774,7 @@ function Ot(e, t, n, r = {}) {
|
|
|
754
774
|
}
|
|
755
775
|
return null;
|
|
756
776
|
}
|
|
757
|
-
function
|
|
777
|
+
function Nt(e, t) {
|
|
758
778
|
let n = new Set(t.filter((e) => e.length > 0));
|
|
759
779
|
if (n.size === 0) return Object.freeze([]);
|
|
760
780
|
let r = /* @__PURE__ */ new Map();
|
|
@@ -796,7 +816,7 @@ function q(e, t) {
|
|
|
796
816
|
} catch {}
|
|
797
817
|
}
|
|
798
818
|
}
|
|
799
|
-
function
|
|
819
|
+
function Pt(e, t, n, r) {
|
|
800
820
|
let i = K.get(e);
|
|
801
821
|
i || (i = /* @__PURE__ */ new Set(), K.set(e, i));
|
|
802
822
|
let a = Object.freeze({
|
|
@@ -817,7 +837,7 @@ function At(e, t, n, r) {
|
|
|
817
837
|
}
|
|
818
838
|
//#endregion
|
|
819
839
|
//#region packages/pptx/src/worker-task-scheduler.ts
|
|
820
|
-
function
|
|
840
|
+
function Ft() {
|
|
821
841
|
return new Promise((e) => {
|
|
822
842
|
let t = new MessageChannel();
|
|
823
843
|
t.port1.onmessage = () => {
|
|
@@ -827,7 +847,7 @@ function J() {
|
|
|
827
847
|
}
|
|
828
848
|
//#endregion
|
|
829
849
|
//#region packages/pptx/src/presentation.ts
|
|
830
|
-
function
|
|
850
|
+
function It() {
|
|
831
851
|
let e, t;
|
|
832
852
|
return {
|
|
833
853
|
promise: new Promise((n, r) => {
|
|
@@ -837,7 +857,7 @@ function jt() {
|
|
|
837
857
|
reject: t
|
|
838
858
|
};
|
|
839
859
|
}
|
|
840
|
-
var
|
|
860
|
+
var J = class e {
|
|
841
861
|
_metrics = null;
|
|
842
862
|
_worker;
|
|
843
863
|
_bridge;
|
|
@@ -878,7 +898,7 @@ var Y = class e {
|
|
|
878
898
|
toError: (e) => !("protocol" in e) && e.kind === "error" ? y(e) : void 0,
|
|
879
899
|
onUnsolicited: (e) => this._onWorkerLayoutPush(e)
|
|
880
900
|
});
|
|
881
|
-
let r = new URL(n ??
|
|
901
|
+
let r = new URL(n ?? xt, location.href).href;
|
|
882
902
|
this._bridge.post({
|
|
883
903
|
kind: "init",
|
|
884
904
|
wasmUrl: r
|
|
@@ -909,19 +929,19 @@ var Y = class e {
|
|
|
909
929
|
s = await e.arrayBuffer();
|
|
910
930
|
} else s = t;
|
|
911
931
|
s = re(await ae(s, r.password)), o.setSourceBytes(s.byteLength), o.checkpoint("container ready");
|
|
912
|
-
let c = a === "worker" ? (await import("./render-worker-host-
|
|
932
|
+
let c = a === "worker" ? (await import("./render-worker-host-D1jcACJV.js")).createRenderWorker() : new bt(), l = a === "worker" ? Pe(r) : void 0, u;
|
|
913
933
|
try {
|
|
914
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;
|
|
915
935
|
let t = r.progressiveLayout ? {
|
|
916
936
|
onProgress: r.onLayoutProgress,
|
|
917
937
|
onPartial: r.onLayoutPartial,
|
|
918
938
|
onComplete: r.onLayoutComplete,
|
|
919
|
-
firstPublication:
|
|
939
|
+
firstPublication: It(),
|
|
920
940
|
published: !1,
|
|
921
941
|
deferred: !1,
|
|
922
942
|
settled: !1
|
|
923
943
|
} : void 0;
|
|
924
|
-
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
|
|
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(_t(u._preflight.fontPreloadNames, u._embeddedFontAliases), n)), o.succeed({ slides: u.slideCount }), u;
|
|
925
945
|
} catch (e) {
|
|
926
946
|
let t = u;
|
|
927
947
|
throw ie(c, t ? () => t.destroy() : void 0), e;
|
|
@@ -955,7 +975,7 @@ var Y = class e {
|
|
|
955
975
|
}
|
|
956
976
|
let f = t(u.bootstrap);
|
|
957
977
|
this._bootstrap = f;
|
|
958
|
-
let p =
|
|
978
|
+
let p = gt(f.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
|
|
959
979
|
this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
|
|
960
980
|
});
|
|
961
981
|
this._slidePullClient = new d({
|
|
@@ -981,7 +1001,7 @@ var Y = class e {
|
|
|
981
1001
|
} catch (e) {
|
|
982
1002
|
throw p.catch(() => void 0), e;
|
|
983
1003
|
}
|
|
984
|
-
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 pt({
|
|
985
1005
|
slideCount: this._preflight.slideCount,
|
|
986
1006
|
maxCachedSlides: 8,
|
|
987
1007
|
maxCachedStructuralBytes: _,
|
|
@@ -1001,10 +1021,10 @@ var Y = class e {
|
|
|
1001
1021
|
progressiveLayout: !0
|
|
1002
1022
|
}), [e], { timeoutMs: a })).bootstrap);
|
|
1003
1023
|
this._bootstrap = c;
|
|
1004
|
-
let u =
|
|
1024
|
+
let u = gt(c.embeddedFonts, (e) => this.getFontBytes(e)).then((e) => {
|
|
1005
1025
|
this._destroyed ? j(e.faces) : (this._embeddedFontFaces = e.faces, this._embeddedFontAliases = e.aliases, this._embeddedFontAuthoredFamilies = e.authoredFamilies);
|
|
1006
1026
|
});
|
|
1007
|
-
this._slidePullClient = this._createSlidePullClient(c.slideCount, a, o), this._slides = new
|
|
1027
|
+
this._slidePullClient = this._createSlidePullClient(c.slideCount, a, o), this._slides = new pt({
|
|
1008
1028
|
slideCount: c.slideCount,
|
|
1009
1029
|
maxCachedSlides: 8,
|
|
1010
1030
|
maxCachedStructuralBytes: _,
|
|
@@ -1016,16 +1036,16 @@ var Y = class e {
|
|
|
1016
1036
|
});
|
|
1017
1037
|
let d = new l(c), f = /* @__PURE__ */ new Set(), p = async () => {
|
|
1018
1038
|
if (await u, !i) return;
|
|
1019
|
-
let e =
|
|
1039
|
+
let e = _t(d.currentFontPreloadNames, this._embeddedFontAliases).filter((e) => !!e && !f.has(e));
|
|
1020
1040
|
if (e.length !== 0) {
|
|
1021
1041
|
for (let t of e) f.add(t);
|
|
1022
|
-
this._googleFontFaces.push(...await
|
|
1042
|
+
this._googleFontFaces.push(...await k(e, n));
|
|
1023
1043
|
}
|
|
1024
1044
|
};
|
|
1025
1045
|
this._layoutCompletion = (async () => {
|
|
1026
1046
|
for (let e = 0; e < c.slideCount; e += 1) await this._slides.withSlide(e, (e) => {
|
|
1027
1047
|
d.addSlide(e);
|
|
1028
|
-
}), 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 Ft();
|
|
1029
1049
|
await u, this._finishProgressiveLayout(d.finish(), s);
|
|
1030
1050
|
})().then(() => void 0, (e) => this._failProgressiveLayout(e, s)), await s.firstPublication.promise;
|
|
1031
1051
|
}
|
|
@@ -1074,7 +1094,7 @@ var Y = class e {
|
|
|
1074
1094
|
...n,
|
|
1075
1095
|
slides: [...r, e.slide],
|
|
1076
1096
|
fontPreloadNames: e.fontPreloadNames
|
|
1077
|
-
}), this._progressive),
|
|
1097
|
+
}), this._progressive), Ft().then(() => {
|
|
1078
1098
|
this._destroyed || this._parseRequestId !== e.forId || this._bridge.post({
|
|
1079
1099
|
kind: "continuePresentationPreflight",
|
|
1080
1100
|
forId: e.forId,
|
|
@@ -1188,13 +1208,13 @@ var Y = class e {
|
|
|
1188
1208
|
return (this._bootstrap?.slides ?? this._preflight?.slides ?? []).map((e) => e.partName);
|
|
1189
1209
|
}
|
|
1190
1210
|
_partIndex() {
|
|
1191
|
-
return this._slidePartIndex ||=
|
|
1211
|
+
return this._slidePartIndex ||= ut(this._partNames()), this._slidePartIndex;
|
|
1192
1212
|
}
|
|
1193
1213
|
getSlideIndexByPartName(e) {
|
|
1194
1214
|
return this._partIndex().get(e);
|
|
1195
1215
|
}
|
|
1196
1216
|
resolveInternalTarget(e, t = 0) {
|
|
1197
|
-
return
|
|
1217
|
+
return ft(e, this._partIndex(), t);
|
|
1198
1218
|
}
|
|
1199
1219
|
async renderSlide(e, t, n = {}) {
|
|
1200
1220
|
this._assertResourceHealthy();
|
|
@@ -1285,7 +1305,7 @@ var Y = class e {
|
|
|
1285
1305
|
options: n
|
|
1286
1306
|
}))).context;
|
|
1287
1307
|
if (!this._slides) throw Error("Presentation not loaded");
|
|
1288
|
-
return await this._slides.withSlide(e, (r) =>
|
|
1308
|
+
return await this._slides.withSlide(e, (r) => Mt(e, r, t, n));
|
|
1289
1309
|
} catch (e) {
|
|
1290
1310
|
this._rethrowWithResourceFailure(e);
|
|
1291
1311
|
}
|
|
@@ -1302,7 +1322,7 @@ var Y = class e {
|
|
|
1302
1322
|
elementIds: n
|
|
1303
1323
|
}))).bounds;
|
|
1304
1324
|
if (!this._slides) throw Error("Presentation not loaded");
|
|
1305
|
-
return await this._slides.withSlide(e, (e) =>
|
|
1325
|
+
return await this._slides.withSlide(e, (e) => Nt(e, n));
|
|
1306
1326
|
} catch (e) {
|
|
1307
1327
|
this._rethrowWithResourceFailure(e);
|
|
1308
1328
|
}
|
|
@@ -1396,7 +1416,7 @@ var Y = class e {
|
|
|
1396
1416
|
dim: n.dim,
|
|
1397
1417
|
onTextRun: n.onTextRun
|
|
1398
1418
|
});
|
|
1399
|
-
return await
|
|
1419
|
+
return await Ye(e, this._preflight.slides[t]?.mediaElements ?? [], {
|
|
1400
1420
|
width: i,
|
|
1401
1421
|
dpr: r,
|
|
1402
1422
|
slideWidthEmu: this.slideWidth,
|
|
@@ -1410,12 +1430,12 @@ var Y = class e {
|
|
|
1410
1430
|
}
|
|
1411
1431
|
}
|
|
1412
1432
|
destroy() {
|
|
1413
|
-
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 && (
|
|
1433
|
+
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 && (Ce(this._googleFontFaces), this._googleFontFaces = []), this._embeddedFontFaces.length > 0 && (j(this._embeddedFontFaces), this._embeddedFontFaces = []), this._embeddedFontAliases = /* @__PURE__ */ new Map(), this._embeddedFontAuthoredFamilies = /* @__PURE__ */ new Map(), C(this._fetchImage), w(this._fetchImage);
|
|
1414
1434
|
}
|
|
1415
1435
|
};
|
|
1416
1436
|
//#endregion
|
|
1417
1437
|
//#region packages/pptx/src/selection-context.ts
|
|
1418
|
-
function
|
|
1438
|
+
function Lt(e, t, n, r, i = {}) {
|
|
1419
1439
|
let a = Oe({
|
|
1420
1440
|
id: e.id,
|
|
1421
1441
|
author: e.author,
|
|
@@ -1447,23 +1467,23 @@ function Mt(e, t, n, r, i = {}) {
|
|
|
1447
1467
|
maxTextCharacters: a.maxTextCharacters
|
|
1448
1468
|
});
|
|
1449
1469
|
}
|
|
1450
|
-
function
|
|
1470
|
+
function Y(e) {
|
|
1451
1471
|
if (e === void 0 || !/^\d+$/.test(e)) return null;
|
|
1452
1472
|
let t = Number(e);
|
|
1453
1473
|
return Number.isSafeInteger(t) ? t : null;
|
|
1454
1474
|
}
|
|
1455
|
-
function
|
|
1475
|
+
function Rt(e) {
|
|
1456
1476
|
for (let t = e; t; t = t.parentElement) {
|
|
1457
|
-
let e =
|
|
1477
|
+
let e = Y(t.dataset.slideIndex);
|
|
1458
1478
|
if (e !== null) return e;
|
|
1459
1479
|
}
|
|
1460
1480
|
return null;
|
|
1461
1481
|
}
|
|
1462
|
-
function
|
|
1463
|
-
let r =
|
|
1464
|
-
let t =
|
|
1482
|
+
function X(e, t, n = {}) {
|
|
1483
|
+
let r = _e(e, t, (e) => {
|
|
1484
|
+
let t = Rt(e), n = Y(e.dataset.runIndex);
|
|
1465
1485
|
if (t === null || n === null) return null;
|
|
1466
|
-
let r =
|
|
1486
|
+
let r = Y(e.dataset.elementIndex), i = e.dataset.elementOrigin, a = r !== null && (i === "master" || i === "layout" || i === "slide");
|
|
1467
1487
|
return {
|
|
1468
1488
|
slideIndex: t,
|
|
1469
1489
|
runIndex: n,
|
|
@@ -1495,15 +1515,15 @@ function Z(e, t, n = {}) {
|
|
|
1495
1515
|
}
|
|
1496
1516
|
//#endregion
|
|
1497
1517
|
//#region packages/pptx/src/focused-view-runtime.ts
|
|
1498
|
-
function
|
|
1518
|
+
function Z(e, t, n, r, i) {
|
|
1499
1519
|
return r === "worker" ? e.renderSlideToBitmap(n, i) : e.renderSlide(t, n, i);
|
|
1500
1520
|
}
|
|
1501
1521
|
//#endregion
|
|
1502
1522
|
//#region packages/pptx/src/viewer.ts
|
|
1503
|
-
var
|
|
1523
|
+
var zt = Symbol("PptxViewer.borrowedPresentation"), Bt = {
|
|
1504
1524
|
color: "#ffffff",
|
|
1505
1525
|
opacity: .6
|
|
1506
|
-
},
|
|
1526
|
+
}, Q = class e {
|
|
1507
1527
|
canvas;
|
|
1508
1528
|
wrapper;
|
|
1509
1529
|
canvasMount;
|
|
@@ -1549,23 +1569,23 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1549
1569
|
static fromPresentation(t, n, r = {}) {
|
|
1550
1570
|
return new e(t, {
|
|
1551
1571
|
...r,
|
|
1552
|
-
[
|
|
1572
|
+
[zt]: n
|
|
1553
1573
|
});
|
|
1554
1574
|
}
|
|
1555
1575
|
constructor(e, t = {}) {
|
|
1556
1576
|
this.opts = t, this.canvas = e;
|
|
1557
|
-
let n = t[
|
|
1558
|
-
this.borrowed = n !== void 0, this._mode =
|
|
1577
|
+
let n = t[zt];
|
|
1578
|
+
this.borrowed = n !== void 0, this._mode = O("PptxViewer", t.mode, n), this.presentationOwner = new T("PptxViewer", n ?? null, !1);
|
|
1559
1579
|
let r = e.ownerDocument?.defaultView ?? (typeof window < "u" ? window : null);
|
|
1560
1580
|
if (!r) throw Error("PptxViewer requires a canvas with an active Window");
|
|
1561
1581
|
this.hostWindow = r;
|
|
1562
1582
|
let i = t.elementHitTolerance ?? 6;
|
|
1563
1583
|
if (!Number.isFinite(i) || i < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
|
|
1564
|
-
this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new
|
|
1584
|
+
this.elementHitTolerance = i, this._hiddenMode = t.hiddenSlideMode ?? "show", this.canvasMount = new ve(e, {
|
|
1565
1585
|
wrapperCssText: "position:relative;display:inline-block;vertical-align:top;",
|
|
1566
1586
|
forceDisplayBlock: !0
|
|
1567
|
-
}), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new
|
|
1568
|
-
let a = new
|
|
1587
|
+
}), this.wrapper = this.canvasMount.wrapper, this.renderDispatcher = new D(e, this._mode === "worker" && !t.enableMediaPlayback), this.errorRouter = new ge("PptxViewer", t.onError);
|
|
1588
|
+
let a = new pe(this.wrapper, t.enableTextSelection === !0, t.enableElementSelection === !0);
|
|
1569
1589
|
this.textLayer = a.textLayer, this.highlightLayer = a.highlightLayer, this.elementLayer = a.elementLayer, this._loadingLayer = this.wrapper.ownerDocument.createElement("span"), this._loadingLayer.style.cssText = [
|
|
1570
1590
|
"position:absolute",
|
|
1571
1591
|
"inset:0",
|
|
@@ -1579,14 +1599,14 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1579
1599
|
let o = this.wrapper.ownerDocument.createElement("progress");
|
|
1580
1600
|
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) => {
|
|
1581
1601
|
this._onElementClick(e).catch((e) => this._reportRenderError(e));
|
|
1582
|
-
}, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new
|
|
1602
|
+
}, this.wrapper.addEventListener("click", this.elementClickListener)), t.onContextMenu && (this.contextMenuListener = (e) => this._onContextMenu(e), this.wrapper.addEventListener("contextmenu", this.contextMenuListener)), this._find = new We(() => this.slideCount, (e) => this._collectSlideRuns(e)), n && this._bindLayoutPresentation(n);
|
|
1583
1603
|
}
|
|
1584
1604
|
async load(e) {
|
|
1585
1605
|
if (this.destroyed) throw Error("PptxViewer is destroyed");
|
|
1586
1606
|
if (this.borrowed) throw Error("PptxViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
1587
1607
|
let t = !1;
|
|
1588
1608
|
try {
|
|
1589
|
-
let n = await this.presentationOwner.replace(() =>
|
|
1609
|
+
let n = await this.presentationOwner.replace(() => J.load(e, {
|
|
1590
1610
|
password: this.opts.password,
|
|
1591
1611
|
useGoogleFonts: this.opts.useGoogleFonts,
|
|
1592
1612
|
maxZipEntryBytes: this.opts.maxZipEntryBytes,
|
|
@@ -1652,8 +1672,8 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1652
1672
|
}
|
|
1653
1673
|
_dim() {
|
|
1654
1674
|
return {
|
|
1655
|
-
color: this.opts.hiddenSlideDim?.color ??
|
|
1656
|
-
opacity: this.opts.hiddenSlideDim?.opacity ??
|
|
1675
|
+
color: this.opts.hiddenSlideDim?.color ?? Bt.color,
|
|
1676
|
+
opacity: this.opts.hiddenSlideDim?.opacity ?? Bt.opacity
|
|
1657
1677
|
};
|
|
1658
1678
|
}
|
|
1659
1679
|
async setHiddenSlideMode(e) {
|
|
@@ -1721,14 +1741,14 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1721
1741
|
return this.opts.zoomMax ?? 4;
|
|
1722
1742
|
}
|
|
1723
1743
|
async setScale(e) {
|
|
1724
|
-
let t =
|
|
1744
|
+
let t = ue(e, this._zoomMin(), this._zoomMax()), n = t !== this.getScale();
|
|
1725
1745
|
this._scale = t, await this.renderCurrentSlide(), n && this.opts.onScaleChange?.(t);
|
|
1726
1746
|
}
|
|
1727
1747
|
async zoomIn() {
|
|
1728
|
-
await this.setScale(
|
|
1748
|
+
await this.setScale(ye(this.getScale()));
|
|
1729
1749
|
}
|
|
1730
1750
|
async zoomOut() {
|
|
1731
|
-
await this.setScale(
|
|
1751
|
+
await this.setScale(Se(this.getScale()));
|
|
1732
1752
|
}
|
|
1733
1753
|
async fitWidth() {
|
|
1734
1754
|
await this._fit("width");
|
|
@@ -1740,7 +1760,7 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1740
1760
|
if (!this.engine) return;
|
|
1741
1761
|
let t = this.wrapper.parentElement;
|
|
1742
1762
|
if (!t) return;
|
|
1743
|
-
let n =
|
|
1763
|
+
let n = oe({
|
|
1744
1764
|
contentWidth: this.engine.slideWidth / M,
|
|
1745
1765
|
contentHeight: this.engine.slideHeight / M,
|
|
1746
1766
|
containerWidth: t.clientWidth,
|
|
@@ -1775,14 +1795,14 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1775
1795
|
}
|
|
1776
1796
|
this.handle = n;
|
|
1777
1797
|
} else if (l) {
|
|
1778
|
-
let e = await
|
|
1798
|
+
let e = await Z(this.engine, this.canvas, t, "worker", {
|
|
1779
1799
|
width: a,
|
|
1780
1800
|
dpr: o,
|
|
1781
1801
|
dim: i,
|
|
1782
1802
|
onTextRun: d
|
|
1783
1803
|
});
|
|
1784
1804
|
if (!this.renderDispatcher.commitBitmap(r, e)) return;
|
|
1785
|
-
} else if (await
|
|
1805
|
+
} else if (await Z(this.engine, this.canvas, t, "main", {
|
|
1786
1806
|
width: a,
|
|
1787
1807
|
dpr: o,
|
|
1788
1808
|
onTextRun: d,
|
|
@@ -1799,7 +1819,7 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1799
1819
|
_bindLayoutPresentation(e) {
|
|
1800
1820
|
this._unbindLayoutPresentation(), this._layoutFailed = !1;
|
|
1801
1821
|
let t = !0;
|
|
1802
|
-
this._layoutUnsubscribe =
|
|
1822
|
+
this._layoutUnsubscribe = Pt(e, () => ({
|
|
1803
1823
|
availableSlides: e.availableSlideCount,
|
|
1804
1824
|
slideCount: e.slideCount,
|
|
1805
1825
|
exact: e.layoutComplete,
|
|
@@ -1920,7 +1940,7 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1920
1940
|
}
|
|
1921
1941
|
getSelectionContext(e = {}) {
|
|
1922
1942
|
if (this.destroyed) throw Error("PptxViewer is destroyed");
|
|
1923
|
-
return (this.textLayer ?
|
|
1943
|
+
return (this.textLayer ? X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this.elementContext ? At(this.elementContext, e.maxTextCharacters) : null);
|
|
1924
1944
|
}
|
|
1925
1945
|
_emitSelectionContextChange() {
|
|
1926
1946
|
let e = this.getSelectionContext();
|
|
@@ -1937,10 +1957,10 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1937
1957
|
_redrawElementOutline() {
|
|
1938
1958
|
let e = this.elementContext, t = this.engine;
|
|
1939
1959
|
if (!e || !t || e.slideIndex !== this.currentSlide) {
|
|
1940
|
-
|
|
1960
|
+
E(this.elementLayer, null);
|
|
1941
1961
|
return;
|
|
1942
1962
|
}
|
|
1943
|
-
|
|
1963
|
+
E(this.elementLayer, {
|
|
1944
1964
|
x: e.bounds.x / t.slideWidth,
|
|
1945
1965
|
y: e.bounds.y / t.slideHeight,
|
|
1946
1966
|
width: e.bounds.width / t.slideWidth,
|
|
@@ -1961,7 +1981,7 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1961
1981
|
async _resolveContextAt(e) {
|
|
1962
1982
|
let t = this.engine;
|
|
1963
1983
|
if (this.destroyed || !t) return null;
|
|
1964
|
-
if (this.textLayer &&
|
|
1984
|
+
if (this.textLayer && X(this.wrapper, this.wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this.destroyed ? null : this.getSelectionContext();
|
|
1965
1985
|
if (!this.opts.enableElementSelection) return this.getSelectionContext();
|
|
1966
1986
|
let n = this.canvas.getBoundingClientRect();
|
|
1967
1987
|
if (n.width <= 0 || n.height <= 0) return this._invalidateElementSelection(), null;
|
|
@@ -1985,11 +2005,11 @@ var Pt = Symbol("PptxViewer.borrowedPresentation"), Ft = {
|
|
|
1985
2005
|
destroy() {
|
|
1986
2006
|
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());
|
|
1987
2007
|
}
|
|
1988
|
-
},
|
|
1989
|
-
function
|
|
1990
|
-
return
|
|
2008
|
+
}, Vt = 150, Ht = "0 1px 3px rgba(0,0,0,0.2)", Ut = 12, Wt;
|
|
2009
|
+
function Gt() {
|
|
2010
|
+
return Wt ??= import("./comment-ui-runtime-BelHJt73.js");
|
|
1991
2011
|
}
|
|
1992
|
-
var $ = 440,
|
|
2012
|
+
var $ = 440, Kt = 20, qt = Symbol("PptxScrollViewer.borrowedPresentation"), Jt = class e {
|
|
1993
2013
|
_presentationOwner;
|
|
1994
2014
|
get _pres() {
|
|
1995
2015
|
return this._presentationOwner.current;
|
|
@@ -2044,24 +2064,24 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2044
2064
|
_prevBase = 0;
|
|
2045
2065
|
_lastFitWidth = 0;
|
|
2046
2066
|
_pageShadow;
|
|
2047
|
-
_find = new
|
|
2067
|
+
_find = new We(() => this.slideCount, (e) => this._collectSlideRuns(e));
|
|
2048
2068
|
_findGeneration = 0;
|
|
2049
2069
|
_findActive = !1;
|
|
2050
2070
|
_findMeasureCtx;
|
|
2051
2071
|
static fromPresentation(t, n, r = {}) {
|
|
2052
2072
|
return new e(t, {
|
|
2053
2073
|
...r,
|
|
2054
|
-
[
|
|
2074
|
+
[qt]: n
|
|
2055
2075
|
});
|
|
2056
2076
|
}
|
|
2057
2077
|
constructor(e, t = {}) {
|
|
2058
2078
|
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.");
|
|
2059
|
-
this._container = e, this._opts = t, this._errorRouter = new
|
|
2079
|
+
this._container = e, this._opts = t, this._errorRouter = new ge("PptxScrollViewer", t.onError);
|
|
2060
2080
|
let n = t.elementHitTolerance ?? 6;
|
|
2061
2081
|
if (!Number.isFinite(n) || n < 0) throw RangeError("elementHitTolerance must be a finite non-negative number.");
|
|
2062
|
-
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ??
|
|
2063
|
-
let r = t[
|
|
2064
|
-
this._borrowed = r !== void 0, r ? (this._presentationOwner = new
|
|
2082
|
+
this._elementHitTolerance = n, this._pageShadow = t.pageShadow ?? Ht;
|
|
2083
|
+
let r = t[qt];
|
|
2084
|
+
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() && Gt().then((e) => {
|
|
2065
2085
|
if (!this._destroyed) {
|
|
2066
2086
|
this._commentUi = e;
|
|
2067
2087
|
for (let [e, t] of this._slots) this._redrawSlotComments(e, t);
|
|
@@ -2080,7 +2100,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2080
2100
|
this._pendingZoomAnchor = Number.isFinite(n) && Number.isFinite(r) ? {
|
|
2081
2101
|
x: n,
|
|
2082
2102
|
y: r
|
|
2083
|
-
} : null, this.setScale(
|
|
2103
|
+
} : null, this.setScale(xe(this._scale, e.deltaY));
|
|
2084
2104
|
}, 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());
|
|
2085
2105
|
}
|
|
2086
2106
|
async load(e) {
|
|
@@ -2088,7 +2108,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2088
2108
|
if (this._borrowed) throw Error("PptxScrollViewer.load() is unsupported on a Viewer created by fromPresentation(); the borrowed presentation is already loaded.");
|
|
2089
2109
|
let t = !1;
|
|
2090
2110
|
try {
|
|
2091
|
-
let n = await this._presentationOwner.replace(() =>
|
|
2111
|
+
let n = await this._presentationOwner.replace(() => J.load(e, {
|
|
2092
2112
|
password: this._opts.password,
|
|
2093
2113
|
useGoogleFonts: this._opts.useGoogleFonts,
|
|
2094
2114
|
maxZipEntryBytes: this._opts.maxZipEntryBytes,
|
|
@@ -2150,7 +2170,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2150
2170
|
return r <= 0 ? 0 : r;
|
|
2151
2171
|
}
|
|
2152
2172
|
_commentMarginExtent() {
|
|
2153
|
-
return this._hasCommentMargin() ? (
|
|
2173
|
+
return this._hasCommentMargin() ? (Ut + $) * this._commentZoom() : 0;
|
|
2154
2174
|
}
|
|
2155
2175
|
_hasCommentMargin() {
|
|
2156
2176
|
return this._commentsEnabled() && this._hasComments && this._commentsOptions()?.cards !== !1;
|
|
@@ -2170,8 +2190,8 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2170
2190
|
}
|
|
2171
2191
|
_syncCommentMarginGeometry(e) {
|
|
2172
2192
|
if (!e) return;
|
|
2173
|
-
let t = this._commentZoom(), n = `calc(100% + ${
|
|
2174
|
-
e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${
|
|
2193
|
+
let t = this._commentZoom(), n = `calc(100% + ${Ut * t}px)`;
|
|
2194
|
+
e.style.left = this._commentSide() === "right" ? n : "", e.style.right = this._commentSide() === "left" ? n : "", e.style.width = `${$ * t}px`, e.style.fontSize = `${Kt}px`, e.dataset.ooxmlCommentZoom = String(t);
|
|
2175
2195
|
}
|
|
2176
2196
|
_scanAvailableComments(e, t) {
|
|
2177
2197
|
if (!this._commentsEnabled() || this._hasComments) return;
|
|
@@ -2309,7 +2329,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2309
2329
|
o.setAttribute("aria-hidden", "true"), a.appendChild(o), t.appendChild(a);
|
|
2310
2330
|
let s = null, c = null, l = null;
|
|
2311
2331
|
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)));
|
|
2312
|
-
let u =
|
|
2332
|
+
let u = me(t, this._opts.enableElementSelection === !0);
|
|
2313
2333
|
return this._scrollHost.appendChild(t), {
|
|
2314
2334
|
wrapper: t,
|
|
2315
2335
|
canvas: n,
|
|
@@ -2326,7 +2346,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2326
2346
|
commentAnchorGeneration: 0,
|
|
2327
2347
|
renderedSlide: -1,
|
|
2328
2348
|
renderedScale: -1,
|
|
2329
|
-
dispatcher: new
|
|
2349
|
+
dispatcher: new D(n, this._mode === "worker" && !this._opts.enableMediaPlayback),
|
|
2330
2350
|
presentationHandle: null,
|
|
2331
2351
|
mediaInteractive: !1,
|
|
2332
2352
|
renderGeneration: 0,
|
|
@@ -2334,7 +2354,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2334
2354
|
};
|
|
2335
2355
|
}
|
|
2336
2356
|
_recycleSlot(e, t) {
|
|
2337
|
-
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
|
|
2357
|
+
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 = "", t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = ""), 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);
|
|
2338
2358
|
}
|
|
2339
2359
|
_positionSlot(e, t, n) {
|
|
2340
2360
|
e.wrapper.dataset.slideIndex = String(t), e.wrapper.style.top = `${this._slideOffset(t)}px`;
|
|
@@ -2360,7 +2380,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2360
2380
|
if (this._opts.enableMediaPlayback && n) return t.mediaInteractive = !0, this._trackSlotLoading(e, t, i, this._renderInteractiveSlot(e, t, o, a, c, s, r));
|
|
2361
2381
|
if (t.mediaInteractive = !1, this._mode === "worker") return this._trackSlotLoading(e, t, i, this._renderSlotBitmap(e, t, o, a, c, i, l, u, r));
|
|
2362
2382
|
let d = [], f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = p ? (e) => d.push(e) : void 0, h = t.canvas;
|
|
2363
|
-
return this._trackSlotLoading(e, t, i,
|
|
2383
|
+
return this._trackSlotLoading(e, t, i, Z(this._pres, h, e, "main", {
|
|
2364
2384
|
width: o,
|
|
2365
2385
|
dpr: a,
|
|
2366
2386
|
onTextRun: m
|
|
@@ -2381,7 +2401,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2381
2401
|
_bindLayoutPresentation(e) {
|
|
2382
2402
|
this._unbindLayoutPresentation();
|
|
2383
2403
|
let t = !0;
|
|
2384
|
-
this._layoutUnsubscribe =
|
|
2404
|
+
this._layoutUnsubscribe = Pt(e, () => ({
|
|
2385
2405
|
availableSlides: e.availableSlideCount,
|
|
2386
2406
|
slideCount: e.slideCount,
|
|
2387
2407
|
exact: e.layoutComplete,
|
|
@@ -2465,7 +2485,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2465
2485
|
this._slideInFlight.add(e);
|
|
2466
2486
|
let u = t.canvas, d = !1, f = !!this._opts.enableTextSelection && !!t.textLayer, p = f || this._findActive, m = [];
|
|
2467
2487
|
try {
|
|
2468
|
-
let c = await
|
|
2488
|
+
let c = await Z(this._pres, u, e, "worker", {
|
|
2469
2489
|
width: n,
|
|
2470
2490
|
dpr: r,
|
|
2471
2491
|
onTextRun: p ? (e) => m.push(e) : void 0
|
|
@@ -2505,7 +2525,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2505
2525
|
let h = Math.max(0, m.totalHeight - this._scrollHost.clientHeight), g = this._slideOffset(l) + d * this._uniformSlideHeight, _ = c < this._slideOffset(0) ? s : g - o;
|
|
2506
2526
|
if (this._scrollHost.scrollTop = Math.min(h, Math.max(0, _)), i) {
|
|
2507
2527
|
let e = Math.max(0, (this._spacer.offsetWidth || 0) - this._scrollHost.clientWidth);
|
|
2508
|
-
this._scrollHost.scrollLeft =
|
|
2528
|
+
this._scrollHost.scrollLeft = se(p, i.x - f, a, r, { maxScroll: e });
|
|
2509
2529
|
}
|
|
2510
2530
|
this._previewVisible(), this._scheduleSettle(), this._opts.onScaleChange?.(r);
|
|
2511
2531
|
}
|
|
@@ -2513,10 +2533,10 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2513
2533
|
return this._scaleEstablished ? this._scale : this._pendingScale ?? 1;
|
|
2514
2534
|
}
|
|
2515
2535
|
zoomIn() {
|
|
2516
|
-
this.setScale(
|
|
2536
|
+
this.setScale(ye(this.getScale()));
|
|
2517
2537
|
}
|
|
2518
2538
|
zoomOut() {
|
|
2519
|
-
this.setScale(
|
|
2539
|
+
this.setScale(Se(this.getScale()));
|
|
2520
2540
|
}
|
|
2521
2541
|
fitWidth() {
|
|
2522
2542
|
this._fit("width");
|
|
@@ -2526,7 +2546,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2526
2546
|
}
|
|
2527
2547
|
_fit(e) {
|
|
2528
2548
|
if (!this._pres || this._pres.slideCount === 0) return;
|
|
2529
|
-
let t =
|
|
2549
|
+
let t = oe({
|
|
2530
2550
|
contentWidth: this._pres.slideWidth / M,
|
|
2531
2551
|
contentHeight: this._pres.slideHeight / M,
|
|
2532
2552
|
containerWidth: this._fitWidthPx(),
|
|
@@ -2566,7 +2586,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2566
2586
|
_scheduleSettle() {
|
|
2567
2587
|
this._settleTimer !== null && clearTimeout(this._settleTimer), this._settleTimer = setTimeout(() => {
|
|
2568
2588
|
this._settleTimer = null, this._settleRender();
|
|
2569
|
-
},
|
|
2589
|
+
}, Vt);
|
|
2570
2590
|
}
|
|
2571
2591
|
_settleRender() {
|
|
2572
2592
|
if (this._destroyed || !this._pres || this._pres.slideCount === 0) return;
|
|
@@ -2587,8 +2607,8 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2587
2607
|
}
|
|
2588
2608
|
let o = document.createElement("canvas"), s = ++t.renderGeneration;
|
|
2589
2609
|
o.style.cssText = "display:block;background:#fff;", this._applyPageShadow(o);
|
|
2590
|
-
let c = new
|
|
2591
|
-
|
|
2610
|
+
let c = new D(o, !1), l = c.begin(), u = [], d = !!this._opts.enableTextSelection && !!t.textLayer, f = d || this._findActive, p = f ? (e) => u.push(e) : void 0;
|
|
2611
|
+
Z(this._pres, o, e, "main", {
|
|
2592
2612
|
width: r,
|
|
2593
2613
|
dpr: n,
|
|
2594
2614
|
onTextRun: p
|
|
@@ -2621,7 +2641,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2621
2641
|
return;
|
|
2622
2642
|
}
|
|
2623
2643
|
let d = t.canvas, f = t.presentationHandle;
|
|
2624
|
-
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new
|
|
2644
|
+
t.dispatcher.destroy(), t.wrapper.insertBefore(s, d), d.remove(), t.canvas = s, t.dispatcher = new D(s, !1), t.presentationHandle = r, t.renderedScale = i, f?.destroy(), t.textLayer && (t.textLayer.style.transform = "", t.textLayer.style.transformOrigin = "", l && 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);
|
|
2625
2645
|
}).catch((e) => {
|
|
2626
2646
|
o === t.presentationGeneration && this._reportRenderError(e);
|
|
2627
2647
|
});
|
|
@@ -2895,9 +2915,9 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2895
2915
|
if (this._destroyed) throw Error("PptxScrollViewer is destroyed");
|
|
2896
2916
|
if (this._pres && this._activeCommentId !== null && this._activeCommentSlide !== null) {
|
|
2897
2917
|
let t = this._pres.getComments(this._activeCommentSlide), n = t.findIndex((e, t) => P(e, t, this._activeCommentSlide) === this._activeCommentId), r = t[n];
|
|
2898
|
-
if (r && n >= 0) return
|
|
2918
|
+
if (r && n >= 0) return Lt(r, this._activeCommentSlide, n, this._activeCommentId, e);
|
|
2899
2919
|
}
|
|
2900
|
-
return (this._opts.enableTextSelection ?
|
|
2920
|
+
return (this._opts.enableTextSelection ? X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null, e) : null) ?? (this._elementContext ? At(this._elementContext, e.maxTextCharacters) : null);
|
|
2901
2921
|
}
|
|
2902
2922
|
_emitSelectionContextChange() {
|
|
2903
2923
|
let e = this.getSelectionContext();
|
|
@@ -2917,10 +2937,10 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2917
2937
|
_redrawElementOutlineForSlot(e, t) {
|
|
2918
2938
|
let n = this._elementContext, r = this._pres;
|
|
2919
2939
|
if (!n || !r || n.slideIndex !== e) {
|
|
2920
|
-
|
|
2940
|
+
E(t.elementLayer, null);
|
|
2921
2941
|
return;
|
|
2922
2942
|
}
|
|
2923
|
-
|
|
2943
|
+
E(t.elementLayer, {
|
|
2924
2944
|
x: n.bounds.x / r.slideWidth,
|
|
2925
2945
|
y: n.bounds.y / r.slideHeight,
|
|
2926
2946
|
width: n.bounds.width / r.slideWidth,
|
|
@@ -2941,7 +2961,7 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2941
2961
|
async _resolveContextAt(e) {
|
|
2942
2962
|
let t = this._pres;
|
|
2943
2963
|
if (this._destroyed || !t) return null;
|
|
2944
|
-
if (this._opts.enableTextSelection &&
|
|
2964
|
+
if (this._opts.enableTextSelection && X(this._wrapper, this._wrapper.ownerDocument?.getSelection?.() ?? null)) return this._emitSelectionContextChange(), this._destroyed ? null : this.getSelectionContext();
|
|
2945
2965
|
if (!this._opts.enableElementSelection) return this.getSelectionContext();
|
|
2946
2966
|
let n = e.target, r = [...this._slots].find(([, e]) => n !== null && e.wrapper.contains(n));
|
|
2947
2967
|
if (!r) return this._invalidateElementSelection(), null;
|
|
@@ -2971,20 +2991,20 @@ var $ = 440, Ht = 20, Ut = Symbol("PptxScrollViewer.borrowedPresentation"), Wt =
|
|
|
2971
2991
|
this._free.length = 0, this._presentationOwner.close(), this._wrapper.remove();
|
|
2972
2992
|
}
|
|
2973
2993
|
}
|
|
2974
|
-
},
|
|
2994
|
+
}, Yt = /* @__PURE__ */ e({
|
|
2975
2995
|
OoxmlDecodedImageLimitError: () => je,
|
|
2976
2996
|
OoxmlError: () => b,
|
|
2977
2997
|
OoxmlResourceLimitError: () => h,
|
|
2978
|
-
PptxPresentation: () =>
|
|
2979
|
-
PptxScrollViewer: () =>
|
|
2980
|
-
PptxViewer: () =>
|
|
2981
|
-
autoResize: () =>
|
|
2998
|
+
PptxPresentation: () => J,
|
|
2999
|
+
PptxScrollViewer: () => Jt,
|
|
3000
|
+
PptxViewer: () => Q,
|
|
3001
|
+
autoResize: () => be,
|
|
2982
3002
|
buildPptxHighlightLayer: () => L,
|
|
2983
3003
|
buildPptxTextLayer: () => I,
|
|
2984
3004
|
isOoxmlDecodedImageLimitError: () => Me,
|
|
2985
3005
|
openExternalHyperlink: () => x,
|
|
2986
|
-
readPptxTextSelectionContext: () =>
|
|
3006
|
+
readPptxTextSelectionContext: () => X,
|
|
2987
3007
|
renderSlide: () => f
|
|
2988
3008
|
});
|
|
2989
3009
|
//#endregion
|
|
2990
|
-
export {
|
|
3010
|
+
export { J as a, X as i, Jt as n, L as o, Q as r, I as s, Yt as t };
|