@forevka/wordcanvas 0.7.2 → 0.7.3

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.
Files changed (49) hide show
  1. package/dist-lib/assets/{worker-4HYrkNrG.js → worker-CqU4Popa.js} +399 -375
  2. package/dist-lib/assets/{worker-CJpwUzKh.js → worker-Cw5cYW5z.js} +359 -344
  3. package/dist-lib/{blockFactory-B_CLnkUh.js → blockFactory-DDCRWDnA.js} +16 -31
  4. package/dist-lib/browser-BUrsjziD.js +612 -0
  5. package/dist-lib/builder.js +16 -17
  6. package/dist-lib/editorApp-CB_ZArIF.js +9566 -0
  7. package/dist-lib/export.js +28 -28
  8. package/dist-lib/generate-toc.js +6 -6
  9. package/dist-lib/import.js +2 -2
  10. package/dist-lib/lists-DpmgbDyt.js +110 -0
  11. package/dist-lib/measure.js +2 -2
  12. package/dist-lib/{measureHost-B2aKX7lF.js → measureHost-BlukHGwx.js} +1 -1
  13. package/dist-lib/metrics-bvGO8KDK.js +96 -0
  14. package/dist-lib/paintStyle-vT6jtWbH.js +74 -0
  15. package/dist-lib/{pipeline-DD0nxAYM.js → pipeline-UryP-u7Z.js} +80 -80
  16. package/dist-lib/recalc-docx.js +2 -2
  17. package/dist-lib/{recalcToc-CFCGCgij.js → recalcToc-BfXlXZik.js} +3 -3
  18. package/dist-lib/{stylesheet-B6oczA-L.js → stylesheet-LTBEGkvG.js} +32 -27
  19. package/dist-lib/toc-D09f4PrI.js +939 -0
  20. package/dist-lib/{webmcp-CXghUon_.js → webmcp-K6UZgQJ0.js} +60 -68
  21. package/dist-lib/wordcanvas-DBx2ana_.js +734 -0
  22. package/dist-lib/wordcanvas.js +4 -2
  23. package/dist-node/{chunk-PIMVQULL.js → chunk-373K2XRY.js} +34 -22
  24. package/dist-node/chunk-373K2XRY.js.map +7 -0
  25. package/dist-node/{chunk-57L5XMCL.js → chunk-3PUV3BG6.js} +2 -2
  26. package/dist-node/{chunk-U27EBKBG.js → chunk-5RX3IHWE.js} +3 -3
  27. package/dist-node/chunk-5RX3IHWE.js.map +7 -0
  28. package/dist-node/{chunk-SA26UVIJ.js → chunk-HWQKGDS2.js} +2 -2
  29. package/dist-node/{chunk-T3253N22.js → chunk-ZLLSXOO2.js} +3 -3
  30. package/dist-node/{engine-5F7DUU4W.js → engine-LLA6PCS5.js} +4 -4
  31. package/dist-node/export.js +5 -5
  32. package/dist-node/generate-toc.js +4 -4
  33. package/dist-node/import.js +2 -2
  34. package/dist-node/measure.js +2 -2
  35. package/dist-node/recalc-docx.js +3 -3
  36. package/package.json +1 -1
  37. package/types/wordcanvas.d.ts +649 -212
  38. package/dist-lib/browser-p_rkUcqE.js +0 -1339
  39. package/dist-lib/editorApp-mTD0YNv-.js +0 -9863
  40. package/dist-lib/lists-Sc5I40JO.js +0 -110
  41. package/dist-lib/metrics-BUMIC9Mv.js +0 -164
  42. package/dist-lib/toc-Dj57zdz-.js +0 -213
  43. package/dist-lib/wordcanvas-D5DI9ZR1.js +0 -151
  44. package/dist-node/chunk-PIMVQULL.js.map +0 -7
  45. package/dist-node/chunk-U27EBKBG.js.map +0 -7
  46. /package/dist-node/{chunk-57L5XMCL.js.map → chunk-3PUV3BG6.js.map} +0 -0
  47. /package/dist-node/{chunk-SA26UVIJ.js.map → chunk-HWQKGDS2.js.map} +0 -0
  48. /package/dist-node/{chunk-T3253N22.js.map → chunk-ZLLSXOO2.js.map} +0 -0
  49. /package/dist-node/{engine-5F7DUU4W.js.map → engine-LLA6PCS5.js.map} +0 -0
