@forevka/wordcanvas 0.7.1 → 0.7.2

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