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.
@@ -2519,7 +2519,7 @@ function OasisEditorAppLazy(props = {}) {
2519
2519
  onCleanup(() => {
2520
2520
  cancelled = true;
2521
2521
  });
2522
- import("./OasisEditorApp-2b7y3aGj.js").then((m) => {
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
- footnote.blocks,
5457
- {
5458
- pageIndex: page.index,
5459
- totalPages,
5460
- measuredHeights,
5461
- measuredParagraphLayouts,
5462
- styles: document2.styles,
5463
- contentWidth,
5464
- measurer,
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
- return Math.max(0, trailingSlot.left - firstSlot.left);
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
- const flushLine = (hardBreak = false) => {
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
- for (const token of tokens) {
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 token.chars) {
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 { pageSettings, maxPageHeight, pageOffset = 0, existingPages = [] } = context2;
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
- blocks,
14298
- {
14299
- pageIndex,
14300
- totalPages: totalPageCount,
14301
- measuredHeights: context2.measuredHeights,
14302
- measuredParagraphLayouts: context2.measuredParagraphLayouts,
14303
- styles: context2.documentStyles,
14304
- contentWidth,
14305
- measurer: context2.measurer,
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: (_a = document2.settings) == null ? void 0 : _a.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
- return {
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 + resolveTableIndentLeft(table);
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 ? tableWidth / gridTotalWidth : 1;
15571
+ const scale = gridTotalWidth > 0 ? columnsWidthBudget / gridTotalWidth : 1;
15261
15572
  resolvedColumnWidths = table.gridCols.map((w) => w * scale);
15262
15573
  } else {
15263
- const baseCellWidth = tableWidth / visualColumnCount;
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 = [0];
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 = ((_g = table.style) == null ? void 0 : _g.bidiVisual) ? (_h = cell.style) == null ? void 0 : _h.borderEnd : (_i = cell.style) == null ? void 0 : _i.borderStart;
15366
- const logicalRight = ((_j = table.style) == null ? void 0 : _j.bidiVisual) ? (_k = cell.style) == null ? void 0 : _k.borderStart : (_l = cell.style) == null ? void 0 : _l.borderEnd;
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((_m = cell.style) == null ? void 0 : _m.borderTop),
15369
- right: resolveBorder(((_n = cell.style) == null ? void 0 : _n.borderRight) ?? logicalRight),
15370
- bottom: resolveBorder((_o = cell.style) == null ? void 0 : _o.borderBottom),
15371
- left: resolveBorder(((_p = cell.style) == null ? void 0 : _p.borderLeft) ?? logicalLeft),
15372
- ...((_q = cell.style) == null ? void 0 : _q.borderTopLeftToBottomRight) ? {
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
- ...((_r = cell.style) == null ? void 0 : _r.borderTopRightToBottomLeft) ? {
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 || ((_s = cell.style) == null ? void 0 : _s.noWrap) ? isRotated && explicitRowHeightPx !== null && explicitRowHeightPx > 0 ? Math.max(
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
- const paragraph = fitImagesToCellWidth(original, contentWidthPx);
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 = ((_u = (_t = paragraph.runs[0]) == null ? void 0 : _t.styles) == null ? void 0 : _u.fontSize) ?? 14.6667;
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
- (_v = state.document.settings) == null ? void 0 : _v.defaultTabStop
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
- const collapsed = Math.min(previous.spacingAfter, spacingBefore);
15436
- if (collapsed > 0) {
15437
- if (previous.spacingAfter >= spacingBefore) {
15438
- effectiveSpacingBefore = 0;
15439
- } else {
15440
- const previousHeight = previous.height;
15441
- previous.height = Math.max(1, previous.height - collapsed);
15442
- contentNaturalHeightPx = Math.max(
15443
- 0,
15444
- contentNaturalHeightPx - (previousHeight - previous.height)
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 ((_w = effectiveRowStyles[rowIndex]) == null ? void 0 : _w.hidden) {
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 = 0;
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: (_x = cell.style) == null ? void 0 : _x.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: ((_y = cell.style) == null ? void 0 : _y.revision) ?? (((_z = cell.style) == null ? void 0 : _z.propertyRevision) ? { ...cell.style.propertyRevision, type: "property" } : void 0)
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
- height: rowHeights.reduce((sum, current) => sum + current, 0),
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(`${family} ${bold ? "B" : ""}${italic ? "I" : ""}`.trim());
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 pt = Class.prototype;
26443
- if (!(pt instanceof Super)) {
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(pt, t);
26449
- Class.prototype = pt = t;
26850
+ copy(pt2, t);
26851
+ Class.prototype = pt2 = t;
26450
26852
  }
26451
- if (pt.constructor != Class) {
26853
+ if (pt2.constructor != Class) {
26452
26854
  if (typeof Class != "function") {
26453
26855
  console.error("unknown Class:" + Class);
26454
26856
  }
26455
- pt.constructor = Class;
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) === node.ELEMENT_NODE && node.namespaceURI === namespace && node.localName === localName) {
32075
- result.push(node);
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 === "center" || jc === "right") {
33504
- style2.align = jc;
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 pt = twipsToPoints(w);
35483
- if (pt !== void 0) {
35484
- gridCols.push(pt);
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
- row.tblPrExXml = new XMLSerializer().serializeToString(tblPrEx);
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-BN5o1geV.js", import.meta.url).href,
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(pt) {
39116
- return Math.round(ptToPx(pt) * 1e4) / 1e4;
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(pt) {
39126
- const value = Number(pt);
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
- { value: "single", labelKey: "underline.style.single", preview: { borderStyle: "solid" } },
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
- { value: "dotted", labelKey: "underline.style.dotted", preview: { borderStyle: "dotted" } },
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
- { value: "dash", labelKey: "underline.style.dashed", preview: { borderStyle: "dashed" } },
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
- { value: "dotDash", labelKey: "underline.style.dotDash", preview: { borderStyle: "dashed" } },
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",