@@ -1,1339 +0,0 @@
1
- const Be = [
2
- "header",
3
- "footer",
4
- "headerFirst",
5
- "headerEven",
6
- "footerFirst",
7
- "footerEven"
8
- ], rr = new Intl.Segmenter(void 0, { granularity: "grapheme" }), tr = new Intl.Segmenter(void 0, { granularity: "word" }), Lr = (r) => r.runs.some((e) => e.text.length > 0) && r.runs.every((e) => e.text.length === 0 || e.style.hidden === !0), Fe = (r, e) => {
9
- const t = [];
10
- for (const n of r)
11
- if (n.kind === "paragraph") t.push(n);
12
- else if (n.kind === "table" && e)
13
- for (const s of n.rows)
14
- for (const o of s.cells) t.push(...Fe(o.blocks, e));
15
- return t;
16
- }, hr = (r, e) => Fe(r.section[e] ?? [], !0), qr = (r) => Fe(r.blocks, !0), nr = (r) => [
17
- ...Fe(r.blocks, !0),
18
- ...Be.flatMap((e) => hr(r, e)),
19
- ...Object.values(r.footnotes ?? {}).flat()
20
- ], vr = (r, e) => nr(r).find((t) => t.id === e), Vr = (r, e) => nr(r).findIndex((t) => t.id === e), ze = (r, e) => {
21
- for (const t of r)
22
- if (e.add(t.id), t.kind === "table")
23
- for (const n of t.rows) for (const s of n.cells) ze(s.blocks, e);
24
- }, Yr = (r, e) => {
25
- const t = /* @__PURE__ */ new Set();
26
- ze(r.blocks, t);
27
- for (const n of Be) ze(r.section[n] ?? [], t);
28
- for (const n of Object.values(r.footnotes ?? {})) for (const s of n) t.add(s.id);
29
- return t.has(e);
30
- }, sr = (r, e) => e === "body" ? r.blocks : r.section[e] ?? [];
31
- function Je(r, e, t) {
32
- for (let n = 0; n < r.length; n++) {
33
- const s = r[n];
34
- if (s.kind === "paragraph") {
35
- if (s.id === t)
36
- return e === "body" ? { kind: "top", bi: n } : { kind: "band", band: e, bi: n };
37
- } else if (s.kind === "table")
38
- for (let o = 0; o < s.rows.length; o++) {
39
- const l = s.rows[o];
40
- for (let a = 0; a < l.cells.length; a++) {
41
- const i = l.cells[a];
42
- for (let f = 0; f < i.blocks.length; f++) {
43
- const c = i.blocks[f];
44
- if (c.kind === "paragraph" && c.id === t)
45
- return { kind: "cell", where: e, bi: n, ri: o, ci: a, pi: f };
46
- }
47
- }
48
- }
49
- }
50
- return null;
51
- }
52
- function Se(r, e) {
53
- const t = Je(r.blocks, "body", e);
54
- if (t) return t;
55
- for (const n of Be) {
56
- const s = Je(r.section[n] ?? [], n, e);
57
- if (s) return s;
58
- }
59
- for (const [n, s] of Object.entries(r.footnotes ?? {})) {
60
- const o = s.findIndex((l) => l.id === e);
61
- if (o >= 0) return { kind: "footnote", noteId: n, pi: o };
62
- }
63
- return null;
64
- }
65
- function He(r, e) {
66
- return e.kind === "top" ? r.blocks[e.bi] : e.kind === "band" ? r.section[e.band][e.bi] : e.kind === "footnote" ? r.footnotes[e.noteId][e.pi] : sr(r, e.where)[e.bi].rows[e.ri].cells[e.ci].blocks[e.pi];
67
- }
68
- function ke(r, e, t) {
69
- if (e.kind === "footnote") {
70
- const i = r.footnotes[e.noteId].slice();
71
- return i[e.pi] = t, { ...r, footnotes: { ...r.footnotes, [e.noteId]: i } };
72
- }
73
- if (e.kind === "band") {
74
- const i = (r.section[e.band] ?? []).slice();
75
- return i[e.bi] = t, { ...r, section: { ...r.section, [e.band]: i } };
76
- }
77
- if (e.kind === "top") {
78
- const i = r.blocks.slice();
79
- return i[e.bi] = t, { ...r, blocks: i };
80
- }
81
- const n = sr(r, e.where).slice(), s = n[e.bi], o = s.rows.slice(), l = { cells: o[e.ri].cells.slice() }, a = { ...l.cells[e.ci], blocks: l.cells[e.ci].blocks.slice() };
82
- return a.blocks[e.pi] = t, l.cells[e.ci] = a, o[e.ri] = l, n[e.bi] = { ...s, rows: o, revision: s.revision + 1 }, e.where === "body" ? { ...r, blocks: n } : { ...r, section: { ...r.section, [e.where]: n } };
83
- }
84
- const Jr = (r, e) => Se(r, e)?.kind === "cell", Ne = (r) => r.map((e) => e.text).join(""), Kr = (r, e) => {
85
- const t = vr(r, e);
86
- return t ? Ne(t.runs) : "";
87
- };
88
- function Qr(r, e) {
89
- let t = 0;
90
- for (const n of rr.segment(r)) {
91
- if (n.index >= e) break;
92
- t = n.index;
93
- }
94
- return t;
95
- }
96
- function Xr(r, e) {
97
- for (const t of rr.segment(r)) {
98
- const n = t.index + t.segment.length;
99
- if (n > e) return n;
100
- }
101
- return r.length;
102
- }
103
- function Zr(r, e) {
104
- let t = 0;
105
- for (const n of tr.segment(r)) {
106
- if (n.index >= e) break;
107
- n.isWordLike && (t = n.index);
108
- }
109
- return t;
110
- }
111
- function _r(r, e) {
112
- for (const t of tr.segment(r)) {
113
- const n = t.index + t.segment.length;
114
- if (t.isWordLike && n > e) return n;
115
- }
116
- return r.length;
117
- }
118
- function kr(r, e) {
119
- let t = 0;
120
- for (const n of r) {
121
- const s = t + n.text.length;
122
- if (e > t && e <= s && n.text.length > 0) return n.style;
123
- t = s;
124
- }
125
- return r[0]?.style;
126
- }
127
- function gr(r, e) {
128
- return r.fontFamily === e.fontFamily && r.fontSizePx === e.fontSizePx && r.bold === e.bold && r.italic === e.italic && r.underline === e.underline && r.strikethrough === e.strikethrough && r.color === e.color && !!r.hidden == !!e.hidden && // hidden runs must never merge with visible ones
129
- (r.letterSpacingPx ?? 0) === (e.letterSpacingPx ?? 0) && r.highlightColor === e.highlightColor && r.verticalAlign === e.verticalAlign && r.link === e.link && r.footnoteRef === e.footnoteRef && // adjacent refs must never merge into one run
130
- r.sdtId === e.sdtId && // content-control boundaries survive normalization
131
- r.fieldId === e.fieldId;
132
- }
133
- function se(r, e) {
134
- const t = r.filter((s) => s.text.length > 0);
135
- if (t.length === 0) return [{ text: "", style: r[0]?.style ?? e }];
136
- const n = [{ ...t[0] }];
137
- for (let s = 1; s < t.length; s++) {
138
- const o = t[s], l = n[n.length - 1];
139
- gr(l.style, o.style) ? l.text += o.text : n.push({ ...o });
140
- }
141
- return n;
142
- }
143
- function J(r, e) {
144
- const t = [], n = [];
145
- let s = 0;
146
- for (const o of r) {
147
- const l = s + o.text.length;
148
- l <= e ? t.push(o) : s >= e ? n.push(o) : (t.push({ text: o.text.slice(0, e - s), style: o.style }), n.push({ text: o.text.slice(e - s), style: o.style })), s = l;
149
- }
150
- return [t, n];
151
- }
152
- function br(r, e, t) {
153
- const [, n] = J(r, e), [s] = J(n, t - e);
154
- return s;
155
- }
156
- function ie(r, e) {
157
- return kr(r, e) ?? {
158
- fontFamily: "Georgia, serif",
159
- fontSizePx: 16,
160
- bold: !1,
161
- italic: !1,
162
- underline: !1,
163
- strikethrough: !1,
164
- color: "#202124"
165
- };
166
- }
167
- function wr(r, e, t, n) {
168
- const s = n ?? ie(r, e), [o, l] = J(r, e);
169
- return se([...o, { text: t, style: s }, ...l], s);
170
- }
171
- function Ir(r, e, t) {
172
- const [n, s] = J(r, e);
173
- return se([...n, ...t, ...s], ie(r, e));
174
- }
175
- function yr(r, e, t) {
176
- const [n, s] = J(r, e), [, o] = J(s, t - e);
177
- return se([...n, ...o], ie(r, e));
178
- }
179
- function et(r, e, t, n) {
180
- const [s, o] = J(r, e), [l, a] = J(o, t - e), i = l.map((f) => ({ text: f.text, style: { ...f.style, ...n } }));
181
- return se([...s, ...i, ...a], ie(r, e));
182
- }
183
- function rt(r, e, t, n) {
184
- const [s, o] = J(r, e), [l, a] = J(o, t - e), i = l.map((d) => d.text).join(""), f = n(i);
185
- let c = 0;
186
- const u = f.length === i.length ? l.map((d) => {
187
- const h = f.slice(c, c + d.text.length);
188
- return c += d.text.length, { text: h, style: d.style };
189
- }) : l;
190
- return se([...s, ...u, ...a], ie(r, e));
191
- }
192
- const z = (r) => r;
193
- function ge(r, e) {
194
- const t = Se(r, e);
195
- if (!t) throw new Error(`paragraph ${e} not found`);
196
- return { loc: t, block: He(r, t) };
197
- }
198
- function $(r, e) {
199
- return e === "body" ? r.blocks : r.section[e] ?? [];
200
- }
201
- function le(r, e, t) {
202
- return e === "body" ? { ...r, blocks: t } : { ...r, section: { ...r.section, [e]: t } };
203
- }
204
- function qe(r, e) {
205
- for (const t of ["body", ...Be]) {
206
- const n = $(r, t).findIndex((s) => s.id === e);
207
- if (n >= 0) return { where: t, index: n };
208
- }
209
- return null;
210
- }
211
- function re(r, e) {
212
- const t = qe(r, e), n = t ? $(r, t.where)[t.index] : void 0;
213
- if (!t || !n || n.kind !== "table") throw new Error(`table ${e} not found`);
214
- return { where: t.where, bi: t.index, block: n };
215
- }
216
- function te(r, e, t, n) {
217
- const s = $(r, e).slice();
218
- return s[t] = { ...n, revision: n.revision + 1 }, le(r, e, s);
219
- }
220
- function pe(r, e, t, n, s, o) {
221
- const l = $(r, e).slice(), a = l[t], i = a.rows.slice(), f = { cells: i[n].cells.slice() };
222
- return f.cells[s] = { ...f.cells[s], blocks: o }, i[n] = f, l[t] = { ...a, rows: i, revision: a.revision + 1 }, le(r, e, l);
223
- }
224
- function Pe(r) {
225
- for (const e of r)
226
- for (const t of e.cells)
227
- for (const n of t.blocks) if (n.kind === "paragraph") return n;
228
- }
229
- function mr(r, e) {
230
- const t = qe(r, e);
231
- if (t) {
232
- const n = $(r, t.where)[t.index];
233
- return n?.kind === "image" ? { kind: "top", where: t.where, index: t.index, image: n } : null;
234
- }
235
- for (let n = 0; n < r.blocks.length; n++) {
236
- const s = r.blocks[n];
237
- if (s.kind === "table")
238
- for (let o = 0; o < s.rows.length; o++) {
239
- const l = s.rows[o];
240
- for (let a = 0; a < l.cells.length; a++) {
241
- const i = l.cells[a];
242
- for (let f = 0; f < i.blocks.length; f++) {
243
- const c = i.blocks[f];
244
- if (c.kind === "image" && c.id === e) return { kind: "cell", bi: n, ri: o, ci: a, ii: f, image: c };
245
- }
246
- }
247
- }
248
- }
249
- return null;
250
- }
251
- function xr(r) {
252
- let e = 1;
253
- const t = [];
254
- for (const n of r.rows) {
255
- let s = 0;
256
- for (const o of n.cells) {
257
- for (; (t[s] ?? 0) > 0; ) s++;
258
- const l = Math.max(1, o.colSpan ?? 1), a = Math.max(1, o.rowSpan ?? 1);
259
- if (a > 1) for (let i = 0; i < l; i++) t[s + i] = a;
260
- s += l;
261
- }
262
- e = Math.max(e, s);
263
- for (let o = 0; o < t.length; o++) t[o] > 0 && t[o]--;
264
- }
265
- return e;
266
- }
267
- function Me(r) {
268
- const e = xr(r);
269
- return r.colFractions && r.colFractions.length === e ? r.colFractions : Array.from({ length: e }, () => 1 / e);
270
- }
271
- function ue(r, e) {
272
- return { ...r, runs: e, revision: r.revision + 1 };
273
- }
274
- function tt(r, e) {
275
- switch (e.type) {
276
- case "insertText": {
277
- const { loc: t, block: n } = ge(r, e.at.blockId), s = wr(n.runs, e.at.offset, e.text, e.style), o = e.text.length;
278
- return {
279
- doc: ke(r, t, ue(n, s)),
280
- inverse: { type: "deleteRange", blockId: n.id, start: e.at.offset, end: e.at.offset + o },
281
- mapPosition: (l) => l.blockId === n.id && l.offset >= e.at.offset ? { blockId: l.blockId, offset: l.offset + o } : l,
282
- dirtyBlockIds: [n.id]
283
- };
284
- }
285
- case "insertRuns": {
286
- const { loc: t, block: n } = ge(r, e.at.blockId), s = Ne(e.runs).length, o = Ir(n.runs, e.at.offset, e.runs);
287
- return {
288
- doc: ke(r, t, ue(n, o)),
289
- inverse: { type: "deleteRange", blockId: n.id, start: e.at.offset, end: e.at.offset + s },
290
- mapPosition: (l) => l.blockId === n.id && l.offset >= e.at.offset ? { blockId: l.blockId, offset: l.offset + s } : l,
291
- dirtyBlockIds: [n.id]
292
- };
293
- }
294
- case "deleteRange": {
295
- const { loc: t, block: n } = ge(r, e.blockId), s = br(n.runs, e.start, e.end), o = yr(n.runs, e.start, e.end), l = e.end - e.start;
296
- return {
297
- doc: ke(r, t, ue(n, o)),
298
- inverse: { type: "insertRuns", at: { blockId: n.id, offset: e.start }, runs: s },
299
- mapPosition: (a) => a.blockId !== n.id || a.offset <= e.start ? a : { blockId: a.blockId, offset: a.offset >= e.end ? a.offset - l : e.start },
300
- dirtyBlockIds: [n.id]
301
- };
302
- }
303
- case "setRuns": {
304
- const { loc: t, block: n } = ge(r, e.blockId);
305
- return {
306
- doc: ke(r, t, ue(n, e.runs)),
307
- inverse: { type: "setRuns", blockId: n.id, runs: n.runs },
308
- mapPosition: z,
309
- // callers use setRuns for length-preserving restyles
310
- dirtyBlockIds: [n.id]
311
- };
312
- }
313
- case "setParaStyle": {
314
- const { loc: t, block: n } = ge(r, e.blockId), s = {};
315
- for (const l of Object.keys(e.patch))
316
- s[l] = n.style[l];
317
- const o = {
318
- ...n,
319
- style: { ...n.style, ...e.patch },
320
- revision: n.revision + 1
321
- };
322
- return {
323
- doc: ke(r, t, o),
324
- inverse: { type: "setParaStyle", blockId: n.id, patch: s },
325
- mapPosition: z,
326
- dirtyBlockIds: [n.id]
327
- };
328
- }
329
- case "splitParagraph": {
330
- const t = Se(r, e.at.blockId);
331
- if (!t) throw new Error(`paragraph ${e.at.blockId} not found`);
332
- const n = He(r, t), [s, o] = J(n.runs, e.at.offset), l = ie(n.runs, e.at.offset), a = ue(n, se(s, l)), i = {
333
- kind: "paragraph",
334
- id: e.newBlockId,
335
- revision: 0,
336
- runs: se(o, l),
337
- style: e.newStyle ?? { ...n.style }
338
- };
339
- let f;
340
- if (t.kind === "cell") {
341
- const u = $(r, t.where)[t.bi].rows[t.ri].cells[t.ci].blocks.slice();
342
- u.splice(t.pi, 1, a, i), f = pe(r, t.where, t.bi, t.ri, t.ci, u);
343
- } else if (t.kind === "footnote") {
344
- const c = r.footnotes[t.noteId].slice();
345
- c.splice(t.pi, 1, a, i), f = { ...r, footnotes: { ...r.footnotes, [t.noteId]: c } };
346
- } else {
347
- const c = t.kind === "band" ? t.band : "body", u = $(r, c).slice();
348
- u.splice(t.bi, 1, a, i), f = le(r, c, u);
349
- }
350
- return {
351
- doc: f,
352
- inverse: { type: "mergeParagraphs", firstBlockId: n.id },
353
- mapPosition: (c) => c.blockId === n.id && c.offset >= e.at.offset ? { blockId: e.newBlockId, offset: c.offset - e.at.offset } : c,
354
- dirtyBlockIds: [n.id, e.newBlockId]
355
- };
356
- }
357
- case "mergeParagraphs": {
358
- const t = Se(r, e.firstBlockId);
359
- if (!t) throw new Error(`paragraph ${e.firstBlockId} not found`);
360
- const n = He(r, t);
361
- let s;
362
- if (t.kind === "cell") {
363
- const f = $(r, t.where)[t.bi].rows[t.ri].cells[t.ci].blocks[t.pi + 1];
364
- if (!f || f.kind !== "paragraph")
365
- throw new Error("mergeParagraphs: no next paragraph in cell");
366
- s = f;
367
- } else if (t.kind === "footnote") {
368
- const i = r.footnotes[t.noteId][t.pi + 1];
369
- if (!i) throw new Error("mergeParagraphs: no next paragraph in footnote");
370
- s = i;
371
- } else {
372
- const i = t.kind === "band" ? t.band : "body", f = $(r, i)[t.bi + 1];
373
- if (!f || f.kind !== "paragraph")
374
- throw new Error("mergeParagraphs: no next paragraph");
375
- s = f;
376
- }
377
- const o = Ne(n.runs).length, l = ue(
378
- n,
379
- se([...n.runs, ...s.runs], ie(n.runs, o))
380
- );
381
- let a;
382
- if (t.kind === "cell") {
383
- const f = $(r, t.where)[t.bi].rows[t.ri].cells[t.ci].blocks.slice();
384
- f.splice(t.pi, 2, l), a = pe(r, t.where, t.bi, t.ri, t.ci, f);
385
- } else if (t.kind === "footnote") {
386
- const i = r.footnotes[t.noteId].slice();
387
- i.splice(t.pi, 2, l), a = { ...r, footnotes: { ...r.footnotes, [t.noteId]: i } };
388
- } else {
389
- const i = t.kind === "band" ? t.band : "body", f = $(r, i).slice();
390
- f.splice(t.bi, 2, l), a = le(r, i, f);
391
- }
392
- return {
393
- doc: a,
394
- inverse: {
395
- type: "splitParagraph",
396
- at: { blockId: n.id, offset: o },
397
- newBlockId: s.id,
398
- newStyle: s.style
399
- },
400
- mapPosition: (i) => i.blockId === s.id ? { blockId: n.id, offset: o + i.offset } : i,
401
- dirtyBlockIds: [n.id, s.id]
402
- };
403
- }
404
- case "insertBlock": {
405
- const t = e.where ?? "body", n = $(r, t).slice();
406
- return n.splice(e.index, 0, e.block), {
407
- doc: le(r, t, n),
408
- inverse: { type: "removeBlock", blockId: e.block.id },
409
- mapPosition: z,
410
- dirtyBlockIds: [e.block.id]
411
- };
412
- }
413
- case "removeBlock": {
414
- const t = qe(r, e.blockId);
415
- if (!t) throw new Error(`block ${e.blockId} not found`);
416
- const n = $(r, t.where).slice(), s = n[t.index];
417
- n.splice(t.index, 1);
418
- const o = n[Math.min(t.index, n.length - 1)];
419
- return {
420
- doc: le(r, t.where, n),
421
- inverse: { type: "insertBlock", index: t.index, block: s, where: t.where },
422
- mapPosition: (l) => l.blockId === e.blockId && o ? { blockId: o.id, offset: 0 } : l,
423
- dirtyBlockIds: [e.blockId]
424
- };
425
- }
426
- case "setImageProps": {
427
- const t = mr(r, e.blockId);
428
- if (!t) throw new Error(`image ${e.blockId} not found`);
429
- const n = t.image, s = {};
430
- e.patch.widthPx !== void 0 && (s.widthPx = n.widthPx), e.patch.heightPx !== void 0 && (s.heightPx = n.heightPx), e.patch.align !== void 0 && (s.align = n.align), e.patch.wrap !== void 0 && (s.wrap = n.wrap ?? null), e.patch.anchor !== void 0 && (s.anchor = n.anchor ?? null);
431
- const o = { ...n, revision: n.revision + 1 };
432
- e.patch.widthPx !== void 0 && (o.widthPx = e.patch.widthPx), e.patch.heightPx !== void 0 && (o.heightPx = e.patch.heightPx), e.patch.align !== void 0 && (o.align = e.patch.align), e.patch.wrap !== void 0 && (e.patch.wrap === null ? delete o.wrap : o.wrap = e.patch.wrap), e.patch.anchor !== void 0 && (e.patch.anchor === null ? delete o.anchor : o.anchor = e.patch.anchor);
433
- let l;
434
- if (t.kind === "top") {
435
- const a = $(r, t.where).slice();
436
- a[t.index] = o, l = le(r, t.where, a);
437
- } else {
438
- const i = r.blocks[t.bi].rows[t.ri].cells[t.ci].blocks.slice();
439
- i[t.ii] = o, l = pe(r, "body", t.bi, t.ri, t.ci, i);
440
- }
441
- return {
442
- doc: l,
443
- inverse: { type: "setImageProps", blockId: e.blockId, patch: s },
444
- mapPosition: z,
445
- dirtyBlockIds: [e.blockId]
446
- };
447
- }
448
- case "setTableColFractions": {
449
- const { where: t, bi: n, block: s } = re(r, e.blockId), o = Me(s);
450
- return {
451
- doc: te(r, t, n, { ...s, colFractions: e.fractions }),
452
- inverse: { type: "setTableColFractions", blockId: e.blockId, fractions: o },
453
- mapPosition: z,
454
- dirtyBlockIds: [e.blockId]
455
- };
456
- }
457
- case "setTableRow": {
458
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = s.rows[e.rowIndex];
459
- if (!o) throw new Error("setTableRow: no such row");
460
- const l = new Set(o.cells.flatMap((f) => f.blocks.map((c) => c.id))), a = s.rows.slice();
461
- a[e.rowIndex] = e.row;
462
- const i = Pe([e.row]);
463
- return {
464
- doc: te(r, t, n, { ...s, rows: a }),
465
- inverse: { type: "setTableRow", tableId: e.tableId, rowIndex: e.rowIndex, row: o },
466
- mapPosition: (f) => l.has(f.blockId) ? e.row.cells.some((u) => u.blocks.some((d) => d.id === f.blockId)) || !i ? f : { blockId: i.id, offset: 0 } : f,
467
- dirtyBlockIds: [e.tableId]
468
- };
469
- }
470
- case "insertTableRow": {
471
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = s.rows.slice();
472
- return o.splice(e.rowIndex, 0, e.row), {
473
- doc: te(r, t, n, { ...s, rows: o }),
474
- inverse: { type: "removeTableRow", tableId: e.tableId, rowIndex: e.rowIndex },
475
- mapPosition: z,
476
- dirtyBlockIds: [e.tableId]
477
- };
478
- }
479
- case "removeTableRow": {
480
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = s.rows[e.rowIndex];
481
- if (!o) throw new Error("removeTableRow: no such row");
482
- const l = s.rows.slice();
483
- l.splice(e.rowIndex, 1);
484
- const a = new Set(o.cells.flatMap((c) => c.blocks.map((u) => u.id))), i = l[Math.min(e.rowIndex, l.length - 1)], f = i ? Pe([i]) : void 0;
485
- return {
486
- doc: te(r, t, n, { ...s, rows: l }),
487
- inverse: { type: "insertTableRow", tableId: e.tableId, rowIndex: e.rowIndex, row: o },
488
- mapPosition: (c) => a.has(c.blockId) && f ? { blockId: f.id, offset: 0 } : c,
489
- dirtyBlockIds: [e.tableId]
490
- };
491
- }
492
- case "setListDefinition": {
493
- const t = r.lists?.[e.listId] ?? null, n = { ...r.lists ?? {} };
494
- return e.def ? n[e.listId] = e.def : delete n[e.listId], {
495
- doc: { ...r, lists: n },
496
- inverse: { type: "setListDefinition", listId: e.listId, def: t },
497
- mapPosition: z,
498
- // Indents come from the definition → every paragraph in the list must
499
- // re-measure; their (revision,width) line-cache keys change with width.
500
- dirtyBlockIds: []
501
- };
502
- }
503
- case "setTableStructure": {
504
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = new Set(
505
- s.rows.flatMap((f) => f.cells.flatMap((c) => c.blocks.map((u) => u.id)))
506
- ), l = Pe(e.rows), a = { ...s, rows: e.rows };
507
- e.colFractions ? a.colFractions = e.colFractions : delete a.colFractions;
508
- const i = { type: "setTableStructure", tableId: e.tableId, rows: s.rows };
509
- return s.colFractions && (i.colFractions = s.colFractions), {
510
- doc: te(r, t, n, a),
511
- inverse: i,
512
- mapPosition: (f) => o.has(f.blockId) ? e.rows.some(
513
- (u) => u.cells.some((d) => d.blocks.some((h) => h.id === f.blockId))
514
- ) || !l ? f : { blockId: l.id, offset: 0 } : f,
515
- dirtyBlockIds: [e.tableId]
516
- };
517
- }
518
- case "insertTableColumn": {
519
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = { type: "setTableStructure", tableId: e.tableId, rows: s.rows };
520
- s.colFractions && (o.colFractions = s.colFractions);
521
- const l = s.rows.map((i, f) => {
522
- const c = [];
523
- let u = 0, d = !1;
524
- for (const h of i.cells) {
525
- const v = h.colSpan ?? 1;
526
- if (!d && e.colIndex > u && e.colIndex < u + v)
527
- c.push({ ...h, colSpan: v + 1 }), d = !0;
528
- else if (!d && e.colIndex === u) {
529
- const g = e.cells[f];
530
- g && c.push(g), c.push(h), d = !0;
531
- } else
532
- c.push(h);
533
- u += v;
534
- }
535
- if (!d) {
536
- const h = e.cells[f];
537
- h && c.push(h);
538
- }
539
- return { cells: c };
540
- });
541
- let a = e.fractions;
542
- if (!a) {
543
- const i = Me(s), f = 1 / (i.length + 1);
544
- a = i.map((c) => c * (1 - f)), a.splice(e.colIndex, 0, f);
545
- }
546
- return {
547
- doc: te(r, t, n, { ...s, rows: l, colFractions: a }),
548
- inverse: o,
549
- mapPosition: z,
550
- dirtyBlockIds: [e.tableId]
551
- };
552
- }
553
- case "setStylesheet": {
554
- const t = r.stylesheet ?? { styles: [], defaultStyleId: "Normal" };
555
- return {
556
- doc: { ...r, stylesheet: e.stylesheet },
557
- inverse: { type: "setStylesheet", stylesheet: t },
558
- mapPosition: z,
559
- dirtyBlockIds: []
560
- // restyling paragraphs happens via setRuns/setParaStyle ops
561
- };
562
- }
563
- case "setTableStyleSheet": {
564
- const t = r.tableStyles ?? {};
565
- return {
566
- doc: { ...r, tableStyles: e.tableStyles },
567
- inverse: { type: "setTableStyleSheet", tableStyles: t },
568
- mapPosition: z,
569
- dirtyBlockIds: []
570
- // re-baking cells happens via the table-replace ops
571
- };
572
- }
573
- case "setTableStyleRef": {
574
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = s.styleId ?? null, l = s.condOverrides ?? null, a = { ...s };
575
- return e.styleId === null ? delete a.styleId : a.styleId = e.styleId, e.condOverrides !== void 0 && (e.condOverrides === null ? delete a.condOverrides : a.condOverrides = e.condOverrides), {
576
- doc: te(r, t, n, a),
577
- inverse: { type: "setTableStyleRef", tableId: e.tableId, styleId: o, condOverrides: l },
578
- mapPosition: z,
579
- dirtyBlockIds: [e.tableId]
580
- };
581
- }
582
- case "setSectionProps": {
583
- const t = r.section, n = {
584
- pageWidthPx: t.pageWidthPx,
585
- pageHeightPx: t.pageHeightPx,
586
- marginPx: { ...t.marginPx },
587
- columns: t.columns ? { ...t.columns, ...t.columns.cols ? { cols: t.columns.cols.map((o) => ({ ...o })) } : {} } : null,
588
- pageNumberStart: t.pageNumberStart ?? null,
589
- headerDistancePx: t.headerDistancePx ?? null,
590
- footerDistancePx: t.footerDistancePx ?? null,
591
- pageColorHex: t.pageColorHex ?? null,
592
- pageBorders: t.pageBorders ?? null
593
- }, s = {
594
- ...t,
595
- pageWidthPx: e.geometry.pageWidthPx,
596
- pageHeightPx: e.geometry.pageHeightPx,
597
- marginPx: e.geometry.marginPx
598
- };
599
- return e.geometry.columns ? s.columns = e.geometry.columns : delete s.columns, e.geometry.pageNumberStart !== null ? s.pageNumberStart = e.geometry.pageNumberStart : delete s.pageNumberStart, e.geometry.headerDistancePx !== null ? s.headerDistancePx = e.geometry.headerDistancePx : delete s.headerDistancePx, e.geometry.footerDistancePx !== null ? s.footerDistancePx = e.geometry.footerDistancePx : delete s.footerDistancePx, e.geometry.pageColorHex !== null ? s.pageColorHex = e.geometry.pageColorHex : delete s.pageColorHex, e.geometry.pageBorders !== null ? s.pageBorders = e.geometry.pageBorders : delete s.pageBorders, {
600
- doc: { ...r, section: s },
601
- inverse: { type: "setSectionProps", geometry: n },
602
- mapPosition: z,
603
- dirtyBlockIds: []
604
- // geometry change → full re-walk; line caches keyed by width
605
- };
606
- }
607
- case "setFootnote": {
608
- const t = r.footnotes?.[e.noteId] ?? null, n = { ...r.footnotes ?? {} };
609
- e.paras ? n[e.noteId] = e.paras : delete n[e.noteId];
610
- const s = new Set((t ?? []).map((l) => l.id)), o = r.blocks.find((l) => l.kind === "paragraph");
611
- return {
612
- doc: { ...r, footnotes: n },
613
- inverse: { type: "setFootnote", noteId: e.noteId, paras: t },
614
- mapPosition: (l) => s.has(l.blockId) ? (e.paras ?? []).some((i) => i.id === l.blockId) || !o ? l : { blockId: o.id, offset: 0 } : l,
615
- dirtyBlockIds: []
616
- };
617
- }
618
- case "setSdtProps": {
619
- const t = r.sdts?.[e.id] ?? null, n = { ...r.sdts ?? {} };
620
- return e.props ? n[e.id] = e.props : delete n[e.id], {
621
- doc: { ...r, sdts: n },
622
- inverse: { type: "setSdtProps", id: e.id, props: t },
623
- mapPosition: z,
624
- dirtyBlockIds: []
625
- // run markers change via setRuns/applyStylePatch ops
626
- };
627
- }
628
- case "setField": {
629
- const t = r.fields?.[e.id] ?? null, n = { ...r.fields ?? {} };
630
- return e.def ? n[e.id] = e.def : delete n[e.id], {
631
- doc: { ...r, fields: n },
632
- inverse: { type: "setField", id: e.id, def: t },
633
- mapPosition: z,
634
- dirtyBlockIds: []
635
- // run/block fieldId markers change via setRuns/insert ops
636
- };
637
- }
638
- case "setTocInstruction": {
639
- const t = r.tocInstruction ?? null, n = { ...r };
640
- return e.instruction !== null ? n.tocInstruction = e.instruction : delete n.tocInstruction, {
641
- doc: n,
642
- inverse: { type: "setTocInstruction", instruction: t },
643
- mapPosition: z,
644
- dirtyBlockIds: []
645
- // entries are regenerated via insert/removeBlock ops in the same tx
646
- };
647
- }
648
- case "setBookmark": {
649
- const t = r.bookmarks?.[e.name] ?? null, n = { ...r.bookmarks ?? {} };
650
- return e.range ? n[e.name] = e.range : delete n[e.name], {
651
- doc: { ...r, bookmarks: n },
652
- inverse: { type: "setBookmark", name: e.name, range: t },
653
- mapPosition: z,
654
- dirtyBlockIds: []
655
- };
656
- }
657
- case "setSectionBand": {
658
- const t = r.section[e.band] ?? null, n = { ...r.section };
659
- e.blocks ? n[e.band] = e.blocks : delete n[e.band];
660
- const s = new Set(
661
- (t ?? []).filter((l) => l.kind === "paragraph").map((l) => l.id)
662
- ), o = r.blocks.find((l) => l.kind === "paragraph");
663
- return {
664
- doc: { ...r, section: n },
665
- inverse: { type: "setSectionBand", band: e.band, blocks: t },
666
- mapPosition: (l) => s.has(l.blockId) ? (e.blocks ?? []).some((i) => i.id === l.blockId) || !o ? l : { blockId: o.id, offset: 0 } : l,
667
- dirtyBlockIds: []
668
- };
669
- }
670
- case "removeTableColumn": {
671
- const { where: t, bi: n, block: s } = re(r, e.tableId), o = { type: "setTableStructure", tableId: e.tableId, rows: s.rows };
672
- s.colFractions && (o.colFractions = s.colFractions);
673
- const l = Me(s), a = /* @__PURE__ */ new Set(), i = s.rows.map((h) => {
674
- const v = [];
675
- let g = 0;
676
- for (const w of h.cells) {
677
- const I = w.colSpan ?? 1;
678
- if (e.colIndex >= g && e.colIndex < g + I)
679
- if (I > 1) {
680
- const m = { ...w };
681
- I - 1 > 1 ? m.colSpan = I - 1 : delete m.colSpan, v.push(m);
682
- } else
683
- for (const m of w.blocks) a.add(m.id);
684
- else
685
- v.push(w);
686
- g += I;
687
- }
688
- return { cells: v };
689
- }), f = l.filter((h, v) => v !== e.colIndex), c = f.reduce((h, v) => h + v, 0) || 1, u = f.map((h) => h / c), d = Pe(i);
690
- return {
691
- doc: te(r, t, n, { ...s, rows: i, colFractions: u }),
692
- inverse: o,
693
- mapPosition: (h) => a.has(h.blockId) && d ? { blockId: d.id, offset: 0 } : h,
694
- dirtyBlockIds: [e.tableId]
695
- };
696
- }
697
- }
698
- }
699
- var T = Uint8Array, L = Uint16Array, Ve = Int32Array, Te = new T([
700
- 0,
701
- 0,
702
- 0,
703
- 0,
704
- 0,
705
- 0,
706
- 0,
707
- 0,
708
- 1,
709
- 1,
710
- 1,
711
- 1,
712
- 2,
713
- 2,
714
- 2,
715
- 2,
716
- 3,
717
- 3,
718
- 3,
719
- 3,
720
- 4,
721
- 4,
722
- 4,
723
- 4,
724
- 5,
725
- 5,
726
- 5,
727
- 5,
728
- 0,
729
- /* unused */
730
- 0,
731
- 0,
732
- /* impossible */
733
- 0
734
- ]), Ce = new T([
735
- 0,
736
- 0,
737
- 0,
738
- 0,
739
- 1,
740
- 1,
741
- 2,
742
- 2,
743
- 3,
744
- 3,
745
- 4,
746
- 4,
747
- 5,
748
- 5,
749
- 6,
750
- 6,
751
- 7,
752
- 7,
753
- 8,
754
- 8,
755
- 9,
756
- 9,
757
- 10,
758
- 10,
759
- 11,
760
- 11,
761
- 12,
762
- 12,
763
- 13,
764
- 13,
765
- /* unused */
766
- 0,
767
- 0
768
- ]), We = new T([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), or = function(r, e) {
769
- for (var t = new L(31), n = 0; n < 31; ++n)
770
- t[n] = e += 1 << r[n - 1];
771
- for (var s = new Ve(t[30]), n = 1; n < 30; ++n)
772
- for (var o = t[n]; o < t[n + 1]; ++o)
773
- s[o] = o - t[n] << 5 | n;
774
- return { b: t, r: s };
775
- }, lr = or(Te, 2), ir = lr.b, $e = lr.r;
776
- ir[28] = 258, $e[258] = 28;
777
- var ar = or(Ce, 0), Pr = ar.b, Ke = ar.r, Ue = new L(32768);
778
- for (var y = 0; y < 32768; ++y) {
779
- var ne = (y & 43690) >> 1 | (y & 21845) << 1;
780
- ne = (ne & 52428) >> 2 | (ne & 13107) << 2, ne = (ne & 61680) >> 4 | (ne & 3855) << 4, Ue[y] = ((ne & 65280) >> 8 | (ne & 255) << 8) >> 1;
781
- }
782
- var X = (function(r, e, t) {
783
- for (var n = r.length, s = 0, o = new L(e); s < n; ++s)
784
- r[s] && ++o[r[s] - 1];
785
- var l = new L(e);
786
- for (s = 1; s < e; ++s)
787
- l[s] = l[s - 1] + o[s - 1] << 1;
788
- var a;
789
- if (t) {
790
- a = new L(1 << e);
791
- var i = 15 - e;
792
- for (s = 0; s < n; ++s)
793
- if (r[s])
794
- for (var f = s << 4 | r[s], c = e - r[s], u = l[r[s] - 1]++ << c, d = u | (1 << c) - 1; u <= d; ++u)
795
- a[Ue[u] >> i] = f;
796
- } else
797
- for (a = new L(n), s = 0; s < n; ++s)
798
- r[s] && (a[s] = Ue[l[r[s] - 1]++] >> 15 - r[s]);
799
- return a;
800
- }), oe = new T(288);
801
- for (var y = 0; y < 144; ++y)
802
- oe[y] = 8;
803
- for (var y = 144; y < 256; ++y)
804
- oe[y] = 9;
805
- for (var y = 256; y < 280; ++y)
806
- oe[y] = 7;
807
- for (var y = 280; y < 288; ++y)
808
- oe[y] = 8;
809
- var Ie = new T(32);
810
- for (var y = 0; y < 32; ++y)
811
- Ie[y] = 5;
812
- var Sr = /* @__PURE__ */ X(oe, 9, 0), Br = /* @__PURE__ */ X(oe, 9, 1), Fr = /* @__PURE__ */ X(Ie, 5, 0), Tr = /* @__PURE__ */ X(Ie, 5, 1), Ee = function(r) {
813
- for (var e = r[0], t = 1; t < r.length; ++t)
814
- r[t] > e && (e = r[t]);
815
- return e;
816
- }, Y = function(r, e, t) {
817
- var n = e / 8 | 0;
818
- return (r[n] | r[n + 1] << 8) >> (e & 7) & t;
819
- }, Ae = function(r, e) {
820
- var t = e / 8 | 0;
821
- return (r[t] | r[t + 1] << 8 | r[t + 2] << 16) >> (e & 7);
822
- }, Ye = function(r) {
823
- return (r + 7) / 8 | 0;
824
- }, ye = function(r, e, t) {
825
- return (e == null || e < 0) && (e = 0), (t == null || t > r.length) && (t = r.length), new T(r.subarray(e, t));
826
- }, Cr = [
827
- "unexpected EOF",
828
- "invalid block type",
829
- "invalid length/literal",
830
- "invalid distance",
831
- "stream finished",
832
- "no stream handler",
833
- ,
834
- // determined by compression function
835
- "no callback",
836
- "invalid UTF-8 data",
837
- "extra field too long",
838
- "date not in range 1980-2099",
839
- "filename too long",
840
- "stream finishing",
841
- "invalid zip data"
842
- // determined by unknown compression method
843
- ], H = function(r, e, t) {
844
- var n = new Error(e || Cr[r]);
845
- if (n.code = r, Error.captureStackTrace && Error.captureStackTrace(n, H), !t)
846
- throw n;
847
- return n;
848
- }, Rr = function(r, e, t, n) {
849
- var s = r.length, o = n ? n.length : 0;
850
- if (!s || e.f && !e.l)
851
- return t || new T(0);
852
- var l = !t, a = l || e.i != 2, i = e.i;
853
- l && (t = new T(s * 3));
854
- var f = function(he) {
855
- var ve = t.length;
856
- if (he > ve) {
857
- var fe = new T(Math.max(ve * 2, he));
858
- fe.set(t), t = fe;
859
- }
860
- }, c = e.f || 0, u = e.p || 0, d = e.b || 0, h = e.l, v = e.d, g = e.m, w = e.n, I = s * 8;
861
- do {
862
- if (!h) {
863
- c = Y(r, u, 1);
864
- var m = Y(r, u + 1, 3);
865
- if (u += 3, m)
866
- if (m == 1)
867
- h = Br, v = Tr, g = 9, w = 5;
868
- else if (m == 2) {
869
- var p = Y(r, u, 31) + 257, F = Y(r, u + 10, 15) + 4, b = p + Y(r, u + 5, 31) + 1;
870
- u += 14;
871
- for (var k = new T(b), M = new T(19), C = 0; C < F; ++C)
872
- M[We[C]] = Y(r, u + C * 3, 7);
873
- u += F * 3;
874
- for (var D = Ee(M), ee = (1 << D) - 1, U = X(M, D, 1), C = 0; C < b; ) {
875
- var N = U[Y(r, u, ee)];
876
- u += N & 15;
877
- var S = N >> 4;
878
- if (S < 16)
879
- k[C++] = S;
880
- else {
881
- var E = 0, x = 0;
882
- for (S == 16 ? (x = 3 + Y(r, u, 3), u += 2, E = k[C - 1]) : S == 17 ? (x = 3 + Y(r, u, 7), u += 3) : S == 18 && (x = 11 + Y(r, u, 127), u += 7); x--; )
883
- k[C++] = E;
884
- }
885
- }
886
- var W = k.subarray(0, p), A = k.subarray(p);
887
- g = Ee(W), w = Ee(A), h = X(W, g, 1), v = X(A, w, 1);
888
- } else
889
- H(1);
890
- else {
891
- var S = Ye(u) + 4, B = r[S - 4] | r[S - 3] << 8, R = S + B;
892
- if (R > s) {
893
- i && H(0);
894
- break;
895
- }
896
- a && f(d + B), t.set(r.subarray(S, R), d), e.b = d += B, e.p = u = R * 8, e.f = c;
897
- continue;
898
- }
899
- if (u > I) {
900
- i && H(0);
901
- break;
902
- }
903
- }
904
- a && f(d + 131072);
905
- for (var de = (1 << g) - 1, q = (1 << w) - 1, Z = u; ; Z = u) {
906
- var E = h[Ae(r, u) & de], j = E >> 4;
907
- if (u += E & 15, u > I) {
908
- i && H(0);
909
- break;
910
- }
911
- if (E || H(2), j < 256)
912
- t[d++] = j;
913
- else if (j == 256) {
914
- Z = u, h = null;
915
- break;
916
- } else {
917
- var G = j - 254;
918
- if (j > 264) {
919
- var C = j - 257, P = Te[C];
920
- G = Y(r, u, (1 << P) - 1) + ir[C], u += P;
921
- }
922
- var K = v[Ae(r, u) & q], ae = K >> 4;
923
- K || H(3), u += K & 15;
924
- var A = Pr[ae];
925
- if (ae > 3) {
926
- var P = Ce[ae];
927
- A += Ae(r, u) & (1 << P) - 1, u += P;
928
- }
929
- if (u > I) {
930
- i && H(0);
931
- break;
932
- }
933
- a && f(d + 131072);
934
- var ce = d + G;
935
- if (d < A) {
936
- var me = o - A, xe = Math.min(A, ce);
937
- for (me + d < 0 && H(3); d < xe; ++d)
938
- t[d] = n[me + d];
939
- }
940
- for (; d < ce; ++d)
941
- t[d] = t[d - A];
942
- }
943
- }
944
- e.l = h, e.p = Z, e.b = d, e.f = c, h && (c = 1, e.m = g, e.d = v, e.n = w);
945
- } while (!c);
946
- return d != t.length && l ? ye(t, 0, d) : t.subarray(0, d);
947
- }, _ = function(r, e, t) {
948
- t <<= e & 7;
949
- var n = e / 8 | 0;
950
- r[n] |= t, r[n + 1] |= t >> 8;
951
- }, be = function(r, e, t) {
952
- t <<= e & 7;
953
- var n = e / 8 | 0;
954
- r[n] |= t, r[n + 1] |= t >> 8, r[n + 2] |= t >> 16;
955
- }, Oe = function(r, e) {
956
- for (var t = [], n = 0; n < r.length; ++n)
957
- r[n] && t.push({ s: n, f: r[n] });
958
- var s = t.length, o = t.slice();
959
- if (!s)
960
- return { t: fr, l: 0 };
961
- if (s == 1) {
962
- var l = new T(t[0].s + 1);
963
- return l[t[0].s] = 1, { t: l, l: 1 };
964
- }
965
- t.sort(function(R, p) {
966
- return R.f - p.f;
967
- }), t.push({ s: -1, f: 25001 });
968
- var a = t[0], i = t[1], f = 0, c = 1, u = 2;
969
- for (t[0] = { s: -1, f: a.f + i.f, l: a, r: i }; c != s - 1; )
970
- a = t[t[f].f < t[u].f ? f++ : u++], i = t[f != c && t[f].f < t[u].f ? f++ : u++], t[c++] = { s: -1, f: a.f + i.f, l: a, r: i };
971
- for (var d = o[0].s, n = 1; n < s; ++n)
972
- o[n].s > d && (d = o[n].s);
973
- var h = new L(d + 1), v = je(t[c - 1], h, 0);
974
- if (v > e) {
975
- var n = 0, g = 0, w = v - e, I = 1 << w;
976
- for (o.sort(function(p, F) {
977
- return h[F.s] - h[p.s] || p.f - F.f;
978
- }); n < s; ++n) {
979
- var m = o[n].s;
980
- if (h[m] > e)
981
- g += I - (1 << v - h[m]), h[m] = e;
982
- else
983
- break;
984
- }
985
- for (g >>= w; g > 0; ) {
986
- var S = o[n].s;
987
- h[S] < e ? g -= 1 << e - h[S]++ - 1 : ++n;
988
- }
989
- for (; n >= 0 && g; --n) {
990
- var B = o[n].s;
991
- h[B] == e && (--h[B], ++g);
992
- }
993
- v = e;
994
- }
995
- return { t: new T(h), l: v };
996
- }, je = function(r, e, t) {
997
- return r.s == -1 ? Math.max(je(r.l, e, t + 1), je(r.r, e, t + 1)) : e[r.s] = t;
998
- }, Qe = function(r) {
999
- for (var e = r.length; e && !r[--e]; )
1000
- ;
1001
- for (var t = new L(++e), n = 0, s = r[0], o = 1, l = function(i) {
1002
- t[n++] = i;
1003
- }, a = 1; a <= e; ++a)
1004
- if (r[a] == s && a != e)
1005
- ++o;
1006
- else {
1007
- if (!s && o > 2) {
1008
- for (; o > 138; o -= 138)
1009
- l(32754);
1010
- o > 2 && (l(o > 10 ? o - 11 << 5 | 28690 : o - 3 << 5 | 12305), o = 0);
1011
- } else if (o > 3) {
1012
- for (l(s), --o; o > 6; o -= 6)
1013
- l(8304);
1014
- o > 2 && (l(o - 3 << 5 | 8208), o = 0);
1015
- }
1016
- for (; o--; )
1017
- l(s);
1018
- o = 1, s = r[a];
1019
- }
1020
- return { c: t.subarray(0, n), n: e };
1021
- }, we = function(r, e) {
1022
- for (var t = 0, n = 0; n < e.length; ++n)
1023
- t += r[n] * e[n];
1024
- return t;
1025
- }, cr = function(r, e, t) {
1026
- var n = t.length, s = Ye(e + 2);
1027
- r[s] = n & 255, r[s + 1] = n >> 8, r[s + 2] = r[s] ^ 255, r[s + 3] = r[s + 1] ^ 255;
1028
- for (var o = 0; o < n; ++o)
1029
- r[s + o + 4] = t[o];
1030
- return (s + 4 + n) * 8;
1031
- }, Xe = function(r, e, t, n, s, o, l, a, i, f, c) {
1032
- _(e, c++, t), ++s[256];
1033
- for (var u = Oe(s, 15), d = u.t, h = u.l, v = Oe(o, 15), g = v.t, w = v.l, I = Qe(d), m = I.c, S = I.n, B = Qe(g), R = B.c, p = B.n, F = new L(19), b = 0; b < m.length; ++b)
1034
- ++F[m[b] & 31];
1035
- for (var b = 0; b < R.length; ++b)
1036
- ++F[R[b] & 31];
1037
- for (var k = Oe(F, 7), M = k.t, C = k.l, D = 19; D > 4 && !M[We[D - 1]]; --D)
1038
- ;
1039
- var ee = f + 5 << 3, U = we(s, oe) + we(o, Ie) + l, N = we(s, d) + we(o, g) + l + 14 + 3 * D + we(F, M) + 2 * F[16] + 3 * F[17] + 7 * F[18];
1040
- if (i >= 0 && ee <= U && ee <= N)
1041
- return cr(e, c, r.subarray(i, i + f));
1042
- var E, x, W, A;
1043
- if (_(e, c, 1 + (N < U)), c += 2, N < U) {
1044
- E = X(d, h, 0), x = d, W = X(g, w, 0), A = g;
1045
- var de = X(M, C, 0);
1046
- _(e, c, S - 257), _(e, c + 5, p - 1), _(e, c + 10, D - 4), c += 14;
1047
- for (var b = 0; b < D; ++b)
1048
- _(e, c + 3 * b, M[We[b]]);
1049
- c += 3 * D;
1050
- for (var q = [m, R], Z = 0; Z < 2; ++Z)
1051
- for (var j = q[Z], b = 0; b < j.length; ++b) {
1052
- var G = j[b] & 31;
1053
- _(e, c, de[G]), c += M[G], G > 15 && (_(e, c, j[b] >> 5 & 127), c += j[b] >> 12);
1054
- }
1055
- } else
1056
- E = Sr, x = oe, W = Fr, A = Ie;
1057
- for (var b = 0; b < a; ++b) {
1058
- var P = n[b];
1059
- if (P > 255) {
1060
- var G = P >> 18 & 31;
1061
- be(e, c, E[G + 257]), c += x[G + 257], G > 7 && (_(e, c, P >> 23 & 31), c += Te[G]);
1062
- var K = P & 31;
1063
- be(e, c, W[K]), c += A[K], K > 3 && (be(e, c, P >> 5 & 8191), c += Ce[K]);
1064
- } else
1065
- be(e, c, E[P]), c += x[P];
1066
- }
1067
- return be(e, c, E[256]), c + x[256];
1068
- }, pr = /* @__PURE__ */ new Ve([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), fr = /* @__PURE__ */ new T(0), Mr = function(r, e, t, n, s, o) {
1069
- var l = o.z || r.length, a = new T(n + l + 5 * (1 + Math.ceil(l / 7e3)) + s), i = a.subarray(n, a.length - s), f = o.l, c = (o.r || 0) & 7;
1070
- if (e) {
1071
- c && (i[0] = o.r >> 3);
1072
- for (var u = pr[e - 1], d = u >> 13, h = u & 8191, v = (1 << t) - 1, g = o.p || new L(32768), w = o.h || new L(v + 1), I = Math.ceil(t / 3), m = 2 * I, S = function(Re) {
1073
- return (r[Re] ^ r[Re + 1] << I ^ r[Re + 2] << m) & v;
1074
- }, B = new Ve(25e3), R = new L(288), p = new L(32), F = 0, b = 0, k = o.i || 0, M = 0, C = o.w || 0, D = 0; k + 2 < l; ++k) {
1075
- var ee = S(k), U = k & 32767, N = w[ee];
1076
- if (g[U] = N, w[ee] = U, C <= k) {
1077
- var E = l - k;
1078
- if ((F > 7e3 || M > 24576) && (E > 423 || !f)) {
1079
- c = Xe(r, i, 0, B, R, p, b, M, D, k - D, c), M = F = b = 0, D = k;
1080
- for (var x = 0; x < 286; ++x)
1081
- R[x] = 0;
1082
- for (var x = 0; x < 30; ++x)
1083
- p[x] = 0;
1084
- }
1085
- var W = 2, A = 0, de = h, q = U - N & 32767;
1086
- if (E > 2 && ee == S(k - q))
1087
- for (var Z = Math.min(d, E) - 1, j = Math.min(32767, k), G = Math.min(258, E); q <= j && --de && U != N; ) {
1088
- if (r[k + W] == r[k + W - q]) {
1089
- for (var P = 0; P < G && r[k + P] == r[k + P - q]; ++P)
1090
- ;
1091
- if (P > W) {
1092
- if (W = P, A = q, P > Z)
1093
- break;
1094
- for (var K = Math.min(q, P - 2), ae = 0, x = 0; x < K; ++x) {
1095
- var ce = k - q + x & 32767, me = g[ce], xe = ce - me & 32767;
1096
- xe > ae && (ae = xe, N = ce);
1097
- }
1098
- }
1099
- }
1100
- U = N, N = g[U], q += U - N & 32767;
1101
- }
1102
- if (A) {
1103
- B[M++] = 268435456 | $e[W] << 18 | Ke[A];
1104
- var he = $e[W] & 31, ve = Ke[A] & 31;
1105
- b += Te[he] + Ce[ve], ++R[257 + he], ++p[ve], C = k + W, ++F;
1106
- } else
1107
- B[M++] = r[k], ++R[r[k]];
1108
- }
1109
- }
1110
- for (k = Math.max(k, C); k < l; ++k)
1111
- B[M++] = r[k], ++R[r[k]];
1112
- c = Xe(r, i, f, B, R, p, b, M, D, k - D, c), f || (o.r = c & 7 | i[c / 8 | 0] << 3, c -= 7, o.h = w, o.p = g, o.i = k, o.w = C);
1113
- } else {
1114
- for (var k = o.w || 0; k < l + f; k += 65535) {
1115
- var fe = k + 65535;
1116
- fe >= l && (i[c / 8 | 0] = f, fe = l), c = cr(i, c + 1, r.subarray(k, fe));
1117
- }
1118
- o.i = l;
1119
- }
1120
- return ye(a, 0, n + Ye(c) + s);
1121
- }, Er = /* @__PURE__ */ (function() {
1122
- for (var r = new Int32Array(256), e = 0; e < 256; ++e) {
1123
- for (var t = e, n = 9; --n; )
1124
- t = (t & 1 && -306674912) ^ t >>> 1;
1125
- r[e] = t;
1126
- }
1127
- return r;
1128
- })(), Ar = function() {
1129
- var r = -1;
1130
- return {
1131
- p: function(e) {
1132
- for (var t = r, n = 0; n < e.length; ++n)
1133
- t = Er[t & 255 ^ e[n]] ^ t >>> 8;
1134
- r = t;
1135
- },
1136
- d: function() {
1137
- return ~r;
1138
- }
1139
- };
1140
- }, Or = function(r, e, t, n, s) {
1141
- if (!s && (s = { l: 1 }, e.dictionary)) {
1142
- var o = e.dictionary.subarray(-32768), l = new T(o.length + r.length);
1143
- l.set(o), l.set(r, o.length), r = l, s.w = o.length;
1144
- }
1145
- return Mr(r, e.level == null ? 6 : e.level, e.mem == null ? s.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(r.length))) * 1.5) : 20 : 12 + e.mem, t, n, s);
1146
- }, ur = function(r, e) {
1147
- var t = {};
1148
- for (var n in r)
1149
- t[n] = r[n];
1150
- for (var n in e)
1151
- t[n] = e[n];
1152
- return t;
1153
- }, Q = function(r, e) {
1154
- return r[e] | r[e + 1] << 8;
1155
- }, V = function(r, e) {
1156
- return (r[e] | r[e + 1] << 8 | r[e + 2] << 16 | r[e + 3] << 24) >>> 0;
1157
- }, De = function(r, e) {
1158
- return V(r, e) + V(r, e + 4) * 4294967296;
1159
- }, O = function(r, e, t) {
1160
- for (; t; ++e)
1161
- r[e] = t, t >>>= 8;
1162
- };
1163
- function Dr(r, e) {
1164
- return Or(r, e || {}, 0, 0);
1165
- }
1166
- function zr(r, e) {
1167
- return Rr(r, { i: 2 }, e && e.out, e && e.dictionary);
1168
- }
1169
- var dr = function(r, e, t, n) {
1170
- for (var s in r) {
1171
- var o = r[s], l = e + s, a = n;
1172
- Array.isArray(o) && (a = ur(n, o[1]), o = o[0]), ArrayBuffer.isView(o) ? t[l] = [o, a] : (t[l += "/"] = [new T(0), a], dr(o, l, t, n));
1173
- }
1174
- }, Ze = typeof TextEncoder < "u" && /* @__PURE__ */ new TextEncoder(), Ge = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), Hr = 0;
1175
- try {
1176
- Ge.decode(fr, { stream: !0 }), Hr = 1;
1177
- } catch {
1178
- }
1179
- var Nr = function(r) {
1180
- for (var e = "", t = 0; ; ) {
1181
- var n = r[t++], s = (n > 127) + (n > 223) + (n > 239);
1182
- if (t + s > r.length)
1183
- return { s: e, r: ye(r, t - 1) };
1184
- s ? s == 3 ? (n = ((n & 15) << 18 | (r[t++] & 63) << 12 | (r[t++] & 63) << 6 | r[t++] & 63) - 65536, e += String.fromCharCode(55296 | n >> 10, 56320 | n & 1023)) : s & 1 ? e += String.fromCharCode((n & 31) << 6 | r[t++] & 63) : e += String.fromCharCode((n & 15) << 12 | (r[t++] & 63) << 6 | r[t++] & 63) : e += String.fromCharCode(n);
1185
- }
1186
- };
1187
- function _e(r, e) {
1188
- var t;
1189
- if (Ze)
1190
- return Ze.encode(r);
1191
- for (var n = r.length, s = new T(r.length + (r.length >> 1)), o = 0, l = function(f) {
1192
- s[o++] = f;
1193
- }, t = 0; t < n; ++t) {
1194
- if (o + 5 > s.length) {
1195
- var a = new T(o + 8 + (n - t << 1));
1196
- a.set(s), s = a;
1197
- }
1198
- var i = r.charCodeAt(t);
1199
- i < 128 || e ? l(i) : i < 2048 ? (l(192 | i >> 6), l(128 | i & 63)) : i > 55295 && i < 57344 ? (i = 65536 + (i & 1047552) | r.charCodeAt(++t) & 1023, l(240 | i >> 18), l(128 | i >> 12 & 63), l(128 | i >> 6 & 63), l(128 | i & 63)) : (l(224 | i >> 12), l(128 | i >> 6 & 63), l(128 | i & 63));
1200
- }
1201
- return ye(s, 0, o);
1202
- }
1203
- function Wr(r, e) {
1204
- if (e) {
1205
- for (var t = "", n = 0; n < r.length; n += 16384)
1206
- t += String.fromCharCode.apply(null, r.subarray(n, n + 16384));
1207
- return t;
1208
- } else {
1209
- if (Ge)
1210
- return Ge.decode(r);
1211
- var s = Nr(r), o = s.s, t = s.r;
1212
- return t.length && H(8), o;
1213
- }
1214
- }
1215
- var $r = function(r, e) {
1216
- return e + 30 + Q(r, e + 26) + Q(r, e + 28);
1217
- }, Ur = function(r, e, t) {
1218
- var n = Q(r, e + 28), s = Q(r, e + 30), o = Wr(r.subarray(e + 46, e + 46 + n), !(Q(r, e + 8) & 2048)), l = e + 46 + n, a = jr(r, l, s, t, V(r, e + 20), V(r, e + 24), V(r, e + 42)), i = a[0], f = a[1], c = a[2];
1219
- return [Q(r, e + 10), i, f, o, l + s + Q(r, e + 32), c];
1220
- }, jr = function(r, e, t, n, s, o, l) {
1221
- var a = s == 4294967295, i = o == 4294967295, f = l == 4294967295, c = e + t, u = a + i + f;
1222
- if (n && u) {
1223
- for (; e + 4 < c; e += 4 + Q(r, e + 2))
1224
- if (Q(r, e) == 1)
1225
- return [
1226
- a ? De(r, e + 4 + 8 * i) : s,
1227
- i ? De(r, e + 4) : o,
1228
- f ? De(r, e + 4 + 8 * (i + a)) : l,
1229
- 1
1230
- ];
1231
- n < 2 && H(13);
1232
- }
1233
- return [s, o, l, 0];
1234
- }, Le = function(r) {
1235
- var e = 0;
1236
- if (r)
1237
- for (var t in r) {
1238
- var n = r[t].length;
1239
- n > 65535 && H(9), e += n + 4;
1240
- }
1241
- return e;
1242
- }, er = function(r, e, t, n, s, o, l, a) {
1243
- var i = n.length, f = t.extra, c = a && a.length, u = Le(f);
1244
- O(r, e, l != null ? 33639248 : 67324752), e += 4, l != null && (r[e++] = 20, r[e++] = t.os), r[e] = 20, e += 2, r[e++] = t.flag << 1 | (o < 0 && 8), r[e++] = s && 8, r[e++] = t.compression & 255, r[e++] = t.compression >> 8;
1245
- var d = new Date(t.mtime == null ? Date.now() : t.mtime), h = d.getFullYear() - 1980;
1246
- if ((h < 0 || h > 119) && H(10), O(r, e, h << 25 | d.getMonth() + 1 << 21 | d.getDate() << 16 | d.getHours() << 11 | d.getMinutes() << 5 | d.getSeconds() >> 1), e += 4, o != -1 && (O(r, e, t.crc), O(r, e + 4, o < 0 ? -o - 2 : o), O(r, e + 8, t.size)), O(r, e + 12, i), O(r, e + 14, u), e += 16, l != null && (O(r, e, c), O(r, e + 6, t.attrs), O(r, e + 10, l), e += 14), r.set(n, e), e += i, u)
1247
- for (var v in f) {
1248
- var g = f[v], w = g.length;
1249
- O(r, e, +v), O(r, e + 2, w), r.set(g, e + 4), e += 4 + w;
1250
- }
1251
- return c && (r.set(a, e), e += c), e;
1252
- }, Gr = function(r, e, t, n, s) {
1253
- O(r, e, 101010256), O(r, e + 8, t), O(r, e + 10, t), O(r, e + 12, n), O(r, e + 16, s);
1254
- };
1255
- function nt(r, e) {
1256
- e || (e = {});
1257
- var t = {}, n = [];
1258
- dr(r, "", t, e);
1259
- var s = 0, o = 0;
1260
- for (var l in t) {
1261
- var a = t[l], i = a[0], f = a[1], c = f.level == 0 ? 0 : 8, u = _e(l), d = u.length, h = f.comment, v = h && _e(h), g = v && v.length, w = Le(f.extra);
1262
- d > 65535 && H(11);
1263
- var I = c ? Dr(i, f) : i, m = I.length, S = Ar();
1264
- S.p(i), n.push(ur(f, {
1265
- size: i.length,
1266
- crc: S.d(),
1267
- c: I,
1268
- f: u,
1269
- m: v,
1270
- u: d != l.length || v && h.length != g,
1271
- o: s,
1272
- compression: c
1273
- })), s += 30 + d + w + m, o += 76 + 2 * (d + w) + (g || 0) + m;
1274
- }
1275
- for (var B = new T(o + 22), R = s, p = o - s, F = 0; F < n.length; ++F) {
1276
- var u = n[F];
1277
- er(B, u.o, u, u.f, u.u, u.c.length);
1278
- var b = 30 + u.f.length + Le(u.extra);
1279
- B.set(u.c, u.o + b), er(B, s, u, u.f, u.u, u.c.length, u.o, u.m), s += 16 + b + (u.m ? u.m.length : 0);
1280
- }
1281
- return Gr(B, s, n.length, p, R), B;
1282
- }
1283
- function st(r, e) {
1284
- for (var t = {}, n = r.length - 22; V(r, n) != 101010256; --n)
1285
- (!n || r.length - n > 65558) && H(13);
1286
- var s = Q(r, n + 8);
1287
- if (!s)
1288
- return {};
1289
- var o = V(r, n + 16), l = V(r, n - 20) == 117853008;
1290
- if (l) {
1291
- var a = V(r, n - 12);
1292
- l = V(r, a) == 101075792, l && (s = V(r, a + 32), o = V(r, a + 48));
1293
- }
1294
- for (var i = e && e.filter, f = 0; f < s; ++f) {
1295
- var c = Ur(r, o, l), u = c[0], d = c[1], h = c[2], v = c[3], g = c[4], w = c[5], I = $r(r, w);
1296
- o = g, (!i || i({
1297
- name: v,
1298
- size: d,
1299
- originalSize: h,
1300
- compression: u
1301
- })) && (u ? u == 8 ? t[v] = zr(r.subarray(I, I + d), { out: new T(h) }) : H(14, "unknown compression type " + u) : t[v] = ye(r, I, I + d));
1302
- }
1303
- return t;
1304
- }
1305
- export {
1306
- qr as A,
1307
- Be as B,
1308
- se as C,
1309
- hr as D,
1310
- Zr as E,
1311
- _r as F,
1312
- Me as G,
1313
- Wr as a,
1314
- tt as b,
1315
- Yr as c,
1316
- vr as d,
1317
- et as e,
1318
- Vr as f,
1319
- xr as g,
1320
- qe as h,
1321
- kr as i,
1322
- $ as j,
1323
- Jr as k,
1324
- Se as l,
1325
- rt as m,
1326
- sr as n,
1327
- Qr as o,
1328
- nr as p,
1329
- Kr as q,
1330
- mr as r,
1331
- _e as s,
1332
- Ne as t,
1333
- st as u,
1334
- Lr as v,
1335
- tr as w,
1336
- br as x,
1337
- Xr as y,
1338
- nt as z
1339
- };