@harbour-enterprises/superdoc 0.24.0-next.3 → 0.24.0-next.4
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/chunks/{PdfViewer-DEWI6Uts.es.js → PdfViewer-D7C8g2G4.es.js} +1 -1
- package/dist/chunks/{PdfViewer-skWUtg2N.cjs → PdfViewer-kOVuv-4I.cjs} +1 -1
- package/dist/chunks/blank-docx-ABm6XYAA.es.js +4 -0
- package/dist/chunks/blank-docx-DfW3Eeh2.cjs +3 -0
- package/dist/chunks/{index-2QL0aZ2S.cjs → index-BFKwBQjS.cjs} +12 -4
- package/dist/chunks/{index-C_AMhrHP.es.js → index-CnEAVnHQ.es.js} +12 -4
- package/dist/chunks/{super-editor.es-CfK_qBM9.cjs → super-editor.es-BmGTQ05x.cjs} +1010 -859
- package/dist/chunks/{super-editor.es-iMAoOYOw.es.js → super-editor.es-CBPoWvjs.es.js} +1010 -859
- package/dist/core/SuperDoc.d.ts.map +1 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/style.css +27 -27
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-BueCftlx.js → converter-DpPj67OW.js} +916 -863
- package/dist/super-editor/chunks/{docx-zipper-C9jmfWYZ.js → docx-zipper-6Kc95yG-.js} +1 -1
- package/dist/super-editor/chunks/{editor-BsuNqVvp.js → editor-Dx6AhT5N.js} +124 -6
- package/dist/super-editor/chunks/{toolbar-DxhfgAoa.js → toolbar-CXSg2lJ9.js} +2 -2
- package/dist/super-editor/converter.es.js +1 -1
- package/dist/super-editor/docx-zipper.es.js +2 -2
- package/dist/super-editor/editor.es.js +3 -3
- package/dist/super-editor/file-zipper.es.js +1 -1
- package/dist/super-editor/super-editor/src/core/Editor.d.ts +11 -0
- package/dist/super-editor/super-editor/src/core/helpers/canRenderFont.d.ts +12 -0
- package/dist/super-editor/super-editor/src/core/super-converter/SuperConverter.d.ts +6 -1
- package/dist/super-editor/super-editor/src/core/super-converter/helpers.d.ts +1 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/docxImporter.d.ts +2 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/tableImporter.d.ts +5 -3
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/types/index.d.ts +4 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/utils.d.ts +9 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/gridSpan/gridSpan-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/gridSpan/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/header/header-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/header/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/headers/headers-translator.d.ts +7 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/headers/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/hideMark/hideMark-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/hideMark/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/noWrap/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/noWrap/noWrap-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/shd/shd-translator.d.ts +1 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tc/helpers/translate-table-cell.d.ts +0 -5
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcBorders/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcBorders/tcBorders-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcFitText/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcFitText/tcFitText-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcMar/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcMar/tcMar-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcPr/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcPr/tcPr-translator.d.ts +5 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcW/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcW/tcW-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/textDirection/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/textDirection/textDirection-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tl2br/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tl2br/tl2br-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tr2bl/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tr2bl/tr2bl-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vAlign/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vAlign/vAlign-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vMerge/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vMerge/vMerge-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/extensions/table-cell/table-cell.d.ts +112 -0
- package/dist/super-editor/super-editor.es.js +91 -76
- package/dist/super-editor/toolbar.es.js +2 -2
- package/dist/super-editor.cjs +1 -1
- package/dist/super-editor.es.js +1 -1
- package/dist/superdoc.cjs +3 -3
- package/dist/superdoc.es.js +3 -3
- package/dist/superdoc.umd.js +1020 -861
- package/dist/superdoc.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/blank-docx-CPqX9RF5.cjs +0 -3
- package/dist/chunks/blank-docx-iwdyG9RH.es.js +0 -4
|
@@ -15146,9 +15146,9 @@ function pixelsToEmu(px) {
|
|
|
15146
15146
|
if (typeof px === "string") px = parseFloat(px);
|
|
15147
15147
|
return Math.round(px * 9525);
|
|
15148
15148
|
}
|
|
15149
|
-
function
|
|
15150
|
-
if (
|
|
15151
|
-
const points = parseFloat(
|
|
15149
|
+
function eighthPointsToPixels(eighthPoints) {
|
|
15150
|
+
if (eighthPoints == null) return;
|
|
15151
|
+
const points = parseFloat(eighthPoints) / 8;
|
|
15152
15152
|
const pixels = points * 1.3333;
|
|
15153
15153
|
return pixels;
|
|
15154
15154
|
}
|
|
@@ -24552,37 +24552,37 @@ const _NodeTranslator = class _NodeTranslator2 {
|
|
|
24552
24552
|
};
|
|
24553
24553
|
__publicField$2(_NodeTranslator, "translatorTypes", TranslatorTypes);
|
|
24554
24554
|
let NodeTranslator = _NodeTranslator;
|
|
24555
|
-
const encode$
|
|
24555
|
+
const encode$1b = (attributes) => {
|
|
24556
24556
|
return attributes["w:type"];
|
|
24557
24557
|
};
|
|
24558
|
-
const decode$
|
|
24558
|
+
const decode$13 = (attrs) => {
|
|
24559
24559
|
const { lineBreakType } = attrs;
|
|
24560
24560
|
return lineBreakType;
|
|
24561
24561
|
};
|
|
24562
24562
|
const attrConfig$G = Object.freeze({
|
|
24563
24563
|
xmlName: "w:type",
|
|
24564
24564
|
sdName: "lineBreakType",
|
|
24565
|
-
encode: encode$
|
|
24566
|
-
decode: decode$
|
|
24565
|
+
encode: encode$1b,
|
|
24566
|
+
decode: decode$13
|
|
24567
24567
|
});
|
|
24568
|
-
const encode$
|
|
24568
|
+
const encode$1a = (attributes) => {
|
|
24569
24569
|
const xmlAttrValue = attributes["w:clear"];
|
|
24570
24570
|
return xmlAttrValue;
|
|
24571
24571
|
};
|
|
24572
|
-
const decode$
|
|
24572
|
+
const decode$12 = (attrs) => {
|
|
24573
24573
|
const { clear } = attrs;
|
|
24574
24574
|
return clear;
|
|
24575
24575
|
};
|
|
24576
24576
|
const attrConfig$F = Object.freeze({
|
|
24577
24577
|
xmlName: "w:clear",
|
|
24578
24578
|
sdName: "clear",
|
|
24579
|
-
encode: encode$
|
|
24580
|
-
decode: decode$
|
|
24579
|
+
encode: encode$1a,
|
|
24580
|
+
decode: decode$12
|
|
24581
24581
|
});
|
|
24582
24582
|
const validXmlAttributes$p = [attrConfig$G, attrConfig$F];
|
|
24583
|
-
const XML_NODE_NAME$
|
|
24583
|
+
const XML_NODE_NAME$y = "w:br";
|
|
24584
24584
|
const SD_NODE_NAME$h = "lineBreak";
|
|
24585
|
-
const encode$
|
|
24585
|
+
const encode$19 = (_2, encodedAttrs) => {
|
|
24586
24586
|
const isPageBreak = encodedAttrs?.lineBreakType === "page";
|
|
24587
24587
|
const translated = {
|
|
24588
24588
|
type: isPageBreak ? "hardBreak" : "lineBreak"
|
|
@@ -24592,7 +24592,7 @@ const encode$1c = (_2, encodedAttrs) => {
|
|
|
24592
24592
|
}
|
|
24593
24593
|
return translated;
|
|
24594
24594
|
};
|
|
24595
|
-
const decode$
|
|
24595
|
+
const decode$11 = (params2, decodedAttrs) => {
|
|
24596
24596
|
const { node } = params2;
|
|
24597
24597
|
if (!node) return;
|
|
24598
24598
|
const wBreak = { name: "w:br" };
|
|
@@ -24609,39 +24609,39 @@ const decode$14 = (params2, decodedAttrs) => {
|
|
|
24609
24609
|
};
|
|
24610
24610
|
return translated;
|
|
24611
24611
|
};
|
|
24612
|
-
const config$
|
|
24613
|
-
xmlName: XML_NODE_NAME$
|
|
24612
|
+
const config$x = {
|
|
24613
|
+
xmlName: XML_NODE_NAME$y,
|
|
24614
24614
|
sdNodeOrKeyName: SD_NODE_NAME$h,
|
|
24615
24615
|
type: NodeTranslator.translatorTypes.NODE,
|
|
24616
|
-
encode: encode$
|
|
24617
|
-
decode: decode$
|
|
24616
|
+
encode: encode$19,
|
|
24617
|
+
decode: decode$11,
|
|
24618
24618
|
attributes: validXmlAttributes$p
|
|
24619
24619
|
};
|
|
24620
|
-
const translator$
|
|
24621
|
-
const encode$
|
|
24622
|
-
const decode$
|
|
24620
|
+
const translator$1r = NodeTranslator.from(config$x);
|
|
24621
|
+
const encode$18 = (attributes) => attributes?.["w:val"];
|
|
24622
|
+
const decode$10 = (attrs) => attrs?.highlight;
|
|
24623
24623
|
const attrConfig$E = Object.freeze({
|
|
24624
24624
|
xmlName: "w:val",
|
|
24625
24625
|
sdName: "highlight",
|
|
24626
|
-
encode: encode$
|
|
24627
|
-
decode: decode$
|
|
24626
|
+
encode: encode$18,
|
|
24627
|
+
decode: decode$10
|
|
24628
24628
|
});
|
|
24629
24629
|
const validXmlAttributes$o = [attrConfig$E];
|
|
24630
|
-
const XML_NODE_NAME$
|
|
24631
|
-
const SD_ATTR_KEY$
|
|
24630
|
+
const XML_NODE_NAME$x = "w:highlight";
|
|
24631
|
+
const SD_ATTR_KEY$f = "highlight";
|
|
24632
24632
|
const DISABLED_TOKENS = /* @__PURE__ */ new Set(["transparent", "none", "inherit"]);
|
|
24633
|
-
const encode$
|
|
24633
|
+
const encode$17 = (params2, encodedAttrs = {}) => {
|
|
24634
24634
|
const { nodes } = params2;
|
|
24635
24635
|
const node = nodes?.[0];
|
|
24636
24636
|
const value = encodedAttrs.highlight ?? node?.attributes?.["w:val"];
|
|
24637
24637
|
return {
|
|
24638
24638
|
type: "attr",
|
|
24639
|
-
xmlName: XML_NODE_NAME$
|
|
24640
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
24639
|
+
xmlName: XML_NODE_NAME$x,
|
|
24640
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
24641
24641
|
attributes: { "w:val": value ?? null }
|
|
24642
24642
|
};
|
|
24643
24643
|
};
|
|
24644
|
-
const decode
|
|
24644
|
+
const decode$$ = (params2) => {
|
|
24645
24645
|
const attrs = params2?.node?.attrs || {};
|
|
24646
24646
|
const highlightValue = attrs.highlight ?? attrs.color ?? null;
|
|
24647
24647
|
if (!highlightValue) return void 0;
|
|
@@ -24649,14 +24649,14 @@ const decode$12 = (params2) => {
|
|
|
24649
24649
|
if (!normalizedValue) return void 0;
|
|
24650
24650
|
if (DISABLED_TOKENS.has(normalizedValue)) {
|
|
24651
24651
|
return {
|
|
24652
|
-
name: XML_NODE_NAME$
|
|
24652
|
+
name: XML_NODE_NAME$x,
|
|
24653
24653
|
attributes: { "w:val": "none" }
|
|
24654
24654
|
};
|
|
24655
24655
|
}
|
|
24656
24656
|
const keyword = getDocxHighlightKeywordFromHex(highlightValue);
|
|
24657
24657
|
if (keyword) {
|
|
24658
24658
|
return {
|
|
24659
|
-
name: XML_NODE_NAME$
|
|
24659
|
+
name: XML_NODE_NAME$x,
|
|
24660
24660
|
attributes: { "w:val": keyword }
|
|
24661
24661
|
};
|
|
24662
24662
|
}
|
|
@@ -24671,63 +24671,63 @@ const decode$12 = (params2) => {
|
|
|
24671
24671
|
}
|
|
24672
24672
|
};
|
|
24673
24673
|
};
|
|
24674
|
-
const config$
|
|
24675
|
-
xmlName: XML_NODE_NAME$
|
|
24676
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
24674
|
+
const config$w = {
|
|
24675
|
+
xmlName: XML_NODE_NAME$x,
|
|
24676
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
24677
24677
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
24678
|
-
encode: encode$
|
|
24679
|
-
decode: decode
|
|
24678
|
+
encode: encode$17,
|
|
24679
|
+
decode: decode$$,
|
|
24680
24680
|
attributes: validXmlAttributes$o
|
|
24681
24681
|
};
|
|
24682
|
-
const translator$
|
|
24683
|
-
const encode$
|
|
24682
|
+
const translator$1q = NodeTranslator.from(config$w);
|
|
24683
|
+
const encode$16 = (attributes) => {
|
|
24684
24684
|
return attributes["w:val"];
|
|
24685
24685
|
};
|
|
24686
|
-
const decode$
|
|
24686
|
+
const decode$_ = (attrs) => {
|
|
24687
24687
|
const { tabSize } = attrs || {};
|
|
24688
24688
|
return tabSize;
|
|
24689
24689
|
};
|
|
24690
24690
|
const attrConfig$D = Object.freeze({
|
|
24691
24691
|
xmlName: "w:val",
|
|
24692
24692
|
sdName: "tabSize",
|
|
24693
|
-
encode: encode$
|
|
24694
|
-
decode: decode$
|
|
24693
|
+
encode: encode$16,
|
|
24694
|
+
decode: decode$_
|
|
24695
24695
|
});
|
|
24696
|
-
const encode$
|
|
24696
|
+
const encode$15 = (attributes) => {
|
|
24697
24697
|
return attributes["w:leader"];
|
|
24698
24698
|
};
|
|
24699
|
-
const decode$
|
|
24699
|
+
const decode$Z = (attrs) => {
|
|
24700
24700
|
const { leader } = attrs || {};
|
|
24701
24701
|
return leader;
|
|
24702
24702
|
};
|
|
24703
24703
|
const attrConfig$C = Object.freeze({
|
|
24704
24704
|
xmlName: "w:leader",
|
|
24705
24705
|
sdName: "leader",
|
|
24706
|
-
encode: encode$
|
|
24707
|
-
decode: decode$
|
|
24706
|
+
encode: encode$15,
|
|
24707
|
+
decode: decode$Z
|
|
24708
24708
|
});
|
|
24709
|
-
const encode$
|
|
24709
|
+
const encode$14 = (attributes) => {
|
|
24710
24710
|
return attributes["w:pos"];
|
|
24711
24711
|
};
|
|
24712
|
-
const decode
|
|
24712
|
+
const decode$Y = (attrs) => {
|
|
24713
24713
|
const { pos } = attrs || {};
|
|
24714
24714
|
return pos;
|
|
24715
24715
|
};
|
|
24716
24716
|
const attrConfig$B = Object.freeze({
|
|
24717
24717
|
xmlName: "w:pos",
|
|
24718
24718
|
sdName: "pos",
|
|
24719
|
-
encode: encode$
|
|
24720
|
-
decode: decode
|
|
24719
|
+
encode: encode$14,
|
|
24720
|
+
decode: decode$Y
|
|
24721
24721
|
});
|
|
24722
24722
|
const validXmlAttributes$n = [attrConfig$D, attrConfig$B, attrConfig$C];
|
|
24723
|
-
const XML_NODE_NAME$
|
|
24723
|
+
const XML_NODE_NAME$w = "w:tab";
|
|
24724
24724
|
const SD_NODE_NAME$g = "tab";
|
|
24725
|
-
const encode$
|
|
24725
|
+
const encode$13 = (_2, encodedAttrs = {}) => {
|
|
24726
24726
|
const translated = { type: "tab" };
|
|
24727
24727
|
if (encodedAttrs) translated.attrs = { ...encodedAttrs };
|
|
24728
24728
|
return translated;
|
|
24729
24729
|
};
|
|
24730
|
-
const decode$
|
|
24730
|
+
const decode$X = (params2, decodedAttrs = {}) => {
|
|
24731
24731
|
const { node } = params2 || {};
|
|
24732
24732
|
if (!node) return;
|
|
24733
24733
|
const wTab = { name: "w:tab" };
|
|
@@ -24743,15 +24743,15 @@ const decode$_ = (params2, decodedAttrs = {}) => {
|
|
|
24743
24743
|
}
|
|
24744
24744
|
return translated;
|
|
24745
24745
|
};
|
|
24746
|
-
const config$
|
|
24747
|
-
xmlName: XML_NODE_NAME$
|
|
24746
|
+
const config$v = {
|
|
24747
|
+
xmlName: XML_NODE_NAME$w,
|
|
24748
24748
|
sdNodeOrKeyName: SD_NODE_NAME$g,
|
|
24749
24749
|
type: NodeTranslator.translatorTypes.NODE,
|
|
24750
|
-
encode: encode$
|
|
24751
|
-
decode: decode$
|
|
24750
|
+
encode: encode$13,
|
|
24751
|
+
decode: decode$X,
|
|
24752
24752
|
attributes: validXmlAttributes$n
|
|
24753
24753
|
};
|
|
24754
|
-
const translator$
|
|
24754
|
+
const translator$1p = NodeTranslator.from(config$v);
|
|
24755
24755
|
const mergeTextNodes = (nodes) => {
|
|
24756
24756
|
if (!nodes || !Array.isArray(nodes)) {
|
|
24757
24757
|
return nodes;
|
|
@@ -24977,9 +24977,9 @@ const parseParagraphBorders = (pBdr) => {
|
|
|
24977
24977
|
const { attributes: a } = el;
|
|
24978
24978
|
if (a["w:val"] === "nil" || a["w:val"] === void 0) return;
|
|
24979
24979
|
let sizePx;
|
|
24980
|
-
if (a["w:sz"] !== void 0) sizePx =
|
|
24980
|
+
if (a["w:sz"] !== void 0) sizePx = eighthPointsToPixels(a["w:sz"]);
|
|
24981
24981
|
let spacePx;
|
|
24982
|
-
if (a["w:space"] !== void 0) spacePx =
|
|
24982
|
+
if (a["w:space"] !== void 0) spacePx = eighthPointsToPixels(a["w:space"]);
|
|
24983
24983
|
result[side] = {
|
|
24984
24984
|
val: a["w:val"],
|
|
24985
24985
|
size: sizePx,
|
|
@@ -25269,89 +25269,89 @@ const handleParagraphNode$1 = (params2) => {
|
|
|
25269
25269
|
}
|
|
25270
25270
|
return schemaNode;
|
|
25271
25271
|
};
|
|
25272
|
-
const encode$
|
|
25272
|
+
const encode$12 = (attributes) => {
|
|
25273
25273
|
return attributes["w:rsidDel"];
|
|
25274
25274
|
};
|
|
25275
|
-
const decode$
|
|
25275
|
+
const decode$W = (attrs) => {
|
|
25276
25276
|
return attrs.rsidDel;
|
|
25277
25277
|
};
|
|
25278
25278
|
const attrConfig$A = Object.freeze({
|
|
25279
25279
|
xmlName: "w:rsidDel",
|
|
25280
25280
|
sdName: "rsidDel",
|
|
25281
|
-
encode: encode$
|
|
25282
|
-
decode: decode$
|
|
25281
|
+
encode: encode$12,
|
|
25282
|
+
decode: decode$W
|
|
25283
25283
|
});
|
|
25284
|
-
const encode$
|
|
25284
|
+
const encode$11 = (attributes) => {
|
|
25285
25285
|
return attributes["w:rsidP"];
|
|
25286
25286
|
};
|
|
25287
|
-
const decode$
|
|
25287
|
+
const decode$V = (attrs) => {
|
|
25288
25288
|
return attrs.rsidP;
|
|
25289
25289
|
};
|
|
25290
25290
|
const attrConfig$z = Object.freeze({
|
|
25291
25291
|
xmlName: "w:rsidP",
|
|
25292
25292
|
sdName: "rsidP",
|
|
25293
|
-
encode: encode$
|
|
25294
|
-
decode: decode$
|
|
25293
|
+
encode: encode$11,
|
|
25294
|
+
decode: decode$V
|
|
25295
25295
|
});
|
|
25296
|
-
const encode$
|
|
25296
|
+
const encode$10 = (attributes) => {
|
|
25297
25297
|
return attributes["w:rsidR"];
|
|
25298
25298
|
};
|
|
25299
|
-
const decode$
|
|
25299
|
+
const decode$U = (attrs) => {
|
|
25300
25300
|
return attrs.rsidR;
|
|
25301
25301
|
};
|
|
25302
25302
|
const attrConfig$y = Object.freeze({
|
|
25303
25303
|
xmlName: "w:rsidR",
|
|
25304
25304
|
sdName: "rsidR",
|
|
25305
|
-
encode: encode$
|
|
25306
|
-
decode: decode$
|
|
25305
|
+
encode: encode$10,
|
|
25306
|
+
decode: decode$U
|
|
25307
25307
|
});
|
|
25308
|
-
const encode
|
|
25308
|
+
const encode$$ = (attributes) => {
|
|
25309
25309
|
return attributes["w:rsidRPr"];
|
|
25310
25310
|
};
|
|
25311
|
-
const decode$
|
|
25311
|
+
const decode$T = (attrs) => {
|
|
25312
25312
|
return attrs.rsidRPr;
|
|
25313
25313
|
};
|
|
25314
25314
|
const attrConfig$x = Object.freeze({
|
|
25315
25315
|
xmlName: "w:rsidRPr",
|
|
25316
25316
|
sdName: "rsidRPr",
|
|
25317
|
-
encode: encode
|
|
25318
|
-
decode: decode$
|
|
25317
|
+
encode: encode$$,
|
|
25318
|
+
decode: decode$T
|
|
25319
25319
|
});
|
|
25320
|
-
const encode$
|
|
25320
|
+
const encode$_ = (attributes) => {
|
|
25321
25321
|
return attributes["w:rsidRDefault"];
|
|
25322
25322
|
};
|
|
25323
|
-
const decode$
|
|
25323
|
+
const decode$S = (attrs) => {
|
|
25324
25324
|
return attrs.rsidRDefault;
|
|
25325
25325
|
};
|
|
25326
25326
|
const attrConfig$w = Object.freeze({
|
|
25327
25327
|
xmlName: "w:rsidRDefault",
|
|
25328
25328
|
sdName: "rsidRDefault",
|
|
25329
|
-
encode: encode$
|
|
25330
|
-
decode: decode$
|
|
25329
|
+
encode: encode$_,
|
|
25330
|
+
decode: decode$S
|
|
25331
25331
|
});
|
|
25332
|
-
const encode$
|
|
25332
|
+
const encode$Z = (attributes) => {
|
|
25333
25333
|
return attributes["w14:paraId"];
|
|
25334
25334
|
};
|
|
25335
|
-
const decode$
|
|
25335
|
+
const decode$R = (attrs) => {
|
|
25336
25336
|
return attrs.paraId;
|
|
25337
25337
|
};
|
|
25338
25338
|
const attrConfig$v = Object.freeze({
|
|
25339
25339
|
xmlName: "w14:paraId",
|
|
25340
25340
|
sdName: "paraId",
|
|
25341
|
-
encode: encode$
|
|
25342
|
-
decode: decode$
|
|
25341
|
+
encode: encode$Z,
|
|
25342
|
+
decode: decode$R
|
|
25343
25343
|
});
|
|
25344
|
-
const encode
|
|
25344
|
+
const encode$Y = (attributes) => {
|
|
25345
25345
|
return attributes["w14:textId"];
|
|
25346
25346
|
};
|
|
25347
|
-
const decode$
|
|
25347
|
+
const decode$Q = (attrs) => {
|
|
25348
25348
|
return attrs.textId;
|
|
25349
25349
|
};
|
|
25350
25350
|
const attrConfig$u = Object.freeze({
|
|
25351
25351
|
xmlName: "w14:textId",
|
|
25352
25352
|
sdName: "textId",
|
|
25353
|
-
encode: encode
|
|
25354
|
-
decode: decode$
|
|
25353
|
+
encode: encode$Y,
|
|
25354
|
+
decode: decode$Q
|
|
25355
25355
|
});
|
|
25356
25356
|
const validXmlAttributes$m = [
|
|
25357
25357
|
attrConfig$v,
|
|
@@ -25362,9 +25362,9 @@ const validXmlAttributes$m = [
|
|
|
25362
25362
|
attrConfig$x,
|
|
25363
25363
|
attrConfig$A
|
|
25364
25364
|
];
|
|
25365
|
-
const XML_NODE_NAME$
|
|
25365
|
+
const XML_NODE_NAME$v = "w:p";
|
|
25366
25366
|
const SD_NODE_NAME$f = "paragraph";
|
|
25367
|
-
const encode$
|
|
25367
|
+
const encode$X = (params2, encodedAttrs = {}) => {
|
|
25368
25368
|
const node = handleParagraphNode$1(params2);
|
|
25369
25369
|
if (!node) return void 0;
|
|
25370
25370
|
if (encodedAttrs && Object.keys(encodedAttrs).length) {
|
|
@@ -25372,7 +25372,7 @@ const encode$_ = (params2, encodedAttrs = {}) => {
|
|
|
25372
25372
|
}
|
|
25373
25373
|
return node;
|
|
25374
25374
|
};
|
|
25375
|
-
const decode$
|
|
25375
|
+
const decode$P = (params2, decodedAttrs = {}) => {
|
|
25376
25376
|
const translated = translateParagraphNode(params2);
|
|
25377
25377
|
if (!translated) return void 0;
|
|
25378
25378
|
if (decodedAttrs && Object.keys(decodedAttrs).length) {
|
|
@@ -25380,16 +25380,16 @@ const decode$S = (params2, decodedAttrs = {}) => {
|
|
|
25380
25380
|
}
|
|
25381
25381
|
return translated;
|
|
25382
25382
|
};
|
|
25383
|
-
const config$
|
|
25384
|
-
xmlName: XML_NODE_NAME$
|
|
25383
|
+
const config$u = {
|
|
25384
|
+
xmlName: XML_NODE_NAME$v,
|
|
25385
25385
|
sdNodeOrKeyName: SD_NODE_NAME$f,
|
|
25386
25386
|
type: NodeTranslator.translatorTypes.NODE,
|
|
25387
|
-
encode: encode$
|
|
25388
|
-
decode: decode$
|
|
25387
|
+
encode: encode$X,
|
|
25388
|
+
decode: decode$P,
|
|
25389
25389
|
attributes: validXmlAttributes$m
|
|
25390
25390
|
};
|
|
25391
|
-
const translator$
|
|
25392
|
-
const encode$
|
|
25391
|
+
const translator$1o = NodeTranslator.from(config$u);
|
|
25392
|
+
const encode$W = (attributes) => {
|
|
25393
25393
|
const raw = attributes?.["w:val"];
|
|
25394
25394
|
if (raw === void 0 || raw === null) return void 0;
|
|
25395
25395
|
if (typeof raw === "boolean") return raw;
|
|
@@ -25399,24 +25399,24 @@ const encode$Z = (attributes) => {
|
|
|
25399
25399
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
25400
25400
|
return void 0;
|
|
25401
25401
|
};
|
|
25402
|
-
const decode$
|
|
25402
|
+
const decode$O = (runProps) => {
|
|
25403
25403
|
if (runProps?.bold === false) return "0";
|
|
25404
25404
|
return void 0;
|
|
25405
25405
|
};
|
|
25406
25406
|
const attrConfig$t = Object.freeze({
|
|
25407
25407
|
xmlName: "w:val",
|
|
25408
25408
|
sdName: "bold",
|
|
25409
|
-
encode: encode$
|
|
25410
|
-
decode: decode$
|
|
25409
|
+
encode: encode$W,
|
|
25410
|
+
decode: decode$O
|
|
25411
25411
|
});
|
|
25412
25412
|
const validXmlAttributes$l = [attrConfig$t];
|
|
25413
|
-
const XML_NODE_NAME$
|
|
25414
|
-
const SD_ATTR_KEY$
|
|
25415
|
-
const encode$
|
|
25413
|
+
const XML_NODE_NAME$u = "w:b";
|
|
25414
|
+
const SD_ATTR_KEY$e = "bold";
|
|
25415
|
+
const encode$V = (params2, encodedAttrs = {}) => {
|
|
25416
25416
|
const { nodes } = params2;
|
|
25417
25417
|
const node = nodes[0];
|
|
25418
25418
|
if (!node) return void 0;
|
|
25419
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
25419
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$e];
|
|
25420
25420
|
let attributes;
|
|
25421
25421
|
if (val === false) attributes = { "w:val": "0" };
|
|
25422
25422
|
else if (val === true)
|
|
@@ -25424,85 +25424,85 @@ const encode$Y = (params2, encodedAttrs = {}) => {
|
|
|
25424
25424
|
else attributes = node.attributes || {};
|
|
25425
25425
|
return {
|
|
25426
25426
|
type: "attr",
|
|
25427
|
-
xmlName: XML_NODE_NAME$
|
|
25428
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25427
|
+
xmlName: XML_NODE_NAME$u,
|
|
25428
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
25429
25429
|
attributes
|
|
25430
25430
|
};
|
|
25431
25431
|
};
|
|
25432
|
-
const config$
|
|
25433
|
-
xmlName: XML_NODE_NAME$
|
|
25434
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25432
|
+
const config$t = {
|
|
25433
|
+
xmlName: XML_NODE_NAME$u,
|
|
25434
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
25435
25435
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25436
|
-
encode: encode$
|
|
25436
|
+
encode: encode$V,
|
|
25437
25437
|
attributes: validXmlAttributes$l
|
|
25438
25438
|
};
|
|
25439
|
-
const translator$
|
|
25440
|
-
const XML_NODE_NAME$
|
|
25441
|
-
const SD_ATTR_KEY$
|
|
25442
|
-
const encode$
|
|
25439
|
+
const translator$1n = NodeTranslator.from(config$t);
|
|
25440
|
+
const XML_NODE_NAME$t = "w:i";
|
|
25441
|
+
const SD_ATTR_KEY$d = "italic";
|
|
25442
|
+
const encode$U = (params2) => {
|
|
25443
25443
|
const { nodes } = params2;
|
|
25444
25444
|
const node = nodes?.[0];
|
|
25445
25445
|
if (!node) return void 0;
|
|
25446
25446
|
return {
|
|
25447
25447
|
type: "attr",
|
|
25448
|
-
xmlName: XML_NODE_NAME$
|
|
25449
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25448
|
+
xmlName: XML_NODE_NAME$t,
|
|
25449
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
25450
25450
|
attributes: {
|
|
25451
25451
|
"w:val": node.attributes?.["w:val"] ?? null
|
|
25452
25452
|
}
|
|
25453
25453
|
};
|
|
25454
25454
|
};
|
|
25455
|
-
const config$
|
|
25456
|
-
xmlName: XML_NODE_NAME$
|
|
25457
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25455
|
+
const config$s = {
|
|
25456
|
+
xmlName: XML_NODE_NAME$t,
|
|
25457
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
25458
25458
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25459
|
-
encode: encode$
|
|
25459
|
+
encode: encode$U
|
|
25460
25460
|
};
|
|
25461
|
-
const translator$
|
|
25462
|
-
const encode$
|
|
25463
|
-
const decode$
|
|
25461
|
+
const translator$1m = NodeTranslator.from(config$s);
|
|
25462
|
+
const encode$T = (attributes) => attributes?.["w:val"];
|
|
25463
|
+
const decode$N = (attrs) => attrs?.underline;
|
|
25464
25464
|
const attrConfig$s = Object.freeze({
|
|
25465
25465
|
xmlName: "w:val",
|
|
25466
25466
|
sdName: "underline",
|
|
25467
|
-
encode: encode$
|
|
25468
|
-
decode: decode$
|
|
25467
|
+
encode: encode$T,
|
|
25468
|
+
decode: decode$N
|
|
25469
25469
|
});
|
|
25470
|
-
const encode$
|
|
25471
|
-
const decode$
|
|
25470
|
+
const encode$S = (attributes) => attributes?.["w:color"];
|
|
25471
|
+
const decode$M = (attrs) => attrs?.color;
|
|
25472
25472
|
const attrConfig$r = Object.freeze({
|
|
25473
25473
|
xmlName: "w:color",
|
|
25474
25474
|
sdName: "color",
|
|
25475
|
-
encode: encode$
|
|
25476
|
-
decode: decode$
|
|
25475
|
+
encode: encode$S,
|
|
25476
|
+
decode: decode$M
|
|
25477
25477
|
});
|
|
25478
|
-
const encode$
|
|
25479
|
-
const decode$
|
|
25478
|
+
const encode$R = (attributes) => attributes?.["w:themeColor"];
|
|
25479
|
+
const decode$L = (attrs) => attrs?.themeColor;
|
|
25480
25480
|
const attrConfig$q = Object.freeze({
|
|
25481
25481
|
xmlName: "w:themeColor",
|
|
25482
25482
|
sdName: "themeColor",
|
|
25483
|
-
encode: encode$
|
|
25484
|
-
decode: decode$
|
|
25483
|
+
encode: encode$R,
|
|
25484
|
+
decode: decode$L
|
|
25485
25485
|
});
|
|
25486
|
-
const encode$
|
|
25487
|
-
const decode$
|
|
25486
|
+
const encode$Q = (attributes) => attributes?.["w:themeTint"];
|
|
25487
|
+
const decode$K = (attrs) => attrs?.themeTint;
|
|
25488
25488
|
const attrConfig$p = Object.freeze({
|
|
25489
25489
|
xmlName: "w:themeTint",
|
|
25490
25490
|
sdName: "themeTint",
|
|
25491
|
-
encode: encode$
|
|
25492
|
-
decode: decode$
|
|
25491
|
+
encode: encode$Q,
|
|
25492
|
+
decode: decode$K
|
|
25493
25493
|
});
|
|
25494
|
-
const encode$
|
|
25495
|
-
const decode$
|
|
25494
|
+
const encode$P = (attributes) => attributes?.["w:themeShade"];
|
|
25495
|
+
const decode$J = (attrs) => attrs?.themeShade;
|
|
25496
25496
|
const attrConfig$o = Object.freeze({
|
|
25497
25497
|
xmlName: "w:themeShade",
|
|
25498
25498
|
sdName: "themeShade",
|
|
25499
|
-
encode: encode$
|
|
25500
|
-
decode: decode$
|
|
25499
|
+
encode: encode$P,
|
|
25500
|
+
decode: decode$J
|
|
25501
25501
|
});
|
|
25502
25502
|
const validXmlAttributes$k = [attrConfig$s, attrConfig$r, attrConfig$q, attrConfig$p, attrConfig$o];
|
|
25503
|
-
const XML_NODE_NAME$
|
|
25504
|
-
const SD_ATTR_KEY$
|
|
25505
|
-
const encode$
|
|
25503
|
+
const XML_NODE_NAME$s = "w:u";
|
|
25504
|
+
const SD_ATTR_KEY$c = "underline";
|
|
25505
|
+
const encode$O = (params2, encodedAttrs = {}) => {
|
|
25506
25506
|
const { nodes } = params2;
|
|
25507
25507
|
const node = nodes?.[0];
|
|
25508
25508
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25518,12 +25518,12 @@ const encode$R = (params2, encodedAttrs = {}) => {
|
|
|
25518
25518
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
25519
25519
|
return {
|
|
25520
25520
|
type: "attr",
|
|
25521
|
-
xmlName: XML_NODE_NAME$
|
|
25522
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25521
|
+
xmlName: XML_NODE_NAME$s,
|
|
25522
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
25523
25523
|
attributes
|
|
25524
25524
|
};
|
|
25525
25525
|
};
|
|
25526
|
-
const decode$
|
|
25526
|
+
const decode$I = (params2) => {
|
|
25527
25527
|
const attrs = params2?.node?.attrs || {};
|
|
25528
25528
|
const underlineType = attrs.underlineType ?? attrs.underline ?? null;
|
|
25529
25529
|
const color = attrs.underlineColor ?? attrs.color ?? null;
|
|
@@ -25541,20 +25541,20 @@ const decode$L = (params2) => {
|
|
|
25541
25541
|
if (themeTint) attributes["w:themeTint"] = themeTint;
|
|
25542
25542
|
if (themeShade) attributes["w:themeShade"] = themeShade;
|
|
25543
25543
|
return {
|
|
25544
|
-
name: XML_NODE_NAME$
|
|
25544
|
+
name: XML_NODE_NAME$s,
|
|
25545
25545
|
attributes
|
|
25546
25546
|
};
|
|
25547
25547
|
};
|
|
25548
|
-
const config$
|
|
25549
|
-
xmlName: XML_NODE_NAME$
|
|
25550
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25548
|
+
const config$r = {
|
|
25549
|
+
xmlName: XML_NODE_NAME$s,
|
|
25550
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
25551
25551
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25552
|
-
encode: encode$
|
|
25553
|
-
decode: decode$
|
|
25552
|
+
encode: encode$O,
|
|
25553
|
+
decode: decode$I,
|
|
25554
25554
|
attributes: validXmlAttributes$k
|
|
25555
25555
|
};
|
|
25556
|
-
const translator$
|
|
25557
|
-
const encode$
|
|
25556
|
+
const translator$1l = NodeTranslator.from(config$r);
|
|
25557
|
+
const encode$N = (attributes) => {
|
|
25558
25558
|
const raw = attributes?.["w:val"];
|
|
25559
25559
|
if (raw === void 0 || raw === null) return void 0;
|
|
25560
25560
|
if (typeof raw === "boolean") return raw;
|
|
@@ -25564,24 +25564,24 @@ const encode$Q = (attributes) => {
|
|
|
25564
25564
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
25565
25565
|
return void 0;
|
|
25566
25566
|
};
|
|
25567
|
-
const decode$
|
|
25567
|
+
const decode$H = (attrs) => {
|
|
25568
25568
|
if (attrs?.strike === false) return "0";
|
|
25569
25569
|
return void 0;
|
|
25570
25570
|
};
|
|
25571
25571
|
const attrConfig$n = Object.freeze({
|
|
25572
25572
|
xmlName: "w:val",
|
|
25573
25573
|
sdName: "strike",
|
|
25574
|
-
encode: encode$
|
|
25575
|
-
decode: decode$
|
|
25574
|
+
encode: encode$N,
|
|
25575
|
+
decode: decode$H
|
|
25576
25576
|
});
|
|
25577
25577
|
const validXmlAttributes$j = [attrConfig$n];
|
|
25578
|
-
const XML_NODE_NAME$
|
|
25579
|
-
const SD_ATTR_KEY$
|
|
25580
|
-
const encode$
|
|
25578
|
+
const XML_NODE_NAME$r = "w:strike";
|
|
25579
|
+
const SD_ATTR_KEY$b = "strike";
|
|
25580
|
+
const encode$M = (params2, encodedAttrs = {}) => {
|
|
25581
25581
|
const { nodes } = params2;
|
|
25582
25582
|
const node = nodes?.[0];
|
|
25583
25583
|
if (!node) return void 0;
|
|
25584
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
25584
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$b];
|
|
25585
25585
|
let attributes;
|
|
25586
25586
|
if (val === false) attributes = { "w:val": "0" };
|
|
25587
25587
|
else if (val === true) attributes = {};
|
|
@@ -25590,55 +25590,55 @@ const encode$P = (params2, encodedAttrs = {}) => {
|
|
|
25590
25590
|
else if (val === true && attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
25591
25591
|
return {
|
|
25592
25592
|
type: "attr",
|
|
25593
|
-
xmlName: XML_NODE_NAME$
|
|
25594
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25593
|
+
xmlName: XML_NODE_NAME$r,
|
|
25594
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
25595
25595
|
attributes
|
|
25596
25596
|
};
|
|
25597
25597
|
};
|
|
25598
|
-
const config$
|
|
25599
|
-
xmlName: XML_NODE_NAME$
|
|
25600
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25598
|
+
const config$q = {
|
|
25599
|
+
xmlName: XML_NODE_NAME$r,
|
|
25600
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
25601
25601
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25602
|
-
encode: encode$
|
|
25602
|
+
encode: encode$M,
|
|
25603
25603
|
attributes: validXmlAttributes$j
|
|
25604
25604
|
};
|
|
25605
|
-
const translator$
|
|
25606
|
-
const encode$
|
|
25607
|
-
const decode$
|
|
25605
|
+
const translator$1k = NodeTranslator.from(config$q);
|
|
25606
|
+
const encode$L = (attributes) => attributes?.["w:val"];
|
|
25607
|
+
const decode$G = (attrs) => attrs?.color;
|
|
25608
25608
|
const attrConfig$m = Object.freeze({
|
|
25609
25609
|
xmlName: "w:val",
|
|
25610
25610
|
sdName: "color",
|
|
25611
|
-
encode: encode$
|
|
25612
|
-
decode: decode$
|
|
25611
|
+
encode: encode$L,
|
|
25612
|
+
decode: decode$G
|
|
25613
25613
|
});
|
|
25614
|
-
const encode$
|
|
25615
|
-
const decode$
|
|
25614
|
+
const encode$K = (attributes) => attributes?.["w:themeColor"];
|
|
25615
|
+
const decode$F = (attrs) => attrs?.themeColor;
|
|
25616
25616
|
const attrConfig$l = Object.freeze({
|
|
25617
25617
|
xmlName: "w:themeColor",
|
|
25618
25618
|
sdName: "themeColor",
|
|
25619
|
-
encode: encode$
|
|
25620
|
-
decode: decode$
|
|
25619
|
+
encode: encode$K,
|
|
25620
|
+
decode: decode$F
|
|
25621
25621
|
});
|
|
25622
|
-
const encode$
|
|
25623
|
-
const decode$
|
|
25622
|
+
const encode$J = (attributes) => attributes?.["w:themeTint"];
|
|
25623
|
+
const decode$E = (attrs) => attrs?.themeTint;
|
|
25624
25624
|
const attrConfig$k = Object.freeze({
|
|
25625
25625
|
xmlName: "w:themeTint",
|
|
25626
25626
|
sdName: "themeTint",
|
|
25627
|
-
encode: encode$
|
|
25628
|
-
decode: decode$
|
|
25627
|
+
encode: encode$J,
|
|
25628
|
+
decode: decode$E
|
|
25629
25629
|
});
|
|
25630
|
-
const encode$
|
|
25631
|
-
const decode$
|
|
25630
|
+
const encode$I = (attributes) => attributes?.["w:themeShade"];
|
|
25631
|
+
const decode$D = (attrs) => attrs?.themeShade;
|
|
25632
25632
|
const attrConfig$j = Object.freeze({
|
|
25633
25633
|
xmlName: "w:themeShade",
|
|
25634
25634
|
sdName: "themeShade",
|
|
25635
|
-
encode: encode$
|
|
25636
|
-
decode: decode$
|
|
25635
|
+
encode: encode$I,
|
|
25636
|
+
decode: decode$D
|
|
25637
25637
|
});
|
|
25638
25638
|
const validXmlAttributes$i = [attrConfig$m, attrConfig$l, attrConfig$k, attrConfig$j];
|
|
25639
|
-
const XML_NODE_NAME$
|
|
25640
|
-
const SD_ATTR_KEY$
|
|
25641
|
-
const encode$
|
|
25639
|
+
const XML_NODE_NAME$q = "w:color";
|
|
25640
|
+
const SD_ATTR_KEY$a = "color";
|
|
25641
|
+
const encode$H = (params2, encodedAttrs = {}) => {
|
|
25642
25642
|
const { nodes } = params2;
|
|
25643
25643
|
const node = nodes?.[0];
|
|
25644
25644
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25653,63 +25653,63 @@ const encode$K = (params2, encodedAttrs = {}) => {
|
|
|
25653
25653
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
25654
25654
|
return {
|
|
25655
25655
|
type: "attr",
|
|
25656
|
-
xmlName: XML_NODE_NAME$
|
|
25657
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25656
|
+
xmlName: XML_NODE_NAME$q,
|
|
25657
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
25658
25658
|
attributes
|
|
25659
25659
|
};
|
|
25660
25660
|
};
|
|
25661
|
-
const config$
|
|
25662
|
-
xmlName: XML_NODE_NAME$
|
|
25663
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25661
|
+
const config$p = {
|
|
25662
|
+
xmlName: XML_NODE_NAME$q,
|
|
25663
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
25664
25664
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25665
|
-
encode: encode$
|
|
25665
|
+
encode: encode$H,
|
|
25666
25666
|
attributes: validXmlAttributes$i
|
|
25667
25667
|
};
|
|
25668
|
-
const translator$
|
|
25669
|
-
const encode$
|
|
25670
|
-
const decode$
|
|
25668
|
+
const translator$1j = NodeTranslator.from(config$p);
|
|
25669
|
+
const encode$G = (attributes) => attributes?.["w:eastAsia"];
|
|
25670
|
+
const decode$C = (attrs) => attrs?.eastAsia;
|
|
25671
25671
|
const attrConfig$i = Object.freeze({
|
|
25672
25672
|
xmlName: "w:eastAsia",
|
|
25673
25673
|
sdName: "eastAsia",
|
|
25674
|
-
encode: encode$
|
|
25675
|
-
decode: decode$
|
|
25674
|
+
encode: encode$G,
|
|
25675
|
+
decode: decode$C
|
|
25676
25676
|
});
|
|
25677
|
-
const encode$
|
|
25678
|
-
const decode$
|
|
25677
|
+
const encode$F = (attributes) => attributes?.["w:ascii"];
|
|
25678
|
+
const decode$B = (attrs) => attrs?.ascii;
|
|
25679
25679
|
const attrConfig$h = Object.freeze({
|
|
25680
25680
|
xmlName: "w:ascii",
|
|
25681
25681
|
sdName: "ascii",
|
|
25682
|
-
encode: encode$
|
|
25683
|
-
decode: decode$
|
|
25682
|
+
encode: encode$F,
|
|
25683
|
+
decode: decode$B
|
|
25684
25684
|
});
|
|
25685
|
-
const encode$
|
|
25686
|
-
const decode$
|
|
25685
|
+
const encode$E = (attributes) => attributes?.["w:hAnsi"];
|
|
25686
|
+
const decode$A = (attrs) => attrs?.hAnsi;
|
|
25687
25687
|
const attrConfig$g = Object.freeze({
|
|
25688
25688
|
xmlName: "w:hAnsi",
|
|
25689
25689
|
sdName: "hAnsi",
|
|
25690
|
-
encode: encode$
|
|
25691
|
-
decode: decode$
|
|
25690
|
+
encode: encode$E,
|
|
25691
|
+
decode: decode$A
|
|
25692
25692
|
});
|
|
25693
|
-
const encode$
|
|
25694
|
-
const decode$
|
|
25693
|
+
const encode$D = (attributes) => attributes?.["w:cs"];
|
|
25694
|
+
const decode$z = (attrs) => attrs?.cs;
|
|
25695
25695
|
const attrConfig$f = Object.freeze({
|
|
25696
25696
|
xmlName: "w:cs",
|
|
25697
25697
|
sdName: "cs",
|
|
25698
|
-
encode: encode$
|
|
25699
|
-
decode: decode$
|
|
25698
|
+
encode: encode$D,
|
|
25699
|
+
decode: decode$z
|
|
25700
25700
|
});
|
|
25701
|
-
const encode$
|
|
25702
|
-
const decode$
|
|
25701
|
+
const encode$C = (attributes) => attributes?.["w:val"];
|
|
25702
|
+
const decode$y = (attrs) => attrs?.value;
|
|
25703
25703
|
const attrConfig$e = Object.freeze({
|
|
25704
25704
|
xmlName: "w:val",
|
|
25705
25705
|
sdName: "value",
|
|
25706
|
-
encode: encode$
|
|
25707
|
-
decode: decode$
|
|
25706
|
+
encode: encode$C,
|
|
25707
|
+
decode: decode$y
|
|
25708
25708
|
});
|
|
25709
25709
|
const validXmlAttributes$h = [attrConfig$i, attrConfig$h, attrConfig$g, attrConfig$f, attrConfig$e];
|
|
25710
|
-
const XML_NODE_NAME$
|
|
25711
|
-
const SD_ATTR_KEY$
|
|
25712
|
-
const encode$
|
|
25710
|
+
const XML_NODE_NAME$p = "w:rFonts";
|
|
25711
|
+
const SD_ATTR_KEY$9 = "fontFamily";
|
|
25712
|
+
const encode$B = (params2, encodedAttrs = {}) => {
|
|
25713
25713
|
const { nodes } = params2;
|
|
25714
25714
|
const node = nodes?.[0];
|
|
25715
25715
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25733,111 +25733,119 @@ const encode$E = (params2, encodedAttrs = {}) => {
|
|
|
25733
25733
|
attributes["w:val"] = attributes["w:eastAsia"];
|
|
25734
25734
|
}
|
|
25735
25735
|
if (attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
25736
|
+
if (params2.inlineDocumentFonts) {
|
|
25737
|
+
const font = attributes["w:ascii"];
|
|
25738
|
+
if (font) {
|
|
25739
|
+
if (!params2.inlineDocumentFonts.includes(font)) {
|
|
25740
|
+
params2.inlineDocumentFonts.push(font);
|
|
25741
|
+
}
|
|
25742
|
+
}
|
|
25743
|
+
}
|
|
25736
25744
|
return {
|
|
25737
25745
|
type: "attr",
|
|
25738
|
-
xmlName: XML_NODE_NAME$
|
|
25739
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25746
|
+
xmlName: XML_NODE_NAME$p,
|
|
25747
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
25740
25748
|
attributes
|
|
25741
25749
|
};
|
|
25742
25750
|
};
|
|
25743
|
-
const config$
|
|
25744
|
-
xmlName: XML_NODE_NAME$
|
|
25745
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25751
|
+
const config$o = {
|
|
25752
|
+
xmlName: XML_NODE_NAME$p,
|
|
25753
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
25746
25754
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25747
|
-
encode: encode$
|
|
25755
|
+
encode: encode$B,
|
|
25748
25756
|
attributes: validXmlAttributes$h
|
|
25749
25757
|
};
|
|
25750
|
-
const translator$
|
|
25751
|
-
const encode$
|
|
25752
|
-
const decode$
|
|
25758
|
+
const translator$1i = NodeTranslator.from(config$o);
|
|
25759
|
+
const encode$A = (attributes) => attributes?.["w:val"];
|
|
25760
|
+
const decode$x = (attrs) => attrs?.styleId;
|
|
25753
25761
|
const attrConfig$d = Object.freeze({
|
|
25754
25762
|
xmlName: "w:val",
|
|
25755
25763
|
sdName: "styleId",
|
|
25756
|
-
encode: encode$
|
|
25757
|
-
decode: decode$
|
|
25764
|
+
encode: encode$A,
|
|
25765
|
+
decode: decode$x
|
|
25758
25766
|
});
|
|
25759
25767
|
const validXmlAttributes$g = [attrConfig$d];
|
|
25760
|
-
const XML_NODE_NAME$
|
|
25761
|
-
const SD_ATTR_KEY$
|
|
25762
|
-
const encode$
|
|
25768
|
+
const XML_NODE_NAME$o = "w:rStyle";
|
|
25769
|
+
const SD_ATTR_KEY$8 = "styleId";
|
|
25770
|
+
const encode$z = (params2, encodedAttrs = {}) => {
|
|
25763
25771
|
const { nodes } = params2;
|
|
25764
25772
|
const node = nodes?.[0];
|
|
25765
25773
|
const value = encodedAttrs.styleId ?? node?.attributes?.["w:val"];
|
|
25766
25774
|
return {
|
|
25767
25775
|
type: "attr",
|
|
25768
|
-
xmlName: XML_NODE_NAME$
|
|
25769
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25776
|
+
xmlName: XML_NODE_NAME$o,
|
|
25777
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
25770
25778
|
attributes: { "w:val": value ?? null }
|
|
25771
25779
|
};
|
|
25772
25780
|
};
|
|
25773
|
-
const config$
|
|
25774
|
-
xmlName: XML_NODE_NAME$
|
|
25775
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25781
|
+
const config$n = {
|
|
25782
|
+
xmlName: XML_NODE_NAME$o,
|
|
25783
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
25776
25784
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25777
|
-
encode: encode$
|
|
25785
|
+
encode: encode$z,
|
|
25778
25786
|
attributes: validXmlAttributes$g
|
|
25779
25787
|
};
|
|
25780
|
-
const translator$
|
|
25781
|
-
const encode$
|
|
25782
|
-
const decode$
|
|
25788
|
+
const translator$1h = NodeTranslator.from(config$n);
|
|
25789
|
+
const encode$y = (attributes) => attributes?.["w:val"];
|
|
25790
|
+
const decode$w = (attrs) => attrs?.fontSize;
|
|
25783
25791
|
const attrConfig$c = Object.freeze({
|
|
25784
25792
|
xmlName: "w:val",
|
|
25785
25793
|
sdName: "fontSize",
|
|
25786
|
-
encode: encode$
|
|
25787
|
-
decode: decode$
|
|
25794
|
+
encode: encode$y,
|
|
25795
|
+
decode: decode$w
|
|
25788
25796
|
});
|
|
25789
25797
|
const validXmlAttributes$f = [attrConfig$c];
|
|
25790
|
-
const XML_NODE_NAME$
|
|
25791
|
-
const SD_ATTR_KEY$
|
|
25792
|
-
const encode$
|
|
25798
|
+
const XML_NODE_NAME$n = "w:sz";
|
|
25799
|
+
const SD_ATTR_KEY$7 = "fontSize";
|
|
25800
|
+
const encode$x = (params2, encodedAttrs = {}) => {
|
|
25793
25801
|
const { nodes } = params2;
|
|
25794
25802
|
const node = nodes?.[0];
|
|
25795
25803
|
const value = encodedAttrs.fontSize ?? node?.attributes?.["w:val"];
|
|
25796
25804
|
return {
|
|
25797
25805
|
type: "attr",
|
|
25798
|
-
xmlName: XML_NODE_NAME$
|
|
25799
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25806
|
+
xmlName: XML_NODE_NAME$n,
|
|
25807
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
25800
25808
|
attributes: { "w:val": value ?? null }
|
|
25801
25809
|
};
|
|
25802
25810
|
};
|
|
25803
|
-
const config$
|
|
25804
|
-
xmlName: XML_NODE_NAME$
|
|
25805
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25811
|
+
const config$m = {
|
|
25812
|
+
xmlName: XML_NODE_NAME$n,
|
|
25813
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
25806
25814
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25807
|
-
encode: encode$
|
|
25815
|
+
encode: encode$x,
|
|
25808
25816
|
attributes: validXmlAttributes$f
|
|
25809
25817
|
};
|
|
25810
|
-
const translator$
|
|
25811
|
-
const encode$
|
|
25812
|
-
const decode$
|
|
25818
|
+
const translator$1g = NodeTranslator.from(config$m);
|
|
25819
|
+
const encode$w = (attributes) => attributes?.["w:val"];
|
|
25820
|
+
const decode$v = (attrs) => attrs?.fontSizeCs;
|
|
25813
25821
|
const attrConfig$b = Object.freeze({
|
|
25814
25822
|
xmlName: "w:val",
|
|
25815
25823
|
sdName: "fontSizeCs",
|
|
25816
|
-
encode: encode$
|
|
25817
|
-
decode: decode$
|
|
25824
|
+
encode: encode$w,
|
|
25825
|
+
decode: decode$v
|
|
25818
25826
|
});
|
|
25819
25827
|
const validXmlAttributes$e = [attrConfig$b];
|
|
25820
|
-
const XML_NODE_NAME$
|
|
25821
|
-
const SD_ATTR_KEY$
|
|
25822
|
-
const encode$
|
|
25828
|
+
const XML_NODE_NAME$m = "w:szCs";
|
|
25829
|
+
const SD_ATTR_KEY$6 = "fontSizeCs";
|
|
25830
|
+
const encode$v = (params2, encodedAttrs = {}) => {
|
|
25823
25831
|
const { nodes } = params2;
|
|
25824
25832
|
const node = nodes?.[0];
|
|
25825
25833
|
const value = encodedAttrs.fontSizeCs ?? node?.attributes?.["w:val"];
|
|
25826
25834
|
return {
|
|
25827
25835
|
type: "attr",
|
|
25828
|
-
xmlName: XML_NODE_NAME$
|
|
25829
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25836
|
+
xmlName: XML_NODE_NAME$m,
|
|
25837
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
25830
25838
|
attributes: { "w:val": value ?? null }
|
|
25831
25839
|
};
|
|
25832
25840
|
};
|
|
25833
|
-
const config$
|
|
25834
|
-
xmlName: XML_NODE_NAME$
|
|
25835
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25841
|
+
const config$l = {
|
|
25842
|
+
xmlName: XML_NODE_NAME$m,
|
|
25843
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
25836
25844
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25837
|
-
encode: encode$
|
|
25845
|
+
encode: encode$v,
|
|
25838
25846
|
attributes: validXmlAttributes$e
|
|
25839
25847
|
};
|
|
25840
|
-
const translator$
|
|
25848
|
+
const translator$1f = NodeTranslator.from(config$l);
|
|
25841
25849
|
const generateV2HandlerEntity = (handlerName, translator2) => ({
|
|
25842
25850
|
handlerName,
|
|
25843
25851
|
handler: (params2) => {
|
|
@@ -25861,7 +25869,7 @@ function createSingleAttrPropertyHandler(xmlName, sdName = null, attrName = "w:v
|
|
|
25861
25869
|
xmlName,
|
|
25862
25870
|
sdNodeOrKeyName: sdName,
|
|
25863
25871
|
encode: ({ nodes }) => {
|
|
25864
|
-
return transformEncode(nodes[0]
|
|
25872
|
+
return transformEncode(nodes[0]?.attributes?.[attrName]) ?? void 0;
|
|
25865
25873
|
},
|
|
25866
25874
|
decode: ({ node }) => {
|
|
25867
25875
|
const value = node.attrs?.[sdName] != null ? transformDecode(node.attrs[sdName]) : void 0;
|
|
@@ -25893,8 +25901,32 @@ function createBorderPropertyHandler(xmlName, sdName = null) {
|
|
|
25893
25901
|
xmlName,
|
|
25894
25902
|
sdNodeOrKeyName: sdName,
|
|
25895
25903
|
attributes: [
|
|
25896
|
-
createAttributeHandler(
|
|
25897
|
-
|
|
25904
|
+
createAttributeHandler(
|
|
25905
|
+
"w:val",
|
|
25906
|
+
"val",
|
|
25907
|
+
(v2) => v2 === "nil" ? "none" : v2,
|
|
25908
|
+
(v2) => v2 === "none" ? "nil" : v2
|
|
25909
|
+
),
|
|
25910
|
+
createAttributeHandler(
|
|
25911
|
+
"w:color",
|
|
25912
|
+
"color",
|
|
25913
|
+
(v2) => {
|
|
25914
|
+
if (v2 === "auto") {
|
|
25915
|
+
return null;
|
|
25916
|
+
} else if (v2) {
|
|
25917
|
+
return `#${v2}`;
|
|
25918
|
+
} else {
|
|
25919
|
+
return void 0;
|
|
25920
|
+
}
|
|
25921
|
+
},
|
|
25922
|
+
(v2) => {
|
|
25923
|
+
if (v2) {
|
|
25924
|
+
return v2.replace("#", "");
|
|
25925
|
+
} else {
|
|
25926
|
+
return void 0;
|
|
25927
|
+
}
|
|
25928
|
+
}
|
|
25929
|
+
),
|
|
25898
25930
|
createAttributeHandler("w:themeColor"),
|
|
25899
25931
|
createAttributeHandler("w:themeTint"),
|
|
25900
25932
|
createAttributeHandler("w:themeShade"),
|
|
@@ -25960,6 +25992,37 @@ function decodeProperties(translatorsBySdName, properties) {
|
|
|
25960
25992
|
});
|
|
25961
25993
|
return elements;
|
|
25962
25994
|
}
|
|
25995
|
+
function createNestedPropertiesTranslator(xmlName, sdName, propertyTranslators2, defaultEncodedAttrs = {}) {
|
|
25996
|
+
const propertyTranslatorsByXmlName = {};
|
|
25997
|
+
const propertyTranslatorsBySdName = {};
|
|
25998
|
+
propertyTranslators2.forEach((translator2) => {
|
|
25999
|
+
propertyTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
26000
|
+
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
26001
|
+
});
|
|
26002
|
+
return {
|
|
26003
|
+
xmlName,
|
|
26004
|
+
sdNodeOrKeyName: sdName,
|
|
26005
|
+
type: NodeTranslator.translatorTypes.NODE,
|
|
26006
|
+
attributes: [],
|
|
26007
|
+
encode: (params2) => {
|
|
26008
|
+
const { nodes } = params2;
|
|
26009
|
+
const node = nodes[0];
|
|
26010
|
+
const attributes = { ...defaultEncodedAttrs, ...encodeProperties(node, propertyTranslatorsByXmlName) };
|
|
26011
|
+
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
26012
|
+
},
|
|
26013
|
+
decode: (params2) => {
|
|
26014
|
+
const currentValue = params2.node.attrs?.[sdName];
|
|
26015
|
+
const elements = decodeProperties(propertyTranslatorsBySdName, currentValue);
|
|
26016
|
+
const newNode = {
|
|
26017
|
+
name: xmlName,
|
|
26018
|
+
type: "element",
|
|
26019
|
+
attributes: {},
|
|
26020
|
+
elements
|
|
26021
|
+
};
|
|
26022
|
+
return newNode;
|
|
26023
|
+
}
|
|
26024
|
+
};
|
|
26025
|
+
}
|
|
25963
26026
|
const parseBoolean = (value) => value != null ? ["1", "true"].includes(value) : void 0;
|
|
25964
26027
|
const booleanToString = (value) => value != null ? value ? "1" : "0" : void 0;
|
|
25965
26028
|
const parseInteger = (value) => {
|
|
@@ -25971,9 +26034,9 @@ const integerToString = (value) => {
|
|
|
25971
26034
|
const intValue = parseInteger(value);
|
|
25972
26035
|
return intValue != void 0 ? String(intValue) : void 0;
|
|
25973
26036
|
};
|
|
25974
|
-
const XML_NODE_NAME$
|
|
25975
|
-
const SD_ATTR_KEY$
|
|
25976
|
-
const encode$
|
|
26037
|
+
const XML_NODE_NAME$l = "w:caps";
|
|
26038
|
+
const SD_ATTR_KEY$5 = "textTransform";
|
|
26039
|
+
const encode$u = (params2, encodedAttrs = {}) => {
|
|
25977
26040
|
const { nodes } = params2;
|
|
25978
26041
|
const node = nodes[0];
|
|
25979
26042
|
if (!node) return void 0;
|
|
@@ -25985,31 +26048,31 @@ const encode$x = (params2, encodedAttrs = {}) => {
|
|
|
25985
26048
|
}
|
|
25986
26049
|
return {
|
|
25987
26050
|
type: "attr",
|
|
25988
|
-
xmlName: XML_NODE_NAME$
|
|
25989
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25990
|
-
attributes: { [SD_ATTR_KEY$
|
|
26051
|
+
xmlName: XML_NODE_NAME$l,
|
|
26052
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
26053
|
+
attributes: { [SD_ATTR_KEY$5]: result }
|
|
25991
26054
|
};
|
|
25992
26055
|
};
|
|
25993
|
-
const config$
|
|
25994
|
-
xmlName: XML_NODE_NAME$
|
|
25995
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
26056
|
+
const config$k = {
|
|
26057
|
+
xmlName: XML_NODE_NAME$l,
|
|
26058
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
25996
26059
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25997
|
-
encode: encode$
|
|
26060
|
+
encode: encode$u,
|
|
25998
26061
|
attributes: [createAttributeHandler("w:val")]
|
|
25999
26062
|
};
|
|
26000
|
-
const translator
|
|
26063
|
+
const translator$1e = NodeTranslator.from(config$k);
|
|
26001
26064
|
const runPropertyTranslators = Object.freeze({
|
|
26002
|
-
"w:b": translator$
|
|
26003
|
-
"w:i": translator$
|
|
26004
|
-
"w:u": translator$
|
|
26005
|
-
"w:strike": translator$
|
|
26006
|
-
"w:color": translator$
|
|
26007
|
-
"w:highlight": translator$
|
|
26008
|
-
"w:rFonts": translator$
|
|
26009
|
-
"w:rStyle": translator$
|
|
26010
|
-
"w:sz": translator$
|
|
26011
|
-
"w:szCs": translator$
|
|
26012
|
-
"w:caps": translator
|
|
26065
|
+
"w:b": translator$1n,
|
|
26066
|
+
"w:i": translator$1m,
|
|
26067
|
+
"w:u": translator$1l,
|
|
26068
|
+
"w:strike": translator$1k,
|
|
26069
|
+
"w:color": translator$1j,
|
|
26070
|
+
"w:highlight": translator$1q,
|
|
26071
|
+
"w:rFonts": translator$1i,
|
|
26072
|
+
"w:rStyle": translator$1h,
|
|
26073
|
+
"w:sz": translator$1g,
|
|
26074
|
+
"w:szCs": translator$1f,
|
|
26075
|
+
"w:caps": translator$1e
|
|
26013
26076
|
});
|
|
26014
26077
|
const rawRunPropertyXmlNames = Object.freeze(["w:lang", "w:shd"]);
|
|
26015
26078
|
const RAW_CHILD_NAME_SET = new Set(rawRunPropertyXmlNames);
|
|
@@ -26023,9 +26086,9 @@ const toRunPropertyEntry = (candidate) => {
|
|
|
26023
26086
|
attributes: { ...candidate.attributes || {} }
|
|
26024
26087
|
};
|
|
26025
26088
|
};
|
|
26026
|
-
const XML_NODE_NAME$
|
|
26027
|
-
const SD_ATTR_KEY$
|
|
26028
|
-
const encode$
|
|
26089
|
+
const XML_NODE_NAME$k = "w:rPr";
|
|
26090
|
+
const SD_ATTR_KEY$4 = "runProperties";
|
|
26091
|
+
const encode$t = (params2) => {
|
|
26029
26092
|
const { nodes } = params2;
|
|
26030
26093
|
const node = nodes?.[0] || {};
|
|
26031
26094
|
const contents = Array.isArray(node.elements) ? node.elements : [];
|
|
@@ -26059,16 +26122,16 @@ const encode$w = (params2) => {
|
|
|
26059
26122
|
attributes: runPropsArray
|
|
26060
26123
|
};
|
|
26061
26124
|
};
|
|
26062
|
-
const config$
|
|
26063
|
-
xmlName: XML_NODE_NAME$
|
|
26064
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
26125
|
+
const config$j = {
|
|
26126
|
+
xmlName: XML_NODE_NAME$k,
|
|
26127
|
+
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
26065
26128
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
26066
|
-
encode: encode$
|
|
26129
|
+
encode: encode$t
|
|
26067
26130
|
};
|
|
26068
|
-
const translator$
|
|
26131
|
+
const translator$1d = NodeTranslator.from(config$j);
|
|
26069
26132
|
const EAST_ASIAN_CHARACTER_REGEX = /[\u1100-\u11FF\u2E80-\u2EFF\u2F00-\u2FDF\u3040-\u30FF\u3100-\u312F\u3130-\u318F\u31A0-\u31BF\u3400-\u4DBF\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7AF\uF900-\uFAFF\uFF00-\uFFEF]/u;
|
|
26070
26133
|
const containsEastAsianCharacters = (text) => EAST_ASIAN_CHARACTER_REGEX.test(text);
|
|
26071
|
-
const collectRunProperties = (params2, rPrNode, translator2 = translator$
|
|
26134
|
+
const collectRunProperties = (params2, rPrNode, translator2 = translator$1d) => {
|
|
26072
26135
|
if (!rPrNode) return { entries: [], hadRPr: false, styleChangeMarks: [] };
|
|
26073
26136
|
const result = translator2.encode({ ...params2, nodes: [rPrNode] }) || {};
|
|
26074
26137
|
let entries = [];
|
|
@@ -26541,7 +26604,7 @@ const ensureTrackedWrapper = (runs, trackingMarksByType = /* @__PURE__ */ new Ma
|
|
|
26541
26604
|
}
|
|
26542
26605
|
return runs;
|
|
26543
26606
|
};
|
|
26544
|
-
const XML_NODE_NAME$
|
|
26607
|
+
const XML_NODE_NAME$j = "w:hyperlink";
|
|
26545
26608
|
const SD_NODE_NAME$e = "link";
|
|
26546
26609
|
const _createAttributeHandler = (xmlName, sdName) => ({
|
|
26547
26610
|
xmlName,
|
|
@@ -26562,7 +26625,7 @@ const validXmlAttributes$d = [
|
|
|
26562
26625
|
_createAttributeHandler("r:id", "rId"),
|
|
26563
26626
|
_createAttributeHandler("w:tgtFrame", "target")
|
|
26564
26627
|
];
|
|
26565
|
-
const encode$
|
|
26628
|
+
const encode$s = (params2, encodedAttrs) => {
|
|
26566
26629
|
const { nodes, docx, nodeListHandler } = params2;
|
|
26567
26630
|
const node = nodes[0];
|
|
26568
26631
|
let href = _resolveHref(docx, encodedAttrs);
|
|
@@ -26596,7 +26659,7 @@ const _resolveHref = (docx, encodedAttrs) => {
|
|
|
26596
26659
|
}
|
|
26597
26660
|
return href;
|
|
26598
26661
|
};
|
|
26599
|
-
function decode$
|
|
26662
|
+
function decode$u(params2) {
|
|
26600
26663
|
const { hyperlinkGroup = [params2.node] } = params2.extraParams || {};
|
|
26601
26664
|
const node = hyperlinkGroup[0];
|
|
26602
26665
|
const linkMark = node.marks.find((m2) => m2.type === "link");
|
|
@@ -26645,55 +26708,55 @@ function _addNewLinkRelationship(params2, link) {
|
|
|
26645
26708
|
});
|
|
26646
26709
|
return id;
|
|
26647
26710
|
}
|
|
26648
|
-
const config$
|
|
26649
|
-
xmlName: XML_NODE_NAME$
|
|
26711
|
+
const config$i = {
|
|
26712
|
+
xmlName: XML_NODE_NAME$j,
|
|
26650
26713
|
sdNodeOrKeyName: SD_NODE_NAME$e,
|
|
26651
26714
|
type: NodeTranslator.translatorTypes.NODE,
|
|
26652
|
-
encode: encode$
|
|
26653
|
-
decode: decode$
|
|
26715
|
+
encode: encode$s,
|
|
26716
|
+
decode: decode$u,
|
|
26654
26717
|
attributes: validXmlAttributes$d
|
|
26655
26718
|
};
|
|
26656
|
-
const translator$
|
|
26657
|
-
const encode$
|
|
26719
|
+
const translator$1c = NodeTranslator.from(config$i);
|
|
26720
|
+
const encode$r = (attributes) => {
|
|
26658
26721
|
return attributes["w:rsidR"];
|
|
26659
26722
|
};
|
|
26660
|
-
const decode$
|
|
26723
|
+
const decode$t = (attrs) => {
|
|
26661
26724
|
return attrs.rsidR;
|
|
26662
26725
|
};
|
|
26663
26726
|
const attrConfig$a = Object.freeze({
|
|
26664
26727
|
xmlName: "w:rsidR",
|
|
26665
26728
|
sdName: "rsidR",
|
|
26666
|
-
encode: encode$
|
|
26667
|
-
decode: decode$
|
|
26729
|
+
encode: encode$r,
|
|
26730
|
+
decode: decode$t
|
|
26668
26731
|
});
|
|
26669
|
-
const encode$
|
|
26732
|
+
const encode$q = (attributes) => {
|
|
26670
26733
|
return attributes["w:rsidRPr"];
|
|
26671
26734
|
};
|
|
26672
|
-
const decode$
|
|
26735
|
+
const decode$s = (attrs) => {
|
|
26673
26736
|
return attrs.rsidRPr;
|
|
26674
26737
|
};
|
|
26675
26738
|
const attrConfig$9 = Object.freeze({
|
|
26676
26739
|
xmlName: "w:rsidRPr",
|
|
26677
26740
|
sdName: "rsidRPr",
|
|
26678
|
-
encode: encode$
|
|
26679
|
-
decode: decode$
|
|
26741
|
+
encode: encode$q,
|
|
26742
|
+
decode: decode$s
|
|
26680
26743
|
});
|
|
26681
|
-
const encode$
|
|
26744
|
+
const encode$p = (attributes) => {
|
|
26682
26745
|
return attributes["w:rsidDel"];
|
|
26683
26746
|
};
|
|
26684
|
-
const decode$
|
|
26747
|
+
const decode$r = (attrs) => {
|
|
26685
26748
|
return attrs.rsidDel;
|
|
26686
26749
|
};
|
|
26687
26750
|
const attrConfig$8 = Object.freeze({
|
|
26688
26751
|
xmlName: "w:rsidDel",
|
|
26689
26752
|
sdName: "rsidDel",
|
|
26690
|
-
encode: encode$
|
|
26691
|
-
decode: decode$
|
|
26753
|
+
encode: encode$p,
|
|
26754
|
+
decode: decode$r
|
|
26692
26755
|
});
|
|
26693
26756
|
const validXmlAttributes$c = [attrConfig$a, attrConfig$9, attrConfig$8];
|
|
26694
|
-
const XML_NODE_NAME$
|
|
26757
|
+
const XML_NODE_NAME$i = "w:r";
|
|
26695
26758
|
const SD_KEY_NAME = "run";
|
|
26696
|
-
const encode$
|
|
26759
|
+
const encode$o = (params2, encodedAttrs = {}) => {
|
|
26697
26760
|
const { nodes = [], nodeListHandler } = params2 || {};
|
|
26698
26761
|
const runNode = nodes[0];
|
|
26699
26762
|
if (!runNode) return void 0;
|
|
@@ -26741,7 +26804,7 @@ const encode$r = (params2, encodedAttrs = {}) => {
|
|
|
26741
26804
|
}
|
|
26742
26805
|
return runNodeResult;
|
|
26743
26806
|
};
|
|
26744
|
-
const decode$
|
|
26807
|
+
const decode$q = (params2, decodedAttrs = {}) => {
|
|
26745
26808
|
const { node } = params2 || {};
|
|
26746
26809
|
if (!node) return void 0;
|
|
26747
26810
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
@@ -26750,7 +26813,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26750
26813
|
...params2.extraParams,
|
|
26751
26814
|
linkProcessed: true
|
|
26752
26815
|
};
|
|
26753
|
-
return translator$
|
|
26816
|
+
return translator$1c.decode({ ...params2, extraParams });
|
|
26754
26817
|
}
|
|
26755
26818
|
const { runNode: runNodeForExport, trackingMarksByType } = prepareRunTrackingContext(node);
|
|
26756
26819
|
const runAttrs = runNodeForExport.attrs || {};
|
|
@@ -26806,7 +26869,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26806
26869
|
runs.push(trackedClone);
|
|
26807
26870
|
return;
|
|
26808
26871
|
}
|
|
26809
|
-
const runWrapper = { name: XML_NODE_NAME$
|
|
26872
|
+
const runWrapper = { name: XML_NODE_NAME$i, elements: [] };
|
|
26810
26873
|
applyBaseRunProps(runWrapper);
|
|
26811
26874
|
if (!Array.isArray(runWrapper.elements)) runWrapper.elements = [];
|
|
26812
26875
|
runWrapper.elements.push(cloneXmlNode(child));
|
|
@@ -26814,7 +26877,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26814
26877
|
});
|
|
26815
26878
|
const trackedRuns = ensureTrackedWrapper(runs, trackingMarksByType);
|
|
26816
26879
|
if (!trackedRuns.length) {
|
|
26817
|
-
const emptyRun = { name: XML_NODE_NAME$
|
|
26880
|
+
const emptyRun = { name: XML_NODE_NAME$i, elements: [] };
|
|
26818
26881
|
applyBaseRunProps(emptyRun);
|
|
26819
26882
|
trackedRuns.push(emptyRun);
|
|
26820
26883
|
}
|
|
@@ -26828,15 +26891,15 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26828
26891
|
}
|
|
26829
26892
|
return trackedRuns;
|
|
26830
26893
|
};
|
|
26831
|
-
const config$
|
|
26832
|
-
xmlName: XML_NODE_NAME$
|
|
26894
|
+
const config$h = {
|
|
26895
|
+
xmlName: XML_NODE_NAME$i,
|
|
26833
26896
|
sdNodeOrKeyName: SD_KEY_NAME,
|
|
26834
26897
|
type: NodeTranslator.translatorTypes.NODE,
|
|
26835
|
-
encode: encode$
|
|
26836
|
-
decode: decode$
|
|
26898
|
+
encode: encode$o,
|
|
26899
|
+
decode: decode$q,
|
|
26837
26900
|
attributes: validXmlAttributes$c
|
|
26838
26901
|
};
|
|
26839
|
-
const translator$
|
|
26902
|
+
const translator$1b = NodeTranslator.from(config$h);
|
|
26840
26903
|
function preProcessVerticalMergeCells(table, { editorSchema }) {
|
|
26841
26904
|
if (!table || !Array.isArray(table.content)) {
|
|
26842
26905
|
return table;
|
|
@@ -26877,13 +26940,13 @@ function preProcessVerticalMergeCells(table, { editorSchema }) {
|
|
|
26877
26940
|
}
|
|
26878
26941
|
return table;
|
|
26879
26942
|
}
|
|
26880
|
-
const translator$
|
|
26943
|
+
const translator$1a = NodeTranslator.from({
|
|
26881
26944
|
xmlName: "w:cantSplit",
|
|
26882
26945
|
sdNodeOrKeyName: "cantSplit",
|
|
26883
26946
|
encode: ({ nodes }) => ["1", "true"].includes(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26884
26947
|
decode: ({ node }) => node.attrs?.cantSplit ? { attributes: {} } : void 0
|
|
26885
26948
|
});
|
|
26886
|
-
const translator$
|
|
26949
|
+
const translator$19 = NodeTranslator.from({
|
|
26887
26950
|
xmlName: "w:cnfStyle",
|
|
26888
26951
|
sdNodeOrKeyName: "cnfStyle",
|
|
26889
26952
|
attributes: [
|
|
@@ -26909,8 +26972,8 @@ const translator$W = NodeTranslator.from({
|
|
|
26909
26972
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
26910
26973
|
}
|
|
26911
26974
|
});
|
|
26912
|
-
const translator$
|
|
26913
|
-
const translator$
|
|
26975
|
+
const translator$18 = NodeTranslator.from(createSingleAttrPropertyHandler("w:divId"));
|
|
26976
|
+
const translator$17 = NodeTranslator.from(
|
|
26914
26977
|
createSingleAttrPropertyHandler(
|
|
26915
26978
|
"w:gridAfter",
|
|
26916
26979
|
null,
|
|
@@ -26919,7 +26982,7 @@ const translator$U = NodeTranslator.from(
|
|
|
26919
26982
|
(v2) => integerToString(v2)
|
|
26920
26983
|
)
|
|
26921
26984
|
);
|
|
26922
|
-
const translator$
|
|
26985
|
+
const translator$16 = NodeTranslator.from(
|
|
26923
26986
|
createSingleAttrPropertyHandler(
|
|
26924
26987
|
"w:gridBefore",
|
|
26925
26988
|
null,
|
|
@@ -26928,21 +26991,21 @@ const translator$T = NodeTranslator.from(
|
|
|
26928
26991
|
(v2) => integerToString(v2)
|
|
26929
26992
|
)
|
|
26930
26993
|
);
|
|
26931
|
-
const translator$
|
|
26994
|
+
const translator$15 = NodeTranslator.from({
|
|
26932
26995
|
xmlName: "w:hidden",
|
|
26933
26996
|
sdNodeOrKeyName: "hidden",
|
|
26934
26997
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26935
26998
|
decode: ({ node }) => node.attrs.hidden ? { attributes: {} } : void 0
|
|
26936
26999
|
});
|
|
26937
|
-
const translator$
|
|
26938
|
-
const translator$
|
|
26939
|
-
const translator$
|
|
27000
|
+
const translator$14 = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
|
|
27001
|
+
const translator$13 = NodeTranslator.from(createMeasurementPropertyHandler("w:tblCellSpacing", "tableCellSpacing"));
|
|
27002
|
+
const translator$12 = NodeTranslator.from({
|
|
26940
27003
|
xmlName: "w:tblHeader",
|
|
26941
27004
|
sdNodeOrKeyName: "repeatHeader",
|
|
26942
27005
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26943
27006
|
decode: ({ node }) => node.attrs.repeatHeader ? { attributes: {} } : void 0
|
|
26944
27007
|
});
|
|
26945
|
-
const translator$
|
|
27008
|
+
const translator$11 = NodeTranslator.from({
|
|
26946
27009
|
xmlName: "w:trHeight",
|
|
26947
27010
|
sdNodeOrKeyName: "rowHeight",
|
|
26948
27011
|
encode: ({ nodes }) => {
|
|
@@ -26969,84 +27032,43 @@ const translator$O = NodeTranslator.from({
|
|
|
26969
27032
|
return Object.keys(heightAttrs).length > 0 ? { attributes: heightAttrs } : void 0;
|
|
26970
27033
|
}
|
|
26971
27034
|
});
|
|
26972
|
-
const translator$
|
|
26973
|
-
const translator
|
|
26974
|
-
const
|
|
26975
|
-
|
|
26976
|
-
|
|
26977
|
-
|
|
26978
|
-
|
|
26979
|
-
|
|
27035
|
+
const translator$10 = NodeTranslator.from(createMeasurementPropertyHandler("w:wAfter"));
|
|
27036
|
+
const translator$$ = NodeTranslator.from(createMeasurementPropertyHandler("w:wBefore"));
|
|
27037
|
+
const propertyTranslators$6 = [
|
|
27038
|
+
translator$1a,
|
|
27039
|
+
translator$19,
|
|
27040
|
+
translator$18,
|
|
27041
|
+
translator$17,
|
|
27042
|
+
translator$16,
|
|
27043
|
+
translator$15,
|
|
27044
|
+
translator$14,
|
|
27045
|
+
translator$13,
|
|
27046
|
+
translator$12,
|
|
27047
|
+
translator$11,
|
|
27048
|
+
translator$10,
|
|
27049
|
+
translator$$
|
|
27050
|
+
];
|
|
27051
|
+
const translator$_ = NodeTranslator.from(
|
|
27052
|
+
createNestedPropertiesTranslator("w:trPr", "tableRowProperties", propertyTranslators$6, {
|
|
26980
27053
|
cantSplit: false,
|
|
26981
27054
|
hidden: false,
|
|
26982
27055
|
repeatHeader: false
|
|
26983
|
-
}
|
|
26984
|
-
|
|
26985
|
-
|
|
26986
|
-
...encodeProperties(node, propertyTranslatorsByXmlName$2)
|
|
26987
|
-
};
|
|
26988
|
-
return {
|
|
26989
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
26990
|
-
xmlName: XML_NODE_NAME$k,
|
|
26991
|
-
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
26992
|
-
attributes
|
|
26993
|
-
};
|
|
26994
|
-
};
|
|
26995
|
-
const decode$s = (params2) => {
|
|
26996
|
-
const { tableRowProperties = {} } = params2.node.attrs || {};
|
|
26997
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$2, tableRowProperties);
|
|
26998
|
-
const newNode = {
|
|
26999
|
-
name: "w:trPr",
|
|
27000
|
-
type: "element",
|
|
27001
|
-
attributes: {},
|
|
27002
|
-
elements
|
|
27003
|
-
};
|
|
27004
|
-
return newNode;
|
|
27005
|
-
};
|
|
27006
|
-
const propertyTranslators$3 = [
|
|
27007
|
-
translator$X,
|
|
27008
|
-
translator$W,
|
|
27009
|
-
translator$V,
|
|
27010
|
-
translator$U,
|
|
27011
|
-
translator$T,
|
|
27012
|
-
translator$S,
|
|
27013
|
-
translator$R,
|
|
27014
|
-
translator$Q,
|
|
27015
|
-
translator$P,
|
|
27016
|
-
translator$O,
|
|
27017
|
-
translator$N,
|
|
27018
|
-
translator$M
|
|
27019
|
-
];
|
|
27020
|
-
const propertyTranslatorsByXmlName$2 = {};
|
|
27021
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
27022
|
-
propertyTranslatorsByXmlName$2[translator2.xmlName] = translator2;
|
|
27023
|
-
});
|
|
27024
|
-
const propertyTranslatorsBySdName$2 = {};
|
|
27025
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
27026
|
-
propertyTranslatorsBySdName$2[translator2.sdNodeOrKeyName] = translator2;
|
|
27027
|
-
});
|
|
27028
|
-
const config$h = {
|
|
27029
|
-
xmlName: XML_NODE_NAME$k,
|
|
27030
|
-
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
27031
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
27032
|
-
encode: encode$q,
|
|
27033
|
-
decode: decode$s
|
|
27034
|
-
};
|
|
27035
|
-
const translator$L = NodeTranslator.from(config$h);
|
|
27036
|
-
const XML_NODE_NAME$j = "w:tr";
|
|
27056
|
+
})
|
|
27057
|
+
);
|
|
27058
|
+
const XML_NODE_NAME$h = "w:tr";
|
|
27037
27059
|
const SD_NODE_NAME$d = "tableRow";
|
|
27038
27060
|
const validXmlAttributes$b = ["w:rsidDel", "w:rsidR", "w:rsidRPr", "w:rsidTr", "w14:paraId", "w14:textId"].map(
|
|
27039
27061
|
(xmlName) => createAttributeHandler(xmlName)
|
|
27040
27062
|
);
|
|
27041
|
-
const encode$
|
|
27063
|
+
const encode$n = (params2, encodedAttrs) => {
|
|
27042
27064
|
const { row } = params2.extraParams;
|
|
27043
27065
|
let tableRowProperties = {};
|
|
27044
27066
|
const tPr = row.elements.find((el) => el.name === "w:trPr");
|
|
27045
27067
|
if (tPr) {
|
|
27046
|
-
|
|
27068
|
+
tableRowProperties = translator$_.encode({
|
|
27047
27069
|
...params2,
|
|
27048
27070
|
nodes: [tPr]
|
|
27049
|
-
})
|
|
27071
|
+
});
|
|
27050
27072
|
}
|
|
27051
27073
|
encodedAttrs["tableRowProperties"] = Object.freeze(tableRowProperties);
|
|
27052
27074
|
encodedAttrs["rowHeight"] = twipsToPixels(tableRowProperties["rowHeight"]?.value);
|
|
@@ -27078,7 +27100,7 @@ const encode$p = (params2, encodedAttrs) => {
|
|
|
27078
27100
|
};
|
|
27079
27101
|
return newNode;
|
|
27080
27102
|
};
|
|
27081
|
-
const decode$
|
|
27103
|
+
const decode$p = (params2, decodedAttrs) => {
|
|
27082
27104
|
const { node } = params2;
|
|
27083
27105
|
const elements = translateChildNodes(params2);
|
|
27084
27106
|
if (node.attrs?.tableRowProperties) {
|
|
@@ -27090,7 +27112,7 @@ const decode$r = (params2, decodedAttrs) => {
|
|
|
27090
27112
|
}
|
|
27091
27113
|
}
|
|
27092
27114
|
tableRowProperties["cantSplit"] = node.attrs["cantSplit"];
|
|
27093
|
-
const trPr = translator$
|
|
27115
|
+
const trPr = translator$_.decode({
|
|
27094
27116
|
...params2,
|
|
27095
27117
|
node: { ...node, attrs: { ...node.attrs, tableRowProperties } }
|
|
27096
27118
|
});
|
|
@@ -27103,21 +27125,21 @@ const decode$r = (params2, decodedAttrs) => {
|
|
|
27103
27125
|
};
|
|
27104
27126
|
};
|
|
27105
27127
|
const config$g = {
|
|
27106
|
-
xmlName: XML_NODE_NAME$
|
|
27128
|
+
xmlName: XML_NODE_NAME$h,
|
|
27107
27129
|
sdNodeOrKeyName: SD_NODE_NAME$d,
|
|
27108
27130
|
type: NodeTranslator.translatorTypes.NODE,
|
|
27109
|
-
encode: encode$
|
|
27110
|
-
decode: decode$
|
|
27131
|
+
encode: encode$n,
|
|
27132
|
+
decode: decode$p,
|
|
27111
27133
|
attributes: validXmlAttributes$b
|
|
27112
27134
|
};
|
|
27113
|
-
const translator$
|
|
27114
|
-
const translator$
|
|
27135
|
+
const translator$Z = NodeTranslator.from(config$g);
|
|
27136
|
+
const translator$Y = NodeTranslator.from({
|
|
27115
27137
|
xmlName: "w:bidiVisual",
|
|
27116
27138
|
sdNodeOrKeyName: "rightToLeft",
|
|
27117
27139
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
27118
27140
|
decode: ({ node }) => node.attrs.rightToLeft ? { attributes: {} } : void 0
|
|
27119
27141
|
});
|
|
27120
|
-
const translator$
|
|
27142
|
+
const translator$X = NodeTranslator.from({
|
|
27121
27143
|
xmlName: "w:shd",
|
|
27122
27144
|
sdNodeOrKeyName: "shading",
|
|
27123
27145
|
attributes: [
|
|
@@ -27139,11 +27161,11 @@ const translator$I = NodeTranslator.from({
|
|
|
27139
27161
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27140
27162
|
}
|
|
27141
27163
|
});
|
|
27142
|
-
const translator$
|
|
27143
|
-
const translator$
|
|
27144
|
-
const translator$
|
|
27145
|
-
const translator$
|
|
27146
|
-
const translator$
|
|
27164
|
+
const translator$W = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblCaption", "caption"));
|
|
27165
|
+
const translator$V = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblDescription", "description"));
|
|
27166
|
+
const translator$U = NodeTranslator.from(createMeasurementPropertyHandler("w:tblInd", "tableIndent"));
|
|
27167
|
+
const translator$T = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblLayout", "tableLayout", "w:type"));
|
|
27168
|
+
const translator$S = NodeTranslator.from({
|
|
27147
27169
|
xmlName: "w:tblLook",
|
|
27148
27170
|
sdNodeOrKeyName: "tblLook",
|
|
27149
27171
|
attributes: ["w:firstColumn", "w:firstRow", "w:lastColumn", "w:lastRow", "w:noHBand", "w:noVBand"].map((attr) => createAttributeHandler(attr, null, parseBoolean, booleanToString)).concat([createAttributeHandler("w:val")]),
|
|
@@ -27155,16 +27177,16 @@ const translator$D = NodeTranslator.from({
|
|
|
27155
27177
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27156
27178
|
}
|
|
27157
27179
|
});
|
|
27158
|
-
const translator$
|
|
27159
|
-
const translator$
|
|
27160
|
-
const translator$
|
|
27180
|
+
const translator$R = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblOverlap", "overlap"));
|
|
27181
|
+
const translator$Q = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblStyle", "tableStyleId"));
|
|
27182
|
+
const translator$P = NodeTranslator.from(
|
|
27161
27183
|
createSingleAttrPropertyHandler("w:tblStyleColBandSize", "tableStyleColBandSize")
|
|
27162
27184
|
);
|
|
27163
|
-
const translator$
|
|
27185
|
+
const translator$O = NodeTranslator.from(
|
|
27164
27186
|
createSingleAttrPropertyHandler("w:tblStyleRowBandSize", "tableStyleRowBandSize")
|
|
27165
27187
|
);
|
|
27166
|
-
const translator$
|
|
27167
|
-
const translator$
|
|
27188
|
+
const translator$N = NodeTranslator.from(createMeasurementPropertyHandler("w:tblW", "tableWidth"));
|
|
27189
|
+
const translator$M = NodeTranslator.from({
|
|
27168
27190
|
xmlName: "w:tblpPr",
|
|
27169
27191
|
sdNodeOrKeyName: "floatingTableProperties",
|
|
27170
27192
|
attributes: ["w:leftFromText", "w:rightFromText", "w:topFromText", "w:bottomFromText", "w:tblpX", "w:tblpY"].map((attr) => createAttributeHandler(attr, null, parseInteger, integerToString)).concat(["w:horzAnchor", "w:vertAnchor", "w:tblpXSpec", "w:tblpYSpec"].map((attr) => createAttributeHandler(attr))),
|
|
@@ -27176,160 +27198,67 @@ const translator$x = NodeTranslator.from({
|
|
|
27176
27198
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27177
27199
|
}
|
|
27178
27200
|
});
|
|
27179
|
-
const translator$
|
|
27180
|
-
const translator$
|
|
27181
|
-
const translator$
|
|
27182
|
-
const translator$
|
|
27183
|
-
const translator$
|
|
27184
|
-
const translator$
|
|
27185
|
-
const translator$
|
|
27186
|
-
const translator$
|
|
27187
|
-
const translator$
|
|
27188
|
-
const translator$
|
|
27189
|
-
const translator$
|
|
27190
|
-
const translator$
|
|
27191
|
-
const translator$
|
|
27192
|
-
const translator$
|
|
27193
|
-
const
|
|
27194
|
-
|
|
27195
|
-
const encode$o = (params2) => {
|
|
27196
|
-
const { nodes } = params2;
|
|
27197
|
-
const node = nodes[0];
|
|
27198
|
-
const attributes = encodeProperties(node, tblBordersTranslatorsByXmlName);
|
|
27199
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
27200
|
-
};
|
|
27201
|
-
const decode$q = (params2) => {
|
|
27202
|
-
const { borders = {} } = params2.node.attrs || {};
|
|
27203
|
-
const elements = decodeProperties(tblBordersTranslatorsBySdName, borders);
|
|
27204
|
-
const newNode = {
|
|
27205
|
-
name: "w:tblBorders",
|
|
27206
|
-
type: "element",
|
|
27207
|
-
attributes: {},
|
|
27208
|
-
elements
|
|
27209
|
-
};
|
|
27210
|
-
return newNode;
|
|
27211
|
-
};
|
|
27212
|
-
const propertyTranslators$2 = [
|
|
27213
|
-
translator$w,
|
|
27214
|
-
translator$u,
|
|
27215
|
-
translator$s,
|
|
27216
|
-
translator$r,
|
|
27217
|
-
translator$q,
|
|
27218
|
-
translator$o,
|
|
27219
|
-
translator$m,
|
|
27220
|
-
translator$k
|
|
27221
|
-
];
|
|
27222
|
-
const tblBordersTranslatorsByXmlName = {};
|
|
27223
|
-
const tblBordersTranslatorsBySdName = {};
|
|
27224
|
-
propertyTranslators$2.forEach((translator2) => {
|
|
27225
|
-
tblBordersTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
27226
|
-
tblBordersTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
27227
|
-
});
|
|
27228
|
-
const translator$i = NodeTranslator.from({
|
|
27229
|
-
xmlName: XML_NODE_NAME$i,
|
|
27230
|
-
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
27231
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
27232
|
-
attributes: [],
|
|
27233
|
-
encode: encode$o,
|
|
27234
|
-
decode: decode$q
|
|
27235
|
-
});
|
|
27236
|
-
const XML_NODE_NAME$h = "w:tblCellMar";
|
|
27237
|
-
const SD_ATTR_KEY$4 = "cellMargins";
|
|
27238
|
-
const encode$n = (params2) => {
|
|
27239
|
-
const { nodes } = params2;
|
|
27240
|
-
const node = nodes[0];
|
|
27241
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName$1);
|
|
27242
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
27243
|
-
};
|
|
27244
|
-
const decode$p = (params2) => {
|
|
27245
|
-
const { cellMargins = {} } = params2.node.attrs || {};
|
|
27246
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$1, cellMargins);
|
|
27247
|
-
const newNode = {
|
|
27248
|
-
name: XML_NODE_NAME$h,
|
|
27249
|
-
type: "element",
|
|
27250
|
-
attributes: {},
|
|
27251
|
-
elements
|
|
27252
|
-
};
|
|
27253
|
-
return newNode;
|
|
27254
|
-
};
|
|
27255
|
-
const propertyTranslators$1 = [
|
|
27256
|
-
translator$v,
|
|
27257
|
-
translator$t,
|
|
27258
|
-
translator$p,
|
|
27259
|
-
translator$n,
|
|
27260
|
-
translator$l,
|
|
27261
|
-
translator$j
|
|
27262
|
-
];
|
|
27263
|
-
const propertyTranslatorsByXmlName$1 = {};
|
|
27264
|
-
const propertyTranslatorsBySdName$1 = {};
|
|
27265
|
-
propertyTranslators$1.forEach((translator2) => {
|
|
27266
|
-
propertyTranslatorsByXmlName$1[translator2.xmlName] = translator2;
|
|
27267
|
-
propertyTranslatorsBySdName$1[translator2.sdNodeOrKeyName] = translator2;
|
|
27268
|
-
});
|
|
27269
|
-
const translator$h = NodeTranslator.from({
|
|
27270
|
-
xmlName: XML_NODE_NAME$h,
|
|
27271
|
-
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
27272
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
27273
|
-
attributes: [],
|
|
27274
|
-
encode: encode$n,
|
|
27275
|
-
decode: decode$p
|
|
27276
|
-
});
|
|
27277
|
-
const XML_NODE_NAME$g = "w:tblPr";
|
|
27278
|
-
const SD_ATTR_KEY$3 = "tableProperties";
|
|
27279
|
-
const encode$m = (params2) => {
|
|
27280
|
-
const { nodes } = params2;
|
|
27281
|
-
const node = nodes[0];
|
|
27282
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName);
|
|
27283
|
-
return {
|
|
27284
|
-
xmlName: XML_NODE_NAME$g,
|
|
27285
|
-
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27286
|
-
attributes
|
|
27287
|
-
};
|
|
27288
|
-
};
|
|
27289
|
-
const decode$o = (params2) => {
|
|
27290
|
-
const { tableProperties = {} } = params2.node.attrs || {};
|
|
27291
|
-
const elements = decodeProperties(propertyTranslatorsBySdName, tableProperties);
|
|
27292
|
-
const newNode = {
|
|
27293
|
-
name: "w:tblPr",
|
|
27294
|
-
type: "element",
|
|
27295
|
-
attributes: {},
|
|
27296
|
-
elements
|
|
27297
|
-
};
|
|
27298
|
-
return newNode;
|
|
27299
|
-
};
|
|
27300
|
-
const propertyTranslators = [
|
|
27201
|
+
const translator$L = NodeTranslator.from(createBorderPropertyHandler("w:bottom"));
|
|
27202
|
+
const translator$K = NodeTranslator.from(createMeasurementPropertyHandler("w:bottom", "marginBottom"));
|
|
27203
|
+
const translator$J = NodeTranslator.from(createBorderPropertyHandler("w:end"));
|
|
27204
|
+
const translator$I = NodeTranslator.from(createMeasurementPropertyHandler("w:end", "marginEnd"));
|
|
27205
|
+
const translator$H = NodeTranslator.from(createBorderPropertyHandler("w:insideH"));
|
|
27206
|
+
const translator$G = NodeTranslator.from(createBorderPropertyHandler("w:insideV"));
|
|
27207
|
+
const translator$F = NodeTranslator.from(createBorderPropertyHandler("w:left"));
|
|
27208
|
+
const translator$E = NodeTranslator.from(createMeasurementPropertyHandler("w:left", "marginLeft"));
|
|
27209
|
+
const translator$D = NodeTranslator.from(createBorderPropertyHandler("w:right"));
|
|
27210
|
+
const translator$C = NodeTranslator.from(createMeasurementPropertyHandler("w:right", "marginRight"));
|
|
27211
|
+
const translator$B = NodeTranslator.from(createBorderPropertyHandler("w:start"));
|
|
27212
|
+
const translator$A = NodeTranslator.from(createMeasurementPropertyHandler("w:start", "marginStart"));
|
|
27213
|
+
const translator$z = NodeTranslator.from(createBorderPropertyHandler("w:top"));
|
|
27214
|
+
const translator$y = NodeTranslator.from(createMeasurementPropertyHandler("w:top", "marginTop"));
|
|
27215
|
+
const propertyTranslators$5 = [
|
|
27216
|
+
translator$L,
|
|
27301
27217
|
translator$J,
|
|
27302
|
-
translator$R,
|
|
27303
|
-
translator$I,
|
|
27304
27218
|
translator$H,
|
|
27305
|
-
translator$Q,
|
|
27306
27219
|
translator$G,
|
|
27307
27220
|
translator$F,
|
|
27308
|
-
translator$E,
|
|
27309
27221
|
translator$D,
|
|
27310
|
-
translator$C,
|
|
27311
27222
|
translator$B,
|
|
27223
|
+
translator$z
|
|
27224
|
+
];
|
|
27225
|
+
const translator$x = NodeTranslator.from(
|
|
27226
|
+
createNestedPropertiesTranslator("w:tblBorders", "borders", propertyTranslators$5)
|
|
27227
|
+
);
|
|
27228
|
+
const propertyTranslators$4 = [
|
|
27229
|
+
translator$K,
|
|
27230
|
+
translator$I,
|
|
27231
|
+
translator$E,
|
|
27232
|
+
translator$C,
|
|
27312
27233
|
translator$A,
|
|
27313
|
-
translator$
|
|
27314
|
-
|
|
27234
|
+
translator$y
|
|
27235
|
+
];
|
|
27236
|
+
const translator$w = NodeTranslator.from(
|
|
27237
|
+
createNestedPropertiesTranslator("w:tblCellMar", "cellMargins", propertyTranslators$4)
|
|
27238
|
+
);
|
|
27239
|
+
const propertyTranslators$3 = [
|
|
27240
|
+
translator$Y,
|
|
27241
|
+
translator$14,
|
|
27242
|
+
translator$X,
|
|
27243
|
+
translator$W,
|
|
27244
|
+
translator$13,
|
|
27245
|
+
translator$V,
|
|
27246
|
+
translator$U,
|
|
27247
|
+
translator$T,
|
|
27248
|
+
translator$S,
|
|
27249
|
+
translator$R,
|
|
27250
|
+
translator$Q,
|
|
27251
|
+
translator$P,
|
|
27252
|
+
translator$O,
|
|
27253
|
+
translator$N,
|
|
27254
|
+
translator$M,
|
|
27315
27255
|
translator$x,
|
|
27316
|
-
translator$
|
|
27317
|
-
translator$h
|
|
27256
|
+
translator$w
|
|
27318
27257
|
];
|
|
27319
|
-
const
|
|
27320
|
-
|
|
27321
|
-
|
|
27322
|
-
|
|
27323
|
-
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
27324
|
-
});
|
|
27325
|
-
const config$f = {
|
|
27326
|
-
xmlName: XML_NODE_NAME$g,
|
|
27327
|
-
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27328
|
-
encode: encode$m,
|
|
27329
|
-
decode: decode$o
|
|
27330
|
-
};
|
|
27331
|
-
const translator$g = NodeTranslator.from(config$f);
|
|
27332
|
-
const translator$f = NodeTranslator.from(
|
|
27258
|
+
const translator$v = NodeTranslator.from(
|
|
27259
|
+
createNestedPropertiesTranslator("w:tblPr", "tableProperties", propertyTranslators$3)
|
|
27260
|
+
);
|
|
27261
|
+
const translator$u = NodeTranslator.from(
|
|
27333
27262
|
createSingleAttrPropertyHandler("w:gridCol", "col", "w:w", parseInteger, integerToString)
|
|
27334
27263
|
);
|
|
27335
27264
|
const DEFAULT_COLUMN_WIDTH_PX = 100;
|
|
@@ -27379,20 +27308,20 @@ const resolveFallbackColumnWidthTwips = (params2, totalColumns, cellMinWidthTwip
|
|
|
27379
27308
|
}
|
|
27380
27309
|
return Math.max(fallbackWidthTwips, cellMinWidthTwips);
|
|
27381
27310
|
};
|
|
27382
|
-
const XML_NODE_NAME$
|
|
27383
|
-
const SD_ATTR_KEY$
|
|
27311
|
+
const XML_NODE_NAME$g = "w:tblGrid";
|
|
27312
|
+
const SD_ATTR_KEY$3 = "grid";
|
|
27384
27313
|
const cellMinWidth = pixelsToTwips(10);
|
|
27385
|
-
const encode$
|
|
27314
|
+
const encode$m = (params2) => {
|
|
27386
27315
|
const { nodes } = params2;
|
|
27387
27316
|
const node = nodes[0];
|
|
27388
|
-
const attributes = encodeProperties(node, { [translator$
|
|
27317
|
+
const attributes = encodeProperties(node, { [translator$u.xmlName]: translator$u }, true);
|
|
27389
27318
|
return {
|
|
27390
|
-
xmlName: XML_NODE_NAME$
|
|
27391
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
27319
|
+
xmlName: XML_NODE_NAME$g,
|
|
27320
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27392
27321
|
attributes
|
|
27393
27322
|
};
|
|
27394
27323
|
};
|
|
27395
|
-
const decode$
|
|
27324
|
+
const decode$o = (params2) => {
|
|
27396
27325
|
const { grid: rawGrid } = params2.node.attrs || {};
|
|
27397
27326
|
const grid = Array.isArray(rawGrid) ? rawGrid : [];
|
|
27398
27327
|
const { firstRow = {} } = params2.extraParams || {};
|
|
@@ -27411,10 +27340,10 @@ const decode$n = (params2) => {
|
|
|
27411
27340
|
numericWidth = fallbackColumnWidthTwips;
|
|
27412
27341
|
}
|
|
27413
27342
|
numericWidth = Math.max(numericWidth, cellMinWidth);
|
|
27414
|
-
const decoded = translator$
|
|
27343
|
+
const decoded = translator$u.decode({
|
|
27415
27344
|
node: { type: (
|
|
27416
27345
|
/** @type {string} */
|
|
27417
|
-
translator$
|
|
27346
|
+
translator$u.sdNodeOrKeyName
|
|
27418
27347
|
), attrs: { col: numericWidth } }
|
|
27419
27348
|
});
|
|
27420
27349
|
if (decoded) elements.push(decoded);
|
|
@@ -27449,19 +27378,19 @@ const decode$n = (params2) => {
|
|
|
27449
27378
|
columnIndex++;
|
|
27450
27379
|
}
|
|
27451
27380
|
const newNode = {
|
|
27452
|
-
name: XML_NODE_NAME$
|
|
27381
|
+
name: XML_NODE_NAME$g,
|
|
27453
27382
|
attributes: {},
|
|
27454
27383
|
elements
|
|
27455
27384
|
};
|
|
27456
27385
|
return newNode;
|
|
27457
27386
|
};
|
|
27458
|
-
const config$
|
|
27459
|
-
xmlName: XML_NODE_NAME$
|
|
27460
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
27461
|
-
encode: encode$
|
|
27462
|
-
decode: decode$
|
|
27387
|
+
const config$f = {
|
|
27388
|
+
xmlName: XML_NODE_NAME$g,
|
|
27389
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27390
|
+
encode: encode$m,
|
|
27391
|
+
decode: decode$o
|
|
27463
27392
|
};
|
|
27464
|
-
const translator$
|
|
27393
|
+
const translator$t = NodeTranslator.from(config$f);
|
|
27465
27394
|
const DEFAULT_PAGE_WIDTH_TWIPS = 12240;
|
|
27466
27395
|
const DEFAULT_PAGE_MARGIN_TWIPS = 1440;
|
|
27467
27396
|
const DEFAULT_CONTENT_WIDTH_TWIPS = DEFAULT_PAGE_WIDTH_TWIPS - 2 * DEFAULT_PAGE_MARGIN_TWIPS;
|
|
@@ -27524,19 +27453,19 @@ const buildFallbackGridForTable = ({ params: params2, rows, tableWidth, tableWid
|
|
|
27524
27453
|
columnWidths: Array(columnCount).fill(fallbackColumnWidthPx)
|
|
27525
27454
|
};
|
|
27526
27455
|
};
|
|
27527
|
-
const XML_NODE_NAME$
|
|
27456
|
+
const XML_NODE_NAME$f = "w:tbl";
|
|
27528
27457
|
const SD_NODE_NAME$c = "table";
|
|
27529
|
-
const encode$
|
|
27458
|
+
const encode$l = (params2, encodedAttrs) => {
|
|
27530
27459
|
const { nodes } = params2;
|
|
27531
27460
|
const node = nodes[0];
|
|
27532
27461
|
const tblPr = node.elements.find((el) => el.name === "w:tblPr");
|
|
27533
27462
|
if (tblPr) {
|
|
27534
|
-
const encodedProperties = translator$
|
|
27535
|
-
encodedAttrs["tableProperties"] = encodedProperties
|
|
27463
|
+
const encodedProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
27464
|
+
encodedAttrs["tableProperties"] = encodedProperties || {};
|
|
27536
27465
|
}
|
|
27537
27466
|
const tblGrid = node.elements.find((el) => el.name === "w:tblGrid");
|
|
27538
27467
|
if (tblGrid) {
|
|
27539
|
-
encodedAttrs["grid"] = translator$
|
|
27468
|
+
encodedAttrs["grid"] = translator$t.encode({ ...params2, nodes: [tblGrid] }).attributes;
|
|
27540
27469
|
}
|
|
27541
27470
|
[
|
|
27542
27471
|
"tableStyleId",
|
|
@@ -27603,7 +27532,7 @@ const encode$k = (params2, encodedAttrs) => {
|
|
|
27603
27532
|
}
|
|
27604
27533
|
const content = [];
|
|
27605
27534
|
rows.forEach((row) => {
|
|
27606
|
-
const result = translator$
|
|
27535
|
+
const result = translator$Z.encode({
|
|
27607
27536
|
...params2,
|
|
27608
27537
|
nodes: [row],
|
|
27609
27538
|
extraParams: {
|
|
@@ -27622,13 +27551,13 @@ const encode$k = (params2, encodedAttrs) => {
|
|
|
27622
27551
|
attrs: encodedAttrs
|
|
27623
27552
|
};
|
|
27624
27553
|
};
|
|
27625
|
-
const decode$
|
|
27554
|
+
const decode$n = (params2, decodedAttrs) => {
|
|
27626
27555
|
params2.node = preProcessVerticalMergeCells(params2.node, params2);
|
|
27627
27556
|
const { node } = params2;
|
|
27628
27557
|
const elements = translateChildNodes(params2);
|
|
27629
27558
|
const firstRow = node.content?.find((n) => n.type === "tableRow");
|
|
27630
27559
|
const properties = node.attrs.grid;
|
|
27631
|
-
const element = translator$
|
|
27560
|
+
const element = translator$t.decode({
|
|
27632
27561
|
...params2,
|
|
27633
27562
|
node: { ...node, attrs: { ...node.attrs, grid: properties } },
|
|
27634
27563
|
extraParams: {
|
|
@@ -27638,7 +27567,7 @@ const decode$m = (params2, decodedAttrs) => {
|
|
|
27638
27567
|
if (element) elements.unshift(element);
|
|
27639
27568
|
if (node.attrs?.tableProperties) {
|
|
27640
27569
|
const properties2 = { ...node.attrs.tableProperties };
|
|
27641
|
-
const element2 = translator$
|
|
27570
|
+
const element2 = translator$v.decode({
|
|
27642
27571
|
...params2,
|
|
27643
27572
|
node: { ...node, attrs: { ...node.attrs, tableProperties: properties2 } }
|
|
27644
27573
|
});
|
|
@@ -27658,7 +27587,7 @@ function _processTableBorders(rawBorders) {
|
|
|
27658
27587
|
const color = attributes.color;
|
|
27659
27588
|
const size2 = attributes.size;
|
|
27660
27589
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
27661
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
27590
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
27662
27591
|
const rowBorderNames = ["insideH", "insideV"];
|
|
27663
27592
|
if (rowBorderNames.includes(name)) rowBorders[name] = attrs;
|
|
27664
27593
|
borders[name] = attrs;
|
|
@@ -27704,7 +27633,7 @@ function _getReferencedTableStyles(tableStyleReference, params2) {
|
|
|
27704
27633
|
if (baseTblPr && baseTblPr.elements) {
|
|
27705
27634
|
tblPr.elements.push(...baseTblPr.elements);
|
|
27706
27635
|
}
|
|
27707
|
-
const tableProperties = translator$
|
|
27636
|
+
const tableProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
27708
27637
|
const { borders, rowBorders } = _processTableBorders(tableProperties.borders || {});
|
|
27709
27638
|
if (borders) stylesToReturn.borders = borders;
|
|
27710
27639
|
if (rowBorders) stylesToReturn.rowBorders = rowBorders;
|
|
@@ -27721,16 +27650,16 @@ function _getReferencedTableStyles(tableStyleReference, params2) {
|
|
|
27721
27650
|
}
|
|
27722
27651
|
return stylesToReturn;
|
|
27723
27652
|
}
|
|
27724
|
-
const config$
|
|
27725
|
-
xmlName: XML_NODE_NAME$
|
|
27653
|
+
const config$e = {
|
|
27654
|
+
xmlName: XML_NODE_NAME$f,
|
|
27726
27655
|
sdNodeOrKeyName: SD_NODE_NAME$c,
|
|
27727
27656
|
type: NodeTranslator.translatorTypes.NODE,
|
|
27728
|
-
encode: encode$
|
|
27729
|
-
decode: decode$
|
|
27657
|
+
encode: encode$l,
|
|
27658
|
+
decode: decode$n,
|
|
27730
27659
|
attributes: []
|
|
27731
27660
|
};
|
|
27732
|
-
const translator$
|
|
27733
|
-
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$
|
|
27661
|
+
const translator$s = NodeTranslator.from(config$e);
|
|
27662
|
+
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$s);
|
|
27734
27663
|
function getReferencedTableStyles(tblStyleTag, docx) {
|
|
27735
27664
|
if (!tblStyleTag) return null;
|
|
27736
27665
|
const stylesToReturn = {};
|
|
@@ -27801,7 +27730,7 @@ function processTableBorders(borderElements) {
|
|
|
27801
27730
|
const color = attributes["w:color"];
|
|
27802
27731
|
const size2 = attributes["w:sz"];
|
|
27803
27732
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
27804
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
27733
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
27805
27734
|
const rowBorderNames = ["insideH", "insideV"];
|
|
27806
27735
|
if (rowBorderNames.includes(borderName)) rowBorders[borderName] = attrs;
|
|
27807
27736
|
borders[borderName] = attrs;
|
|
@@ -27811,6 +27740,125 @@ function processTableBorders(borderElements) {
|
|
|
27811
27740
|
rowBorders
|
|
27812
27741
|
};
|
|
27813
27742
|
}
|
|
27743
|
+
const translator$r = NodeTranslator.from(createMeasurementPropertyHandler("w:tcW", "cellWidth"));
|
|
27744
|
+
const translator$q = NodeTranslator.from(
|
|
27745
|
+
createSingleAttrPropertyHandler(
|
|
27746
|
+
"w:gridSpan",
|
|
27747
|
+
null,
|
|
27748
|
+
"w:val",
|
|
27749
|
+
(v2) => parseInteger(v2) ?? void 0,
|
|
27750
|
+
(v2) => integerToString(v2)
|
|
27751
|
+
)
|
|
27752
|
+
);
|
|
27753
|
+
const translator$p = NodeTranslator.from(createSingleAttrPropertyHandler("w:vMerge"));
|
|
27754
|
+
const translator$o = NodeTranslator.from(createBorderPropertyHandler("w:tl2br"));
|
|
27755
|
+
const translator$n = NodeTranslator.from(createBorderPropertyHandler("w:tr2bl"));
|
|
27756
|
+
const propertyTranslators$2 = [
|
|
27757
|
+
translator$z,
|
|
27758
|
+
translator$B,
|
|
27759
|
+
translator$F,
|
|
27760
|
+
translator$L,
|
|
27761
|
+
translator$J,
|
|
27762
|
+
translator$D,
|
|
27763
|
+
translator$H,
|
|
27764
|
+
translator$G,
|
|
27765
|
+
translator$o,
|
|
27766
|
+
translator$n
|
|
27767
|
+
];
|
|
27768
|
+
const translator$m = NodeTranslator.from(
|
|
27769
|
+
createNestedPropertiesTranslator("w:tcBorders", "borders", propertyTranslators$2)
|
|
27770
|
+
);
|
|
27771
|
+
const translator$l = NodeTranslator.from(
|
|
27772
|
+
createSingleAttrPropertyHandler(
|
|
27773
|
+
"w:noWrap",
|
|
27774
|
+
null,
|
|
27775
|
+
"w:val",
|
|
27776
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27777
|
+
(v2) => booleanToString(v2)
|
|
27778
|
+
)
|
|
27779
|
+
);
|
|
27780
|
+
const propertyTranslators$1 = [
|
|
27781
|
+
translator$K,
|
|
27782
|
+
translator$I,
|
|
27783
|
+
translator$E,
|
|
27784
|
+
translator$C,
|
|
27785
|
+
translator$A,
|
|
27786
|
+
translator$y
|
|
27787
|
+
];
|
|
27788
|
+
const translator$k = NodeTranslator.from(
|
|
27789
|
+
createNestedPropertiesTranslator("w:tcMar", "cellMargins", propertyTranslators$1)
|
|
27790
|
+
);
|
|
27791
|
+
const translator$j = NodeTranslator.from(createSingleAttrPropertyHandler("w:textDirection"));
|
|
27792
|
+
const translator$i = NodeTranslator.from(
|
|
27793
|
+
createSingleAttrPropertyHandler(
|
|
27794
|
+
"w:tcFitText",
|
|
27795
|
+
null,
|
|
27796
|
+
"w:val",
|
|
27797
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27798
|
+
(v2) => booleanToString(v2)
|
|
27799
|
+
)
|
|
27800
|
+
);
|
|
27801
|
+
const translator$h = NodeTranslator.from(createSingleAttrPropertyHandler("w:vAlign"));
|
|
27802
|
+
const translator$g = NodeTranslator.from(
|
|
27803
|
+
createSingleAttrPropertyHandler(
|
|
27804
|
+
"w:hideMark",
|
|
27805
|
+
null,
|
|
27806
|
+
"w:val",
|
|
27807
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27808
|
+
(v2) => booleanToString(v2)
|
|
27809
|
+
)
|
|
27810
|
+
);
|
|
27811
|
+
const translator$f = NodeTranslator.from(createSingleAttrPropertyHandler("w:header"));
|
|
27812
|
+
const XML_NODE_NAME$e = "w:headers";
|
|
27813
|
+
const SD_ATTR_KEY$2 = "headers";
|
|
27814
|
+
const encode$k = (params2) => {
|
|
27815
|
+
const { nodes } = params2;
|
|
27816
|
+
const node = nodes[0];
|
|
27817
|
+
const attributes = encodeProperties(node, { [translator$f.xmlName]: translator$f }, true);
|
|
27818
|
+
return {
|
|
27819
|
+
xmlName: XML_NODE_NAME$e,
|
|
27820
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
27821
|
+
attributes
|
|
27822
|
+
};
|
|
27823
|
+
};
|
|
27824
|
+
const decode$m = (params2) => {
|
|
27825
|
+
const { headers = [] } = params2.node.attrs || {};
|
|
27826
|
+
const newNode = {
|
|
27827
|
+
name: XML_NODE_NAME$e,
|
|
27828
|
+
attributes: {},
|
|
27829
|
+
elements: headers.map(
|
|
27830
|
+
(header) => translator$f.decode({
|
|
27831
|
+
node: { type: "header", attrs: header }
|
|
27832
|
+
})
|
|
27833
|
+
)
|
|
27834
|
+
};
|
|
27835
|
+
return newNode;
|
|
27836
|
+
};
|
|
27837
|
+
const config$d = {
|
|
27838
|
+
xmlName: XML_NODE_NAME$e,
|
|
27839
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
27840
|
+
encode: encode$k,
|
|
27841
|
+
decode: decode$m
|
|
27842
|
+
};
|
|
27843
|
+
const translator$e = NodeTranslator.from(config$d);
|
|
27844
|
+
const propertyTranslators = [
|
|
27845
|
+
translator$19,
|
|
27846
|
+
translator$r,
|
|
27847
|
+
translator$q,
|
|
27848
|
+
translator$p,
|
|
27849
|
+
translator$m,
|
|
27850
|
+
translator$X,
|
|
27851
|
+
translator$l,
|
|
27852
|
+
translator$k,
|
|
27853
|
+
translator$j,
|
|
27854
|
+
translator$i,
|
|
27855
|
+
translator$h,
|
|
27856
|
+
translator$g,
|
|
27857
|
+
translator$e
|
|
27858
|
+
];
|
|
27859
|
+
const translator$d = NodeTranslator.from(
|
|
27860
|
+
createNestedPropertiesTranslator("w:tcPr", "tableCellProperties", propertyTranslators)
|
|
27861
|
+
);
|
|
27814
27862
|
function handleTableCellNode({
|
|
27815
27863
|
params: params2,
|
|
27816
27864
|
node,
|
|
@@ -27823,8 +27871,10 @@ function handleTableCellNode({
|
|
|
27823
27871
|
allColumnWidths = []
|
|
27824
27872
|
}) {
|
|
27825
27873
|
const { docx, nodeListHandler } = params2;
|
|
27874
|
+
const attributes = {};
|
|
27826
27875
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
27827
|
-
const
|
|
27876
|
+
const tableCellProperties = tcPr ? translator$d.encode({ ...params2, nodes: [tcPr] }) ?? {} : {};
|
|
27877
|
+
attributes["tableCellProperties"] = tableCellProperties;
|
|
27828
27878
|
if (rowBorders?.insideH) {
|
|
27829
27879
|
rowBorders["bottom"] = rowBorders.insideH;
|
|
27830
27880
|
delete rowBorders.insideH;
|
|
@@ -27833,33 +27883,20 @@ function handleTableCellNode({
|
|
|
27833
27883
|
rowBorders["right"] = rowBorders.insideV;
|
|
27834
27884
|
delete rowBorders?.insideV;
|
|
27835
27885
|
}
|
|
27836
|
-
|
|
27837
|
-
const
|
|
27838
|
-
|
|
27839
|
-
|
|
27840
|
-
|
|
27886
|
+
if (rowBorders) attributes["borders"] = { ...rowBorders };
|
|
27887
|
+
const inlineBorders = processInlineCellBorders(tableCellProperties.borders, rowBorders);
|
|
27888
|
+
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
27889
|
+
const colspan = tableCellProperties.gridSpan;
|
|
27890
|
+
if (colspan && !isNaN(parseInt(colspan, 10))) attributes["colspan"] = parseInt(colspan, 10);
|
|
27891
|
+
let width = tableCellProperties.cellWidth?.value ? twipsToPixels(tableCellProperties.cellWidth?.value) : null;
|
|
27892
|
+
const widthType = tableCellProperties.cellWidth?.type;
|
|
27893
|
+
if (widthType) attributes["widthType"] = widthType;
|
|
27841
27894
|
if (!width && columnWidth) width = columnWidth;
|
|
27842
|
-
const vMerge = getTableCellMergeTag(node);
|
|
27843
|
-
const { attributes: vMergeAttrs } = vMerge || {};
|
|
27844
|
-
const backgroundColor = tcPr?.elements?.find((el) => el.name === "w:shd");
|
|
27845
|
-
const background = {
|
|
27846
|
-
color: backgroundColor?.attributes["w:fill"]
|
|
27847
|
-
};
|
|
27848
|
-
const colspanTag = tcPr?.elements?.find((el) => el.name === "w:gridSpan");
|
|
27849
|
-
const colspan = colspanTag?.attributes["w:val"];
|
|
27850
|
-
const marginTag = tcPr?.elements?.find((el) => el.name === "w:tcMar");
|
|
27851
|
-
const verticalAlignTag = tcPr?.elements?.find((el) => el.name === "w:vAlign");
|
|
27852
|
-
const verticalAlign = verticalAlignTag?.attributes["w:val"] || "top";
|
|
27853
|
-
const attributes = {};
|
|
27854
|
-
const referencedStyles = getReferencedTableStyles(styleTag, docx) || {};
|
|
27855
|
-
attributes.cellMargins = getTableCellMargins(marginTag, referencedStyles);
|
|
27856
|
-
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
27857
|
-
const fontFamily2 = fonts["ascii"];
|
|
27858
27895
|
if (width) {
|
|
27859
27896
|
attributes["colwidth"] = [width];
|
|
27860
27897
|
attributes["widthUnit"] = "px";
|
|
27861
|
-
const defaultColWidths =
|
|
27862
|
-
const hasDefaultColWidths =
|
|
27898
|
+
const defaultColWidths = allColumnWidths;
|
|
27899
|
+
const hasDefaultColWidths = allColumnWidths && allColumnWidths.length > 0;
|
|
27863
27900
|
const colspanNum = parseInt(colspan || 1, 10);
|
|
27864
27901
|
if (colspanNum && colspanNum > 1 && hasDefaultColWidths) {
|
|
27865
27902
|
let colwidth = [];
|
|
@@ -27877,15 +27914,19 @@ function handleTableCellNode({
|
|
|
27877
27914
|
}
|
|
27878
27915
|
}
|
|
27879
27916
|
}
|
|
27880
|
-
|
|
27881
|
-
|
|
27882
|
-
|
|
27883
|
-
attributes["
|
|
27917
|
+
const background = {
|
|
27918
|
+
color: tableCellProperties.shading?.fill
|
|
27919
|
+
};
|
|
27920
|
+
if (background.color) attributes["background"] = background;
|
|
27921
|
+
const verticalAlign = tableCellProperties.vAlign;
|
|
27922
|
+
if (verticalAlign) attributes["verticalAlign"] = verticalAlign;
|
|
27923
|
+
const referencedStyles = getReferencedTableStyles(styleTag, docx) || { fontSize: null, fonts: {}, cellMargins: {} };
|
|
27924
|
+
attributes.cellMargins = getTableCellMargins(tableCellProperties.cellMargins, referencedStyles);
|
|
27925
|
+
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
27926
|
+
const fontFamily2 = fonts["ascii"];
|
|
27884
27927
|
if (fontSize2) attributes["fontSize"] = fontSize2;
|
|
27885
|
-
if (fontFamily2) attributes["fontFamily"] = fontFamily2
|
|
27886
|
-
if (
|
|
27887
|
-
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
27888
|
-
if (vMergeAttrs && vMergeAttrs["w:val"] === "restart") {
|
|
27928
|
+
if (fontFamily2) attributes["fontFamily"] = fontFamily2;
|
|
27929
|
+
if (tableCellProperties.vMerge === "restart") {
|
|
27889
27930
|
const rows = table.elements.filter((el) => el.name === "w:tr");
|
|
27890
27931
|
const currentRowIndex = rows.findIndex((r2) => r2 === row);
|
|
27891
27932
|
const remainingRows = rows.slice(currentRowIndex + 1);
|
|
@@ -27896,9 +27937,8 @@ function handleTableCellNode({
|
|
|
27896
27937
|
const firstCell = remainingRow.elements.findIndex((el) => el.name === "w:tc");
|
|
27897
27938
|
const cellAtIndex = remainingRow.elements[firstCell + cellIndex];
|
|
27898
27939
|
if (!cellAtIndex) break;
|
|
27899
|
-
const
|
|
27900
|
-
|
|
27901
|
-
if (!vMerge2 && !currentCellMergeAttrs || currentCellMergeAttrs && currentCellMergeAttrs["w:val"] === "restart") {
|
|
27940
|
+
const vMerge = getTableCellVMerge(cellAtIndex);
|
|
27941
|
+
if (!vMerge || vMerge === "restart") {
|
|
27902
27942
|
break;
|
|
27903
27943
|
}
|
|
27904
27944
|
rowspan++;
|
|
@@ -27918,69 +27958,52 @@ function handleTableCellNode({
|
|
|
27918
27958
|
}
|
|
27919
27959
|
const processInlineCellBorders = (borders, rowBorders) => {
|
|
27920
27960
|
if (!borders) return null;
|
|
27921
|
-
|
|
27922
|
-
|
|
27923
|
-
|
|
27924
|
-
|
|
27925
|
-
|
|
27926
|
-
|
|
27927
|
-
|
|
27928
|
-
|
|
27929
|
-
|
|
27930
|
-
|
|
27931
|
-
|
|
27932
|
-
const
|
|
27933
|
-
|
|
27934
|
-
|
|
27935
|
-
|
|
27936
|
-
|
|
27937
|
-
|
|
27938
|
-
|
|
27939
|
-
|
|
27940
|
-
|
|
27941
|
-
|
|
27942
|
-
|
|
27943
|
-
const border = Object.assign({}, rowBorders[direction] || {});
|
|
27944
|
-
if (!Object.keys(border)) return null;
|
|
27945
|
-
border["val"] = "none";
|
|
27946
|
-
return border;
|
|
27947
|
-
}
|
|
27948
|
-
return null;
|
|
27961
|
+
return ["bottom", "top", "left", "right"].reduce((acc, direction) => {
|
|
27962
|
+
const borderAttrs = borders[direction];
|
|
27963
|
+
const rowBorderAttrs = rowBorders[direction];
|
|
27964
|
+
if (borderAttrs && borderAttrs["val"] !== "nil") {
|
|
27965
|
+
const color = borderAttrs["color"];
|
|
27966
|
+
let size2 = borderAttrs["size"];
|
|
27967
|
+
if (size2) size2 = eighthPointsToPixels(size2);
|
|
27968
|
+
acc[direction] = { color, size: size2, val: borderAttrs["val"] };
|
|
27969
|
+
return acc;
|
|
27970
|
+
}
|
|
27971
|
+
if (borderAttrs && borderAttrs["val"] === "nil") {
|
|
27972
|
+
const border = Object.assign({}, rowBorderAttrs || {});
|
|
27973
|
+
if (!Object.keys(border).length) {
|
|
27974
|
+
return acc;
|
|
27975
|
+
} else {
|
|
27976
|
+
border["val"] = "none";
|
|
27977
|
+
acc[direction] = border;
|
|
27978
|
+
return acc;
|
|
27979
|
+
}
|
|
27980
|
+
}
|
|
27981
|
+
return acc;
|
|
27982
|
+
}, {});
|
|
27949
27983
|
};
|
|
27950
|
-
const
|
|
27984
|
+
const getTableCellVMerge = (node) => {
|
|
27951
27985
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
27952
27986
|
const vMerge = tcPr?.elements?.find((el) => el.name === "w:vMerge");
|
|
27953
|
-
return
|
|
27954
|
-
|
|
27955
|
-
|
|
27956
|
-
|
|
27957
|
-
const inlineMarginRightTag = marginTag?.elements?.find((el) => el.name === "w:right");
|
|
27958
|
-
const inlineMarginTopTag = marginTag?.elements?.find((el) => el.name === "w:top");
|
|
27959
|
-
const inlineMarginBottomTag = marginTag?.elements?.find((el) => el.name === "w:bottom");
|
|
27960
|
-
const inlineMarginLeftValue = inlineMarginLeftTag?.attributes["w:w"];
|
|
27961
|
-
const inlineMarginRightValue = inlineMarginRightTag?.attributes["w:w"];
|
|
27962
|
-
const inlineMarginTopValue = inlineMarginTopTag?.attributes["w:w"];
|
|
27963
|
-
const inlineMarginBottomValue = inlineMarginBottomTag?.attributes["w:w"];
|
|
27987
|
+
if (!vMerge) return null;
|
|
27988
|
+
return vMerge.attributes?.["w:val"] || "continue";
|
|
27989
|
+
};
|
|
27990
|
+
const getTableCellMargins = (inlineMargins, referencedStyles) => {
|
|
27964
27991
|
const { cellMargins = {} } = referencedStyles;
|
|
27965
|
-
|
|
27966
|
-
|
|
27967
|
-
|
|
27968
|
-
|
|
27969
|
-
|
|
27970
|
-
|
|
27971
|
-
|
|
27972
|
-
|
|
27973
|
-
if (styleValue
|
|
27974
|
-
|
|
27975
|
-
|
|
27976
|
-
|
|
27977
|
-
|
|
27978
|
-
|
|
27979
|
-
|
|
27980
|
-
top: twipsToPixels(resolveMargin(inlineMarginTopValue, marginTopStyle)),
|
|
27981
|
-
bottom: twipsToPixels(resolveMargin(inlineMarginBottomValue, marginBottomStyle))
|
|
27982
|
-
};
|
|
27983
|
-
return margins;
|
|
27992
|
+
return ["left", "right", "top", "bottom"].reduce((acc, direction) => {
|
|
27993
|
+
const key2 = `margin${direction.charAt(0).toUpperCase() + direction.slice(1)}`;
|
|
27994
|
+
const inlineValue = inlineMargins ? inlineMargins?.[key2]?.value : null;
|
|
27995
|
+
const styleValue = cellMargins ? cellMargins[key2] : null;
|
|
27996
|
+
if (inlineValue != null) {
|
|
27997
|
+
acc[direction] = twipsToPixels(inlineValue);
|
|
27998
|
+
} else if (styleValue == null) {
|
|
27999
|
+
acc[direction] = void 0;
|
|
28000
|
+
} else if (typeof styleValue === "object") {
|
|
28001
|
+
acc[direction] = twipsToPixels(styleValue.value);
|
|
28002
|
+
} else {
|
|
28003
|
+
acc[direction] = twipsToPixels(styleValue);
|
|
28004
|
+
}
|
|
28005
|
+
return acc;
|
|
28006
|
+
}, {});
|
|
27984
28007
|
};
|
|
27985
28008
|
function translateTableCell(params2) {
|
|
27986
28009
|
const elements = translateChildNodes({
|
|
@@ -27995,102 +28018,86 @@ function translateTableCell(params2) {
|
|
|
27995
28018
|
};
|
|
27996
28019
|
}
|
|
27997
28020
|
function generateTableCellProperties(node) {
|
|
27998
|
-
const
|
|
28021
|
+
const tableCellProperties = { ...node.attrs?.tableCellProperties || {} };
|
|
27999
28022
|
const { attrs } = node;
|
|
28000
|
-
const { colwidth = [], cellWidthType = "dxa",
|
|
28023
|
+
const { colwidth = [], cellWidthType = "dxa", widthUnit } = attrs;
|
|
28001
28024
|
const colwidthSum = colwidth.reduce((acc, curr) => acc + curr, 0);
|
|
28002
|
-
const
|
|
28003
|
-
|
|
28004
|
-
|
|
28005
|
-
|
|
28006
|
-
|
|
28007
|
-
}
|
|
28008
|
-
};
|
|
28009
|
-
elements.push(cellWidthElement);
|
|
28010
|
-
if (colspan) {
|
|
28011
|
-
const gridSpanElement = {
|
|
28012
|
-
name: "w:gridSpan",
|
|
28013
|
-
attributes: { "w:val": `${colspan}` }
|
|
28025
|
+
const propertiesWidthPixels = twipsToPixels(tableCellProperties.cellWidth?.value);
|
|
28026
|
+
if (propertiesWidthPixels !== colwidthSum) {
|
|
28027
|
+
tableCellProperties["cellWidth"] = {
|
|
28028
|
+
value: widthUnit === "px" ? pixelsToTwips(colwidthSum) : inchesToTwips(colwidthSum),
|
|
28029
|
+
type: cellWidthType
|
|
28014
28030
|
};
|
|
28015
|
-
elements.push(gridSpanElement);
|
|
28016
28031
|
}
|
|
28017
|
-
const {
|
|
28018
|
-
if (
|
|
28019
|
-
|
|
28020
|
-
|
|
28021
|
-
|
|
28022
|
-
|
|
28023
|
-
|
|
28032
|
+
const { colspan } = attrs;
|
|
28033
|
+
if (colspan > 1 && tableCellProperties.gridSpan !== colspan) {
|
|
28034
|
+
tableCellProperties["gridSpan"] = colspan;
|
|
28035
|
+
} else if (!colspan || tableCellProperties?.gridSpan === 1) {
|
|
28036
|
+
delete tableCellProperties.gridSpan;
|
|
28037
|
+
}
|
|
28038
|
+
const { background = {} } = attrs;
|
|
28039
|
+
if (background?.color && tableCellProperties.shading?.fill !== background?.color) {
|
|
28040
|
+
tableCellProperties["shading"] = { fill: background.color };
|
|
28041
|
+
} else if (!background?.color && tableCellProperties?.shading?.fill) {
|
|
28042
|
+
delete tableCellProperties.shading;
|
|
28024
28043
|
}
|
|
28025
28044
|
const { cellMargins } = attrs;
|
|
28026
28045
|
if (cellMargins) {
|
|
28027
|
-
|
|
28028
|
-
|
|
28029
|
-
|
|
28030
|
-
|
|
28031
|
-
|
|
28046
|
+
["left", "right", "top", "bottom"].forEach((side) => {
|
|
28047
|
+
const key2 = `margin${side.charAt(0).toUpperCase() + side.slice(1)}`;
|
|
28048
|
+
if (cellMargins[side] != null) {
|
|
28049
|
+
if (!tableCellProperties.cellMargins) tableCellProperties["cellMargins"] = {};
|
|
28050
|
+
let currentPropertyValuePixels = twipsToPixels(tableCellProperties.cellMargins?.[key2]?.value);
|
|
28051
|
+
if (currentPropertyValuePixels !== cellMargins[side]) {
|
|
28052
|
+
tableCellProperties.cellMargins[key2] = { value: pixelsToTwips(cellMargins[side]), type: "dxa" };
|
|
28053
|
+
}
|
|
28054
|
+
} else if (tableCellProperties?.cellMargins?.[key2]) {
|
|
28055
|
+
delete tableCellProperties.cellMargins[key2];
|
|
28056
|
+
}
|
|
28057
|
+
});
|
|
28032
28058
|
}
|
|
28033
28059
|
const { verticalAlign } = attrs;
|
|
28034
|
-
if (verticalAlign) {
|
|
28035
|
-
|
|
28036
|
-
|
|
28037
|
-
|
|
28038
|
-
|
|
28039
|
-
|
|
28040
|
-
|
|
28041
|
-
|
|
28042
|
-
const vMergeElement = {
|
|
28043
|
-
name: "w:vMerge",
|
|
28044
|
-
type: "element",
|
|
28045
|
-
attributes: { "w:val": "restart" }
|
|
28046
|
-
};
|
|
28047
|
-
elements.push(vMergeElement);
|
|
28060
|
+
if (verticalAlign && verticalAlign !== tableCellProperties.vAlign) {
|
|
28061
|
+
tableCellProperties["vAlign"] = verticalAlign;
|
|
28062
|
+
} else if (!verticalAlign && tableCellProperties?.vAlign) {
|
|
28063
|
+
delete tableCellProperties.vAlign;
|
|
28064
|
+
}
|
|
28065
|
+
const { rowspan } = attrs;
|
|
28066
|
+
if (rowspan && rowspan > 1 && tableCellProperties.vMerge !== "restart") {
|
|
28067
|
+
tableCellProperties["vMerge"] = "restart";
|
|
28048
28068
|
} else if (attrs.continueMerge) {
|
|
28049
|
-
|
|
28050
|
-
|
|
28051
|
-
|
|
28052
|
-
};
|
|
28053
|
-
elements.push(vMergeElement);
|
|
28069
|
+
tableCellProperties["vMerge"] = "continue";
|
|
28070
|
+
} else if (tableCellProperties?.vMerge) {
|
|
28071
|
+
delete tableCellProperties.vMerge;
|
|
28054
28072
|
}
|
|
28055
28073
|
const { borders = {} } = attrs;
|
|
28056
28074
|
if (!!borders && Object.keys(borders).length) {
|
|
28057
|
-
|
|
28058
|
-
|
|
28059
|
-
|
|
28060
|
-
|
|
28061
|
-
|
|
28062
|
-
|
|
28063
|
-
|
|
28064
|
-
|
|
28065
|
-
|
|
28075
|
+
["top", "bottom", "left", "right"].forEach((side) => {
|
|
28076
|
+
if (borders[side]) {
|
|
28077
|
+
let currentPropertyValue = tableCellProperties.borders?.[side];
|
|
28078
|
+
let currentPropertySizePixels = eighthPointsToPixels(currentPropertyValue?.size);
|
|
28079
|
+
let color = borders[side].color;
|
|
28080
|
+
if (borders[side].color && color === "#000000") {
|
|
28081
|
+
color = "auto";
|
|
28082
|
+
}
|
|
28083
|
+
if (currentPropertySizePixels !== borders[side].size || currentPropertyValue?.color !== color || borders[side].val !== currentPropertyValue?.val) {
|
|
28084
|
+
if (!tableCellProperties.borders) tableCellProperties["borders"] = {};
|
|
28085
|
+
tableCellProperties.borders[side] = {
|
|
28086
|
+
size: pixelsToEightPoints(borders[side].size || 0),
|
|
28087
|
+
color,
|
|
28088
|
+
space: borders[side].space || 0,
|
|
28089
|
+
val: borders[side].val || "single"
|
|
28066
28090
|
};
|
|
28067
28091
|
}
|
|
28068
|
-
|
|
28069
|
-
|
|
28070
|
-
|
|
28071
|
-
|
|
28072
|
-
|
|
28073
|
-
|
|
28074
|
-
"w:space": value.space || 0
|
|
28075
|
-
}
|
|
28076
|
-
};
|
|
28077
|
-
})
|
|
28078
|
-
};
|
|
28079
|
-
elements.push(cellBordersElement);
|
|
28092
|
+
} else if (tableCellProperties.borders?.[side]) {
|
|
28093
|
+
delete tableCellProperties.borders[side];
|
|
28094
|
+
}
|
|
28095
|
+
});
|
|
28096
|
+
} else if (tableCellProperties?.borders) {
|
|
28097
|
+
delete tableCellProperties.borders;
|
|
28080
28098
|
}
|
|
28081
|
-
|
|
28082
|
-
|
|
28083
|
-
elements
|
|
28084
|
-
};
|
|
28085
|
-
}
|
|
28086
|
-
function generateCellMargins(cellMargins) {
|
|
28087
|
-
const elements = [];
|
|
28088
|
-
const { top: top2, right: right2, bottom: bottom2, left: left2 } = cellMargins;
|
|
28089
|
-
if (top2 != null) elements.push({ name: "w:top", attributes: { "w:w": pixelsToTwips(top2) } });
|
|
28090
|
-
if (right2 != null) elements.push({ name: "w:right", attributes: { "w:w": pixelsToTwips(right2) } });
|
|
28091
|
-
if (bottom2 != null) elements.push({ name: "w:bottom", attributes: { "w:w": pixelsToTwips(bottom2) } });
|
|
28092
|
-
if (left2 != null) elements.push({ name: "w:left", attributes: { "w:w": pixelsToTwips(left2) } });
|
|
28093
|
-
return elements;
|
|
28099
|
+
const result = translator$d.decode({ node: { ...node, attrs: { ...node.attrs, tableCellProperties } } });
|
|
28100
|
+
return result;
|
|
28094
28101
|
}
|
|
28095
28102
|
const XML_NODE_NAME$d = "w:tc";
|
|
28096
28103
|
const SD_NODE_NAME$b = "tableCell";
|
|
@@ -31702,8 +31709,8 @@ const trackChangeNodeHandlerEntity = {
|
|
|
31702
31709
|
handlerName: "trackChangeNodeHandler",
|
|
31703
31710
|
handler: handleTrackChangeNode
|
|
31704
31711
|
};
|
|
31705
|
-
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$
|
|
31706
|
-
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$
|
|
31712
|
+
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$1c);
|
|
31713
|
+
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$1b);
|
|
31707
31714
|
function parseProperties(node) {
|
|
31708
31715
|
const marks = [];
|
|
31709
31716
|
const unknownMarks = [];
|
|
@@ -31795,7 +31802,7 @@ const handleParagraphNode = (params2) => {
|
|
|
31795
31802
|
if (nodes.length === 0 || nodes[0].name !== "w:p") {
|
|
31796
31803
|
return { nodes: [], consumed: 0 };
|
|
31797
31804
|
}
|
|
31798
|
-
const schemaNode = translator$
|
|
31805
|
+
const schemaNode = translator$1o.encode(params2);
|
|
31799
31806
|
const newNodes = schemaNode ? [schemaNode] : [];
|
|
31800
31807
|
return { nodes: newNodes, consumed: 1 };
|
|
31801
31808
|
};
|
|
@@ -31898,7 +31905,7 @@ const handler = (params2) => {
|
|
|
31898
31905
|
if (nodes.length === 0 || nodes[0].name !== "w:br") {
|
|
31899
31906
|
return { nodes: [], consumed: 0 };
|
|
31900
31907
|
}
|
|
31901
|
-
const result = translator$
|
|
31908
|
+
const result = translator$1r.encode(params2);
|
|
31902
31909
|
if (!result) return { nodes: [], consumed: 0 };
|
|
31903
31910
|
return {
|
|
31904
31911
|
nodes: [result],
|
|
@@ -32524,7 +32531,7 @@ const handleTabNode = (params2) => {
|
|
|
32524
32531
|
if (!nodes.length || nodes[0].name !== "w:tab") {
|
|
32525
32532
|
return { nodes: [], consumed: 0 };
|
|
32526
32533
|
}
|
|
32527
|
-
const node = translator$
|
|
32534
|
+
const node = translator$1p.encode(params2);
|
|
32528
32535
|
return { nodes: [node], consumed: 1 };
|
|
32529
32536
|
};
|
|
32530
32537
|
const tabNodeEntityHandler = {
|
|
@@ -32776,12 +32783,14 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
32776
32783
|
const content = pruneIgnoredNodes(contentElements);
|
|
32777
32784
|
const comments = importCommentData({ docx, converter, editor });
|
|
32778
32785
|
const lists = {};
|
|
32786
|
+
const inlineDocumentFonts = [];
|
|
32779
32787
|
let parsedContent = nodeListHandler.handler({
|
|
32780
32788
|
nodes: content,
|
|
32781
32789
|
nodeListHandler,
|
|
32782
32790
|
docx,
|
|
32783
32791
|
converter,
|
|
32784
32792
|
editor,
|
|
32793
|
+
inlineDocumentFonts,
|
|
32785
32794
|
lists,
|
|
32786
32795
|
path: []
|
|
32787
32796
|
});
|
|
@@ -32804,6 +32813,7 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
32804
32813
|
savedTagsToRestore: node,
|
|
32805
32814
|
pageStyles: getDocumentStyles(node, docx, converter, editor),
|
|
32806
32815
|
comments,
|
|
32816
|
+
inlineDocumentFonts,
|
|
32807
32817
|
linkedStyles: getStyleDefinitions(docx),
|
|
32808
32818
|
numbering: getNumberingDefinitions(docx)
|
|
32809
32819
|
};
|
|
@@ -32867,6 +32877,7 @@ const createNodeListHandler = (nodeHandlers) => {
|
|
|
32867
32877
|
filename,
|
|
32868
32878
|
parentStyleId,
|
|
32869
32879
|
lists,
|
|
32880
|
+
inlineDocumentFonts,
|
|
32870
32881
|
path = []
|
|
32871
32882
|
}) => {
|
|
32872
32883
|
if (!elements || !elements.length) return [];
|
|
@@ -32893,6 +32904,7 @@ const createNodeListHandler = (nodeHandlers) => {
|
|
|
32893
32904
|
filename,
|
|
32894
32905
|
parentStyleId,
|
|
32895
32906
|
lists,
|
|
32907
|
+
inlineDocumentFonts,
|
|
32896
32908
|
path
|
|
32897
32909
|
});
|
|
32898
32910
|
},
|
|
@@ -33472,7 +33484,7 @@ function translateVRectContentBlock(params2) {
|
|
|
33472
33484
|
const XML_NODE_NAME = "w:pict";
|
|
33473
33485
|
const SD_NODE_NAME = ["shapeContainer", "contentBlock"];
|
|
33474
33486
|
const validXmlAttributes = [];
|
|
33475
|
-
function encode$
|
|
33487
|
+
function encode$1c(params2) {
|
|
33476
33488
|
const { node, pNode } = params2.extraParams;
|
|
33477
33489
|
const { type: pictType, handler: handler2 } = pictNodeTypeStrategy(node);
|
|
33478
33490
|
if (!handler2 || pictType === "unknown") {
|
|
@@ -33504,7 +33516,7 @@ const config = {
|
|
|
33504
33516
|
xmlName: XML_NODE_NAME,
|
|
33505
33517
|
sdNodeOrKeyName: SD_NODE_NAME,
|
|
33506
33518
|
type: NodeTranslator.translatorTypes.NODE,
|
|
33507
|
-
encode: encode$
|
|
33519
|
+
encode: encode$1c,
|
|
33508
33520
|
decode,
|
|
33509
33521
|
attributes: validXmlAttributes
|
|
33510
33522
|
};
|
|
@@ -33580,21 +33592,21 @@ function exportSchemaToJson(params2) {
|
|
|
33580
33592
|
doc: translateDocumentNode,
|
|
33581
33593
|
body: translateBodyNode,
|
|
33582
33594
|
heading: translateHeadingNode,
|
|
33583
|
-
paragraph: translator$
|
|
33584
|
-
run: translator$
|
|
33595
|
+
paragraph: translator$1o,
|
|
33596
|
+
run: translator$1b,
|
|
33585
33597
|
text: translateTextNode,
|
|
33586
33598
|
bulletList: translateList,
|
|
33587
33599
|
orderedList: translateList,
|
|
33588
|
-
lineBreak: translator$
|
|
33589
|
-
table: translator$
|
|
33590
|
-
tableRow: translator$
|
|
33600
|
+
lineBreak: translator$1r,
|
|
33601
|
+
table: translator$s,
|
|
33602
|
+
tableRow: translator$Z,
|
|
33591
33603
|
tableCell: translator$c,
|
|
33592
33604
|
bookmarkStart: translator$7,
|
|
33593
33605
|
bookmarkEnd: translator$6,
|
|
33594
33606
|
fieldAnnotation: translator$8,
|
|
33595
|
-
tab: translator$
|
|
33607
|
+
tab: translator$1p,
|
|
33596
33608
|
image: translator$9,
|
|
33597
|
-
hardBreak: translator$
|
|
33609
|
+
hardBreak: translator$1r,
|
|
33598
33610
|
commentRangeStart: commentRangeStartTranslator,
|
|
33599
33611
|
commentRangeEnd: commentRangeEndTranslator,
|
|
33600
33612
|
commentReference: () => null,
|
|
@@ -33955,7 +33967,7 @@ function translateTextNode(params2) {
|
|
|
33955
33967
|
}
|
|
33956
33968
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
33957
33969
|
if (isLinkNode && !extraParams?.linkProcessed) {
|
|
33958
|
-
return translator$
|
|
33970
|
+
return translator$1c.decode(params2);
|
|
33959
33971
|
}
|
|
33960
33972
|
const { text, marks = [] } = node;
|
|
33961
33973
|
return getTextNodeForExport(text, marks, params2);
|
|
@@ -34215,7 +34227,7 @@ function translateMark(mark) {
|
|
|
34215
34227
|
markElement.type = "element";
|
|
34216
34228
|
break;
|
|
34217
34229
|
case "underline": {
|
|
34218
|
-
const translated = translator$
|
|
34230
|
+
const translated = translator$1l.decode({
|
|
34219
34231
|
node: {
|
|
34220
34232
|
attrs: {
|
|
34221
34233
|
underlineType: attrs.underlineType ?? attrs.underline ?? null,
|
|
@@ -34279,7 +34291,7 @@ function translateMark(mark) {
|
|
|
34279
34291
|
break;
|
|
34280
34292
|
case "highlight": {
|
|
34281
34293
|
const highlightValue = attrs.color ?? attrs.highlight ?? null;
|
|
34282
|
-
const translated = translator$
|
|
34294
|
+
const translated = translator$1q.decode({ node: { attrs: { highlight: highlightValue } } });
|
|
34283
34295
|
return translated || {};
|
|
34284
34296
|
}
|
|
34285
34297
|
case "link":
|
|
@@ -34658,6 +34670,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34658
34670
|
this.fonts = params2?.fonts || {};
|
|
34659
34671
|
this.addedMedia = {};
|
|
34660
34672
|
this.comments = [];
|
|
34673
|
+
this.inlineDocumentFonts = [];
|
|
34661
34674
|
this.docHiglightColors = /* @__PURE__ */ new Set([]);
|
|
34662
34675
|
this.xml = params2?.xml;
|
|
34663
34676
|
this.declaration = null;
|
|
@@ -34944,6 +34957,23 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34944
34957
|
return result;
|
|
34945
34958
|
}
|
|
34946
34959
|
getDocumentFonts() {
|
|
34960
|
+
const inlineDocumentFonts = [...new Set(this.inlineDocumentFonts || [])];
|
|
34961
|
+
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
34962
|
+
if (!fontTable) {
|
|
34963
|
+
return inlineDocumentFonts;
|
|
34964
|
+
}
|
|
34965
|
+
const wFonts = fontTable.elements?.find((element) => element.name === "w:fonts");
|
|
34966
|
+
if (!wFonts) {
|
|
34967
|
+
return inlineDocumentFonts;
|
|
34968
|
+
}
|
|
34969
|
+
if (!wFonts.elements) {
|
|
34970
|
+
return inlineDocumentFonts;
|
|
34971
|
+
}
|
|
34972
|
+
const fontsInFontTable = wFonts.elements.filter((element) => element.name === "w:font").map((element) => element.attributes["w:name"]);
|
|
34973
|
+
const allFonts = [...inlineDocumentFonts, ...fontsInFontTable];
|
|
34974
|
+
return [...new Set(allFonts)];
|
|
34975
|
+
}
|
|
34976
|
+
getFontFaceImportString() {
|
|
34947
34977
|
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
34948
34978
|
if (!fontTable || !Object.keys(this.fonts).length) return;
|
|
34949
34979
|
const fonts = fontTable.elements.find((el) => el.name === "w:fonts");
|
|
@@ -34957,6 +34987,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34957
34987
|
const rels = this.convertedXml["word/_rels/fontTable.xml.rels"];
|
|
34958
34988
|
const relationships = rels?.elements.find((el) => el.name === "Relationships") || {};
|
|
34959
34989
|
const { elements } = relationships;
|
|
34990
|
+
const fontsImported = [];
|
|
34960
34991
|
let styleString = "";
|
|
34961
34992
|
for (const font of fontsToInclude) {
|
|
34962
34993
|
const filePath = elements.find((el) => el.attributes.Id === font.attributes["r:id"])?.attributes?.Target;
|
|
@@ -34973,6 +35004,9 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34973
35004
|
const isItalic = font.name.includes("Italic");
|
|
34974
35005
|
const isLight = font.name.includes("Light");
|
|
34975
35006
|
const fontWeight = isNormal ? "normal" : isBold ? "bold" : isLight ? "200" : "normal";
|
|
35007
|
+
if (!fontsImported.includes(font.fontFamily)) {
|
|
35008
|
+
fontsImported.push(font.fontFamily);
|
|
35009
|
+
}
|
|
34976
35010
|
styleString += `
|
|
34977
35011
|
@font-face {
|
|
34978
35012
|
font-style: ${isItalic ? "italic" : "normal"};
|
|
@@ -34983,7 +35017,10 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34983
35017
|
}
|
|
34984
35018
|
`;
|
|
34985
35019
|
}
|
|
34986
|
-
return
|
|
35020
|
+
return {
|
|
35021
|
+
styleString,
|
|
35022
|
+
fontsImported
|
|
35023
|
+
};
|
|
34987
35024
|
}
|
|
34988
35025
|
getDocumentInternalId() {
|
|
34989
35026
|
const settingsLocation = "word/settings.xml";
|
|
@@ -35038,6 +35075,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
35038
35075
|
this.numbering = result.numbering;
|
|
35039
35076
|
this.comments = result.comments;
|
|
35040
35077
|
this.linkedStyles = result.linkedStyles;
|
|
35078
|
+
this.inlineDocumentFonts = result.inlineDocumentFonts;
|
|
35041
35079
|
return result.pmDoc;
|
|
35042
35080
|
} else {
|
|
35043
35081
|
return null;
|
|
@@ -37999,7 +38037,7 @@ var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "rea
|
|
|
37999
38037
|
var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
38000
38038
|
var __privateSet = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
|
|
38001
38039
|
var __privateMethod$1 = (obj, member, method) => (__accessCheck$1(obj, member, "access private method"), method);
|
|
38002
|
-
var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
|
|
38040
|
+
var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFontsWithLocalFonts_fn, determineUnsupportedFontsWithCanvas_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
|
|
38003
38041
|
var GOOD_LEAF_SIZE = 200;
|
|
38004
38042
|
var RopeSequence = function RopeSequence2() {
|
|
38005
38043
|
};
|
|
@@ -51068,6 +51106,29 @@ const setImageNodeSelection = (view, pos) => {
|
|
|
51068
51106
|
}
|
|
51069
51107
|
return false;
|
|
51070
51108
|
};
|
|
51109
|
+
function canRenderFont(fontName, fallbackFont = "sans-serif") {
|
|
51110
|
+
const _canRenderFont = (fontName2, fallbackFont2) => {
|
|
51111
|
+
const canvas = document.createElement("canvas");
|
|
51112
|
+
const ctx2 = canvas.getContext("2d");
|
|
51113
|
+
ctx2.textBaseline = "top";
|
|
51114
|
+
const text = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
51115
|
+
ctx2.font = `72px ${fallbackFont2}`;
|
|
51116
|
+
const initialTextMeasurement = ctx2.measureText(text);
|
|
51117
|
+
const fallbackWidth = initialTextMeasurement.width;
|
|
51118
|
+
const fallbackHeight = initialTextMeasurement.actualBoundingBoxDescent;
|
|
51119
|
+
ctx2.font = `72px "${fontName2}", ${fallbackFont2}`;
|
|
51120
|
+
const customTextMeasurement = ctx2.measureText(text);
|
|
51121
|
+
const customFontWidth = customTextMeasurement.width;
|
|
51122
|
+
const customFontHeight = customTextMeasurement.actualBoundingBoxDescent;
|
|
51123
|
+
const isAvailable = customFontWidth !== fallbackWidth || customFontHeight !== fallbackHeight;
|
|
51124
|
+
return isAvailable;
|
|
51125
|
+
};
|
|
51126
|
+
if (_canRenderFont(fontName, fallbackFont)) {
|
|
51127
|
+
return true;
|
|
51128
|
+
}
|
|
51129
|
+
const oppositeFallbackFont = fallbackFont === "sans-serif" ? "serif" : "sans-serif";
|
|
51130
|
+
return _canRenderFont(fontName, oppositeFallbackFont);
|
|
51131
|
+
}
|
|
51071
51132
|
const { findChildren: findChildren$3 } = helpers;
|
|
51072
51133
|
function getAllFieldAnnotations(state2) {
|
|
51073
51134
|
let fieldAnnotations = findChildren$3(state2.doc, (node) => node.type.name === "fieldAnnotation");
|
|
@@ -52117,6 +52178,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
52117
52178
|
__publicField$1(this, "schema");
|
|
52118
52179
|
__publicField$1(this, "view");
|
|
52119
52180
|
__publicField$1(this, "isFocused", false);
|
|
52181
|
+
__publicField$1(this, "fontsImported", []);
|
|
52120
52182
|
__publicField$1(this, "options", {
|
|
52121
52183
|
element: null,
|
|
52122
52184
|
selector: null,
|
|
@@ -52177,6 +52239,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
52177
52239
|
onPaginationUpdate: () => null,
|
|
52178
52240
|
onException: () => null,
|
|
52179
52241
|
onListDefinitionsChange: () => null,
|
|
52242
|
+
onFontsResolved: null,
|
|
52180
52243
|
// async (file) => url;
|
|
52181
52244
|
handleImageUpload: null,
|
|
52182
52245
|
// telemetry
|
|
@@ -53153,6 +53216,9 @@ init_fn = function() {
|
|
|
53153
53216
|
this.emit("beforeCreate", { editor: this });
|
|
53154
53217
|
this.on("contentError", this.options.onContentError);
|
|
53155
53218
|
this.mount(this.options.element);
|
|
53219
|
+
if (!this.options.isHeadless) {
|
|
53220
|
+
__privateMethod$1(this, _Editor_instances, checkFonts_fn).call(this);
|
|
53221
|
+
}
|
|
53156
53222
|
this.on("create", this.options.onCreate);
|
|
53157
53223
|
this.on("update", this.options.onUpdate);
|
|
53158
53224
|
this.on("selectionUpdate", this.options.onSelectionUpdate);
|
|
@@ -53300,13 +53366,74 @@ initMedia_fn = function() {
|
|
|
53300
53366
|
}
|
|
53301
53367
|
};
|
|
53302
53368
|
initFonts_fn = function() {
|
|
53303
|
-
const
|
|
53304
|
-
if (styleString?.length) {
|
|
53369
|
+
const results = this.converter.getFontFaceImportString();
|
|
53370
|
+
if (results?.styleString?.length) {
|
|
53305
53371
|
const style2 = document.createElement("style");
|
|
53306
|
-
style2.textContent = styleString;
|
|
53372
|
+
style2.textContent = results.styleString;
|
|
53307
53373
|
document.head.appendChild(style2);
|
|
53374
|
+
this.fontsImported = results.fontsImported;
|
|
53308
53375
|
}
|
|
53309
53376
|
};
|
|
53377
|
+
checkFonts_fn = async function() {
|
|
53378
|
+
if (!this.options.onFontsResolved || typeof this.options.onFontsResolved !== "function") {
|
|
53379
|
+
return;
|
|
53380
|
+
}
|
|
53381
|
+
if (this.options.isHeadless) {
|
|
53382
|
+
return;
|
|
53383
|
+
}
|
|
53384
|
+
const fontsUsedInDocument = this.converter.getDocumentFonts();
|
|
53385
|
+
if (!("queryLocalFonts" in window)) {
|
|
53386
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
53387
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
53388
|
+
this.options.onFontsResolved({
|
|
53389
|
+
documentFonts: fontsUsedInDocument,
|
|
53390
|
+
unsupportedFonts
|
|
53391
|
+
});
|
|
53392
|
+
return;
|
|
53393
|
+
}
|
|
53394
|
+
const localFontAccess = await navigator.permissions.query({ name: "local-fonts" });
|
|
53395
|
+
if (localFontAccess.state === "denied") {
|
|
53396
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
53397
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
53398
|
+
this.options.onFontsResolved({
|
|
53399
|
+
documentFonts: fontsUsedInDocument,
|
|
53400
|
+
unsupportedFonts
|
|
53401
|
+
});
|
|
53402
|
+
return;
|
|
53403
|
+
}
|
|
53404
|
+
try {
|
|
53405
|
+
const localFonts = await window.queryLocalFonts();
|
|
53406
|
+
const uniqueLocalFonts = [...new Set(localFonts.map((font) => font.family))];
|
|
53407
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithLocalFonts_fn).call(this, fontsUsedInDocument, uniqueLocalFonts);
|
|
53408
|
+
this.options.onFontsResolved({
|
|
53409
|
+
documentFonts: fontsUsedInDocument,
|
|
53410
|
+
unsupportedFonts
|
|
53411
|
+
});
|
|
53412
|
+
} catch {
|
|
53413
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
53414
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
53415
|
+
this.options.onFontsResolved({
|
|
53416
|
+
documentFonts: fontsUsedInDocument,
|
|
53417
|
+
unsupportedFonts
|
|
53418
|
+
});
|
|
53419
|
+
}
|
|
53420
|
+
};
|
|
53421
|
+
determineUnsupportedFontsWithLocalFonts_fn = function(fonts, localFonts) {
|
|
53422
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
53423
|
+
const isLocalFont = localFonts.includes(font);
|
|
53424
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
53425
|
+
return !isLocalFont && !isFontImported;
|
|
53426
|
+
});
|
|
53427
|
+
return unsupportedFonts;
|
|
53428
|
+
};
|
|
53429
|
+
determineUnsupportedFontsWithCanvas_fn = function(fonts) {
|
|
53430
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
53431
|
+
const canRender = canRenderFont(font);
|
|
53432
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
53433
|
+
return !canRender && !isFontImported;
|
|
53434
|
+
});
|
|
53435
|
+
return unsupportedFonts;
|
|
53436
|
+
};
|
|
53310
53437
|
createSchema_fn = function() {
|
|
53311
53438
|
this.schema = this.extensionService.schema;
|
|
53312
53439
|
};
|
|
@@ -62063,6 +62190,15 @@ const TableCell = Node$1.create({
|
|
|
62063
62190
|
widthUnit: {
|
|
62064
62191
|
default: "px",
|
|
62065
62192
|
rendered: false
|
|
62193
|
+
},
|
|
62194
|
+
/**
|
|
62195
|
+
* @category Attribute
|
|
62196
|
+
* @param {TableCellProperties} tableCellProperties - Properties for the table cell.
|
|
62197
|
+
* @see {@link https://ecma-international.org/publications-and-standards/standards/ecma-376/} "Fundamentals And Markup Language Reference", page 463
|
|
62198
|
+
*/
|
|
62199
|
+
tableCellProperties: {
|
|
62200
|
+
default: null,
|
|
62201
|
+
rendered: false
|
|
62066
62202
|
}
|
|
62067
62203
|
};
|
|
62068
62204
|
},
|
|
@@ -87772,7 +87908,7 @@ const _sfc_main$2 = {
|
|
|
87772
87908
|
}
|
|
87773
87909
|
};
|
|
87774
87910
|
const GenericPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-cbddcc0f"]]);
|
|
87775
|
-
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
87911
|
+
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
87776
87912
|
const _hoisted_1$1 = { class: "super-editor-container" };
|
|
87777
87913
|
const _hoisted_2 = {
|
|
87778
87914
|
key: 1,
|
|
@@ -88167,72 +88303,87 @@ const additionalHandlers = Object.freeze({
|
|
|
88167
88303
|
"mc:AlternateContent": translator$1,
|
|
88168
88304
|
"sd:pageReference": translator$5,
|
|
88169
88305
|
"sd:tableOfContents": translator$4,
|
|
88170
|
-
"w:b": translator$
|
|
88171
|
-
"w:bidiVisual": translator$
|
|
88306
|
+
"w:b": translator$1n,
|
|
88307
|
+
"w:bidiVisual": translator$Y,
|
|
88172
88308
|
"w:bookmarkEnd": translator$6,
|
|
88173
88309
|
"w:bookmarkStart": translator$7,
|
|
88174
|
-
"w:bottom": translator$
|
|
88175
|
-
"w:br": translator$
|
|
88176
|
-
"w:cantSplit": translator$
|
|
88177
|
-
"w:cnfStyle": translator$
|
|
88178
|
-
"w:color": translator$
|
|
88179
|
-
"w:divId": translator$
|
|
88310
|
+
"w:bottom": translator$L,
|
|
88311
|
+
"w:br": translator$1r,
|
|
88312
|
+
"w:cantSplit": translator$1a,
|
|
88313
|
+
"w:cnfStyle": translator$19,
|
|
88314
|
+
"w:color": translator$1j,
|
|
88315
|
+
"w:divId": translator$18,
|
|
88180
88316
|
"w:drawing": translator$9,
|
|
88181
|
-
"w:end": translator$
|
|
88182
|
-
"w:gridAfter": translator$
|
|
88183
|
-
"w:gridBefore": translator$
|
|
88184
|
-
"w:gridCol": translator$
|
|
88185
|
-
"w:hidden": translator$
|
|
88186
|
-
"w:highlight": translator$
|
|
88187
|
-
"w:hyperlink": translator$
|
|
88188
|
-
"w:i": translator$
|
|
88189
|
-
"w:insideH": translator$
|
|
88190
|
-
"w:insideV": translator$
|
|
88191
|
-
"w:jc": translator$
|
|
88192
|
-
"w:left": translator$
|
|
88193
|
-
"w:p": translator$
|
|
88194
|
-
"w:r": translator$
|
|
88195
|
-
"w:rFonts": translator$
|
|
88196
|
-
"w:rPr": translator$
|
|
88197
|
-
"w:rStyle": translator$
|
|
88198
|
-
"w:right": translator$
|
|
88317
|
+
"w:end": translator$J,
|
|
88318
|
+
"w:gridAfter": translator$17,
|
|
88319
|
+
"w:gridBefore": translator$16,
|
|
88320
|
+
"w:gridCol": translator$u,
|
|
88321
|
+
"w:hidden": translator$15,
|
|
88322
|
+
"w:highlight": translator$1q,
|
|
88323
|
+
"w:hyperlink": translator$1c,
|
|
88324
|
+
"w:i": translator$1m,
|
|
88325
|
+
"w:insideH": translator$H,
|
|
88326
|
+
"w:insideV": translator$G,
|
|
88327
|
+
"w:jc": translator$14,
|
|
88328
|
+
"w:left": translator$F,
|
|
88329
|
+
"w:p": translator$1o,
|
|
88330
|
+
"w:r": translator$1b,
|
|
88331
|
+
"w:rFonts": translator$1i,
|
|
88332
|
+
"w:rPr": translator$1d,
|
|
88333
|
+
"w:rStyle": translator$1h,
|
|
88334
|
+
"w:right": translator$D,
|
|
88199
88335
|
"w:sdt": translator$8,
|
|
88200
|
-
"w:shd": translator$
|
|
88201
|
-
"w:start": translator$
|
|
88202
|
-
"w:strike": translator$
|
|
88203
|
-
"w:sz": translator$
|
|
88204
|
-
"w:szCs": translator$
|
|
88205
|
-
"w:tab": translator$
|
|
88206
|
-
"w:tbl": translator$
|
|
88207
|
-
"w:tblBorders": translator$
|
|
88208
|
-
"w:tblCaption": translator$
|
|
88209
|
-
"w:tblCellMar": translator$
|
|
88210
|
-
"w:tblCellSpacing": translator$
|
|
88211
|
-
"w:tblDescription": translator$
|
|
88212
|
-
"w:tblGrid": translator$
|
|
88213
|
-
"w:tblHeader": translator$
|
|
88214
|
-
"w:tblInd": translator$
|
|
88215
|
-
"w:tblLayout": translator$
|
|
88216
|
-
"w:tblLook": translator$
|
|
88217
|
-
"w:tblOverlap": translator$
|
|
88218
|
-
"w:tblPr": translator$
|
|
88219
|
-
"w:tblStyle": translator$
|
|
88220
|
-
"w:tblStyleColBandSize": translator$
|
|
88221
|
-
"w:tblStyleRowBandSize": translator$
|
|
88222
|
-
"w:tblW": translator$
|
|
88223
|
-
"w:tblpPr": translator$
|
|
88336
|
+
"w:shd": translator$X,
|
|
88337
|
+
"w:start": translator$B,
|
|
88338
|
+
"w:strike": translator$1k,
|
|
88339
|
+
"w:sz": translator$1g,
|
|
88340
|
+
"w:szCs": translator$1f,
|
|
88341
|
+
"w:tab": translator$1p,
|
|
88342
|
+
"w:tbl": translator$s,
|
|
88343
|
+
"w:tblBorders": translator$x,
|
|
88344
|
+
"w:tblCaption": translator$W,
|
|
88345
|
+
"w:tblCellMar": translator$w,
|
|
88346
|
+
"w:tblCellSpacing": translator$13,
|
|
88347
|
+
"w:tblDescription": translator$V,
|
|
88348
|
+
"w:tblGrid": translator$t,
|
|
88349
|
+
"w:tblHeader": translator$12,
|
|
88350
|
+
"w:tblInd": translator$U,
|
|
88351
|
+
"w:tblLayout": translator$T,
|
|
88352
|
+
"w:tblLook": translator$S,
|
|
88353
|
+
"w:tblOverlap": translator$R,
|
|
88354
|
+
"w:tblPr": translator$v,
|
|
88355
|
+
"w:tblStyle": translator$Q,
|
|
88356
|
+
"w:tblStyleColBandSize": translator$P,
|
|
88357
|
+
"w:tblStyleRowBandSize": translator$O,
|
|
88358
|
+
"w:tblW": translator$N,
|
|
88359
|
+
"w:tblpPr": translator$M,
|
|
88224
88360
|
"w:tc": translator$c,
|
|
88225
|
-
"w:top": translator$
|
|
88226
|
-
"w:tr": translator$
|
|
88227
|
-
"w:trHeight": translator$
|
|
88228
|
-
"w:trPr": translator$
|
|
88229
|
-
"w:u": translator$
|
|
88230
|
-
"w:wAfter": translator$
|
|
88231
|
-
"w:wBefore": translator
|
|
88361
|
+
"w:top": translator$z,
|
|
88362
|
+
"w:tr": translator$Z,
|
|
88363
|
+
"w:trHeight": translator$11,
|
|
88364
|
+
"w:trPr": translator$_,
|
|
88365
|
+
"w:u": translator$1l,
|
|
88366
|
+
"w:wAfter": translator$10,
|
|
88367
|
+
"w:wBefore": translator$$,
|
|
88232
88368
|
"wp:anchor": translator$b,
|
|
88233
88369
|
"wp:inline": translator$a,
|
|
88234
88370
|
"w:commentRangeStart": commentRangeStartTranslator,
|
|
88235
|
-
"w:commentRangeEnd": commentRangeEndTranslator
|
|
88371
|
+
"w:commentRangeEnd": commentRangeEndTranslator,
|
|
88372
|
+
"w:vMerge": translator$p,
|
|
88373
|
+
"w:gridSpan": translator$q,
|
|
88374
|
+
"w:vAlign": translator$h,
|
|
88375
|
+
"w:noWrap": translator$l,
|
|
88376
|
+
"w:tcFitText": translator$i,
|
|
88377
|
+
"w:tcW": translator$r,
|
|
88378
|
+
"w:hideMark": translator$g,
|
|
88379
|
+
"w:textDirection": translator$j,
|
|
88380
|
+
"w:tl2br": translator$o,
|
|
88381
|
+
"w:tr2bl": translator$n,
|
|
88382
|
+
"w:header": translator$f,
|
|
88383
|
+
"w:headers": translator$e,
|
|
88384
|
+
"w:tcBorders": translator$m,
|
|
88385
|
+
"w:tcMar": translator$k,
|
|
88386
|
+
"w:tcPr": translator$d
|
|
88236
88387
|
});
|
|
88237
88388
|
const baseHandlers = {
|
|
88238
88389
|
...runPropertyTranslators,
|