docxmlater 9.5.38 → 9.6.0
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/core/Document.d.ts +13 -82
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +89 -1696
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts +5 -1
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts +5 -1
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +6 -1
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +462 -45
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts +5 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/ListNormalizer.d.ts.map +1 -1
- package/dist/core/ListNormalizer.js +3 -5
- package/dist/core/ListNormalizer.js.map +1 -1
- package/dist/elements/AlternateContent.d.ts +9 -0
- package/dist/elements/AlternateContent.d.ts.map +1 -0
- package/dist/elements/AlternateContent.js +23 -0
- package/dist/elements/AlternateContent.js.map +1 -0
- package/dist/elements/CustomXml.d.ts +9 -0
- package/dist/elements/CustomXml.d.ts.map +1 -0
- package/dist/elements/CustomXml.js +23 -0
- package/dist/elements/CustomXml.js.map +1 -0
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +3 -2
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts +3 -1
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Image.d.ts +9 -0
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +39 -17
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +2 -1
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/MathElement.d.ts +16 -0
- package/dist/elements/MathElement.d.ts.map +1 -0
- package/dist/elements/MathElement.js +42 -0
- package/dist/elements/MathElement.js.map +1 -0
- package/dist/elements/Paragraph.d.ts +5 -3
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +4 -0
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.d.ts +14 -0
- package/dist/elements/PreservedElement.d.ts.map +1 -0
- package/dist/elements/PreservedElement.js +33 -0
- package/dist/elements/PreservedElement.js.map +1 -0
- package/dist/elements/Run.d.ts +18 -1
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +137 -10
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts +23 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +82 -3
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts +4 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js +16 -1
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/Table.d.ts +4 -0
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +14 -0
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableRow.d.ts +11 -0
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +40 -0
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts +1 -0
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +26 -1
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +2 -1
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.d.ts.map +1 -1
- package/dist/helpers/CleanupHelper.js +40 -6
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/index.d.ts +59 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +220 -209
- package/dist/index.js.map +1 -1
- package/dist/ms-doc/converter/DocToDocxConverter.js.map +1 -1
- package/dist/ms-doc/properties/SPRM.d.ts.map +1 -1
- package/dist/ms-doc/properties/SPRM.js +2 -1
- package/dist/ms-doc/properties/SPRM.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts +7 -7
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +4 -3
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts +14 -9
- package/dist/tracking/TrackingContext.d.ts.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/corruptionDetection.d.ts +5 -1
- package/dist/utils/corruptionDetection.d.ts.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +4 -4
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/formatting.d.ts +2 -2
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +1 -1
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/units.d.ts +3 -0
- package/dist/utils/units.d.ts.map +1 -1
- package/dist/utils/units.js +9 -0
- package/dist/utils/units.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.d.ts +3 -1
- package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/ValidationRules.d.ts +2 -2
- package/dist/validation/ValidationRules.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.d.ts +3 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/zip/ZipReader.d.ts.map +1 -1
- package/dist/zip/ZipReader.js +4 -2
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/BaseManager.d.ts +0 -21
- package/dist/core/BaseManager.d.ts.map +0 -1
- package/dist/core/BaseManager.js +0 -86
- package/dist/core/BaseManager.js.map +0 -1
|
@@ -34,8 +34,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DocumentParser = void 0;
|
|
37
|
+
const AlternateContent_1 = require("../elements/AlternateContent");
|
|
37
38
|
const Bookmark_1 = require("../elements/Bookmark");
|
|
38
39
|
const Comment_1 = require("../elements/Comment");
|
|
40
|
+
const CustomXml_1 = require("../elements/CustomXml");
|
|
41
|
+
const PreservedElement_1 = require("../elements/PreservedElement");
|
|
42
|
+
const MathElement_1 = require("../elements/MathElement");
|
|
39
43
|
const Field_1 = require("../elements/Field");
|
|
40
44
|
const FieldHelpers_1 = require("../elements/FieldHelpers");
|
|
41
45
|
const Footer_1 = require("../elements/Footer");
|
|
@@ -58,6 +62,7 @@ const Style_1 = require("../formatting/Style");
|
|
|
58
62
|
const diagnostics_1 = require("../utils/diagnostics");
|
|
59
63
|
const logger_1 = require("../utils/logger");
|
|
60
64
|
const parsingHelpers_1 = require("../utils/parsingHelpers");
|
|
65
|
+
const units_1 = require("../utils/units");
|
|
61
66
|
function getLogger() {
|
|
62
67
|
return (0, logger_1.createScopedLogger)((0, logger_1.getGlobalLogger)(), 'DocumentParser');
|
|
63
68
|
}
|
|
@@ -139,6 +144,10 @@ class DocumentParser {
|
|
|
139
144
|
const nextP = this.findNextTopLevelTag(bodyContent, "w:p", pos);
|
|
140
145
|
const nextTbl = this.findNextTopLevelTag(bodyContent, "w:tbl", pos);
|
|
141
146
|
const nextSdt = this.findNextTopLevelTag(bodyContent, "w:sdt", pos);
|
|
147
|
+
const nextAC = this.findNextTopLevelTag(bodyContent, "mc:AlternateContent", pos);
|
|
148
|
+
const nextMath = this.findNextTopLevelTag(bodyContent, "m:oMathPara", pos);
|
|
149
|
+
const nextCXml = this.findNextTopLevelTag(bodyContent, "w:customXml", pos);
|
|
150
|
+
const nextAltChunk = this.findNextTopLevelTag(bodyContent, "w:altChunk", pos);
|
|
142
151
|
const candidates = [];
|
|
143
152
|
if (nextP !== -1)
|
|
144
153
|
candidates.push({ type: "p", pos: nextP });
|
|
@@ -146,6 +155,14 @@ class DocumentParser {
|
|
|
146
155
|
candidates.push({ type: "tbl", pos: nextTbl });
|
|
147
156
|
if (nextSdt !== -1)
|
|
148
157
|
candidates.push({ type: "sdt", pos: nextSdt });
|
|
158
|
+
if (nextAC !== -1)
|
|
159
|
+
candidates.push({ type: "alternateContent", pos: nextAC });
|
|
160
|
+
if (nextMath !== -1)
|
|
161
|
+
candidates.push({ type: "mathParagraph", pos: nextMath });
|
|
162
|
+
if (nextCXml !== -1)
|
|
163
|
+
candidates.push({ type: "customXml", pos: nextCXml });
|
|
164
|
+
if (nextAltChunk !== -1)
|
|
165
|
+
candidates.push({ type: "altChunk", pos: nextAltChunk });
|
|
149
166
|
if (candidates.length === 0)
|
|
150
167
|
break;
|
|
151
168
|
candidates.sort((a, b) => a.pos - b.pos);
|
|
@@ -231,6 +248,46 @@ class DocumentParser {
|
|
|
231
248
|
pos = next.pos + 1;
|
|
232
249
|
}
|
|
233
250
|
}
|
|
251
|
+
else if (next.type === "alternateContent") {
|
|
252
|
+
const elementXml = this.extractSingleElement(bodyContent, "mc:AlternateContent", next.pos);
|
|
253
|
+
if (elementXml) {
|
|
254
|
+
bodyElements.push(new AlternateContent_1.AlternateContent(elementXml));
|
|
255
|
+
pos = next.pos + elementXml.length;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
pos = next.pos + 1;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else if (next.type === "mathParagraph") {
|
|
262
|
+
const elementXml = this.extractSingleElement(bodyContent, "m:oMathPara", next.pos);
|
|
263
|
+
if (elementXml) {
|
|
264
|
+
bodyElements.push(new MathElement_1.MathParagraph(elementXml));
|
|
265
|
+
pos = next.pos + elementXml.length;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
pos = next.pos + 1;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else if (next.type === "customXml") {
|
|
272
|
+
const elementXml = this.extractSingleElement(bodyContent, "w:customXml", next.pos);
|
|
273
|
+
if (elementXml) {
|
|
274
|
+
bodyElements.push(new CustomXml_1.CustomXmlBlock(elementXml));
|
|
275
|
+
pos = next.pos + elementXml.length;
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
pos = next.pos + 1;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else if (next.type === "altChunk") {
|
|
282
|
+
const elementXml = this.extractSingleElement(bodyContent, "w:altChunk", next.pos);
|
|
283
|
+
if (elementXml) {
|
|
284
|
+
bodyElements.push(new PreservedElement_1.PreservedElement(elementXml, 'altChunk', 'block'));
|
|
285
|
+
pos = next.pos + elementXml.length;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
pos = next.pos + 1;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
234
291
|
}
|
|
235
292
|
}
|
|
236
293
|
if (bodyElements.length > 0 && pos < bodyContent.length) {
|
|
@@ -526,6 +583,11 @@ class DocumentParser {
|
|
|
526
583
|
let moveToIndex = 0;
|
|
527
584
|
let bookmarkStartIndex = 0;
|
|
528
585
|
let bookmarkEndIndex = 0;
|
|
586
|
+
let proofErrIndex = 0;
|
|
587
|
+
let permStartIndex = 0;
|
|
588
|
+
let permEndIndex = 0;
|
|
589
|
+
let oMathIndex = 0;
|
|
590
|
+
let rubyIndex = 0;
|
|
529
591
|
const findClosingTagEnd = (content, tagName, startPos) => {
|
|
530
592
|
const closingTag = `</${tagName}>`;
|
|
531
593
|
const closingPos = content.indexOf(closingTag, startPos);
|
|
@@ -615,6 +677,46 @@ class DocumentParser {
|
|
|
615
677
|
});
|
|
616
678
|
searchPos = tagEnd + 1;
|
|
617
679
|
}
|
|
680
|
+
else if (tagName === "w:proofErr") {
|
|
681
|
+
children.push({
|
|
682
|
+
type: "w:proofErr",
|
|
683
|
+
pos: tagStart,
|
|
684
|
+
index: proofErrIndex++,
|
|
685
|
+
});
|
|
686
|
+
searchPos = tagEnd + 1;
|
|
687
|
+
}
|
|
688
|
+
else if (tagName === "w:permStart") {
|
|
689
|
+
children.push({
|
|
690
|
+
type: "w:permStart",
|
|
691
|
+
pos: tagStart,
|
|
692
|
+
index: permStartIndex++,
|
|
693
|
+
});
|
|
694
|
+
searchPos = tagEnd + 1;
|
|
695
|
+
}
|
|
696
|
+
else if (tagName === "w:permEnd") {
|
|
697
|
+
children.push({
|
|
698
|
+
type: "w:permEnd",
|
|
699
|
+
pos: tagStart,
|
|
700
|
+
index: permEndIndex++,
|
|
701
|
+
});
|
|
702
|
+
searchPos = tagEnd + 1;
|
|
703
|
+
}
|
|
704
|
+
else if (tagName === "m:oMath") {
|
|
705
|
+
children.push({
|
|
706
|
+
type: "m:oMath",
|
|
707
|
+
pos: tagStart,
|
|
708
|
+
index: oMathIndex++,
|
|
709
|
+
});
|
|
710
|
+
searchPos = selfClosing ? tagEnd + 1 : findClosingTagEnd(paraContent, "m:oMath", tagEnd);
|
|
711
|
+
}
|
|
712
|
+
else if (tagName === "w:ruby") {
|
|
713
|
+
children.push({
|
|
714
|
+
type: "w:ruby",
|
|
715
|
+
pos: tagStart,
|
|
716
|
+
index: rubyIndex++,
|
|
717
|
+
});
|
|
718
|
+
searchPos = selfClosing ? tagEnd + 1 : findClosingTagEnd(paraContent, "w:ruby", tagEnd);
|
|
719
|
+
}
|
|
618
720
|
else {
|
|
619
721
|
searchPos = tagEnd + 1;
|
|
620
722
|
}
|
|
@@ -676,6 +778,17 @@ class DocumentParser {
|
|
|
676
778
|
}
|
|
677
779
|
}
|
|
678
780
|
}
|
|
781
|
+
else if (runObj["w:object"]) {
|
|
782
|
+
const runXml = extractRunXmlAtPosition(child.pos);
|
|
783
|
+
if (runXml) {
|
|
784
|
+
const objectXmls = XMLParser_1.XMLParser.extractElements(runXml, "w:object");
|
|
785
|
+
if (objectXmls.length > 0 && objectXmls[0]) {
|
|
786
|
+
const run = Run_1.Run.createFromContent([{ type: "embeddedObject", rawXml: objectXmls[0] }]);
|
|
787
|
+
this.parseRunPropertiesFromObject(runObj["w:rPr"], run);
|
|
788
|
+
paragraph.addRun(run);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
679
792
|
else {
|
|
680
793
|
const run = this.parseRunFromObject(runObj);
|
|
681
794
|
if (run) {
|
|
@@ -808,6 +921,19 @@ class DocumentParser {
|
|
|
808
921
|
}
|
|
809
922
|
}
|
|
810
923
|
}
|
|
924
|
+
else if (child.type === "w:proofErr" || child.type === "w:permStart" || child.type === "w:permEnd") {
|
|
925
|
+
const selfCloseEnd = paraContent.indexOf(">", child.pos);
|
|
926
|
+
if (selfCloseEnd !== -1) {
|
|
927
|
+
const rawXml = paraContent.substring(child.pos, selfCloseEnd + 1);
|
|
928
|
+
paragraph.addContent(new PreservedElement_1.PreservedElement(rawXml, child.type, 'inline'));
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
else if (child.type === "m:oMath" || child.type === "w:ruby") {
|
|
932
|
+
const elementXml = this.extractSingleElement(paraContent, child.type, child.pos);
|
|
933
|
+
if (elementXml) {
|
|
934
|
+
paragraph.addContent(new PreservedElement_1.PreservedElement(elementXml, child.type, 'inline'));
|
|
935
|
+
}
|
|
936
|
+
}
|
|
811
937
|
}
|
|
812
938
|
}
|
|
813
939
|
async parseRevisionFromXml(revisionXml, tagName, relationshipManager, zipHandler, imageManager) {
|
|
@@ -2284,6 +2410,70 @@ class DocumentParser {
|
|
|
2284
2410
|
case "w:noBreakHyphen":
|
|
2285
2411
|
content.push({ type: "noBreakHyphen" });
|
|
2286
2412
|
break;
|
|
2413
|
+
case "w:lastRenderedPageBreak":
|
|
2414
|
+
content.push({ type: "lastRenderedPageBreak" });
|
|
2415
|
+
break;
|
|
2416
|
+
case "w:separator":
|
|
2417
|
+
content.push({ type: "separator" });
|
|
2418
|
+
break;
|
|
2419
|
+
case "w:continuationSeparator":
|
|
2420
|
+
content.push({ type: "continuationSeparator" });
|
|
2421
|
+
break;
|
|
2422
|
+
case "w:pgNum":
|
|
2423
|
+
content.push({ type: "pageNumber" });
|
|
2424
|
+
break;
|
|
2425
|
+
case "w:annotationRef":
|
|
2426
|
+
content.push({ type: "annotationRef" });
|
|
2427
|
+
break;
|
|
2428
|
+
case "w:dayShort":
|
|
2429
|
+
content.push({ type: "dayShort" });
|
|
2430
|
+
break;
|
|
2431
|
+
case "w:dayLong":
|
|
2432
|
+
content.push({ type: "dayLong" });
|
|
2433
|
+
break;
|
|
2434
|
+
case "w:monthShort":
|
|
2435
|
+
content.push({ type: "monthShort" });
|
|
2436
|
+
break;
|
|
2437
|
+
case "w:monthLong":
|
|
2438
|
+
content.push({ type: "monthLong" });
|
|
2439
|
+
break;
|
|
2440
|
+
case "w:yearShort":
|
|
2441
|
+
content.push({ type: "yearShort" });
|
|
2442
|
+
break;
|
|
2443
|
+
case "w:yearLong":
|
|
2444
|
+
content.push({ type: "yearLong" });
|
|
2445
|
+
break;
|
|
2446
|
+
case "w:sym": {
|
|
2447
|
+
const symElements = toArray(runObj["w:sym"]);
|
|
2448
|
+
const sym = symElements[elementIndex] || symElements[0];
|
|
2449
|
+
if (sym && typeof sym === "object") {
|
|
2450
|
+
content.push({
|
|
2451
|
+
type: "symbol",
|
|
2452
|
+
symbolFont: sym["@_w:font"],
|
|
2453
|
+
symbolChar: sym["@_w:char"],
|
|
2454
|
+
});
|
|
2455
|
+
}
|
|
2456
|
+
else {
|
|
2457
|
+
content.push({ type: "symbol" });
|
|
2458
|
+
}
|
|
2459
|
+
break;
|
|
2460
|
+
}
|
|
2461
|
+
case "w:ptab": {
|
|
2462
|
+
const ptabElements = toArray(runObj["w:ptab"]);
|
|
2463
|
+
const ptab = ptabElements[elementIndex] || ptabElements[0];
|
|
2464
|
+
if (ptab && typeof ptab === "object") {
|
|
2465
|
+
content.push({
|
|
2466
|
+
type: "positionTab",
|
|
2467
|
+
ptabAlignment: ptab["@_w:alignment"],
|
|
2468
|
+
ptabRelativeTo: ptab["@_w:relativeTo"],
|
|
2469
|
+
ptabLeader: ptab["@_w:leader"],
|
|
2470
|
+
});
|
|
2471
|
+
}
|
|
2472
|
+
else {
|
|
2473
|
+
content.push({ type: "positionTab" });
|
|
2474
|
+
}
|
|
2475
|
+
break;
|
|
2476
|
+
}
|
|
2287
2477
|
case "w:rPr":
|
|
2288
2478
|
break;
|
|
2289
2479
|
}
|
|
@@ -2362,6 +2552,70 @@ class DocumentParser {
|
|
|
2362
2552
|
if (runObj["w:noBreakHyphen"] !== undefined) {
|
|
2363
2553
|
content.push({ type: "noBreakHyphen" });
|
|
2364
2554
|
}
|
|
2555
|
+
if (runObj["w:lastRenderedPageBreak"] !== undefined) {
|
|
2556
|
+
content.push({ type: "lastRenderedPageBreak" });
|
|
2557
|
+
}
|
|
2558
|
+
if (runObj["w:separator"] !== undefined) {
|
|
2559
|
+
content.push({ type: "separator" });
|
|
2560
|
+
}
|
|
2561
|
+
if (runObj["w:continuationSeparator"] !== undefined) {
|
|
2562
|
+
content.push({ type: "continuationSeparator" });
|
|
2563
|
+
}
|
|
2564
|
+
if (runObj["w:pgNum"] !== undefined) {
|
|
2565
|
+
content.push({ type: "pageNumber" });
|
|
2566
|
+
}
|
|
2567
|
+
if (runObj["w:annotationRef"] !== undefined) {
|
|
2568
|
+
content.push({ type: "annotationRef" });
|
|
2569
|
+
}
|
|
2570
|
+
if (runObj["w:dayShort"] !== undefined) {
|
|
2571
|
+
content.push({ type: "dayShort" });
|
|
2572
|
+
}
|
|
2573
|
+
if (runObj["w:dayLong"] !== undefined) {
|
|
2574
|
+
content.push({ type: "dayLong" });
|
|
2575
|
+
}
|
|
2576
|
+
if (runObj["w:monthShort"] !== undefined) {
|
|
2577
|
+
content.push({ type: "monthShort" });
|
|
2578
|
+
}
|
|
2579
|
+
if (runObj["w:monthLong"] !== undefined) {
|
|
2580
|
+
content.push({ type: "monthLong" });
|
|
2581
|
+
}
|
|
2582
|
+
if (runObj["w:yearShort"] !== undefined) {
|
|
2583
|
+
content.push({ type: "yearShort" });
|
|
2584
|
+
}
|
|
2585
|
+
if (runObj["w:yearLong"] !== undefined) {
|
|
2586
|
+
content.push({ type: "yearLong" });
|
|
2587
|
+
}
|
|
2588
|
+
if (runObj["w:sym"] !== undefined) {
|
|
2589
|
+
const symElements = toArray(runObj["w:sym"]);
|
|
2590
|
+
for (const sym of symElements) {
|
|
2591
|
+
if (sym && typeof sym === "object") {
|
|
2592
|
+
content.push({
|
|
2593
|
+
type: "symbol",
|
|
2594
|
+
symbolFont: sym["@_w:font"],
|
|
2595
|
+
symbolChar: sym["@_w:char"],
|
|
2596
|
+
});
|
|
2597
|
+
}
|
|
2598
|
+
else {
|
|
2599
|
+
content.push({ type: "symbol" });
|
|
2600
|
+
}
|
|
2601
|
+
}
|
|
2602
|
+
}
|
|
2603
|
+
if (runObj["w:ptab"] !== undefined) {
|
|
2604
|
+
const ptabElements = toArray(runObj["w:ptab"]);
|
|
2605
|
+
for (const ptab of ptabElements) {
|
|
2606
|
+
if (ptab && typeof ptab === "object") {
|
|
2607
|
+
content.push({
|
|
2608
|
+
type: "positionTab",
|
|
2609
|
+
ptabAlignment: ptab["@_w:alignment"],
|
|
2610
|
+
ptabRelativeTo: ptab["@_w:relativeTo"],
|
|
2611
|
+
ptabLeader: ptab["@_w:leader"],
|
|
2612
|
+
});
|
|
2613
|
+
}
|
|
2614
|
+
else {
|
|
2615
|
+
content.push({ type: "positionTab" });
|
|
2616
|
+
}
|
|
2617
|
+
}
|
|
2618
|
+
}
|
|
2365
2619
|
}
|
|
2366
2620
|
const run = Run_1.Run.createFromContent(content, { cleanXmlFromText: false });
|
|
2367
2621
|
this.parseRunPropertiesFromObject(runObj["w:rPr"], run);
|
|
@@ -2721,6 +2975,10 @@ class DocumentParser {
|
|
|
2721
2975
|
run.setSmallCaps(true);
|
|
2722
2976
|
if ((0, parsingHelpers_1.parseOoxmlBoolean)(rPrObj["w:caps"]))
|
|
2723
2977
|
run.setAllCaps(true);
|
|
2978
|
+
if ((0, parsingHelpers_1.parseOoxmlBoolean)(rPrObj["w:cs"]))
|
|
2979
|
+
run.setComplexScript(true);
|
|
2980
|
+
if ((0, parsingHelpers_1.parseOoxmlBoolean)(rPrObj["w:webHidden"]))
|
|
2981
|
+
run.setWebHidden(true);
|
|
2724
2982
|
if (rPrObj["w:u"]) {
|
|
2725
2983
|
const uVal = rPrObj["w:u"]["@_w:val"];
|
|
2726
2984
|
run.setUnderline(uVal || true);
|
|
@@ -2785,14 +3043,24 @@ class DocumentParser {
|
|
|
2785
3043
|
run.setSuperscript(true);
|
|
2786
3044
|
}
|
|
2787
3045
|
if (rPrObj["w:rFonts"]) {
|
|
2788
|
-
|
|
3046
|
+
const rFonts = rPrObj["w:rFonts"];
|
|
3047
|
+
if (rFonts["@_w:ascii"])
|
|
3048
|
+
run.setFont(rFonts["@_w:ascii"]);
|
|
3049
|
+
if (rFonts["@_w:hAnsi"])
|
|
3050
|
+
run.setFontHAnsi(rFonts["@_w:hAnsi"]);
|
|
3051
|
+
if (rFonts["@_w:eastAsia"])
|
|
3052
|
+
run.setFontEastAsia(rFonts["@_w:eastAsia"]);
|
|
3053
|
+
if (rFonts["@_w:cs"])
|
|
3054
|
+
run.setFontCs(rFonts["@_w:cs"]);
|
|
3055
|
+
if (rFonts["@_w:hint"])
|
|
3056
|
+
run.setFontHint(rFonts["@_w:hint"]);
|
|
2789
3057
|
}
|
|
2790
3058
|
if (rPrObj["w:sz"]) {
|
|
2791
|
-
run.setSize(parseInt(rPrObj["w:sz"]["@_w:val"], 10)
|
|
3059
|
+
run.setSize((0, units_1.halfPointsToPoints)(parseInt(rPrObj["w:sz"]["@_w:val"], 10)));
|
|
2792
3060
|
}
|
|
2793
3061
|
if (rPrObj["w:szCs"]) {
|
|
2794
|
-
const szCsVal = parseInt(rPrObj["w:szCs"]["@_w:val"], 10)
|
|
2795
|
-
const sizeVal = rPrObj["w:sz"] ? parseInt(rPrObj["w:sz"]["@_w:val"], 10)
|
|
3062
|
+
const szCsVal = (0, units_1.halfPointsToPoints)(parseInt(rPrObj["w:szCs"]["@_w:val"], 10));
|
|
3063
|
+
const sizeVal = rPrObj["w:sz"] ? (0, units_1.halfPointsToPoints)(parseInt(rPrObj["w:sz"]["@_w:val"], 10)) : undefined;
|
|
2796
3064
|
if (sizeVal === undefined || szCsVal !== sizeVal) {
|
|
2797
3065
|
run.setSizeCs(szCsVal);
|
|
2798
3066
|
}
|
|
@@ -2844,10 +3112,10 @@ class DocumentParser {
|
|
|
2844
3112
|
prevProps.font = prevRPr["w:rFonts"]["@_w:ascii"];
|
|
2845
3113
|
}
|
|
2846
3114
|
if (prevRPr["w:sz"]) {
|
|
2847
|
-
prevProps.size = (0, parsingHelpers_1.safeParseInt)(prevRPr["w:sz"]["@_w:val"])
|
|
3115
|
+
prevProps.size = (0, units_1.halfPointsToPoints)((0, parsingHelpers_1.safeParseInt)(prevRPr["w:sz"]["@_w:val"]));
|
|
2848
3116
|
}
|
|
2849
3117
|
if (prevRPr["w:szCs"]) {
|
|
2850
|
-
const szCsVal = (0, parsingHelpers_1.safeParseInt)(prevRPr["w:szCs"]["@_w:val"])
|
|
3118
|
+
const szCsVal = (0, units_1.halfPointsToPoints)((0, parsingHelpers_1.safeParseInt)(prevRPr["w:szCs"]["@_w:val"]));
|
|
2851
3119
|
if (!prevRPr["w:sz"] || szCsVal !== prevProps.size) {
|
|
2852
3120
|
prevProps.sizeCs = szCsVal;
|
|
2853
3121
|
}
|
|
@@ -3037,10 +3305,14 @@ class DocumentParser {
|
|
|
3037
3305
|
const docPrObj = imageObj["wp:docPr"];
|
|
3038
3306
|
let name = "image";
|
|
3039
3307
|
let description = "Image";
|
|
3308
|
+
let title = undefined;
|
|
3040
3309
|
let docPrId = 1;
|
|
3041
3310
|
if (docPrObj) {
|
|
3042
3311
|
name = docPrObj["@_name"] || "image";
|
|
3043
3312
|
description = docPrObj["@_descr"] || "Image";
|
|
3313
|
+
if (docPrObj["@_title"]) {
|
|
3314
|
+
title = String(docPrObj["@_title"]);
|
|
3315
|
+
}
|
|
3044
3316
|
const idAttr = docPrObj["@_id"];
|
|
3045
3317
|
if (idAttr) {
|
|
3046
3318
|
docPrId = parseInt(String(idAttr), 10);
|
|
@@ -3057,12 +3329,23 @@ class DocumentParser {
|
|
|
3057
3329
|
let anchor = undefined;
|
|
3058
3330
|
if (isFloating && anchorObj) {
|
|
3059
3331
|
const toBool = (val) => val === "1" || val === 1 || val === true;
|
|
3332
|
+
const toOptInt = (val) => {
|
|
3333
|
+
if (val === undefined || val === null)
|
|
3334
|
+
return undefined;
|
|
3335
|
+
const n = parseInt(String(val), 10);
|
|
3336
|
+
return isNaN(n) ? undefined : n;
|
|
3337
|
+
};
|
|
3060
3338
|
anchor = {
|
|
3061
3339
|
behindDoc: toBool(anchorObj["@_behindDoc"]),
|
|
3062
3340
|
locked: toBool(anchorObj["@_locked"]),
|
|
3063
3341
|
layoutInCell: toBool(anchorObj["@_layoutInCell"]),
|
|
3064
3342
|
allowOverlap: toBool(anchorObj["@_allowOverlap"]),
|
|
3065
3343
|
relativeHeight: parseInt(anchorObj["@_relativeHeight"] || "251658240", 10),
|
|
3344
|
+
simplePos: toBool(anchorObj["@_simplePos"]),
|
|
3345
|
+
distT: toOptInt(anchorObj["@_distT"]),
|
|
3346
|
+
distB: toOptInt(anchorObj["@_distB"]),
|
|
3347
|
+
distL: toOptInt(anchorObj["@_distL"]),
|
|
3348
|
+
distR: toOptInt(anchorObj["@_distR"]),
|
|
3066
3349
|
};
|
|
3067
3350
|
}
|
|
3068
3351
|
const graphicObj = imageObj["a:graphic"];
|
|
@@ -3135,6 +3418,7 @@ class DocumentParser {
|
|
|
3135
3418
|
height,
|
|
3136
3419
|
name,
|
|
3137
3420
|
description,
|
|
3421
|
+
title,
|
|
3138
3422
|
effectExtent,
|
|
3139
3423
|
wrap,
|
|
3140
3424
|
position,
|
|
@@ -3266,6 +3550,20 @@ class DocumentParser {
|
|
|
3266
3550
|
}
|
|
3267
3551
|
return Object.keys(effects).length > 0 ? effects : undefined;
|
|
3268
3552
|
}
|
|
3553
|
+
parseBorderElement(borderObj) {
|
|
3554
|
+
if (!borderObj)
|
|
3555
|
+
return undefined;
|
|
3556
|
+
const border = {
|
|
3557
|
+
style: (borderObj["@_w:val"] || "single"),
|
|
3558
|
+
};
|
|
3559
|
+
if (borderObj["@_w:sz"])
|
|
3560
|
+
border.size = parseInt(borderObj["@_w:sz"], 10);
|
|
3561
|
+
if (borderObj["@_w:space"])
|
|
3562
|
+
border.space = parseInt(borderObj["@_w:space"], 10);
|
|
3563
|
+
if (borderObj["@_w:color"])
|
|
3564
|
+
border.color = borderObj["@_w:color"];
|
|
3565
|
+
return border;
|
|
3566
|
+
}
|
|
3269
3567
|
async parseTableFromObject(tableObj, relationshipManager, zipHandler, imageManager, rawTableXml) {
|
|
3270
3568
|
try {
|
|
3271
3569
|
const table = new Table_1.Table();
|
|
@@ -3467,6 +3765,18 @@ class DocumentParser {
|
|
|
3467
3765
|
table.setAlignment(alignment);
|
|
3468
3766
|
}
|
|
3469
3767
|
}
|
|
3768
|
+
if (tblPrObj["w:tblStyleRowBandSize"]) {
|
|
3769
|
+
const val = parseInt(tblPrObj["w:tblStyleRowBandSize"]["@_w:val"] || "0", 10);
|
|
3770
|
+
if (val > 0) {
|
|
3771
|
+
table.setStyleRowBandSize(val);
|
|
3772
|
+
}
|
|
3773
|
+
}
|
|
3774
|
+
if (tblPrObj["w:tblStyleColBandSize"]) {
|
|
3775
|
+
const val = parseInt(tblPrObj["w:tblStyleColBandSize"]["@_w:val"] || "0", 10);
|
|
3776
|
+
if (val > 0) {
|
|
3777
|
+
table.setStyleColBandSize(val);
|
|
3778
|
+
}
|
|
3779
|
+
}
|
|
3470
3780
|
if (tblPrObj["w:shd"]) {
|
|
3471
3781
|
const shd = tblPrObj["w:shd"];
|
|
3472
3782
|
const shading = {};
|
|
@@ -3483,32 +3793,18 @@ class DocumentParser {
|
|
|
3483
3793
|
if (tblPrObj["w:tblBorders"]) {
|
|
3484
3794
|
const bordersObj = tblPrObj["w:tblBorders"];
|
|
3485
3795
|
const borders = {};
|
|
3486
|
-
const parseBorder = (borderObj) => {
|
|
3487
|
-
if (!borderObj)
|
|
3488
|
-
return undefined;
|
|
3489
|
-
const border = {
|
|
3490
|
-
style: borderObj["@_w:val"] || "single",
|
|
3491
|
-
};
|
|
3492
|
-
if (borderObj["@_w:sz"])
|
|
3493
|
-
border.size = parseInt(borderObj["@_w:sz"], 10);
|
|
3494
|
-
if (borderObj["@_w:space"])
|
|
3495
|
-
border.space = parseInt(borderObj["@_w:space"], 10);
|
|
3496
|
-
if (borderObj["@_w:color"])
|
|
3497
|
-
border.color = borderObj["@_w:color"];
|
|
3498
|
-
return border;
|
|
3499
|
-
};
|
|
3500
3796
|
if (bordersObj["w:top"])
|
|
3501
|
-
borders.top =
|
|
3797
|
+
borders.top = this.parseBorderElement(bordersObj["w:top"]);
|
|
3502
3798
|
if (bordersObj["w:bottom"])
|
|
3503
|
-
borders.bottom =
|
|
3799
|
+
borders.bottom = this.parseBorderElement(bordersObj["w:bottom"]);
|
|
3504
3800
|
if (bordersObj["w:left"])
|
|
3505
|
-
borders.left =
|
|
3801
|
+
borders.left = this.parseBorderElement(bordersObj["w:left"]);
|
|
3506
3802
|
if (bordersObj["w:right"])
|
|
3507
|
-
borders.right =
|
|
3803
|
+
borders.right = this.parseBorderElement(bordersObj["w:right"]);
|
|
3508
3804
|
if (bordersObj["w:insideH"])
|
|
3509
|
-
borders.insideH =
|
|
3805
|
+
borders.insideH = this.parseBorderElement(bordersObj["w:insideH"]);
|
|
3510
3806
|
if (bordersObj["w:insideV"])
|
|
3511
|
-
borders.insideV =
|
|
3807
|
+
borders.insideV = this.parseBorderElement(bordersObj["w:insideV"]);
|
|
3512
3808
|
if (Object.keys(borders).length > 0) {
|
|
3513
3809
|
table.setBorders(borders);
|
|
3514
3810
|
}
|
|
@@ -3588,6 +3884,33 @@ class DocumentParser {
|
|
|
3588
3884
|
row.setGridAfter(val);
|
|
3589
3885
|
}
|
|
3590
3886
|
}
|
|
3887
|
+
if (trPrObj["w:wBefore"]) {
|
|
3888
|
+
const w = parseInt(trPrObj["w:wBefore"]["@_w:w"] || "0", 10);
|
|
3889
|
+
const type = trPrObj["w:wBefore"]["@_w:type"] || "dxa";
|
|
3890
|
+
if (w > 0) {
|
|
3891
|
+
row.setWBefore(w, type);
|
|
3892
|
+
}
|
|
3893
|
+
}
|
|
3894
|
+
if (trPrObj["w:wAfter"]) {
|
|
3895
|
+
const w = parseInt(trPrObj["w:wAfter"]["@_w:w"] || "0", 10);
|
|
3896
|
+
const type = trPrObj["w:wAfter"]["@_w:type"] || "dxa";
|
|
3897
|
+
if (w > 0) {
|
|
3898
|
+
row.setWAfter(w, type);
|
|
3899
|
+
}
|
|
3900
|
+
}
|
|
3901
|
+
if (trPrObj["w:tblCellSpacing"]) {
|
|
3902
|
+
const w = parseInt(trPrObj["w:tblCellSpacing"]["@_w:w"] || "0", 10);
|
|
3903
|
+
const type = trPrObj["w:tblCellSpacing"]["@_w:type"] || "dxa";
|
|
3904
|
+
if (w > 0) {
|
|
3905
|
+
row.setRowCellSpacing(w, type);
|
|
3906
|
+
}
|
|
3907
|
+
}
|
|
3908
|
+
if (trPrObj["w:cnfStyle"]) {
|
|
3909
|
+
const val = trPrObj["w:cnfStyle"]["@_w:val"];
|
|
3910
|
+
if (val) {
|
|
3911
|
+
row.setCnfStyle(val);
|
|
3912
|
+
}
|
|
3913
|
+
}
|
|
3591
3914
|
}
|
|
3592
3915
|
parseTablePropertyExceptionsFromObject(tblPrExObj) {
|
|
3593
3916
|
if (!tblPrExObj)
|
|
@@ -3682,28 +4005,14 @@ class DocumentParser {
|
|
|
3682
4005
|
if (tcPr["w:tcBorders"]) {
|
|
3683
4006
|
const bordersObj = tcPr["w:tcBorders"];
|
|
3684
4007
|
const borders = {};
|
|
3685
|
-
const parseBorder = (borderObj) => {
|
|
3686
|
-
if (!borderObj)
|
|
3687
|
-
return undefined;
|
|
3688
|
-
const border = {
|
|
3689
|
-
style: borderObj["@_w:val"] || "single",
|
|
3690
|
-
};
|
|
3691
|
-
if (borderObj["@_w:sz"])
|
|
3692
|
-
border.size = parseInt(borderObj["@_w:sz"], 10);
|
|
3693
|
-
if (borderObj["@_w:space"])
|
|
3694
|
-
border.space = parseInt(borderObj["@_w:space"], 10);
|
|
3695
|
-
if (borderObj["@_w:color"])
|
|
3696
|
-
border.color = borderObj["@_w:color"];
|
|
3697
|
-
return border;
|
|
3698
|
-
};
|
|
3699
4008
|
if (bordersObj["w:top"])
|
|
3700
|
-
borders.top =
|
|
4009
|
+
borders.top = this.parseBorderElement(bordersObj["w:top"]);
|
|
3701
4010
|
if (bordersObj["w:bottom"])
|
|
3702
|
-
borders.bottom =
|
|
4011
|
+
borders.bottom = this.parseBorderElement(bordersObj["w:bottom"]);
|
|
3703
4012
|
if (bordersObj["w:left"])
|
|
3704
|
-
borders.left =
|
|
4013
|
+
borders.left = this.parseBorderElement(bordersObj["w:left"]);
|
|
3705
4014
|
if (bordersObj["w:right"])
|
|
3706
|
-
borders.right =
|
|
4015
|
+
borders.right = this.parseBorderElement(bordersObj["w:right"]);
|
|
3707
4016
|
if (Object.keys(borders).length > 0) {
|
|
3708
4017
|
cell.setBorders(borders);
|
|
3709
4018
|
}
|
|
@@ -4792,6 +5101,14 @@ class DocumentParser {
|
|
|
4792
5101
|
start: start ? parseInt(start, 10) : undefined,
|
|
4793
5102
|
format: fmt,
|
|
4794
5103
|
};
|
|
5104
|
+
const chapStyle = XMLParser_1.XMLParser.extractAttribute(pgNumType, "w:chapStyle");
|
|
5105
|
+
if (chapStyle) {
|
|
5106
|
+
sectionProps.chapStyle = parseInt(chapStyle, 10);
|
|
5107
|
+
}
|
|
5108
|
+
const chapSep = XMLParser_1.XMLParser.extractAttribute(pgNumType, "w:chapSep");
|
|
5109
|
+
if (chapSep) {
|
|
5110
|
+
sectionProps.chapSep = chapSep;
|
|
5111
|
+
}
|
|
4795
5112
|
}
|
|
4796
5113
|
}
|
|
4797
5114
|
if (XMLParser_1.XMLParser.hasSelfClosingTag(sectPr, "w:titlePg")) {
|
|
@@ -4863,6 +5180,106 @@ class DocumentParser {
|
|
|
4863
5180
|
}
|
|
4864
5181
|
}
|
|
4865
5182
|
}
|
|
5183
|
+
if (XMLParser_1.XMLParser.hasSelfClosingTag(sectPr, "w:bidi")) {
|
|
5184
|
+
sectionProps.bidi = true;
|
|
5185
|
+
}
|
|
5186
|
+
if (XMLParser_1.XMLParser.hasSelfClosingTag(sectPr, "w:rtlGutter")) {
|
|
5187
|
+
sectionProps.rtlGutter = true;
|
|
5188
|
+
}
|
|
5189
|
+
const docGridElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:docGrid");
|
|
5190
|
+
if (docGridElements.length > 0) {
|
|
5191
|
+
const docGrid = docGridElements[0];
|
|
5192
|
+
if (docGrid) {
|
|
5193
|
+
const gridType = XMLParser_1.XMLParser.extractAttribute(docGrid, "w:type");
|
|
5194
|
+
const linePitch = XMLParser_1.XMLParser.extractAttribute(docGrid, "w:linePitch");
|
|
5195
|
+
const charSpace = XMLParser_1.XMLParser.extractAttribute(docGrid, "w:charSpace");
|
|
5196
|
+
sectionProps.docGrid = {};
|
|
5197
|
+
if (gridType)
|
|
5198
|
+
sectionProps.docGrid.type = gridType;
|
|
5199
|
+
if (linePitch)
|
|
5200
|
+
sectionProps.docGrid.linePitch = parseInt(linePitch, 10);
|
|
5201
|
+
if (charSpace)
|
|
5202
|
+
sectionProps.docGrid.charSpace = parseInt(charSpace, 10);
|
|
5203
|
+
}
|
|
5204
|
+
}
|
|
5205
|
+
const lnNumElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:lnNumType");
|
|
5206
|
+
if (lnNumElements.length > 0) {
|
|
5207
|
+
const lnNum = lnNumElements[0];
|
|
5208
|
+
if (lnNum) {
|
|
5209
|
+
const countBy = XMLParser_1.XMLParser.extractAttribute(lnNum, "w:countBy");
|
|
5210
|
+
const start = XMLParser_1.XMLParser.extractAttribute(lnNum, "w:start");
|
|
5211
|
+
const distance = XMLParser_1.XMLParser.extractAttribute(lnNum, "w:distance");
|
|
5212
|
+
const restart = XMLParser_1.XMLParser.extractAttribute(lnNum, "w:restart");
|
|
5213
|
+
sectionProps.lineNumbering = {};
|
|
5214
|
+
if (countBy)
|
|
5215
|
+
sectionProps.lineNumbering.countBy = parseInt(countBy, 10);
|
|
5216
|
+
if (start)
|
|
5217
|
+
sectionProps.lineNumbering.start = parseInt(start, 10);
|
|
5218
|
+
if (distance)
|
|
5219
|
+
sectionProps.lineNumbering.distance = parseInt(distance, 10);
|
|
5220
|
+
if (restart)
|
|
5221
|
+
sectionProps.lineNumbering.restart = restart;
|
|
5222
|
+
}
|
|
5223
|
+
}
|
|
5224
|
+
const extractChildAttr = (parentXml, childTag, attr) => {
|
|
5225
|
+
const els = XMLParser_1.XMLParser.extractElements(parentXml, childTag);
|
|
5226
|
+
if (els.length > 0 && els[0])
|
|
5227
|
+
return XMLParser_1.XMLParser.extractAttribute(els[0], attr);
|
|
5228
|
+
return undefined;
|
|
5229
|
+
};
|
|
5230
|
+
const footnotePrElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:footnotePr");
|
|
5231
|
+
if (footnotePrElements.length > 0 && footnotePrElements[0]) {
|
|
5232
|
+
const fnPr = footnotePrElements[0];
|
|
5233
|
+
const props = {};
|
|
5234
|
+
const pos = extractChildAttr(fnPr, "w:pos", "w:val");
|
|
5235
|
+
if (pos)
|
|
5236
|
+
props.position = pos;
|
|
5237
|
+
const fmt = extractChildAttr(fnPr, "w:numFmt", "w:val");
|
|
5238
|
+
if (fmt)
|
|
5239
|
+
props.numberFormat = fmt;
|
|
5240
|
+
const startVal = extractChildAttr(fnPr, "w:numStart", "w:val");
|
|
5241
|
+
if (startVal)
|
|
5242
|
+
props.startNumber = parseInt(startVal, 10);
|
|
5243
|
+
const restart = extractChildAttr(fnPr, "w:numRestart", "w:val");
|
|
5244
|
+
if (restart)
|
|
5245
|
+
props.restart = restart;
|
|
5246
|
+
if (Object.keys(props).length > 0)
|
|
5247
|
+
sectionProps.footnotePr = props;
|
|
5248
|
+
}
|
|
5249
|
+
const endnotePrElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:endnotePr");
|
|
5250
|
+
if (endnotePrElements.length > 0 && endnotePrElements[0]) {
|
|
5251
|
+
const enPr = endnotePrElements[0];
|
|
5252
|
+
const props = {};
|
|
5253
|
+
const pos = extractChildAttr(enPr, "w:pos", "w:val");
|
|
5254
|
+
if (pos)
|
|
5255
|
+
props.position = pos;
|
|
5256
|
+
const fmt = extractChildAttr(enPr, "w:numFmt", "w:val");
|
|
5257
|
+
if (fmt)
|
|
5258
|
+
props.numberFormat = fmt;
|
|
5259
|
+
const startVal = extractChildAttr(enPr, "w:numStart", "w:val");
|
|
5260
|
+
if (startVal)
|
|
5261
|
+
props.startNumber = parseInt(startVal, 10);
|
|
5262
|
+
const restart = extractChildAttr(enPr, "w:numRestart", "w:val");
|
|
5263
|
+
if (restart)
|
|
5264
|
+
props.restart = restart;
|
|
5265
|
+
if (Object.keys(props).length > 0)
|
|
5266
|
+
sectionProps.endnotePr = props;
|
|
5267
|
+
}
|
|
5268
|
+
if (XMLParser_1.XMLParser.hasSelfClosingTag(sectPr, "w:noEndnote")) {
|
|
5269
|
+
sectionProps.noEndnote = true;
|
|
5270
|
+
}
|
|
5271
|
+
if (XMLParser_1.XMLParser.hasSelfClosingTag(sectPr, "w:formProt")) {
|
|
5272
|
+
sectionProps.formProt = true;
|
|
5273
|
+
}
|
|
5274
|
+
const printerElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:printerSettings");
|
|
5275
|
+
if (printerElements.length > 0) {
|
|
5276
|
+
const printer = printerElements[0];
|
|
5277
|
+
if (printer) {
|
|
5278
|
+
const rId = XMLParser_1.XMLParser.extractAttribute(printer, "r:id");
|
|
5279
|
+
if (rId)
|
|
5280
|
+
sectionProps.printerSettingsId = rId;
|
|
5281
|
+
}
|
|
5282
|
+
}
|
|
4866
5283
|
return new Section_1.Section(sectionProps);
|
|
4867
5284
|
}
|
|
4868
5285
|
catch (error) {
|
|
@@ -5118,7 +5535,7 @@ class DocumentParser {
|
|
|
5118
5535
|
if (szElement) {
|
|
5119
5536
|
const val = XMLParser_1.XMLParser.extractAttribute(`<w:sz${szElement}`, "w:val");
|
|
5120
5537
|
if (val) {
|
|
5121
|
-
formatting.size = parseInt(val, 10)
|
|
5538
|
+
formatting.size = (0, units_1.halfPointsToPoints)(parseInt(val, 10));
|
|
5122
5539
|
}
|
|
5123
5540
|
}
|
|
5124
5541
|
const colorElement = XMLParser_1.XMLParser.extractSelfClosingTag(rPrXml, "w:color");
|