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