oasis-editor 0.0.90 → 0.0.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{OasisEditorApp-2b7y3aGj.js → OasisEditorApp-C_Ao4zIF.js} +114 -40
- package/dist/assets/{importDocxWorker-BN5o1geV.js → importDocxWorker-DAbfLHtp.js} +1 -1
- package/dist/core/engine.d.ts +16 -0
- package/dist/core/model/index.d.ts +2 -2
- package/dist/core/model/types/document.d.ts +10 -0
- package/dist/core/model/types/layout.d.ts +9 -0
- package/dist/core/model/types/nodes.d.ts +15 -43
- package/dist/core/model/types/styles.d.ts +39 -2
- package/dist/core/tableStyleResolver.d.ts +2 -1
- package/dist/export/docx/docxPackageXml.d.ts +7 -1
- package/dist/import/docx/settings.d.ts +5 -0
- package/dist/import/docx/tableConditionalFormatting.d.ts +0 -30
- package/dist/import/docx/tableProperties.d.ts +7 -0
- package/dist/import/docx/xmlHelpers.d.ts +5 -0
- package/dist/{index-DcElQi6c.js → index-BQEtsRa0.js} +712 -139
- package/dist/layoutProjection/paragraphPagination.d.ts +2 -1
- package/dist/oasis-editor.js +1 -1
- package/dist/oasis-editor.umd.cjs +4 -4
- package/dist/ui/textMeasurement/hyphenation.d.ts +33 -0
- package/dist/ui/textMeasurement/types.d.ts +9 -2
- package/package.json +4 -1
|
@@ -2519,7 +2519,7 @@ function OasisEditorAppLazy(props = {}) {
|
|
|
2519
2519
|
onCleanup(() => {
|
|
2520
2520
|
cancelled = true;
|
|
2521
2521
|
});
|
|
2522
|
-
import("./OasisEditorApp-
|
|
2522
|
+
import("./OasisEditorApp-C_Ao4zIF.js").then((m) => {
|
|
2523
2523
|
cancelled = true;
|
|
2524
2524
|
setProgress(1);
|
|
2525
2525
|
setTimeout(() => setApp(() => m.OasisEditorApp), 180);
|
|
@@ -3963,8 +3963,11 @@ function resolveEffectiveTableCellFormatting(options) {
|
|
|
3963
3963
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
3964
3964
|
const { table, rowIndex, cellIndex, visualColumnIndex, columnCount, styles } = options;
|
|
3965
3965
|
const named = resolveNamedTableStyle((_a = table.style) == null ? void 0 : _a.styleId, styles);
|
|
3966
|
-
const baseTableStyle = mergeTableStyles(named.tableStyle, table.style);
|
|
3967
3966
|
const row = table.rows[rowIndex];
|
|
3967
|
+
const baseTableStyle = (row == null ? void 0 : row.propertyExceptions) ? mergeTableStyles(
|
|
3968
|
+
mergeTableStyles(named.tableStyle, table.style),
|
|
3969
|
+
row.propertyExceptions
|
|
3970
|
+
) : mergeTableStyles(named.tableStyle, table.style);
|
|
3968
3971
|
const cell = row == null ? void 0 : row.cells[cellIndex];
|
|
3969
3972
|
const keys = conditionalKeys({
|
|
3970
3973
|
rowIndex,
|
|
@@ -5452,19 +5455,16 @@ function projectFootnoteBlocksForPage(document2, footnoteReferenceIds, page, tot
|
|
|
5452
5455
|
for (const footnoteId of footnoteReferenceIds) {
|
|
5453
5456
|
const footnote = (_b = (_a = document2.footnotes) == null ? void 0 : _a.items) == null ? void 0 : _b[footnoteId];
|
|
5454
5457
|
if (!footnote) continue;
|
|
5455
|
-
const projected = projectBlocks(
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
defaultTabStop: (_c = document2.settings) == null ? void 0 : _c.defaultTabStop
|
|
5466
|
-
}
|
|
5467
|
-
);
|
|
5458
|
+
const projected = projectBlocks(footnote.blocks, {
|
|
5459
|
+
pageIndex: page.index,
|
|
5460
|
+
totalPages,
|
|
5461
|
+
measuredHeights,
|
|
5462
|
+
measuredParagraphLayouts,
|
|
5463
|
+
styles: document2.styles,
|
|
5464
|
+
contentWidth,
|
|
5465
|
+
measurer,
|
|
5466
|
+
defaultTabStop: (_c = document2.settings) == null ? void 0 : _c.defaultTabStop
|
|
5467
|
+
});
|
|
5468
5468
|
for (const block of projected) {
|
|
5469
5469
|
blocks.push({
|
|
5470
5470
|
...block,
|
|
@@ -11132,7 +11132,8 @@ function buildMeasuredChars(paragraph, fragments, styles) {
|
|
|
11132
11132
|
char: char.char,
|
|
11133
11133
|
offset: char.paragraphOffset,
|
|
11134
11134
|
width,
|
|
11135
|
-
...objectHeight !== void 0 ? { objectHeight } : {}
|
|
11135
|
+
...objectHeight !== void 0 ? { objectHeight } : {},
|
|
11136
|
+
...objectHeight === void 0 ? { style: effectiveStyles } : {}
|
|
11136
11137
|
});
|
|
11137
11138
|
}
|
|
11138
11139
|
}
|
|
@@ -11417,7 +11418,8 @@ function getLineContentWidth(line, charByOffset) {
|
|
|
11417
11418
|
if (!trailingSlot) {
|
|
11418
11419
|
return 0;
|
|
11419
11420
|
}
|
|
11420
|
-
|
|
11421
|
+
const hyphenWidth = line.trailingHyphen ? line.trailingHyphenWidth ?? 0 : 0;
|
|
11422
|
+
return Math.max(0, trailingSlot.left - firstSlot.left + hyphenWidth);
|
|
11421
11423
|
}
|
|
11422
11424
|
function justifyLineBySpaces(line, extraSpace, charByOffset) {
|
|
11423
11425
|
const contentOffset = lastContentOffset(line, charByOffset);
|
|
@@ -11483,8 +11485,193 @@ function applyParagraphAlignment(paragraph, styles, contentWidth, lines, lineHar
|
|
|
11483
11485
|
return line;
|
|
11484
11486
|
});
|
|
11485
11487
|
}
|
|
11488
|
+
function Hypher(language) {
|
|
11489
|
+
var exceptions = [], i = 0;
|
|
11490
|
+
this.trie = this.createTrie(language["patterns"]);
|
|
11491
|
+
this.leftMin = language["leftmin"];
|
|
11492
|
+
this.rightMin = language["rightmin"];
|
|
11493
|
+
this.exceptions = {};
|
|
11494
|
+
if (language["exceptions"]) {
|
|
11495
|
+
exceptions = language["exceptions"].split(/,\s?/g);
|
|
11496
|
+
for (; i < exceptions.length; i += 1) {
|
|
11497
|
+
this.exceptions[exceptions[i].replace(/\u2027/g, "").toLowerCase()] = new RegExp("(" + exceptions[i].split("‧").join(")(") + ")", "i");
|
|
11498
|
+
}
|
|
11499
|
+
}
|
|
11500
|
+
}
|
|
11501
|
+
Hypher.TrieNode;
|
|
11502
|
+
Hypher.prototype.createTrie = function(patternObject) {
|
|
11503
|
+
var size = 0, i = 0, c = 0, p = 0, chars2 = null, points = null, codePoint = null, t = null, tree = {
|
|
11504
|
+
_points: []
|
|
11505
|
+
}, patterns;
|
|
11506
|
+
for (size in patternObject) {
|
|
11507
|
+
if (patternObject.hasOwnProperty(size)) {
|
|
11508
|
+
patterns = patternObject[size].match(new RegExp(".{1," + +size + "}", "g"));
|
|
11509
|
+
for (i = 0; i < patterns.length; i += 1) {
|
|
11510
|
+
chars2 = patterns[i].replace(/[0-9]/g, "").split("");
|
|
11511
|
+
points = patterns[i].split(/\D/);
|
|
11512
|
+
t = tree;
|
|
11513
|
+
for (c = 0; c < chars2.length; c += 1) {
|
|
11514
|
+
codePoint = chars2[c].charCodeAt(0);
|
|
11515
|
+
if (!t[codePoint]) {
|
|
11516
|
+
t[codePoint] = {};
|
|
11517
|
+
}
|
|
11518
|
+
t = t[codePoint];
|
|
11519
|
+
}
|
|
11520
|
+
t._points = [];
|
|
11521
|
+
for (p = 0; p < points.length; p += 1) {
|
|
11522
|
+
t._points[p] = points[p] || 0;
|
|
11523
|
+
}
|
|
11524
|
+
}
|
|
11525
|
+
}
|
|
11526
|
+
}
|
|
11527
|
+
return tree;
|
|
11528
|
+
};
|
|
11529
|
+
Hypher.prototype.hyphenateText = function(str, minLength) {
|
|
11530
|
+
minLength = minLength || 4;
|
|
11531
|
+
var words = str.split(/([a-zA-Z0-9_\u0027\u00AD\u00DF-\u00EA\u00EB\u00EC-\u00EF\u00F1-\u00F6\u00F8-\u00FD\u0101\u0103\u0105\u0107\u0109\u010D\u010F\u0111\u0113\u0117\u0119\u011B\u011D\u011F\u0123\u0125\u012B\u012F\u0131\u0135\u0137\u013C\u013E\u0142\u0144\u0146\u0148\u0151\u0153\u0155\u0159\u015B\u015D\u015F\u0161\u0165\u016B\u016D\u016F\u0171\u0173\u017A\u017C\u017E\u017F\u0219\u021B\u02BC\u0390\u03AC-\u03CE\u03F2\u0401\u0410-\u044F\u0451\u0454\u0456\u0457\u045E\u0491\u0531-\u0556\u0561-\u0587\u0902\u0903\u0905-\u090B\u090E-\u0910\u0912\u0914-\u0928\u092A-\u0939\u093E-\u0943\u0946-\u0948\u094A-\u094D\u0982\u0983\u0985-\u098B\u098F\u0990\u0994-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BE-\u09C3\u09C7\u09C8\u09CB-\u09CD\u09D7\u0A02\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A14-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A82\u0A83\u0A85-\u0A8B\u0A8F\u0A90\u0A94-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABE-\u0AC3\u0AC7\u0AC8\u0ACB-\u0ACD\u0B02\u0B03\u0B05-\u0B0B\u0B0F\u0B10\u0B14-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3E-\u0B43\u0B47\u0B48\u0B4B-\u0B4D\u0B57\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C02\u0C03\u0C05-\u0C0B\u0C0E-\u0C10\u0C12\u0C14-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C43\u0C46-\u0C48\u0C4A-\u0C4D\u0C82\u0C83\u0C85-\u0C8B\u0C8E-\u0C90\u0C92\u0C94-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBE-\u0CC3\u0CC6-\u0CC8\u0CCA-\u0CCD\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60\u0D61\u0D7A-\u0D7F\u1F00-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB2-\u1FB4\u1FB6\u1FB7\u1FBD\u1FBF\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD2\u1FD3\u1FD6\u1FD7\u1FE2-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u200D\u2019]+)/gi);
|
|
11532
|
+
for (var i = 0; i < words.length; i += 1) {
|
|
11533
|
+
if (words[i].indexOf("/") !== -1) {
|
|
11534
|
+
if (i !== 0 && i !== words.length - 1 && !/\s+\/|\/\s+/.test(words[i])) {
|
|
11535
|
+
words[i] += "";
|
|
11536
|
+
}
|
|
11537
|
+
} else if (words[i].length > minLength) {
|
|
11538
|
+
words[i] = this.hyphenate(words[i]).join("");
|
|
11539
|
+
}
|
|
11540
|
+
}
|
|
11541
|
+
return words.join("");
|
|
11542
|
+
};
|
|
11543
|
+
Hypher.prototype.hyphenate = function(word) {
|
|
11544
|
+
var characters, characterPoints = [], originalCharacters, i, j, k, node, points = [], wordLength, lowerCaseWord = word.toLowerCase(), nodePoints, nodePointsLength, m = Math.max, trie = this.trie, result = [""];
|
|
11545
|
+
if (this.exceptions.hasOwnProperty(lowerCaseWord)) {
|
|
11546
|
+
return word.match(this.exceptions[lowerCaseWord]).slice(1);
|
|
11547
|
+
}
|
|
11548
|
+
if (word.indexOf("") !== -1) {
|
|
11549
|
+
return [word];
|
|
11550
|
+
}
|
|
11551
|
+
word = "_" + word + "_";
|
|
11552
|
+
characters = word.toLowerCase().split("");
|
|
11553
|
+
originalCharacters = word.split("");
|
|
11554
|
+
wordLength = characters.length;
|
|
11555
|
+
for (i = 0; i < wordLength; i += 1) {
|
|
11556
|
+
points[i] = 0;
|
|
11557
|
+
characterPoints[i] = characters[i].charCodeAt(0);
|
|
11558
|
+
}
|
|
11559
|
+
for (i = 0; i < wordLength; i += 1) {
|
|
11560
|
+
node = trie;
|
|
11561
|
+
for (j = i; j < wordLength; j += 1) {
|
|
11562
|
+
node = node[characterPoints[j]];
|
|
11563
|
+
if (node) {
|
|
11564
|
+
nodePoints = node._points;
|
|
11565
|
+
if (nodePoints) {
|
|
11566
|
+
for (k = 0, nodePointsLength = nodePoints.length; k < nodePointsLength; k += 1) {
|
|
11567
|
+
points[i + k] = m(points[i + k], nodePoints[k]);
|
|
11568
|
+
}
|
|
11569
|
+
}
|
|
11570
|
+
} else {
|
|
11571
|
+
break;
|
|
11572
|
+
}
|
|
11573
|
+
}
|
|
11574
|
+
}
|
|
11575
|
+
for (i = 1; i < wordLength - 1; i += 1) {
|
|
11576
|
+
if (i > this.leftMin && i < wordLength - this.rightMin && points[i] % 2) {
|
|
11577
|
+
result.push(originalCharacters[i]);
|
|
11578
|
+
} else {
|
|
11579
|
+
result[result.length - 1] += originalCharacters[i];
|
|
11580
|
+
}
|
|
11581
|
+
}
|
|
11582
|
+
return result;
|
|
11583
|
+
};
|
|
11584
|
+
var hypher = Hypher;
|
|
11585
|
+
const Hypher$1 = /* @__PURE__ */ getDefaultExportFromCjs(hypher);
|
|
11586
|
+
var pt = {
|
|
11587
|
+
"id": "pt",
|
|
11588
|
+
"leftmin": 2,
|
|
11589
|
+
"rightmin": 4,
|
|
11590
|
+
"patterns": {
|
|
11591
|
+
2: "1-",
|
|
11592
|
+
3: "1ba1be1bi1bo1bu1bá1bâ1bã1bé1bí1bó1bú1bê1bõ1ca1ce1ci1co1cu1cá1câ1cã1cé1cí1có1cú1cê1cõ1ça1çe1çi1ço1çu1çá1çâ1çã1çé1çí1çó1çú1çê1çõ1da1de1di1do1du1dá1dâ1dã1dé1dí1dó1dú1dê1dõ1fa1fe1fi1fo1fu1fá1fâ1fã1fé1fí1fó1fú1fê1fõ1ga1ge1gi1go1gu1gá1gâ1gã1gé1gí1gó1gú1gê1gõ1ja1je1ji1jo1ju1já1jâ1jã1jé1jí1jó1jú1jê1jõ1ka1ke1ki1ko1ku1ká1kâ1kã1ké1kí1kó1kú1kê1kõ1la1le1li1lo1lu1lá1lâ1lã1lé1lí1ló1lú1lê1lõ1ma1me1mi1mo1mu1má1mâ1mã1mé1mí1mó1mú1mê1mõ1na1ne1ni1no1nu1ná1nâ1nã1né1ní1nó1nú1nê1nõ1pa1pe1pi1po1pu1pá1pâ1pã1pé1pí1pó1pú1pê1põ1ra1re1ri1ro1ru1rá1râ1rã1ré1rí1ró1rú1rê1rõ1sa1se1si1so1su1sá1sâ1sã1sé1sí1só1sú1sê1sõ1ta1te1ti1to1tu1tá1tâ1tã1té1tí1tó1tú1tê1tõ1va1ve1vi1vo1vu1vá1vâ1vã1vé1ví1vó1vú1vê1võ1xa1xe1xi1xo1xu1xá1xâ1xã1xé1xí1xó1xú1xê1xõ1za1ze1zi1zo1zu1zá1zâ1zã1zé1zí1zó1zú1zê1zõa3aa3ea3oc3ce3ae3ee3oi3ai3ei3ii3oi3âi3êi3ôo3ao3eo3or3rs3su3au3eu3ou3u",
|
|
11593
|
+
4: "1b2l1b2r1c2h1c2l1c2r1d2l1d2r1f2l1f2r1g2l1g2r1k2l1k2r1l2h1n2h1p2l1p2r1t2l1t2r1v2l1v2r1w2l1w2r",
|
|
11594
|
+
5: "1gu4a1gu4e1gu4i1gu4o1qu4a1qu4e1qu4i1qu4o"
|
|
11595
|
+
}
|
|
11596
|
+
};
|
|
11597
|
+
const patternsPt = /* @__PURE__ */ getDefaultExportFromCjs(pt);
|
|
11598
|
+
var enUs = {
|
|
11599
|
+
"id": ["en-us", "en"],
|
|
11600
|
+
"leftmin": 2,
|
|
11601
|
+
"rightmin": 3,
|
|
11602
|
+
"patterns": {
|
|
11603
|
+
3: "x1qei2e1je1f1to2tlou2w3c1tue1q4tvtw41tyo1q4tz4tcd2yd1wd1v1du1ta4eu1pas4y1droo2d1psw24sv1dod1m1fad1j1su4fdo2n4fh1fi4fm4fn1fopd42ft3fu1fy1ga2sss1ru5jd5cd1bg3bgd44uk2ok1cyo5jgl2g1m4pf4pg1gog3p1gr1soc1qgs2oi2g3w1gysk21coc5nh1bck1h1fh1h4hk1zo1ci4zms2hh1w2ch5zl2idc3c2us2igi3hi3j4ik1cab1vsa22btr1w4bp2io2ipu3u4irbk4b1j1va2ze2bf4oar1p4nz4zbi1u2iv4iy5ja1jeza1y1wk1bk3fkh4k1ikk4k1lk1mk5tk1w2ldr1mn1t2lfr1lr3j4ljl1l2lm2lp4ltn1rrh4v4yn1q1ly1maw1brg2r1fwi24ao2mhw4kr1cw5p4mkm1m1mo4wtwy4x1ar1ba2nn5mx1ex1h4mtx3i1muqu2p3wx3o4mwa1jx3p1naai2x1ua2fxx4y1ba2dn1jy1cn3fpr2y1dy1i",
|
|
11604
|
+
4: "4dryn2itni4on1inn1im_up3nik4ni4dy5giye4tyes4_ye44ab_nhe4nha4abe2n2gyn1guy1ery5eep2pe4abry3lay3lone4wne4v1nesy3chn1erne2q3neo1nenp2seps4hy2cey5lu2nedne2cyme44nk2y5at2adine2b2ne_y5ac2p1tp2ten1den1cun1cryn5dp2th4adup4twpub3ae4rxu3ayn5gaff4pue4n2au4p1ppuf4n2atag1ipu4mag1na2gon4asx3tix1t2pu2na4gya3haa3heah4la3ho_ti2a5ian2an5puspu2tnak4_th2n1kl_te4_ta4mu4u4mupmun23mum2alex4ob_sy25ynxal1i_st4y1o4xi5cxi5a4alm_si2_sh2m5sixhu4m4sh4m3r4amam2py2rabm2pixhi2yo5dr2ai4m1pmo2vmos2x2edmo2r4n1la2mor2asx3c2xas5yom4x4apxam3nme44mokrbi2nne44andy4osp4ot3noemn4omn4a4m1n4nog4m1l2angws4l1posw3shwri4wra4yp3iwom11wo2m2izrb4ow4nopo4pr2cem2isrd2iano4mig4y3pomi3awiz55mi_no4n4m1fme4v2re_wir42mes1menme2mme2gre1o2med4me_4nop4m5c4m1bwil21noureu2whi4w3ev4maprev2w1era2plpo4crfu4r4fyy5pu2maha3pu2mab2a2rn1p4npi44lyb4lya2p3nwam42l1w1lut4luplu3or1glluf4lu5a2wacltu2y3rol1tr4vv4r3guyr4rl1te4rh_nru4ar1il2sel4sc4l1rl5prl4plys4c4lovri3ar4ib4lof3lo_ar2par3q_os3ll4oll2i4as_ri1o3vokl2levoi44p1mlka35vo_ns4cas4ll1izr4iqr2is3vivl1it3lika2tan2sen2slrle42l3hlgo3l5gal5frns3mvi4p3ley_od2r2meles24athr4myle2al3drv1inldi4l2de2vilnt2il3civik4lce42l1b4lavv3ifrno4r3nua1trr2ocnt4sy4sok4syks4la2tuk4sck3ouko5ryss4a2tyau4b4klyys1tnu1akis4au3rki4pro4ek4ima2va5ki_nu4dn4umn3uokes4k1erav1irok2ke4g1keek2ed_me2aw3ikal4aws4k5agk3ab3ka_aye4ays4veg3jo4p5ba_4vedjew3n1v24ve_ja4pzar23vatizi4n1w41batba4z2b1bb2beix4o4i5w4b1d4be_rox5nym4nyp4n3za4ittr3por1r4i1ti1bel2ith2itei2su4rs2r1sars4cr2seis1p3betvag4i2sor1shbe3wr1sioad34b3hbi2bbi4d3bie3isf4ise2is_1bilr1sp5va_r5sw_le2uz4eir1ibi2tuxu3r1tiu1v2i1raze4nze4pb2l2uu4mo1biip3iz1eripe4b4louts44b1m4b3no3br3bodi4osbo4eru3aio4mi1ol4io_3booo1ce4inyin1u2insru2n2inn4inl4inkrv4e2inioch42iner3vo4indpi2np4idbt4lb4tob3trry4cry3t2in_o4elbu4ni2muim1i5saiil3v4ilnil1iil5fs1apo3er4b5w5by_bys4_in1sau4i1lazet4u2suo3ev2z1ii2go4igius1p5saw4s5bo2fi4ifti3fl4if_i3etsch2usc22ie4i2dui4dri2diid5dpi3au3ruz4ils1cuz4is4s5d4se_se4a2ce_2ici4ich3ceii1bri5bo1ceni1blse2g5seiibe43cepi2aniam4ur2li2al2i1acet4hy2scew41phy4ch_5phuhu4thu4gche2h4tyh4shur1durc44hr44h5p5sev5sexu1ra4s3fup3p2s3gph3t2sh_ho4g2h1n_he23ciau3pl4h1mci5ch2lozo4m4ciihi2vhi4p2cim2cin4phsu1peu1ouo1geu5osheu4sho4he4th1es4shwun5zun5ysi1bunu45cizo4glck3ihep5he2nh4ed1sioph2l5hazsi2rcly4zte4_ge21siscoe22cog5siu1siv5siz_ga24skes1l2s2leha4m2s1ms3ma1ogyo1h2u1ni3gus3gun2guegu4acov1gth3_eu3g4ros1n4_es3u2nez4zyum2pu1mi3som_ev2oig4cri2gov15goos4opgon2ul5v5goeu3lugob53go_2c1t4ph_g1nog1nic2te4sov4ulsgn4ag4myc4twcud5c4ufc4uipe2t3glo1gleul2igla4_eg23giz3cun5givgi4u3gir5gio1cusul4e2spagil4g1ic5gi__eb4cze41d2a5da_u1laggo44daf2dagg2gege4v1geo1gen2ged3dato1la2ge_ol2dol2i5daypek4p4eed1d42de_4gazol2tuiv3ol2vo2lys1sa2gamgaf4o2meui4n2ui2pe2cd4em4fugi4jku3fl3ufaf2tyf4to1denu4du4pe_2f3sfri2de1ps1si4f5pfos5d3eqs4sls4snfo2rss2tdes25fon4p1b_ci23payss5w2st_de1tf4l2de1v2fin4dey4d1fd4gast2idg1id2gyd1h25di_ud5dfi3au4cy_ch4pav43didu3cud1iff2fyu3crd1inst4r4f1ffev4fer11dio2fedfe4bdir2s2ty4fe_dis1on1au3ca4f5bon1c2ondd5k25far4fagpa1peys45eyc1exps4ul2dlyp4ale3whon3s3do_e1wa5doee5vud4oge1visu2msu2nub4euav4su2rp4ai6rk_d4or3dosu1atdo4v3doxp4adoo4k4swoo2padre4eus4e3upe5un2ophet5z4syc3syl4y3hoy1ads4pd4swd4syd2tho4wo3ta_du2c4etn2tabta2luac4es4wdu4g2ess4uabdu4n4duptav4st5bow1io1pr5dyn2tawe1sp2t1bop1uead1tz4et4chopy5ea4l4t1d4te_2tyle1si4esh1tee4tyat1cr4twoteg4es2c4eru1teoer1s2eroea2tte4po1rat1wh3tusea2v3teu3texer1i2e1ber1h4tey2t1f4t1ge3br2th_th2e4thle1ce3tumec2i2ths2erb1tia4tueer1aou5vtud2tif22tige1potu1aou4lttu41timt5toos4le1cre2pat4swe5owe1cue4ottsh4eos4e1ort4sce3ol4edieo2ge5of1tio4eno4enn5tiq4edoti4u1tive3my1tiz4othee2ct5laee2ft5lo4t1mee2mtme4e1meem5bcoi4to3be5exo1ry2tof1effel2iel2ftos24t1pe1la1traos2ceig2ei5de5ico2soe1h45egyeg5n",
|
|
11605
|
+
5: "_ach4e4go_e4goseg1ule5gurtre5feg4iceher4eg5ibeger44egaltre4mei5gle3imbe3infe1ingtra3beir4deit3eei3the5ity5triae4jud3efiteki4nek4la2trime4la_e4lactri4v4toute4law5toure3leaefil45elece4ledto2rae5len4tonye1lestro3ve4fic4tonoto3mytom4bto2mato5ice5limto2gre3lioe2listru5i4todo4ellaee4tyello4e5locel5ogeest4el2shel4tae5ludel5uge4mace4mage5man2t1n2ee2s4ee4p1e2mele4metee4naemi4eee4lyeel3i3tled3tle_e4mistlan4eed3iem3iztrus4emo4gti3zaem3pie4mule4dulemu3ne4dritiv4aedon2e4dolti3tle5neae5neeen3emtis4pti5sotis4m3tisee3newti3sae5niee5nile3nioedi5zen3ite5niu5enized1ited3imeno4ge4nosen3oven4swti5oc4t1s2en3uaen5ufe3ny_4en3zed3ibe3diae4oi4ede4s3tini4ed3deo3ret2ina2e2dae4culeo4toe5outec4te4t3t2t4tes2t1ine5pel4timpe2corephe4e4plie2col5tigutu3arti5fytu4bie3pro3tienep4sh5tidie4putt4icoeci4t4tick2ti2bec3imera4bti4aber3ar4tuf45tu3ier4bler3che4cib2ere_4thooecca54thil3thet4thea3turethan4e4cade4bitere4qe4ben5turieret4tur5oeav5oeav5itu5ry4tess4tes_ter5ve1rio4eriter4iueri4v1terier3m4ter3cte5pe4t1waer3noeast3er5obe5rocero4rer1oue3assea5sp1tent4ertler3twtwis4eru4t3tende1s4a3tenc5telsear2te2scateli4e3scres5cue1s2ee2sec3tel_te5giear5kear4cte5diear3ae3sha2t1ede5ande2sice2sid5tecttece44teattype3ty5phesi4uea4gees4mie2sole3acte2sone1a4bdys5pdy4sedu4petaun4d3uleta5sytas4e4tare4tarctar4ata5pl2estrta5mo4talke2surtal3idu5eleta4bta5lae3teoua5naet1ic4taf4etin4ta5doe5tir4taciuan4id1ucad1u1ae3trae3tre2d1s2syn5ouar2d4drowet3uaet5ymdro4pdril4dri4b5dreneu3rouar3ieute44draieu5truar3te2vasdop4pe5veadoo3ddoni4u4belsum3iev1erdoli4do4laev3idevi4le4vinevi4ve5voc2d5ofdo5dee4wage5wee4d1n4ewil54d5lue3wit2d3lou3ber5eye_u1b4i3dledfa3blfab3rfa4ce3dle_fain4suit3su5issu2g34d5lasu4b3fa3tasu1al4fato1di1vd2iti5disiuci4bfeas4di1redi4pl4feca5fectdio5gfe3life4mofen2d4st3wuc4it5ferr5diniucle3f4fesf4fie4stry1dinaf4flydi3ge3dictd4icedia5bs4tops1tle5stirs3tifs4ties1ticfic4is5tias4ti_4ficsfi3cuud3ers3thefil5iste2w4filyudev45finas4tedfi2nes2talfin4ns2tagde2tode4suflin4u1dicf2ly5ud5isu5ditde1scd2es_der5sfon4tu4don5dermss4lid4erhfor4is4siede2pudepi4fra4tf5reade3pade3nufril4frol5ud4side3nou4eneuens4ug5infu5el5dem_s5setfu5nefu3rifusi4fus4s4futade5lode5if4dee_5gal_3galiga3lo2d1eds3selg5amos2s5cssas3u1ing4ganouir4mgass4gath3uita4deaf5dav5e5dav44dato4darygeez44spotspor4s4pon4gelydark5s4ply4spio4geno4genydard5ge3omg4ery5gesigeth54getoge4tydan3g4g1g2da2m2g3gergglu5dach4gh3inspil4gh4to4cutr1gi4agia5rula5bspho5g4icogien5s2pheulch42sperspa4n5spai3c4utu1lenul4gigir4lg3islcu5pycu3picu4mic3umecu2maso5vi5glasu5liagli4bg3lig5culiglo3r4ul3mctu4ru1l4og4na_c3terul1tig2ning4nio4ultug4noncta4b4c3s2cru4dul5ulsor5dgo3isum5absor5ccris4go3nic4rinson4gsona45gos_cri5fcre4vum4bi5credg4raigran25solvsoft3so4ceunat44graygre4nco5zi4gritcoz5egruf4cow5ag5stecove4cos4es5menun4ersmel44corbco4pl4gu4tco3pacon5tsman3gy5racon3ghach4hae4mhae4th5aguha3lac4onecon4aun4ims3latu2ninhan4gs3ket5colocol5ihan4kuni3vhap3lhap5ttras4co4grhar2dco5agsir5aclim45sionhas5shaun44clichaz3acle4m1head3hearun3s4s3ingun4sws2ina2s1in4silysil4eh5elohem4p4clarhena45sidiheo5r1c4l4h4eras5icc2c1itu4orsh3ernshor4h3eryci3phshon34cipecion45cinoc1ingc4inahi5anhi4cohigh5h4il2shiv5h4ina3ship3cilihir4lhi3rohir4phir4rsh3iohis4ssh1inci4lau5pia4h1l4hlan44cier5shevcia5rhmet4ch4tish1erh5ods3cho2hoge4chi2z3chitho4mahome3hon4aho5ny3hoodhoon45chiouptu44ura_ho5ruhos4esew4ihos1p1housu4ragses5tu4rasur4behree5se5shs1e4s4h1s24chedh4tarht1enht5esur4fru3rifser4os4erlhun4tsen5gur1inu3riosen4dhy3pehy3phu1ritces5tur3iz4cesa4sencur4no4iancian3i4semeia5peiass45selv5selfi4atu3centse1le4ceniib5iaib3inseg3ruros43cencib3li3cell5cel_s5edli5bun4icam5icap4icar4s4ed3secticas5i4cayiccu44iceour4pe4ced_i5cidsea5wi2cipseas4i4clyur4pi4i1cr5icrai4cryic4teictu2ccon4urti4ic4umic5uoi3curcci4ai4daiccha5ca4thscof4ide4s4casys4cliscle5i5dieid3ios4choid1itid5iui3dlei4domid3owu5sadu5sanid5uous4apied4ecany4ield3s4cesien4ei5enn4sceii1er_i3esci1estus3ciuse5as4cedscav5if4frsca4pi3fieu5siau3siccan4eiga5bcan5d4calous5sli3gibig3ilig3inig3iti4g4lus1trig3orig5oti5greigu5iig1ur2c5ah4i5i44cag4cach4ca1blusur4sat3usa5tab5utoi3legil1erilev4uta4b4butail3iail2ibil3io3sanc2ilitil2izsal4t5bustil3oqil4tyil5uru3tati4magsa5losal4m4ute_4imetbu3res3act5sack2s1ab4imitim4nii3mon4utelbumi4bu3libu4ga4inav4utenbsor42b5s2u4tis4briti3neervi4vr3vic4inga4inger3vey4ingir3ven4ingo4inguu4t1li5ni_i4niain3ioin1isbo4tor5uscrunk5both5b5ota5bos42i1no5boriino4si4not5borein3seru3in2int_ru4glbor5di5nusut5of5bor_uto5gioge4io2grbon4au5tonru3enu4touion3iio5phior3ibod3iio5thi5otiio4toi4ourbne5gb3lisrt4shblen4ip4icr3triip3uli3quar4tivr3tigrti4db4le_b5itzira4bi4racird5ert5ibi4refbi3tri4resir5gibi5ourte5oir4isr3tebr4tagbin4diro4gvac3uir5ul2b3ifis5agis3arisas52is1cis3chbi4eris3erbi5enrson3be5yor5shais3ibisi4di5sisbe3tw4is4krs3es4ismsbe5trr3secva4geis2piis4py4is1sbe3sp4bes4be5nuval5ois1teis1tirrys4rros44be5mis5us4ita_rron4i4tagrri4vi3tani3tatbe3lorri4or4reoit4esbe1libe5gu4itiarre4frre4cbe3giit3igbe3dii2tim2itio4itisrp4h4r3pet4itonr4peait5rybe3debe3dai5tudit3ul4itz_4be2dbeat3beak4ro4varo4tyros4sro5roiv5ioiv1itror3i5root1roomval1ub3berva5mo4izarva5piron4eban3ijac4qban4ebal1ajer5srom4prom4iba4geazz5i5judgay5alax4idax4ickais4aw4ly3awaya1vorav5ocav3igke5liv3el_ve4lov4elyro1feke4tyv4erdv4e2sa5vanav3ag5k2ick4illkilo5au1thk4in_4ves_ro3crkin4gve4teaun5dk5ishau4l2au3gu4kleyaugh3ve4tyk5nes1k2noat3ulkosh4at5uekro5n4k1s2at5uaat4that5te5vianat4sk5vidil4abolaci4l4adela3dylag4nlam3o3landrob3la4tosr4noular4glar3ilas4ea4topr3nivr3nita2tomr5nica4toglbin44l1c2vi5gnat3ifat1ica5tiar3neyr5net4ati_ld5isat4hol4driv2incle4bileft55leg_5leggr4nerr3nel4len_3lencr4nar1lentle3phle4prvin5dler4e3lergr3mitl4eroat5evr4mio5lesq3lessr3menl3eva4vingrma5cvio3lvi1ou4leyevi5rovi3so4l1g4vi3sulgar3l4gesate5cat5apli4agli2amr3lo4li4asr4lisli5bir4ligr2led4lics4vitil4icul3icyl3idaat5ac3lidirk4lel4iffli4flr3ket3lighvit3r4vityriv3iri2tulim3ili4moris4pl4inar3ishris4clin3ir4is_li5og4l4iqlis4pas1trl2it_as4shas5phri2pla4socask3ia3sicl3kallka4ta3sibl4lawashi4l5leal3lecl3legl3lel5riphas4abar2shrin4grin4ear4sarin4dr2inal5lowarre4l5met3rimol4modlmon42l1n2a3roorim5ilo4civo4la5rigil5ogo3loguri5et5longlon4iri1erlood5r4icolop3il3opmlora44ricir4icerib3a5los_v5oleri4agria4blos4tlo4taar2mi2loutar2izar3iolpa5bl3phal5phi4rhall3pit5voltar4im3volv2l1s2vom5ivori4l4siear4fllt5agar4fivo4rylten4vo4talth3ia3reeltis4ar4drw5ablrgo4naraw4lu3brluch4lu3cilu3enwag5olu5idlu4ma5lumia5raur5gitwait5luo3rw5al_luss4r5gisar4atl5venrgi4nara3pwar4tar3alwas4tly5mely3no2lys4l5ysewa1teaque5ma2car3gicma4clr3get5magnwed4nmaid54maldrg3erweet3wee5vwel4lapoc5re4whwest3ap3in4aphires2tr4es_mar3vre5rumas4emas1t5matemath3rero4r4eriap5atr1er4m5bilre1pumbi4vapar4a5nuran3ul4med_an3uare5lure1lian4twre5itmel4tan2trre4fy4antomen4are3fire2fe4menemen4imens4re1de3ment2r2edme5onre4awwin4g5reavme4tare3anme1tere1alm4etr3wiserdin4rdi4aan4stwith3an2span4snan2samid4amid4gan5otwl4esr4dalm4illmin4a3mindrcum3rc4itr3charcen4min4tm4inumiot4wl3ina3niumis5lan3ita3nip4mithan3ioan1gla3neuws4per2bina3nena5neem4ninw5s4tan1dl4mocrrbi4fmo2d1mo4gomois2xac5ex4agor4bagmo3mer4baba3narrau4ta5monrare4rar5cra5nor4aniam1inr2amiam5ifra4lomo3spmoth3m5ouf3mousam3icxer4ixe5roraf4tr5aclm3petra3bixhil5mpi4aam3ag3quetm5pirmp5is3quer2que_qua5vmpov5mp4tram5ab3alyz4m1s25alyt4alysa4ly_ali4exi5di5multx4ime4aldia4laral3adal5abak1enain5opu3trn4abu4nac_na4can5act5putexpe3dna4lia4i4n4naltai5lya3ic_pur4rag5ulnank4nar3c4narenar3inar4ln5arm3agognas4c4ag4l4ageupul3cage4oaga4na4gab3nautnav4e4n1b4ncar5ad5umn3chaa3ducptu4rpti3mnc1innc4itad4suad3owad4len4dain5dana5diua3ditndi4ba3dion1ditn3dizn5ducndu4rnd2we3yar4n3eara3dianeb3uac4um5neckac3ulp4siba3cio5negene4laac1inne5mine4moa3cie4nene4a2cine4poyc5erac1er2p1s2pro1tn2erepro3lner4rych4e2nes_4nesp2nest4neswpri4sycom4n5evea4carab3uln4gabn3gelpre3vpre3rycot4ng5han3gibng1inn5gitn4glangov4ng5shabi5an4gumy4erf4n1h4a5bannhab3a5bal3n4iani3anni4apni3bani4bl_us5ani5dini4erni2fip3petn5igr_ure3_un3up3per_un5op3pennin4g_un5k5nis_p5pel_un1en4ithp4ped_un1ani3tr_to4pympa3_til4n3ketnk3inyn5ic_se2ny4o5gy4onsnmet44n1n2_ru4d5pounnni4vnob4lpo4tan5ocly4ped_ro4qyper5noge4pos1s_ri4gpo4ry1p4or_res2no4mono3my_ree2po4ninon5ipoin2y4poc5po4gpo5em5pod_4noscnos4enos5tno5tayp2ta3noun_ra4cnowl3_pi2tyra5m_pi4eyr5ia_out3_oth32n1s2ns5ab_or3t_or1d_or3cplu4mnsid1nsig4y3s2eys3ion4socns4pen5spiploi4_odd5nta4bpli4n_ni4cn5tib4plignti2fpli3a3plannti4p1p2l23ysis2p3k2ys3ta_mis1nu5enpi2tun3uinp3ithysur4nu1men5umi3nu4nyt3icnu3trz5a2b_li4t_li3o_li2n_li4g_lev1_lep5_len4pion4oard3oas4e3pi1ooat5ip4inoo5barobe4l_la4mo2binpind4_ju3rob3ul_is4i_ir5rp4in_ocif3o4cil_in3so4codpi3lopi3enocre33piec5pidipi3dep5ida_in2kod3icodi3oo2do4odor3pi4cypian4_ine2o5engze3rooe4ta_im3m_id4l_hov5_hi3b_het3_hes3_go4r_gi4bpho4ro5geoo4gero3gie3phobog3it_gi5azo5ol3phizo4groogu5i4z1z22ogyn_fes3ohab5_eye55phieph1icoiff4_en3sph4ero3ing_en3go5ism_to2qans3v_el5d_eer4bbi4to3kenok5iebio5mo4lanper1v4chs_old1eol3erpe5ruo3letol4fi_du4co3liaper3op4ernp4erio5lilpe5ono5liop4encpe4la_do4tpee4do5livcin2q3pediolo4rol5pld3tabol3ub3pedeol3uno5lusedg1le1loaom5ahoma5l2p2edom2beom4bl_de3o3fich3pe4ao4met_co4ro3mia_co3ek3shao5midom1inll1fll3teapa2teo4monom3pi3pare_ca4tlue1pon4aco3nanm2an_pa4pum2en_on5doo3nenng1hoon4guon1ico3nioon1iso5niupa3nypan4ao3nou_bri2pain4ra1oronsu4rk1hopac4tpa4ceon5umonva5_ber4ood5eood5i6rks_oop3io3ordoost5rz1scope5dop1erpa4ca_ba4g_awn4_av4i_au1down5io3pito5pon1sync_as1s_as1p_as3ctch1c_ar5so5ra_ow3elo3visov4enore5auea1mor3eioun2d_ant4orew4or4guou5etou3blo5rilor1ino1rio_ang4o3riuor2miorn2eo5rofoto5sor5pe3orrhor4seo3tisorst4o3tif_an5cor4tyo5rum_al3tos3al_af1tos4ceo4teso4tano5scros2taos4poos4paz2z3wosi4ue3pai",
|
|
11606
|
+
6: "os3ityos3itoz3ian_os4i4ey1stroos5tilos5titxquis3_am5atot3er_ot5erso3scopor3thyweek1noth3i4ot3ic_ot5icao3ticeor3thiors5enor3ougor3ityor3icaouch5i4o5ria_ani5mv1ativore5sho5realus2er__an3teover3sov4erttot3icoviti4o5v4olow3dero4r3agow5esto4posiop3ingo5phero5phanthy3sc3operaontif5on3t4ionten45paganp3agattele2gonspi4on3omyon4odipan3elpan4tyon3keyon5est3oncil_ar4tyswimm6par5diompro5par5elp4a4ripar4isomo4gepa5terst5scrpa5thy_atom5sta1tio5miniom3icaom3ic_ss3hatsky1scpear4lom3ena_ba5naol3umer1veilpedia4ped4icolli4er1treuo5liteol3ishpeli4epe4nano5lis_pen4thol3ingp4era_r1thoup4erago3li4f_bas4er1krauperme5ol5id_o3liceper3tio3lescolass4oi3terpe5tenpe5tiz_be5raoi5son_be3smphar5iphe3nooi5letph4es_oi3deroic3esph5ingr3ial_3ognizo5g2ly1o1gis3phone5phonio5geneo4gatora3mour2amenofit4tof5itera3chupi4ciepoly1eod5dedo5cureoc3ula1pole_5ocritpee2v1param4oc3raco4clamo3chetob5ingob3a3boast5eoke1st3nu3itpi5thanuf4fentu3meoerst2o3chasplas5tn3tinepli5ernti4ernter3sntre1pn4s3esplum4bnsati4npre4cns4moonon1eqnor5abpo3et5n5lessn5oniz5pointpoly5tnon4agnk3rup3nomicng1sprno5l4inois5i4n3o2dno3blenni3aln5keroppa5ran3itor3nitionis4ta5nine_ni3miznd3thrmu2dron3geripray4e5precipre5copre3emm3ma1bpre4lan5gerep3rese3press_can5cmedi2c5pri4e_ce4la3neticpris3op3rocal3chain4er5ipros3en4erarnera5bnel5iz_cit5rne4gatn5d2ifpt5a4bjanu3aign4itn3chisn5chiln5cheon4ces_nau3seid4iosna3talnas5tinan4itnanci4na5mitna5liahnau3zput3er2n1a2bhex2a3hatch1multi3hair1sm4pousg1utanmpo3rim4p1inmp5iesmphas4rach4empar5iraf5figriev1mpara5mo5seyram3et4mora_rane5oran4gemo3ny_monol4rap3er3raphymo3nizgno5morar5ef4raril1g2nacg1leadmoni3ara5vairav3elra5ziemon5gemon5etght1wemoi5sege3o1dmma5ryr5bine3fluoren1dixmis4ti_de3ra_de3rie3chasrch4err4ci4bm4inglm5ineedu2al_3miliame3tryrdi4er_des4crd3ingdi2rerme5thimet3alre5arr3mestim5ersadi2rende2ticdes3icre4cremen4temensu5re3disred5itre4facmen4dede2mosmen5acmem1o3reg3ismel5onm5e5dyme3died2d5ibren4te5mediare5pindd5a5bdata1bmba4t5cle4arma3tisma5scemar4lyre4spichs3huma5riz_dumb5re3strre4terbrus4qre3tribio1rhre5utiman3izre4valrev3elbi1orbbe2vie_eas3ire5vilba1thyman5is5maniamal4tymal4lima5linma3ligmag5inav3ioul5vet4rg3inglus3teanti1dl5umn_ltur3a_el3emltera4ltane5lp5ingloun5dans5gra2cabllos5etlor5ouric5aslo5rie_enam35ricidri4cie5lope_rid5erri3encri3ent_semi5lom3errig5an3logicril3iz5rimanlob5allm3ingrim4pell5out5rina__er4ril5linal2lin4l3le4tl3le4nriph5eliv3er_ge5og_han5k_hi3er_hon3olin3ea1l4inel4im4p_idol3_in3ci_la4cy_lath5rit3iclim4blrit5urriv5elriv3et4l4i4lli4gra_leg5elif3errk4linlid5er4lict_li4cor5licioli4atorl5ish_lig5a_mal5o_man5a_mer3c5less_rm5ersrm3ingy3thinle5sco3l4erilera5b5lene__mon3ele4matld4erild4erela4v4ar1nis44lativ_mo3rola5tanlan4telan5etlan4dllab3ic_mu5takin4dek3est_ro5filk3en4dro5ker5role__of5te4jestyys3icaron4al5izont_os4tlron4tai4v3ot_pe5tero3pelrop3ici5voreiv5il__pio5n_pre3mro4the_ran4tiv3en_rov5eliv3ellit3uati4tramr5pentrp5er__rit5ui4tismrp3ingit5ill_ros5tit3ica4i2tici5terirre4stit3era4ita5mita4bi_row5dist4lyis4ta_is4sesrsa5tiissen4is4sal_sci3erse4crrs5er_islan4rse5v2yo5netish5opis3honr4si4bis5han5iron_ir4minrtach4_self5iri3turten4diri5dei4rel4ire4de_sell5r4tieriq3uidrtil3irtil4lr4tilyr4tistiq5uefip4re4_sing4_ting4yn3chrru3e4lion3at2in4th_tin5krum3pli4no4cin3ityrun4ty_ton4aruti5nymbol5rvel4i_top5irv5er_r5vestin5geni5ness_tou5s_un3cein3cerincel45ryngei4n3auim3ulai5miniimi5lesac3riim5ida_ve5rasalar4ima5ryim3ageill5abil4istsan4deila5rai2l5am_wil5ii4ladeil3a4bsa5voright3iig3eraab5erd4ific_iff5enif5eroi3entiien5a45ie5gaidi5ou3s4cieab5latidi4arid5ianide3al4scopyab5rogid5ancic3ulaac5ardi2c5ocic3ipaic5inase2c3oi4carai4car_se4d4ei2b5riib5iteib5it_ib5ertib3eraac5aroi4ativ4ian4tse4molsen5ata5ceouh4warts5enedhus3t4s5enin4sentd4sentlsep3a34s1er_hun5kehu4min4servohro3poa5chethov5el5se5umhouse3sev3enho5senhort3eho5rishor5at3hol4ehol5arh5odizhlo3riac5robhis3elhion4ehimer4het4edsh5oldhe2s5ph5eroushort5here5aher4bahera3p3side_5sideshen5atsi5diz4signahel4lyact5ifhe3l4ihe5do55sine_h5ecathe4canad4dinsion5aad5er_har4lehard3e3sitioha5rasha3ranhan4tead3icahang5oadi4ersk5inesk5ing5hand_han4cyhan4cislith5hala3mh3ab4lsmall32g5y3n5gui5t3guard5smithad5ranaeri4eag5ellag3onia5guerso4labsol3d2so3licain5in4grada3s4on_gor5ougo5rizgondo5xpan4dait5ens5ophyal3end3g4o4ggnet4tglad5i5g4insgin5ge3g4in_spen4d2s5peog3imen5gies_3spher5giciagh5outsp5ingge5nizge4natge5lizge5lisgel4inxi5miz4gativgar5n4a5le5oga3nizgan5isga5mets5sengs4ses_fu4minfres5cfort5assi4erss5ilyfore5tfor5ayfo5ratal4ia_fon4dessur5aflo3ref5lessfis4tif1in3gstam4i5stands4ta4p5stat_fin2d5al5levs5tero4allicstew5afight5fi5del5ficie5ficiafi3cer5stickf3icena5log_st3ingf3icanama5ra5stockstom3a5stone2f3ic_3storef2f5iss4tradam5ascs4trays4tridf5fin_fend5efeath3fault5fa3thefar5thfam5is4fa4mafall5eew3inge5verbeven4ie5vengevel3oev3ellev5asteva2p5euti5let5roset3roget5rifsy5rinet3ricet5onaam5eraam5ilyami4noamor5ieti4noe5tidetai5loethod3eten4dtal5enes5urramp5enan3ageta5loge5strotan4detanta3ta5pere3ston4es2toes5times3tigta3rizestan43analy4taticta4tures4prean3arces3pertax4ises5onaes3olue5skintch5etanar4ies4i4ntead4ie2s5ima3natiande4sesh5enan3disan4dowang5iete5geres5ences5ecres5cana4n1icte2ma2tem3at3tenanwrita45erwau4tenesert3era3nieser3set5erniz4erniter4nis5ter3de4rivaan3i3fter3isan4imewo5vener3ineeri4ere3rient3ess_teth5e5ericke1ria4er3ester5esser3ent4erenea5nimier5enaer3emoth3easthe5atthe3iser5el_th5ic_th5icaere3in5thinkere5coth5odea5ninee3realan3ishan4klier4che5anniz4erandti4atoanoth5equi3lep5utat4ic1uan4scoe4probep3rehe4predans3poe4precan4surantal4e3penttim5ulep5anceo5rol3tine_eop3aran4tiewin4deap5eroen3ishen5icsen3etren5esten5esien5eroa3pheren3dicap3itae4nanten5amoem5ulaa3pituti3zen5emnize5missem5ishap5olaem5ine3tles_t5let_em1in2apor5iem3icaem5anael3op_el4labapos3te3liv3el5ishaps5esweath3e3lierel3icaar3actwa5verto3nate3libee4l1erel3egato3rietor5iza5radeelaxa4aran4gto3warelan4dej5udie5insttra5chtraci4ar5av4wa5gere5git5arbal4ar5easeg5ing4voteetrem5iar3enta5ressar5ial4tricsvor5abe3finetro5mitron5i4tronyar3iantro3sp5eficia3rieted5uloed3icae4d1erec3ulaec4tane4cremeco5roec3orae4concar5o5de4comme4cluse4clame5citeec5ifya5ronias3anta5sia_tu4nis2t3up_ecan5ce4belstur3ise4bel_eav3ene4a3tue5atifeath3ieat5eneart3eear4ilear4icear5eseam3ereal3oueal5erea5geread5iedum4be4ducts4duct_duc5eras3tenasur5adrea5rat3abl4d5outdo3natdom5izdo5lor4dlessu4bero3dles_at3alou3ble_d4is3tdirt5idi5niz3dine_at5ech5di3endi4cam1d4i3ad3ge4tud5estdev3ilde3strud3iedud3iesdes3tide2s5oat3egovis3itde4nardemor5at3en_uen4teuer4ilde5milat3eraugh3en3demicater5nuil5izdeli4ede5comde4cildecan4de4bonv3io4rdeb5it4dativ2d3a4bat3estu5laticu4tie5ulcheul3dercuss4icu5riaath5em3cultua5thenul3ingul5ishul4lar4vi4naul4liscu5ityctim3ic4ticuuls5esc5tantultra3ct5angcros4ecrop5ocro4pl5critiath5omum4blycre3at5vilitumor5oat5i5b5crat_cras5tcoro3ncop3iccom5ercol3orun5ishco3inc5clareat3ituunt3abat5ropun4tescit3iz4cisti4cista4cipicc5ing_cin3em3cinatuper5s5videsup3ingci2a5b5chini5videdupt5ib5vide_at4tag4ch1inch3ersch3er_ch5ene3chemiche5loure5atur4fercheap3vi5aliat3uravet3er4ch3abc5e4taau5sib3cessives4tece5ram2cen4e4cedenccou3turs5erur5tesur3theaut5enur4tiecav5al4cativave4nover3thcar5omca5percan4tycan3izcan5iscan4icus4lin3versecal4laver3ieca3latca5dencab3in3butiobuss4ebus5iebunt4iv4eresuten4i4u1t2iv3erenu3tineut3ingv4erelbroth35u5tizbound34b1orabon5at5vere_bom4bibol3icblun4t5blespblath5av3erav5enuebi3ogrbi5netven3om2v1a4bvac5ilbi3lizbet5izbe5strva5liebe5nigbbi4nabas4siva5nizbari4aav5ernbarbi5av5eryvel3liazi4eravi4er",
|
|
11607
|
+
7: "_dri5v4ban5dagvar5iedbina5r43bi3tio3bit5ua_ad4derution5auti5lizver5encbuf4ferus5terevermi4ncall5incast5ercas5tigccompa5z3o1phros5itiv5chanicuri4fico5stati5chine_y5che3dupport54v3iden5cific_un4ter_at5omiz4oscopiotele4g5craticu4m3ingv3i3liz4c3retaul4li4bcul4tiscur5a4b4c5utiva5ternauiv4er_del5i5qdem5ic_de4monsdenti5fdern5izdi4latou4b5ingdrag5on5drupliuar5ant5a5si4tec5essawo4k1enec5ifiee4compear5inate4f3eretro5phewide5sp5triciatri5cesefor5ese4fuse_oth5esiar5dinear4chantra5ventrac4tetrac4itar5ativa5ratioel5ativor5est_ar5adisel5ebraton4alie4l5ic_wea5rieel5igibe4l3ingto5cratem5igraem3i3niemoni5oench4erwave1g4a4pillavoice1ption5eewill5inent5age4enthesvaude3vtill5inep5recaep5ti5bva6guer4erati_tho5rizthor5it5thodicer5ence5ternitteri5zater5iesten4tage4sage_e4sagese4sert_an5est_e4sertse4servaes5idenes5ignaesis4tees5piraes4si4btal4lisestruc5e5titioounc5erxe4cutota5bleset5itiva4m5atoa4matis5stratu4f3ical5a5lyst4ficatefill5instern5isspend4gani5zasqual4la4lenti4g3o3nas5ophiz5sophicxpecto55graph_or5angeuri4al_4graphy4gress_smol5d4hang5erh5a5nizharp5enhar5terhel4lishith5erhro5niziam5eteia4tricic4t3uascour5au2r1al_5scin4dover4nescan4t55sa3tiou5do3ny_ven4de_under5ty2p5al_anti5sylla5bliner4arturn3ari5nite_5initioinsur5aion4eryiphras4_tim5o5_ten5an_sta5blrtroph4_se5rieiq3ui3t5i5r2izis5itiviso5mer4istral5i5ticki2t5o5mtsch3ie_re5mittro3fiti4v3er_i4vers_ros5per_pe5titiv3o3ro_ped5alro5n4is_or5ato4jestierom5ete_muta5bk5iness4latelitr4ial__mist5i_me5terr4ming_lev4er__mar5tilev4eralev4ers_mag5a5liar5iz5ligaterit5ers_lat5errit5er_r5ited__im5pinri3ta3blink5er_hon5ey5litica_hero5ior5aliz_hand5irip5lic_gen3t4tolo2gylloqui5_con5grt1li2erbad5ger4operag_eu4lertho3donter2ic__ar4tie_ge4ome_ge5ot1_he3mo1_he3p6a_he3roe_in5u2tpara5bl5tar2rht1a1mintalk1a5ta3gon_par5age_aster5_ne6o3f_noe1thstyl1is_poly1s5pathic_pre1ampa4tricl3o3niz_sem4ic_semid6_semip4_semir45ommend_semiv4lea4s1a_spin1oom5etryspher1o_to6poglo4ratospe3cio3s2paceso2lute_we2b1l_re1e4ca5bolicom5erseaf6fishside5swanal6ysano5a2cside5stl5ties_5lumniasid2ed_anti1reshoe1stscy4th1s4chitzsales5wsales3cat6tes_augh4tlau5li5fom5atizol5ogizo5litiorev5olure5vertre5versbi5d2ifbil2lab_earth5pera5blro1tronro3meshblan2d1blin2d1blon2d2bor1no5ro1bot1re4ti4zr5le5quperi5stper4malbut2ed_but4tedcad5e1moist5enre5stalress5ibchie5vocig3a3roint5er4matizariv1o1lcous2ticri3tie5phisti_be5stoog5ativo2g5a5rr3a3digm4b3ingre4posir4en4tade4als_od5uctsquasis6quasir6re5fer_p5trol3rec5olldic1aiddif5fra3pseu2dr5ebrat5metric2d1lead2d1li2epro2g1epre1neuod5uct_octor5apoin3came5triem5i5liepli5narpara3memin5glim5inglypi4grappal6matmis4er_m5istryeo3graporth1riop1ism__but4tio3normaonom1icfeb1ruafermi1o_de4moio5a5lesodit1icodel3lirb5ing_gen2cy_n4t3ingmo5lestration4get2ic_4g1lishobli2g1mon4ismnsta5blmon4istg2n1or_nov3el3ns5ceivno1vembmpa5rabno4rarymula5r4nom1a6lput4tinput4tedn5o5miz_cam4penag5er_nge5nesh2t1eoun1dieck2ne1skiifac1etncour5ane3backmono1s6mono3chmol1e5cpref5ac3militapre5tenith5i2lnge4n4end5est__capa5bje1re1mma1la1ply5styr1kovian_car5olprin4t3lo2ges_l2l3ishprof5it1s2tamp",
|
|
11608
|
+
8: "lead6er_url5ing_ces5si5bch5a5nis1le1noidlith1o5g_chill5ilar5ce1nym5e5trych5inessation5arload4ed_load6er_la4c3i5elth5i2lyneg5ativ1lunk3erwrit6er_wrap3arotrav5es51ke6linga5rameteman3u1scmar1gin1ap5illar5tisticamedio6c1me3gran3i1tesima3mi3da5bves1titemil2l1agv1er1eigmi6n3is_1verely_e4q3ui3s5tabolizg5rapher5graphicmo5e2lasinfra1s2mon4ey1lim3ped3amo4no1enab5o5liz_cor5nermoth4et2m1ou3sinm5shack2ppo5sitemul2ti5uab5it5abimenta5rignit1ernato5mizhypo1thani5ficatuad1ratu4n5i4an_ho6r1ic_ua3drati5nologishite3sidin5dling_trib5utin5glingnom5e1non1o1mistmpos5itenon1i4so_re5stattro1p2istrof4ic_g2norespgnet1ism5glo5binlem5aticflow2er_fla1g6elntrol5lifit5ted_treach1etra1versl5i5ticso3mecha6_for5mer_de5rivati2n3o1me3spac6i2t3i4an_thy4l1antho1k2er_eq5ui5to4s3phertha4l1amt3ess2es3ter1geiou3ba3dotele1r6ooxi6d1iceli2t1isonspir5apar4a1leed1ulingea4n3iesoc5ratiztch3i1er_kil2n3ipi2c1a3dpli2c1abt6ap6athdrom3e5d_le6icesdrif2t1a_me4ga1l1prema3cdren1a5lpres2plipro2cess_met4ala3do5word1syth3i2_non1e2m_post1ampto3mat4rec5ompepu5bes5cstrib5utqu6a3si31stor1ab_sem6is4star3tliqui3v4arr1abolic_sph6in1de5clar12d3aloneradi1o6gs3qui3tosports3wsports3cra5n2hascro5e2cor3bin1gespokes5wspi2c1il_te3legrcroc1o1d_un3at5t_dictio5cat1a1s2buss4ingbus6i2esbus6i2erbo2t1u1lro5e2las1s2pacinb1i3tivema5rine_r3pau5li_un5err5r5ev5er__vi2c3arback2er_ma5chinesi5resid5losophyan3ti1n2sca6p1ersca2t1olar2rangesep3temb1sci2uttse3mes1tar3che5tsem1a1ph",
|
|
11609
|
+
9: "re4t1ribuuto5maticl3chil6d1a4pe5able1lec3ta6bas5ymptotyes5ter1yl5mo3nell5losophizlo1bot1o1c5laratioba6r1onierse1rad1iro5epide1co6ph1o3nscrap4er_rec5t6angre2c3i1prlai6n3ess1lum5bia_3lyg1a1miec5ificatef5i5nites2s3i4an_1ki5neticjapan1e2smed3i3cinirre6v3ocde2c5linao3les3termil5li5listrat1a1gquain2t1eep5etitiostu1pi4d1v1oir5du1su2per1e6_mi1s4ers3di1methy_mim5i2c1i5nitely_5maph1ro15moc1ra1tmoro6n5isdu1op1o1l_ko6r1te1n3ar4chs_phi2l3ant_ga4s1om1teach4er_parag6ra4o6v3i4an_oth3e1o1sn3ch2es1to5tes3toro5test1eror5tively5nop5o5liha2p3ar5rttrib1ut1_eth1y6l1e2r3i4an_5nop1oly_graph5er_5eu2clid1o1lo3n4omtrai3tor1_ratio5na5mocratiz_rav5en1o",
|
|
11610
|
+
10: "se1mi6t5ic3tro1le1um5sa3par5iloli3gop1o1am1en3ta5bath3er1o1s3slova1kia3s2og1a1myo3no2t1o3nc2tro3me6c1cu2r1ance5noc3er1osth1o5gen1ih3i5pel1a4nfi6n3ites_ever5si5bs2s1a3chu1d1ri3pleg5_ta5pes1trproc3i3ty_s5sign5a3b3rab1o1loiitin5er5arwaste3w6a2mi1n2ut1erde3fin3itiquin5tes5svi1vip3a3r",
|
|
11611
|
+
11: "pseu3d6o3f2s2t1ant5shimi1n2ut1estpseu3d6o3d25tab1o1lismpo3lyph1onophi5lat1e3ltravers3a3bschro1ding12g1o4n3i1zat1ro1pol3it3trop1o5lis3trop1o5lesle3g6en2dreeth1y6l1eneor4tho3ni4t",
|
|
11612
|
+
12: "3ra4m5e1triz1e6p3i3neph1"
|
|
11613
|
+
}
|
|
11614
|
+
};
|
|
11615
|
+
const patternsEnUs = /* @__PURE__ */ getDefaultExportFromCjs(enUs);
|
|
11616
|
+
const hyphenatorCache = /* @__PURE__ */ new Map();
|
|
11617
|
+
function getHyphenator(lang) {
|
|
11618
|
+
let instance = hyphenatorCache.get(lang);
|
|
11619
|
+
if (!instance) {
|
|
11620
|
+
instance = new Hypher$1(lang === "en-us" ? patternsEnUs : patternsPt);
|
|
11621
|
+
hyphenatorCache.set(lang, instance);
|
|
11622
|
+
}
|
|
11623
|
+
return instance;
|
|
11624
|
+
}
|
|
11625
|
+
function resolveHyphenationLanguage(tag) {
|
|
11626
|
+
if (tag && tag.toLowerCase().startsWith("en")) {
|
|
11627
|
+
return "en-us";
|
|
11628
|
+
}
|
|
11629
|
+
return "pt";
|
|
11630
|
+
}
|
|
11631
|
+
const LETTER = new RegExp("\\p{L}", "u");
|
|
11632
|
+
const UPPER = new RegExp("\\p{Lu}", "u");
|
|
11633
|
+
const DIGIT = /\d/u;
|
|
11634
|
+
const HAS_HYPHEN = /[-‑]/u;
|
|
11635
|
+
function shouldHyphenateWord(word, options = {}) {
|
|
11636
|
+
if (word.length < 4) return false;
|
|
11637
|
+
if (HAS_HYPHEN.test(word)) return false;
|
|
11638
|
+
if (!LETTER.test(word)) return false;
|
|
11639
|
+
if (DIGIT.test(word)) return false;
|
|
11640
|
+
if (options.doNotHyphenateCaps && UPPER.test(word) && word === word.toUpperCase()) {
|
|
11641
|
+
return false;
|
|
11642
|
+
}
|
|
11643
|
+
return true;
|
|
11644
|
+
}
|
|
11645
|
+
const isLetter = (ch) => !!ch && LETTER.test(ch);
|
|
11646
|
+
const pointsCache = /* @__PURE__ */ new Map();
|
|
11647
|
+
function findHyphenationPoints(word, lang) {
|
|
11648
|
+
const cacheKey = `${lang}\0${word}`;
|
|
11649
|
+
const cached = pointsCache.get(cacheKey);
|
|
11650
|
+
if (cached) return cached;
|
|
11651
|
+
let start = 0;
|
|
11652
|
+
while (start < word.length && !isLetter(word[start])) start += 1;
|
|
11653
|
+
let end = word.length;
|
|
11654
|
+
while (end > start && !isLetter(word[end - 1])) end -= 1;
|
|
11655
|
+
const core = word.slice(start, end);
|
|
11656
|
+
let points = [];
|
|
11657
|
+
if (core.length >= 4) {
|
|
11658
|
+
const syllables = getHyphenator(lang).hyphenate(core);
|
|
11659
|
+
if (syllables.length >= 2) {
|
|
11660
|
+
const result = [];
|
|
11661
|
+
let acc = start;
|
|
11662
|
+
for (let i = 0; i < syllables.length - 1; i += 1) {
|
|
11663
|
+
acc += syllables[i].length;
|
|
11664
|
+
result.push(acc);
|
|
11665
|
+
}
|
|
11666
|
+
points = result;
|
|
11667
|
+
}
|
|
11668
|
+
}
|
|
11669
|
+
pointsCache.set(cacheKey, points);
|
|
11670
|
+
return points;
|
|
11671
|
+
}
|
|
11486
11672
|
const DEFAULT_CONTENT_WIDTH = 624;
|
|
11487
11673
|
const MIN_CONTENT_WIDTH = 120;
|
|
11674
|
+
const PT_TO_PX = 96 / 72;
|
|
11488
11675
|
function intersectsVertically(aTop, aBottom, bTop, bBottom) {
|
|
11489
11676
|
return aTop < bBottom && aBottom > bTop;
|
|
11490
11677
|
}
|
|
@@ -11659,6 +11846,7 @@ function measureParagraphMinContentWidthPx(paragraph, styles) {
|
|
|
11659
11846
|
function composeMeasuredParagraphLines(options) {
|
|
11660
11847
|
const { paragraph, fragments, styles, contentWidth, defaultTabStop } = options;
|
|
11661
11848
|
const exclusions = options.exclusions ?? [];
|
|
11849
|
+
const hyphenation = options.hyphenation;
|
|
11662
11850
|
const measuredChars = buildMeasuredChars(paragraph, fragments, styles);
|
|
11663
11851
|
const tokens = tokenizeMeasuredChars(measuredChars);
|
|
11664
11852
|
const charByOffset = new Map(
|
|
@@ -11757,7 +11945,8 @@ function composeMeasuredParagraphLines(options) {
|
|
|
11757
11945
|
lineAvailableWidth = segment.width;
|
|
11758
11946
|
lineSlotLefts = [lineStartInset];
|
|
11759
11947
|
};
|
|
11760
|
-
|
|
11948
|
+
let consecutiveHyphens = 0;
|
|
11949
|
+
const flushLine = (hardBreak = false, trailingHyphenWidth) => {
|
|
11761
11950
|
const effectiveHeight = Math.max(lineHeight, lineMaxObjectHeight);
|
|
11762
11951
|
commitLine(
|
|
11763
11952
|
lines,
|
|
@@ -11769,6 +11958,14 @@ function composeMeasuredParagraphLines(options) {
|
|
|
11769
11958
|
effectiveHeight,
|
|
11770
11959
|
lineAvailableWidth
|
|
11771
11960
|
);
|
|
11961
|
+
if (trailingHyphenWidth !== void 0) {
|
|
11962
|
+
const committed = lines[lines.length - 1];
|
|
11963
|
+
committed.trailingHyphen = true;
|
|
11964
|
+
committed.trailingHyphenWidth = trailingHyphenWidth;
|
|
11965
|
+
consecutiveHyphens += 1;
|
|
11966
|
+
} else {
|
|
11967
|
+
consecutiveHyphens = 0;
|
|
11968
|
+
}
|
|
11772
11969
|
lineHardBreaks.push(hardBreak);
|
|
11773
11970
|
bandHeight = Math.max(bandHeight, effectiveHeight);
|
|
11774
11971
|
};
|
|
@@ -11819,33 +12016,10 @@ function composeMeasuredParagraphLines(options) {
|
|
|
11819
12016
|
lineSlotLefts.push(lineStartInset + lineWidth);
|
|
11820
12017
|
}
|
|
11821
12018
|
};
|
|
11822
|
-
|
|
11823
|
-
if (token.kind === "newline") {
|
|
11824
|
-
flushLine(true);
|
|
11825
|
-
resetLine(token.chars[0].offset + 1, false);
|
|
11826
|
-
continue;
|
|
11827
|
-
}
|
|
11828
|
-
const tokenWidth = measureTokenAt(token);
|
|
11829
|
-
const fitsCurrentLine = lineWidth + tokenWidth <= lineAvailableWidth;
|
|
11830
|
-
const isEmptyLine = lineStartOffset === lineEndOffset;
|
|
11831
|
-
if (token.kind === "whitespace") {
|
|
11832
|
-
if (fitsCurrentLine || isEmptyLine) {
|
|
11833
|
-
appendChars(token.chars);
|
|
11834
|
-
} else {
|
|
11835
|
-
flushLine();
|
|
11836
|
-
resetLine(token.chars[token.chars.length - 1].offset + 1);
|
|
11837
|
-
}
|
|
11838
|
-
continue;
|
|
11839
|
-
}
|
|
11840
|
-
if (fitsCurrentLine) {
|
|
11841
|
-
appendChars(token.chars);
|
|
11842
|
-
continue;
|
|
11843
|
-
}
|
|
11844
|
-
flushLine();
|
|
11845
|
-
resetLine(token.chars[0].offset);
|
|
12019
|
+
const layoutByChars = (chars2) => {
|
|
11846
12020
|
let currentChunk = [];
|
|
11847
12021
|
let currentChunkWidth = 0;
|
|
11848
|
-
for (const char of
|
|
12022
|
+
for (const char of chars2) {
|
|
11849
12023
|
const charWidth = char.char === " " ? resolveTabAdvancePx(
|
|
11850
12024
|
paragraph,
|
|
11851
12025
|
styles,
|
|
@@ -11868,6 +12042,102 @@ function composeMeasuredParagraphLines(options) {
|
|
|
11868
12042
|
if (currentChunk.length > 0) {
|
|
11869
12043
|
appendChars(currentChunk);
|
|
11870
12044
|
}
|
|
12045
|
+
};
|
|
12046
|
+
const hyphenLimit = (hyphenation == null ? void 0 : hyphenation.consecutiveLimit) ?? 0;
|
|
12047
|
+
const canHyphenateMore = () => hyphenLimit <= 0 || consecutiveHyphens < hyphenLimit;
|
|
12048
|
+
const tryHyphenate = (chars2, remainingWidth) => {
|
|
12049
|
+
var _a, _b, _c, _d;
|
|
12050
|
+
if (!(hyphenation == null ? void 0 : hyphenation.enabled) || !canHyphenateMore()) return null;
|
|
12051
|
+
const word = chars2.map((char) => char.char).join("");
|
|
12052
|
+
if (!shouldHyphenateWord(word, {
|
|
12053
|
+
doNotHyphenateCaps: hyphenation.doNotHyphenateCaps
|
|
12054
|
+
})) {
|
|
12055
|
+
return null;
|
|
12056
|
+
}
|
|
12057
|
+
const langTag = (_c = (_b = (_a = chars2.find((char) => {
|
|
12058
|
+
var _a2, _b2;
|
|
12059
|
+
return (_b2 = (_a2 = char.style) == null ? void 0 : _a2.language) == null ? void 0 : _b2.value;
|
|
12060
|
+
})) == null ? void 0 : _a.style) == null ? void 0 : _b.language) == null ? void 0 : _c.value;
|
|
12061
|
+
const points = findHyphenationPoints(
|
|
12062
|
+
word,
|
|
12063
|
+
resolveHyphenationLanguage(langTag ?? void 0)
|
|
12064
|
+
);
|
|
12065
|
+
if (points.length === 0) return null;
|
|
12066
|
+
const hyphenWidth = measureCharacterWidth(
|
|
12067
|
+
"-",
|
|
12068
|
+
(_d = chars2[0]) == null ? void 0 : _d.style,
|
|
12069
|
+
fallbackFontSize
|
|
12070
|
+
);
|
|
12071
|
+
let prefixWidth = 0;
|
|
12072
|
+
let scanned = 0;
|
|
12073
|
+
let chosen = -1;
|
|
12074
|
+
for (const point of points) {
|
|
12075
|
+
while (scanned < point) {
|
|
12076
|
+
prefixWidth += chars2[scanned].width;
|
|
12077
|
+
scanned += 1;
|
|
12078
|
+
}
|
|
12079
|
+
if (prefixWidth + hyphenWidth <= remainingWidth) {
|
|
12080
|
+
chosen = point;
|
|
12081
|
+
} else {
|
|
12082
|
+
break;
|
|
12083
|
+
}
|
|
12084
|
+
}
|
|
12085
|
+
return chosen > 0 ? { breakIndex: chosen, hyphenWidth } : null;
|
|
12086
|
+
};
|
|
12087
|
+
const layoutFreshWord = (chars2) => {
|
|
12088
|
+
if (measureCharsAt(chars2, 0) <= lineAvailableWidth) {
|
|
12089
|
+
appendChars(chars2);
|
|
12090
|
+
return;
|
|
12091
|
+
}
|
|
12092
|
+
const hy = tryHyphenate(chars2, lineAvailableWidth);
|
|
12093
|
+
if (hy) {
|
|
12094
|
+
appendChars(chars2.slice(0, hy.breakIndex));
|
|
12095
|
+
flushLine(false, hy.hyphenWidth);
|
|
12096
|
+
resetLine(chars2[hy.breakIndex].offset);
|
|
12097
|
+
layoutFreshWord(chars2.slice(hy.breakIndex));
|
|
12098
|
+
return;
|
|
12099
|
+
}
|
|
12100
|
+
layoutByChars(chars2);
|
|
12101
|
+
};
|
|
12102
|
+
for (const token of tokens) {
|
|
12103
|
+
if (token.kind === "newline") {
|
|
12104
|
+
flushLine(true);
|
|
12105
|
+
resetLine(token.chars[0].offset + 1, false);
|
|
12106
|
+
continue;
|
|
12107
|
+
}
|
|
12108
|
+
const tokenWidth = measureTokenAt(token);
|
|
12109
|
+
const fitsCurrentLine = lineWidth + tokenWidth <= lineAvailableWidth;
|
|
12110
|
+
const isEmptyLine = lineStartOffset === lineEndOffset;
|
|
12111
|
+
if (token.kind === "whitespace") {
|
|
12112
|
+
if (fitsCurrentLine || isEmptyLine) {
|
|
12113
|
+
appendChars(token.chars);
|
|
12114
|
+
} else {
|
|
12115
|
+
flushLine();
|
|
12116
|
+
resetLine(token.chars[token.chars.length - 1].offset + 1);
|
|
12117
|
+
}
|
|
12118
|
+
continue;
|
|
12119
|
+
}
|
|
12120
|
+
if (fitsCurrentLine) {
|
|
12121
|
+
appendChars(token.chars);
|
|
12122
|
+
continue;
|
|
12123
|
+
}
|
|
12124
|
+
if (!isEmptyLine) {
|
|
12125
|
+
const remaining = lineAvailableWidth - lineWidth;
|
|
12126
|
+
const zonePx = ((hyphenation == null ? void 0 : hyphenation.zone) ?? 0) * PT_TO_PX;
|
|
12127
|
+
if (remaining > zonePx) {
|
|
12128
|
+
const hy = tryHyphenate(token.chars, remaining);
|
|
12129
|
+
if (hy) {
|
|
12130
|
+
appendChars(token.chars.slice(0, hy.breakIndex));
|
|
12131
|
+
flushLine(false, hy.hyphenWidth);
|
|
12132
|
+
resetLine(token.chars[hy.breakIndex].offset);
|
|
12133
|
+
layoutFreshWord(token.chars.slice(hy.breakIndex));
|
|
12134
|
+
continue;
|
|
12135
|
+
}
|
|
12136
|
+
}
|
|
12137
|
+
}
|
|
12138
|
+
flushLine();
|
|
12139
|
+
resetLine(token.chars[0].offset);
|
|
12140
|
+
layoutFreshWord(token.chars);
|
|
11871
12141
|
}
|
|
11872
12142
|
if (lines.length === 0 || lineStartOffset !== lineEndOffset || lineSlotLefts.length > 1) {
|
|
11873
12143
|
flushLine();
|
|
@@ -12295,6 +12565,12 @@ function resolveDropCapExclusion(options) {
|
|
|
12295
12565
|
};
|
|
12296
12566
|
}
|
|
12297
12567
|
const DEFAULT_FONT_SIZE$2 = 14.6667;
|
|
12568
|
+
let activeHyphenation;
|
|
12569
|
+
let activeHyphenationSignature = "";
|
|
12570
|
+
function setActiveHyphenation(options) {
|
|
12571
|
+
activeHyphenation = (options == null ? void 0 : options.enabled) ? options : void 0;
|
|
12572
|
+
activeHyphenationSignature = activeHyphenation ? `h:${activeHyphenation.zone ?? ""}:${activeHyphenation.consecutiveLimit ?? ""}:${activeHyphenation.doNotHyphenateCaps ? 1 : 0}` : "";
|
|
12573
|
+
}
|
|
12298
12574
|
function paragraphStyleComparableKey(style2) {
|
|
12299
12575
|
const {
|
|
12300
12576
|
spacingBefore: _spacingBefore,
|
|
@@ -12362,7 +12638,7 @@ function getParagraphFieldDependence(paragraph) {
|
|
|
12362
12638
|
}
|
|
12363
12639
|
function projectParagraphLayout(paragraph, pageIndex, totalPages, styles, contentWidth, measurer = domTextMeasurer, defaultTabStop) {
|
|
12364
12640
|
const { dependsOnPageIndex, dependsOnTotalPages } = getParagraphFieldDependence(paragraph);
|
|
12365
|
-
const cacheKey = `${dependsOnPageIndex ? pageIndex ?? "" : ""}:${dependsOnTotalPages ? totalPages ?? "" : ""}:${contentWidth ?? ""}:${defaultTabStop ?? ""}`;
|
|
12641
|
+
const cacheKey = `${dependsOnPageIndex ? pageIndex ?? "" : ""}:${dependsOnTotalPages ? totalPages ?? "" : ""}:${contentWidth ?? ""}:${defaultTabStop ?? ""}:${activeHyphenationSignature}`;
|
|
12366
12642
|
let cacheForParagraph = paragraphLayoutCache.get(paragraph);
|
|
12367
12643
|
if (cacheForParagraph) {
|
|
12368
12644
|
const cached = cacheForParagraph.get(cacheKey);
|
|
@@ -12419,7 +12695,8 @@ function projectParagraphLayout(paragraph, pageIndex, totalPages, styles, conten
|
|
|
12419
12695
|
fragments,
|
|
12420
12696
|
styles,
|
|
12421
12697
|
contentWidth,
|
|
12422
|
-
defaultTabStop
|
|
12698
|
+
defaultTabStop,
|
|
12699
|
+
hyphenation: activeHyphenation
|
|
12423
12700
|
}).map((line) => ({
|
|
12424
12701
|
...line,
|
|
12425
12702
|
height: line.height || lineHeight,
|
|
@@ -12979,25 +13256,12 @@ function estimateTableRowHeight(row, styles, measurer, defaultTabStop, contentWi
|
|
|
12979
13256
|
let blockHeights = 0;
|
|
12980
13257
|
for (let blockIndex = 0; blockIndex < cell.blocks.length; blockIndex += 1) {
|
|
12981
13258
|
const paragraph = cell.blocks[blockIndex];
|
|
12982
|
-
const previousParagraph = cell.blocks[blockIndex - 1];
|
|
12983
|
-
const nextParagraph = cell.blocks[blockIndex + 1];
|
|
12984
13259
|
blockHeights += estimateParagraphBlockHeight(
|
|
12985
13260
|
paragraph,
|
|
12986
13261
|
styles,
|
|
12987
13262
|
paragraphContentWidth,
|
|
12988
13263
|
measurer,
|
|
12989
|
-
{
|
|
12990
|
-
allowSpacingBefore: !shouldCollapseContextualSpacing(
|
|
12991
|
-
previousParagraph,
|
|
12992
|
-
paragraph,
|
|
12993
|
-
styles
|
|
12994
|
-
),
|
|
12995
|
-
allowSpacingAfter: !shouldCollapseContextualSpacing(
|
|
12996
|
-
paragraph,
|
|
12997
|
-
nextParagraph,
|
|
12998
|
-
styles
|
|
12999
|
-
)
|
|
13000
|
-
},
|
|
13264
|
+
{},
|
|
13001
13265
|
defaultTabStop
|
|
13002
13266
|
);
|
|
13003
13267
|
}
|
|
@@ -13195,7 +13459,12 @@ function projectHeaderFooterBlocks(blocks, context2 = {}) {
|
|
|
13195
13459
|
const MAX_COLUMN_BALANCE_ITERATIONS = 100;
|
|
13196
13460
|
function projectColumnedBlocksLayout(context2, count, runTrackLayout) {
|
|
13197
13461
|
var _a, _b;
|
|
13198
|
-
const {
|
|
13462
|
+
const {
|
|
13463
|
+
pageSettings,
|
|
13464
|
+
maxPageHeight,
|
|
13465
|
+
pageOffset = 0,
|
|
13466
|
+
existingPages = []
|
|
13467
|
+
} = context2;
|
|
13199
13468
|
const colWidth = ((_a = getPageColumnRects(pageSettings)[0]) == null ? void 0 : _a.width) ?? getPageContentWidth(pageSettings);
|
|
13200
13469
|
const runTracks = (blocks, trackHeight) => runTrackLayout({
|
|
13201
13470
|
...context2,
|
|
@@ -14293,19 +14562,16 @@ function resolveEffectiveVerticalMetrics(pageSettings, headerBlocks, footerBlock
|
|
|
14293
14562
|
};
|
|
14294
14563
|
}
|
|
14295
14564
|
function createHeaderFooterVariantProjector(context2) {
|
|
14296
|
-
return (blocks, contentWidth, pageIndex, totalPageCount) => blocks ? context2.projectHeaderFooterBlocks(
|
|
14297
|
-
|
|
14298
|
-
|
|
14299
|
-
|
|
14300
|
-
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14306
|
-
defaultTabStop: context2.defaultTabStop
|
|
14307
|
-
}
|
|
14308
|
-
) : void 0;
|
|
14565
|
+
return (blocks, contentWidth, pageIndex, totalPageCount) => blocks ? context2.projectHeaderFooterBlocks(blocks, {
|
|
14566
|
+
pageIndex,
|
|
14567
|
+
totalPages: totalPageCount,
|
|
14568
|
+
measuredHeights: context2.measuredHeights,
|
|
14569
|
+
measuredParagraphLayouts: context2.measuredParagraphLayouts,
|
|
14570
|
+
styles: context2.documentStyles,
|
|
14571
|
+
contentWidth,
|
|
14572
|
+
measurer: context2.measurer,
|
|
14573
|
+
defaultTabStop: context2.defaultTabStop
|
|
14574
|
+
}) : void 0;
|
|
14309
14575
|
}
|
|
14310
14576
|
function projectTallestHeaderVariant(section, contentWidth, projectHeaderFooterVariant) {
|
|
14311
14577
|
const variants = [
|
|
@@ -14863,8 +15129,16 @@ function documentContainsNumPagesField(document2) {
|
|
|
14863
15129
|
);
|
|
14864
15130
|
}
|
|
14865
15131
|
function projectDocumentLayout(document2, maxPageHeightOverride, measuredHeights, measuredParagraphLayouts, options = {}) {
|
|
14866
|
-
var _a;
|
|
15132
|
+
var _a, _b;
|
|
14867
15133
|
const measurer = options.measurer ?? domTextMeasurer;
|
|
15134
|
+
setActiveHyphenation(
|
|
15135
|
+
((_a = document2.settings) == null ? void 0 : _a.autoHyphenation) ? {
|
|
15136
|
+
enabled: true,
|
|
15137
|
+
zone: document2.settings.hyphenationZone,
|
|
15138
|
+
consecutiveLimit: document2.settings.consecutiveHyphenLimit,
|
|
15139
|
+
doNotHyphenateCaps: document2.settings.doNotHyphenateCaps
|
|
15140
|
+
} : void 0
|
|
15141
|
+
);
|
|
14868
15142
|
const layoutDocument = injectEndnotesIntoDocument(document2);
|
|
14869
15143
|
const sections = getDocumentSections(layoutDocument);
|
|
14870
15144
|
const needsTotalPages = documentContainsNumPagesField(layoutDocument);
|
|
@@ -14875,7 +15149,7 @@ function projectDocumentLayout(document2, maxPageHeightOverride, measuredHeights
|
|
|
14875
15149
|
measuredHeights,
|
|
14876
15150
|
measuredParagraphLayouts,
|
|
14877
15151
|
measurer,
|
|
14878
|
-
defaultTabStop: (
|
|
15152
|
+
defaultTabStop: (_b = document2.settings) == null ? void 0 : _b.defaultTabStop,
|
|
14879
15153
|
needsTotalPages,
|
|
14880
15154
|
projectBlocks: projectBlocksLayout,
|
|
14881
15155
|
projectHeaderFooterBlocks
|
|
@@ -14884,6 +15158,7 @@ function projectDocumentLayout(document2, maxPageHeightOverride, measuredHeights
|
|
|
14884
15158
|
let pages = projectedSections.pages;
|
|
14885
15159
|
const totalPages = projectedSections.totalPages;
|
|
14886
15160
|
if (!document2.footnotes || Object.keys(document2.footnotes.items).length === 0) {
|
|
15161
|
+
setActiveHyphenation(void 0);
|
|
14887
15162
|
return { pages };
|
|
14888
15163
|
}
|
|
14889
15164
|
const footnoteContext = {
|
|
@@ -14905,9 +15180,11 @@ function projectDocumentLayout(document2, maxPageHeightOverride, measuredHeights
|
|
|
14905
15180
|
pages = projectDocumentSections(sectionContext, reservations).pages;
|
|
14906
15181
|
reservations = buildFootnoteReservations(pages, footnoteContext);
|
|
14907
15182
|
}
|
|
14908
|
-
|
|
15183
|
+
const result = {
|
|
14909
15184
|
pages: applyFootnotesToPages(pages, footnoteContext)
|
|
14910
15185
|
};
|
|
15186
|
+
setActiveHyphenation(void 0);
|
|
15187
|
+
return result;
|
|
14911
15188
|
}
|
|
14912
15189
|
function quoteFontFamily(family) {
|
|
14913
15190
|
return /[\s,]/.test(family) ? `"${family.replace(/"/g, '\\"')}"` : family;
|
|
@@ -15167,6 +15444,35 @@ function resolveTableIndentLeft(table) {
|
|
|
15167
15444
|
const raw = (_a = table.style) == null ? void 0 : _a.indentLeft;
|
|
15168
15445
|
return typeof raw === "number" && Number.isFinite(raw) ? toPx(raw) : 0;
|
|
15169
15446
|
}
|
|
15447
|
+
function resolveTableCellSpacingPx(table) {
|
|
15448
|
+
var _a;
|
|
15449
|
+
const px = parseDimensionToPx((_a = table.style) == null ? void 0 : _a.cellSpacing);
|
|
15450
|
+
return px !== null && px > 0 ? px : 0;
|
|
15451
|
+
}
|
|
15452
|
+
function lineNaturalWidth(line) {
|
|
15453
|
+
if (line.slots.length < 2) return 0;
|
|
15454
|
+
return line.slots[line.slots.length - 1].left - line.slots[0].left;
|
|
15455
|
+
}
|
|
15456
|
+
function applyFitTextScale(paragraph, scalePercent) {
|
|
15457
|
+
return {
|
|
15458
|
+
...paragraph,
|
|
15459
|
+
runs: paragraph.runs.map((run) => {
|
|
15460
|
+
var _a;
|
|
15461
|
+
const existing = (_a = run.styles) == null ? void 0 : _a.characterScale;
|
|
15462
|
+
const combined = typeof existing === "number" && existing > 0 ? existing * scalePercent / 100 : scalePercent;
|
|
15463
|
+
return { ...run, styles: { ...run.styles, characterScale: combined } };
|
|
15464
|
+
})
|
|
15465
|
+
};
|
|
15466
|
+
}
|
|
15467
|
+
function resolveTableLeftOffset(table, tableWidth, contentWidth) {
|
|
15468
|
+
var _a;
|
|
15469
|
+
const align = (_a = table.style) == null ? void 0 : _a.align;
|
|
15470
|
+
if (align === "center" || align === "right") {
|
|
15471
|
+
const slack = Math.max(0, contentWidth - tableWidth);
|
|
15472
|
+
return align === "center" ? slack / 2 : slack;
|
|
15473
|
+
}
|
|
15474
|
+
return resolveTableIndentLeft(table);
|
|
15475
|
+
}
|
|
15170
15476
|
function resolveDefaultBorder() {
|
|
15171
15477
|
return { width: 1, color: "#6f6f6f", type: "solid" };
|
|
15172
15478
|
}
|
|
@@ -15230,7 +15536,7 @@ function resolveVerticalContentOffset(cell, contentHeightPx, contentNaturalHeigh
|
|
|
15230
15536
|
return 0;
|
|
15231
15537
|
}
|
|
15232
15538
|
function buildCanvasTableLayout(options) {
|
|
15233
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
15539
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J;
|
|
15234
15540
|
const {
|
|
15235
15541
|
table: sourceTable,
|
|
15236
15542
|
state,
|
|
@@ -15245,7 +15551,8 @@ function buildCanvasTableLayout(options) {
|
|
|
15245
15551
|
style: resolveEffectiveTableStyle(sourceTable, state.document.styles)
|
|
15246
15552
|
};
|
|
15247
15553
|
const tableWidth = resolveCanvasTableWidth(table, contentWidth);
|
|
15248
|
-
const tableLeft = originX +
|
|
15554
|
+
const tableLeft = originX + resolveTableLeftOffset(table, tableWidth, contentWidth);
|
|
15555
|
+
const cellSpacingPx = resolveTableCellSpacingPx(table);
|
|
15249
15556
|
const tableEntries = buildTableCellLayout(table);
|
|
15250
15557
|
const unsupported = [];
|
|
15251
15558
|
const visualColumnCount = Math.max(
|
|
@@ -15254,13 +15561,17 @@ function buildCanvasTableLayout(options) {
|
|
|
15254
15561
|
(entry) => entry.visualColumnIndex + Math.max(1, entry.colSpan)
|
|
15255
15562
|
)
|
|
15256
15563
|
);
|
|
15564
|
+
const columnsWidthBudget = Math.max(
|
|
15565
|
+
visualColumnCount,
|
|
15566
|
+
tableWidth - (visualColumnCount + 1) * cellSpacingPx
|
|
15567
|
+
);
|
|
15257
15568
|
let resolvedColumnWidths = [];
|
|
15258
15569
|
if (table.gridCols && table.gridCols.length >= visualColumnCount) {
|
|
15259
15570
|
const gridTotalWidth = table.gridCols.reduce((a, b) => a + b, 0);
|
|
15260
|
-
const scale = gridTotalWidth > 0 ?
|
|
15571
|
+
const scale = gridTotalWidth > 0 ? columnsWidthBudget / gridTotalWidth : 1;
|
|
15261
15572
|
resolvedColumnWidths = table.gridCols.map((w) => w * scale);
|
|
15262
15573
|
} else {
|
|
15263
|
-
const baseCellWidth =
|
|
15574
|
+
const baseCellWidth = columnsWidthBudget / visualColumnCount;
|
|
15264
15575
|
resolvedColumnWidths = Array(visualColumnCount).fill(baseCellWidth);
|
|
15265
15576
|
for (const entry of tableEntries) {
|
|
15266
15577
|
if (Math.max(1, entry.colSpan) !== 1) continue;
|
|
@@ -15283,9 +15594,9 @@ function buildCanvasTableLayout(options) {
|
|
|
15283
15594
|
}
|
|
15284
15595
|
}
|
|
15285
15596
|
}
|
|
15286
|
-
const columnOffsets = [
|
|
15597
|
+
const columnOffsets = [cellSpacingPx];
|
|
15287
15598
|
for (let i = 0; i < resolvedColumnWidths.length; i++) {
|
|
15288
|
-
columnOffsets[i + 1] = columnOffsets[i] + resolvedColumnWidths[i];
|
|
15599
|
+
columnOffsets[i + 1] = columnOffsets[i] + resolvedColumnWidths[i] + cellSpacingPx;
|
|
15289
15600
|
}
|
|
15290
15601
|
const cellEntriesByKey = new Map(
|
|
15291
15602
|
tableEntries.map(
|
|
@@ -15311,8 +15622,14 @@ function buildCanvasTableLayout(options) {
|
|
|
15311
15622
|
if ((_f = effectiveRowStyles[rowIndex]) == null ? void 0 : _f.hidden) {
|
|
15312
15623
|
continue;
|
|
15313
15624
|
}
|
|
15625
|
+
if (((_h = (_g = effectiveRowStyles[rowIndex]) == null ? void 0 : _g.revision) == null ? void 0 : _h.type) === "delete") {
|
|
15626
|
+
continue;
|
|
15627
|
+
}
|
|
15314
15628
|
for (let cellIndex = 0; cellIndex < row.cells.length; cellIndex += 1) {
|
|
15315
15629
|
const sourceCell = row.cells[cellIndex];
|
|
15630
|
+
if (((_j = (_i = sourceCell.style) == null ? void 0 : _i.revision) == null ? void 0 : _j.type) === "delete") {
|
|
15631
|
+
continue;
|
|
15632
|
+
}
|
|
15316
15633
|
const entry = cellEntriesByKey.get(`${rowIndex}:${cellIndex}`);
|
|
15317
15634
|
if (!entry) {
|
|
15318
15635
|
continue;
|
|
@@ -15359,22 +15676,22 @@ function buildCanvasTableLayout(options) {
|
|
|
15359
15676
|
const colSpan = Math.max(1, entry.colSpan);
|
|
15360
15677
|
const width = Math.max(
|
|
15361
15678
|
1,
|
|
15362
|
-
(columnOffsets[visualCol + colSpan] ?? tableWidth) - (columnOffsets[visualCol] ?? 0)
|
|
15679
|
+
(columnOffsets[visualCol + colSpan] ?? tableWidth) - (columnOffsets[visualCol] ?? 0) - cellSpacingPx
|
|
15363
15680
|
);
|
|
15364
15681
|
const padding = resolveCellPadding(cell);
|
|
15365
|
-
const logicalLeft = ((
|
|
15366
|
-
const logicalRight = ((
|
|
15682
|
+
const logicalLeft = ((_k = table.style) == null ? void 0 : _k.bidiVisual) ? (_l = cell.style) == null ? void 0 : _l.borderEnd : (_m = cell.style) == null ? void 0 : _m.borderStart;
|
|
15683
|
+
const logicalRight = ((_n = table.style) == null ? void 0 : _n.bidiVisual) ? (_o = cell.style) == null ? void 0 : _o.borderStart : (_p = cell.style) == null ? void 0 : _p.borderEnd;
|
|
15367
15684
|
const borders = {
|
|
15368
|
-
top: resolveBorder((
|
|
15369
|
-
right: resolveBorder(((
|
|
15370
|
-
bottom: resolveBorder((
|
|
15371
|
-
left: resolveBorder(((
|
|
15372
|
-
...((
|
|
15685
|
+
top: resolveBorder((_q = cell.style) == null ? void 0 : _q.borderTop),
|
|
15686
|
+
right: resolveBorder(((_r = cell.style) == null ? void 0 : _r.borderRight) ?? logicalRight),
|
|
15687
|
+
bottom: resolveBorder((_s = cell.style) == null ? void 0 : _s.borderBottom),
|
|
15688
|
+
left: resolveBorder(((_t = cell.style) == null ? void 0 : _t.borderLeft) ?? logicalLeft),
|
|
15689
|
+
...((_u = cell.style) == null ? void 0 : _u.borderTopLeftToBottomRight) ? {
|
|
15373
15690
|
topLeftToBottomRight: resolveBorder(
|
|
15374
15691
|
cell.style.borderTopLeftToBottomRight
|
|
15375
15692
|
)
|
|
15376
15693
|
} : {},
|
|
15377
|
-
...((
|
|
15694
|
+
...((_v = cell.style) == null ? void 0 : _v.borderTopRightToBottomLeft) ? {
|
|
15378
15695
|
topRightToBottomLeft: resolveBorder(
|
|
15379
15696
|
cell.style.borderTopRightToBottomLeft
|
|
15380
15697
|
)
|
|
@@ -15387,15 +15704,35 @@ function buildCanvasTableLayout(options) {
|
|
|
15387
15704
|
const verticalMode = resolveCellVerticalMode(cell);
|
|
15388
15705
|
const isRotated = verticalMode === "rotate-cw" || verticalMode === "rotate-ccw";
|
|
15389
15706
|
const isStacked = verticalMode === "stack";
|
|
15707
|
+
const isFitText = !!((_w = cell.style) == null ? void 0 : _w.fitText) && !isRotated && !isStacked;
|
|
15390
15708
|
const explicitRowHeightPx = parseDimensionToPx(effectiveRow.height);
|
|
15391
|
-
const wrapWidth = isRotated || ((
|
|
15709
|
+
const wrapWidth = isRotated || ((_x = cell.style) == null ? void 0 : _x.noWrap) ? isRotated && explicitRowHeightPx !== null && explicitRowHeightPx > 0 ? Math.max(
|
|
15392
15710
|
MIN_TABLE_CELL_CONTENT_WIDTH_PX,
|
|
15393
15711
|
explicitRowHeightPx - borders.top.width - borders.bottom.width - padding.top - padding.bottom
|
|
15394
15712
|
) : NO_WRAP_WIDTH_PX : contentWidthPx;
|
|
15395
15713
|
const projectedParagraphs = [];
|
|
15396
15714
|
let contentNaturalHeightPx = 0;
|
|
15397
15715
|
for (const original of cell.blocks) {
|
|
15398
|
-
|
|
15716
|
+
let paragraph = fitImagesToCellWidth(original, contentWidthPx);
|
|
15717
|
+
if (isFitText) {
|
|
15718
|
+
const noWrapProjected = projectParagraphLayout(
|
|
15719
|
+
paragraph,
|
|
15720
|
+
pageIndex,
|
|
15721
|
+
void 0,
|
|
15722
|
+
state.document.styles,
|
|
15723
|
+
NO_WRAP_WIDTH_PX,
|
|
15724
|
+
void 0,
|
|
15725
|
+
(_y = state.document.settings) == null ? void 0 : _y.defaultTabStop
|
|
15726
|
+
);
|
|
15727
|
+
const naturalWidth = noWrapProjected.lines.length > 0 ? lineNaturalWidth(noWrapProjected.lines[0]) : 0;
|
|
15728
|
+
if (naturalWidth > 0 && contentWidthPx > 0) {
|
|
15729
|
+
const scalePercent = Math.max(
|
|
15730
|
+
1,
|
|
15731
|
+
Math.min(600, contentWidthPx / naturalWidth * 100)
|
|
15732
|
+
);
|
|
15733
|
+
paragraph = applyFitTextScale(paragraph, scalePercent);
|
|
15734
|
+
}
|
|
15735
|
+
}
|
|
15399
15736
|
const paragraphStyle = resolveEffectiveParagraphStyle(
|
|
15400
15737
|
paragraph.style,
|
|
15401
15738
|
state.document.styles
|
|
@@ -15412,7 +15749,7 @@ function buildCanvasTableLayout(options) {
|
|
|
15412
15749
|
spacingAfter
|
|
15413
15750
|
});
|
|
15414
15751
|
const hasExplicitRowHeight = explicitRowHeightPx !== null && explicitRowHeightPx > 0;
|
|
15415
|
-
const paragraphStyleSize = ((
|
|
15752
|
+
const paragraphStyleSize = ((_A = (_z = paragraph.runs[0]) == null ? void 0 : _z.styles) == null ? void 0 : _A.fontSize) ?? 14.6667;
|
|
15416
15753
|
contentNaturalHeightPx = Math.max(
|
|
15417
15754
|
contentNaturalHeightPx,
|
|
15418
15755
|
hasExplicitRowHeight ? paragraphStyleSize * 1.25 : stackLength
|
|
@@ -15426,23 +15763,38 @@ function buildCanvasTableLayout(options) {
|
|
|
15426
15763
|
state.document.styles,
|
|
15427
15764
|
wrapWidth,
|
|
15428
15765
|
void 0,
|
|
15429
|
-
(
|
|
15766
|
+
(_B = state.document.settings) == null ? void 0 : _B.defaultTabStop
|
|
15430
15767
|
);
|
|
15431
15768
|
const linesBottom = projected.lines.length > 0 ? Math.max(...projected.lines.map((line) => line.top + line.height)) : 1;
|
|
15432
15769
|
let effectiveSpacingBefore = spacingBefore;
|
|
15433
15770
|
if (!isRotated && projectedParagraphs.length > 0) {
|
|
15434
15771
|
const previous = projectedParagraphs[projectedParagraphs.length - 1];
|
|
15435
|
-
|
|
15436
|
-
|
|
15437
|
-
|
|
15438
|
-
|
|
15439
|
-
|
|
15440
|
-
|
|
15441
|
-
|
|
15442
|
-
|
|
15443
|
-
|
|
15444
|
-
|
|
15445
|
-
|
|
15772
|
+
if (((_C = state.document.settings) == null ? void 0 : _C.allowSpaceOfSameStyleInTable) && shouldCollapseContextualSpacing(
|
|
15773
|
+
previous.paragraph,
|
|
15774
|
+
paragraph,
|
|
15775
|
+
state.document.styles
|
|
15776
|
+
)) {
|
|
15777
|
+
const removedAfter = previous.spacingAfter;
|
|
15778
|
+
previous.height = Math.max(1, previous.height - removedAfter);
|
|
15779
|
+
previous.spacingAfter = 0;
|
|
15780
|
+
contentNaturalHeightPx = Math.max(
|
|
15781
|
+
0,
|
|
15782
|
+
contentNaturalHeightPx - removedAfter
|
|
15783
|
+
);
|
|
15784
|
+
effectiveSpacingBefore = 0;
|
|
15785
|
+
} else {
|
|
15786
|
+
const collapsed = Math.min(previous.spacingAfter, spacingBefore);
|
|
15787
|
+
if (collapsed > 0) {
|
|
15788
|
+
if (previous.spacingAfter >= spacingBefore) {
|
|
15789
|
+
effectiveSpacingBefore = 0;
|
|
15790
|
+
} else {
|
|
15791
|
+
const previousHeight = previous.height;
|
|
15792
|
+
previous.height = Math.max(1, previous.height - collapsed);
|
|
15793
|
+
contentNaturalHeightPx = Math.max(
|
|
15794
|
+
0,
|
|
15795
|
+
contentNaturalHeightPx - (previousHeight - previous.height)
|
|
15796
|
+
);
|
|
15797
|
+
}
|
|
15446
15798
|
}
|
|
15447
15799
|
}
|
|
15448
15800
|
}
|
|
@@ -15474,6 +15826,16 @@ function buildCanvasTableLayout(options) {
|
|
|
15474
15826
|
contentNaturalHeightPx += paragraphHeight;
|
|
15475
15827
|
}
|
|
15476
15828
|
}
|
|
15829
|
+
if ((_D = cell.style) == null ? void 0 : _D.hideMark) {
|
|
15830
|
+
const allEmpty = cell.blocks.every(
|
|
15831
|
+
(para) => para.runs.every(
|
|
15832
|
+
(run) => (run.kind === "text" || run.kind === void 0) && (!run.text || run.text.length === 0)
|
|
15833
|
+
)
|
|
15834
|
+
);
|
|
15835
|
+
if (allEmpty) {
|
|
15836
|
+
contentNaturalHeightPx = 0;
|
|
15837
|
+
}
|
|
15838
|
+
}
|
|
15477
15839
|
prepared.push({
|
|
15478
15840
|
rowIndex,
|
|
15479
15841
|
cellIndex,
|
|
@@ -15493,9 +15855,10 @@ function buildCanvasTableLayout(options) {
|
|
|
15493
15855
|
}
|
|
15494
15856
|
const rowCount = Math.max(1, table.rows.length);
|
|
15495
15857
|
const explicitRowHeights = table.rows.map((row) => {
|
|
15858
|
+
var _a2;
|
|
15496
15859
|
const rowIndex = table.rows.indexOf(row);
|
|
15497
15860
|
const effective = effectiveRowStyles[rowIndex];
|
|
15498
|
-
if (effective == null ? void 0 : effective.hidden) {
|
|
15861
|
+
if ((effective == null ? void 0 : effective.hidden) || ((_a2 = effective == null ? void 0 : effective.revision) == null ? void 0 : _a2.type) === "delete") {
|
|
15499
15862
|
return 0;
|
|
15500
15863
|
}
|
|
15501
15864
|
const explicit = parseDimensionToPx(effective == null ? void 0 : effective.height);
|
|
@@ -15504,7 +15867,7 @@ function buildCanvasTableLayout(options) {
|
|
|
15504
15867
|
const fallbackPerRow = estimatedHeight > 0 ? estimatedHeight / rowCount : DEFAULT_TABLE_ROW_HEIGHT;
|
|
15505
15868
|
const rowHeights = [];
|
|
15506
15869
|
for (let rowIndex = 0; rowIndex < table.rows.length; rowIndex += 1) {
|
|
15507
|
-
if ((
|
|
15870
|
+
if (((_E = effectiveRowStyles[rowIndex]) == null ? void 0 : _E.hidden) || ((_G = (_F = effectiveRowStyles[rowIndex]) == null ? void 0 : _F.revision) == null ? void 0 : _G.type) === "delete") {
|
|
15508
15871
|
rowHeights[rowIndex] = 0;
|
|
15509
15872
|
continue;
|
|
15510
15873
|
}
|
|
@@ -15520,10 +15883,10 @@ function buildCanvasTableLayout(options) {
|
|
|
15520
15883
|
rowHeights[rowIndex] = Math.max(baseFloor, measured, 1);
|
|
15521
15884
|
}
|
|
15522
15885
|
const rowOffsets = [];
|
|
15523
|
-
let cumulativeY =
|
|
15886
|
+
let cumulativeY = cellSpacingPx;
|
|
15524
15887
|
for (let rowIndex = 0; rowIndex < table.rows.length; rowIndex += 1) {
|
|
15525
15888
|
rowOffsets[rowIndex] = cumulativeY;
|
|
15526
|
-
cumulativeY += rowHeights[rowIndex] ?? DEFAULT_TABLE_ROW_HEIGHT;
|
|
15889
|
+
cumulativeY += (rowHeights[rowIndex] ?? DEFAULT_TABLE_ROW_HEIGHT) + cellSpacingPx;
|
|
15527
15890
|
}
|
|
15528
15891
|
const cells = [];
|
|
15529
15892
|
for (const cellEntry of prepared) {
|
|
@@ -15542,7 +15905,7 @@ function buildCanvasTableLayout(options) {
|
|
|
15542
15905
|
const top = originY + (rowOffsets[rowIndex] ?? 0);
|
|
15543
15906
|
const height = Math.max(
|
|
15544
15907
|
1,
|
|
15545
|
-
rowHeights.slice(rowIndex, rowIndex + rowSpan).reduce((sum, current) => sum + current, 0)
|
|
15908
|
+
rowHeights.slice(rowIndex, rowIndex + rowSpan).reduce((sum, current) => sum + current, 0) + (rowSpan - 1) * cellSpacingPx
|
|
15546
15909
|
);
|
|
15547
15910
|
const contentLeft = left + borders.left.width + padding.left;
|
|
15548
15911
|
const contentTop = top + borders.top.width + padding.top;
|
|
@@ -15588,13 +15951,13 @@ function buildCanvasTableLayout(options) {
|
|
|
15588
15951
|
contentTop,
|
|
15589
15952
|
contentWidth: contentWidthPx,
|
|
15590
15953
|
contentHeight: contentHeightPx,
|
|
15591
|
-
shading: (
|
|
15954
|
+
shading: (_H = cell.style) == null ? void 0 : _H.shading,
|
|
15592
15955
|
anchorPosition,
|
|
15593
15956
|
padding,
|
|
15594
15957
|
borders,
|
|
15595
15958
|
paragraphs,
|
|
15596
15959
|
verticalMode: cellEntry.verticalMode,
|
|
15597
|
-
revision: ((
|
|
15960
|
+
revision: ((_I = cell.style) == null ? void 0 : _I.revision) ?? (((_J = cell.style) == null ? void 0 : _J.propertyRevision) ? { ...cell.style.propertyRevision, type: "property" } : void 0)
|
|
15598
15961
|
});
|
|
15599
15962
|
}
|
|
15600
15963
|
return {
|
|
@@ -15602,7 +15965,8 @@ function buildCanvasTableLayout(options) {
|
|
|
15602
15965
|
left: tableLeft,
|
|
15603
15966
|
top: originY,
|
|
15604
15967
|
width: tableWidth,
|
|
15605
|
-
|
|
15968
|
+
// Total height includes the leading/trailing/inter-row cell-spacing gaps.
|
|
15969
|
+
height: rowHeights.reduce((sum, current) => sum + current, 0) + (rowHeights.length + 1) * cellSpacingPx,
|
|
15606
15970
|
rowHeights,
|
|
15607
15971
|
cells,
|
|
15608
15972
|
unsupported: Array.from(new Set(unsupported))
|
|
@@ -18567,7 +18931,9 @@ async function loadPreciseFontProgramsForFamilies(families) {
|
|
|
18567
18931
|
const buffer = await font.blob().then((blob) => blob.arrayBuffer());
|
|
18568
18932
|
const program = selectFaceProgram(new Uint8Array(buffer), font);
|
|
18569
18933
|
registerPreciseFont(family, bold, italic, program);
|
|
18570
|
-
registered.push(
|
|
18934
|
+
registered.push(
|
|
18935
|
+
`${family} ${bold ? "B" : ""}${italic ? "I" : ""}`.trim()
|
|
18936
|
+
);
|
|
18571
18937
|
changed = true;
|
|
18572
18938
|
} catch (error) {
|
|
18573
18939
|
failed.push(`${family} (${font.style ?? "?"}): ${String(error)}`);
|
|
@@ -20780,7 +21146,7 @@ function drawFloatingImagesForParagraph(options) {
|
|
|
20780
21146
|
}
|
|
20781
21147
|
}
|
|
20782
21148
|
function drawParagraph(ctx, paragraph, lines, state, originX, originY, onUpdate, painters, pageIndex = 0) {
|
|
20783
|
-
var _a, _b, _c;
|
|
21149
|
+
var _a, _b, _c, _d;
|
|
20784
21150
|
for (const line of lines) {
|
|
20785
21151
|
const slotByOffset = /* @__PURE__ */ new Map();
|
|
20786
21152
|
for (const slot of line.slots) {
|
|
@@ -20962,6 +21328,42 @@ function drawParagraph(ctx, paragraph, lines, state, originX, originY, onUpdate,
|
|
|
20962
21328
|
}
|
|
20963
21329
|
ctx.restore();
|
|
20964
21330
|
}
|
|
21331
|
+
if (line.trailingHyphen) {
|
|
21332
|
+
const lastFragment = [...line.fragments].reverse().find(
|
|
21333
|
+
(fragment) => fragment.text && !fragment.image && !fragment.textBox
|
|
21334
|
+
);
|
|
21335
|
+
const endSlot = slotByOffset.get(line.endOffset) ?? line.slots[line.slots.length - 1];
|
|
21336
|
+
if (lastFragment && endSlot) {
|
|
21337
|
+
const styles = resolveEffectiveTextStyleForParagraph(
|
|
21338
|
+
lastFragment.styles,
|
|
21339
|
+
(_d = paragraph.style) == null ? void 0 : _d.styleId,
|
|
21340
|
+
state.document.styles
|
|
21341
|
+
);
|
|
21342
|
+
if (!styles.hidden) {
|
|
21343
|
+
const fontSize = styles.fontSize ?? 14.6667;
|
|
21344
|
+
const fontFamily = resolveCanvasFontFamily(styles.fontFamily);
|
|
21345
|
+
const fontWeight = styles.bold ? "700" : "400";
|
|
21346
|
+
const fontStyle = styles.italic ? "italic" : "normal";
|
|
21347
|
+
const renderMetrics = resolveCanvasTextRenderMetrics(
|
|
21348
|
+
styles,
|
|
21349
|
+
fontSize
|
|
21350
|
+
);
|
|
21351
|
+
const scale = styles.characterScale && styles.characterScale > 0 ? styles.characterScale / 100 : 1;
|
|
21352
|
+
ctx.save();
|
|
21353
|
+
ctx.font = `${fontStyle} ${fontWeight} ${renderMetrics.fontSize}px ${fontFamily}`;
|
|
21354
|
+
ctx.fillStyle = styles.color ?? "#000000";
|
|
21355
|
+
drawStyledText(
|
|
21356
|
+
ctx,
|
|
21357
|
+
"-",
|
|
21358
|
+
originX + endSlot.left,
|
|
21359
|
+
baselineY + renderMetrics.baselineOffset,
|
|
21360
|
+
scale,
|
|
21361
|
+
styles
|
|
21362
|
+
);
|
|
21363
|
+
ctx.restore();
|
|
21364
|
+
}
|
|
21365
|
+
}
|
|
21366
|
+
}
|
|
20965
21367
|
const isLastLine = line.index === lines.length - 1;
|
|
20966
21368
|
if (state.showParagraphMarks && isLastLine) {
|
|
20967
21369
|
const lastSlot = line.slots[line.slots.length - 1];
|
|
@@ -26439,20 +26841,20 @@ function copy(src, dest) {
|
|
|
26439
26841
|
}
|
|
26440
26842
|
}
|
|
26441
26843
|
function _extends(Class, Super) {
|
|
26442
|
-
var
|
|
26443
|
-
if (!(
|
|
26844
|
+
var pt2 = Class.prototype;
|
|
26845
|
+
if (!(pt2 instanceof Super)) {
|
|
26444
26846
|
let t = function() {
|
|
26445
26847
|
};
|
|
26446
26848
|
t.prototype = Super.prototype;
|
|
26447
26849
|
t = new t();
|
|
26448
|
-
copy(
|
|
26449
|
-
Class.prototype =
|
|
26850
|
+
copy(pt2, t);
|
|
26851
|
+
Class.prototype = pt2 = t;
|
|
26450
26852
|
}
|
|
26451
|
-
if (
|
|
26853
|
+
if (pt2.constructor != Class) {
|
|
26452
26854
|
if (typeof Class != "function") {
|
|
26453
26855
|
console.error("unknown Class:" + Class);
|
|
26454
26856
|
}
|
|
26455
|
-
|
|
26857
|
+
pt2.constructor = Class;
|
|
26456
26858
|
}
|
|
26457
26859
|
}
|
|
26458
26860
|
var NodeType = {};
|
|
@@ -32064,6 +32466,7 @@ const WORD_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
|
|
|
32064
32466
|
const DRAWINGML_NS = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
32065
32467
|
const OFFICE_REL_NS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
32066
32468
|
const WORD14_NS = "http://schemas.microsoft.com/office/word/2010/wordml";
|
|
32469
|
+
const MARKUP_COMPAT_NS = "http://schemas.openxmlformats.org/markup-compatibility/2006";
|
|
32067
32470
|
function getChildrenByTagNameNS(element, namespace, localName) {
|
|
32068
32471
|
if (!element) {
|
|
32069
32472
|
return [];
|
|
@@ -32071,8 +32474,22 @@ function getChildrenByTagNameNS(element, namespace, localName) {
|
|
|
32071
32474
|
const result = [];
|
|
32072
32475
|
for (let index = 0; index < element.childNodes.length; index += 1) {
|
|
32073
32476
|
const node = element.childNodes[index];
|
|
32074
|
-
if ((node == null ? void 0 : node.nodeType)
|
|
32075
|
-
|
|
32477
|
+
if ((node == null ? void 0 : node.nodeType) !== node.ELEMENT_NODE) continue;
|
|
32478
|
+
const el = node;
|
|
32479
|
+
if (el.namespaceURI === MARKUP_COMPAT_NS && el.localName === "AlternateContent") {
|
|
32480
|
+
for (let j = 0; j < el.childNodes.length; j += 1) {
|
|
32481
|
+
const child = el.childNodes[j];
|
|
32482
|
+
if ((child == null ? void 0 : child.nodeType) !== child.ELEMENT_NODE) continue;
|
|
32483
|
+
const childEl = child;
|
|
32484
|
+
if (childEl.namespaceURI === MARKUP_COMPAT_NS && childEl.localName === "Fallback") {
|
|
32485
|
+
result.push(...getChildrenByTagNameNS(childEl, namespace, localName));
|
|
32486
|
+
break;
|
|
32487
|
+
}
|
|
32488
|
+
}
|
|
32489
|
+
continue;
|
|
32490
|
+
}
|
|
32491
|
+
if (el.namespaceURI === namespace && el.localName === localName) {
|
|
32492
|
+
result.push(el);
|
|
32076
32493
|
}
|
|
32077
32494
|
}
|
|
32078
32495
|
return result;
|
|
@@ -32108,6 +32525,19 @@ function findElementDeep(element, localName) {
|
|
|
32108
32525
|
}
|
|
32109
32526
|
return null;
|
|
32110
32527
|
}
|
|
32528
|
+
function collectExtAttributes(element) {
|
|
32529
|
+
const result = {};
|
|
32530
|
+
const attrs = element.attributes;
|
|
32531
|
+
for (let i = 0; i < attrs.length; i += 1) {
|
|
32532
|
+
const attr = attrs[i];
|
|
32533
|
+
if (!attr) continue;
|
|
32534
|
+
const ns = attr.namespaceURI;
|
|
32535
|
+
if (!ns || ns === WORD_NS) continue;
|
|
32536
|
+
if (attr.prefix === "xmlns" || attr.localName === "xmlns") continue;
|
|
32537
|
+
result[`${attr.prefix}:${attr.localName}`] = attr.value;
|
|
32538
|
+
}
|
|
32539
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
32540
|
+
}
|
|
32111
32541
|
function isWordTrue(value) {
|
|
32112
32542
|
return value === "1" || value === "true" || value === "on";
|
|
32113
32543
|
}
|
|
@@ -32459,6 +32889,47 @@ function parseSettings(xml) {
|
|
|
32459
32889
|
if (defaultTabStop !== void 0) {
|
|
32460
32890
|
settings.defaultTabStop = defaultTabStop;
|
|
32461
32891
|
}
|
|
32892
|
+
const autoHyphenation = getFirstChildByTagNameNS(
|
|
32893
|
+
doc.documentElement,
|
|
32894
|
+
WORD_NS,
|
|
32895
|
+
"autoHyphenation"
|
|
32896
|
+
);
|
|
32897
|
+
if (autoHyphenation) {
|
|
32898
|
+
const val = getAttributeValue(autoHyphenation, "val");
|
|
32899
|
+
settings.autoHyphenation = val !== "0" && val !== "false";
|
|
32900
|
+
}
|
|
32901
|
+
const doNotHyphenateCaps = getFirstChildByTagNameNS(
|
|
32902
|
+
doc.documentElement,
|
|
32903
|
+
WORD_NS,
|
|
32904
|
+
"doNotHyphenateCaps"
|
|
32905
|
+
);
|
|
32906
|
+
if (doNotHyphenateCaps) {
|
|
32907
|
+
const val = getAttributeValue(doNotHyphenateCaps, "val");
|
|
32908
|
+
settings.doNotHyphenateCaps = val !== "0" && val !== "false";
|
|
32909
|
+
}
|
|
32910
|
+
const consecutiveHyphenLimit = Number.parseInt(
|
|
32911
|
+
getAttributeValue(
|
|
32912
|
+
getFirstChildByTagNameNS(
|
|
32913
|
+
doc.documentElement,
|
|
32914
|
+
WORD_NS,
|
|
32915
|
+
"consecutiveHyphenLimit"
|
|
32916
|
+
),
|
|
32917
|
+
"val"
|
|
32918
|
+
) ?? "",
|
|
32919
|
+
10
|
|
32920
|
+
);
|
|
32921
|
+
if (Number.isFinite(consecutiveHyphenLimit) && consecutiveHyphenLimit >= 0) {
|
|
32922
|
+
settings.consecutiveHyphenLimit = consecutiveHyphenLimit;
|
|
32923
|
+
}
|
|
32924
|
+
const hyphenationZone = twipsToPoints(
|
|
32925
|
+
getAttributeValue(
|
|
32926
|
+
getFirstChildByTagNameNS(doc.documentElement, WORD_NS, "hyphenationZone"),
|
|
32927
|
+
"val"
|
|
32928
|
+
)
|
|
32929
|
+
);
|
|
32930
|
+
if (hyphenationZone !== void 0) {
|
|
32931
|
+
settings.hyphenationZone = hyphenationZone;
|
|
32932
|
+
}
|
|
32462
32933
|
settings.footnoteSettings = parseNoteSettings(
|
|
32463
32934
|
getFirstChildByTagNameNS(doc.documentElement, WORD_NS, "footnotePr")
|
|
32464
32935
|
);
|
|
@@ -32480,6 +32951,15 @@ function parseSettings(xml) {
|
|
|
32480
32951
|
const val = getAttributeValue(adjustLineHeightInTable, "val");
|
|
32481
32952
|
settings.adjustLineHeightInTable = val !== "0" && val !== "false";
|
|
32482
32953
|
}
|
|
32954
|
+
const allowSpace = getFirstChildByTagNameNS(
|
|
32955
|
+
compat,
|
|
32956
|
+
WORD_NS,
|
|
32957
|
+
"allowSpaceOfSameStyleInTable"
|
|
32958
|
+
);
|
|
32959
|
+
if (allowSpace) {
|
|
32960
|
+
const val = getAttributeValue(allowSpace, "val");
|
|
32961
|
+
settings.allowSpaceOfSameStyleInTable = val !== "0" && val !== "false";
|
|
32962
|
+
}
|
|
32483
32963
|
}
|
|
32484
32964
|
return settings;
|
|
32485
32965
|
}
|
|
@@ -33500,8 +33980,12 @@ function parseTableStyle(tblPr, tableStyleId) {
|
|
|
33500
33980
|
getFirstChildByTagNameNS(tblPr, WORD_NS, "jc"),
|
|
33501
33981
|
"val"
|
|
33502
33982
|
);
|
|
33503
|
-
if (jc === "left" || jc === "
|
|
33504
|
-
style2.align =
|
|
33983
|
+
if (jc === "left" || jc === "start") {
|
|
33984
|
+
style2.align = "left";
|
|
33985
|
+
} else if (jc === "center") {
|
|
33986
|
+
style2.align = "center";
|
|
33987
|
+
} else if (jc === "right" || jc === "end") {
|
|
33988
|
+
style2.align = "right";
|
|
33505
33989
|
}
|
|
33506
33990
|
const layout = parseTableLayout(tblPr);
|
|
33507
33991
|
if (layout) {
|
|
@@ -33621,6 +34105,17 @@ function parseTableRowStyle(rowProperties) {
|
|
|
33621
34105
|
if (cellSpacing !== void 0) {
|
|
33622
34106
|
style2.cellSpacing = cellSpacing;
|
|
33623
34107
|
}
|
|
34108
|
+
const rowJc = getAttributeValue(
|
|
34109
|
+
getFirstChildByTagNameNS(rowProperties, WORD_NS, "jc"),
|
|
34110
|
+
"val"
|
|
34111
|
+
);
|
|
34112
|
+
if (rowJc === "left" || rowJc === "start") {
|
|
34113
|
+
style2.align = "left";
|
|
34114
|
+
} else if (rowJc === "center") {
|
|
34115
|
+
style2.align = "center";
|
|
34116
|
+
} else if (rowJc === "right" || rowJc === "end") {
|
|
34117
|
+
style2.align = "right";
|
|
34118
|
+
}
|
|
33624
34119
|
const cantSplit = parseOnOffProperty(rowProperties, "cantSplit");
|
|
33625
34120
|
if (cantSplit !== void 0) {
|
|
33626
34121
|
style2.cantSplit = cantSplit;
|
|
@@ -33673,6 +34168,17 @@ function getTableCellVMerge(cellProperties) {
|
|
|
33673
34168
|
const value = getAttributeValue(vMerge, "val");
|
|
33674
34169
|
return value === "restart" ? "restart" : "continue";
|
|
33675
34170
|
}
|
|
34171
|
+
function getTableCellHMerge(cellProperties) {
|
|
34172
|
+
if (!cellProperties) {
|
|
34173
|
+
return void 0;
|
|
34174
|
+
}
|
|
34175
|
+
const hMerge = getFirstChildByTagNameNS(cellProperties, WORD_NS, "hMerge");
|
|
34176
|
+
if (!hMerge) {
|
|
34177
|
+
return void 0;
|
|
34178
|
+
}
|
|
34179
|
+
const value = getAttributeValue(hMerge, "val");
|
|
34180
|
+
return value === "restart" ? "restart" : "continue";
|
|
34181
|
+
}
|
|
33676
34182
|
function parseTableCellVerticalAlign(cellProperties) {
|
|
33677
34183
|
if (!cellProperties) {
|
|
33678
34184
|
return void 0;
|
|
@@ -35479,9 +35985,9 @@ async function parseTableNode(tableNode, numberingMaps, zip, relsMap, assets, th
|
|
|
35479
35985
|
if (tblGrid) {
|
|
35480
35986
|
for (const gridCol of getChildrenByTagNameNS(tblGrid, WORD_NS, "gridCol")) {
|
|
35481
35987
|
const w = getAttributeValue(gridCol, "w");
|
|
35482
|
-
const
|
|
35483
|
-
if (
|
|
35484
|
-
gridCols.push(
|
|
35988
|
+
const pt2 = twipsToPoints(w);
|
|
35989
|
+
if (pt2 !== void 0) {
|
|
35990
|
+
gridCols.push(pt2);
|
|
35485
35991
|
}
|
|
35486
35992
|
}
|
|
35487
35993
|
}
|
|
@@ -35538,6 +36044,12 @@ async function parseTableNode(tableNode, numberingMaps, zip, relsMap, assets, th
|
|
|
35538
36044
|
}
|
|
35539
36045
|
collapseCellAutospacing(paragraphs, autospacingFlags);
|
|
35540
36046
|
const colSpan = getTableCellColSpan(cellProperties);
|
|
36047
|
+
const hMerge = getTableCellHMerge(cellProperties);
|
|
36048
|
+
if (hMerge === "continue" && cells.length > 0) {
|
|
36049
|
+
const anchor = cells[cells.length - 1];
|
|
36050
|
+
anchor.colSpan = (anchor.colSpan ?? 1) + colSpan;
|
|
36051
|
+
continue;
|
|
36052
|
+
}
|
|
35541
36053
|
const vMerge = getTableCellVMerge(cellProperties);
|
|
35542
36054
|
const cellStyle = parseTableCellStyle(cellProperties);
|
|
35543
36055
|
const cell = createEditorTableCell(
|
|
@@ -35547,6 +36059,8 @@ async function parseTableNode(tableNode, numberingMaps, zip, relsMap, assets, th
|
|
|
35547
36059
|
);
|
|
35548
36060
|
if (cellStyle) cell.style = cellStyle;
|
|
35549
36061
|
cell.conditionalStyle = parseTableConditionalFlags(cellProperties);
|
|
36062
|
+
const cellExtAttrs = collectExtAttributes(cellNode);
|
|
36063
|
+
if (cellExtAttrs) cell.extAttributes = cellExtAttrs;
|
|
35550
36064
|
if (vMerge === "continue") {
|
|
35551
36065
|
cell.blocks = [];
|
|
35552
36066
|
}
|
|
@@ -35561,9 +36075,22 @@ async function parseTableNode(tableNode, numberingMaps, zip, relsMap, assets, th
|
|
|
35561
36075
|
row.style = rowStyle;
|
|
35562
36076
|
}
|
|
35563
36077
|
row.conditionalStyle = rowConditionalStyle;
|
|
36078
|
+
const rowExtAttrs = collectExtAttributes(rowNode);
|
|
36079
|
+
if (rowExtAttrs) row.extAttributes = rowExtAttrs;
|
|
35564
36080
|
const tblPrEx = getFirstChildByTagNameNS(rowNode, WORD_NS, "tblPrEx");
|
|
35565
36081
|
if (tblPrEx) {
|
|
35566
|
-
|
|
36082
|
+
const exceptions = parseTableStyle(tblPrEx);
|
|
36083
|
+
if (exceptions) {
|
|
36084
|
+
row.propertyExceptions = exceptions;
|
|
36085
|
+
}
|
|
36086
|
+
const changeEl = getFirstChildByTagNameNS(
|
|
36087
|
+
tblPrEx,
|
|
36088
|
+
WORD_NS,
|
|
36089
|
+
"tblPrExChange"
|
|
36090
|
+
);
|
|
36091
|
+
if (changeEl) {
|
|
36092
|
+
row.tblPrExChangeXml = new XMLSerializer().serializeToString(changeEl);
|
|
36093
|
+
}
|
|
35567
36094
|
}
|
|
35568
36095
|
rows.push(row);
|
|
35569
36096
|
}
|
|
@@ -36394,6 +36921,36 @@ async function importDocxToEditorDocument(buffer, options = {}) {
|
|
|
36394
36921
|
defaultTabStop: docSettings.defaultTabStop
|
|
36395
36922
|
};
|
|
36396
36923
|
}
|
|
36924
|
+
if (docSettings.allowSpaceOfSameStyleInTable) {
|
|
36925
|
+
doc2.settings = {
|
|
36926
|
+
...doc2.settings ?? {},
|
|
36927
|
+
allowSpaceOfSameStyleInTable: true
|
|
36928
|
+
};
|
|
36929
|
+
}
|
|
36930
|
+
if (docSettings.autoHyphenation) {
|
|
36931
|
+
doc2.settings = {
|
|
36932
|
+
...doc2.settings ?? {},
|
|
36933
|
+
autoHyphenation: true
|
|
36934
|
+
};
|
|
36935
|
+
}
|
|
36936
|
+
if (docSettings.doNotHyphenateCaps) {
|
|
36937
|
+
doc2.settings = {
|
|
36938
|
+
...doc2.settings ?? {},
|
|
36939
|
+
doNotHyphenateCaps: true
|
|
36940
|
+
};
|
|
36941
|
+
}
|
|
36942
|
+
if (docSettings.consecutiveHyphenLimit !== void 0) {
|
|
36943
|
+
doc2.settings = {
|
|
36944
|
+
...doc2.settings ?? {},
|
|
36945
|
+
consecutiveHyphenLimit: docSettings.consecutiveHyphenLimit
|
|
36946
|
+
};
|
|
36947
|
+
}
|
|
36948
|
+
if (docSettings.hyphenationZone !== void 0) {
|
|
36949
|
+
doc2.settings = {
|
|
36950
|
+
...doc2.settings ?? {},
|
|
36951
|
+
hyphenationZone: docSettings.hyphenationZone
|
|
36952
|
+
};
|
|
36953
|
+
}
|
|
36397
36954
|
let result = doc2;
|
|
36398
36955
|
if (editorFootnotes) {
|
|
36399
36956
|
result.footnotes = editorFootnotes;
|
|
@@ -36580,7 +37137,7 @@ function importDocxInWorker(buffer, options = {}) {
|
|
|
36580
37137
|
const worker = new Worker(
|
|
36581
37138
|
new URL(
|
|
36582
37139
|
/* @vite-ignore */
|
|
36583
|
-
"" + new URL("assets/importDocxWorker-
|
|
37140
|
+
"" + new URL("assets/importDocxWorker-DAbfLHtp.js", import.meta.url).href,
|
|
36584
37141
|
import.meta.url
|
|
36585
37142
|
),
|
|
36586
37143
|
{
|
|
@@ -39112,8 +39669,8 @@ function previousFontSizePt(currentPt) {
|
|
|
39112
39669
|
function fontSizePxToPt(px) {
|
|
39113
39670
|
return Math.round(pxToPt(px) * 100) / 100;
|
|
39114
39671
|
}
|
|
39115
|
-
function fontSizePtToPx(
|
|
39116
|
-
return Math.round(ptToPx(
|
|
39672
|
+
function fontSizePtToPx(pt2) {
|
|
39673
|
+
return Math.round(ptToPx(pt2) * 1e4) / 1e4;
|
|
39117
39674
|
}
|
|
39118
39675
|
function formatFontSizePt(px) {
|
|
39119
39676
|
const value = Number(px);
|
|
@@ -39122,15 +39679,19 @@ function formatFontSizePt(px) {
|
|
|
39122
39679
|
}
|
|
39123
39680
|
return String(fontSizePxToPt(value));
|
|
39124
39681
|
}
|
|
39125
|
-
function parseFontSizePtToPx(
|
|
39126
|
-
const value = Number(
|
|
39682
|
+
function parseFontSizePtToPx(pt2) {
|
|
39683
|
+
const value = Number(pt2);
|
|
39127
39684
|
if (!Number.isFinite(value) || value <= 0) {
|
|
39128
39685
|
return null;
|
|
39129
39686
|
}
|
|
39130
39687
|
return fontSizePtToPx(value);
|
|
39131
39688
|
}
|
|
39132
39689
|
const UNDERLINE_STYLE_OPTIONS = [
|
|
39133
|
-
{
|
|
39690
|
+
{
|
|
39691
|
+
value: "single",
|
|
39692
|
+
labelKey: "underline.style.single",
|
|
39693
|
+
preview: { borderStyle: "solid" }
|
|
39694
|
+
},
|
|
39134
39695
|
{
|
|
39135
39696
|
value: "double",
|
|
39136
39697
|
labelKey: "underline.style.double",
|
|
@@ -39141,13 +39702,21 @@ const UNDERLINE_STYLE_OPTIONS = [
|
|
|
39141
39702
|
labelKey: "underline.style.thick",
|
|
39142
39703
|
preview: { borderStyle: "solid", borderBottomWidth: "3px" }
|
|
39143
39704
|
},
|
|
39144
|
-
{
|
|
39705
|
+
{
|
|
39706
|
+
value: "dotted",
|
|
39707
|
+
labelKey: "underline.style.dotted",
|
|
39708
|
+
preview: { borderStyle: "dotted" }
|
|
39709
|
+
},
|
|
39145
39710
|
{
|
|
39146
39711
|
value: "dottedHeavy",
|
|
39147
39712
|
labelKey: "underline.style.dottedHeavy",
|
|
39148
39713
|
preview: { borderStyle: "dotted", borderBottomWidth: "3px" }
|
|
39149
39714
|
},
|
|
39150
|
-
{
|
|
39715
|
+
{
|
|
39716
|
+
value: "dash",
|
|
39717
|
+
labelKey: "underline.style.dashed",
|
|
39718
|
+
preview: { borderStyle: "dashed" }
|
|
39719
|
+
},
|
|
39151
39720
|
{
|
|
39152
39721
|
value: "dashedHeavy",
|
|
39153
39722
|
labelKey: "underline.style.dashedHeavy",
|
|
@@ -39163,7 +39732,11 @@ const UNDERLINE_STYLE_OPTIONS = [
|
|
|
39163
39732
|
labelKey: "underline.style.longDashesHeavy",
|
|
39164
39733
|
preview: { borderStyle: "dashed", borderBottomWidth: "3px" }
|
|
39165
39734
|
},
|
|
39166
|
-
{
|
|
39735
|
+
{
|
|
39736
|
+
value: "dotDash",
|
|
39737
|
+
labelKey: "underline.style.dotDash",
|
|
39738
|
+
preview: { borderStyle: "dashed" }
|
|
39739
|
+
},
|
|
39167
39740
|
{
|
|
39168
39741
|
value: "dashDotHeavy",
|
|
39169
39742
|
labelKey: "underline.style.dotDashHeavy",
|