@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
|
@@ -15129,9 +15129,9 @@ function pixelsToEmu(px) {
|
|
|
15129
15129
|
if (typeof px === "string") px = parseFloat(px);
|
|
15130
15130
|
return Math.round(px * 9525);
|
|
15131
15131
|
}
|
|
15132
|
-
function
|
|
15133
|
-
if (
|
|
15134
|
-
const points = parseFloat(
|
|
15132
|
+
function eighthPointsToPixels(eighthPoints) {
|
|
15133
|
+
if (eighthPoints == null) return;
|
|
15134
|
+
const points = parseFloat(eighthPoints) / 8;
|
|
15135
15135
|
const pixels = points * 1.3333;
|
|
15136
15136
|
return pixels;
|
|
15137
15137
|
}
|
|
@@ -24535,37 +24535,37 @@ const _NodeTranslator = class _NodeTranslator2 {
|
|
|
24535
24535
|
};
|
|
24536
24536
|
__publicField$2(_NodeTranslator, "translatorTypes", TranslatorTypes);
|
|
24537
24537
|
let NodeTranslator = _NodeTranslator;
|
|
24538
|
-
const encode$
|
|
24538
|
+
const encode$1b = (attributes) => {
|
|
24539
24539
|
return attributes["w:type"];
|
|
24540
24540
|
};
|
|
24541
|
-
const decode$
|
|
24541
|
+
const decode$13 = (attrs) => {
|
|
24542
24542
|
const { lineBreakType } = attrs;
|
|
24543
24543
|
return lineBreakType;
|
|
24544
24544
|
};
|
|
24545
24545
|
const attrConfig$G = Object.freeze({
|
|
24546
24546
|
xmlName: "w:type",
|
|
24547
24547
|
sdName: "lineBreakType",
|
|
24548
|
-
encode: encode$
|
|
24549
|
-
decode: decode$
|
|
24548
|
+
encode: encode$1b,
|
|
24549
|
+
decode: decode$13
|
|
24550
24550
|
});
|
|
24551
|
-
const encode$
|
|
24551
|
+
const encode$1a = (attributes) => {
|
|
24552
24552
|
const xmlAttrValue = attributes["w:clear"];
|
|
24553
24553
|
return xmlAttrValue;
|
|
24554
24554
|
};
|
|
24555
|
-
const decode$
|
|
24555
|
+
const decode$12 = (attrs) => {
|
|
24556
24556
|
const { clear } = attrs;
|
|
24557
24557
|
return clear;
|
|
24558
24558
|
};
|
|
24559
24559
|
const attrConfig$F = Object.freeze({
|
|
24560
24560
|
xmlName: "w:clear",
|
|
24561
24561
|
sdName: "clear",
|
|
24562
|
-
encode: encode$
|
|
24563
|
-
decode: decode$
|
|
24562
|
+
encode: encode$1a,
|
|
24563
|
+
decode: decode$12
|
|
24564
24564
|
});
|
|
24565
24565
|
const validXmlAttributes$p = [attrConfig$G, attrConfig$F];
|
|
24566
|
-
const XML_NODE_NAME$
|
|
24566
|
+
const XML_NODE_NAME$y = "w:br";
|
|
24567
24567
|
const SD_NODE_NAME$h = "lineBreak";
|
|
24568
|
-
const encode$
|
|
24568
|
+
const encode$19 = (_2, encodedAttrs) => {
|
|
24569
24569
|
const isPageBreak = encodedAttrs?.lineBreakType === "page";
|
|
24570
24570
|
const translated = {
|
|
24571
24571
|
type: isPageBreak ? "hardBreak" : "lineBreak"
|
|
@@ -24575,7 +24575,7 @@ const encode$1c = (_2, encodedAttrs) => {
|
|
|
24575
24575
|
}
|
|
24576
24576
|
return translated;
|
|
24577
24577
|
};
|
|
24578
|
-
const decode$
|
|
24578
|
+
const decode$11 = (params2, decodedAttrs) => {
|
|
24579
24579
|
const { node } = params2;
|
|
24580
24580
|
if (!node) return;
|
|
24581
24581
|
const wBreak = { name: "w:br" };
|
|
@@ -24592,39 +24592,39 @@ const decode$14 = (params2, decodedAttrs) => {
|
|
|
24592
24592
|
};
|
|
24593
24593
|
return translated;
|
|
24594
24594
|
};
|
|
24595
|
-
const config$
|
|
24596
|
-
xmlName: XML_NODE_NAME$
|
|
24595
|
+
const config$x = {
|
|
24596
|
+
xmlName: XML_NODE_NAME$y,
|
|
24597
24597
|
sdNodeOrKeyName: SD_NODE_NAME$h,
|
|
24598
24598
|
type: NodeTranslator.translatorTypes.NODE,
|
|
24599
|
-
encode: encode$
|
|
24600
|
-
decode: decode$
|
|
24599
|
+
encode: encode$19,
|
|
24600
|
+
decode: decode$11,
|
|
24601
24601
|
attributes: validXmlAttributes$p
|
|
24602
24602
|
};
|
|
24603
|
-
const translator$
|
|
24604
|
-
const encode$
|
|
24605
|
-
const decode$
|
|
24603
|
+
const translator$1r = NodeTranslator.from(config$x);
|
|
24604
|
+
const encode$18 = (attributes) => attributes?.["w:val"];
|
|
24605
|
+
const decode$10 = (attrs) => attrs?.highlight;
|
|
24606
24606
|
const attrConfig$E = Object.freeze({
|
|
24607
24607
|
xmlName: "w:val",
|
|
24608
24608
|
sdName: "highlight",
|
|
24609
|
-
encode: encode$
|
|
24610
|
-
decode: decode$
|
|
24609
|
+
encode: encode$18,
|
|
24610
|
+
decode: decode$10
|
|
24611
24611
|
});
|
|
24612
24612
|
const validXmlAttributes$o = [attrConfig$E];
|
|
24613
|
-
const XML_NODE_NAME$
|
|
24614
|
-
const SD_ATTR_KEY$
|
|
24613
|
+
const XML_NODE_NAME$x = "w:highlight";
|
|
24614
|
+
const SD_ATTR_KEY$f = "highlight";
|
|
24615
24615
|
const DISABLED_TOKENS = /* @__PURE__ */ new Set(["transparent", "none", "inherit"]);
|
|
24616
|
-
const encode$
|
|
24616
|
+
const encode$17 = (params2, encodedAttrs = {}) => {
|
|
24617
24617
|
const { nodes } = params2;
|
|
24618
24618
|
const node = nodes?.[0];
|
|
24619
24619
|
const value = encodedAttrs.highlight ?? node?.attributes?.["w:val"];
|
|
24620
24620
|
return {
|
|
24621
24621
|
type: "attr",
|
|
24622
|
-
xmlName: XML_NODE_NAME$
|
|
24623
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
24622
|
+
xmlName: XML_NODE_NAME$x,
|
|
24623
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
24624
24624
|
attributes: { "w:val": value ?? null }
|
|
24625
24625
|
};
|
|
24626
24626
|
};
|
|
24627
|
-
const decode
|
|
24627
|
+
const decode$$ = (params2) => {
|
|
24628
24628
|
const attrs = params2?.node?.attrs || {};
|
|
24629
24629
|
const highlightValue = attrs.highlight ?? attrs.color ?? null;
|
|
24630
24630
|
if (!highlightValue) return void 0;
|
|
@@ -24632,14 +24632,14 @@ const decode$12 = (params2) => {
|
|
|
24632
24632
|
if (!normalizedValue) return void 0;
|
|
24633
24633
|
if (DISABLED_TOKENS.has(normalizedValue)) {
|
|
24634
24634
|
return {
|
|
24635
|
-
name: XML_NODE_NAME$
|
|
24635
|
+
name: XML_NODE_NAME$x,
|
|
24636
24636
|
attributes: { "w:val": "none" }
|
|
24637
24637
|
};
|
|
24638
24638
|
}
|
|
24639
24639
|
const keyword = getDocxHighlightKeywordFromHex(highlightValue);
|
|
24640
24640
|
if (keyword) {
|
|
24641
24641
|
return {
|
|
24642
|
-
name: XML_NODE_NAME$
|
|
24642
|
+
name: XML_NODE_NAME$x,
|
|
24643
24643
|
attributes: { "w:val": keyword }
|
|
24644
24644
|
};
|
|
24645
24645
|
}
|
|
@@ -24654,63 +24654,63 @@ const decode$12 = (params2) => {
|
|
|
24654
24654
|
}
|
|
24655
24655
|
};
|
|
24656
24656
|
};
|
|
24657
|
-
const config$
|
|
24658
|
-
xmlName: XML_NODE_NAME$
|
|
24659
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
24657
|
+
const config$w = {
|
|
24658
|
+
xmlName: XML_NODE_NAME$x,
|
|
24659
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
24660
24660
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
24661
|
-
encode: encode$
|
|
24662
|
-
decode: decode
|
|
24661
|
+
encode: encode$17,
|
|
24662
|
+
decode: decode$$,
|
|
24663
24663
|
attributes: validXmlAttributes$o
|
|
24664
24664
|
};
|
|
24665
|
-
const translator$
|
|
24666
|
-
const encode$
|
|
24665
|
+
const translator$1q = NodeTranslator.from(config$w);
|
|
24666
|
+
const encode$16 = (attributes) => {
|
|
24667
24667
|
return attributes["w:val"];
|
|
24668
24668
|
};
|
|
24669
|
-
const decode$
|
|
24669
|
+
const decode$_ = (attrs) => {
|
|
24670
24670
|
const { tabSize } = attrs || {};
|
|
24671
24671
|
return tabSize;
|
|
24672
24672
|
};
|
|
24673
24673
|
const attrConfig$D = Object.freeze({
|
|
24674
24674
|
xmlName: "w:val",
|
|
24675
24675
|
sdName: "tabSize",
|
|
24676
|
-
encode: encode$
|
|
24677
|
-
decode: decode$
|
|
24676
|
+
encode: encode$16,
|
|
24677
|
+
decode: decode$_
|
|
24678
24678
|
});
|
|
24679
|
-
const encode$
|
|
24679
|
+
const encode$15 = (attributes) => {
|
|
24680
24680
|
return attributes["w:leader"];
|
|
24681
24681
|
};
|
|
24682
|
-
const decode$
|
|
24682
|
+
const decode$Z = (attrs) => {
|
|
24683
24683
|
const { leader } = attrs || {};
|
|
24684
24684
|
return leader;
|
|
24685
24685
|
};
|
|
24686
24686
|
const attrConfig$C = Object.freeze({
|
|
24687
24687
|
xmlName: "w:leader",
|
|
24688
24688
|
sdName: "leader",
|
|
24689
|
-
encode: encode$
|
|
24690
|
-
decode: decode$
|
|
24689
|
+
encode: encode$15,
|
|
24690
|
+
decode: decode$Z
|
|
24691
24691
|
});
|
|
24692
|
-
const encode$
|
|
24692
|
+
const encode$14 = (attributes) => {
|
|
24693
24693
|
return attributes["w:pos"];
|
|
24694
24694
|
};
|
|
24695
|
-
const decode
|
|
24695
|
+
const decode$Y = (attrs) => {
|
|
24696
24696
|
const { pos } = attrs || {};
|
|
24697
24697
|
return pos;
|
|
24698
24698
|
};
|
|
24699
24699
|
const attrConfig$B = Object.freeze({
|
|
24700
24700
|
xmlName: "w:pos",
|
|
24701
24701
|
sdName: "pos",
|
|
24702
|
-
encode: encode$
|
|
24703
|
-
decode: decode
|
|
24702
|
+
encode: encode$14,
|
|
24703
|
+
decode: decode$Y
|
|
24704
24704
|
});
|
|
24705
24705
|
const validXmlAttributes$n = [attrConfig$D, attrConfig$B, attrConfig$C];
|
|
24706
|
-
const XML_NODE_NAME$
|
|
24706
|
+
const XML_NODE_NAME$w = "w:tab";
|
|
24707
24707
|
const SD_NODE_NAME$g = "tab";
|
|
24708
|
-
const encode$
|
|
24708
|
+
const encode$13 = (_2, encodedAttrs = {}) => {
|
|
24709
24709
|
const translated = { type: "tab" };
|
|
24710
24710
|
if (encodedAttrs) translated.attrs = { ...encodedAttrs };
|
|
24711
24711
|
return translated;
|
|
24712
24712
|
};
|
|
24713
|
-
const decode$
|
|
24713
|
+
const decode$X = (params2, decodedAttrs = {}) => {
|
|
24714
24714
|
const { node } = params2 || {};
|
|
24715
24715
|
if (!node) return;
|
|
24716
24716
|
const wTab = { name: "w:tab" };
|
|
@@ -24726,15 +24726,15 @@ const decode$_ = (params2, decodedAttrs = {}) => {
|
|
|
24726
24726
|
}
|
|
24727
24727
|
return translated;
|
|
24728
24728
|
};
|
|
24729
|
-
const config$
|
|
24730
|
-
xmlName: XML_NODE_NAME$
|
|
24729
|
+
const config$v = {
|
|
24730
|
+
xmlName: XML_NODE_NAME$w,
|
|
24731
24731
|
sdNodeOrKeyName: SD_NODE_NAME$g,
|
|
24732
24732
|
type: NodeTranslator.translatorTypes.NODE,
|
|
24733
|
-
encode: encode$
|
|
24734
|
-
decode: decode$
|
|
24733
|
+
encode: encode$13,
|
|
24734
|
+
decode: decode$X,
|
|
24735
24735
|
attributes: validXmlAttributes$n
|
|
24736
24736
|
};
|
|
24737
|
-
const translator$
|
|
24737
|
+
const translator$1p = NodeTranslator.from(config$v);
|
|
24738
24738
|
const mergeTextNodes = (nodes) => {
|
|
24739
24739
|
if (!nodes || !Array.isArray(nodes)) {
|
|
24740
24740
|
return nodes;
|
|
@@ -24960,9 +24960,9 @@ const parseParagraphBorders = (pBdr) => {
|
|
|
24960
24960
|
const { attributes: a } = el;
|
|
24961
24961
|
if (a["w:val"] === "nil" || a["w:val"] === void 0) return;
|
|
24962
24962
|
let sizePx;
|
|
24963
|
-
if (a["w:sz"] !== void 0) sizePx =
|
|
24963
|
+
if (a["w:sz"] !== void 0) sizePx = eighthPointsToPixels(a["w:sz"]);
|
|
24964
24964
|
let spacePx;
|
|
24965
|
-
if (a["w:space"] !== void 0) spacePx =
|
|
24965
|
+
if (a["w:space"] !== void 0) spacePx = eighthPointsToPixels(a["w:space"]);
|
|
24966
24966
|
result[side] = {
|
|
24967
24967
|
val: a["w:val"],
|
|
24968
24968
|
size: sizePx,
|
|
@@ -25252,89 +25252,89 @@ const handleParagraphNode$1 = (params2) => {
|
|
|
25252
25252
|
}
|
|
25253
25253
|
return schemaNode;
|
|
25254
25254
|
};
|
|
25255
|
-
const encode$
|
|
25255
|
+
const encode$12 = (attributes) => {
|
|
25256
25256
|
return attributes["w:rsidDel"];
|
|
25257
25257
|
};
|
|
25258
|
-
const decode$
|
|
25258
|
+
const decode$W = (attrs) => {
|
|
25259
25259
|
return attrs.rsidDel;
|
|
25260
25260
|
};
|
|
25261
25261
|
const attrConfig$A = Object.freeze({
|
|
25262
25262
|
xmlName: "w:rsidDel",
|
|
25263
25263
|
sdName: "rsidDel",
|
|
25264
|
-
encode: encode$
|
|
25265
|
-
decode: decode$
|
|
25264
|
+
encode: encode$12,
|
|
25265
|
+
decode: decode$W
|
|
25266
25266
|
});
|
|
25267
|
-
const encode$
|
|
25267
|
+
const encode$11 = (attributes) => {
|
|
25268
25268
|
return attributes["w:rsidP"];
|
|
25269
25269
|
};
|
|
25270
|
-
const decode$
|
|
25270
|
+
const decode$V = (attrs) => {
|
|
25271
25271
|
return attrs.rsidP;
|
|
25272
25272
|
};
|
|
25273
25273
|
const attrConfig$z = Object.freeze({
|
|
25274
25274
|
xmlName: "w:rsidP",
|
|
25275
25275
|
sdName: "rsidP",
|
|
25276
|
-
encode: encode$
|
|
25277
|
-
decode: decode$
|
|
25276
|
+
encode: encode$11,
|
|
25277
|
+
decode: decode$V
|
|
25278
25278
|
});
|
|
25279
|
-
const encode$
|
|
25279
|
+
const encode$10 = (attributes) => {
|
|
25280
25280
|
return attributes["w:rsidR"];
|
|
25281
25281
|
};
|
|
25282
|
-
const decode$
|
|
25282
|
+
const decode$U = (attrs) => {
|
|
25283
25283
|
return attrs.rsidR;
|
|
25284
25284
|
};
|
|
25285
25285
|
const attrConfig$y = Object.freeze({
|
|
25286
25286
|
xmlName: "w:rsidR",
|
|
25287
25287
|
sdName: "rsidR",
|
|
25288
|
-
encode: encode$
|
|
25289
|
-
decode: decode$
|
|
25288
|
+
encode: encode$10,
|
|
25289
|
+
decode: decode$U
|
|
25290
25290
|
});
|
|
25291
|
-
const encode
|
|
25291
|
+
const encode$$ = (attributes) => {
|
|
25292
25292
|
return attributes["w:rsidRPr"];
|
|
25293
25293
|
};
|
|
25294
|
-
const decode$
|
|
25294
|
+
const decode$T = (attrs) => {
|
|
25295
25295
|
return attrs.rsidRPr;
|
|
25296
25296
|
};
|
|
25297
25297
|
const attrConfig$x = Object.freeze({
|
|
25298
25298
|
xmlName: "w:rsidRPr",
|
|
25299
25299
|
sdName: "rsidRPr",
|
|
25300
|
-
encode: encode
|
|
25301
|
-
decode: decode$
|
|
25300
|
+
encode: encode$$,
|
|
25301
|
+
decode: decode$T
|
|
25302
25302
|
});
|
|
25303
|
-
const encode$
|
|
25303
|
+
const encode$_ = (attributes) => {
|
|
25304
25304
|
return attributes["w:rsidRDefault"];
|
|
25305
25305
|
};
|
|
25306
|
-
const decode$
|
|
25306
|
+
const decode$S = (attrs) => {
|
|
25307
25307
|
return attrs.rsidRDefault;
|
|
25308
25308
|
};
|
|
25309
25309
|
const attrConfig$w = Object.freeze({
|
|
25310
25310
|
xmlName: "w:rsidRDefault",
|
|
25311
25311
|
sdName: "rsidRDefault",
|
|
25312
|
-
encode: encode$
|
|
25313
|
-
decode: decode$
|
|
25312
|
+
encode: encode$_,
|
|
25313
|
+
decode: decode$S
|
|
25314
25314
|
});
|
|
25315
|
-
const encode$
|
|
25315
|
+
const encode$Z = (attributes) => {
|
|
25316
25316
|
return attributes["w14:paraId"];
|
|
25317
25317
|
};
|
|
25318
|
-
const decode$
|
|
25318
|
+
const decode$R = (attrs) => {
|
|
25319
25319
|
return attrs.paraId;
|
|
25320
25320
|
};
|
|
25321
25321
|
const attrConfig$v = Object.freeze({
|
|
25322
25322
|
xmlName: "w14:paraId",
|
|
25323
25323
|
sdName: "paraId",
|
|
25324
|
-
encode: encode$
|
|
25325
|
-
decode: decode$
|
|
25324
|
+
encode: encode$Z,
|
|
25325
|
+
decode: decode$R
|
|
25326
25326
|
});
|
|
25327
|
-
const encode
|
|
25327
|
+
const encode$Y = (attributes) => {
|
|
25328
25328
|
return attributes["w14:textId"];
|
|
25329
25329
|
};
|
|
25330
|
-
const decode$
|
|
25330
|
+
const decode$Q = (attrs) => {
|
|
25331
25331
|
return attrs.textId;
|
|
25332
25332
|
};
|
|
25333
25333
|
const attrConfig$u = Object.freeze({
|
|
25334
25334
|
xmlName: "w14:textId",
|
|
25335
25335
|
sdName: "textId",
|
|
25336
|
-
encode: encode
|
|
25337
|
-
decode: decode$
|
|
25336
|
+
encode: encode$Y,
|
|
25337
|
+
decode: decode$Q
|
|
25338
25338
|
});
|
|
25339
25339
|
const validXmlAttributes$m = [
|
|
25340
25340
|
attrConfig$v,
|
|
@@ -25345,9 +25345,9 @@ const validXmlAttributes$m = [
|
|
|
25345
25345
|
attrConfig$x,
|
|
25346
25346
|
attrConfig$A
|
|
25347
25347
|
];
|
|
25348
|
-
const XML_NODE_NAME$
|
|
25348
|
+
const XML_NODE_NAME$v = "w:p";
|
|
25349
25349
|
const SD_NODE_NAME$f = "paragraph";
|
|
25350
|
-
const encode$
|
|
25350
|
+
const encode$X = (params2, encodedAttrs = {}) => {
|
|
25351
25351
|
const node = handleParagraphNode$1(params2);
|
|
25352
25352
|
if (!node) return void 0;
|
|
25353
25353
|
if (encodedAttrs && Object.keys(encodedAttrs).length) {
|
|
@@ -25355,7 +25355,7 @@ const encode$_ = (params2, encodedAttrs = {}) => {
|
|
|
25355
25355
|
}
|
|
25356
25356
|
return node;
|
|
25357
25357
|
};
|
|
25358
|
-
const decode$
|
|
25358
|
+
const decode$P = (params2, decodedAttrs = {}) => {
|
|
25359
25359
|
const translated = translateParagraphNode(params2);
|
|
25360
25360
|
if (!translated) return void 0;
|
|
25361
25361
|
if (decodedAttrs && Object.keys(decodedAttrs).length) {
|
|
@@ -25363,16 +25363,16 @@ const decode$S = (params2, decodedAttrs = {}) => {
|
|
|
25363
25363
|
}
|
|
25364
25364
|
return translated;
|
|
25365
25365
|
};
|
|
25366
|
-
const config$
|
|
25367
|
-
xmlName: XML_NODE_NAME$
|
|
25366
|
+
const config$u = {
|
|
25367
|
+
xmlName: XML_NODE_NAME$v,
|
|
25368
25368
|
sdNodeOrKeyName: SD_NODE_NAME$f,
|
|
25369
25369
|
type: NodeTranslator.translatorTypes.NODE,
|
|
25370
|
-
encode: encode$
|
|
25371
|
-
decode: decode$
|
|
25370
|
+
encode: encode$X,
|
|
25371
|
+
decode: decode$P,
|
|
25372
25372
|
attributes: validXmlAttributes$m
|
|
25373
25373
|
};
|
|
25374
|
-
const translator$
|
|
25375
|
-
const encode$
|
|
25374
|
+
const translator$1o = NodeTranslator.from(config$u);
|
|
25375
|
+
const encode$W = (attributes) => {
|
|
25376
25376
|
const raw = attributes?.["w:val"];
|
|
25377
25377
|
if (raw === void 0 || raw === null) return void 0;
|
|
25378
25378
|
if (typeof raw === "boolean") return raw;
|
|
@@ -25382,24 +25382,24 @@ const encode$Z = (attributes) => {
|
|
|
25382
25382
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
25383
25383
|
return void 0;
|
|
25384
25384
|
};
|
|
25385
|
-
const decode$
|
|
25385
|
+
const decode$O = (runProps) => {
|
|
25386
25386
|
if (runProps?.bold === false) return "0";
|
|
25387
25387
|
return void 0;
|
|
25388
25388
|
};
|
|
25389
25389
|
const attrConfig$t = Object.freeze({
|
|
25390
25390
|
xmlName: "w:val",
|
|
25391
25391
|
sdName: "bold",
|
|
25392
|
-
encode: encode$
|
|
25393
|
-
decode: decode$
|
|
25392
|
+
encode: encode$W,
|
|
25393
|
+
decode: decode$O
|
|
25394
25394
|
});
|
|
25395
25395
|
const validXmlAttributes$l = [attrConfig$t];
|
|
25396
|
-
const XML_NODE_NAME$
|
|
25397
|
-
const SD_ATTR_KEY$
|
|
25398
|
-
const encode$
|
|
25396
|
+
const XML_NODE_NAME$u = "w:b";
|
|
25397
|
+
const SD_ATTR_KEY$e = "bold";
|
|
25398
|
+
const encode$V = (params2, encodedAttrs = {}) => {
|
|
25399
25399
|
const { nodes } = params2;
|
|
25400
25400
|
const node = nodes[0];
|
|
25401
25401
|
if (!node) return void 0;
|
|
25402
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
25402
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$e];
|
|
25403
25403
|
let attributes;
|
|
25404
25404
|
if (val === false) attributes = { "w:val": "0" };
|
|
25405
25405
|
else if (val === true)
|
|
@@ -25407,85 +25407,85 @@ const encode$Y = (params2, encodedAttrs = {}) => {
|
|
|
25407
25407
|
else attributes = node.attributes || {};
|
|
25408
25408
|
return {
|
|
25409
25409
|
type: "attr",
|
|
25410
|
-
xmlName: XML_NODE_NAME$
|
|
25411
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25410
|
+
xmlName: XML_NODE_NAME$u,
|
|
25411
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
25412
25412
|
attributes
|
|
25413
25413
|
};
|
|
25414
25414
|
};
|
|
25415
|
-
const config$
|
|
25416
|
-
xmlName: XML_NODE_NAME$
|
|
25417
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25415
|
+
const config$t = {
|
|
25416
|
+
xmlName: XML_NODE_NAME$u,
|
|
25417
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
25418
25418
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25419
|
-
encode: encode$
|
|
25419
|
+
encode: encode$V,
|
|
25420
25420
|
attributes: validXmlAttributes$l
|
|
25421
25421
|
};
|
|
25422
|
-
const translator$
|
|
25423
|
-
const XML_NODE_NAME$
|
|
25424
|
-
const SD_ATTR_KEY$
|
|
25425
|
-
const encode$
|
|
25422
|
+
const translator$1n = NodeTranslator.from(config$t);
|
|
25423
|
+
const XML_NODE_NAME$t = "w:i";
|
|
25424
|
+
const SD_ATTR_KEY$d = "italic";
|
|
25425
|
+
const encode$U = (params2) => {
|
|
25426
25426
|
const { nodes } = params2;
|
|
25427
25427
|
const node = nodes?.[0];
|
|
25428
25428
|
if (!node) return void 0;
|
|
25429
25429
|
return {
|
|
25430
25430
|
type: "attr",
|
|
25431
|
-
xmlName: XML_NODE_NAME$
|
|
25432
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25431
|
+
xmlName: XML_NODE_NAME$t,
|
|
25432
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
25433
25433
|
attributes: {
|
|
25434
25434
|
"w:val": node.attributes?.["w:val"] ?? null
|
|
25435
25435
|
}
|
|
25436
25436
|
};
|
|
25437
25437
|
};
|
|
25438
|
-
const config$
|
|
25439
|
-
xmlName: XML_NODE_NAME$
|
|
25440
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25438
|
+
const config$s = {
|
|
25439
|
+
xmlName: XML_NODE_NAME$t,
|
|
25440
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
25441
25441
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25442
|
-
encode: encode$
|
|
25442
|
+
encode: encode$U
|
|
25443
25443
|
};
|
|
25444
|
-
const translator$
|
|
25445
|
-
const encode$
|
|
25446
|
-
const decode$
|
|
25444
|
+
const translator$1m = NodeTranslator.from(config$s);
|
|
25445
|
+
const encode$T = (attributes) => attributes?.["w:val"];
|
|
25446
|
+
const decode$N = (attrs) => attrs?.underline;
|
|
25447
25447
|
const attrConfig$s = Object.freeze({
|
|
25448
25448
|
xmlName: "w:val",
|
|
25449
25449
|
sdName: "underline",
|
|
25450
|
-
encode: encode$
|
|
25451
|
-
decode: decode$
|
|
25450
|
+
encode: encode$T,
|
|
25451
|
+
decode: decode$N
|
|
25452
25452
|
});
|
|
25453
|
-
const encode$
|
|
25454
|
-
const decode$
|
|
25453
|
+
const encode$S = (attributes) => attributes?.["w:color"];
|
|
25454
|
+
const decode$M = (attrs) => attrs?.color;
|
|
25455
25455
|
const attrConfig$r = Object.freeze({
|
|
25456
25456
|
xmlName: "w:color",
|
|
25457
25457
|
sdName: "color",
|
|
25458
|
-
encode: encode$
|
|
25459
|
-
decode: decode$
|
|
25458
|
+
encode: encode$S,
|
|
25459
|
+
decode: decode$M
|
|
25460
25460
|
});
|
|
25461
|
-
const encode$
|
|
25462
|
-
const decode$
|
|
25461
|
+
const encode$R = (attributes) => attributes?.["w:themeColor"];
|
|
25462
|
+
const decode$L = (attrs) => attrs?.themeColor;
|
|
25463
25463
|
const attrConfig$q = Object.freeze({
|
|
25464
25464
|
xmlName: "w:themeColor",
|
|
25465
25465
|
sdName: "themeColor",
|
|
25466
|
-
encode: encode$
|
|
25467
|
-
decode: decode$
|
|
25466
|
+
encode: encode$R,
|
|
25467
|
+
decode: decode$L
|
|
25468
25468
|
});
|
|
25469
|
-
const encode$
|
|
25470
|
-
const decode$
|
|
25469
|
+
const encode$Q = (attributes) => attributes?.["w:themeTint"];
|
|
25470
|
+
const decode$K = (attrs) => attrs?.themeTint;
|
|
25471
25471
|
const attrConfig$p = Object.freeze({
|
|
25472
25472
|
xmlName: "w:themeTint",
|
|
25473
25473
|
sdName: "themeTint",
|
|
25474
|
-
encode: encode$
|
|
25475
|
-
decode: decode$
|
|
25474
|
+
encode: encode$Q,
|
|
25475
|
+
decode: decode$K
|
|
25476
25476
|
});
|
|
25477
|
-
const encode$
|
|
25478
|
-
const decode$
|
|
25477
|
+
const encode$P = (attributes) => attributes?.["w:themeShade"];
|
|
25478
|
+
const decode$J = (attrs) => attrs?.themeShade;
|
|
25479
25479
|
const attrConfig$o = Object.freeze({
|
|
25480
25480
|
xmlName: "w:themeShade",
|
|
25481
25481
|
sdName: "themeShade",
|
|
25482
|
-
encode: encode$
|
|
25483
|
-
decode: decode$
|
|
25482
|
+
encode: encode$P,
|
|
25483
|
+
decode: decode$J
|
|
25484
25484
|
});
|
|
25485
25485
|
const validXmlAttributes$k = [attrConfig$s, attrConfig$r, attrConfig$q, attrConfig$p, attrConfig$o];
|
|
25486
|
-
const XML_NODE_NAME$
|
|
25487
|
-
const SD_ATTR_KEY$
|
|
25488
|
-
const encode$
|
|
25486
|
+
const XML_NODE_NAME$s = "w:u";
|
|
25487
|
+
const SD_ATTR_KEY$c = "underline";
|
|
25488
|
+
const encode$O = (params2, encodedAttrs = {}) => {
|
|
25489
25489
|
const { nodes } = params2;
|
|
25490
25490
|
const node = nodes?.[0];
|
|
25491
25491
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25501,12 +25501,12 @@ const encode$R = (params2, encodedAttrs = {}) => {
|
|
|
25501
25501
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
25502
25502
|
return {
|
|
25503
25503
|
type: "attr",
|
|
25504
|
-
xmlName: XML_NODE_NAME$
|
|
25505
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25504
|
+
xmlName: XML_NODE_NAME$s,
|
|
25505
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
25506
25506
|
attributes
|
|
25507
25507
|
};
|
|
25508
25508
|
};
|
|
25509
|
-
const decode$
|
|
25509
|
+
const decode$I = (params2) => {
|
|
25510
25510
|
const attrs = params2?.node?.attrs || {};
|
|
25511
25511
|
const underlineType = attrs.underlineType ?? attrs.underline ?? null;
|
|
25512
25512
|
const color = attrs.underlineColor ?? attrs.color ?? null;
|
|
@@ -25524,20 +25524,20 @@ const decode$L = (params2) => {
|
|
|
25524
25524
|
if (themeTint) attributes["w:themeTint"] = themeTint;
|
|
25525
25525
|
if (themeShade) attributes["w:themeShade"] = themeShade;
|
|
25526
25526
|
return {
|
|
25527
|
-
name: XML_NODE_NAME$
|
|
25527
|
+
name: XML_NODE_NAME$s,
|
|
25528
25528
|
attributes
|
|
25529
25529
|
};
|
|
25530
25530
|
};
|
|
25531
|
-
const config$
|
|
25532
|
-
xmlName: XML_NODE_NAME$
|
|
25533
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25531
|
+
const config$r = {
|
|
25532
|
+
xmlName: XML_NODE_NAME$s,
|
|
25533
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
25534
25534
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25535
|
-
encode: encode$
|
|
25536
|
-
decode: decode$
|
|
25535
|
+
encode: encode$O,
|
|
25536
|
+
decode: decode$I,
|
|
25537
25537
|
attributes: validXmlAttributes$k
|
|
25538
25538
|
};
|
|
25539
|
-
const translator$
|
|
25540
|
-
const encode$
|
|
25539
|
+
const translator$1l = NodeTranslator.from(config$r);
|
|
25540
|
+
const encode$N = (attributes) => {
|
|
25541
25541
|
const raw = attributes?.["w:val"];
|
|
25542
25542
|
if (raw === void 0 || raw === null) return void 0;
|
|
25543
25543
|
if (typeof raw === "boolean") return raw;
|
|
@@ -25547,24 +25547,24 @@ const encode$Q = (attributes) => {
|
|
|
25547
25547
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
25548
25548
|
return void 0;
|
|
25549
25549
|
};
|
|
25550
|
-
const decode$
|
|
25550
|
+
const decode$H = (attrs) => {
|
|
25551
25551
|
if (attrs?.strike === false) return "0";
|
|
25552
25552
|
return void 0;
|
|
25553
25553
|
};
|
|
25554
25554
|
const attrConfig$n = Object.freeze({
|
|
25555
25555
|
xmlName: "w:val",
|
|
25556
25556
|
sdName: "strike",
|
|
25557
|
-
encode: encode$
|
|
25558
|
-
decode: decode$
|
|
25557
|
+
encode: encode$N,
|
|
25558
|
+
decode: decode$H
|
|
25559
25559
|
});
|
|
25560
25560
|
const validXmlAttributes$j = [attrConfig$n];
|
|
25561
|
-
const XML_NODE_NAME$
|
|
25562
|
-
const SD_ATTR_KEY$
|
|
25563
|
-
const encode$
|
|
25561
|
+
const XML_NODE_NAME$r = "w:strike";
|
|
25562
|
+
const SD_ATTR_KEY$b = "strike";
|
|
25563
|
+
const encode$M = (params2, encodedAttrs = {}) => {
|
|
25564
25564
|
const { nodes } = params2;
|
|
25565
25565
|
const node = nodes?.[0];
|
|
25566
25566
|
if (!node) return void 0;
|
|
25567
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
25567
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$b];
|
|
25568
25568
|
let attributes;
|
|
25569
25569
|
if (val === false) attributes = { "w:val": "0" };
|
|
25570
25570
|
else if (val === true) attributes = {};
|
|
@@ -25573,55 +25573,55 @@ const encode$P = (params2, encodedAttrs = {}) => {
|
|
|
25573
25573
|
else if (val === true && attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
25574
25574
|
return {
|
|
25575
25575
|
type: "attr",
|
|
25576
|
-
xmlName: XML_NODE_NAME$
|
|
25577
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25576
|
+
xmlName: XML_NODE_NAME$r,
|
|
25577
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
25578
25578
|
attributes
|
|
25579
25579
|
};
|
|
25580
25580
|
};
|
|
25581
|
-
const config$
|
|
25582
|
-
xmlName: XML_NODE_NAME$
|
|
25583
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25581
|
+
const config$q = {
|
|
25582
|
+
xmlName: XML_NODE_NAME$r,
|
|
25583
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
25584
25584
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25585
|
-
encode: encode$
|
|
25585
|
+
encode: encode$M,
|
|
25586
25586
|
attributes: validXmlAttributes$j
|
|
25587
25587
|
};
|
|
25588
|
-
const translator$
|
|
25589
|
-
const encode$
|
|
25590
|
-
const decode$
|
|
25588
|
+
const translator$1k = NodeTranslator.from(config$q);
|
|
25589
|
+
const encode$L = (attributes) => attributes?.["w:val"];
|
|
25590
|
+
const decode$G = (attrs) => attrs?.color;
|
|
25591
25591
|
const attrConfig$m = Object.freeze({
|
|
25592
25592
|
xmlName: "w:val",
|
|
25593
25593
|
sdName: "color",
|
|
25594
|
-
encode: encode$
|
|
25595
|
-
decode: decode$
|
|
25594
|
+
encode: encode$L,
|
|
25595
|
+
decode: decode$G
|
|
25596
25596
|
});
|
|
25597
|
-
const encode$
|
|
25598
|
-
const decode$
|
|
25597
|
+
const encode$K = (attributes) => attributes?.["w:themeColor"];
|
|
25598
|
+
const decode$F = (attrs) => attrs?.themeColor;
|
|
25599
25599
|
const attrConfig$l = Object.freeze({
|
|
25600
25600
|
xmlName: "w:themeColor",
|
|
25601
25601
|
sdName: "themeColor",
|
|
25602
|
-
encode: encode$
|
|
25603
|
-
decode: decode$
|
|
25602
|
+
encode: encode$K,
|
|
25603
|
+
decode: decode$F
|
|
25604
25604
|
});
|
|
25605
|
-
const encode$
|
|
25606
|
-
const decode$
|
|
25605
|
+
const encode$J = (attributes) => attributes?.["w:themeTint"];
|
|
25606
|
+
const decode$E = (attrs) => attrs?.themeTint;
|
|
25607
25607
|
const attrConfig$k = Object.freeze({
|
|
25608
25608
|
xmlName: "w:themeTint",
|
|
25609
25609
|
sdName: "themeTint",
|
|
25610
|
-
encode: encode$
|
|
25611
|
-
decode: decode$
|
|
25610
|
+
encode: encode$J,
|
|
25611
|
+
decode: decode$E
|
|
25612
25612
|
});
|
|
25613
|
-
const encode$
|
|
25614
|
-
const decode$
|
|
25613
|
+
const encode$I = (attributes) => attributes?.["w:themeShade"];
|
|
25614
|
+
const decode$D = (attrs) => attrs?.themeShade;
|
|
25615
25615
|
const attrConfig$j = Object.freeze({
|
|
25616
25616
|
xmlName: "w:themeShade",
|
|
25617
25617
|
sdName: "themeShade",
|
|
25618
|
-
encode: encode$
|
|
25619
|
-
decode: decode$
|
|
25618
|
+
encode: encode$I,
|
|
25619
|
+
decode: decode$D
|
|
25620
25620
|
});
|
|
25621
25621
|
const validXmlAttributes$i = [attrConfig$m, attrConfig$l, attrConfig$k, attrConfig$j];
|
|
25622
|
-
const XML_NODE_NAME$
|
|
25623
|
-
const SD_ATTR_KEY$
|
|
25624
|
-
const encode$
|
|
25622
|
+
const XML_NODE_NAME$q = "w:color";
|
|
25623
|
+
const SD_ATTR_KEY$a = "color";
|
|
25624
|
+
const encode$H = (params2, encodedAttrs = {}) => {
|
|
25625
25625
|
const { nodes } = params2;
|
|
25626
25626
|
const node = nodes?.[0];
|
|
25627
25627
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25636,63 +25636,63 @@ const encode$K = (params2, encodedAttrs = {}) => {
|
|
|
25636
25636
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
25637
25637
|
return {
|
|
25638
25638
|
type: "attr",
|
|
25639
|
-
xmlName: XML_NODE_NAME$
|
|
25640
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25639
|
+
xmlName: XML_NODE_NAME$q,
|
|
25640
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
25641
25641
|
attributes
|
|
25642
25642
|
};
|
|
25643
25643
|
};
|
|
25644
|
-
const config$
|
|
25645
|
-
xmlName: XML_NODE_NAME$
|
|
25646
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25644
|
+
const config$p = {
|
|
25645
|
+
xmlName: XML_NODE_NAME$q,
|
|
25646
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
25647
25647
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25648
|
-
encode: encode$
|
|
25648
|
+
encode: encode$H,
|
|
25649
25649
|
attributes: validXmlAttributes$i
|
|
25650
25650
|
};
|
|
25651
|
-
const translator$
|
|
25652
|
-
const encode$
|
|
25653
|
-
const decode$
|
|
25651
|
+
const translator$1j = NodeTranslator.from(config$p);
|
|
25652
|
+
const encode$G = (attributes) => attributes?.["w:eastAsia"];
|
|
25653
|
+
const decode$C = (attrs) => attrs?.eastAsia;
|
|
25654
25654
|
const attrConfig$i = Object.freeze({
|
|
25655
25655
|
xmlName: "w:eastAsia",
|
|
25656
25656
|
sdName: "eastAsia",
|
|
25657
|
-
encode: encode$
|
|
25658
|
-
decode: decode$
|
|
25657
|
+
encode: encode$G,
|
|
25658
|
+
decode: decode$C
|
|
25659
25659
|
});
|
|
25660
|
-
const encode$
|
|
25661
|
-
const decode$
|
|
25660
|
+
const encode$F = (attributes) => attributes?.["w:ascii"];
|
|
25661
|
+
const decode$B = (attrs) => attrs?.ascii;
|
|
25662
25662
|
const attrConfig$h = Object.freeze({
|
|
25663
25663
|
xmlName: "w:ascii",
|
|
25664
25664
|
sdName: "ascii",
|
|
25665
|
-
encode: encode$
|
|
25666
|
-
decode: decode$
|
|
25665
|
+
encode: encode$F,
|
|
25666
|
+
decode: decode$B
|
|
25667
25667
|
});
|
|
25668
|
-
const encode$
|
|
25669
|
-
const decode$
|
|
25668
|
+
const encode$E = (attributes) => attributes?.["w:hAnsi"];
|
|
25669
|
+
const decode$A = (attrs) => attrs?.hAnsi;
|
|
25670
25670
|
const attrConfig$g = Object.freeze({
|
|
25671
25671
|
xmlName: "w:hAnsi",
|
|
25672
25672
|
sdName: "hAnsi",
|
|
25673
|
-
encode: encode$
|
|
25674
|
-
decode: decode$
|
|
25673
|
+
encode: encode$E,
|
|
25674
|
+
decode: decode$A
|
|
25675
25675
|
});
|
|
25676
|
-
const encode$
|
|
25677
|
-
const decode$
|
|
25676
|
+
const encode$D = (attributes) => attributes?.["w:cs"];
|
|
25677
|
+
const decode$z = (attrs) => attrs?.cs;
|
|
25678
25678
|
const attrConfig$f = Object.freeze({
|
|
25679
25679
|
xmlName: "w:cs",
|
|
25680
25680
|
sdName: "cs",
|
|
25681
|
-
encode: encode$
|
|
25682
|
-
decode: decode$
|
|
25681
|
+
encode: encode$D,
|
|
25682
|
+
decode: decode$z
|
|
25683
25683
|
});
|
|
25684
|
-
const encode$
|
|
25685
|
-
const decode$
|
|
25684
|
+
const encode$C = (attributes) => attributes?.["w:val"];
|
|
25685
|
+
const decode$y = (attrs) => attrs?.value;
|
|
25686
25686
|
const attrConfig$e = Object.freeze({
|
|
25687
25687
|
xmlName: "w:val",
|
|
25688
25688
|
sdName: "value",
|
|
25689
|
-
encode: encode$
|
|
25690
|
-
decode: decode$
|
|
25689
|
+
encode: encode$C,
|
|
25690
|
+
decode: decode$y
|
|
25691
25691
|
});
|
|
25692
25692
|
const validXmlAttributes$h = [attrConfig$i, attrConfig$h, attrConfig$g, attrConfig$f, attrConfig$e];
|
|
25693
|
-
const XML_NODE_NAME$
|
|
25694
|
-
const SD_ATTR_KEY$
|
|
25695
|
-
const encode$
|
|
25693
|
+
const XML_NODE_NAME$p = "w:rFonts";
|
|
25694
|
+
const SD_ATTR_KEY$9 = "fontFamily";
|
|
25695
|
+
const encode$B = (params2, encodedAttrs = {}) => {
|
|
25696
25696
|
const { nodes } = params2;
|
|
25697
25697
|
const node = nodes?.[0];
|
|
25698
25698
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -25716,111 +25716,119 @@ const encode$E = (params2, encodedAttrs = {}) => {
|
|
|
25716
25716
|
attributes["w:val"] = attributes["w:eastAsia"];
|
|
25717
25717
|
}
|
|
25718
25718
|
if (attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
25719
|
+
if (params2.inlineDocumentFonts) {
|
|
25720
|
+
const font = attributes["w:ascii"];
|
|
25721
|
+
if (font) {
|
|
25722
|
+
if (!params2.inlineDocumentFonts.includes(font)) {
|
|
25723
|
+
params2.inlineDocumentFonts.push(font);
|
|
25724
|
+
}
|
|
25725
|
+
}
|
|
25726
|
+
}
|
|
25719
25727
|
return {
|
|
25720
25728
|
type: "attr",
|
|
25721
|
-
xmlName: XML_NODE_NAME$
|
|
25722
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25729
|
+
xmlName: XML_NODE_NAME$p,
|
|
25730
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
25723
25731
|
attributes
|
|
25724
25732
|
};
|
|
25725
25733
|
};
|
|
25726
|
-
const config$
|
|
25727
|
-
xmlName: XML_NODE_NAME$
|
|
25728
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25734
|
+
const config$o = {
|
|
25735
|
+
xmlName: XML_NODE_NAME$p,
|
|
25736
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
25729
25737
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25730
|
-
encode: encode$
|
|
25738
|
+
encode: encode$B,
|
|
25731
25739
|
attributes: validXmlAttributes$h
|
|
25732
25740
|
};
|
|
25733
|
-
const translator$
|
|
25734
|
-
const encode$
|
|
25735
|
-
const decode$
|
|
25741
|
+
const translator$1i = NodeTranslator.from(config$o);
|
|
25742
|
+
const encode$A = (attributes) => attributes?.["w:val"];
|
|
25743
|
+
const decode$x = (attrs) => attrs?.styleId;
|
|
25736
25744
|
const attrConfig$d = Object.freeze({
|
|
25737
25745
|
xmlName: "w:val",
|
|
25738
25746
|
sdName: "styleId",
|
|
25739
|
-
encode: encode$
|
|
25740
|
-
decode: decode$
|
|
25747
|
+
encode: encode$A,
|
|
25748
|
+
decode: decode$x
|
|
25741
25749
|
});
|
|
25742
25750
|
const validXmlAttributes$g = [attrConfig$d];
|
|
25743
|
-
const XML_NODE_NAME$
|
|
25744
|
-
const SD_ATTR_KEY$
|
|
25745
|
-
const encode$
|
|
25751
|
+
const XML_NODE_NAME$o = "w:rStyle";
|
|
25752
|
+
const SD_ATTR_KEY$8 = "styleId";
|
|
25753
|
+
const encode$z = (params2, encodedAttrs = {}) => {
|
|
25746
25754
|
const { nodes } = params2;
|
|
25747
25755
|
const node = nodes?.[0];
|
|
25748
25756
|
const value = encodedAttrs.styleId ?? node?.attributes?.["w:val"];
|
|
25749
25757
|
return {
|
|
25750
25758
|
type: "attr",
|
|
25751
|
-
xmlName: XML_NODE_NAME$
|
|
25752
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25759
|
+
xmlName: XML_NODE_NAME$o,
|
|
25760
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
25753
25761
|
attributes: { "w:val": value ?? null }
|
|
25754
25762
|
};
|
|
25755
25763
|
};
|
|
25756
|
-
const config$
|
|
25757
|
-
xmlName: XML_NODE_NAME$
|
|
25758
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25764
|
+
const config$n = {
|
|
25765
|
+
xmlName: XML_NODE_NAME$o,
|
|
25766
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
25759
25767
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25760
|
-
encode: encode$
|
|
25768
|
+
encode: encode$z,
|
|
25761
25769
|
attributes: validXmlAttributes$g
|
|
25762
25770
|
};
|
|
25763
|
-
const translator$
|
|
25764
|
-
const encode$
|
|
25765
|
-
const decode$
|
|
25771
|
+
const translator$1h = NodeTranslator.from(config$n);
|
|
25772
|
+
const encode$y = (attributes) => attributes?.["w:val"];
|
|
25773
|
+
const decode$w = (attrs) => attrs?.fontSize;
|
|
25766
25774
|
const attrConfig$c = Object.freeze({
|
|
25767
25775
|
xmlName: "w:val",
|
|
25768
25776
|
sdName: "fontSize",
|
|
25769
|
-
encode: encode$
|
|
25770
|
-
decode: decode$
|
|
25777
|
+
encode: encode$y,
|
|
25778
|
+
decode: decode$w
|
|
25771
25779
|
});
|
|
25772
25780
|
const validXmlAttributes$f = [attrConfig$c];
|
|
25773
|
-
const XML_NODE_NAME$
|
|
25774
|
-
const SD_ATTR_KEY$
|
|
25775
|
-
const encode$
|
|
25781
|
+
const XML_NODE_NAME$n = "w:sz";
|
|
25782
|
+
const SD_ATTR_KEY$7 = "fontSize";
|
|
25783
|
+
const encode$x = (params2, encodedAttrs = {}) => {
|
|
25776
25784
|
const { nodes } = params2;
|
|
25777
25785
|
const node = nodes?.[0];
|
|
25778
25786
|
const value = encodedAttrs.fontSize ?? node?.attributes?.["w:val"];
|
|
25779
25787
|
return {
|
|
25780
25788
|
type: "attr",
|
|
25781
|
-
xmlName: XML_NODE_NAME$
|
|
25782
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25789
|
+
xmlName: XML_NODE_NAME$n,
|
|
25790
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
25783
25791
|
attributes: { "w:val": value ?? null }
|
|
25784
25792
|
};
|
|
25785
25793
|
};
|
|
25786
|
-
const config$
|
|
25787
|
-
xmlName: XML_NODE_NAME$
|
|
25788
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25794
|
+
const config$m = {
|
|
25795
|
+
xmlName: XML_NODE_NAME$n,
|
|
25796
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
25789
25797
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25790
|
-
encode: encode$
|
|
25798
|
+
encode: encode$x,
|
|
25791
25799
|
attributes: validXmlAttributes$f
|
|
25792
25800
|
};
|
|
25793
|
-
const translator$
|
|
25794
|
-
const encode$
|
|
25795
|
-
const decode$
|
|
25801
|
+
const translator$1g = NodeTranslator.from(config$m);
|
|
25802
|
+
const encode$w = (attributes) => attributes?.["w:val"];
|
|
25803
|
+
const decode$v = (attrs) => attrs?.fontSizeCs;
|
|
25796
25804
|
const attrConfig$b = Object.freeze({
|
|
25797
25805
|
xmlName: "w:val",
|
|
25798
25806
|
sdName: "fontSizeCs",
|
|
25799
|
-
encode: encode$
|
|
25800
|
-
decode: decode$
|
|
25807
|
+
encode: encode$w,
|
|
25808
|
+
decode: decode$v
|
|
25801
25809
|
});
|
|
25802
25810
|
const validXmlAttributes$e = [attrConfig$b];
|
|
25803
|
-
const XML_NODE_NAME$
|
|
25804
|
-
const SD_ATTR_KEY$
|
|
25805
|
-
const encode$
|
|
25811
|
+
const XML_NODE_NAME$m = "w:szCs";
|
|
25812
|
+
const SD_ATTR_KEY$6 = "fontSizeCs";
|
|
25813
|
+
const encode$v = (params2, encodedAttrs = {}) => {
|
|
25806
25814
|
const { nodes } = params2;
|
|
25807
25815
|
const node = nodes?.[0];
|
|
25808
25816
|
const value = encodedAttrs.fontSizeCs ?? node?.attributes?.["w:val"];
|
|
25809
25817
|
return {
|
|
25810
25818
|
type: "attr",
|
|
25811
|
-
xmlName: XML_NODE_NAME$
|
|
25812
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25819
|
+
xmlName: XML_NODE_NAME$m,
|
|
25820
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
25813
25821
|
attributes: { "w:val": value ?? null }
|
|
25814
25822
|
};
|
|
25815
25823
|
};
|
|
25816
|
-
const config$
|
|
25817
|
-
xmlName: XML_NODE_NAME$
|
|
25818
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25824
|
+
const config$l = {
|
|
25825
|
+
xmlName: XML_NODE_NAME$m,
|
|
25826
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
25819
25827
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25820
|
-
encode: encode$
|
|
25828
|
+
encode: encode$v,
|
|
25821
25829
|
attributes: validXmlAttributes$e
|
|
25822
25830
|
};
|
|
25823
|
-
const translator$
|
|
25831
|
+
const translator$1f = NodeTranslator.from(config$l);
|
|
25824
25832
|
const generateV2HandlerEntity = (handlerName, translator2) => ({
|
|
25825
25833
|
handlerName,
|
|
25826
25834
|
handler: (params2) => {
|
|
@@ -25844,7 +25852,7 @@ function createSingleAttrPropertyHandler(xmlName, sdName = null, attrName = "w:v
|
|
|
25844
25852
|
xmlName,
|
|
25845
25853
|
sdNodeOrKeyName: sdName,
|
|
25846
25854
|
encode: ({ nodes }) => {
|
|
25847
|
-
return transformEncode(nodes[0]
|
|
25855
|
+
return transformEncode(nodes[0]?.attributes?.[attrName]) ?? void 0;
|
|
25848
25856
|
},
|
|
25849
25857
|
decode: ({ node }) => {
|
|
25850
25858
|
const value = node.attrs?.[sdName] != null ? transformDecode(node.attrs[sdName]) : void 0;
|
|
@@ -25876,8 +25884,32 @@ function createBorderPropertyHandler(xmlName, sdName = null) {
|
|
|
25876
25884
|
xmlName,
|
|
25877
25885
|
sdNodeOrKeyName: sdName,
|
|
25878
25886
|
attributes: [
|
|
25879
|
-
createAttributeHandler(
|
|
25880
|
-
|
|
25887
|
+
createAttributeHandler(
|
|
25888
|
+
"w:val",
|
|
25889
|
+
"val",
|
|
25890
|
+
(v2) => v2 === "nil" ? "none" : v2,
|
|
25891
|
+
(v2) => v2 === "none" ? "nil" : v2
|
|
25892
|
+
),
|
|
25893
|
+
createAttributeHandler(
|
|
25894
|
+
"w:color",
|
|
25895
|
+
"color",
|
|
25896
|
+
(v2) => {
|
|
25897
|
+
if (v2 === "auto") {
|
|
25898
|
+
return null;
|
|
25899
|
+
} else if (v2) {
|
|
25900
|
+
return `#${v2}`;
|
|
25901
|
+
} else {
|
|
25902
|
+
return void 0;
|
|
25903
|
+
}
|
|
25904
|
+
},
|
|
25905
|
+
(v2) => {
|
|
25906
|
+
if (v2) {
|
|
25907
|
+
return v2.replace("#", "");
|
|
25908
|
+
} else {
|
|
25909
|
+
return void 0;
|
|
25910
|
+
}
|
|
25911
|
+
}
|
|
25912
|
+
),
|
|
25881
25913
|
createAttributeHandler("w:themeColor"),
|
|
25882
25914
|
createAttributeHandler("w:themeTint"),
|
|
25883
25915
|
createAttributeHandler("w:themeShade"),
|
|
@@ -25943,6 +25975,37 @@ function decodeProperties(translatorsBySdName, properties) {
|
|
|
25943
25975
|
});
|
|
25944
25976
|
return elements;
|
|
25945
25977
|
}
|
|
25978
|
+
function createNestedPropertiesTranslator(xmlName, sdName, propertyTranslators2, defaultEncodedAttrs = {}) {
|
|
25979
|
+
const propertyTranslatorsByXmlName = {};
|
|
25980
|
+
const propertyTranslatorsBySdName = {};
|
|
25981
|
+
propertyTranslators2.forEach((translator2) => {
|
|
25982
|
+
propertyTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
25983
|
+
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
25984
|
+
});
|
|
25985
|
+
return {
|
|
25986
|
+
xmlName,
|
|
25987
|
+
sdNodeOrKeyName: sdName,
|
|
25988
|
+
type: NodeTranslator.translatorTypes.NODE,
|
|
25989
|
+
attributes: [],
|
|
25990
|
+
encode: (params2) => {
|
|
25991
|
+
const { nodes } = params2;
|
|
25992
|
+
const node = nodes[0];
|
|
25993
|
+
const attributes = { ...defaultEncodedAttrs, ...encodeProperties(node, propertyTranslatorsByXmlName) };
|
|
25994
|
+
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
25995
|
+
},
|
|
25996
|
+
decode: (params2) => {
|
|
25997
|
+
const currentValue = params2.node.attrs?.[sdName];
|
|
25998
|
+
const elements = decodeProperties(propertyTranslatorsBySdName, currentValue);
|
|
25999
|
+
const newNode = {
|
|
26000
|
+
name: xmlName,
|
|
26001
|
+
type: "element",
|
|
26002
|
+
attributes: {},
|
|
26003
|
+
elements
|
|
26004
|
+
};
|
|
26005
|
+
return newNode;
|
|
26006
|
+
}
|
|
26007
|
+
};
|
|
26008
|
+
}
|
|
25946
26009
|
const parseBoolean = (value) => value != null ? ["1", "true"].includes(value) : void 0;
|
|
25947
26010
|
const booleanToString = (value) => value != null ? value ? "1" : "0" : void 0;
|
|
25948
26011
|
const parseInteger = (value) => {
|
|
@@ -25954,9 +26017,9 @@ const integerToString = (value) => {
|
|
|
25954
26017
|
const intValue = parseInteger(value);
|
|
25955
26018
|
return intValue != void 0 ? String(intValue) : void 0;
|
|
25956
26019
|
};
|
|
25957
|
-
const XML_NODE_NAME$
|
|
25958
|
-
const SD_ATTR_KEY$
|
|
25959
|
-
const encode$
|
|
26020
|
+
const XML_NODE_NAME$l = "w:caps";
|
|
26021
|
+
const SD_ATTR_KEY$5 = "textTransform";
|
|
26022
|
+
const encode$u = (params2, encodedAttrs = {}) => {
|
|
25960
26023
|
const { nodes } = params2;
|
|
25961
26024
|
const node = nodes[0];
|
|
25962
26025
|
if (!node) return void 0;
|
|
@@ -25968,31 +26031,31 @@ const encode$x = (params2, encodedAttrs = {}) => {
|
|
|
25968
26031
|
}
|
|
25969
26032
|
return {
|
|
25970
26033
|
type: "attr",
|
|
25971
|
-
xmlName: XML_NODE_NAME$
|
|
25972
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
25973
|
-
attributes: { [SD_ATTR_KEY$
|
|
26034
|
+
xmlName: XML_NODE_NAME$l,
|
|
26035
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
26036
|
+
attributes: { [SD_ATTR_KEY$5]: result }
|
|
25974
26037
|
};
|
|
25975
26038
|
};
|
|
25976
|
-
const config$
|
|
25977
|
-
xmlName: XML_NODE_NAME$
|
|
25978
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
26039
|
+
const config$k = {
|
|
26040
|
+
xmlName: XML_NODE_NAME$l,
|
|
26041
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
25979
26042
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
25980
|
-
encode: encode$
|
|
26043
|
+
encode: encode$u,
|
|
25981
26044
|
attributes: [createAttributeHandler("w:val")]
|
|
25982
26045
|
};
|
|
25983
|
-
const translator
|
|
26046
|
+
const translator$1e = NodeTranslator.from(config$k);
|
|
25984
26047
|
const runPropertyTranslators = Object.freeze({
|
|
25985
|
-
"w:b": translator$
|
|
25986
|
-
"w:i": translator$
|
|
25987
|
-
"w:u": translator$
|
|
25988
|
-
"w:strike": translator$
|
|
25989
|
-
"w:color": translator$
|
|
25990
|
-
"w:highlight": translator$
|
|
25991
|
-
"w:rFonts": translator$
|
|
25992
|
-
"w:rStyle": translator$
|
|
25993
|
-
"w:sz": translator$
|
|
25994
|
-
"w:szCs": translator$
|
|
25995
|
-
"w:caps": translator
|
|
26048
|
+
"w:b": translator$1n,
|
|
26049
|
+
"w:i": translator$1m,
|
|
26050
|
+
"w:u": translator$1l,
|
|
26051
|
+
"w:strike": translator$1k,
|
|
26052
|
+
"w:color": translator$1j,
|
|
26053
|
+
"w:highlight": translator$1q,
|
|
26054
|
+
"w:rFonts": translator$1i,
|
|
26055
|
+
"w:rStyle": translator$1h,
|
|
26056
|
+
"w:sz": translator$1g,
|
|
26057
|
+
"w:szCs": translator$1f,
|
|
26058
|
+
"w:caps": translator$1e
|
|
25996
26059
|
});
|
|
25997
26060
|
const rawRunPropertyXmlNames = Object.freeze(["w:lang", "w:shd"]);
|
|
25998
26061
|
const RAW_CHILD_NAME_SET = new Set(rawRunPropertyXmlNames);
|
|
@@ -26006,9 +26069,9 @@ const toRunPropertyEntry = (candidate) => {
|
|
|
26006
26069
|
attributes: { ...candidate.attributes || {} }
|
|
26007
26070
|
};
|
|
26008
26071
|
};
|
|
26009
|
-
const XML_NODE_NAME$
|
|
26010
|
-
const SD_ATTR_KEY$
|
|
26011
|
-
const encode$
|
|
26072
|
+
const XML_NODE_NAME$k = "w:rPr";
|
|
26073
|
+
const SD_ATTR_KEY$4 = "runProperties";
|
|
26074
|
+
const encode$t = (params2) => {
|
|
26012
26075
|
const { nodes } = params2;
|
|
26013
26076
|
const node = nodes?.[0] || {};
|
|
26014
26077
|
const contents = Array.isArray(node.elements) ? node.elements : [];
|
|
@@ -26042,16 +26105,16 @@ const encode$w = (params2) => {
|
|
|
26042
26105
|
attributes: runPropsArray
|
|
26043
26106
|
};
|
|
26044
26107
|
};
|
|
26045
|
-
const config$
|
|
26046
|
-
xmlName: XML_NODE_NAME$
|
|
26047
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
26108
|
+
const config$j = {
|
|
26109
|
+
xmlName: XML_NODE_NAME$k,
|
|
26110
|
+
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
26048
26111
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
26049
|
-
encode: encode$
|
|
26112
|
+
encode: encode$t
|
|
26050
26113
|
};
|
|
26051
|
-
const translator$
|
|
26114
|
+
const translator$1d = NodeTranslator.from(config$j);
|
|
26052
26115
|
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;
|
|
26053
26116
|
const containsEastAsianCharacters = (text) => EAST_ASIAN_CHARACTER_REGEX.test(text);
|
|
26054
|
-
const collectRunProperties = (params2, rPrNode, translator2 = translator$
|
|
26117
|
+
const collectRunProperties = (params2, rPrNode, translator2 = translator$1d) => {
|
|
26055
26118
|
if (!rPrNode) return { entries: [], hadRPr: false, styleChangeMarks: [] };
|
|
26056
26119
|
const result = translator2.encode({ ...params2, nodes: [rPrNode] }) || {};
|
|
26057
26120
|
let entries = [];
|
|
@@ -26524,7 +26587,7 @@ const ensureTrackedWrapper = (runs, trackingMarksByType = /* @__PURE__ */ new Ma
|
|
|
26524
26587
|
}
|
|
26525
26588
|
return runs;
|
|
26526
26589
|
};
|
|
26527
|
-
const XML_NODE_NAME$
|
|
26590
|
+
const XML_NODE_NAME$j = "w:hyperlink";
|
|
26528
26591
|
const SD_NODE_NAME$e = "link";
|
|
26529
26592
|
const _createAttributeHandler = (xmlName, sdName) => ({
|
|
26530
26593
|
xmlName,
|
|
@@ -26545,7 +26608,7 @@ const validXmlAttributes$d = [
|
|
|
26545
26608
|
_createAttributeHandler("r:id", "rId"),
|
|
26546
26609
|
_createAttributeHandler("w:tgtFrame", "target")
|
|
26547
26610
|
];
|
|
26548
|
-
const encode$
|
|
26611
|
+
const encode$s = (params2, encodedAttrs) => {
|
|
26549
26612
|
const { nodes, docx, nodeListHandler } = params2;
|
|
26550
26613
|
const node = nodes[0];
|
|
26551
26614
|
let href = _resolveHref(docx, encodedAttrs);
|
|
@@ -26579,7 +26642,7 @@ const _resolveHref = (docx, encodedAttrs) => {
|
|
|
26579
26642
|
}
|
|
26580
26643
|
return href;
|
|
26581
26644
|
};
|
|
26582
|
-
function decode$
|
|
26645
|
+
function decode$u(params2) {
|
|
26583
26646
|
const { hyperlinkGroup = [params2.node] } = params2.extraParams || {};
|
|
26584
26647
|
const node = hyperlinkGroup[0];
|
|
26585
26648
|
const linkMark = node.marks.find((m2) => m2.type === "link");
|
|
@@ -26628,55 +26691,55 @@ function _addNewLinkRelationship(params2, link) {
|
|
|
26628
26691
|
});
|
|
26629
26692
|
return id;
|
|
26630
26693
|
}
|
|
26631
|
-
const config$
|
|
26632
|
-
xmlName: XML_NODE_NAME$
|
|
26694
|
+
const config$i = {
|
|
26695
|
+
xmlName: XML_NODE_NAME$j,
|
|
26633
26696
|
sdNodeOrKeyName: SD_NODE_NAME$e,
|
|
26634
26697
|
type: NodeTranslator.translatorTypes.NODE,
|
|
26635
|
-
encode: encode$
|
|
26636
|
-
decode: decode$
|
|
26698
|
+
encode: encode$s,
|
|
26699
|
+
decode: decode$u,
|
|
26637
26700
|
attributes: validXmlAttributes$d
|
|
26638
26701
|
};
|
|
26639
|
-
const translator$
|
|
26640
|
-
const encode$
|
|
26702
|
+
const translator$1c = NodeTranslator.from(config$i);
|
|
26703
|
+
const encode$r = (attributes) => {
|
|
26641
26704
|
return attributes["w:rsidR"];
|
|
26642
26705
|
};
|
|
26643
|
-
const decode$
|
|
26706
|
+
const decode$t = (attrs) => {
|
|
26644
26707
|
return attrs.rsidR;
|
|
26645
26708
|
};
|
|
26646
26709
|
const attrConfig$a = Object.freeze({
|
|
26647
26710
|
xmlName: "w:rsidR",
|
|
26648
26711
|
sdName: "rsidR",
|
|
26649
|
-
encode: encode$
|
|
26650
|
-
decode: decode$
|
|
26712
|
+
encode: encode$r,
|
|
26713
|
+
decode: decode$t
|
|
26651
26714
|
});
|
|
26652
|
-
const encode$
|
|
26715
|
+
const encode$q = (attributes) => {
|
|
26653
26716
|
return attributes["w:rsidRPr"];
|
|
26654
26717
|
};
|
|
26655
|
-
const decode$
|
|
26718
|
+
const decode$s = (attrs) => {
|
|
26656
26719
|
return attrs.rsidRPr;
|
|
26657
26720
|
};
|
|
26658
26721
|
const attrConfig$9 = Object.freeze({
|
|
26659
26722
|
xmlName: "w:rsidRPr",
|
|
26660
26723
|
sdName: "rsidRPr",
|
|
26661
|
-
encode: encode$
|
|
26662
|
-
decode: decode$
|
|
26724
|
+
encode: encode$q,
|
|
26725
|
+
decode: decode$s
|
|
26663
26726
|
});
|
|
26664
|
-
const encode$
|
|
26727
|
+
const encode$p = (attributes) => {
|
|
26665
26728
|
return attributes["w:rsidDel"];
|
|
26666
26729
|
};
|
|
26667
|
-
const decode$
|
|
26730
|
+
const decode$r = (attrs) => {
|
|
26668
26731
|
return attrs.rsidDel;
|
|
26669
26732
|
};
|
|
26670
26733
|
const attrConfig$8 = Object.freeze({
|
|
26671
26734
|
xmlName: "w:rsidDel",
|
|
26672
26735
|
sdName: "rsidDel",
|
|
26673
|
-
encode: encode$
|
|
26674
|
-
decode: decode$
|
|
26736
|
+
encode: encode$p,
|
|
26737
|
+
decode: decode$r
|
|
26675
26738
|
});
|
|
26676
26739
|
const validXmlAttributes$c = [attrConfig$a, attrConfig$9, attrConfig$8];
|
|
26677
|
-
const XML_NODE_NAME$
|
|
26740
|
+
const XML_NODE_NAME$i = "w:r";
|
|
26678
26741
|
const SD_KEY_NAME = "run";
|
|
26679
|
-
const encode$
|
|
26742
|
+
const encode$o = (params2, encodedAttrs = {}) => {
|
|
26680
26743
|
const { nodes = [], nodeListHandler } = params2 || {};
|
|
26681
26744
|
const runNode = nodes[0];
|
|
26682
26745
|
if (!runNode) return void 0;
|
|
@@ -26724,7 +26787,7 @@ const encode$r = (params2, encodedAttrs = {}) => {
|
|
|
26724
26787
|
}
|
|
26725
26788
|
return runNodeResult;
|
|
26726
26789
|
};
|
|
26727
|
-
const decode$
|
|
26790
|
+
const decode$q = (params2, decodedAttrs = {}) => {
|
|
26728
26791
|
const { node } = params2 || {};
|
|
26729
26792
|
if (!node) return void 0;
|
|
26730
26793
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
@@ -26733,7 +26796,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26733
26796
|
...params2.extraParams,
|
|
26734
26797
|
linkProcessed: true
|
|
26735
26798
|
};
|
|
26736
|
-
return translator$
|
|
26799
|
+
return translator$1c.decode({ ...params2, extraParams });
|
|
26737
26800
|
}
|
|
26738
26801
|
const { runNode: runNodeForExport, trackingMarksByType } = prepareRunTrackingContext(node);
|
|
26739
26802
|
const runAttrs = runNodeForExport.attrs || {};
|
|
@@ -26789,7 +26852,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26789
26852
|
runs.push(trackedClone);
|
|
26790
26853
|
return;
|
|
26791
26854
|
}
|
|
26792
|
-
const runWrapper = { name: XML_NODE_NAME$
|
|
26855
|
+
const runWrapper = { name: XML_NODE_NAME$i, elements: [] };
|
|
26793
26856
|
applyBaseRunProps(runWrapper);
|
|
26794
26857
|
if (!Array.isArray(runWrapper.elements)) runWrapper.elements = [];
|
|
26795
26858
|
runWrapper.elements.push(cloneXmlNode(child));
|
|
@@ -26797,7 +26860,7 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26797
26860
|
});
|
|
26798
26861
|
const trackedRuns = ensureTrackedWrapper(runs, trackingMarksByType);
|
|
26799
26862
|
if (!trackedRuns.length) {
|
|
26800
|
-
const emptyRun = { name: XML_NODE_NAME$
|
|
26863
|
+
const emptyRun = { name: XML_NODE_NAME$i, elements: [] };
|
|
26801
26864
|
applyBaseRunProps(emptyRun);
|
|
26802
26865
|
trackedRuns.push(emptyRun);
|
|
26803
26866
|
}
|
|
@@ -26811,15 +26874,15 @@ const decode$t = (params2, decodedAttrs = {}) => {
|
|
|
26811
26874
|
}
|
|
26812
26875
|
return trackedRuns;
|
|
26813
26876
|
};
|
|
26814
|
-
const config$
|
|
26815
|
-
xmlName: XML_NODE_NAME$
|
|
26877
|
+
const config$h = {
|
|
26878
|
+
xmlName: XML_NODE_NAME$i,
|
|
26816
26879
|
sdNodeOrKeyName: SD_KEY_NAME,
|
|
26817
26880
|
type: NodeTranslator.translatorTypes.NODE,
|
|
26818
|
-
encode: encode$
|
|
26819
|
-
decode: decode$
|
|
26881
|
+
encode: encode$o,
|
|
26882
|
+
decode: decode$q,
|
|
26820
26883
|
attributes: validXmlAttributes$c
|
|
26821
26884
|
};
|
|
26822
|
-
const translator$
|
|
26885
|
+
const translator$1b = NodeTranslator.from(config$h);
|
|
26823
26886
|
function preProcessVerticalMergeCells(table, { editorSchema }) {
|
|
26824
26887
|
if (!table || !Array.isArray(table.content)) {
|
|
26825
26888
|
return table;
|
|
@@ -26860,13 +26923,13 @@ function preProcessVerticalMergeCells(table, { editorSchema }) {
|
|
|
26860
26923
|
}
|
|
26861
26924
|
return table;
|
|
26862
26925
|
}
|
|
26863
|
-
const translator$
|
|
26926
|
+
const translator$1a = NodeTranslator.from({
|
|
26864
26927
|
xmlName: "w:cantSplit",
|
|
26865
26928
|
sdNodeOrKeyName: "cantSplit",
|
|
26866
26929
|
encode: ({ nodes }) => ["1", "true"].includes(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26867
26930
|
decode: ({ node }) => node.attrs?.cantSplit ? { attributes: {} } : void 0
|
|
26868
26931
|
});
|
|
26869
|
-
const translator$
|
|
26932
|
+
const translator$19 = NodeTranslator.from({
|
|
26870
26933
|
xmlName: "w:cnfStyle",
|
|
26871
26934
|
sdNodeOrKeyName: "cnfStyle",
|
|
26872
26935
|
attributes: [
|
|
@@ -26892,8 +26955,8 @@ const translator$W = NodeTranslator.from({
|
|
|
26892
26955
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
26893
26956
|
}
|
|
26894
26957
|
});
|
|
26895
|
-
const translator$
|
|
26896
|
-
const translator$
|
|
26958
|
+
const translator$18 = NodeTranslator.from(createSingleAttrPropertyHandler("w:divId"));
|
|
26959
|
+
const translator$17 = NodeTranslator.from(
|
|
26897
26960
|
createSingleAttrPropertyHandler(
|
|
26898
26961
|
"w:gridAfter",
|
|
26899
26962
|
null,
|
|
@@ -26902,7 +26965,7 @@ const translator$U = NodeTranslator.from(
|
|
|
26902
26965
|
(v2) => integerToString(v2)
|
|
26903
26966
|
)
|
|
26904
26967
|
);
|
|
26905
|
-
const translator$
|
|
26968
|
+
const translator$16 = NodeTranslator.from(
|
|
26906
26969
|
createSingleAttrPropertyHandler(
|
|
26907
26970
|
"w:gridBefore",
|
|
26908
26971
|
null,
|
|
@@ -26911,21 +26974,21 @@ const translator$T = NodeTranslator.from(
|
|
|
26911
26974
|
(v2) => integerToString(v2)
|
|
26912
26975
|
)
|
|
26913
26976
|
);
|
|
26914
|
-
const translator$
|
|
26977
|
+
const translator$15 = NodeTranslator.from({
|
|
26915
26978
|
xmlName: "w:hidden",
|
|
26916
26979
|
sdNodeOrKeyName: "hidden",
|
|
26917
26980
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26918
26981
|
decode: ({ node }) => node.attrs.hidden ? { attributes: {} } : void 0
|
|
26919
26982
|
});
|
|
26920
|
-
const translator$
|
|
26921
|
-
const translator$
|
|
26922
|
-
const translator$
|
|
26983
|
+
const translator$14 = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
|
|
26984
|
+
const translator$13 = NodeTranslator.from(createMeasurementPropertyHandler("w:tblCellSpacing", "tableCellSpacing"));
|
|
26985
|
+
const translator$12 = NodeTranslator.from({
|
|
26923
26986
|
xmlName: "w:tblHeader",
|
|
26924
26987
|
sdNodeOrKeyName: "repeatHeader",
|
|
26925
26988
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
26926
26989
|
decode: ({ node }) => node.attrs.repeatHeader ? { attributes: {} } : void 0
|
|
26927
26990
|
});
|
|
26928
|
-
const translator$
|
|
26991
|
+
const translator$11 = NodeTranslator.from({
|
|
26929
26992
|
xmlName: "w:trHeight",
|
|
26930
26993
|
sdNodeOrKeyName: "rowHeight",
|
|
26931
26994
|
encode: ({ nodes }) => {
|
|
@@ -26952,84 +27015,43 @@ const translator$O = NodeTranslator.from({
|
|
|
26952
27015
|
return Object.keys(heightAttrs).length > 0 ? { attributes: heightAttrs } : void 0;
|
|
26953
27016
|
}
|
|
26954
27017
|
});
|
|
26955
|
-
const translator$
|
|
26956
|
-
const translator
|
|
26957
|
-
const
|
|
26958
|
-
|
|
26959
|
-
|
|
26960
|
-
|
|
26961
|
-
|
|
26962
|
-
|
|
27018
|
+
const translator$10 = NodeTranslator.from(createMeasurementPropertyHandler("w:wAfter"));
|
|
27019
|
+
const translator$$ = NodeTranslator.from(createMeasurementPropertyHandler("w:wBefore"));
|
|
27020
|
+
const propertyTranslators$6 = [
|
|
27021
|
+
translator$1a,
|
|
27022
|
+
translator$19,
|
|
27023
|
+
translator$18,
|
|
27024
|
+
translator$17,
|
|
27025
|
+
translator$16,
|
|
27026
|
+
translator$15,
|
|
27027
|
+
translator$14,
|
|
27028
|
+
translator$13,
|
|
27029
|
+
translator$12,
|
|
27030
|
+
translator$11,
|
|
27031
|
+
translator$10,
|
|
27032
|
+
translator$$
|
|
27033
|
+
];
|
|
27034
|
+
const translator$_ = NodeTranslator.from(
|
|
27035
|
+
createNestedPropertiesTranslator("w:trPr", "tableRowProperties", propertyTranslators$6, {
|
|
26963
27036
|
cantSplit: false,
|
|
26964
27037
|
hidden: false,
|
|
26965
27038
|
repeatHeader: false
|
|
26966
|
-
}
|
|
26967
|
-
|
|
26968
|
-
|
|
26969
|
-
...encodeProperties(node, propertyTranslatorsByXmlName$2)
|
|
26970
|
-
};
|
|
26971
|
-
return {
|
|
26972
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
26973
|
-
xmlName: XML_NODE_NAME$k,
|
|
26974
|
-
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
26975
|
-
attributes
|
|
26976
|
-
};
|
|
26977
|
-
};
|
|
26978
|
-
const decode$s = (params2) => {
|
|
26979
|
-
const { tableRowProperties = {} } = params2.node.attrs || {};
|
|
26980
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$2, tableRowProperties);
|
|
26981
|
-
const newNode = {
|
|
26982
|
-
name: "w:trPr",
|
|
26983
|
-
type: "element",
|
|
26984
|
-
attributes: {},
|
|
26985
|
-
elements
|
|
26986
|
-
};
|
|
26987
|
-
return newNode;
|
|
26988
|
-
};
|
|
26989
|
-
const propertyTranslators$3 = [
|
|
26990
|
-
translator$X,
|
|
26991
|
-
translator$W,
|
|
26992
|
-
translator$V,
|
|
26993
|
-
translator$U,
|
|
26994
|
-
translator$T,
|
|
26995
|
-
translator$S,
|
|
26996
|
-
translator$R,
|
|
26997
|
-
translator$Q,
|
|
26998
|
-
translator$P,
|
|
26999
|
-
translator$O,
|
|
27000
|
-
translator$N,
|
|
27001
|
-
translator$M
|
|
27002
|
-
];
|
|
27003
|
-
const propertyTranslatorsByXmlName$2 = {};
|
|
27004
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
27005
|
-
propertyTranslatorsByXmlName$2[translator2.xmlName] = translator2;
|
|
27006
|
-
});
|
|
27007
|
-
const propertyTranslatorsBySdName$2 = {};
|
|
27008
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
27009
|
-
propertyTranslatorsBySdName$2[translator2.sdNodeOrKeyName] = translator2;
|
|
27010
|
-
});
|
|
27011
|
-
const config$h = {
|
|
27012
|
-
xmlName: XML_NODE_NAME$k,
|
|
27013
|
-
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
27014
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
27015
|
-
encode: encode$q,
|
|
27016
|
-
decode: decode$s
|
|
27017
|
-
};
|
|
27018
|
-
const translator$L = NodeTranslator.from(config$h);
|
|
27019
|
-
const XML_NODE_NAME$j = "w:tr";
|
|
27039
|
+
})
|
|
27040
|
+
);
|
|
27041
|
+
const XML_NODE_NAME$h = "w:tr";
|
|
27020
27042
|
const SD_NODE_NAME$d = "tableRow";
|
|
27021
27043
|
const validXmlAttributes$b = ["w:rsidDel", "w:rsidR", "w:rsidRPr", "w:rsidTr", "w14:paraId", "w14:textId"].map(
|
|
27022
27044
|
(xmlName) => createAttributeHandler(xmlName)
|
|
27023
27045
|
);
|
|
27024
|
-
const encode$
|
|
27046
|
+
const encode$n = (params2, encodedAttrs) => {
|
|
27025
27047
|
const { row } = params2.extraParams;
|
|
27026
27048
|
let tableRowProperties = {};
|
|
27027
27049
|
const tPr = row.elements.find((el) => el.name === "w:trPr");
|
|
27028
27050
|
if (tPr) {
|
|
27029
|
-
|
|
27051
|
+
tableRowProperties = translator$_.encode({
|
|
27030
27052
|
...params2,
|
|
27031
27053
|
nodes: [tPr]
|
|
27032
|
-
})
|
|
27054
|
+
});
|
|
27033
27055
|
}
|
|
27034
27056
|
encodedAttrs["tableRowProperties"] = Object.freeze(tableRowProperties);
|
|
27035
27057
|
encodedAttrs["rowHeight"] = twipsToPixels(tableRowProperties["rowHeight"]?.value);
|
|
@@ -27061,7 +27083,7 @@ const encode$p = (params2, encodedAttrs) => {
|
|
|
27061
27083
|
};
|
|
27062
27084
|
return newNode;
|
|
27063
27085
|
};
|
|
27064
|
-
const decode$
|
|
27086
|
+
const decode$p = (params2, decodedAttrs) => {
|
|
27065
27087
|
const { node } = params2;
|
|
27066
27088
|
const elements = translateChildNodes(params2);
|
|
27067
27089
|
if (node.attrs?.tableRowProperties) {
|
|
@@ -27073,7 +27095,7 @@ const decode$r = (params2, decodedAttrs) => {
|
|
|
27073
27095
|
}
|
|
27074
27096
|
}
|
|
27075
27097
|
tableRowProperties["cantSplit"] = node.attrs["cantSplit"];
|
|
27076
|
-
const trPr = translator$
|
|
27098
|
+
const trPr = translator$_.decode({
|
|
27077
27099
|
...params2,
|
|
27078
27100
|
node: { ...node, attrs: { ...node.attrs, tableRowProperties } }
|
|
27079
27101
|
});
|
|
@@ -27086,21 +27108,21 @@ const decode$r = (params2, decodedAttrs) => {
|
|
|
27086
27108
|
};
|
|
27087
27109
|
};
|
|
27088
27110
|
const config$g = {
|
|
27089
|
-
xmlName: XML_NODE_NAME$
|
|
27111
|
+
xmlName: XML_NODE_NAME$h,
|
|
27090
27112
|
sdNodeOrKeyName: SD_NODE_NAME$d,
|
|
27091
27113
|
type: NodeTranslator.translatorTypes.NODE,
|
|
27092
|
-
encode: encode$
|
|
27093
|
-
decode: decode$
|
|
27114
|
+
encode: encode$n,
|
|
27115
|
+
decode: decode$p,
|
|
27094
27116
|
attributes: validXmlAttributes$b
|
|
27095
27117
|
};
|
|
27096
|
-
const translator$
|
|
27097
|
-
const translator$
|
|
27118
|
+
const translator$Z = NodeTranslator.from(config$g);
|
|
27119
|
+
const translator$Y = NodeTranslator.from({
|
|
27098
27120
|
xmlName: "w:bidiVisual",
|
|
27099
27121
|
sdNodeOrKeyName: "rightToLeft",
|
|
27100
27122
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
27101
27123
|
decode: ({ node }) => node.attrs.rightToLeft ? { attributes: {} } : void 0
|
|
27102
27124
|
});
|
|
27103
|
-
const translator$
|
|
27125
|
+
const translator$X = NodeTranslator.from({
|
|
27104
27126
|
xmlName: "w:shd",
|
|
27105
27127
|
sdNodeOrKeyName: "shading",
|
|
27106
27128
|
attributes: [
|
|
@@ -27122,11 +27144,11 @@ const translator$I = NodeTranslator.from({
|
|
|
27122
27144
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27123
27145
|
}
|
|
27124
27146
|
});
|
|
27125
|
-
const translator$
|
|
27126
|
-
const translator$
|
|
27127
|
-
const translator$
|
|
27128
|
-
const translator$
|
|
27129
|
-
const translator$
|
|
27147
|
+
const translator$W = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblCaption", "caption"));
|
|
27148
|
+
const translator$V = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblDescription", "description"));
|
|
27149
|
+
const translator$U = NodeTranslator.from(createMeasurementPropertyHandler("w:tblInd", "tableIndent"));
|
|
27150
|
+
const translator$T = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblLayout", "tableLayout", "w:type"));
|
|
27151
|
+
const translator$S = NodeTranslator.from({
|
|
27130
27152
|
xmlName: "w:tblLook",
|
|
27131
27153
|
sdNodeOrKeyName: "tblLook",
|
|
27132
27154
|
attributes: ["w:firstColumn", "w:firstRow", "w:lastColumn", "w:lastRow", "w:noHBand", "w:noVBand"].map((attr) => createAttributeHandler(attr, null, parseBoolean, booleanToString)).concat([createAttributeHandler("w:val")]),
|
|
@@ -27138,16 +27160,16 @@ const translator$D = NodeTranslator.from({
|
|
|
27138
27160
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27139
27161
|
}
|
|
27140
27162
|
});
|
|
27141
|
-
const translator$
|
|
27142
|
-
const translator$
|
|
27143
|
-
const translator$
|
|
27163
|
+
const translator$R = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblOverlap", "overlap"));
|
|
27164
|
+
const translator$Q = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblStyle", "tableStyleId"));
|
|
27165
|
+
const translator$P = NodeTranslator.from(
|
|
27144
27166
|
createSingleAttrPropertyHandler("w:tblStyleColBandSize", "tableStyleColBandSize")
|
|
27145
27167
|
);
|
|
27146
|
-
const translator$
|
|
27168
|
+
const translator$O = NodeTranslator.from(
|
|
27147
27169
|
createSingleAttrPropertyHandler("w:tblStyleRowBandSize", "tableStyleRowBandSize")
|
|
27148
27170
|
);
|
|
27149
|
-
const translator$
|
|
27150
|
-
const translator$
|
|
27171
|
+
const translator$N = NodeTranslator.from(createMeasurementPropertyHandler("w:tblW", "tableWidth"));
|
|
27172
|
+
const translator$M = NodeTranslator.from({
|
|
27151
27173
|
xmlName: "w:tblpPr",
|
|
27152
27174
|
sdNodeOrKeyName: "floatingTableProperties",
|
|
27153
27175
|
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))),
|
|
@@ -27159,160 +27181,67 @@ const translator$x = NodeTranslator.from({
|
|
|
27159
27181
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
27160
27182
|
}
|
|
27161
27183
|
});
|
|
27162
|
-
const translator$
|
|
27163
|
-
const translator$
|
|
27164
|
-
const translator$
|
|
27165
|
-
const translator$
|
|
27166
|
-
const translator$
|
|
27167
|
-
const translator$
|
|
27168
|
-
const translator$
|
|
27169
|
-
const translator$
|
|
27170
|
-
const translator$
|
|
27171
|
-
const translator$
|
|
27172
|
-
const translator$
|
|
27173
|
-
const translator$
|
|
27174
|
-
const translator$
|
|
27175
|
-
const translator$
|
|
27176
|
-
const
|
|
27177
|
-
|
|
27178
|
-
const encode$o = (params2) => {
|
|
27179
|
-
const { nodes } = params2;
|
|
27180
|
-
const node = nodes[0];
|
|
27181
|
-
const attributes = encodeProperties(node, tblBordersTranslatorsByXmlName);
|
|
27182
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
27183
|
-
};
|
|
27184
|
-
const decode$q = (params2) => {
|
|
27185
|
-
const { borders = {} } = params2.node.attrs || {};
|
|
27186
|
-
const elements = decodeProperties(tblBordersTranslatorsBySdName, borders);
|
|
27187
|
-
const newNode = {
|
|
27188
|
-
name: "w:tblBorders",
|
|
27189
|
-
type: "element",
|
|
27190
|
-
attributes: {},
|
|
27191
|
-
elements
|
|
27192
|
-
};
|
|
27193
|
-
return newNode;
|
|
27194
|
-
};
|
|
27195
|
-
const propertyTranslators$2 = [
|
|
27196
|
-
translator$w,
|
|
27197
|
-
translator$u,
|
|
27198
|
-
translator$s,
|
|
27199
|
-
translator$r,
|
|
27200
|
-
translator$q,
|
|
27201
|
-
translator$o,
|
|
27202
|
-
translator$m,
|
|
27203
|
-
translator$k
|
|
27204
|
-
];
|
|
27205
|
-
const tblBordersTranslatorsByXmlName = {};
|
|
27206
|
-
const tblBordersTranslatorsBySdName = {};
|
|
27207
|
-
propertyTranslators$2.forEach((translator2) => {
|
|
27208
|
-
tblBordersTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
27209
|
-
tblBordersTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
27210
|
-
});
|
|
27211
|
-
const translator$i = NodeTranslator.from({
|
|
27212
|
-
xmlName: XML_NODE_NAME$i,
|
|
27213
|
-
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
27214
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
27215
|
-
attributes: [],
|
|
27216
|
-
encode: encode$o,
|
|
27217
|
-
decode: decode$q
|
|
27218
|
-
});
|
|
27219
|
-
const XML_NODE_NAME$h = "w:tblCellMar";
|
|
27220
|
-
const SD_ATTR_KEY$4 = "cellMargins";
|
|
27221
|
-
const encode$n = (params2) => {
|
|
27222
|
-
const { nodes } = params2;
|
|
27223
|
-
const node = nodes[0];
|
|
27224
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName$1);
|
|
27225
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
27226
|
-
};
|
|
27227
|
-
const decode$p = (params2) => {
|
|
27228
|
-
const { cellMargins = {} } = params2.node.attrs || {};
|
|
27229
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$1, cellMargins);
|
|
27230
|
-
const newNode = {
|
|
27231
|
-
name: XML_NODE_NAME$h,
|
|
27232
|
-
type: "element",
|
|
27233
|
-
attributes: {},
|
|
27234
|
-
elements
|
|
27235
|
-
};
|
|
27236
|
-
return newNode;
|
|
27237
|
-
};
|
|
27238
|
-
const propertyTranslators$1 = [
|
|
27239
|
-
translator$v,
|
|
27240
|
-
translator$t,
|
|
27241
|
-
translator$p,
|
|
27242
|
-
translator$n,
|
|
27243
|
-
translator$l,
|
|
27244
|
-
translator$j
|
|
27245
|
-
];
|
|
27246
|
-
const propertyTranslatorsByXmlName$1 = {};
|
|
27247
|
-
const propertyTranslatorsBySdName$1 = {};
|
|
27248
|
-
propertyTranslators$1.forEach((translator2) => {
|
|
27249
|
-
propertyTranslatorsByXmlName$1[translator2.xmlName] = translator2;
|
|
27250
|
-
propertyTranslatorsBySdName$1[translator2.sdNodeOrKeyName] = translator2;
|
|
27251
|
-
});
|
|
27252
|
-
const translator$h = NodeTranslator.from({
|
|
27253
|
-
xmlName: XML_NODE_NAME$h,
|
|
27254
|
-
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
27255
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
27256
|
-
attributes: [],
|
|
27257
|
-
encode: encode$n,
|
|
27258
|
-
decode: decode$p
|
|
27259
|
-
});
|
|
27260
|
-
const XML_NODE_NAME$g = "w:tblPr";
|
|
27261
|
-
const SD_ATTR_KEY$3 = "tableProperties";
|
|
27262
|
-
const encode$m = (params2) => {
|
|
27263
|
-
const { nodes } = params2;
|
|
27264
|
-
const node = nodes[0];
|
|
27265
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName);
|
|
27266
|
-
return {
|
|
27267
|
-
xmlName: XML_NODE_NAME$g,
|
|
27268
|
-
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27269
|
-
attributes
|
|
27270
|
-
};
|
|
27271
|
-
};
|
|
27272
|
-
const decode$o = (params2) => {
|
|
27273
|
-
const { tableProperties = {} } = params2.node.attrs || {};
|
|
27274
|
-
const elements = decodeProperties(propertyTranslatorsBySdName, tableProperties);
|
|
27275
|
-
const newNode = {
|
|
27276
|
-
name: "w:tblPr",
|
|
27277
|
-
type: "element",
|
|
27278
|
-
attributes: {},
|
|
27279
|
-
elements
|
|
27280
|
-
};
|
|
27281
|
-
return newNode;
|
|
27282
|
-
};
|
|
27283
|
-
const propertyTranslators = [
|
|
27184
|
+
const translator$L = NodeTranslator.from(createBorderPropertyHandler("w:bottom"));
|
|
27185
|
+
const translator$K = NodeTranslator.from(createMeasurementPropertyHandler("w:bottom", "marginBottom"));
|
|
27186
|
+
const translator$J = NodeTranslator.from(createBorderPropertyHandler("w:end"));
|
|
27187
|
+
const translator$I = NodeTranslator.from(createMeasurementPropertyHandler("w:end", "marginEnd"));
|
|
27188
|
+
const translator$H = NodeTranslator.from(createBorderPropertyHandler("w:insideH"));
|
|
27189
|
+
const translator$G = NodeTranslator.from(createBorderPropertyHandler("w:insideV"));
|
|
27190
|
+
const translator$F = NodeTranslator.from(createBorderPropertyHandler("w:left"));
|
|
27191
|
+
const translator$E = NodeTranslator.from(createMeasurementPropertyHandler("w:left", "marginLeft"));
|
|
27192
|
+
const translator$D = NodeTranslator.from(createBorderPropertyHandler("w:right"));
|
|
27193
|
+
const translator$C = NodeTranslator.from(createMeasurementPropertyHandler("w:right", "marginRight"));
|
|
27194
|
+
const translator$B = NodeTranslator.from(createBorderPropertyHandler("w:start"));
|
|
27195
|
+
const translator$A = NodeTranslator.from(createMeasurementPropertyHandler("w:start", "marginStart"));
|
|
27196
|
+
const translator$z = NodeTranslator.from(createBorderPropertyHandler("w:top"));
|
|
27197
|
+
const translator$y = NodeTranslator.from(createMeasurementPropertyHandler("w:top", "marginTop"));
|
|
27198
|
+
const propertyTranslators$5 = [
|
|
27199
|
+
translator$L,
|
|
27284
27200
|
translator$J,
|
|
27285
|
-
translator$R,
|
|
27286
|
-
translator$I,
|
|
27287
27201
|
translator$H,
|
|
27288
|
-
translator$Q,
|
|
27289
27202
|
translator$G,
|
|
27290
27203
|
translator$F,
|
|
27291
|
-
translator$E,
|
|
27292
27204
|
translator$D,
|
|
27293
|
-
translator$C,
|
|
27294
27205
|
translator$B,
|
|
27206
|
+
translator$z
|
|
27207
|
+
];
|
|
27208
|
+
const translator$x = NodeTranslator.from(
|
|
27209
|
+
createNestedPropertiesTranslator("w:tblBorders", "borders", propertyTranslators$5)
|
|
27210
|
+
);
|
|
27211
|
+
const propertyTranslators$4 = [
|
|
27212
|
+
translator$K,
|
|
27213
|
+
translator$I,
|
|
27214
|
+
translator$E,
|
|
27215
|
+
translator$C,
|
|
27295
27216
|
translator$A,
|
|
27296
|
-
translator$
|
|
27297
|
-
|
|
27217
|
+
translator$y
|
|
27218
|
+
];
|
|
27219
|
+
const translator$w = NodeTranslator.from(
|
|
27220
|
+
createNestedPropertiesTranslator("w:tblCellMar", "cellMargins", propertyTranslators$4)
|
|
27221
|
+
);
|
|
27222
|
+
const propertyTranslators$3 = [
|
|
27223
|
+
translator$Y,
|
|
27224
|
+
translator$14,
|
|
27225
|
+
translator$X,
|
|
27226
|
+
translator$W,
|
|
27227
|
+
translator$13,
|
|
27228
|
+
translator$V,
|
|
27229
|
+
translator$U,
|
|
27230
|
+
translator$T,
|
|
27231
|
+
translator$S,
|
|
27232
|
+
translator$R,
|
|
27233
|
+
translator$Q,
|
|
27234
|
+
translator$P,
|
|
27235
|
+
translator$O,
|
|
27236
|
+
translator$N,
|
|
27237
|
+
translator$M,
|
|
27298
27238
|
translator$x,
|
|
27299
|
-
translator$
|
|
27300
|
-
translator$h
|
|
27239
|
+
translator$w
|
|
27301
27240
|
];
|
|
27302
|
-
const
|
|
27303
|
-
|
|
27304
|
-
|
|
27305
|
-
|
|
27306
|
-
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
27307
|
-
});
|
|
27308
|
-
const config$f = {
|
|
27309
|
-
xmlName: XML_NODE_NAME$g,
|
|
27310
|
-
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27311
|
-
encode: encode$m,
|
|
27312
|
-
decode: decode$o
|
|
27313
|
-
};
|
|
27314
|
-
const translator$g = NodeTranslator.from(config$f);
|
|
27315
|
-
const translator$f = NodeTranslator.from(
|
|
27241
|
+
const translator$v = NodeTranslator.from(
|
|
27242
|
+
createNestedPropertiesTranslator("w:tblPr", "tableProperties", propertyTranslators$3)
|
|
27243
|
+
);
|
|
27244
|
+
const translator$u = NodeTranslator.from(
|
|
27316
27245
|
createSingleAttrPropertyHandler("w:gridCol", "col", "w:w", parseInteger, integerToString)
|
|
27317
27246
|
);
|
|
27318
27247
|
const DEFAULT_COLUMN_WIDTH_PX = 100;
|
|
@@ -27362,20 +27291,20 @@ const resolveFallbackColumnWidthTwips = (params2, totalColumns, cellMinWidthTwip
|
|
|
27362
27291
|
}
|
|
27363
27292
|
return Math.max(fallbackWidthTwips, cellMinWidthTwips);
|
|
27364
27293
|
};
|
|
27365
|
-
const XML_NODE_NAME$
|
|
27366
|
-
const SD_ATTR_KEY$
|
|
27294
|
+
const XML_NODE_NAME$g = "w:tblGrid";
|
|
27295
|
+
const SD_ATTR_KEY$3 = "grid";
|
|
27367
27296
|
const cellMinWidth = pixelsToTwips(10);
|
|
27368
|
-
const encode$
|
|
27297
|
+
const encode$m = (params2) => {
|
|
27369
27298
|
const { nodes } = params2;
|
|
27370
27299
|
const node = nodes[0];
|
|
27371
|
-
const attributes = encodeProperties(node, { [translator$
|
|
27300
|
+
const attributes = encodeProperties(node, { [translator$u.xmlName]: translator$u }, true);
|
|
27372
27301
|
return {
|
|
27373
|
-
xmlName: XML_NODE_NAME$
|
|
27374
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
27302
|
+
xmlName: XML_NODE_NAME$g,
|
|
27303
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27375
27304
|
attributes
|
|
27376
27305
|
};
|
|
27377
27306
|
};
|
|
27378
|
-
const decode$
|
|
27307
|
+
const decode$o = (params2) => {
|
|
27379
27308
|
const { grid: rawGrid } = params2.node.attrs || {};
|
|
27380
27309
|
const grid = Array.isArray(rawGrid) ? rawGrid : [];
|
|
27381
27310
|
const { firstRow = {} } = params2.extraParams || {};
|
|
@@ -27394,10 +27323,10 @@ const decode$n = (params2) => {
|
|
|
27394
27323
|
numericWidth = fallbackColumnWidthTwips;
|
|
27395
27324
|
}
|
|
27396
27325
|
numericWidth = Math.max(numericWidth, cellMinWidth);
|
|
27397
|
-
const decoded = translator$
|
|
27326
|
+
const decoded = translator$u.decode({
|
|
27398
27327
|
node: { type: (
|
|
27399
27328
|
/** @type {string} */
|
|
27400
|
-
translator$
|
|
27329
|
+
translator$u.sdNodeOrKeyName
|
|
27401
27330
|
), attrs: { col: numericWidth } }
|
|
27402
27331
|
});
|
|
27403
27332
|
if (decoded) elements.push(decoded);
|
|
@@ -27432,19 +27361,19 @@ const decode$n = (params2) => {
|
|
|
27432
27361
|
columnIndex++;
|
|
27433
27362
|
}
|
|
27434
27363
|
const newNode = {
|
|
27435
|
-
name: XML_NODE_NAME$
|
|
27364
|
+
name: XML_NODE_NAME$g,
|
|
27436
27365
|
attributes: {},
|
|
27437
27366
|
elements
|
|
27438
27367
|
};
|
|
27439
27368
|
return newNode;
|
|
27440
27369
|
};
|
|
27441
|
-
const config$
|
|
27442
|
-
xmlName: XML_NODE_NAME$
|
|
27443
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
27444
|
-
encode: encode$
|
|
27445
|
-
decode: decode$
|
|
27370
|
+
const config$f = {
|
|
27371
|
+
xmlName: XML_NODE_NAME$g,
|
|
27372
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
27373
|
+
encode: encode$m,
|
|
27374
|
+
decode: decode$o
|
|
27446
27375
|
};
|
|
27447
|
-
const translator$
|
|
27376
|
+
const translator$t = NodeTranslator.from(config$f);
|
|
27448
27377
|
const DEFAULT_PAGE_WIDTH_TWIPS = 12240;
|
|
27449
27378
|
const DEFAULT_PAGE_MARGIN_TWIPS = 1440;
|
|
27450
27379
|
const DEFAULT_CONTENT_WIDTH_TWIPS = DEFAULT_PAGE_WIDTH_TWIPS - 2 * DEFAULT_PAGE_MARGIN_TWIPS;
|
|
@@ -27507,19 +27436,19 @@ const buildFallbackGridForTable = ({ params: params2, rows, tableWidth, tableWid
|
|
|
27507
27436
|
columnWidths: Array(columnCount).fill(fallbackColumnWidthPx)
|
|
27508
27437
|
};
|
|
27509
27438
|
};
|
|
27510
|
-
const XML_NODE_NAME$
|
|
27439
|
+
const XML_NODE_NAME$f = "w:tbl";
|
|
27511
27440
|
const SD_NODE_NAME$c = "table";
|
|
27512
|
-
const encode$
|
|
27441
|
+
const encode$l = (params2, encodedAttrs) => {
|
|
27513
27442
|
const { nodes } = params2;
|
|
27514
27443
|
const node = nodes[0];
|
|
27515
27444
|
const tblPr = node.elements.find((el) => el.name === "w:tblPr");
|
|
27516
27445
|
if (tblPr) {
|
|
27517
|
-
const encodedProperties = translator$
|
|
27518
|
-
encodedAttrs["tableProperties"] = encodedProperties
|
|
27446
|
+
const encodedProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
27447
|
+
encodedAttrs["tableProperties"] = encodedProperties || {};
|
|
27519
27448
|
}
|
|
27520
27449
|
const tblGrid = node.elements.find((el) => el.name === "w:tblGrid");
|
|
27521
27450
|
if (tblGrid) {
|
|
27522
|
-
encodedAttrs["grid"] = translator$
|
|
27451
|
+
encodedAttrs["grid"] = translator$t.encode({ ...params2, nodes: [tblGrid] }).attributes;
|
|
27523
27452
|
}
|
|
27524
27453
|
[
|
|
27525
27454
|
"tableStyleId",
|
|
@@ -27586,7 +27515,7 @@ const encode$k = (params2, encodedAttrs) => {
|
|
|
27586
27515
|
}
|
|
27587
27516
|
const content = [];
|
|
27588
27517
|
rows.forEach((row) => {
|
|
27589
|
-
const result = translator$
|
|
27518
|
+
const result = translator$Z.encode({
|
|
27590
27519
|
...params2,
|
|
27591
27520
|
nodes: [row],
|
|
27592
27521
|
extraParams: {
|
|
@@ -27605,13 +27534,13 @@ const encode$k = (params2, encodedAttrs) => {
|
|
|
27605
27534
|
attrs: encodedAttrs
|
|
27606
27535
|
};
|
|
27607
27536
|
};
|
|
27608
|
-
const decode$
|
|
27537
|
+
const decode$n = (params2, decodedAttrs) => {
|
|
27609
27538
|
params2.node = preProcessVerticalMergeCells(params2.node, params2);
|
|
27610
27539
|
const { node } = params2;
|
|
27611
27540
|
const elements = translateChildNodes(params2);
|
|
27612
27541
|
const firstRow = node.content?.find((n) => n.type === "tableRow");
|
|
27613
27542
|
const properties = node.attrs.grid;
|
|
27614
|
-
const element = translator$
|
|
27543
|
+
const element = translator$t.decode({
|
|
27615
27544
|
...params2,
|
|
27616
27545
|
node: { ...node, attrs: { ...node.attrs, grid: properties } },
|
|
27617
27546
|
extraParams: {
|
|
@@ -27621,7 +27550,7 @@ const decode$m = (params2, decodedAttrs) => {
|
|
|
27621
27550
|
if (element) elements.unshift(element);
|
|
27622
27551
|
if (node.attrs?.tableProperties) {
|
|
27623
27552
|
const properties2 = { ...node.attrs.tableProperties };
|
|
27624
|
-
const element2 = translator$
|
|
27553
|
+
const element2 = translator$v.decode({
|
|
27625
27554
|
...params2,
|
|
27626
27555
|
node: { ...node, attrs: { ...node.attrs, tableProperties: properties2 } }
|
|
27627
27556
|
});
|
|
@@ -27641,7 +27570,7 @@ function _processTableBorders(rawBorders) {
|
|
|
27641
27570
|
const color = attributes.color;
|
|
27642
27571
|
const size2 = attributes.size;
|
|
27643
27572
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
27644
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
27573
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
27645
27574
|
const rowBorderNames = ["insideH", "insideV"];
|
|
27646
27575
|
if (rowBorderNames.includes(name)) rowBorders[name] = attrs;
|
|
27647
27576
|
borders[name] = attrs;
|
|
@@ -27687,7 +27616,7 @@ function _getReferencedTableStyles(tableStyleReference, params2) {
|
|
|
27687
27616
|
if (baseTblPr && baseTblPr.elements) {
|
|
27688
27617
|
tblPr.elements.push(...baseTblPr.elements);
|
|
27689
27618
|
}
|
|
27690
|
-
const tableProperties = translator$
|
|
27619
|
+
const tableProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
27691
27620
|
const { borders, rowBorders } = _processTableBorders(tableProperties.borders || {});
|
|
27692
27621
|
if (borders) stylesToReturn.borders = borders;
|
|
27693
27622
|
if (rowBorders) stylesToReturn.rowBorders = rowBorders;
|
|
@@ -27704,16 +27633,16 @@ function _getReferencedTableStyles(tableStyleReference, params2) {
|
|
|
27704
27633
|
}
|
|
27705
27634
|
return stylesToReturn;
|
|
27706
27635
|
}
|
|
27707
|
-
const config$
|
|
27708
|
-
xmlName: XML_NODE_NAME$
|
|
27636
|
+
const config$e = {
|
|
27637
|
+
xmlName: XML_NODE_NAME$f,
|
|
27709
27638
|
sdNodeOrKeyName: SD_NODE_NAME$c,
|
|
27710
27639
|
type: NodeTranslator.translatorTypes.NODE,
|
|
27711
|
-
encode: encode$
|
|
27712
|
-
decode: decode$
|
|
27640
|
+
encode: encode$l,
|
|
27641
|
+
decode: decode$n,
|
|
27713
27642
|
attributes: []
|
|
27714
27643
|
};
|
|
27715
|
-
const translator$
|
|
27716
|
-
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$
|
|
27644
|
+
const translator$s = NodeTranslator.from(config$e);
|
|
27645
|
+
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$s);
|
|
27717
27646
|
function getReferencedTableStyles(tblStyleTag, docx) {
|
|
27718
27647
|
if (!tblStyleTag) return null;
|
|
27719
27648
|
const stylesToReturn = {};
|
|
@@ -27784,7 +27713,7 @@ function processTableBorders(borderElements) {
|
|
|
27784
27713
|
const color = attributes["w:color"];
|
|
27785
27714
|
const size2 = attributes["w:sz"];
|
|
27786
27715
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
27787
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
27716
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
27788
27717
|
const rowBorderNames = ["insideH", "insideV"];
|
|
27789
27718
|
if (rowBorderNames.includes(borderName)) rowBorders[borderName] = attrs;
|
|
27790
27719
|
borders[borderName] = attrs;
|
|
@@ -27794,6 +27723,125 @@ function processTableBorders(borderElements) {
|
|
|
27794
27723
|
rowBorders
|
|
27795
27724
|
};
|
|
27796
27725
|
}
|
|
27726
|
+
const translator$r = NodeTranslator.from(createMeasurementPropertyHandler("w:tcW", "cellWidth"));
|
|
27727
|
+
const translator$q = NodeTranslator.from(
|
|
27728
|
+
createSingleAttrPropertyHandler(
|
|
27729
|
+
"w:gridSpan",
|
|
27730
|
+
null,
|
|
27731
|
+
"w:val",
|
|
27732
|
+
(v2) => parseInteger(v2) ?? void 0,
|
|
27733
|
+
(v2) => integerToString(v2)
|
|
27734
|
+
)
|
|
27735
|
+
);
|
|
27736
|
+
const translator$p = NodeTranslator.from(createSingleAttrPropertyHandler("w:vMerge"));
|
|
27737
|
+
const translator$o = NodeTranslator.from(createBorderPropertyHandler("w:tl2br"));
|
|
27738
|
+
const translator$n = NodeTranslator.from(createBorderPropertyHandler("w:tr2bl"));
|
|
27739
|
+
const propertyTranslators$2 = [
|
|
27740
|
+
translator$z,
|
|
27741
|
+
translator$B,
|
|
27742
|
+
translator$F,
|
|
27743
|
+
translator$L,
|
|
27744
|
+
translator$J,
|
|
27745
|
+
translator$D,
|
|
27746
|
+
translator$H,
|
|
27747
|
+
translator$G,
|
|
27748
|
+
translator$o,
|
|
27749
|
+
translator$n
|
|
27750
|
+
];
|
|
27751
|
+
const translator$m = NodeTranslator.from(
|
|
27752
|
+
createNestedPropertiesTranslator("w:tcBorders", "borders", propertyTranslators$2)
|
|
27753
|
+
);
|
|
27754
|
+
const translator$l = NodeTranslator.from(
|
|
27755
|
+
createSingleAttrPropertyHandler(
|
|
27756
|
+
"w:noWrap",
|
|
27757
|
+
null,
|
|
27758
|
+
"w:val",
|
|
27759
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27760
|
+
(v2) => booleanToString(v2)
|
|
27761
|
+
)
|
|
27762
|
+
);
|
|
27763
|
+
const propertyTranslators$1 = [
|
|
27764
|
+
translator$K,
|
|
27765
|
+
translator$I,
|
|
27766
|
+
translator$E,
|
|
27767
|
+
translator$C,
|
|
27768
|
+
translator$A,
|
|
27769
|
+
translator$y
|
|
27770
|
+
];
|
|
27771
|
+
const translator$k = NodeTranslator.from(
|
|
27772
|
+
createNestedPropertiesTranslator("w:tcMar", "cellMargins", propertyTranslators$1)
|
|
27773
|
+
);
|
|
27774
|
+
const translator$j = NodeTranslator.from(createSingleAttrPropertyHandler("w:textDirection"));
|
|
27775
|
+
const translator$i = NodeTranslator.from(
|
|
27776
|
+
createSingleAttrPropertyHandler(
|
|
27777
|
+
"w:tcFitText",
|
|
27778
|
+
null,
|
|
27779
|
+
"w:val",
|
|
27780
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27781
|
+
(v2) => booleanToString(v2)
|
|
27782
|
+
)
|
|
27783
|
+
);
|
|
27784
|
+
const translator$h = NodeTranslator.from(createSingleAttrPropertyHandler("w:vAlign"));
|
|
27785
|
+
const translator$g = NodeTranslator.from(
|
|
27786
|
+
createSingleAttrPropertyHandler(
|
|
27787
|
+
"w:hideMark",
|
|
27788
|
+
null,
|
|
27789
|
+
"w:val",
|
|
27790
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
27791
|
+
(v2) => booleanToString(v2)
|
|
27792
|
+
)
|
|
27793
|
+
);
|
|
27794
|
+
const translator$f = NodeTranslator.from(createSingleAttrPropertyHandler("w:header"));
|
|
27795
|
+
const XML_NODE_NAME$e = "w:headers";
|
|
27796
|
+
const SD_ATTR_KEY$2 = "headers";
|
|
27797
|
+
const encode$k = (params2) => {
|
|
27798
|
+
const { nodes } = params2;
|
|
27799
|
+
const node = nodes[0];
|
|
27800
|
+
const attributes = encodeProperties(node, { [translator$f.xmlName]: translator$f }, true);
|
|
27801
|
+
return {
|
|
27802
|
+
xmlName: XML_NODE_NAME$e,
|
|
27803
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
27804
|
+
attributes
|
|
27805
|
+
};
|
|
27806
|
+
};
|
|
27807
|
+
const decode$m = (params2) => {
|
|
27808
|
+
const { headers = [] } = params2.node.attrs || {};
|
|
27809
|
+
const newNode = {
|
|
27810
|
+
name: XML_NODE_NAME$e,
|
|
27811
|
+
attributes: {},
|
|
27812
|
+
elements: headers.map(
|
|
27813
|
+
(header) => translator$f.decode({
|
|
27814
|
+
node: { type: "header", attrs: header }
|
|
27815
|
+
})
|
|
27816
|
+
)
|
|
27817
|
+
};
|
|
27818
|
+
return newNode;
|
|
27819
|
+
};
|
|
27820
|
+
const config$d = {
|
|
27821
|
+
xmlName: XML_NODE_NAME$e,
|
|
27822
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
27823
|
+
encode: encode$k,
|
|
27824
|
+
decode: decode$m
|
|
27825
|
+
};
|
|
27826
|
+
const translator$e = NodeTranslator.from(config$d);
|
|
27827
|
+
const propertyTranslators = [
|
|
27828
|
+
translator$19,
|
|
27829
|
+
translator$r,
|
|
27830
|
+
translator$q,
|
|
27831
|
+
translator$p,
|
|
27832
|
+
translator$m,
|
|
27833
|
+
translator$X,
|
|
27834
|
+
translator$l,
|
|
27835
|
+
translator$k,
|
|
27836
|
+
translator$j,
|
|
27837
|
+
translator$i,
|
|
27838
|
+
translator$h,
|
|
27839
|
+
translator$g,
|
|
27840
|
+
translator$e
|
|
27841
|
+
];
|
|
27842
|
+
const translator$d = NodeTranslator.from(
|
|
27843
|
+
createNestedPropertiesTranslator("w:tcPr", "tableCellProperties", propertyTranslators)
|
|
27844
|
+
);
|
|
27797
27845
|
function handleTableCellNode({
|
|
27798
27846
|
params: params2,
|
|
27799
27847
|
node,
|
|
@@ -27806,8 +27854,10 @@ function handleTableCellNode({
|
|
|
27806
27854
|
allColumnWidths = []
|
|
27807
27855
|
}) {
|
|
27808
27856
|
const { docx, nodeListHandler } = params2;
|
|
27857
|
+
const attributes = {};
|
|
27809
27858
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
27810
|
-
const
|
|
27859
|
+
const tableCellProperties = tcPr ? translator$d.encode({ ...params2, nodes: [tcPr] }) ?? {} : {};
|
|
27860
|
+
attributes["tableCellProperties"] = tableCellProperties;
|
|
27811
27861
|
if (rowBorders?.insideH) {
|
|
27812
27862
|
rowBorders["bottom"] = rowBorders.insideH;
|
|
27813
27863
|
delete rowBorders.insideH;
|
|
@@ -27816,33 +27866,20 @@ function handleTableCellNode({
|
|
|
27816
27866
|
rowBorders["right"] = rowBorders.insideV;
|
|
27817
27867
|
delete rowBorders?.insideV;
|
|
27818
27868
|
}
|
|
27819
|
-
|
|
27820
|
-
const
|
|
27821
|
-
|
|
27822
|
-
|
|
27823
|
-
|
|
27869
|
+
if (rowBorders) attributes["borders"] = { ...rowBorders };
|
|
27870
|
+
const inlineBorders = processInlineCellBorders(tableCellProperties.borders, rowBorders);
|
|
27871
|
+
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
27872
|
+
const colspan = tableCellProperties.gridSpan;
|
|
27873
|
+
if (colspan && !isNaN(parseInt(colspan, 10))) attributes["colspan"] = parseInt(colspan, 10);
|
|
27874
|
+
let width = tableCellProperties.cellWidth?.value ? twipsToPixels(tableCellProperties.cellWidth?.value) : null;
|
|
27875
|
+
const widthType = tableCellProperties.cellWidth?.type;
|
|
27876
|
+
if (widthType) attributes["widthType"] = widthType;
|
|
27824
27877
|
if (!width && columnWidth) width = columnWidth;
|
|
27825
|
-
const vMerge = getTableCellMergeTag(node);
|
|
27826
|
-
const { attributes: vMergeAttrs } = vMerge || {};
|
|
27827
|
-
const backgroundColor = tcPr?.elements?.find((el) => el.name === "w:shd");
|
|
27828
|
-
const background = {
|
|
27829
|
-
color: backgroundColor?.attributes["w:fill"]
|
|
27830
|
-
};
|
|
27831
|
-
const colspanTag = tcPr?.elements?.find((el) => el.name === "w:gridSpan");
|
|
27832
|
-
const colspan = colspanTag?.attributes["w:val"];
|
|
27833
|
-
const marginTag = tcPr?.elements?.find((el) => el.name === "w:tcMar");
|
|
27834
|
-
const verticalAlignTag = tcPr?.elements?.find((el) => el.name === "w:vAlign");
|
|
27835
|
-
const verticalAlign = verticalAlignTag?.attributes["w:val"] || "top";
|
|
27836
|
-
const attributes = {};
|
|
27837
|
-
const referencedStyles = getReferencedTableStyles(styleTag, docx) || {};
|
|
27838
|
-
attributes.cellMargins = getTableCellMargins(marginTag, referencedStyles);
|
|
27839
|
-
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
27840
|
-
const fontFamily2 = fonts["ascii"];
|
|
27841
27878
|
if (width) {
|
|
27842
27879
|
attributes["colwidth"] = [width];
|
|
27843
27880
|
attributes["widthUnit"] = "px";
|
|
27844
|
-
const defaultColWidths =
|
|
27845
|
-
const hasDefaultColWidths =
|
|
27881
|
+
const defaultColWidths = allColumnWidths;
|
|
27882
|
+
const hasDefaultColWidths = allColumnWidths && allColumnWidths.length > 0;
|
|
27846
27883
|
const colspanNum = parseInt(colspan || 1, 10);
|
|
27847
27884
|
if (colspanNum && colspanNum > 1 && hasDefaultColWidths) {
|
|
27848
27885
|
let colwidth = [];
|
|
@@ -27860,15 +27897,19 @@ function handleTableCellNode({
|
|
|
27860
27897
|
}
|
|
27861
27898
|
}
|
|
27862
27899
|
}
|
|
27863
|
-
|
|
27864
|
-
|
|
27865
|
-
|
|
27866
|
-
attributes["
|
|
27900
|
+
const background = {
|
|
27901
|
+
color: tableCellProperties.shading?.fill
|
|
27902
|
+
};
|
|
27903
|
+
if (background.color) attributes["background"] = background;
|
|
27904
|
+
const verticalAlign = tableCellProperties.vAlign;
|
|
27905
|
+
if (verticalAlign) attributes["verticalAlign"] = verticalAlign;
|
|
27906
|
+
const referencedStyles = getReferencedTableStyles(styleTag, docx) || { fontSize: null, fonts: {}, cellMargins: {} };
|
|
27907
|
+
attributes.cellMargins = getTableCellMargins(tableCellProperties.cellMargins, referencedStyles);
|
|
27908
|
+
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
27909
|
+
const fontFamily2 = fonts["ascii"];
|
|
27867
27910
|
if (fontSize2) attributes["fontSize"] = fontSize2;
|
|
27868
|
-
if (fontFamily2) attributes["fontFamily"] = fontFamily2
|
|
27869
|
-
if (
|
|
27870
|
-
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
27871
|
-
if (vMergeAttrs && vMergeAttrs["w:val"] === "restart") {
|
|
27911
|
+
if (fontFamily2) attributes["fontFamily"] = fontFamily2;
|
|
27912
|
+
if (tableCellProperties.vMerge === "restart") {
|
|
27872
27913
|
const rows = table.elements.filter((el) => el.name === "w:tr");
|
|
27873
27914
|
const currentRowIndex = rows.findIndex((r2) => r2 === row);
|
|
27874
27915
|
const remainingRows = rows.slice(currentRowIndex + 1);
|
|
@@ -27879,9 +27920,8 @@ function handleTableCellNode({
|
|
|
27879
27920
|
const firstCell = remainingRow.elements.findIndex((el) => el.name === "w:tc");
|
|
27880
27921
|
const cellAtIndex = remainingRow.elements[firstCell + cellIndex];
|
|
27881
27922
|
if (!cellAtIndex) break;
|
|
27882
|
-
const
|
|
27883
|
-
|
|
27884
|
-
if (!vMerge2 && !currentCellMergeAttrs || currentCellMergeAttrs && currentCellMergeAttrs["w:val"] === "restart") {
|
|
27923
|
+
const vMerge = getTableCellVMerge(cellAtIndex);
|
|
27924
|
+
if (!vMerge || vMerge === "restart") {
|
|
27885
27925
|
break;
|
|
27886
27926
|
}
|
|
27887
27927
|
rowspan++;
|
|
@@ -27901,69 +27941,52 @@ function handleTableCellNode({
|
|
|
27901
27941
|
}
|
|
27902
27942
|
const processInlineCellBorders = (borders, rowBorders) => {
|
|
27903
27943
|
if (!borders) return null;
|
|
27904
|
-
|
|
27905
|
-
|
|
27906
|
-
|
|
27907
|
-
|
|
27908
|
-
|
|
27909
|
-
|
|
27910
|
-
|
|
27911
|
-
|
|
27912
|
-
|
|
27913
|
-
|
|
27914
|
-
|
|
27915
|
-
const
|
|
27916
|
-
|
|
27917
|
-
|
|
27918
|
-
|
|
27919
|
-
|
|
27920
|
-
|
|
27921
|
-
|
|
27922
|
-
|
|
27923
|
-
|
|
27924
|
-
|
|
27925
|
-
|
|
27926
|
-
const border = Object.assign({}, rowBorders[direction] || {});
|
|
27927
|
-
if (!Object.keys(border)) return null;
|
|
27928
|
-
border["val"] = "none";
|
|
27929
|
-
return border;
|
|
27930
|
-
}
|
|
27931
|
-
return null;
|
|
27944
|
+
return ["bottom", "top", "left", "right"].reduce((acc, direction) => {
|
|
27945
|
+
const borderAttrs = borders[direction];
|
|
27946
|
+
const rowBorderAttrs = rowBorders[direction];
|
|
27947
|
+
if (borderAttrs && borderAttrs["val"] !== "nil") {
|
|
27948
|
+
const color = borderAttrs["color"];
|
|
27949
|
+
let size2 = borderAttrs["size"];
|
|
27950
|
+
if (size2) size2 = eighthPointsToPixels(size2);
|
|
27951
|
+
acc[direction] = { color, size: size2, val: borderAttrs["val"] };
|
|
27952
|
+
return acc;
|
|
27953
|
+
}
|
|
27954
|
+
if (borderAttrs && borderAttrs["val"] === "nil") {
|
|
27955
|
+
const border = Object.assign({}, rowBorderAttrs || {});
|
|
27956
|
+
if (!Object.keys(border).length) {
|
|
27957
|
+
return acc;
|
|
27958
|
+
} else {
|
|
27959
|
+
border["val"] = "none";
|
|
27960
|
+
acc[direction] = border;
|
|
27961
|
+
return acc;
|
|
27962
|
+
}
|
|
27963
|
+
}
|
|
27964
|
+
return acc;
|
|
27965
|
+
}, {});
|
|
27932
27966
|
};
|
|
27933
|
-
const
|
|
27967
|
+
const getTableCellVMerge = (node) => {
|
|
27934
27968
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
27935
27969
|
const vMerge = tcPr?.elements?.find((el) => el.name === "w:vMerge");
|
|
27936
|
-
return
|
|
27937
|
-
|
|
27938
|
-
|
|
27939
|
-
|
|
27940
|
-
const inlineMarginRightTag = marginTag?.elements?.find((el) => el.name === "w:right");
|
|
27941
|
-
const inlineMarginTopTag = marginTag?.elements?.find((el) => el.name === "w:top");
|
|
27942
|
-
const inlineMarginBottomTag = marginTag?.elements?.find((el) => el.name === "w:bottom");
|
|
27943
|
-
const inlineMarginLeftValue = inlineMarginLeftTag?.attributes["w:w"];
|
|
27944
|
-
const inlineMarginRightValue = inlineMarginRightTag?.attributes["w:w"];
|
|
27945
|
-
const inlineMarginTopValue = inlineMarginTopTag?.attributes["w:w"];
|
|
27946
|
-
const inlineMarginBottomValue = inlineMarginBottomTag?.attributes["w:w"];
|
|
27970
|
+
if (!vMerge) return null;
|
|
27971
|
+
return vMerge.attributes?.["w:val"] || "continue";
|
|
27972
|
+
};
|
|
27973
|
+
const getTableCellMargins = (inlineMargins, referencedStyles) => {
|
|
27947
27974
|
const { cellMargins = {} } = referencedStyles;
|
|
27948
|
-
|
|
27949
|
-
|
|
27950
|
-
|
|
27951
|
-
|
|
27952
|
-
|
|
27953
|
-
|
|
27954
|
-
|
|
27955
|
-
|
|
27956
|
-
if (styleValue
|
|
27957
|
-
|
|
27958
|
-
|
|
27959
|
-
|
|
27960
|
-
|
|
27961
|
-
|
|
27962
|
-
|
|
27963
|
-
top: twipsToPixels(resolveMargin(inlineMarginTopValue, marginTopStyle)),
|
|
27964
|
-
bottom: twipsToPixels(resolveMargin(inlineMarginBottomValue, marginBottomStyle))
|
|
27965
|
-
};
|
|
27966
|
-
return margins;
|
|
27975
|
+
return ["left", "right", "top", "bottom"].reduce((acc, direction) => {
|
|
27976
|
+
const key2 = `margin${direction.charAt(0).toUpperCase() + direction.slice(1)}`;
|
|
27977
|
+
const inlineValue = inlineMargins ? inlineMargins?.[key2]?.value : null;
|
|
27978
|
+
const styleValue = cellMargins ? cellMargins[key2] : null;
|
|
27979
|
+
if (inlineValue != null) {
|
|
27980
|
+
acc[direction] = twipsToPixels(inlineValue);
|
|
27981
|
+
} else if (styleValue == null) {
|
|
27982
|
+
acc[direction] = void 0;
|
|
27983
|
+
} else if (typeof styleValue === "object") {
|
|
27984
|
+
acc[direction] = twipsToPixels(styleValue.value);
|
|
27985
|
+
} else {
|
|
27986
|
+
acc[direction] = twipsToPixels(styleValue);
|
|
27987
|
+
}
|
|
27988
|
+
return acc;
|
|
27989
|
+
}, {});
|
|
27967
27990
|
};
|
|
27968
27991
|
function translateTableCell(params2) {
|
|
27969
27992
|
const elements = translateChildNodes({
|
|
@@ -27978,102 +28001,86 @@ function translateTableCell(params2) {
|
|
|
27978
28001
|
};
|
|
27979
28002
|
}
|
|
27980
28003
|
function generateTableCellProperties(node) {
|
|
27981
|
-
const
|
|
28004
|
+
const tableCellProperties = { ...node.attrs?.tableCellProperties || {} };
|
|
27982
28005
|
const { attrs } = node;
|
|
27983
|
-
const { colwidth = [], cellWidthType = "dxa",
|
|
28006
|
+
const { colwidth = [], cellWidthType = "dxa", widthUnit } = attrs;
|
|
27984
28007
|
const colwidthSum = colwidth.reduce((acc, curr) => acc + curr, 0);
|
|
27985
|
-
const
|
|
27986
|
-
|
|
27987
|
-
|
|
27988
|
-
|
|
27989
|
-
|
|
27990
|
-
}
|
|
27991
|
-
};
|
|
27992
|
-
elements.push(cellWidthElement);
|
|
27993
|
-
if (colspan) {
|
|
27994
|
-
const gridSpanElement = {
|
|
27995
|
-
name: "w:gridSpan",
|
|
27996
|
-
attributes: { "w:val": `${colspan}` }
|
|
28008
|
+
const propertiesWidthPixels = twipsToPixels(tableCellProperties.cellWidth?.value);
|
|
28009
|
+
if (propertiesWidthPixels !== colwidthSum) {
|
|
28010
|
+
tableCellProperties["cellWidth"] = {
|
|
28011
|
+
value: widthUnit === "px" ? pixelsToTwips(colwidthSum) : inchesToTwips(colwidthSum),
|
|
28012
|
+
type: cellWidthType
|
|
27997
28013
|
};
|
|
27998
|
-
elements.push(gridSpanElement);
|
|
27999
28014
|
}
|
|
28000
|
-
const {
|
|
28001
|
-
if (
|
|
28002
|
-
|
|
28003
|
-
|
|
28004
|
-
|
|
28005
|
-
|
|
28006
|
-
|
|
28015
|
+
const { colspan } = attrs;
|
|
28016
|
+
if (colspan > 1 && tableCellProperties.gridSpan !== colspan) {
|
|
28017
|
+
tableCellProperties["gridSpan"] = colspan;
|
|
28018
|
+
} else if (!colspan || tableCellProperties?.gridSpan === 1) {
|
|
28019
|
+
delete tableCellProperties.gridSpan;
|
|
28020
|
+
}
|
|
28021
|
+
const { background = {} } = attrs;
|
|
28022
|
+
if (background?.color && tableCellProperties.shading?.fill !== background?.color) {
|
|
28023
|
+
tableCellProperties["shading"] = { fill: background.color };
|
|
28024
|
+
} else if (!background?.color && tableCellProperties?.shading?.fill) {
|
|
28025
|
+
delete tableCellProperties.shading;
|
|
28007
28026
|
}
|
|
28008
28027
|
const { cellMargins } = attrs;
|
|
28009
28028
|
if (cellMargins) {
|
|
28010
|
-
|
|
28011
|
-
|
|
28012
|
-
|
|
28013
|
-
|
|
28014
|
-
|
|
28029
|
+
["left", "right", "top", "bottom"].forEach((side) => {
|
|
28030
|
+
const key2 = `margin${side.charAt(0).toUpperCase() + side.slice(1)}`;
|
|
28031
|
+
if (cellMargins[side] != null) {
|
|
28032
|
+
if (!tableCellProperties.cellMargins) tableCellProperties["cellMargins"] = {};
|
|
28033
|
+
let currentPropertyValuePixels = twipsToPixels(tableCellProperties.cellMargins?.[key2]?.value);
|
|
28034
|
+
if (currentPropertyValuePixels !== cellMargins[side]) {
|
|
28035
|
+
tableCellProperties.cellMargins[key2] = { value: pixelsToTwips(cellMargins[side]), type: "dxa" };
|
|
28036
|
+
}
|
|
28037
|
+
} else if (tableCellProperties?.cellMargins?.[key2]) {
|
|
28038
|
+
delete tableCellProperties.cellMargins[key2];
|
|
28039
|
+
}
|
|
28040
|
+
});
|
|
28015
28041
|
}
|
|
28016
28042
|
const { verticalAlign } = attrs;
|
|
28017
|
-
if (verticalAlign) {
|
|
28018
|
-
|
|
28019
|
-
|
|
28020
|
-
|
|
28021
|
-
|
|
28022
|
-
|
|
28023
|
-
|
|
28024
|
-
|
|
28025
|
-
const vMergeElement = {
|
|
28026
|
-
name: "w:vMerge",
|
|
28027
|
-
type: "element",
|
|
28028
|
-
attributes: { "w:val": "restart" }
|
|
28029
|
-
};
|
|
28030
|
-
elements.push(vMergeElement);
|
|
28043
|
+
if (verticalAlign && verticalAlign !== tableCellProperties.vAlign) {
|
|
28044
|
+
tableCellProperties["vAlign"] = verticalAlign;
|
|
28045
|
+
} else if (!verticalAlign && tableCellProperties?.vAlign) {
|
|
28046
|
+
delete tableCellProperties.vAlign;
|
|
28047
|
+
}
|
|
28048
|
+
const { rowspan } = attrs;
|
|
28049
|
+
if (rowspan && rowspan > 1 && tableCellProperties.vMerge !== "restart") {
|
|
28050
|
+
tableCellProperties["vMerge"] = "restart";
|
|
28031
28051
|
} else if (attrs.continueMerge) {
|
|
28032
|
-
|
|
28033
|
-
|
|
28034
|
-
|
|
28035
|
-
};
|
|
28036
|
-
elements.push(vMergeElement);
|
|
28052
|
+
tableCellProperties["vMerge"] = "continue";
|
|
28053
|
+
} else if (tableCellProperties?.vMerge) {
|
|
28054
|
+
delete tableCellProperties.vMerge;
|
|
28037
28055
|
}
|
|
28038
28056
|
const { borders = {} } = attrs;
|
|
28039
28057
|
if (!!borders && Object.keys(borders).length) {
|
|
28040
|
-
|
|
28041
|
-
|
|
28042
|
-
|
|
28043
|
-
|
|
28044
|
-
|
|
28045
|
-
|
|
28046
|
-
|
|
28047
|
-
|
|
28048
|
-
|
|
28058
|
+
["top", "bottom", "left", "right"].forEach((side) => {
|
|
28059
|
+
if (borders[side]) {
|
|
28060
|
+
let currentPropertyValue = tableCellProperties.borders?.[side];
|
|
28061
|
+
let currentPropertySizePixels = eighthPointsToPixels(currentPropertyValue?.size);
|
|
28062
|
+
let color = borders[side].color;
|
|
28063
|
+
if (borders[side].color && color === "#000000") {
|
|
28064
|
+
color = "auto";
|
|
28065
|
+
}
|
|
28066
|
+
if (currentPropertySizePixels !== borders[side].size || currentPropertyValue?.color !== color || borders[side].val !== currentPropertyValue?.val) {
|
|
28067
|
+
if (!tableCellProperties.borders) tableCellProperties["borders"] = {};
|
|
28068
|
+
tableCellProperties.borders[side] = {
|
|
28069
|
+
size: pixelsToEightPoints(borders[side].size || 0),
|
|
28070
|
+
color,
|
|
28071
|
+
space: borders[side].space || 0,
|
|
28072
|
+
val: borders[side].val || "single"
|
|
28049
28073
|
};
|
|
28050
28074
|
}
|
|
28051
|
-
|
|
28052
|
-
|
|
28053
|
-
|
|
28054
|
-
|
|
28055
|
-
|
|
28056
|
-
|
|
28057
|
-
"w:space": value.space || 0
|
|
28058
|
-
}
|
|
28059
|
-
};
|
|
28060
|
-
})
|
|
28061
|
-
};
|
|
28062
|
-
elements.push(cellBordersElement);
|
|
28075
|
+
} else if (tableCellProperties.borders?.[side]) {
|
|
28076
|
+
delete tableCellProperties.borders[side];
|
|
28077
|
+
}
|
|
28078
|
+
});
|
|
28079
|
+
} else if (tableCellProperties?.borders) {
|
|
28080
|
+
delete tableCellProperties.borders;
|
|
28063
28081
|
}
|
|
28064
|
-
|
|
28065
|
-
|
|
28066
|
-
elements
|
|
28067
|
-
};
|
|
28068
|
-
}
|
|
28069
|
-
function generateCellMargins(cellMargins) {
|
|
28070
|
-
const elements = [];
|
|
28071
|
-
const { top: top2, right: right2, bottom: bottom2, left: left2 } = cellMargins;
|
|
28072
|
-
if (top2 != null) elements.push({ name: "w:top", attributes: { "w:w": pixelsToTwips(top2) } });
|
|
28073
|
-
if (right2 != null) elements.push({ name: "w:right", attributes: { "w:w": pixelsToTwips(right2) } });
|
|
28074
|
-
if (bottom2 != null) elements.push({ name: "w:bottom", attributes: { "w:w": pixelsToTwips(bottom2) } });
|
|
28075
|
-
if (left2 != null) elements.push({ name: "w:left", attributes: { "w:w": pixelsToTwips(left2) } });
|
|
28076
|
-
return elements;
|
|
28082
|
+
const result = translator$d.decode({ node: { ...node, attrs: { ...node.attrs, tableCellProperties } } });
|
|
28083
|
+
return result;
|
|
28077
28084
|
}
|
|
28078
28085
|
const XML_NODE_NAME$d = "w:tc";
|
|
28079
28086
|
const SD_NODE_NAME$b = "tableCell";
|
|
@@ -31685,8 +31692,8 @@ const trackChangeNodeHandlerEntity = {
|
|
|
31685
31692
|
handlerName: "trackChangeNodeHandler",
|
|
31686
31693
|
handler: handleTrackChangeNode
|
|
31687
31694
|
};
|
|
31688
|
-
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$
|
|
31689
|
-
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$
|
|
31695
|
+
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$1c);
|
|
31696
|
+
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$1b);
|
|
31690
31697
|
function parseProperties(node) {
|
|
31691
31698
|
const marks = [];
|
|
31692
31699
|
const unknownMarks = [];
|
|
@@ -31778,7 +31785,7 @@ const handleParagraphNode = (params2) => {
|
|
|
31778
31785
|
if (nodes.length === 0 || nodes[0].name !== "w:p") {
|
|
31779
31786
|
return { nodes: [], consumed: 0 };
|
|
31780
31787
|
}
|
|
31781
|
-
const schemaNode = translator$
|
|
31788
|
+
const schemaNode = translator$1o.encode(params2);
|
|
31782
31789
|
const newNodes = schemaNode ? [schemaNode] : [];
|
|
31783
31790
|
return { nodes: newNodes, consumed: 1 };
|
|
31784
31791
|
};
|
|
@@ -31881,7 +31888,7 @@ const handler = (params2) => {
|
|
|
31881
31888
|
if (nodes.length === 0 || nodes[0].name !== "w:br") {
|
|
31882
31889
|
return { nodes: [], consumed: 0 };
|
|
31883
31890
|
}
|
|
31884
|
-
const result = translator$
|
|
31891
|
+
const result = translator$1r.encode(params2);
|
|
31885
31892
|
if (!result) return { nodes: [], consumed: 0 };
|
|
31886
31893
|
return {
|
|
31887
31894
|
nodes: [result],
|
|
@@ -32507,7 +32514,7 @@ const handleTabNode = (params2) => {
|
|
|
32507
32514
|
if (!nodes.length || nodes[0].name !== "w:tab") {
|
|
32508
32515
|
return { nodes: [], consumed: 0 };
|
|
32509
32516
|
}
|
|
32510
|
-
const node = translator$
|
|
32517
|
+
const node = translator$1p.encode(params2);
|
|
32511
32518
|
return { nodes: [node], consumed: 1 };
|
|
32512
32519
|
};
|
|
32513
32520
|
const tabNodeEntityHandler = {
|
|
@@ -32759,12 +32766,14 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
32759
32766
|
const content = pruneIgnoredNodes(contentElements);
|
|
32760
32767
|
const comments = importCommentData({ docx, converter, editor });
|
|
32761
32768
|
const lists = {};
|
|
32769
|
+
const inlineDocumentFonts = [];
|
|
32762
32770
|
let parsedContent = nodeListHandler.handler({
|
|
32763
32771
|
nodes: content,
|
|
32764
32772
|
nodeListHandler,
|
|
32765
32773
|
docx,
|
|
32766
32774
|
converter,
|
|
32767
32775
|
editor,
|
|
32776
|
+
inlineDocumentFonts,
|
|
32768
32777
|
lists,
|
|
32769
32778
|
path: []
|
|
32770
32779
|
});
|
|
@@ -32787,6 +32796,7 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
32787
32796
|
savedTagsToRestore: node,
|
|
32788
32797
|
pageStyles: getDocumentStyles(node, docx, converter, editor),
|
|
32789
32798
|
comments,
|
|
32799
|
+
inlineDocumentFonts,
|
|
32790
32800
|
linkedStyles: getStyleDefinitions(docx),
|
|
32791
32801
|
numbering: getNumberingDefinitions(docx)
|
|
32792
32802
|
};
|
|
@@ -32850,6 +32860,7 @@ const createNodeListHandler = (nodeHandlers) => {
|
|
|
32850
32860
|
filename,
|
|
32851
32861
|
parentStyleId,
|
|
32852
32862
|
lists,
|
|
32863
|
+
inlineDocumentFonts,
|
|
32853
32864
|
path = []
|
|
32854
32865
|
}) => {
|
|
32855
32866
|
if (!elements || !elements.length) return [];
|
|
@@ -32876,6 +32887,7 @@ const createNodeListHandler = (nodeHandlers) => {
|
|
|
32876
32887
|
filename,
|
|
32877
32888
|
parentStyleId,
|
|
32878
32889
|
lists,
|
|
32890
|
+
inlineDocumentFonts,
|
|
32879
32891
|
path
|
|
32880
32892
|
});
|
|
32881
32893
|
},
|
|
@@ -33455,7 +33467,7 @@ function translateVRectContentBlock(params2) {
|
|
|
33455
33467
|
const XML_NODE_NAME = "w:pict";
|
|
33456
33468
|
const SD_NODE_NAME = ["shapeContainer", "contentBlock"];
|
|
33457
33469
|
const validXmlAttributes = [];
|
|
33458
|
-
function encode$
|
|
33470
|
+
function encode$1c(params2) {
|
|
33459
33471
|
const { node, pNode } = params2.extraParams;
|
|
33460
33472
|
const { type: pictType, handler: handler2 } = pictNodeTypeStrategy(node);
|
|
33461
33473
|
if (!handler2 || pictType === "unknown") {
|
|
@@ -33487,7 +33499,7 @@ const config = {
|
|
|
33487
33499
|
xmlName: XML_NODE_NAME,
|
|
33488
33500
|
sdNodeOrKeyName: SD_NODE_NAME,
|
|
33489
33501
|
type: NodeTranslator.translatorTypes.NODE,
|
|
33490
|
-
encode: encode$
|
|
33502
|
+
encode: encode$1c,
|
|
33491
33503
|
decode,
|
|
33492
33504
|
attributes: validXmlAttributes
|
|
33493
33505
|
};
|
|
@@ -33563,21 +33575,21 @@ function exportSchemaToJson(params2) {
|
|
|
33563
33575
|
doc: translateDocumentNode,
|
|
33564
33576
|
body: translateBodyNode,
|
|
33565
33577
|
heading: translateHeadingNode,
|
|
33566
|
-
paragraph: translator$
|
|
33567
|
-
run: translator$
|
|
33578
|
+
paragraph: translator$1o,
|
|
33579
|
+
run: translator$1b,
|
|
33568
33580
|
text: translateTextNode,
|
|
33569
33581
|
bulletList: translateList,
|
|
33570
33582
|
orderedList: translateList,
|
|
33571
|
-
lineBreak: translator$
|
|
33572
|
-
table: translator$
|
|
33573
|
-
tableRow: translator$
|
|
33583
|
+
lineBreak: translator$1r,
|
|
33584
|
+
table: translator$s,
|
|
33585
|
+
tableRow: translator$Z,
|
|
33574
33586
|
tableCell: translator$c,
|
|
33575
33587
|
bookmarkStart: translator$7,
|
|
33576
33588
|
bookmarkEnd: translator$6,
|
|
33577
33589
|
fieldAnnotation: translator$8,
|
|
33578
|
-
tab: translator$
|
|
33590
|
+
tab: translator$1p,
|
|
33579
33591
|
image: translator$9,
|
|
33580
|
-
hardBreak: translator$
|
|
33592
|
+
hardBreak: translator$1r,
|
|
33581
33593
|
commentRangeStart: commentRangeStartTranslator,
|
|
33582
33594
|
commentRangeEnd: commentRangeEndTranslator,
|
|
33583
33595
|
commentReference: () => null,
|
|
@@ -33938,7 +33950,7 @@ function translateTextNode(params2) {
|
|
|
33938
33950
|
}
|
|
33939
33951
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
33940
33952
|
if (isLinkNode && !extraParams?.linkProcessed) {
|
|
33941
|
-
return translator$
|
|
33953
|
+
return translator$1c.decode(params2);
|
|
33942
33954
|
}
|
|
33943
33955
|
const { text, marks = [] } = node;
|
|
33944
33956
|
return getTextNodeForExport(text, marks, params2);
|
|
@@ -34198,7 +34210,7 @@ function translateMark(mark) {
|
|
|
34198
34210
|
markElement.type = "element";
|
|
34199
34211
|
break;
|
|
34200
34212
|
case "underline": {
|
|
34201
|
-
const translated = translator$
|
|
34213
|
+
const translated = translator$1l.decode({
|
|
34202
34214
|
node: {
|
|
34203
34215
|
attrs: {
|
|
34204
34216
|
underlineType: attrs.underlineType ?? attrs.underline ?? null,
|
|
@@ -34262,7 +34274,7 @@ function translateMark(mark) {
|
|
|
34262
34274
|
break;
|
|
34263
34275
|
case "highlight": {
|
|
34264
34276
|
const highlightValue = attrs.color ?? attrs.highlight ?? null;
|
|
34265
|
-
const translated = translator$
|
|
34277
|
+
const translated = translator$1q.decode({ node: { attrs: { highlight: highlightValue } } });
|
|
34266
34278
|
return translated || {};
|
|
34267
34279
|
}
|
|
34268
34280
|
case "link":
|
|
@@ -34641,6 +34653,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34641
34653
|
this.fonts = params2?.fonts || {};
|
|
34642
34654
|
this.addedMedia = {};
|
|
34643
34655
|
this.comments = [];
|
|
34656
|
+
this.inlineDocumentFonts = [];
|
|
34644
34657
|
this.docHiglightColors = /* @__PURE__ */ new Set([]);
|
|
34645
34658
|
this.xml = params2?.xml;
|
|
34646
34659
|
this.declaration = null;
|
|
@@ -34927,6 +34940,23 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34927
34940
|
return result;
|
|
34928
34941
|
}
|
|
34929
34942
|
getDocumentFonts() {
|
|
34943
|
+
const inlineDocumentFonts = [...new Set(this.inlineDocumentFonts || [])];
|
|
34944
|
+
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
34945
|
+
if (!fontTable) {
|
|
34946
|
+
return inlineDocumentFonts;
|
|
34947
|
+
}
|
|
34948
|
+
const wFonts = fontTable.elements?.find((element) => element.name === "w:fonts");
|
|
34949
|
+
if (!wFonts) {
|
|
34950
|
+
return inlineDocumentFonts;
|
|
34951
|
+
}
|
|
34952
|
+
if (!wFonts.elements) {
|
|
34953
|
+
return inlineDocumentFonts;
|
|
34954
|
+
}
|
|
34955
|
+
const fontsInFontTable = wFonts.elements.filter((element) => element.name === "w:font").map((element) => element.attributes["w:name"]);
|
|
34956
|
+
const allFonts = [...inlineDocumentFonts, ...fontsInFontTable];
|
|
34957
|
+
return [...new Set(allFonts)];
|
|
34958
|
+
}
|
|
34959
|
+
getFontFaceImportString() {
|
|
34930
34960
|
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
34931
34961
|
if (!fontTable || !Object.keys(this.fonts).length) return;
|
|
34932
34962
|
const fonts = fontTable.elements.find((el) => el.name === "w:fonts");
|
|
@@ -34940,6 +34970,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34940
34970
|
const rels = this.convertedXml["word/_rels/fontTable.xml.rels"];
|
|
34941
34971
|
const relationships = rels?.elements.find((el) => el.name === "Relationships") || {};
|
|
34942
34972
|
const { elements } = relationships;
|
|
34973
|
+
const fontsImported = [];
|
|
34943
34974
|
let styleString = "";
|
|
34944
34975
|
for (const font of fontsToInclude) {
|
|
34945
34976
|
const filePath = elements.find((el) => el.attributes.Id === font.attributes["r:id"])?.attributes?.Target;
|
|
@@ -34956,6 +34987,9 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34956
34987
|
const isItalic = font.name.includes("Italic");
|
|
34957
34988
|
const isLight = font.name.includes("Light");
|
|
34958
34989
|
const fontWeight = isNormal ? "normal" : isBold ? "bold" : isLight ? "200" : "normal";
|
|
34990
|
+
if (!fontsImported.includes(font.fontFamily)) {
|
|
34991
|
+
fontsImported.push(font.fontFamily);
|
|
34992
|
+
}
|
|
34959
34993
|
styleString += `
|
|
34960
34994
|
@font-face {
|
|
34961
34995
|
font-style: ${isItalic ? "italic" : "normal"};
|
|
@@ -34966,7 +35000,10 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34966
35000
|
}
|
|
34967
35001
|
`;
|
|
34968
35002
|
}
|
|
34969
|
-
return
|
|
35003
|
+
return {
|
|
35004
|
+
styleString,
|
|
35005
|
+
fontsImported
|
|
35006
|
+
};
|
|
34970
35007
|
}
|
|
34971
35008
|
getDocumentInternalId() {
|
|
34972
35009
|
const settingsLocation = "word/settings.xml";
|
|
@@ -35021,6 +35058,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
35021
35058
|
this.numbering = result.numbering;
|
|
35022
35059
|
this.comments = result.comments;
|
|
35023
35060
|
this.linkedStyles = result.linkedStyles;
|
|
35061
|
+
this.inlineDocumentFonts = result.inlineDocumentFonts;
|
|
35024
35062
|
return result.pmDoc;
|
|
35025
35063
|
} else {
|
|
35026
35064
|
return null;
|
|
@@ -37982,7 +38020,7 @@ var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "rea
|
|
|
37982
38020
|
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);
|
|
37983
38021
|
var __privateSet = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
|
|
37984
38022
|
var __privateMethod$1 = (obj, member, method) => (__accessCheck$1(obj, member, "access private method"), method);
|
|
37985
|
-
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;
|
|
38023
|
+
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;
|
|
37986
38024
|
var GOOD_LEAF_SIZE = 200;
|
|
37987
38025
|
var RopeSequence = function RopeSequence2() {
|
|
37988
38026
|
};
|
|
@@ -51051,6 +51089,29 @@ const setImageNodeSelection = (view, pos) => {
|
|
|
51051
51089
|
}
|
|
51052
51090
|
return false;
|
|
51053
51091
|
};
|
|
51092
|
+
function canRenderFont(fontName, fallbackFont = "sans-serif") {
|
|
51093
|
+
const _canRenderFont = (fontName2, fallbackFont2) => {
|
|
51094
|
+
const canvas = document.createElement("canvas");
|
|
51095
|
+
const ctx2 = canvas.getContext("2d");
|
|
51096
|
+
ctx2.textBaseline = "top";
|
|
51097
|
+
const text = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
51098
|
+
ctx2.font = `72px ${fallbackFont2}`;
|
|
51099
|
+
const initialTextMeasurement = ctx2.measureText(text);
|
|
51100
|
+
const fallbackWidth = initialTextMeasurement.width;
|
|
51101
|
+
const fallbackHeight = initialTextMeasurement.actualBoundingBoxDescent;
|
|
51102
|
+
ctx2.font = `72px "${fontName2}", ${fallbackFont2}`;
|
|
51103
|
+
const customTextMeasurement = ctx2.measureText(text);
|
|
51104
|
+
const customFontWidth = customTextMeasurement.width;
|
|
51105
|
+
const customFontHeight = customTextMeasurement.actualBoundingBoxDescent;
|
|
51106
|
+
const isAvailable = customFontWidth !== fallbackWidth || customFontHeight !== fallbackHeight;
|
|
51107
|
+
return isAvailable;
|
|
51108
|
+
};
|
|
51109
|
+
if (_canRenderFont(fontName, fallbackFont)) {
|
|
51110
|
+
return true;
|
|
51111
|
+
}
|
|
51112
|
+
const oppositeFallbackFont = fallbackFont === "sans-serif" ? "serif" : "sans-serif";
|
|
51113
|
+
return _canRenderFont(fontName, oppositeFallbackFont);
|
|
51114
|
+
}
|
|
51054
51115
|
const { findChildren: findChildren$3 } = helpers;
|
|
51055
51116
|
function getAllFieldAnnotations(state2) {
|
|
51056
51117
|
let fieldAnnotations = findChildren$3(state2.doc, (node) => node.type.name === "fieldAnnotation");
|
|
@@ -52100,6 +52161,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
52100
52161
|
__publicField$1(this, "schema");
|
|
52101
52162
|
__publicField$1(this, "view");
|
|
52102
52163
|
__publicField$1(this, "isFocused", false);
|
|
52164
|
+
__publicField$1(this, "fontsImported", []);
|
|
52103
52165
|
__publicField$1(this, "options", {
|
|
52104
52166
|
element: null,
|
|
52105
52167
|
selector: null,
|
|
@@ -52160,6 +52222,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
52160
52222
|
onPaginationUpdate: () => null,
|
|
52161
52223
|
onException: () => null,
|
|
52162
52224
|
onListDefinitionsChange: () => null,
|
|
52225
|
+
onFontsResolved: null,
|
|
52163
52226
|
// async (file) => url;
|
|
52164
52227
|
handleImageUpload: null,
|
|
52165
52228
|
// telemetry
|
|
@@ -53136,6 +53199,9 @@ init_fn = function() {
|
|
|
53136
53199
|
this.emit("beforeCreate", { editor: this });
|
|
53137
53200
|
this.on("contentError", this.options.onContentError);
|
|
53138
53201
|
this.mount(this.options.element);
|
|
53202
|
+
if (!this.options.isHeadless) {
|
|
53203
|
+
__privateMethod$1(this, _Editor_instances, checkFonts_fn).call(this);
|
|
53204
|
+
}
|
|
53139
53205
|
this.on("create", this.options.onCreate);
|
|
53140
53206
|
this.on("update", this.options.onUpdate);
|
|
53141
53207
|
this.on("selectionUpdate", this.options.onSelectionUpdate);
|
|
@@ -53283,13 +53349,74 @@ initMedia_fn = function() {
|
|
|
53283
53349
|
}
|
|
53284
53350
|
};
|
|
53285
53351
|
initFonts_fn = function() {
|
|
53286
|
-
const
|
|
53287
|
-
if (styleString?.length) {
|
|
53352
|
+
const results = this.converter.getFontFaceImportString();
|
|
53353
|
+
if (results?.styleString?.length) {
|
|
53288
53354
|
const style2 = document.createElement("style");
|
|
53289
|
-
style2.textContent = styleString;
|
|
53355
|
+
style2.textContent = results.styleString;
|
|
53290
53356
|
document.head.appendChild(style2);
|
|
53357
|
+
this.fontsImported = results.fontsImported;
|
|
53291
53358
|
}
|
|
53292
53359
|
};
|
|
53360
|
+
checkFonts_fn = async function() {
|
|
53361
|
+
if (!this.options.onFontsResolved || typeof this.options.onFontsResolved !== "function") {
|
|
53362
|
+
return;
|
|
53363
|
+
}
|
|
53364
|
+
if (this.options.isHeadless) {
|
|
53365
|
+
return;
|
|
53366
|
+
}
|
|
53367
|
+
const fontsUsedInDocument = this.converter.getDocumentFonts();
|
|
53368
|
+
if (!("queryLocalFonts" in window)) {
|
|
53369
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
53370
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
53371
|
+
this.options.onFontsResolved({
|
|
53372
|
+
documentFonts: fontsUsedInDocument,
|
|
53373
|
+
unsupportedFonts
|
|
53374
|
+
});
|
|
53375
|
+
return;
|
|
53376
|
+
}
|
|
53377
|
+
const localFontAccess = await navigator.permissions.query({ name: "local-fonts" });
|
|
53378
|
+
if (localFontAccess.state === "denied") {
|
|
53379
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
53380
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
53381
|
+
this.options.onFontsResolved({
|
|
53382
|
+
documentFonts: fontsUsedInDocument,
|
|
53383
|
+
unsupportedFonts
|
|
53384
|
+
});
|
|
53385
|
+
return;
|
|
53386
|
+
}
|
|
53387
|
+
try {
|
|
53388
|
+
const localFonts = await window.queryLocalFonts();
|
|
53389
|
+
const uniqueLocalFonts = [...new Set(localFonts.map((font) => font.family))];
|
|
53390
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithLocalFonts_fn).call(this, fontsUsedInDocument, uniqueLocalFonts);
|
|
53391
|
+
this.options.onFontsResolved({
|
|
53392
|
+
documentFonts: fontsUsedInDocument,
|
|
53393
|
+
unsupportedFonts
|
|
53394
|
+
});
|
|
53395
|
+
} catch {
|
|
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
|
+
}
|
|
53403
|
+
};
|
|
53404
|
+
determineUnsupportedFontsWithLocalFonts_fn = function(fonts, localFonts) {
|
|
53405
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
53406
|
+
const isLocalFont = localFonts.includes(font);
|
|
53407
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
53408
|
+
return !isLocalFont && !isFontImported;
|
|
53409
|
+
});
|
|
53410
|
+
return unsupportedFonts;
|
|
53411
|
+
};
|
|
53412
|
+
determineUnsupportedFontsWithCanvas_fn = function(fonts) {
|
|
53413
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
53414
|
+
const canRender = canRenderFont(font);
|
|
53415
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
53416
|
+
return !canRender && !isFontImported;
|
|
53417
|
+
});
|
|
53418
|
+
return unsupportedFonts;
|
|
53419
|
+
};
|
|
53293
53420
|
createSchema_fn = function() {
|
|
53294
53421
|
this.schema = this.extensionService.schema;
|
|
53295
53422
|
};
|
|
@@ -62046,6 +62173,15 @@ const TableCell = Node$1.create({
|
|
|
62046
62173
|
widthUnit: {
|
|
62047
62174
|
default: "px",
|
|
62048
62175
|
rendered: false
|
|
62176
|
+
},
|
|
62177
|
+
/**
|
|
62178
|
+
* @category Attribute
|
|
62179
|
+
* @param {TableCellProperties} tableCellProperties - Properties for the table cell.
|
|
62180
|
+
* @see {@link https://ecma-international.org/publications-and-standards/standards/ecma-376/} "Fundamentals And Markup Language Reference", page 463
|
|
62181
|
+
*/
|
|
62182
|
+
tableCellProperties: {
|
|
62183
|
+
default: null,
|
|
62184
|
+
rendered: false
|
|
62049
62185
|
}
|
|
62050
62186
|
};
|
|
62051
62187
|
},
|
|
@@ -87755,7 +87891,7 @@ const _sfc_main$2 = {
|
|
|
87755
87891
|
}
|
|
87756
87892
|
};
|
|
87757
87893
|
const GenericPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-cbddcc0f"]]);
|
|
87758
|
-
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
87894
|
+
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
87759
87895
|
const _hoisted_1$1 = { class: "super-editor-container" };
|
|
87760
87896
|
const _hoisted_2 = {
|
|
87761
87897
|
key: 1,
|
|
@@ -88150,72 +88286,87 @@ const additionalHandlers = Object.freeze({
|
|
|
88150
88286
|
"mc:AlternateContent": translator$1,
|
|
88151
88287
|
"sd:pageReference": translator$5,
|
|
88152
88288
|
"sd:tableOfContents": translator$4,
|
|
88153
|
-
"w:b": translator$
|
|
88154
|
-
"w:bidiVisual": translator$
|
|
88289
|
+
"w:b": translator$1n,
|
|
88290
|
+
"w:bidiVisual": translator$Y,
|
|
88155
88291
|
"w:bookmarkEnd": translator$6,
|
|
88156
88292
|
"w:bookmarkStart": translator$7,
|
|
88157
|
-
"w:bottom": translator$
|
|
88158
|
-
"w:br": translator$
|
|
88159
|
-
"w:cantSplit": translator$
|
|
88160
|
-
"w:cnfStyle": translator$
|
|
88161
|
-
"w:color": translator$
|
|
88162
|
-
"w:divId": translator$
|
|
88293
|
+
"w:bottom": translator$L,
|
|
88294
|
+
"w:br": translator$1r,
|
|
88295
|
+
"w:cantSplit": translator$1a,
|
|
88296
|
+
"w:cnfStyle": translator$19,
|
|
88297
|
+
"w:color": translator$1j,
|
|
88298
|
+
"w:divId": translator$18,
|
|
88163
88299
|
"w:drawing": translator$9,
|
|
88164
|
-
"w:end": translator$
|
|
88165
|
-
"w:gridAfter": translator$
|
|
88166
|
-
"w:gridBefore": translator$
|
|
88167
|
-
"w:gridCol": translator$
|
|
88168
|
-
"w:hidden": translator$
|
|
88169
|
-
"w:highlight": translator$
|
|
88170
|
-
"w:hyperlink": translator$
|
|
88171
|
-
"w:i": translator$
|
|
88172
|
-
"w:insideH": translator$
|
|
88173
|
-
"w:insideV": translator$
|
|
88174
|
-
"w:jc": translator$
|
|
88175
|
-
"w:left": translator$
|
|
88176
|
-
"w:p": translator$
|
|
88177
|
-
"w:r": translator$
|
|
88178
|
-
"w:rFonts": translator$
|
|
88179
|
-
"w:rPr": translator$
|
|
88180
|
-
"w:rStyle": translator$
|
|
88181
|
-
"w:right": translator$
|
|
88300
|
+
"w:end": translator$J,
|
|
88301
|
+
"w:gridAfter": translator$17,
|
|
88302
|
+
"w:gridBefore": translator$16,
|
|
88303
|
+
"w:gridCol": translator$u,
|
|
88304
|
+
"w:hidden": translator$15,
|
|
88305
|
+
"w:highlight": translator$1q,
|
|
88306
|
+
"w:hyperlink": translator$1c,
|
|
88307
|
+
"w:i": translator$1m,
|
|
88308
|
+
"w:insideH": translator$H,
|
|
88309
|
+
"w:insideV": translator$G,
|
|
88310
|
+
"w:jc": translator$14,
|
|
88311
|
+
"w:left": translator$F,
|
|
88312
|
+
"w:p": translator$1o,
|
|
88313
|
+
"w:r": translator$1b,
|
|
88314
|
+
"w:rFonts": translator$1i,
|
|
88315
|
+
"w:rPr": translator$1d,
|
|
88316
|
+
"w:rStyle": translator$1h,
|
|
88317
|
+
"w:right": translator$D,
|
|
88182
88318
|
"w:sdt": translator$8,
|
|
88183
|
-
"w:shd": translator$
|
|
88184
|
-
"w:start": translator$
|
|
88185
|
-
"w:strike": translator$
|
|
88186
|
-
"w:sz": translator$
|
|
88187
|
-
"w:szCs": translator$
|
|
88188
|
-
"w:tab": translator$
|
|
88189
|
-
"w:tbl": translator$
|
|
88190
|
-
"w:tblBorders": translator$
|
|
88191
|
-
"w:tblCaption": translator$
|
|
88192
|
-
"w:tblCellMar": translator$
|
|
88193
|
-
"w:tblCellSpacing": translator$
|
|
88194
|
-
"w:tblDescription": translator$
|
|
88195
|
-
"w:tblGrid": translator$
|
|
88196
|
-
"w:tblHeader": translator$
|
|
88197
|
-
"w:tblInd": translator$
|
|
88198
|
-
"w:tblLayout": translator$
|
|
88199
|
-
"w:tblLook": translator$
|
|
88200
|
-
"w:tblOverlap": translator$
|
|
88201
|
-
"w:tblPr": translator$
|
|
88202
|
-
"w:tblStyle": translator$
|
|
88203
|
-
"w:tblStyleColBandSize": translator$
|
|
88204
|
-
"w:tblStyleRowBandSize": translator$
|
|
88205
|
-
"w:tblW": translator$
|
|
88206
|
-
"w:tblpPr": translator$
|
|
88319
|
+
"w:shd": translator$X,
|
|
88320
|
+
"w:start": translator$B,
|
|
88321
|
+
"w:strike": translator$1k,
|
|
88322
|
+
"w:sz": translator$1g,
|
|
88323
|
+
"w:szCs": translator$1f,
|
|
88324
|
+
"w:tab": translator$1p,
|
|
88325
|
+
"w:tbl": translator$s,
|
|
88326
|
+
"w:tblBorders": translator$x,
|
|
88327
|
+
"w:tblCaption": translator$W,
|
|
88328
|
+
"w:tblCellMar": translator$w,
|
|
88329
|
+
"w:tblCellSpacing": translator$13,
|
|
88330
|
+
"w:tblDescription": translator$V,
|
|
88331
|
+
"w:tblGrid": translator$t,
|
|
88332
|
+
"w:tblHeader": translator$12,
|
|
88333
|
+
"w:tblInd": translator$U,
|
|
88334
|
+
"w:tblLayout": translator$T,
|
|
88335
|
+
"w:tblLook": translator$S,
|
|
88336
|
+
"w:tblOverlap": translator$R,
|
|
88337
|
+
"w:tblPr": translator$v,
|
|
88338
|
+
"w:tblStyle": translator$Q,
|
|
88339
|
+
"w:tblStyleColBandSize": translator$P,
|
|
88340
|
+
"w:tblStyleRowBandSize": translator$O,
|
|
88341
|
+
"w:tblW": translator$N,
|
|
88342
|
+
"w:tblpPr": translator$M,
|
|
88207
88343
|
"w:tc": translator$c,
|
|
88208
|
-
"w:top": translator$
|
|
88209
|
-
"w:tr": translator$
|
|
88210
|
-
"w:trHeight": translator$
|
|
88211
|
-
"w:trPr": translator$
|
|
88212
|
-
"w:u": translator$
|
|
88213
|
-
"w:wAfter": translator$
|
|
88214
|
-
"w:wBefore": translator
|
|
88344
|
+
"w:top": translator$z,
|
|
88345
|
+
"w:tr": translator$Z,
|
|
88346
|
+
"w:trHeight": translator$11,
|
|
88347
|
+
"w:trPr": translator$_,
|
|
88348
|
+
"w:u": translator$1l,
|
|
88349
|
+
"w:wAfter": translator$10,
|
|
88350
|
+
"w:wBefore": translator$$,
|
|
88215
88351
|
"wp:anchor": translator$b,
|
|
88216
88352
|
"wp:inline": translator$a,
|
|
88217
88353
|
"w:commentRangeStart": commentRangeStartTranslator,
|
|
88218
|
-
"w:commentRangeEnd": commentRangeEndTranslator
|
|
88354
|
+
"w:commentRangeEnd": commentRangeEndTranslator,
|
|
88355
|
+
"w:vMerge": translator$p,
|
|
88356
|
+
"w:gridSpan": translator$q,
|
|
88357
|
+
"w:vAlign": translator$h,
|
|
88358
|
+
"w:noWrap": translator$l,
|
|
88359
|
+
"w:tcFitText": translator$i,
|
|
88360
|
+
"w:tcW": translator$r,
|
|
88361
|
+
"w:hideMark": translator$g,
|
|
88362
|
+
"w:textDirection": translator$j,
|
|
88363
|
+
"w:tl2br": translator$o,
|
|
88364
|
+
"w:tr2bl": translator$n,
|
|
88365
|
+
"w:header": translator$f,
|
|
88366
|
+
"w:headers": translator$e,
|
|
88367
|
+
"w:tcBorders": translator$m,
|
|
88368
|
+
"w:tcMar": translator$k,
|
|
88369
|
+
"w:tcPr": translator$d
|
|
88219
88370
|
});
|
|
88220
88371
|
const baseHandlers = {
|
|
88221
88372
|
...runPropertyTranslators,
|