@skyworx/dynamic-ui 1.0.20 → 1.0.21

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.
@@ -0,0 +1,3220 @@
1
+ import { o as fe } from "./jszip.min-tu5EYEGs.js";
2
+ var g;
3
+ (function(a) {
4
+ a.OfficeDocument = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", a.FontTable = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable", a.Image = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", a.Numbering = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering", a.Styles = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles", a.StylesWithEffects = "http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects", a.Theme = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme", a.Settings = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings", a.WebSettings = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings", a.Hyperlink = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", a.Footnotes = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes", a.Endnotes = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes", a.Footer = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", a.Header = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", a.ExtendedProperties = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties", a.CoreProperties = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties", a.CustomProperties = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/custom-properties", a.Comments = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", a.CommentsExtended = "http://schemas.microsoft.com/office/2011/relationships/commentsExtended", a.AltChunk = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk";
5
+ })(g || (g = {}));
6
+ function ge(a, e) {
7
+ return e.elements(a).map((t) => ({
8
+ id: e.attr(t, "Id"),
9
+ type: e.attr(t, "Type"),
10
+ target: e.attr(t, "Target"),
11
+ targetMode: e.attr(t, "TargetMode")
12
+ }));
13
+ }
14
+ function be(a) {
15
+ return a?.replace(/[ .]+/g, "-").replace(/[&]+/g, "and").toLowerCase();
16
+ }
17
+ function _(a) {
18
+ return /^[^"'].*\s.*[^"']$/.test(a) ? `'${a}'` : a;
19
+ }
20
+ function L(a) {
21
+ let e = a.lastIndexOf("/") + 1, t = e == 0 ? "" : a.substring(0, e), r = e == 0 ? a : a.substring(e);
22
+ return [t, r];
23
+ }
24
+ function O(a, e) {
25
+ try {
26
+ const t = "http://docx/";
27
+ return new URL(a, t + e).toString().substring(t.length);
28
+ } catch {
29
+ return `${e}${a}`;
30
+ }
31
+ }
32
+ function S(a, e) {
33
+ return a.reduce((t, r) => (t[e(r)] = r, t), {});
34
+ }
35
+ function ke(a) {
36
+ return new Promise((e, t) => {
37
+ const r = new FileReader();
38
+ r.onloadend = () => e(r.result), r.onerror = () => t(), r.readAsDataURL(a);
39
+ });
40
+ }
41
+ function I(a) {
42
+ return a && typeof a == "object" && !Array.isArray(a);
43
+ }
44
+ function z(a) {
45
+ return typeof a == "string" || a instanceof String;
46
+ }
47
+ function H(a, ...e) {
48
+ if (!e.length)
49
+ return a;
50
+ const t = e.shift();
51
+ if (I(a) && I(t))
52
+ for (const r in t)
53
+ if (I(t[r])) {
54
+ const s = a[r] ?? (a[r] = {});
55
+ H(s, t[r]);
56
+ } else
57
+ a[r] = t[r];
58
+ return H(a, ...e);
59
+ }
60
+ function A(a) {
61
+ return Array.isArray(a) ? a : [a];
62
+ }
63
+ function ve(a, e, t) {
64
+ return e > a ? e : t < a ? t : a;
65
+ }
66
+ const ee = {
67
+ wordml: "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
68
+ }, b = {
69
+ Dxa: { mul: 0.05, unit: "pt" },
70
+ Emu: { mul: 1 / 12700, unit: "pt" },
71
+ FontSize: { mul: 0.5, unit: "pt" },
72
+ Border: { mul: 0.125, unit: "pt", min: 0.25, max: 12 },
73
+ Point: { mul: 1, unit: "pt" },
74
+ Percent: { mul: 0.02, unit: "%" }
75
+ };
76
+ function te(a, e = b.Dxa) {
77
+ if (a == null || /.+(p[xt]|[%])$/.test(a))
78
+ return a;
79
+ var t = parseInt(a) * e.mul;
80
+ return e.min && e.max && (t = ve(t, e.min, e.max)), `${t.toFixed(2)}${e.unit}`;
81
+ }
82
+ function ye(a, e = !1) {
83
+ switch (a) {
84
+ case "1":
85
+ return !0;
86
+ case "0":
87
+ return !1;
88
+ case "on":
89
+ return !0;
90
+ case "off":
91
+ return !1;
92
+ case "true":
93
+ return !0;
94
+ case "false":
95
+ return !1;
96
+ default:
97
+ return e;
98
+ }
99
+ }
100
+ function re(a, e, t) {
101
+ if (a.namespaceURI != ee.wordml)
102
+ return !1;
103
+ switch (a.localName) {
104
+ case "color":
105
+ e.color = t.attr(a, "val");
106
+ break;
107
+ case "sz":
108
+ e.fontSize = t.lengthAttr(a, "val", b.FontSize);
109
+ break;
110
+ default:
111
+ return !1;
112
+ }
113
+ return !0;
114
+ }
115
+ function Pe(a, e = !1) {
116
+ e && (a = a.replace(/<[?].*[?]>/, "")), a = Se(a);
117
+ const t = new DOMParser().parseFromString(a, "application/xml"), r = we(t);
118
+ if (r)
119
+ throw new Error(r);
120
+ return t;
121
+ }
122
+ function we(a) {
123
+ return a.getElementsByTagName("parsererror")[0]?.textContent;
124
+ }
125
+ function Se(a) {
126
+ return a.charCodeAt(0) === 65279 ? a.substring(1) : a;
127
+ }
128
+ function Me(a) {
129
+ return new XMLSerializer().serializeToString(a);
130
+ }
131
+ class ae {
132
+ elements(e, t = null) {
133
+ const r = [];
134
+ for (let s = 0, n = e.childNodes.length; s < n; s++) {
135
+ let l = e.childNodes.item(s);
136
+ l.nodeType == Node.ELEMENT_NODE && (t == null || l.localName == t) && r.push(l);
137
+ }
138
+ return r;
139
+ }
140
+ element(e, t) {
141
+ for (let r = 0, s = e.childNodes.length; r < s; r++) {
142
+ let n = e.childNodes.item(r);
143
+ if (n.nodeType == 1 && n.localName == t)
144
+ return n;
145
+ }
146
+ return null;
147
+ }
148
+ elementAttr(e, t, r) {
149
+ var s = this.element(e, t);
150
+ return s ? this.attr(s, r) : void 0;
151
+ }
152
+ attrs(e) {
153
+ return Array.from(e.attributes);
154
+ }
155
+ attr(e, t) {
156
+ for (let r = 0, s = e.attributes.length; r < s; r++) {
157
+ let n = e.attributes.item(r);
158
+ if (n.localName == t)
159
+ return n.value;
160
+ }
161
+ return null;
162
+ }
163
+ intAttr(e, t, r = null) {
164
+ var s = this.attr(e, t);
165
+ return s ? parseInt(s) : r;
166
+ }
167
+ hexAttr(e, t, r = null) {
168
+ var s = this.attr(e, t);
169
+ return s ? parseInt(s, 16) : r;
170
+ }
171
+ floatAttr(e, t, r = null) {
172
+ var s = this.attr(e, t);
173
+ return s ? parseFloat(s) : r;
174
+ }
175
+ boolAttr(e, t, r = null) {
176
+ return ye(this.attr(e, t), r);
177
+ }
178
+ lengthAttr(e, t, r = b.Dxa) {
179
+ return te(this.attr(e, t), r);
180
+ }
181
+ }
182
+ const i = new ae();
183
+ class v {
184
+ constructor(e, t) {
185
+ this._package = e, this.path = t;
186
+ }
187
+ async load() {
188
+ this.rels = await this._package.loadRelationships(this.path);
189
+ const e = await this._package.load(this.path), t = this._package.parseXmlDocument(e);
190
+ this._package.options.keepOrigin && (this._xmlDocument = t), this.parseXml(t.firstElementChild);
191
+ }
192
+ save() {
193
+ this._package.update(this.path, Me(this._xmlDocument));
194
+ }
195
+ parseXml(e) {
196
+ }
197
+ }
198
+ const Ne = {
199
+ embedRegular: "regular",
200
+ embedBold: "bold",
201
+ embedItalic: "italic",
202
+ embedBoldItalic: "boldItalic"
203
+ };
204
+ function Ce(a, e) {
205
+ return e.elements(a).map((t) => Ae(t, e));
206
+ }
207
+ function Ae(a, e) {
208
+ let t = {
209
+ name: e.attr(a, "name"),
210
+ embedFontRefs: []
211
+ };
212
+ for (let r of e.elements(a))
213
+ switch (r.localName) {
214
+ case "family":
215
+ t.family = e.attr(r, "val");
216
+ break;
217
+ case "altName":
218
+ t.altName = e.attr(r, "val");
219
+ break;
220
+ case "embedRegular":
221
+ case "embedBold":
222
+ case "embedItalic":
223
+ case "embedBoldItalic":
224
+ t.embedFontRefs.push(Ee(r, e));
225
+ break;
226
+ }
227
+ return t;
228
+ }
229
+ function Ee(a, e) {
230
+ return {
231
+ id: e.attr(a, "id"),
232
+ key: e.attr(a, "fontKey"),
233
+ type: Ne[a.localName]
234
+ };
235
+ }
236
+ class xe extends v {
237
+ parseXml(e) {
238
+ this.fonts = Ce(e, this._package.xmlParser);
239
+ }
240
+ }
241
+ function Be(a, e) {
242
+ return e.elements(a).map((t) => ({
243
+ extension: e.attr(t, "Extension"),
244
+ partName: e.attr(t, "PartName"),
245
+ contentType: e.attr(t, "ContentType")
246
+ }));
247
+ }
248
+ class j {
249
+ constructor(e, t) {
250
+ this._zip = e, this.options = t, this.xmlParser = new ae();
251
+ }
252
+ get(e) {
253
+ const t = Re(e);
254
+ return this._zip.files[t] ?? this._zip.files[t.replace(/\//g, "\\")];
255
+ }
256
+ update(e, t) {
257
+ this._zip.file(e, t);
258
+ }
259
+ static async load(e, t) {
260
+ const r = await fe.loadAsync(e);
261
+ return new j(r, t);
262
+ }
263
+ save(e = "blob") {
264
+ return this._zip.generateAsync({ type: e });
265
+ }
266
+ load(e, t = "string") {
267
+ return this.get(e)?.async(t) ?? Promise.resolve(null);
268
+ }
269
+ async loadRelationships(e = null) {
270
+ let t = "_rels/.rels";
271
+ if (e != null) {
272
+ const [s, n] = L(e);
273
+ t = `${s}_rels/${n}.rels`;
274
+ }
275
+ const r = await this.load(t);
276
+ return r ? ge(this.parseXmlDocument(r).firstElementChild, this.xmlParser) : null;
277
+ }
278
+ async loadContentTypes() {
279
+ const e = await this.load("[Content_Types].xml");
280
+ return e ? Be(this.parseXmlDocument(e).firstElementChild, this.xmlParser) : [];
281
+ }
282
+ parseXmlDocument(e) {
283
+ return Pe(e, this.options.trimXmlDeclaration);
284
+ }
285
+ }
286
+ function Re(a) {
287
+ return a.startsWith("/") ? a.substr(1) : a;
288
+ }
289
+ class Te extends v {
290
+ constructor(e, t, r) {
291
+ super(e, t), this._documentParser = r;
292
+ }
293
+ parseXml(e) {
294
+ this.body = this._documentParser.parseDocumentFile(e);
295
+ }
296
+ }
297
+ function F(a, e) {
298
+ return {
299
+ type: e.attr(a, "val"),
300
+ color: e.attr(a, "color"),
301
+ size: e.lengthAttr(a, "sz", b.Border),
302
+ offset: e.lengthAttr(a, "space", b.Point),
303
+ frame: e.boolAttr(a, "frame"),
304
+ shadow: e.boolAttr(a, "shadow")
305
+ };
306
+ }
307
+ function Fe(a, e) {
308
+ var t = {};
309
+ for (let r of e.elements(a))
310
+ switch (r.localName) {
311
+ case "left":
312
+ t.left = F(r, e);
313
+ break;
314
+ case "top":
315
+ t.top = F(r, e);
316
+ break;
317
+ case "right":
318
+ t.right = F(r, e);
319
+ break;
320
+ case "bottom":
321
+ t.bottom = F(r, e);
322
+ break;
323
+ }
324
+ return t;
325
+ }
326
+ var G;
327
+ (function(a) {
328
+ a.Continuous = "continuous", a.NextPage = "nextPage", a.NextColumn = "nextColumn", a.EvenPage = "evenPage", a.OddPage = "oddPage";
329
+ })(G || (G = {}));
330
+ function se(a, e = i) {
331
+ var t = {};
332
+ for (let r of e.elements(a))
333
+ switch (r.localName) {
334
+ case "pgSz":
335
+ t.pageSize = {
336
+ width: e.lengthAttr(r, "w"),
337
+ height: e.lengthAttr(r, "h"),
338
+ orientation: e.attr(r, "orient")
339
+ };
340
+ break;
341
+ case "type":
342
+ t.type = e.attr(r, "val");
343
+ break;
344
+ case "pgMar":
345
+ t.pageMargins = {
346
+ left: e.lengthAttr(r, "left"),
347
+ right: e.lengthAttr(r, "right"),
348
+ top: e.lengthAttr(r, "top"),
349
+ bottom: e.lengthAttr(r, "bottom"),
350
+ header: e.lengthAttr(r, "header"),
351
+ footer: e.lengthAttr(r, "footer"),
352
+ gutter: e.lengthAttr(r, "gutter")
353
+ };
354
+ break;
355
+ case "cols":
356
+ t.columns = Le(r, e);
357
+ break;
358
+ case "headerReference":
359
+ (t.headerRefs ?? (t.headerRefs = [])).push(U(r, e));
360
+ break;
361
+ case "footerReference":
362
+ (t.footerRefs ?? (t.footerRefs = [])).push(U(r, e));
363
+ break;
364
+ case "titlePg":
365
+ t.titlePage = e.boolAttr(r, "val", !0);
366
+ break;
367
+ case "pgBorders":
368
+ t.pageBorders = Fe(r, e);
369
+ break;
370
+ case "pgNumType":
371
+ t.pageNumber = $e(r, e);
372
+ break;
373
+ }
374
+ return t;
375
+ }
376
+ function Le(a, e) {
377
+ return {
378
+ numberOfColumns: e.intAttr(a, "num"),
379
+ space: e.lengthAttr(a, "space"),
380
+ separator: e.boolAttr(a, "sep"),
381
+ equalWidth: e.boolAttr(a, "equalWidth", !0),
382
+ columns: e.elements(a, "col").map((t) => ({
383
+ width: e.lengthAttr(t, "w"),
384
+ space: e.lengthAttr(t, "space")
385
+ }))
386
+ };
387
+ }
388
+ function $e(a, e) {
389
+ return {
390
+ chapSep: e.attr(a, "chapSep"),
391
+ chapStyle: e.attr(a, "chapStyle"),
392
+ format: e.attr(a, "fmt"),
393
+ start: e.intAttr(a, "start")
394
+ };
395
+ }
396
+ function U(a, e) {
397
+ return {
398
+ id: e.attr(a, "id"),
399
+ type: e.attr(a, "type")
400
+ };
401
+ }
402
+ function He(a, e) {
403
+ return {
404
+ before: e.lengthAttr(a, "before"),
405
+ after: e.lengthAttr(a, "after"),
406
+ line: e.intAttr(a, "line"),
407
+ lineRule: e.attr(a, "lineRule")
408
+ };
409
+ }
410
+ function V(a, e) {
411
+ let t = {};
412
+ for (let r of e.elements(a))
413
+ De(r, t, e);
414
+ return t;
415
+ }
416
+ function De(a, e, t) {
417
+ return !!re(a, e, t);
418
+ }
419
+ function ne(a, e) {
420
+ let t = {};
421
+ for (let r of e.elements(a))
422
+ ie(r, t, e);
423
+ return t;
424
+ }
425
+ function ie(a, e, t) {
426
+ if (a.namespaceURI != ee.wordml)
427
+ return !1;
428
+ if (re(a, e, t))
429
+ return !0;
430
+ switch (a.localName) {
431
+ case "tabs":
432
+ e.tabs = Oe(a, t);
433
+ break;
434
+ case "sectPr":
435
+ e.sectionProps = se(a, t);
436
+ break;
437
+ case "numPr":
438
+ e.numbering = Ie(a, t);
439
+ break;
440
+ case "spacing":
441
+ return e.lineSpacing = He(a, t), !1;
442
+ case "textAlignment":
443
+ return e.textAlignment = t.attr(a, "val"), !1;
444
+ case "keepLines":
445
+ e.keepLines = t.boolAttr(a, "val", !0);
446
+ break;
447
+ case "keepNext":
448
+ e.keepNext = t.boolAttr(a, "val", !0);
449
+ break;
450
+ case "pageBreakBefore":
451
+ e.pageBreakBefore = t.boolAttr(a, "val", !0);
452
+ break;
453
+ case "outlineLvl":
454
+ e.outlineLevel = t.intAttr(a, "val");
455
+ break;
456
+ case "pStyle":
457
+ e.styleName = t.attr(a, "val");
458
+ break;
459
+ case "rPr":
460
+ e.runProps = V(a, t);
461
+ break;
462
+ default:
463
+ return !1;
464
+ }
465
+ return !0;
466
+ }
467
+ function Oe(a, e) {
468
+ return e.elements(a, "tab").map((t) => ({
469
+ position: e.lengthAttr(t, "pos"),
470
+ leader: e.attr(t, "leader"),
471
+ style: e.attr(t, "val")
472
+ }));
473
+ }
474
+ function Ie(a, e) {
475
+ var t = {};
476
+ for (let r of e.elements(a))
477
+ switch (r.localName) {
478
+ case "numId":
479
+ t.id = e.attr(r, "val");
480
+ break;
481
+ case "ilvl":
482
+ t.level = e.intAttr(r, "val");
483
+ break;
484
+ }
485
+ return t;
486
+ }
487
+ function _e(a, e) {
488
+ let t = {
489
+ numberings: [],
490
+ abstractNumberings: [],
491
+ bulletPictures: []
492
+ };
493
+ for (let r of e.elements(a))
494
+ switch (r.localName) {
495
+ case "num":
496
+ t.numberings.push(ze(r, e));
497
+ break;
498
+ case "abstractNum":
499
+ t.abstractNumberings.push(je(r, e));
500
+ break;
501
+ case "numPicBullet":
502
+ t.bulletPictures.push(We(r, e));
503
+ break;
504
+ }
505
+ return t;
506
+ }
507
+ function ze(a, e) {
508
+ let t = {
509
+ id: e.attr(a, "numId"),
510
+ overrides: []
511
+ };
512
+ for (let r of e.elements(a))
513
+ switch (r.localName) {
514
+ case "abstractNumId":
515
+ t.abstractId = e.attr(r, "val");
516
+ break;
517
+ case "lvlOverride":
518
+ t.overrides.push(Ve(r, e));
519
+ break;
520
+ }
521
+ return t;
522
+ }
523
+ function je(a, e) {
524
+ let t = {
525
+ id: e.attr(a, "abstractNumId"),
526
+ levels: []
527
+ };
528
+ for (let r of e.elements(a))
529
+ switch (r.localName) {
530
+ case "name":
531
+ t.name = e.attr(r, "val");
532
+ break;
533
+ case "multiLevelType":
534
+ t.multiLevelType = e.attr(r, "val");
535
+ break;
536
+ case "numStyleLink":
537
+ t.numberingStyleLink = e.attr(r, "val");
538
+ break;
539
+ case "styleLink":
540
+ t.styleLink = e.attr(r, "val");
541
+ break;
542
+ case "lvl":
543
+ t.levels.push(oe(r, e));
544
+ break;
545
+ }
546
+ return t;
547
+ }
548
+ function oe(a, e) {
549
+ let t = {
550
+ level: e.intAttr(a, "ilvl")
551
+ };
552
+ for (let r of e.elements(a))
553
+ switch (r.localName) {
554
+ case "start":
555
+ t.start = e.attr(r, "val");
556
+ break;
557
+ case "lvlRestart":
558
+ t.restart = e.intAttr(r, "val");
559
+ break;
560
+ case "numFmt":
561
+ t.format = e.attr(r, "val");
562
+ break;
563
+ case "lvlText":
564
+ t.text = e.attr(r, "val");
565
+ break;
566
+ case "lvlJc":
567
+ t.justification = e.attr(r, "val");
568
+ break;
569
+ case "lvlPicBulletId":
570
+ t.bulletPictureId = e.attr(r, "val");
571
+ break;
572
+ case "pStyle":
573
+ t.paragraphStyle = e.attr(r, "val");
574
+ break;
575
+ case "pPr":
576
+ t.paragraphProps = ne(r, e);
577
+ break;
578
+ case "rPr":
579
+ t.runProps = V(r, e);
580
+ break;
581
+ }
582
+ return t;
583
+ }
584
+ function Ve(a, e) {
585
+ let t = {
586
+ level: e.intAttr(a, "ilvl")
587
+ };
588
+ for (let r of e.elements(a))
589
+ switch (r.localName) {
590
+ case "startOverride":
591
+ t.start = e.intAttr(r, "val");
592
+ break;
593
+ case "lvl":
594
+ t.numberingLevel = oe(r, e);
595
+ break;
596
+ }
597
+ return t;
598
+ }
599
+ function We(a, e) {
600
+ var t = e.element(a, "pict"), r = t && e.element(t, "shape"), s = r && e.element(r, "imagedata");
601
+ return s ? {
602
+ id: e.attr(a, "numPicBulletId"),
603
+ referenceId: e.attr(s, "id"),
604
+ style: e.attr(r, "style")
605
+ } : null;
606
+ }
607
+ class Xe extends v {
608
+ constructor(e, t, r) {
609
+ super(e, t), this._documentParser = r;
610
+ }
611
+ parseXml(e) {
612
+ Object.assign(this, _e(e, this._package.xmlParser)), this.domNumberings = this._documentParser.parseNumberingFile(e);
613
+ }
614
+ }
615
+ class Ge extends v {
616
+ constructor(e, t, r) {
617
+ super(e, t), this._documentParser = r;
618
+ }
619
+ parseXml(e) {
620
+ this.styles = this._documentParser.parseStylesFile(e);
621
+ }
622
+ }
623
+ var o;
624
+ (function(a) {
625
+ a.Document = "document", a.Paragraph = "paragraph", a.Run = "run", a.Break = "break", a.NoBreakHyphen = "noBreakHyphen", a.Table = "table", a.Row = "row", a.Cell = "cell", a.Hyperlink = "hyperlink", a.SmartTag = "smartTag", a.Drawing = "drawing", a.Image = "image", a.Text = "text", a.Tab = "tab", a.Symbol = "symbol", a.BookmarkStart = "bookmarkStart", a.BookmarkEnd = "bookmarkEnd", a.Footer = "footer", a.Header = "header", a.FootnoteReference = "footnoteReference", a.EndnoteReference = "endnoteReference", a.Footnote = "footnote", a.Endnote = "endnote", a.SimpleField = "simpleField", a.ComplexField = "complexField", a.Instruction = "instruction", a.VmlPicture = "vmlPicture", a.MmlMath = "mmlMath", a.MmlMathParagraph = "mmlMathParagraph", a.MmlFraction = "mmlFraction", a.MmlFunction = "mmlFunction", a.MmlFunctionName = "mmlFunctionName", a.MmlNumerator = "mmlNumerator", a.MmlDenominator = "mmlDenominator", a.MmlRadical = "mmlRadical", a.MmlBase = "mmlBase", a.MmlDegree = "mmlDegree", a.MmlSuperscript = "mmlSuperscript", a.MmlSubscript = "mmlSubscript", a.MmlPreSubSuper = "mmlPreSubSuper", a.MmlSubArgument = "mmlSubArgument", a.MmlSuperArgument = "mmlSuperArgument", a.MmlNary = "mmlNary", a.MmlDelimiter = "mmlDelimiter", a.MmlRun = "mmlRun", a.MmlEquationArray = "mmlEquationArray", a.MmlLimit = "mmlLimit", a.MmlLimitLower = "mmlLimitLower", a.MmlMatrix = "mmlMatrix", a.MmlMatrixRow = "mmlMatrixRow", a.MmlBox = "mmlBox", a.MmlBar = "mmlBar", a.MmlGroupChar = "mmlGroupChar", a.VmlElement = "vmlElement", a.Inserted = "inserted", a.Deleted = "deleted", a.DeletedText = "deletedText", a.Comment = "comment", a.CommentReference = "commentReference", a.CommentRangeStart = "commentRangeStart", a.CommentRangeEnd = "commentRangeEnd", a.AltChunk = "altChunk";
626
+ })(o || (o = {}));
627
+ class M {
628
+ constructor() {
629
+ this.children = [], this.cssStyle = {};
630
+ }
631
+ }
632
+ class Ue extends M {
633
+ constructor() {
634
+ super(...arguments), this.type = o.Header;
635
+ }
636
+ }
637
+ class qe extends M {
638
+ constructor() {
639
+ super(...arguments), this.type = o.Footer;
640
+ }
641
+ }
642
+ class le extends v {
643
+ constructor(e, t, r) {
644
+ super(e, t), this._documentParser = r;
645
+ }
646
+ parseXml(e) {
647
+ this.rootElement = this.createRootElement(), this.rootElement.children = this._documentParser.parseBodyElements(e);
648
+ }
649
+ }
650
+ class Je extends le {
651
+ createRootElement() {
652
+ return new Ue();
653
+ }
654
+ }
655
+ class Ye extends le {
656
+ createRootElement() {
657
+ return new qe();
658
+ }
659
+ }
660
+ function Ze(a, e) {
661
+ const t = {};
662
+ for (let r of e.elements(a))
663
+ switch (r.localName) {
664
+ case "Template":
665
+ t.template = r.textContent;
666
+ break;
667
+ case "Pages":
668
+ t.pages = E(r.textContent);
669
+ break;
670
+ case "Words":
671
+ t.words = E(r.textContent);
672
+ break;
673
+ case "Characters":
674
+ t.characters = E(r.textContent);
675
+ break;
676
+ case "Application":
677
+ t.application = r.textContent;
678
+ break;
679
+ case "Lines":
680
+ t.lines = E(r.textContent);
681
+ break;
682
+ case "Paragraphs":
683
+ t.paragraphs = E(r.textContent);
684
+ break;
685
+ case "Company":
686
+ t.company = r.textContent;
687
+ break;
688
+ case "AppVersion":
689
+ t.appVersion = r.textContent;
690
+ break;
691
+ }
692
+ return t;
693
+ }
694
+ function E(a) {
695
+ if (!(typeof a > "u"))
696
+ return parseInt(a);
697
+ }
698
+ class Ke extends v {
699
+ parseXml(e) {
700
+ this.props = Ze(e, this._package.xmlParser);
701
+ }
702
+ }
703
+ function Qe(a, e) {
704
+ const t = {};
705
+ for (let r of e.elements(a))
706
+ switch (r.localName) {
707
+ case "title":
708
+ t.title = r.textContent;
709
+ break;
710
+ case "description":
711
+ t.description = r.textContent;
712
+ break;
713
+ case "subject":
714
+ t.subject = r.textContent;
715
+ break;
716
+ case "creator":
717
+ t.creator = r.textContent;
718
+ break;
719
+ case "keywords":
720
+ t.keywords = r.textContent;
721
+ break;
722
+ case "language":
723
+ t.language = r.textContent;
724
+ break;
725
+ case "lastModifiedBy":
726
+ t.lastModifiedBy = r.textContent;
727
+ break;
728
+ case "revision":
729
+ r.textContent && (t.revision = parseInt(r.textContent));
730
+ break;
731
+ }
732
+ return t;
733
+ }
734
+ class et extends v {
735
+ parseXml(e) {
736
+ this.props = Qe(e, this._package.xmlParser);
737
+ }
738
+ }
739
+ class tt {
740
+ }
741
+ function rt(a, e) {
742
+ var t = new tt(), r = e.element(a, "themeElements");
743
+ for (let s of e.elements(r))
744
+ switch (s.localName) {
745
+ case "clrScheme":
746
+ t.colorScheme = at(s, e);
747
+ break;
748
+ case "fontScheme":
749
+ t.fontScheme = st(s, e);
750
+ break;
751
+ }
752
+ return t;
753
+ }
754
+ function at(a, e) {
755
+ var t = {
756
+ name: e.attr(a, "name"),
757
+ colors: {}
758
+ };
759
+ for (let n of e.elements(a)) {
760
+ var r = e.element(n, "srgbClr"), s = e.element(n, "sysClr");
761
+ r ? t.colors[n.localName] = e.attr(r, "val") : s && (t.colors[n.localName] = e.attr(s, "lastClr"));
762
+ }
763
+ return t;
764
+ }
765
+ function st(a, e) {
766
+ var t = {
767
+ name: e.attr(a, "name")
768
+ };
769
+ for (let r of e.elements(a))
770
+ switch (r.localName) {
771
+ case "majorFont":
772
+ t.majorFont = q(r, e);
773
+ break;
774
+ case "minorFont":
775
+ t.minorFont = q(r, e);
776
+ break;
777
+ }
778
+ return t;
779
+ }
780
+ function q(a, e) {
781
+ return {
782
+ latinTypeface: e.elementAttr(a, "latin", "typeface"),
783
+ eaTypeface: e.elementAttr(a, "ea", "typeface"),
784
+ csTypeface: e.elementAttr(a, "cs", "typeface")
785
+ };
786
+ }
787
+ class nt extends v {
788
+ constructor(e, t) {
789
+ super(e, t);
790
+ }
791
+ parseXml(e) {
792
+ this.theme = rt(e, this._package.xmlParser);
793
+ }
794
+ }
795
+ class ce {
796
+ }
797
+ class it extends ce {
798
+ constructor() {
799
+ super(...arguments), this.type = o.Footnote;
800
+ }
801
+ }
802
+ class ot extends ce {
803
+ constructor() {
804
+ super(...arguments), this.type = o.Endnote;
805
+ }
806
+ }
807
+ class he extends v {
808
+ constructor(e, t, r) {
809
+ super(e, t), this._documentParser = r;
810
+ }
811
+ }
812
+ class lt extends he {
813
+ constructor(e, t, r) {
814
+ super(e, t, r);
815
+ }
816
+ parseXml(e) {
817
+ this.notes = this._documentParser.parseNotes(e, "footnote", it);
818
+ }
819
+ }
820
+ class ct extends he {
821
+ constructor(e, t, r) {
822
+ super(e, t, r);
823
+ }
824
+ parseXml(e) {
825
+ this.notes = this._documentParser.parseNotes(e, "endnote", ot);
826
+ }
827
+ }
828
+ function ht(a, e) {
829
+ var t = {};
830
+ for (let r of e.elements(a))
831
+ switch (r.localName) {
832
+ case "defaultTabStop":
833
+ t.defaultTabStop = e.lengthAttr(r, "val");
834
+ break;
835
+ case "footnotePr":
836
+ t.footnoteProps = J(r, e);
837
+ break;
838
+ case "endnotePr":
839
+ t.endnoteProps = J(r, e);
840
+ break;
841
+ case "autoHyphenation":
842
+ t.autoHyphenation = e.boolAttr(r, "val");
843
+ break;
844
+ case "evenAndOddHeaders":
845
+ t.evenAndOddHeaders = e.boolAttr(r, "val", !0);
846
+ break;
847
+ }
848
+ return t;
849
+ }
850
+ function J(a, e) {
851
+ var t = {
852
+ defaultNoteIds: []
853
+ };
854
+ for (let r of e.elements(a))
855
+ switch (r.localName) {
856
+ case "numFmt":
857
+ t.nummeringFormat = e.attr(r, "val");
858
+ break;
859
+ case "footnote":
860
+ case "endnote":
861
+ t.defaultNoteIds.push(e.attr(r, "id"));
862
+ break;
863
+ }
864
+ return t;
865
+ }
866
+ class ut extends v {
867
+ constructor(e, t) {
868
+ super(e, t);
869
+ }
870
+ parseXml(e) {
871
+ this.settings = ht(e, this._package.xmlParser);
872
+ }
873
+ }
874
+ function dt(a, e) {
875
+ return e.elements(a, "property").map((t) => {
876
+ const r = t.firstChild;
877
+ return {
878
+ formatId: e.attr(t, "fmtid"),
879
+ name: e.attr(t, "name"),
880
+ type: r.nodeName,
881
+ value: r.textContent
882
+ };
883
+ });
884
+ }
885
+ class pt extends v {
886
+ parseXml(e) {
887
+ this.props = dt(e, this._package.xmlParser);
888
+ }
889
+ }
890
+ class mt extends v {
891
+ constructor(e, t, r) {
892
+ super(e, t), this._documentParser = r;
893
+ }
894
+ parseXml(e) {
895
+ this.comments = this._documentParser.parseComments(e), this.commentMap = S(this.comments, (t) => t.id);
896
+ }
897
+ }
898
+ class ft extends v {
899
+ constructor(e, t) {
900
+ super(e, t), this.comments = [];
901
+ }
902
+ parseXml(e) {
903
+ const t = this._package.xmlParser;
904
+ for (let r of t.elements(e, "commentEx"))
905
+ this.comments.push({
906
+ paraId: t.attr(r, "paraId"),
907
+ paraIdParent: t.attr(r, "paraIdParent"),
908
+ done: t.boolAttr(r, "done")
909
+ });
910
+ this.commentMap = S(this.comments, (r) => r.paraId);
911
+ }
912
+ }
913
+ const gt = [
914
+ { type: g.OfficeDocument, target: "word/document.xml" },
915
+ { type: g.ExtendedProperties, target: "docProps/app.xml" },
916
+ { type: g.CoreProperties, target: "docProps/core.xml" },
917
+ { type: g.CustomProperties, target: "docProps/custom.xml" }
918
+ ];
919
+ class W {
920
+ constructor() {
921
+ this.parts = [], this.partsMap = {}, this.contentTypes = [];
922
+ }
923
+ static async load(e, t, r) {
924
+ var s = new W();
925
+ return s._options = r, s._parser = t, s._package = await j.load(e, r), s.rels = await s._package.loadRelationships(), s.contentTypes = await s._package.loadContentTypes(), await Promise.all(gt.map((n) => {
926
+ const l = s.rels.find((h) => h.type === n.type) ?? n;
927
+ return s.loadRelationshipPart(l.target, l.type);
928
+ })), s;
929
+ }
930
+ save(e = "blob") {
931
+ return this._package.save(e);
932
+ }
933
+ async loadRelationshipPart(e, t) {
934
+ if (this.partsMap[e])
935
+ return this.partsMap[e];
936
+ if (!this._package.get(e))
937
+ return null;
938
+ let r = null;
939
+ switch (t) {
940
+ case g.OfficeDocument:
941
+ this.documentPart = r = new Te(this._package, e, this._parser);
942
+ break;
943
+ case g.FontTable:
944
+ this.fontTablePart = r = new xe(this._package, e);
945
+ break;
946
+ case g.Numbering:
947
+ this.numberingPart = r = new Xe(this._package, e, this._parser);
948
+ break;
949
+ case g.Styles:
950
+ this.stylesPart = r = new Ge(this._package, e, this._parser);
951
+ break;
952
+ case g.Theme:
953
+ this.themePart = r = new nt(this._package, e);
954
+ break;
955
+ case g.Footnotes:
956
+ this.footnotesPart = r = new lt(this._package, e, this._parser);
957
+ break;
958
+ case g.Endnotes:
959
+ this.endnotesPart = r = new ct(this._package, e, this._parser);
960
+ break;
961
+ case g.Footer:
962
+ r = new Ye(this._package, e, this._parser);
963
+ break;
964
+ case g.Header:
965
+ r = new Je(this._package, e, this._parser);
966
+ break;
967
+ case g.CoreProperties:
968
+ this.corePropsPart = r = new et(this._package, e);
969
+ break;
970
+ case g.ExtendedProperties:
971
+ this.extendedPropsPart = r = new Ke(this._package, e);
972
+ break;
973
+ case g.CustomProperties:
974
+ r = new pt(this._package, e);
975
+ break;
976
+ case g.Settings:
977
+ this.settingsPart = r = new ut(this._package, e);
978
+ break;
979
+ case g.Comments:
980
+ this.commentsPart = r = new mt(this._package, e, this._parser);
981
+ break;
982
+ case g.CommentsExtended:
983
+ this.commentsExtendedPart = r = new ft(this._package, e);
984
+ break;
985
+ }
986
+ if (r == null)
987
+ return Promise.resolve(null);
988
+ if (this.partsMap[e] = r, this.parts.push(r), await r.load(), r.rels?.length > 0) {
989
+ const [s] = L(r.path);
990
+ await Promise.all(r.rels.map((n) => this.loadRelationshipPart(O(n.target, s), n.type)));
991
+ }
992
+ return r;
993
+ }
994
+ async loadDocumentImage(e, t) {
995
+ const r = this.getPathById(t ?? this.documentPart, e);
996
+ return r ? this.blobToURL(await this._package.load(r, "blob"), r) : null;
997
+ }
998
+ async loadNumberingImage(e) {
999
+ const t = this.getPathById(this.numberingPart, e);
1000
+ return t ? this.blobToURL(await this._package.load(t, "blob"), t) : null;
1001
+ }
1002
+ async loadFont(e, t) {
1003
+ const r = this.getPathById(this.fontTablePart, e);
1004
+ if (!r)
1005
+ return null;
1006
+ const s = await this._package.load(r, "uint8array");
1007
+ return s && this.blobToURL(new Blob([bt(s, t)]), r);
1008
+ }
1009
+ async loadAltChunk(e, t) {
1010
+ const r = this.getPathById(t ?? this.documentPart, e);
1011
+ return r ? this._package.load(r, "string") : Promise.resolve(null);
1012
+ }
1013
+ blobToURL(e, t) {
1014
+ if (!e)
1015
+ return null;
1016
+ if (t) {
1017
+ const r = this.contentTypes.find((s) => s.partName === t || s.extension && t.endsWith(`.${s.extension}`));
1018
+ e = r ? new Blob([e], { type: r.contentType }) : e;
1019
+ }
1020
+ return this._options.useBase64URL ? ke(e) : URL.createObjectURL(e);
1021
+ }
1022
+ findPartByRelId(e, t = null) {
1023
+ var r = (t.rels ?? this.rels).find((n) => n.id == e);
1024
+ const s = t ? L(t.path)[0] : "";
1025
+ return r ? this.partsMap[O(r.target, s)] : null;
1026
+ }
1027
+ getPathById(e, t) {
1028
+ const r = e.rels.find((n) => n.id == t), [s] = L(e.path);
1029
+ return r ? O(r.target, s) : null;
1030
+ }
1031
+ }
1032
+ function bt(a, e) {
1033
+ const r = e.replace(/{|}|-/g, ""), s = new Array(16);
1034
+ for (let n = 0; n < 16; n++)
1035
+ s[16 - n - 1] = parseInt(r.substring(n * 2, n * 2 + 2), 16);
1036
+ for (let n = 0; n < 32; n++)
1037
+ a[n] = a[n] ^ s[n % 16];
1038
+ return a;
1039
+ }
1040
+ function kt(a, e) {
1041
+ return {
1042
+ type: o.BookmarkStart,
1043
+ id: e.attr(a, "id"),
1044
+ name: e.attr(a, "name"),
1045
+ colFirst: e.intAttr(a, "colFirst"),
1046
+ colLast: e.intAttr(a, "colLast")
1047
+ };
1048
+ }
1049
+ function vt(a, e) {
1050
+ return {
1051
+ type: o.BookmarkEnd,
1052
+ id: e.attr(a, "id")
1053
+ };
1054
+ }
1055
+ class yt extends M {
1056
+ constructor() {
1057
+ super(...arguments), this.type = o.VmlElement, this.attrs = {};
1058
+ }
1059
+ }
1060
+ function ue(a, e) {
1061
+ var t = new yt();
1062
+ switch (a.localName) {
1063
+ case "rect":
1064
+ t.tagName = "rect", Object.assign(t.attrs, { width: "100%", height: "100%" });
1065
+ break;
1066
+ case "oval":
1067
+ t.tagName = "ellipse", Object.assign(t.attrs, { cx: "50%", cy: "50%", rx: "50%", ry: "50%" });
1068
+ break;
1069
+ case "line":
1070
+ t.tagName = "line";
1071
+ break;
1072
+ case "shape":
1073
+ t.tagName = "g";
1074
+ break;
1075
+ case "textbox":
1076
+ t.tagName = "foreignObject", Object.assign(t.attrs, { width: "100%", height: "100%" });
1077
+ break;
1078
+ default:
1079
+ return null;
1080
+ }
1081
+ for (const r of i.attrs(a))
1082
+ switch (r.localName) {
1083
+ case "style":
1084
+ t.cssStyleText = r.value;
1085
+ break;
1086
+ case "fillcolor":
1087
+ t.attrs.fill = r.value;
1088
+ break;
1089
+ case "from":
1090
+ const [s, n] = Y(r.value);
1091
+ Object.assign(t.attrs, { x1: s, y1: n });
1092
+ break;
1093
+ case "to":
1094
+ const [l, h] = Y(r.value);
1095
+ Object.assign(t.attrs, { x2: l, y2: h });
1096
+ break;
1097
+ }
1098
+ for (const r of i.elements(a))
1099
+ switch (r.localName) {
1100
+ case "stroke":
1101
+ Object.assign(t.attrs, Pt(r));
1102
+ break;
1103
+ case "fill":
1104
+ Object.assign(t.attrs, wt());
1105
+ break;
1106
+ case "imagedata":
1107
+ t.tagName = "image", Object.assign(t.attrs, { width: "100%", height: "100%" }), t.imageHref = {
1108
+ id: i.attr(r, "id"),
1109
+ title: i.attr(r, "title")
1110
+ };
1111
+ break;
1112
+ case "txbxContent":
1113
+ t.children.push(...e.parseBodyElements(r));
1114
+ break;
1115
+ default:
1116
+ const s = ue(r, e);
1117
+ s && t.children.push(s);
1118
+ break;
1119
+ }
1120
+ return t;
1121
+ }
1122
+ function Pt(a) {
1123
+ return {
1124
+ stroke: i.attr(a, "color"),
1125
+ "stroke-width": i.lengthAttr(a, "weight", b.Emu) ?? "1px"
1126
+ };
1127
+ }
1128
+ function wt(a) {
1129
+ return {};
1130
+ }
1131
+ function Y(a) {
1132
+ return a.split(",");
1133
+ }
1134
+ class St extends M {
1135
+ constructor() {
1136
+ super(...arguments), this.type = o.Comment;
1137
+ }
1138
+ }
1139
+ class Mt extends M {
1140
+ constructor(e) {
1141
+ super(), this.id = e, this.type = o.CommentReference;
1142
+ }
1143
+ }
1144
+ class Nt extends M {
1145
+ constructor(e) {
1146
+ super(), this.id = e, this.type = o.CommentRangeStart;
1147
+ }
1148
+ }
1149
+ class Ct extends M {
1150
+ constructor(e) {
1151
+ super(), this.id = e, this.type = o.CommentRangeEnd;
1152
+ }
1153
+ }
1154
+ var $ = {
1155
+ shd: "inherit",
1156
+ color: "black",
1157
+ borderColor: "black",
1158
+ highlight: "transparent"
1159
+ };
1160
+ const At = [], Z = {
1161
+ oMath: o.MmlMath,
1162
+ oMathPara: o.MmlMathParagraph,
1163
+ f: o.MmlFraction,
1164
+ func: o.MmlFunction,
1165
+ fName: o.MmlFunctionName,
1166
+ num: o.MmlNumerator,
1167
+ den: o.MmlDenominator,
1168
+ rad: o.MmlRadical,
1169
+ deg: o.MmlDegree,
1170
+ e: o.MmlBase,
1171
+ sSup: o.MmlSuperscript,
1172
+ sSub: o.MmlSubscript,
1173
+ sPre: o.MmlPreSubSuper,
1174
+ sup: o.MmlSuperArgument,
1175
+ sub: o.MmlSubArgument,
1176
+ d: o.MmlDelimiter,
1177
+ nary: o.MmlNary,
1178
+ eqArr: o.MmlEquationArray,
1179
+ lim: o.MmlLimit,
1180
+ limLow: o.MmlLimitLower,
1181
+ m: o.MmlMatrix,
1182
+ mr: o.MmlMatrixRow,
1183
+ box: o.MmlBox,
1184
+ bar: o.MmlBar,
1185
+ groupChr: o.MmlGroupChar
1186
+ };
1187
+ class Et {
1188
+ constructor(e) {
1189
+ this.options = {
1190
+ ignoreWidth: !1,
1191
+ debug: !1,
1192
+ ...e
1193
+ };
1194
+ }
1195
+ parseNotes(e, t, r) {
1196
+ var s = [];
1197
+ for (let n of i.elements(e, t)) {
1198
+ const l = new r();
1199
+ l.id = i.attr(n, "id"), l.noteType = i.attr(n, "type"), l.children = this.parseBodyElements(n), s.push(l);
1200
+ }
1201
+ return s;
1202
+ }
1203
+ parseComments(e) {
1204
+ var t = [];
1205
+ for (let r of i.elements(e, "comment")) {
1206
+ const s = new St();
1207
+ s.id = i.attr(r, "id"), s.author = i.attr(r, "author"), s.initials = i.attr(r, "initials"), s.date = i.attr(r, "date"), s.children = this.parseBodyElements(r), t.push(s);
1208
+ }
1209
+ return t;
1210
+ }
1211
+ parseDocumentFile(e) {
1212
+ var t = i.element(e, "body"), r = i.element(e, "background"), s = i.element(t, "sectPr");
1213
+ return {
1214
+ type: o.Document,
1215
+ children: this.parseBodyElements(t),
1216
+ props: s ? se(s, i) : {},
1217
+ cssStyle: r ? this.parseBackground(r) : {}
1218
+ };
1219
+ }
1220
+ parseBackground(e) {
1221
+ var t = {}, r = N.colorAttr(e, "color");
1222
+ return r && (t["background-color"] = r), t;
1223
+ }
1224
+ parseBodyElements(e) {
1225
+ var t = [];
1226
+ for (const r of i.elements(e))
1227
+ switch (r.localName) {
1228
+ case "p":
1229
+ t.push(this.parseParagraph(r));
1230
+ break;
1231
+ case "altChunk":
1232
+ t.push(this.parseAltChunk(r));
1233
+ break;
1234
+ case "tbl":
1235
+ t.push(this.parseTable(r));
1236
+ break;
1237
+ case "sdt":
1238
+ t.push(...this.parseSdt(r, (s) => this.parseBodyElements(s)));
1239
+ break;
1240
+ }
1241
+ return t;
1242
+ }
1243
+ parseStylesFile(e) {
1244
+ var t = [];
1245
+ for (const r of i.elements(e))
1246
+ switch (r.localName) {
1247
+ case "style":
1248
+ t.push(this.parseStyle(r));
1249
+ break;
1250
+ case "docDefaults":
1251
+ t.push(this.parseDefaultStyles(r));
1252
+ break;
1253
+ }
1254
+ return t;
1255
+ }
1256
+ parseDefaultStyles(e) {
1257
+ var t = {
1258
+ id: null,
1259
+ name: null,
1260
+ target: null,
1261
+ basedOn: null,
1262
+ styles: []
1263
+ };
1264
+ for (const n of i.elements(e))
1265
+ switch (n.localName) {
1266
+ case "rPrDefault":
1267
+ var r = i.element(n, "rPr");
1268
+ r && t.styles.push({
1269
+ target: "span",
1270
+ values: this.parseDefaultProperties(r, {})
1271
+ });
1272
+ break;
1273
+ case "pPrDefault":
1274
+ var s = i.element(n, "pPr");
1275
+ s && t.styles.push({
1276
+ target: "p",
1277
+ values: this.parseDefaultProperties(s, {})
1278
+ });
1279
+ break;
1280
+ }
1281
+ return t;
1282
+ }
1283
+ parseStyle(e) {
1284
+ var t = {
1285
+ id: i.attr(e, "styleId"),
1286
+ isDefault: i.boolAttr(e, "default"),
1287
+ name: null,
1288
+ target: null,
1289
+ basedOn: null,
1290
+ styles: [],
1291
+ linked: null
1292
+ };
1293
+ switch (i.attr(e, "type")) {
1294
+ case "paragraph":
1295
+ t.target = "p";
1296
+ break;
1297
+ case "table":
1298
+ t.target = "table";
1299
+ break;
1300
+ case "character":
1301
+ t.target = "span";
1302
+ break;
1303
+ }
1304
+ for (const r of i.elements(e))
1305
+ switch (r.localName) {
1306
+ case "basedOn":
1307
+ t.basedOn = i.attr(r, "val");
1308
+ break;
1309
+ case "name":
1310
+ t.name = i.attr(r, "val");
1311
+ break;
1312
+ case "link":
1313
+ t.linked = i.attr(r, "val");
1314
+ break;
1315
+ case "next":
1316
+ t.next = i.attr(r, "val");
1317
+ break;
1318
+ case "aliases":
1319
+ t.aliases = i.attr(r, "val").split(",");
1320
+ break;
1321
+ case "pPr":
1322
+ t.styles.push({
1323
+ target: "p",
1324
+ values: this.parseDefaultProperties(r, {})
1325
+ }), t.paragraphProps = ne(r, i);
1326
+ break;
1327
+ case "rPr":
1328
+ t.styles.push({
1329
+ target: "span",
1330
+ values: this.parseDefaultProperties(r, {})
1331
+ }), t.runProps = V(r, i);
1332
+ break;
1333
+ case "tblPr":
1334
+ case "tcPr":
1335
+ t.styles.push({
1336
+ target: "td",
1337
+ values: this.parseDefaultProperties(r, {})
1338
+ });
1339
+ break;
1340
+ case "tblStylePr":
1341
+ for (let s of this.parseTableStyle(r))
1342
+ t.styles.push(s);
1343
+ break;
1344
+ case "rsid":
1345
+ case "qFormat":
1346
+ case "hidden":
1347
+ case "semiHidden":
1348
+ case "unhideWhenUsed":
1349
+ case "autoRedefine":
1350
+ case "uiPriority":
1351
+ break;
1352
+ default:
1353
+ this.options.debug && console.warn(`DOCX: Unknown style element: ${r.localName}`);
1354
+ }
1355
+ return t;
1356
+ }
1357
+ parseTableStyle(e) {
1358
+ var t = [], r = i.attr(e, "type"), s = "", n = "";
1359
+ switch (r) {
1360
+ case "firstRow":
1361
+ n = ".first-row", s = "tr.first-row td";
1362
+ break;
1363
+ case "lastRow":
1364
+ n = ".last-row", s = "tr.last-row td";
1365
+ break;
1366
+ case "firstCol":
1367
+ n = ".first-col", s = "td.first-col";
1368
+ break;
1369
+ case "lastCol":
1370
+ n = ".last-col", s = "td.last-col";
1371
+ break;
1372
+ case "band1Vert":
1373
+ n = ":not(.no-vband)", s = "td.odd-col";
1374
+ break;
1375
+ case "band2Vert":
1376
+ n = ":not(.no-vband)", s = "td.even-col";
1377
+ break;
1378
+ case "band1Horz":
1379
+ n = ":not(.no-hband)", s = "tr.odd-row";
1380
+ break;
1381
+ case "band2Horz":
1382
+ n = ":not(.no-hband)", s = "tr.even-row";
1383
+ break;
1384
+ default:
1385
+ return [];
1386
+ }
1387
+ for (const l of i.elements(e))
1388
+ switch (l.localName) {
1389
+ case "pPr":
1390
+ t.push({
1391
+ target: `${s} p`,
1392
+ mod: n,
1393
+ values: this.parseDefaultProperties(l, {})
1394
+ });
1395
+ break;
1396
+ case "rPr":
1397
+ t.push({
1398
+ target: `${s} span`,
1399
+ mod: n,
1400
+ values: this.parseDefaultProperties(l, {})
1401
+ });
1402
+ break;
1403
+ case "tblPr":
1404
+ case "tcPr":
1405
+ t.push({
1406
+ target: s,
1407
+ mod: n,
1408
+ values: this.parseDefaultProperties(l, {})
1409
+ });
1410
+ break;
1411
+ }
1412
+ return t;
1413
+ }
1414
+ parseNumberingFile(e) {
1415
+ const t = [], r = [], s = [];
1416
+ for (const n of i.elements(e))
1417
+ switch (n.localName) {
1418
+ case "abstractNum":
1419
+ t.push(...this.parseAbstractNumbering(n, s));
1420
+ break;
1421
+ case "numPicBullet":
1422
+ s.push(this.parseNumberingPicBullet(n));
1423
+ break;
1424
+ case "num":
1425
+ r.push({
1426
+ numId: i.attr(n, "numId"),
1427
+ abstractNumId: i.elementAttr(n, "abstractNumId", "val")
1428
+ });
1429
+ break;
1430
+ }
1431
+ return r.flatMap((n) => t.filter((l) => n.abstractNumId == l.id).map((l) => ({ ...l, id: n.numId })));
1432
+ }
1433
+ parseNumberingPicBullet(e) {
1434
+ var t = i.element(e, "pict"), r = t && i.element(t, "shape"), s = r && i.element(r, "imagedata");
1435
+ return s ? {
1436
+ id: i.intAttr(e, "numPicBulletId"),
1437
+ src: i.attr(s, "id"),
1438
+ style: i.attr(r, "style")
1439
+ } : null;
1440
+ }
1441
+ parseAbstractNumbering(e, t) {
1442
+ var r = [], s = i.attr(e, "abstractNumId");
1443
+ for (const n of i.elements(e))
1444
+ n.localName === "lvl" && r.push(this.parseNumberingLevel(s, n, t));
1445
+ return r;
1446
+ }
1447
+ parseNumberingLevel(e, t, r) {
1448
+ var s = {
1449
+ id: e,
1450
+ level: i.intAttr(t, "ilvl"),
1451
+ start: 1,
1452
+ pStyleName: void 0,
1453
+ pStyle: {},
1454
+ rStyle: {},
1455
+ suff: "tab"
1456
+ };
1457
+ for (const l of i.elements(t))
1458
+ switch (l.localName) {
1459
+ case "start":
1460
+ s.start = i.intAttr(l, "val");
1461
+ break;
1462
+ case "pPr":
1463
+ this.parseDefaultProperties(l, s.pStyle);
1464
+ break;
1465
+ case "rPr":
1466
+ this.parseDefaultProperties(l, s.rStyle);
1467
+ break;
1468
+ case "lvlPicBulletId":
1469
+ var n = i.intAttr(l, "val");
1470
+ s.bullet = r.find((h) => h?.id == n);
1471
+ break;
1472
+ case "lvlText":
1473
+ s.levelText = i.attr(l, "val");
1474
+ break;
1475
+ case "pStyle":
1476
+ s.pStyleName = i.attr(l, "val");
1477
+ break;
1478
+ case "numFmt":
1479
+ s.format = i.attr(l, "val");
1480
+ break;
1481
+ case "suff":
1482
+ s.suff = i.attr(l, "val");
1483
+ break;
1484
+ }
1485
+ return s;
1486
+ }
1487
+ parseSdt(e, t) {
1488
+ const r = i.element(e, "sdtContent");
1489
+ return r ? t(r) : [];
1490
+ }
1491
+ parseChange(e, t, r) {
1492
+ return {
1493
+ type: e,
1494
+ children: r(t)?.children ?? [],
1495
+ id: i.attr(t, "id"),
1496
+ author: i.attr(t, "author"),
1497
+ date: i.attr(t, "date")
1498
+ };
1499
+ }
1500
+ parseAltChunk(e) {
1501
+ return { type: o.AltChunk, children: [], id: i.attr(e, "id") };
1502
+ }
1503
+ parseParagraph(e) {
1504
+ var t = { type: o.Paragraph, children: [] };
1505
+ for (let r of i.elements(e))
1506
+ switch (r.localName) {
1507
+ case "pPr":
1508
+ this.parseParagraphProperties(r, t);
1509
+ break;
1510
+ case "r":
1511
+ t.children.push(this.parseRun(r, t));
1512
+ break;
1513
+ case "hyperlink":
1514
+ t.children.push(this.parseHyperlink(r, t));
1515
+ break;
1516
+ case "smartTag":
1517
+ t.children.push(this.parseSmartTag(r, t));
1518
+ break;
1519
+ case "bookmarkStart":
1520
+ t.children.push(kt(r, i));
1521
+ break;
1522
+ case "bookmarkEnd":
1523
+ t.children.push(vt(r, i));
1524
+ break;
1525
+ case "commentRangeStart":
1526
+ t.children.push(new Nt(i.attr(r, "id")));
1527
+ break;
1528
+ case "commentRangeEnd":
1529
+ t.children.push(new Ct(i.attr(r, "id")));
1530
+ break;
1531
+ case "oMath":
1532
+ case "oMathPara":
1533
+ t.children.push(this.parseMathElement(r));
1534
+ break;
1535
+ case "sdt":
1536
+ t.children.push(...this.parseSdt(r, (s) => this.parseParagraph(s).children));
1537
+ break;
1538
+ case "ins":
1539
+ t.children.push(this.parseChange(o.Inserted, r, (s) => this.parseParagraph(s)));
1540
+ break;
1541
+ case "del":
1542
+ t.children.push(this.parseChange(o.Deleted, r, (s) => this.parseParagraph(s)));
1543
+ break;
1544
+ }
1545
+ return t;
1546
+ }
1547
+ parseParagraphProperties(e, t) {
1548
+ this.parseDefaultProperties(e, t.cssStyle = {}, null, (r) => {
1549
+ if (ie(r, t, i))
1550
+ return !0;
1551
+ switch (r.localName) {
1552
+ case "pStyle":
1553
+ t.styleName = i.attr(r, "val");
1554
+ break;
1555
+ case "cnfStyle":
1556
+ t.className = f.classNameOfCnfStyle(r);
1557
+ break;
1558
+ case "framePr":
1559
+ this.parseFrame(r, t);
1560
+ break;
1561
+ case "rPr":
1562
+ break;
1563
+ default:
1564
+ return !1;
1565
+ }
1566
+ return !0;
1567
+ });
1568
+ }
1569
+ parseFrame(e, t) {
1570
+ var r = i.attr(e, "dropCap");
1571
+ r == "drop" && (t.cssStyle.float = "left");
1572
+ }
1573
+ parseHyperlink(e, t) {
1574
+ var r = { type: o.Hyperlink, parent: t, children: [] };
1575
+ r.anchor = i.attr(e, "anchor"), r.id = i.attr(e, "id");
1576
+ for (const s of i.elements(e))
1577
+ s.localName === "r" && r.children.push(this.parseRun(s, r));
1578
+ return r;
1579
+ }
1580
+ parseSmartTag(e, t) {
1581
+ var r = { type: o.SmartTag, parent: t, children: [] }, s = i.attr(e, "uri"), n = i.attr(e, "element");
1582
+ s && (r.uri = s), n && (r.element = n);
1583
+ for (const l of i.elements(e))
1584
+ switch (l.localName) {
1585
+ case "r":
1586
+ r.children.push(this.parseRun(l, r));
1587
+ break;
1588
+ case "smartTag":
1589
+ r.children.push(this.parseSmartTag(l, r));
1590
+ break;
1591
+ }
1592
+ return r;
1593
+ }
1594
+ parseRun(e, t) {
1595
+ var r = { type: o.Run, parent: t, children: [] };
1596
+ for (let s of i.elements(e))
1597
+ switch (s = this.checkAlternateContent(s), s?.localName) {
1598
+ case "t":
1599
+ r.children.push({
1600
+ type: o.Text,
1601
+ text: s.textContent
1602
+ });
1603
+ break;
1604
+ case "delText":
1605
+ r.children.push({
1606
+ type: o.DeletedText,
1607
+ text: s.textContent
1608
+ });
1609
+ break;
1610
+ case "commentReference":
1611
+ r.children.push(new Mt(i.attr(s, "id")));
1612
+ break;
1613
+ case "fldSimple":
1614
+ r.children.push({
1615
+ type: o.SimpleField,
1616
+ instruction: i.attr(s, "instr"),
1617
+ lock: i.boolAttr(s, "lock", !1),
1618
+ dirty: i.boolAttr(s, "dirty", !1)
1619
+ });
1620
+ break;
1621
+ case "instrText":
1622
+ r.fieldRun = !0, r.children.push({
1623
+ type: o.Instruction,
1624
+ text: s.textContent
1625
+ });
1626
+ break;
1627
+ case "fldChar":
1628
+ r.fieldRun = !0, r.children.push({
1629
+ type: o.ComplexField,
1630
+ charType: i.attr(s, "fldCharType"),
1631
+ lock: i.boolAttr(s, "lock", !1),
1632
+ dirty: i.boolAttr(s, "dirty", !1)
1633
+ });
1634
+ break;
1635
+ case "noBreakHyphen":
1636
+ r.children.push({ type: o.NoBreakHyphen });
1637
+ break;
1638
+ case "br":
1639
+ r.children.push({
1640
+ type: o.Break,
1641
+ break: i.attr(s, "type") || "textWrapping"
1642
+ });
1643
+ break;
1644
+ case "lastRenderedPageBreak":
1645
+ r.children.push({
1646
+ type: o.Break,
1647
+ break: "lastRenderedPageBreak"
1648
+ });
1649
+ break;
1650
+ case "sym":
1651
+ r.children.push({
1652
+ type: o.Symbol,
1653
+ font: _(i.attr(s, "font")),
1654
+ char: i.hexAttr(s, "char")
1655
+ });
1656
+ break;
1657
+ case "tab":
1658
+ r.children.push({ type: o.Tab });
1659
+ break;
1660
+ case "footnoteReference":
1661
+ r.children.push({
1662
+ type: o.FootnoteReference,
1663
+ id: i.attr(s, "id")
1664
+ });
1665
+ break;
1666
+ case "endnoteReference":
1667
+ r.children.push({
1668
+ type: o.EndnoteReference,
1669
+ id: i.attr(s, "id")
1670
+ });
1671
+ break;
1672
+ case "drawing":
1673
+ let n = this.parseDrawing(s);
1674
+ n && r.children.push(n);
1675
+ break;
1676
+ case "pict":
1677
+ r.children.push(this.parseVmlPicture(s));
1678
+ break;
1679
+ case "rPr":
1680
+ this.parseRunProperties(s, r);
1681
+ break;
1682
+ }
1683
+ return r;
1684
+ }
1685
+ parseMathElement(e) {
1686
+ const t = `${e.localName}Pr`, r = { type: Z[e.localName], children: [] };
1687
+ for (const n of i.elements(e))
1688
+ if (Z[n.localName])
1689
+ r.children.push(this.parseMathElement(n));
1690
+ else if (n.localName == "r") {
1691
+ var s = this.parseRun(n);
1692
+ s.type = o.MmlRun, r.children.push(s);
1693
+ } else n.localName == t && (r.props = this.parseMathProperies(n));
1694
+ return r;
1695
+ }
1696
+ parseMathProperies(e) {
1697
+ const t = {};
1698
+ for (const r of i.elements(e))
1699
+ switch (r.localName) {
1700
+ case "chr":
1701
+ t.char = i.attr(r, "val");
1702
+ break;
1703
+ case "vertJc":
1704
+ t.verticalJustification = i.attr(r, "val");
1705
+ break;
1706
+ case "pos":
1707
+ t.position = i.attr(r, "val");
1708
+ break;
1709
+ case "degHide":
1710
+ t.hideDegree = i.boolAttr(r, "val");
1711
+ break;
1712
+ case "begChr":
1713
+ t.beginChar = i.attr(r, "val");
1714
+ break;
1715
+ case "endChr":
1716
+ t.endChar = i.attr(r, "val");
1717
+ break;
1718
+ }
1719
+ return t;
1720
+ }
1721
+ parseRunProperties(e, t) {
1722
+ this.parseDefaultProperties(e, t.cssStyle = {}, null, (r) => {
1723
+ switch (r.localName) {
1724
+ case "rStyle":
1725
+ t.styleName = i.attr(r, "val");
1726
+ break;
1727
+ case "vertAlign":
1728
+ t.verticalAlign = f.valueOfVertAlign(r, !0);
1729
+ break;
1730
+ default:
1731
+ return !1;
1732
+ }
1733
+ return !0;
1734
+ });
1735
+ }
1736
+ parseVmlPicture(e) {
1737
+ const t = { type: o.VmlPicture, children: [] };
1738
+ for (const r of i.elements(e)) {
1739
+ const s = ue(r, this);
1740
+ s && t.children.push(s);
1741
+ }
1742
+ return t;
1743
+ }
1744
+ checkAlternateContent(e) {
1745
+ if (e.localName != "AlternateContent")
1746
+ return e;
1747
+ var t = i.element(e, "Choice");
1748
+ if (t) {
1749
+ var r = i.attr(t, "Requires"), s = e.lookupNamespaceURI(r);
1750
+ if (At.includes(s))
1751
+ return t.firstElementChild;
1752
+ }
1753
+ return i.element(e, "Fallback")?.firstElementChild;
1754
+ }
1755
+ parseDrawing(e) {
1756
+ for (var t of i.elements(e))
1757
+ switch (t.localName) {
1758
+ case "inline":
1759
+ case "anchor":
1760
+ return this.parseDrawingWrapper(t);
1761
+ }
1762
+ }
1763
+ parseDrawingWrapper(e) {
1764
+ var t = { type: o.Drawing, children: [], cssStyle: {} }, r = e.localName == "anchor";
1765
+ let s = null, n = i.boolAttr(e, "simplePos");
1766
+ i.boolAttr(e, "behindDoc");
1767
+ let l = { relative: "page", align: "left", offset: "0" }, h = { relative: "page", align: "top", offset: "0" };
1768
+ for (var c of i.elements(e))
1769
+ switch (c.localName) {
1770
+ case "simplePos":
1771
+ n && (l.offset = i.lengthAttr(c, "x", b.Emu), h.offset = i.lengthAttr(c, "y", b.Emu));
1772
+ break;
1773
+ case "extent":
1774
+ t.cssStyle.width = i.lengthAttr(c, "cx", b.Emu), t.cssStyle.height = i.lengthAttr(c, "cy", b.Emu);
1775
+ break;
1776
+ case "positionH":
1777
+ case "positionV":
1778
+ if (!n) {
1779
+ let m = c.localName == "positionH" ? l : h;
1780
+ var u = i.element(c, "align"), k = i.element(c, "posOffset");
1781
+ m.relative = i.attr(c, "relativeFrom") ?? m.relative, u && (m.align = u.textContent), k && (m.offset = te(k.textContent, b.Emu));
1782
+ }
1783
+ break;
1784
+ case "wrapTopAndBottom":
1785
+ s = "wrapTopAndBottom";
1786
+ break;
1787
+ case "wrapNone":
1788
+ s = "wrapNone";
1789
+ break;
1790
+ case "graphic":
1791
+ var p = this.parseGraphic(c);
1792
+ p && t.children.push(p);
1793
+ break;
1794
+ }
1795
+ return s == "wrapTopAndBottom" ? (t.cssStyle.display = "block", l.align && (t.cssStyle["text-align"] = l.align, t.cssStyle.width = "100%")) : s == "wrapNone" ? (t.cssStyle.display = "block", t.cssStyle.position = "relative", t.cssStyle.width = "0px", t.cssStyle.height = "0px", l.offset && (t.cssStyle.left = l.offset), h.offset && (t.cssStyle.top = h.offset)) : r && (l.align == "left" || l.align == "right") && (t.cssStyle.float = l.align), t;
1796
+ }
1797
+ parseGraphic(e) {
1798
+ var t = i.element(e, "graphicData");
1799
+ for (let r of i.elements(t))
1800
+ if (r.localName === "pic")
1801
+ return this.parsePicture(r);
1802
+ return null;
1803
+ }
1804
+ parsePicture(e) {
1805
+ var t = { type: o.Image, src: "", cssStyle: {} }, r = i.element(e, "blipFill"), s = i.element(r, "blip"), n = i.element(r, "srcRect");
1806
+ t.src = i.attr(s, "embed"), n && (t.srcRect = [
1807
+ i.intAttr(n, "l", 0) / 1e5,
1808
+ i.intAttr(n, "t", 0) / 1e5,
1809
+ i.intAttr(n, "r", 0) / 1e5,
1810
+ i.intAttr(n, "b", 0) / 1e5
1811
+ ]);
1812
+ var l = i.element(e, "spPr"), h = i.element(l, "xfrm");
1813
+ if (t.cssStyle.position = "relative", h) {
1814
+ t.rotation = i.intAttr(h, "rot", 0) / 6e4;
1815
+ for (var c of i.elements(h))
1816
+ switch (c.localName) {
1817
+ case "ext":
1818
+ t.cssStyle.width = i.lengthAttr(c, "cx", b.Emu), t.cssStyle.height = i.lengthAttr(c, "cy", b.Emu);
1819
+ break;
1820
+ case "off":
1821
+ t.cssStyle.left = i.lengthAttr(c, "x", b.Emu), t.cssStyle.top = i.lengthAttr(c, "y", b.Emu);
1822
+ break;
1823
+ }
1824
+ }
1825
+ return t;
1826
+ }
1827
+ parseTable(e) {
1828
+ var t = { type: o.Table, children: [] };
1829
+ for (const r of i.elements(e))
1830
+ switch (r.localName) {
1831
+ case "tr":
1832
+ t.children.push(this.parseTableRow(r));
1833
+ break;
1834
+ case "tblGrid":
1835
+ t.columns = this.parseTableColumns(r);
1836
+ break;
1837
+ case "tblPr":
1838
+ this.parseTableProperties(r, t);
1839
+ break;
1840
+ }
1841
+ return t;
1842
+ }
1843
+ parseTableColumns(e) {
1844
+ var t = [];
1845
+ for (const r of i.elements(e))
1846
+ r.localName === "gridCol" && t.push({ width: i.lengthAttr(r, "w") });
1847
+ return t;
1848
+ }
1849
+ parseTableProperties(e, t) {
1850
+ switch (t.cssStyle = {}, t.cellStyle = {}, this.parseDefaultProperties(e, t.cssStyle, t.cellStyle, (r) => {
1851
+ switch (r.localName) {
1852
+ case "tblStyle":
1853
+ t.styleName = i.attr(r, "val");
1854
+ break;
1855
+ case "tblLook":
1856
+ t.className = f.classNameOftblLook(r);
1857
+ break;
1858
+ case "tblpPr":
1859
+ this.parseTablePosition(r, t);
1860
+ break;
1861
+ case "tblStyleColBandSize":
1862
+ t.colBandSize = i.intAttr(r, "val");
1863
+ break;
1864
+ case "tblStyleRowBandSize":
1865
+ t.rowBandSize = i.intAttr(r, "val");
1866
+ break;
1867
+ case "hidden":
1868
+ t.cssStyle.display = "none";
1869
+ break;
1870
+ default:
1871
+ return !1;
1872
+ }
1873
+ return !0;
1874
+ }), t.cssStyle["text-align"]) {
1875
+ case "center":
1876
+ delete t.cssStyle["text-align"], t.cssStyle["margin-left"] = "auto", t.cssStyle["margin-right"] = "auto";
1877
+ break;
1878
+ case "right":
1879
+ delete t.cssStyle["text-align"], t.cssStyle["margin-left"] = "auto";
1880
+ break;
1881
+ }
1882
+ }
1883
+ parseTablePosition(e, t) {
1884
+ var r = i.lengthAttr(e, "topFromText"), s = i.lengthAttr(e, "bottomFromText"), n = i.lengthAttr(e, "rightFromText"), l = i.lengthAttr(e, "leftFromText");
1885
+ t.cssStyle.float = "left", t.cssStyle["margin-bottom"] = f.addSize(t.cssStyle["margin-bottom"], s), t.cssStyle["margin-left"] = f.addSize(t.cssStyle["margin-left"], l), t.cssStyle["margin-right"] = f.addSize(t.cssStyle["margin-right"], n), t.cssStyle["margin-top"] = f.addSize(t.cssStyle["margin-top"], r);
1886
+ }
1887
+ parseTableRow(e) {
1888
+ var t = { type: o.Row, children: [] };
1889
+ for (const r of i.elements(e))
1890
+ switch (r.localName) {
1891
+ case "tc":
1892
+ t.children.push(this.parseTableCell(r));
1893
+ break;
1894
+ case "trPr":
1895
+ case "tblPrEx":
1896
+ this.parseTableRowProperties(r, t);
1897
+ break;
1898
+ }
1899
+ return t;
1900
+ }
1901
+ parseTableRowProperties(e, t) {
1902
+ t.cssStyle = this.parseDefaultProperties(e, {}, null, (r) => {
1903
+ switch (r.localName) {
1904
+ case "cnfStyle":
1905
+ t.className = f.classNameOfCnfStyle(r);
1906
+ break;
1907
+ case "tblHeader":
1908
+ t.isHeader = i.boolAttr(r, "val");
1909
+ break;
1910
+ case "gridBefore":
1911
+ t.gridBefore = i.intAttr(r, "val");
1912
+ break;
1913
+ case "gridAfter":
1914
+ t.gridAfter = i.intAttr(r, "val");
1915
+ break;
1916
+ default:
1917
+ return !1;
1918
+ }
1919
+ return !0;
1920
+ });
1921
+ }
1922
+ parseTableCell(e) {
1923
+ var t = { type: o.Cell, children: [] };
1924
+ for (const r of i.elements(e))
1925
+ switch (r.localName) {
1926
+ case "tbl":
1927
+ t.children.push(this.parseTable(r));
1928
+ break;
1929
+ case "p":
1930
+ t.children.push(this.parseParagraph(r));
1931
+ break;
1932
+ case "tcPr":
1933
+ this.parseTableCellProperties(r, t);
1934
+ break;
1935
+ }
1936
+ return t;
1937
+ }
1938
+ parseTableCellProperties(e, t) {
1939
+ t.cssStyle = this.parseDefaultProperties(e, {}, null, (r) => {
1940
+ switch (r.localName) {
1941
+ case "gridSpan":
1942
+ t.span = i.intAttr(r, "val", null);
1943
+ break;
1944
+ case "vMerge":
1945
+ t.verticalMerge = i.attr(r, "val") ?? "continue";
1946
+ break;
1947
+ case "cnfStyle":
1948
+ t.className = f.classNameOfCnfStyle(r);
1949
+ break;
1950
+ default:
1951
+ return !1;
1952
+ }
1953
+ return !0;
1954
+ }), this.parseTableCellVerticalText(e, t);
1955
+ }
1956
+ parseTableCellVerticalText(e, t) {
1957
+ const r = {
1958
+ btLr: {
1959
+ writingMode: "vertical-rl",
1960
+ transform: "rotate(180deg)"
1961
+ },
1962
+ lrTb: {
1963
+ writingMode: "vertical-lr",
1964
+ transform: "none"
1965
+ },
1966
+ tbRl: {
1967
+ writingMode: "vertical-rl",
1968
+ transform: "none"
1969
+ }
1970
+ };
1971
+ for (const s of i.elements(e))
1972
+ if (s.localName === "textDirection") {
1973
+ const n = i.attr(s, "val"), l = r[n] || { writingMode: "horizontal-tb" };
1974
+ t.cssStyle["writing-mode"] = l.writingMode, t.cssStyle.transform = l.transform;
1975
+ }
1976
+ }
1977
+ parseDefaultProperties(e, t = null, r = null, s = null) {
1978
+ t = t || {};
1979
+ for (const n of i.elements(e))
1980
+ if (!s?.(n))
1981
+ switch (n.localName) {
1982
+ case "jc":
1983
+ t["text-align"] = f.valueOfJc(n);
1984
+ break;
1985
+ case "textAlignment":
1986
+ t["vertical-align"] = f.valueOfTextAlignment(n);
1987
+ break;
1988
+ case "color":
1989
+ t.color = N.colorAttr(n, "val", null, $.color);
1990
+ break;
1991
+ case "sz":
1992
+ t["font-size"] = t["min-height"] = i.lengthAttr(n, "val", b.FontSize);
1993
+ break;
1994
+ case "shd":
1995
+ t["background-color"] = N.colorAttr(n, "fill", null, $.shd);
1996
+ break;
1997
+ case "highlight":
1998
+ t["background-color"] = N.colorAttr(n, "val", null, $.highlight);
1999
+ break;
2000
+ case "vertAlign":
2001
+ break;
2002
+ case "position":
2003
+ t.verticalAlign = i.lengthAttr(n, "val", b.FontSize);
2004
+ break;
2005
+ case "tcW":
2006
+ if (this.options.ignoreWidth)
2007
+ break;
2008
+ case "tblW":
2009
+ t.width = f.valueOfSize(n, "w");
2010
+ break;
2011
+ case "trHeight":
2012
+ this.parseTrHeight(n, t);
2013
+ break;
2014
+ case "strike":
2015
+ t["text-decoration"] = i.boolAttr(n, "val", !0) ? "line-through" : "none";
2016
+ break;
2017
+ case "b":
2018
+ t["font-weight"] = i.boolAttr(n, "val", !0) ? "bold" : "normal";
2019
+ break;
2020
+ case "i":
2021
+ t["font-style"] = i.boolAttr(n, "val", !0) ? "italic" : "normal";
2022
+ break;
2023
+ case "caps":
2024
+ t["text-transform"] = i.boolAttr(n, "val", !0) ? "uppercase" : "none";
2025
+ break;
2026
+ case "smallCaps":
2027
+ t["font-variant"] = i.boolAttr(n, "val", !0) ? "small-caps" : "none";
2028
+ break;
2029
+ case "u":
2030
+ this.parseUnderline(n, t);
2031
+ break;
2032
+ case "ind":
2033
+ case "tblInd":
2034
+ this.parseIndentation(n, t);
2035
+ break;
2036
+ case "rFonts":
2037
+ this.parseFont(n, t);
2038
+ break;
2039
+ case "tblBorders":
2040
+ this.parseBorderProperties(n, r || t);
2041
+ break;
2042
+ case "tblCellSpacing":
2043
+ t["border-spacing"] = f.valueOfMargin(n), t["border-collapse"] = "separate";
2044
+ break;
2045
+ case "pBdr":
2046
+ this.parseBorderProperties(n, t);
2047
+ break;
2048
+ case "bdr":
2049
+ t.border = f.valueOfBorder(n);
2050
+ break;
2051
+ case "tcBorders":
2052
+ this.parseBorderProperties(n, t);
2053
+ break;
2054
+ case "vanish":
2055
+ i.boolAttr(n, "val", !0) && (t.display = "none");
2056
+ break;
2057
+ case "kern":
2058
+ break;
2059
+ case "noWrap":
2060
+ break;
2061
+ case "tblCellMar":
2062
+ case "tcMar":
2063
+ this.parseMarginProperties(n, r || t);
2064
+ break;
2065
+ case "tblLayout":
2066
+ t["table-layout"] = f.valueOfTblLayout(n);
2067
+ break;
2068
+ case "vAlign":
2069
+ t["vertical-align"] = f.valueOfTextAlignment(n);
2070
+ break;
2071
+ case "spacing":
2072
+ e.localName == "pPr" && this.parseSpacing(n, t);
2073
+ break;
2074
+ case "wordWrap":
2075
+ i.boolAttr(n, "val") && (t["overflow-wrap"] = "break-word");
2076
+ break;
2077
+ case "suppressAutoHyphens":
2078
+ t.hyphens = i.boolAttr(n, "val", !0) ? "none" : "auto";
2079
+ break;
2080
+ case "lang":
2081
+ t.$lang = i.attr(n, "val");
2082
+ break;
2083
+ case "rtl":
2084
+ case "bidi":
2085
+ i.boolAttr(n, "val", !0) && (t.direction = "rtl");
2086
+ break;
2087
+ case "bCs":
2088
+ case "iCs":
2089
+ case "szCs":
2090
+ case "tabs":
2091
+ case "outlineLvl":
2092
+ case "contextualSpacing":
2093
+ case "tblStyleColBandSize":
2094
+ case "tblStyleRowBandSize":
2095
+ case "webHidden":
2096
+ case "pageBreakBefore":
2097
+ case "suppressLineNumbers":
2098
+ case "keepLines":
2099
+ case "keepNext":
2100
+ case "widowControl":
2101
+ case "noProof":
2102
+ break;
2103
+ default:
2104
+ this.options.debug && console.warn(`DOCX: Unknown document element: ${e.localName}.${n.localName}`);
2105
+ break;
2106
+ }
2107
+ return t;
2108
+ }
2109
+ parseUnderline(e, t) {
2110
+ var r = i.attr(e, "val");
2111
+ if (r != null) {
2112
+ switch (r) {
2113
+ case "dash":
2114
+ case "dashDotDotHeavy":
2115
+ case "dashDotHeavy":
2116
+ case "dashedHeavy":
2117
+ case "dashLong":
2118
+ case "dashLongHeavy":
2119
+ case "dotDash":
2120
+ case "dotDotDash":
2121
+ t["text-decoration"] = "underline dashed";
2122
+ break;
2123
+ case "dotted":
2124
+ case "dottedHeavy":
2125
+ t["text-decoration"] = "underline dotted";
2126
+ break;
2127
+ case "double":
2128
+ t["text-decoration"] = "underline double";
2129
+ break;
2130
+ case "single":
2131
+ case "thick":
2132
+ t["text-decoration"] = "underline";
2133
+ break;
2134
+ case "wave":
2135
+ case "wavyDouble":
2136
+ case "wavyHeavy":
2137
+ t["text-decoration"] = "underline wavy";
2138
+ break;
2139
+ case "words":
2140
+ t["text-decoration"] = "underline";
2141
+ break;
2142
+ case "none":
2143
+ t["text-decoration"] = "none";
2144
+ break;
2145
+ }
2146
+ var s = N.colorAttr(e, "color");
2147
+ s && (t["text-decoration-color"] = s);
2148
+ }
2149
+ }
2150
+ parseFont(e, t) {
2151
+ var r = i.attr(e, "ascii"), s = f.themeValue(e, "asciiTheme"), n = i.attr(e, "eastAsia"), l = [r, s, n].filter((h) => h).map((h) => _(h));
2152
+ l.length > 0 && (t["font-family"] = [...new Set(l)].join(", "));
2153
+ }
2154
+ parseIndentation(e, t) {
2155
+ var r = i.lengthAttr(e, "firstLine"), s = i.lengthAttr(e, "hanging"), n = i.lengthAttr(e, "left"), l = i.lengthAttr(e, "start"), h = i.lengthAttr(e, "right"), c = i.lengthAttr(e, "end");
2156
+ r && (t["text-indent"] = r), s && (t["text-indent"] = `-${s}`), (n || l) && (t["margin-inline-start"] = n || l), (h || c) && (t["margin-inline-end"] = h || c);
2157
+ }
2158
+ parseSpacing(e, t) {
2159
+ var r = i.lengthAttr(e, "before"), s = i.lengthAttr(e, "after"), n = i.intAttr(e, "line", null), l = i.attr(e, "lineRule");
2160
+ if (r && (t["margin-top"] = r), s && (t["margin-bottom"] = s), n !== null)
2161
+ switch (l) {
2162
+ case "auto":
2163
+ t["line-height"] = `${(n / 240).toFixed(2)}`;
2164
+ break;
2165
+ case "atLeast":
2166
+ t["line-height"] = `calc(100% + ${n / 20}pt)`;
2167
+ break;
2168
+ default:
2169
+ t["line-height"] = t["min-height"] = `${n / 20}pt`;
2170
+ break;
2171
+ }
2172
+ }
2173
+ parseMarginProperties(e, t) {
2174
+ for (const r of i.elements(e))
2175
+ switch (r.localName) {
2176
+ case "left":
2177
+ t["padding-left"] = f.valueOfMargin(r);
2178
+ break;
2179
+ case "right":
2180
+ t["padding-right"] = f.valueOfMargin(r);
2181
+ break;
2182
+ case "top":
2183
+ t["padding-top"] = f.valueOfMargin(r);
2184
+ break;
2185
+ case "bottom":
2186
+ t["padding-bottom"] = f.valueOfMargin(r);
2187
+ break;
2188
+ }
2189
+ }
2190
+ parseTrHeight(e, t) {
2191
+ i.attr(e, "hRule"), t.height = i.lengthAttr(e, "val");
2192
+ }
2193
+ parseBorderProperties(e, t) {
2194
+ for (const r of i.elements(e))
2195
+ switch (r.localName) {
2196
+ case "start":
2197
+ case "left":
2198
+ t["border-left"] = f.valueOfBorder(r);
2199
+ break;
2200
+ case "end":
2201
+ case "right":
2202
+ t["border-right"] = f.valueOfBorder(r);
2203
+ break;
2204
+ case "top":
2205
+ t["border-top"] = f.valueOfBorder(r);
2206
+ break;
2207
+ case "bottom":
2208
+ t["border-bottom"] = f.valueOfBorder(r);
2209
+ break;
2210
+ }
2211
+ }
2212
+ }
2213
+ const xt = ["black", "blue", "cyan", "darkBlue", "darkCyan", "darkGray", "darkGreen", "darkMagenta", "darkRed", "darkYellow", "green", "lightGray", "magenta", "none", "red", "white", "yellow"];
2214
+ class N {
2215
+ static colorAttr(e, t, r = null, s = "black") {
2216
+ var n = i.attr(e, t);
2217
+ if (n)
2218
+ return n == "auto" ? s : xt.includes(n) ? n : `#${n}`;
2219
+ var l = i.attr(e, "themeColor");
2220
+ return l ? `var(--docx-${l}-color)` : r;
2221
+ }
2222
+ }
2223
+ class f {
2224
+ static themeValue(e, t) {
2225
+ var r = i.attr(e, t);
2226
+ return r ? `var(--docx-${r}-font)` : null;
2227
+ }
2228
+ static valueOfSize(e, t) {
2229
+ var r = b.Dxa;
2230
+ switch (i.attr(e, "type")) {
2231
+ case "dxa":
2232
+ break;
2233
+ case "pct":
2234
+ r = b.Percent;
2235
+ break;
2236
+ case "auto":
2237
+ return "auto";
2238
+ }
2239
+ return i.lengthAttr(e, t, r);
2240
+ }
2241
+ static valueOfMargin(e) {
2242
+ return i.lengthAttr(e, "w");
2243
+ }
2244
+ static valueOfBorder(e) {
2245
+ var t = f.parseBorderType(i.attr(e, "val"));
2246
+ if (t == "none")
2247
+ return "none";
2248
+ var r = N.colorAttr(e, "color"), s = i.lengthAttr(e, "sz", b.Border);
2249
+ return `${s} ${t} ${r == "auto" ? $.borderColor : r}`;
2250
+ }
2251
+ static parseBorderType(e) {
2252
+ switch (e) {
2253
+ case "single":
2254
+ return "solid";
2255
+ case "dashDotStroked":
2256
+ return "solid";
2257
+ case "dashed":
2258
+ return "dashed";
2259
+ case "dashSmallGap":
2260
+ return "dashed";
2261
+ case "dotDash":
2262
+ return "dotted";
2263
+ case "dotDotDash":
2264
+ return "dotted";
2265
+ case "dotted":
2266
+ return "dotted";
2267
+ case "double":
2268
+ return "double";
2269
+ case "doubleWave":
2270
+ return "double";
2271
+ case "inset":
2272
+ return "inset";
2273
+ case "nil":
2274
+ return "none";
2275
+ case "none":
2276
+ return "none";
2277
+ case "outset":
2278
+ return "outset";
2279
+ case "thick":
2280
+ return "solid";
2281
+ case "thickThinLargeGap":
2282
+ return "solid";
2283
+ case "thickThinMediumGap":
2284
+ return "solid";
2285
+ case "thickThinSmallGap":
2286
+ return "solid";
2287
+ case "thinThickLargeGap":
2288
+ return "solid";
2289
+ case "thinThickMediumGap":
2290
+ return "solid";
2291
+ case "thinThickSmallGap":
2292
+ return "solid";
2293
+ case "thinThickThinLargeGap":
2294
+ return "solid";
2295
+ case "thinThickThinMediumGap":
2296
+ return "solid";
2297
+ case "thinThickThinSmallGap":
2298
+ return "solid";
2299
+ case "threeDEmboss":
2300
+ return "solid";
2301
+ case "threeDEngrave":
2302
+ return "solid";
2303
+ case "triple":
2304
+ return "double";
2305
+ case "wave":
2306
+ return "solid";
2307
+ }
2308
+ return "solid";
2309
+ }
2310
+ static valueOfTblLayout(e) {
2311
+ var t = i.attr(e, "val");
2312
+ return t == "fixed" ? "fixed" : "auto";
2313
+ }
2314
+ static classNameOfCnfStyle(e) {
2315
+ const t = i.attr(e, "val"), r = [
2316
+ "first-row",
2317
+ "last-row",
2318
+ "first-col",
2319
+ "last-col",
2320
+ "odd-col",
2321
+ "even-col",
2322
+ "odd-row",
2323
+ "even-row",
2324
+ "ne-cell",
2325
+ "nw-cell",
2326
+ "se-cell",
2327
+ "sw-cell"
2328
+ ];
2329
+ if (t)
2330
+ return r.filter((n, l) => t[l] == "1").join(" ");
2331
+ const s = [
2332
+ "firstRow",
2333
+ "lastRow",
2334
+ "firstColumn",
2335
+ "lastColumn",
2336
+ "oddVBand",
2337
+ "evenVBand",
2338
+ "oddHBand",
2339
+ "evenHBand",
2340
+ "firstRowLastColumn",
2341
+ "firstRowFirstColumn",
2342
+ "lastRowLastColumn",
2343
+ "lastRowFirstColumn"
2344
+ ];
2345
+ return r.filter((n, l) => i.boolAttr(e, s[l])).join(" ");
2346
+ }
2347
+ static valueOfJc(e) {
2348
+ var t = i.attr(e, "val");
2349
+ switch (t) {
2350
+ case "start":
2351
+ case "left":
2352
+ return "left";
2353
+ case "center":
2354
+ return "center";
2355
+ case "end":
2356
+ case "right":
2357
+ return "right";
2358
+ case "both":
2359
+ return "justify";
2360
+ }
2361
+ return t;
2362
+ }
2363
+ static valueOfVertAlign(e, t = !1) {
2364
+ var r = i.attr(e, "val");
2365
+ switch (r) {
2366
+ case "subscript":
2367
+ return "sub";
2368
+ case "superscript":
2369
+ return t ? "sup" : "super";
2370
+ }
2371
+ return t ? null : r;
2372
+ }
2373
+ static valueOfTextAlignment(e) {
2374
+ var t = i.attr(e, "val");
2375
+ switch (t) {
2376
+ case "auto":
2377
+ case "baseline":
2378
+ return "baseline";
2379
+ case "top":
2380
+ return "top";
2381
+ case "center":
2382
+ return "middle";
2383
+ case "bottom":
2384
+ return "bottom";
2385
+ }
2386
+ return t;
2387
+ }
2388
+ static addSize(e, t) {
2389
+ return e == null ? t : t == null ? e : `calc(${e} + ${t})`;
2390
+ }
2391
+ static classNameOftblLook(e) {
2392
+ const t = i.hexAttr(e, "val", 0);
2393
+ let r = "";
2394
+ return (i.boolAttr(e, "firstRow") || t & 32) && (r += " first-row"), (i.boolAttr(e, "lastRow") || t & 64) && (r += " last-row"), (i.boolAttr(e, "firstColumn") || t & 128) && (r += " first-col"), (i.boolAttr(e, "lastColumn") || t & 256) && (r += " last-col"), (i.boolAttr(e, "noHBand") || t & 512) && (r += " no-hband"), (i.boolAttr(e, "noVBand") || t & 1024) && (r += " no-vband"), r.trim();
2395
+ }
2396
+ }
2397
+ const K = { pos: 0, leader: "none", style: "left" }, Bt = 50;
2398
+ function Rt(a = document.body) {
2399
+ const e = document.createElement("div");
2400
+ e.style.width = "100pt", a.appendChild(e);
2401
+ const t = 100 / e.offsetWidth;
2402
+ return a.removeChild(e), t;
2403
+ }
2404
+ function Tt(a, e, t, r = 72 / 96) {
2405
+ const s = a.closest("p"), n = a.getBoundingClientRect(), l = s.getBoundingClientRect(), h = getComputedStyle(s), c = e?.length > 0 ? e.map((y) => ({
2406
+ pos: Q(y.position),
2407
+ leader: y.leader,
2408
+ style: y.style
2409
+ })).sort((y, R) => y.pos - R.pos) : [K], u = c[c.length - 1], k = l.width * r, p = Q(t);
2410
+ let m = u.pos + p;
2411
+ if (m < k)
2412
+ for (; m < k && c.length < Bt; m += p)
2413
+ c.push({ ...K, pos: m });
2414
+ const P = parseFloat(h.marginLeft), B = l.left + P, C = (n.left - B) * r, w = c.find((y) => y.style != "clear" && y.pos > C);
2415
+ if (w == null)
2416
+ return;
2417
+ let D = 1;
2418
+ if (w.style == "right" || w.style == "center") {
2419
+ const y = Array.from(s.querySelectorAll(`.${a.className}`)), R = y.indexOf(a) + 1, T = document.createRange();
2420
+ T.setStart(a, 1), R < y.length ? T.setEndBefore(y[R]) : T.setEndAfter(s);
2421
+ const pe = w.style == "center" ? 0.5 : 1, X = T.getBoundingClientRect(), me = X.left + pe * X.width - (l.left - P);
2422
+ D = w.pos - me * r;
2423
+ } else
2424
+ D = w.pos - C;
2425
+ switch (a.innerHTML = "&nbsp;", a.style.textDecoration = "inherit", a.style.wordSpacing = `${D.toFixed(0)}pt`, w.leader) {
2426
+ case "dot":
2427
+ case "middleDot":
2428
+ a.style.textDecoration = "underline", a.style.textDecorationStyle = "dotted";
2429
+ break;
2430
+ case "hyphen":
2431
+ case "heavy":
2432
+ case "underscore":
2433
+ a.style.textDecoration = "underline";
2434
+ break;
2435
+ }
2436
+ }
2437
+ function Q(a) {
2438
+ return parseFloat(a);
2439
+ }
2440
+ var d;
2441
+ (function(a) {
2442
+ a.html = "http://www.w3.org/1999/xhtml", a.svg = "http://www.w3.org/2000/svg", a.mathML = "http://www.w3.org/1998/Math/MathML";
2443
+ })(d || (d = {}));
2444
+ function x(a) {
2445
+ if (z(a))
2446
+ return document.createTextNode(a);
2447
+ if (a instanceof Node)
2448
+ return a;
2449
+ const { ns: e, tagName: t, className: r, style: s, children: n, ...l } = a;
2450
+ if (t === "#fragment") {
2451
+ const c = document.createDocumentFragment();
2452
+ return n && n.forEach((u) => c.appendChild(x(u))), c;
2453
+ }
2454
+ if (t === "#comment")
2455
+ return document.createComment(n ? n[0] : "");
2456
+ const h = e ? document.createElementNS(e, t) : document.createElement(t);
2457
+ if (r && h.setAttribute("class", r), s && (z(s) ? h.setAttribute("style", s) : Object.assign(h.style, s)), l)
2458
+ for (const [c, u] of Object.entries(l))
2459
+ u !== void 0 && (h[c] = u);
2460
+ return n && n.forEach((c) => h.appendChild(x(c))), h;
2461
+ }
2462
+ function Ft(...a) {
2463
+ return a.filter(Boolean).join(" ");
2464
+ }
2465
+ class Lt {
2466
+ constructor() {
2467
+ this.className = "docx", this.styleMap = {}, this.currentPart = null, this.tableVerticalMerges = [], this.currentVerticalMerge = null, this.tableCellPositions = [], this.currentCellPosition = null, this.footnoteMap = {}, this.endnoteMap = {}, this.currentEndnoteIds = [], this.usedHederFooterParts = [], this.currentTabs = [], this.commentMap = {}, this.tasks = [], this.postRenderTasks = [], this.h = x;
2468
+ }
2469
+ async render(e, t) {
2470
+ this.document = e, this.options = t, this.className = t.className, this.rootSelector = t.inWrapper ? `.${this.className}-wrapper` : ":root", this.h = t.h ?? x, this.styleMap = null, this.tasks = [], this.options.renderComments && globalThis.Highlight && (this.commentHighlight = new Highlight());
2471
+ const r = [...this.renderDefaultStyle()];
2472
+ e.themePart && r.push(...this.renderTheme(e.themePart)), e.stylesPart != null && (this.styleMap = this.processStyles(e.stylesPart.styles), r.push(...this.renderStyles(e.stylesPart.styles))), e.numberingPart && (this.prodessNumberings(e.numberingPart.domNumberings), r.push(...await this.renderNumbering(e.numberingPart.domNumberings))), e.footnotesPart && (this.footnoteMap = S(e.footnotesPart.notes, (n) => n.id)), e.endnotesPart && (this.endnoteMap = S(e.endnotesPart.notes, (n) => n.id)), e.settingsPart && (this.defaultTabSize = e.settingsPart.settings?.defaultTabStop), !t.ignoreFonts && e.fontTablePart && r.push(...await this.renderFontTable(e.fontTablePart));
2473
+ var s = this.renderSections(e.documentPart.body);
2474
+ return this.options.inWrapper ? r.push(this.renderWrapper(s)) : r.push(...s), this.commentHighlight && t.renderComments && CSS.highlights.set(`${this.className}-comments`, this.commentHighlight), this.postRenderTasks.forEach((n) => n()), await Promise.allSettled(this.tasks), this.refreshTabStops(), r;
2475
+ }
2476
+ renderTheme(e) {
2477
+ const t = {}, r = e.theme?.fontScheme;
2478
+ r && (r.majorFont && (t["--docx-majorHAnsi-font"] = r.majorFont.latinTypeface), r.minorFont && (t["--docx-minorHAnsi-font"] = r.minorFont.latinTypeface));
2479
+ const s = e.theme?.colorScheme;
2480
+ if (s)
2481
+ for (let [l, h] of Object.entries(s.colors))
2482
+ t[`--docx-${l}-color`] = `#${h}`;
2483
+ const n = this.styleToString(`.${this.className}`, t);
2484
+ return [
2485
+ this.h({ tagName: "#comment", children: ["docxjs document theme values"] }),
2486
+ this.h({ tagName: "style", children: [n] })
2487
+ ];
2488
+ }
2489
+ async renderFontTable(e) {
2490
+ const t = [];
2491
+ for (let r of e.fonts)
2492
+ for (let s of r.embedFontRefs)
2493
+ try {
2494
+ const n = await this.document.loadFont(s.id, s.key), l = {
2495
+ "font-family": _(r.name),
2496
+ src: `url(${n})`
2497
+ };
2498
+ (s.type == "bold" || s.type == "boldItalic") && (l["font-weight"] = "bold"), (s.type == "italic" || s.type == "boldItalic") && (l["font-style"] = "italic"), t.push(this.h({ tagName: "#comment", children: [`docxjs ${r.name} font`] })), t.push(this.h({ tagName: "style", children: [this.styleToString("@font-face", l)] }));
2499
+ } catch {
2500
+ this.options.debug && console.warn(`Can't load font with id ${s.id} and key ${s.key}`);
2501
+ }
2502
+ return t;
2503
+ }
2504
+ processStyleName(e) {
2505
+ return e ? `${this.className}_${be(e)}` : this.className;
2506
+ }
2507
+ processStyles(e) {
2508
+ const t = S(e.filter((s) => s.id != null), (s) => s.id);
2509
+ for (const s of e.filter((n) => n.basedOn)) {
2510
+ var r = t[s.basedOn];
2511
+ if (r) {
2512
+ s.paragraphProps = H(s.paragraphProps, r.paragraphProps), s.runProps = H(s.runProps, r.runProps);
2513
+ for (const n of r.styles) {
2514
+ const l = s.styles.find((h) => h.target == n.target);
2515
+ l ? this.copyStyleProperties(n.values, l.values) : s.styles.push({ ...n, values: { ...n.values } });
2516
+ }
2517
+ } else this.options.debug && console.warn(`Can't find base style ${s.basedOn}`);
2518
+ }
2519
+ for (let s of e)
2520
+ s.cssName = this.processStyleName(s.id);
2521
+ return t;
2522
+ }
2523
+ prodessNumberings(e) {
2524
+ for (let t of e.filter((r) => r.pStyleName)) {
2525
+ const r = this.findStyle(t.pStyleName);
2526
+ r?.paragraphProps?.numbering && (r.paragraphProps.numbering.level = t.level);
2527
+ }
2528
+ }
2529
+ processElement(e) {
2530
+ if (e.children)
2531
+ for (var t of e.children)
2532
+ t.parent = e, t.type == o.Table ? this.processTable(t) : this.processElement(t);
2533
+ }
2534
+ processTable(e) {
2535
+ for (var t of e.children)
2536
+ for (var r of t.children)
2537
+ r.cssStyle = this.copyStyleProperties(e.cellStyle, r.cssStyle, [
2538
+ "border-left",
2539
+ "border-right",
2540
+ "border-top",
2541
+ "border-bottom",
2542
+ "padding-left",
2543
+ "padding-right",
2544
+ "padding-top",
2545
+ "padding-bottom"
2546
+ ]), this.processElement(r);
2547
+ }
2548
+ copyStyleProperties(e, t, r = null) {
2549
+ if (!e)
2550
+ return t;
2551
+ t == null && (t = {}), r == null && (r = Object.getOwnPropertyNames(e));
2552
+ for (var s of r)
2553
+ e.hasOwnProperty(s) && !t.hasOwnProperty(s) && (t[s] = e[s]);
2554
+ return t;
2555
+ }
2556
+ createPageElement(e, t, r) {
2557
+ const s = { ...r };
2558
+ return t && (t.pageMargins && (s.paddingLeft = t.pageMargins.left, s.paddingRight = t.pageMargins.right, s.paddingTop = t.pageMargins.top, s.paddingBottom = t.pageMargins.bottom), t.pageSize && (this.options.ignoreWidth || (s.width = t.pageSize.width), this.options.ignoreHeight || (s.minHeight = t.pageSize.height))), this.h({ tagName: "section", className: e, style: s });
2559
+ }
2560
+ createSectionContent(e) {
2561
+ const t = {};
2562
+ return e.columns && e.columns.numberOfColumns && (t.columnCount = `${e.columns.numberOfColumns}`, t.columnGap = e.columns.space, e.columns.separator && (t.columnRule = "1px solid black")), this.h({ tagName: "article", style: t });
2563
+ }
2564
+ renderSections(e) {
2565
+ const t = [];
2566
+ this.processElement(e);
2567
+ const r = this.splitBySection(e.children, e.props), s = this.groupByPageBreaks(r);
2568
+ let n = null;
2569
+ for (let h = 0, c = s.length; h < c; h++) {
2570
+ this.currentFootnoteIds = [];
2571
+ let k = s[h][0].sectProps;
2572
+ const p = this.createPageElement(this.className, k, e.cssStyle);
2573
+ this.options.renderHeaders && this.renderHeaderFooter(k.headerRefs, k, t.length, n != k, p);
2574
+ for (const m of s[h]) {
2575
+ var l = this.createSectionContent(m.sectProps);
2576
+ this.renderElements(m.elements, l), p.appendChild(l), k = m.sectProps;
2577
+ }
2578
+ if (this.options.renderFootnotes) {
2579
+ const m = this.renderNotes(this.currentFootnoteIds, this.footnoteMap);
2580
+ m && p.appendChild(m);
2581
+ }
2582
+ if (this.options.renderEndnotes && h == c - 1) {
2583
+ const m = this.renderNotes(this.currentEndnoteIds, this.endnoteMap);
2584
+ m && p.appendChild(m);
2585
+ }
2586
+ this.options.renderFooters && this.renderHeaderFooter(k.footerRefs, k, t.length, n != k, p), t.push(p), n = k;
2587
+ }
2588
+ return t;
2589
+ }
2590
+ renderHeaderFooter(e, t, r, s, n) {
2591
+ if (!e)
2592
+ return;
2593
+ const l = this.document.settingsPart?.settings?.evenAndOddHeaders ?? !1;
2594
+ var h = (t.titlePage && s ? e.find((u) => u.type == "first") : null) ?? (r % 2 == 1 && l ? e.find((u) => u.type == "even") : null) ?? e.find((u) => u.type == "default"), c = h && this.document.findPartByRelId(h.id, this.document.documentPart);
2595
+ if (c) {
2596
+ this.currentPart = c, this.usedHederFooterParts.includes(c.path) || (this.processElement(c.rootElement), this.usedHederFooterParts.push(c.path));
2597
+ const [u] = this.renderElements([c.rootElement], n);
2598
+ t?.pageMargins && (c.rootElement.type === o.Header ? (u.style.marginTop = `calc(${t.pageMargins.header} - ${t.pageMargins.top})`, u.style.minHeight = `calc(${t.pageMargins.top} - ${t.pageMargins.header})`) : c.rootElement.type === o.Footer && (u.style.marginBottom = `calc(${t.pageMargins.footer} - ${t.pageMargins.bottom})`, u.style.minHeight = `calc(${t.pageMargins.bottom} - ${t.pageMargins.footer})`)), this.currentPart = null;
2599
+ }
2600
+ }
2601
+ isPageBreakElement(e) {
2602
+ return e.type != o.Break ? !1 : e.break == "lastRenderedPageBreak" ? !this.options.ignoreLastRenderedPageBreak : e.break == "page";
2603
+ }
2604
+ isPageBreakSection(e, t) {
2605
+ return !e || !t ? !1 : e.pageSize?.orientation != t.pageSize?.orientation || e.pageSize?.width != t.pageSize?.width || e.pageSize?.height != t.pageSize?.height;
2606
+ }
2607
+ splitBySection(e, t) {
2608
+ var r = { sectProps: null, elements: [], pageBreak: !1 }, s = [r];
2609
+ for (let p of e) {
2610
+ if (p.type == o.Paragraph) {
2611
+ const m = p, P = this.findStyle(m.styleName);
2612
+ (m.pageBreakBefore || P?.paragraphProps?.pageBreakBefore) && (r.sectProps = n, r.pageBreak = !0, r = { sectProps: null, elements: [], pageBreak: !1 }, s.push(r));
2613
+ }
2614
+ if (r.elements.push(p), p.type == o.Paragraph) {
2615
+ const m = p;
2616
+ var n = m.sectionProps, l = -1, h = -1;
2617
+ if (this.options.breakPages && m.children && (l = m.children.findIndex((P) => (h = P.children?.findIndex(this.isPageBreakElement.bind(this)) ?? -1, h != -1))), (n || l != -1) && (r.sectProps = n, r.pageBreak = l != -1, r = { sectProps: null, elements: [], pageBreak: !1 }, s.push(r)), l != -1) {
2618
+ let P = m.children[l], B = h < P.children.length - 1;
2619
+ if (l < m.children.length - 1 || B) {
2620
+ var c = p.children, u = { ...p, children: c.slice(l) };
2621
+ if (p.children = c.slice(0, l), r.elements.push(u), B) {
2622
+ let C = P.children, w = { ...P, children: C.slice(0, h) };
2623
+ p.children.push(w), P.children = C.slice(h);
2624
+ }
2625
+ }
2626
+ }
2627
+ }
2628
+ }
2629
+ let k = null;
2630
+ for (let p = s.length - 1; p >= 0; p--)
2631
+ s[p].sectProps == null ? s[p].sectProps = k ?? t : k = s[p].sectProps;
2632
+ return s;
2633
+ }
2634
+ groupByPageBreaks(e) {
2635
+ let t = [], r;
2636
+ const s = [t];
2637
+ for (let n of e)
2638
+ t.push(n), (this.options.ignoreLastRenderedPageBreak || n.pageBreak || this.isPageBreakSection(r, n.sectProps)) && s.push(t = []), r = n.sectProps;
2639
+ return s.filter((n) => n.length > 0);
2640
+ }
2641
+ renderWrapper(e) {
2642
+ return this.h({ tagName: "div", className: `${this.className}-wrapper`, children: e });
2643
+ }
2644
+ renderDefaultStyle() {
2645
+ var e = this.className, t = `
2646
+ .${e}-wrapper { background: gray; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; }
2647
+ .${e}-wrapper>section.${e} { background: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); margin-bottom: 30px; }`;
2648
+ this.options.hideWrapperOnPrint && (t = `@media not print { ${t} }`);
2649
+ var r = `${t}
2650
+ .${e} { color: black; hyphens: auto; text-underline-position: from-font; }
2651
+ section.${e} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: hidden; }
2652
+ section.${e}>article { margin-bottom: auto; z-index: 1; }
2653
+ section.${e}>footer { z-index: 1; }
2654
+ .${e} table { border-collapse: collapse; }
2655
+ .${e} table td, .${e} table th { vertical-align: top; }
2656
+ .${e} p { margin: 0pt; min-height: 1em; }
2657
+ .${e} span { white-space: pre-wrap; overflow-wrap: break-word; }
2658
+ .${e} a { color: inherit; text-decoration: inherit; }
2659
+ .${e} svg { fill: transparent; }
2660
+ `;
2661
+ return this.options.renderComments && (r += `
2662
+ .${e}-comment-ref { cursor: default; }
2663
+ .${e}-comment-popover { display: none; z-index: 1000; padding: 0.5rem; background: white; position: absolute; box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.25); width: 30ch; }
2664
+ .${e}-comment-ref:hover~.${e}-comment-popover { display: block; }
2665
+ .${e}-comment-author,.${e}-comment-date { font-size: 0.875rem; color: #888; }
2666
+ `), [
2667
+ this.h({ tagName: "#comment", children: ["docxjs library predefined styles"] }),
2668
+ this.h({ tagName: "style", children: [r] })
2669
+ ];
2670
+ }
2671
+ async renderNumbering(e) {
2672
+ var t = "", r = [];
2673
+ for (var s of e) {
2674
+ var n = `p.${this.numberingClass(s.id, s.level)}`, l = "none";
2675
+ if (s.bullet) {
2676
+ let h = `--${this.className}-${s.bullet.src}`.toLowerCase();
2677
+ t += this.styleToString(`${n}:before`, {
2678
+ content: "' '",
2679
+ display: "inline-block",
2680
+ background: `var(${h})`
2681
+ }, s.bullet.style);
2682
+ try {
2683
+ const c = await this.document.loadNumberingImage(s.bullet.src);
2684
+ t += `${this.rootSelector} { ${h}: url(${c}) }`;
2685
+ } catch {
2686
+ this.options.debug && console.warn(`Can't load numbering image with src ${s.bullet.src}`);
2687
+ }
2688
+ } else if (s.levelText) {
2689
+ let h = this.numberingCounter(s.id, s.level);
2690
+ const c = h + " " + (s.start - 1);
2691
+ s.level > 0 && (t += this.styleToString(`p.${this.numberingClass(s.id, s.level - 1)}`, {
2692
+ "counter-set": c
2693
+ })), r.push(c), t += this.styleToString(`${n}:before`, {
2694
+ content: this.levelTextToContent(s.levelText, s.suff, s.id, this.numFormatToCssValue(s.format)),
2695
+ "counter-increment": h,
2696
+ ...s.rStyle
2697
+ });
2698
+ } else
2699
+ l = this.numFormatToCssValue(s.format);
2700
+ t += this.styleToString(n, {
2701
+ display: "list-item",
2702
+ "list-style-position": "inside",
2703
+ "list-style-type": l,
2704
+ ...s.pStyle
2705
+ });
2706
+ }
2707
+ return r.length > 0 && (t += this.styleToString(this.rootSelector, {
2708
+ "counter-reset": r.join(" ")
2709
+ })), [
2710
+ this.h({ tagName: "#comment", children: ["docxjs document numbering styles"] }),
2711
+ this.h({ tagName: "style", children: [t] })
2712
+ ];
2713
+ }
2714
+ renderStyles(e) {
2715
+ var t = "";
2716
+ const r = this.styleMap, s = S(e.filter((c) => c.isDefault), (c) => c.target);
2717
+ for (const c of e) {
2718
+ var n = c.styles;
2719
+ if (c.linked) {
2720
+ var l = c.linked && r[c.linked];
2721
+ l ? n = n.concat(l.styles) : this.options.debug && console.warn(`Can't find linked style ${c.linked}`);
2722
+ }
2723
+ for (const u of n) {
2724
+ var h = `${c.target ?? ""}.${c.cssName}`;
2725
+ c.target != u.target && (h += ` ${u.target}`), s[c.target] == c && (h = `.${this.className} ${c.target}, ` + h), t += this.styleToString(h, u.values);
2726
+ }
2727
+ }
2728
+ return [
2729
+ this.h({ tagName: "#comment", children: ["docxjs document styles"] }),
2730
+ this.h({ tagName: "style", children: [t] })
2731
+ ];
2732
+ }
2733
+ renderNotes(e, t) {
2734
+ var r = e.map((s) => t[s]).filter((s) => s);
2735
+ if (r.length > 0)
2736
+ return this.h({ tagName: "ol", children: this.renderElements(r) });
2737
+ }
2738
+ renderElement(e) {
2739
+ switch (e.type) {
2740
+ case o.Paragraph:
2741
+ return this.renderParagraph(e);
2742
+ case o.BookmarkStart:
2743
+ return this.renderBookmarkStart(e);
2744
+ case o.BookmarkEnd:
2745
+ return null;
2746
+ case o.Run:
2747
+ return this.renderRun(e);
2748
+ case o.Table:
2749
+ return this.renderTable(e);
2750
+ case o.Row:
2751
+ return this.renderTableRow(e);
2752
+ case o.Cell:
2753
+ return this.renderTableCell(e);
2754
+ case o.Hyperlink:
2755
+ return this.renderHyperlink(e);
2756
+ case o.SmartTag:
2757
+ return this.renderSmartTag(e);
2758
+ case o.Drawing:
2759
+ return this.renderDrawing(e);
2760
+ case o.Image:
2761
+ return this.renderImage(e);
2762
+ case o.Text:
2763
+ return this.renderText(e);
2764
+ case o.Text:
2765
+ return this.renderText(e);
2766
+ case o.DeletedText:
2767
+ return this.renderDeletedText(e);
2768
+ case o.Tab:
2769
+ return this.renderTab(e);
2770
+ case o.Symbol:
2771
+ return this.renderSymbol(e);
2772
+ case o.Break:
2773
+ return this.renderBreak(e);
2774
+ case o.Footer:
2775
+ return this.renderContainer(e, "footer");
2776
+ case o.Header:
2777
+ return this.renderContainer(e, "header");
2778
+ case o.Footnote:
2779
+ case o.Endnote:
2780
+ return this.renderContainer(e, "li");
2781
+ case o.FootnoteReference:
2782
+ return this.renderFootnoteReference(e);
2783
+ case o.EndnoteReference:
2784
+ return this.renderEndnoteReference(e);
2785
+ case o.NoBreakHyphen:
2786
+ return this.h({ tagName: "wbr" });
2787
+ case o.VmlPicture:
2788
+ return this.renderVmlPicture(e);
2789
+ case o.VmlElement:
2790
+ return this.renderVmlElement(e);
2791
+ case o.MmlMath:
2792
+ return this.renderContainerNS(e, d.mathML, "math", { xmlns: d.mathML });
2793
+ case o.MmlMathParagraph:
2794
+ return this.renderContainer(e, "span");
2795
+ case o.MmlFraction:
2796
+ return this.renderContainerNS(e, d.mathML, "mfrac");
2797
+ case o.MmlBase:
2798
+ return this.renderContainerNS(e, d.mathML, e.parent.type == o.MmlMatrixRow ? "mtd" : "mrow");
2799
+ case o.MmlNumerator:
2800
+ case o.MmlDenominator:
2801
+ case o.MmlFunction:
2802
+ case o.MmlLimit:
2803
+ case o.MmlBox:
2804
+ return this.renderContainerNS(e, d.mathML, "mrow");
2805
+ case o.MmlGroupChar:
2806
+ return this.renderMmlGroupChar(e);
2807
+ case o.MmlLimitLower:
2808
+ return this.renderContainerNS(e, d.mathML, "munder");
2809
+ case o.MmlMatrix:
2810
+ return this.renderContainerNS(e, d.mathML, "mtable");
2811
+ case o.MmlMatrixRow:
2812
+ return this.renderContainerNS(e, d.mathML, "mtr");
2813
+ case o.MmlRadical:
2814
+ return this.renderMmlRadical(e);
2815
+ case o.MmlSuperscript:
2816
+ return this.renderContainerNS(e, d.mathML, "msup");
2817
+ case o.MmlSubscript:
2818
+ return this.renderContainerNS(e, d.mathML, "msub");
2819
+ case o.MmlDegree:
2820
+ case o.MmlSuperArgument:
2821
+ case o.MmlSubArgument:
2822
+ return this.renderContainerNS(e, d.mathML, "mn");
2823
+ case o.MmlFunctionName:
2824
+ return this.renderContainerNS(e, d.mathML, "ms");
2825
+ case o.MmlDelimiter:
2826
+ return this.renderMmlDelimiter(e);
2827
+ case o.MmlRun:
2828
+ return this.renderMmlRun(e);
2829
+ case o.MmlNary:
2830
+ return this.renderMmlNary(e);
2831
+ case o.MmlPreSubSuper:
2832
+ return this.renderMmlPreSubSuper(e);
2833
+ case o.MmlBar:
2834
+ return this.renderMmlBar(e);
2835
+ case o.MmlEquationArray:
2836
+ return this.renderMllList(e);
2837
+ case o.Inserted:
2838
+ return this.renderInserted(e);
2839
+ case o.Deleted:
2840
+ return this.renderDeleted(e);
2841
+ case o.CommentRangeStart:
2842
+ return this.renderCommentRangeStart(e);
2843
+ case o.CommentRangeEnd:
2844
+ return this.renderCommentRangeEnd(e);
2845
+ case o.CommentReference:
2846
+ return this.renderCommentReference(e);
2847
+ case o.AltChunk:
2848
+ return this.renderAltChunk(e);
2849
+ }
2850
+ return null;
2851
+ }
2852
+ renderElements(e, t) {
2853
+ if (e == null)
2854
+ return null;
2855
+ var r = e.flatMap((s) => this.renderElement(s)).filter((s) => s != null);
2856
+ return t && r.forEach((s) => t.appendChild(z(s) ? document.createTextNode(s) : s)), r;
2857
+ }
2858
+ renderContainer(e, t, r) {
2859
+ return this.h({ tagName: t, children: this.renderElements(e.children), ...r });
2860
+ }
2861
+ renderContainerNS(e, t, r, s) {
2862
+ return this.h({ ns: t, tagName: r, children: this.renderElements(e.children), ...s });
2863
+ }
2864
+ renderParagraph(e) {
2865
+ var t = this.toHTML(e, d.html, "p");
2866
+ const r = this.findStyle(e.styleName);
2867
+ e.tabs ?? (e.tabs = r?.paragraphProps?.tabs);
2868
+ const s = e.numbering ?? r?.paragraphProps?.numbering;
2869
+ return s && t.classList.add(this.numberingClass(s.id, s.level)), t;
2870
+ }
2871
+ renderHyperlink(e) {
2872
+ const t = this.toH(e, d.html, "a");
2873
+ if (t.href = "", e.id) {
2874
+ const r = this.document.documentPart.rels.find((s) => s.id == e.id && s.targetMode === "External");
2875
+ t.href = r?.target ?? t.href;
2876
+ }
2877
+ return e.anchor && (t.href += `#${e.anchor}`), this.h(t);
2878
+ }
2879
+ renderSmartTag(e) {
2880
+ return this.renderContainer(e, "span");
2881
+ }
2882
+ renderCommentRangeStart(e) {
2883
+ if (!this.options.renderComments)
2884
+ return null;
2885
+ const t = new Range();
2886
+ this.commentHighlight?.add(t);
2887
+ const r = this.h({ tagName: "#comment", children: [`start of comment #${e.id}`] });
2888
+ return this.later(() => t.setStart(r, 0)), this.commentMap[e.id] = t, r;
2889
+ }
2890
+ renderCommentRangeEnd(e) {
2891
+ if (!this.options.renderComments)
2892
+ return null;
2893
+ const t = this.commentMap[e.id], r = this.h({ tagName: "#comment", children: [`end of comment #${e.id}`] });
2894
+ return this.later(() => t?.setEnd(r, 0)), r;
2895
+ }
2896
+ renderCommentReference(e) {
2897
+ if (!this.options.renderComments)
2898
+ return null;
2899
+ var t = this.document.commentsPart?.commentMap[e.id];
2900
+ if (!t)
2901
+ return null;
2902
+ const r = this.h({ tagName: "span", className: `${this.className}-comment-ref`, children: ["💬"] }), s = this.h({
2903
+ tagName: "div",
2904
+ className: `${this.className}-comment-popover`,
2905
+ children: [
2906
+ this.h({ tagName: "div", className: `${this.className}-comment-author`, children: [t.author] }),
2907
+ this.h({ tagName: "div", className: `${this.className}-comment-date`, children: [new Date(t.date).toLocaleString()] }),
2908
+ ...this.renderElements(t.children)
2909
+ ]
2910
+ });
2911
+ return this.h({ tagName: "#fragment", children: [
2912
+ this.h({ tagName: "#comment", children: [`comment #${t.id} by ${t.author} on ${t.date}`] }),
2913
+ r,
2914
+ s
2915
+ ] });
2916
+ }
2917
+ renderAltChunk(e) {
2918
+ if (!this.options.renderAltChunks)
2919
+ return null;
2920
+ var t = this.h({ tagName: "iframe" });
2921
+ return this.tasks.push(this.document.loadAltChunk(e.id, this.currentPart).then((r) => {
2922
+ t.srcdoc = r;
2923
+ })), t;
2924
+ }
2925
+ renderDrawing(e) {
2926
+ var t = this.toHTML(e, d.html, "div");
2927
+ return t.style.display = "inline-block", t.style.position = "relative", t.style.textIndent = "0px", t;
2928
+ }
2929
+ renderImage(e) {
2930
+ let t = this.toHTML(e, d.html, "img", []), r = e.cssStyle?.transform;
2931
+ if (e.srcRect && e.srcRect.some((c) => c != 0)) {
2932
+ var [s, n, l, h] = e.srcRect;
2933
+ r = `scale(${1 / (1 - s - l)}, ${1 / (1 - n - h)})`, t.style["clip-path"] = `rect(${(100 * n).toFixed(2)}% ${(100 * (1 - l)).toFixed(2)}% ${(100 * (1 - h)).toFixed(2)}% ${(100 * s).toFixed(2)}%)`;
2934
+ }
2935
+ return e.rotation && (r = `rotate(${e.rotation}deg) ${r ?? ""}`), t.style.transform = r?.trim(), this.document && this.tasks.push(this.document.loadDocumentImage(e.src, this.currentPart).then((c) => {
2936
+ t.src = c;
2937
+ })), t;
2938
+ }
2939
+ renderText(e) {
2940
+ return this.h(e.text);
2941
+ }
2942
+ renderDeletedText(e) {
2943
+ return this.options.renderChanges ? this.renderText(e) : null;
2944
+ }
2945
+ renderBreak(e) {
2946
+ return e.break == "textWrapping" ? this.h({ tagName: "br" }) : null;
2947
+ }
2948
+ renderInserted(e) {
2949
+ return this.options.renderChanges ? this.renderChange(e, "ins") : this.renderElements(e.children);
2950
+ }
2951
+ renderDeleted(e) {
2952
+ return this.options.renderChanges ? this.renderChange(e, "del") : null;
2953
+ }
2954
+ renderChange(e, t) {
2955
+ return this.renderContainer(e, t, {
2956
+ dateTime: e.date
2957
+ });
2958
+ }
2959
+ renderSymbol(e) {
2960
+ return this.h({ tagName: "span", children: [String.fromCharCode(e.char)], style: { fontFamily: e.font } });
2961
+ }
2962
+ renderFootnoteReference(e) {
2963
+ return this.currentFootnoteIds.push(e.id), this.h({ tagName: "sup", children: [`${this.currentFootnoteIds.length}`] });
2964
+ }
2965
+ renderEndnoteReference(e) {
2966
+ return this.currentEndnoteIds.push(e.id), this.h({ tagName: "sup", children: [`${this.currentEndnoteIds.length}`] });
2967
+ }
2968
+ renderTab(e) {
2969
+ var t = this.h({ tagName: "span", children: [" "] });
2970
+ if (this.options.experimental) {
2971
+ t.className = this.tabStopClass();
2972
+ var r = $t(e, o.Paragraph)?.tabs;
2973
+ this.currentTabs.push({ stops: r, span: t });
2974
+ }
2975
+ return t;
2976
+ }
2977
+ renderBookmarkStart(e) {
2978
+ return this.h({ tagName: "span", id: e.name });
2979
+ }
2980
+ renderRun(e) {
2981
+ if (e.fieldRun)
2982
+ return null;
2983
+ let t = this.renderElements(e.children);
2984
+ e.verticalAlign && (t = [this.h({ tagName: e.verticalAlign, children: this.renderElements(e.children) })]);
2985
+ const r = this.toHTML(e, d.html, "span", t);
2986
+ return e.id && (r.id = e.id), r;
2987
+ }
2988
+ renderTable(e) {
2989
+ this.tableCellPositions.push(this.currentCellPosition), this.tableVerticalMerges.push(this.currentVerticalMerge), this.currentVerticalMerge = {}, this.currentCellPosition = { col: 0, row: 0 };
2990
+ const t = [];
2991
+ return e.columns && t.push(this.renderTableColumns(e.columns)), t.push(...this.renderElements(e.children)), this.currentVerticalMerge = this.tableVerticalMerges.pop(), this.currentCellPosition = this.tableCellPositions.pop(), this.toHTML(e, d.html, "table", t);
2992
+ }
2993
+ renderTableColumns(e) {
2994
+ const t = e.map((r) => this.h({ tagName: "col", style: { width: r.width } }));
2995
+ return this.h({ tagName: "colgroup", children: t });
2996
+ }
2997
+ renderTableRow(e) {
2998
+ this.currentCellPosition.col = 0;
2999
+ const t = [];
3000
+ return e.gridBefore && t.push(this.renderTableCellPlaceholder(e.gridBefore)), t.push(...this.renderElements(e.children)), e.gridAfter && t.push(this.renderTableCellPlaceholder(e.gridAfter)), this.currentCellPosition.row++, this.toHTML(e, d.html, "tr", t);
3001
+ }
3002
+ renderTableCellPlaceholder(e) {
3003
+ return this.h({ tagName: "td", colSpan: e, style: { border: "none" } });
3004
+ }
3005
+ renderTableCell(e) {
3006
+ let t = this.toHTML(e, d.html, "td");
3007
+ const r = this.currentCellPosition.col;
3008
+ return e.verticalMerge ? e.verticalMerge == "restart" ? (this.currentVerticalMerge[r] = t, t.rowSpan = 1) : this.currentVerticalMerge[r] && (this.currentVerticalMerge[r].rowSpan += 1, t.style.display = "none") : this.currentVerticalMerge[r] = null, e.span && (t.colSpan = e.span), this.currentCellPosition.col += t.colSpan, t;
3009
+ }
3010
+ renderVmlPicture(e) {
3011
+ return this.renderContainer(e, "div");
3012
+ }
3013
+ renderVmlElement(e) {
3014
+ var t = this.h({ ns: d.svg, tagName: "svg", style: e.cssStyleText });
3015
+ const r = this.renderVmlChildElement(e);
3016
+ return e.imageHref?.id && this.tasks.push(this.document?.loadDocumentImage(e.imageHref.id, this.currentPart).then((s) => r.setAttribute("href", s))), t.appendChild(r), requestAnimationFrame(() => {
3017
+ const s = t.firstElementChild.getBBox();
3018
+ t.setAttribute("width", `${Math.ceil(s.x + s.width)}`), t.setAttribute("height", `${Math.ceil(s.y + s.height)}`);
3019
+ }), t;
3020
+ }
3021
+ renderVmlChildElement(e) {
3022
+ const t = this.createSvgElement(e.tagName);
3023
+ Object.entries(e.attrs).forEach(([r, s]) => t.setAttribute(r, s));
3024
+ for (let r of e.children)
3025
+ r.type == o.VmlElement ? t.appendChild(this.renderVmlChildElement(r)) : t.appendChild(...A(this.renderElement(r)));
3026
+ return t;
3027
+ }
3028
+ renderMmlRadical(e) {
3029
+ const t = e.children.find((s) => s.type == o.MmlBase);
3030
+ if (e.props?.hideDegree)
3031
+ return this.createMathMLElement("msqrt", null, this.renderElements([t]));
3032
+ const r = e.children.find((s) => s.type == o.MmlDegree);
3033
+ return this.createMathMLElement("mroot", null, this.renderElements([t, r]));
3034
+ }
3035
+ renderMmlDelimiter(e) {
3036
+ const t = [];
3037
+ return t.push(this.createMathMLElement("mo", null, [e.props.beginChar ?? "("])), t.push(...this.renderElements(e.children)), t.push(this.createMathMLElement("mo", null, [e.props.endChar ?? ")"])), this.createMathMLElement("mrow", null, t);
3038
+ }
3039
+ renderMmlNary(e) {
3040
+ const t = [], r = S(e.children, (u) => u.type), s = r[o.MmlSuperArgument], n = r[o.MmlSubArgument], l = s ? this.createMathMLElement("mo", null, A(this.renderElement(s))) : null, h = n ? this.createMathMLElement("mo", null, A(this.renderElement(n))) : null, c = this.createMathMLElement("mo", null, [e.props?.char ?? "∫"]);
3041
+ return l || h ? t.push(this.createMathMLElement("munderover", null, [c, h, l])) : l ? t.push(this.createMathMLElement("mover", null, [c, l])) : h ? t.push(this.createMathMLElement("munder", null, [c, h])) : t.push(c), t.push(...this.renderElements(r[o.MmlBase].children)), this.createMathMLElement("mrow", null, t);
3042
+ }
3043
+ renderMmlPreSubSuper(e) {
3044
+ const t = [], r = S(e.children, (u) => u.type), s = r[o.MmlSuperArgument], n = r[o.MmlSubArgument], l = s ? this.createMathMLElement("mo", null, A(this.renderElement(s))) : null, h = n ? this.createMathMLElement("mo", null, A(this.renderElement(n))) : null, c = this.createMathMLElement("mo", null);
3045
+ return t.push(this.createMathMLElement("msubsup", null, [c, h, l])), t.push(...this.renderElements(r[o.MmlBase].children)), this.createMathMLElement("mrow", null, t);
3046
+ }
3047
+ renderMmlGroupChar(e) {
3048
+ const t = e.props.verticalJustification === "bot" ? "mover" : "munder", r = this.renderContainerNS(e, d.mathML, t);
3049
+ return e.props.char && r.appendChild(this.createMathMLElement("mo", null, [e.props.char])), r;
3050
+ }
3051
+ renderMmlBar(e) {
3052
+ const t = {};
3053
+ switch (e.props.position) {
3054
+ case "top":
3055
+ t.textDecoration = "overline";
3056
+ break;
3057
+ case "bottom":
3058
+ t.textDecoration = "underline";
3059
+ break;
3060
+ }
3061
+ return this.renderContainerNS(e, d.mathML, "mrow", { style: t });
3062
+ }
3063
+ renderMmlRun(e) {
3064
+ return this.toHTML(e, d.mathML, "ms");
3065
+ }
3066
+ renderMllList(e) {
3067
+ const t = this.renderElements(e.children).map((r) => this.createMathMLElement("mtr", null, [
3068
+ this.createMathMLElement("mtd", null, [r])
3069
+ ]));
3070
+ return this.toHTML(e, d.mathML, "mtable", t);
3071
+ }
3072
+ toH(e, t, r, s = null) {
3073
+ const { $lang: n, ...l } = e.cssStyle ?? {}, h = Ft(e.className, e.styleName && this.processStyleName(e.styleName));
3074
+ return { ns: t, tagName: r, className: h, lang: n, style: l, children: s ?? this.renderElements(e.children) };
3075
+ }
3076
+ toHTML(e, t, r, s = null) {
3077
+ return this.h(this.toH(e, t, r, s));
3078
+ }
3079
+ findStyle(e) {
3080
+ return e && this.styleMap?.[e];
3081
+ }
3082
+ numberingClass(e, t) {
3083
+ return `${this.className}-num-${e}-${t}`;
3084
+ }
3085
+ tabStopClass() {
3086
+ return `${this.className}-tab-stop`;
3087
+ }
3088
+ styleToString(e, t, r = null) {
3089
+ let s = `${e} {\r
3090
+ `;
3091
+ for (const n in t)
3092
+ n.startsWith("$") || (s += ` ${n}: ${t[n]};\r
3093
+ `);
3094
+ return r && (s += r), s + `}\r
3095
+ `;
3096
+ }
3097
+ numberingCounter(e, t) {
3098
+ return `${this.className}-num-${e}-${t}`;
3099
+ }
3100
+ levelTextToContent(e, t, r, s) {
3101
+ const n = {
3102
+ tab: "\\9",
3103
+ space: "\\a0"
3104
+ };
3105
+ var l = e.replace(/%\d*/g, (h) => {
3106
+ let c = parseInt(h.substring(1), 10) - 1;
3107
+ return `"counter(${this.numberingCounter(r, c)}, ${s})"`;
3108
+ });
3109
+ return `"${l}${n[t] ?? ""}"`;
3110
+ }
3111
+ numFormatToCssValue(e) {
3112
+ var t = {
3113
+ none: "none",
3114
+ bullet: "disc",
3115
+ decimal: "decimal",
3116
+ lowerLetter: "lower-alpha",
3117
+ upperLetter: "upper-alpha",
3118
+ lowerRoman: "lower-roman",
3119
+ upperRoman: "upper-roman",
3120
+ decimalZero: "decimal-leading-zero",
3121
+ aiueo: "katakana",
3122
+ aiueoFullWidth: "katakana",
3123
+ chineseCounting: "simp-chinese-informal",
3124
+ chineseCountingThousand: "simp-chinese-informal",
3125
+ chineseLegalSimplified: "simp-chinese-formal",
3126
+ chosung: "hangul-consonant",
3127
+ ideographDigital: "cjk-ideographic",
3128
+ ideographTraditional: "cjk-heavenly-stem",
3129
+ ideographLegalTraditional: "trad-chinese-formal",
3130
+ ideographZodiac: "cjk-earthly-branch",
3131
+ iroha: "katakana-iroha",
3132
+ irohaFullWidth: "katakana-iroha",
3133
+ japaneseCounting: "japanese-informal",
3134
+ japaneseDigitalTenThousand: "cjk-decimal",
3135
+ japaneseLegal: "japanese-formal",
3136
+ thaiNumbers: "thai",
3137
+ koreanCounting: "korean-hangul-formal",
3138
+ koreanDigital: "korean-hangul-formal",
3139
+ koreanDigital2: "korean-hanja-informal",
3140
+ hebrew1: "hebrew",
3141
+ hebrew2: "hebrew",
3142
+ hindiNumbers: "devanagari",
3143
+ ganada: "hangul",
3144
+ taiwaneseCounting: "cjk-ideographic",
3145
+ taiwaneseCountingThousand: "cjk-ideographic",
3146
+ taiwaneseDigital: "cjk-decimal"
3147
+ };
3148
+ return t[e] ?? e;
3149
+ }
3150
+ refreshTabStops() {
3151
+ this.options.experimental && setTimeout(() => {
3152
+ const e = Rt();
3153
+ for (let t of this.currentTabs)
3154
+ Tt(t.span, t.stops, this.defaultTabSize, e);
3155
+ }, 500);
3156
+ }
3157
+ createElementNS(e, t, r, s) {
3158
+ return this.h({ ns: e, tagName: t, children: s, ...r });
3159
+ }
3160
+ createElement(e, t, r) {
3161
+ return this.createElementNS(d.html, e, t, r);
3162
+ }
3163
+ createMathMLElement(e, t, r) {
3164
+ return this.createElementNS(d.mathML, e, t, r);
3165
+ }
3166
+ createSvgElement(e, t, r) {
3167
+ return this.createElementNS(d.svg, e, t, r);
3168
+ }
3169
+ later(e) {
3170
+ this.postRenderTasks.push(e);
3171
+ }
3172
+ }
3173
+ function $t(a, e) {
3174
+ for (var t = a.parent; t != null && t.type != e; )
3175
+ t = t.parent;
3176
+ return t;
3177
+ }
3178
+ const de = {
3179
+ ignoreHeight: !1,
3180
+ ignoreWidth: !1,
3181
+ ignoreFonts: !1,
3182
+ breakPages: !0,
3183
+ debug: !1,
3184
+ experimental: !1,
3185
+ className: "docx",
3186
+ inWrapper: !0,
3187
+ hideWrapperOnPrint: !1,
3188
+ trimXmlDeclaration: !0,
3189
+ ignoreLastRenderedPageBreak: !0,
3190
+ renderHeaders: !0,
3191
+ renderFooters: !0,
3192
+ renderFootnotes: !0,
3193
+ renderEndnotes: !0,
3194
+ useBase64URL: !1,
3195
+ renderChanges: !1,
3196
+ renderComments: !1,
3197
+ renderAltChunks: !0,
3198
+ h: x
3199
+ };
3200
+ function Ht(a, e) {
3201
+ const t = { ...de, ...e };
3202
+ return W.load(a, new Et(t), t);
3203
+ }
3204
+ async function Dt(a, e) {
3205
+ const t = { ...de, ...e };
3206
+ return await new Lt().render(a, t);
3207
+ }
3208
+ async function It(a, e, t, r) {
3209
+ const s = await Ht(a, r), n = await Dt(s, r);
3210
+ t ?? (t = e), t.innerHTML = "", e.innerHTML = "";
3211
+ for (let l of n)
3212
+ (l.nodeName === "STYLE" ? t : e).appendChild(l);
3213
+ return s;
3214
+ }
3215
+ export {
3216
+ de as defaultOptions,
3217
+ Ht as parseAsync,
3218
+ It as renderAsync,
3219
+ Dt as renderDocument
3220
+ };