docxmlater 7.7.6 → 7.7.8
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 +1 -0
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +24 -0
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +2 -0
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +86 -0
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts +1 -0
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js +3 -0
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +1 -1
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/package.json +1 -1
|
@@ -40,6 +40,8 @@ export declare class DocumentParser {
|
|
|
40
40
|
private parseParagraphWithOrder;
|
|
41
41
|
private parseOrderedParagraphChildren;
|
|
42
42
|
private parseRevisionFromXml;
|
|
43
|
+
private parseBookmarkStart;
|
|
44
|
+
private parseBookmarkEnd;
|
|
43
45
|
private parseParagraphFromObject;
|
|
44
46
|
private parseParagraphPropertiesFromObject;
|
|
45
47
|
private assembleComplexFields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DocumentParser = void 0;
|
|
37
|
+
const Bookmark_1 = require("../elements/Bookmark");
|
|
37
38
|
const Field_1 = require("../elements/Field");
|
|
38
39
|
const FieldHelpers_1 = require("../elements/FieldHelpers");
|
|
39
40
|
const Footer_1 = require("../elements/Footer");
|
|
@@ -344,6 +345,8 @@ class DocumentParser {
|
|
|
344
345
|
let delIndex = 0;
|
|
345
346
|
let moveFromIndex = 0;
|
|
346
347
|
let moveToIndex = 0;
|
|
348
|
+
let bookmarkStartIndex = 0;
|
|
349
|
+
let bookmarkEndIndex = 0;
|
|
347
350
|
const findClosingTagEnd = (content, tagName, startPos) => {
|
|
348
351
|
const closingTag = `</${tagName}>`;
|
|
349
352
|
const closingPos = content.indexOf(closingTag, startPos);
|
|
@@ -417,6 +420,22 @@ class DocumentParser {
|
|
|
417
420
|
});
|
|
418
421
|
searchPos = selfClosing ? tagEnd + 1 : findClosingTagEnd(paraContent, "w:moveTo", tagEnd);
|
|
419
422
|
}
|
|
423
|
+
else if (tagName === "w:bookmarkStart") {
|
|
424
|
+
children.push({
|
|
425
|
+
type: "w:bookmarkStart",
|
|
426
|
+
pos: tagStart,
|
|
427
|
+
index: bookmarkStartIndex++,
|
|
428
|
+
});
|
|
429
|
+
searchPos = tagEnd + 1;
|
|
430
|
+
}
|
|
431
|
+
else if (tagName === "w:bookmarkEnd") {
|
|
432
|
+
children.push({
|
|
433
|
+
type: "w:bookmarkEnd",
|
|
434
|
+
pos: tagStart,
|
|
435
|
+
index: bookmarkEndIndex++,
|
|
436
|
+
});
|
|
437
|
+
searchPos = tagEnd + 1;
|
|
438
|
+
}
|
|
420
439
|
else {
|
|
421
440
|
searchPos = tagEnd + 1;
|
|
422
441
|
}
|
|
@@ -425,6 +444,8 @@ class DocumentParser {
|
|
|
425
444
|
const delXmls = XMLParser_1.XMLParser.extractElements(paraContent, "w:del");
|
|
426
445
|
const moveFromXmls = XMLParser_1.XMLParser.extractElements(paraContent, "w:moveFrom");
|
|
427
446
|
const moveToXmls = XMLParser_1.XMLParser.extractElements(paraContent, "w:moveTo");
|
|
447
|
+
const bookmarkStartXmls = XMLParser_1.XMLParser.extractElements(paraContent, "w:bookmarkStart");
|
|
448
|
+
const bookmarkEndXmls = XMLParser_1.XMLParser.extractElements(paraContent, "w:bookmarkEnd");
|
|
428
449
|
const extractRunXmlAtPosition = (pos) => {
|
|
429
450
|
const closeTag = "</w:r>";
|
|
430
451
|
let depth = 1;
|
|
@@ -556,6 +577,28 @@ class DocumentParser {
|
|
|
556
577
|
}
|
|
557
578
|
}
|
|
558
579
|
}
|
|
580
|
+
else if (child.type === "w:bookmarkStart") {
|
|
581
|
+
if (child.index < bookmarkStartXmls.length) {
|
|
582
|
+
const bookmarkXml = bookmarkStartXmls[child.index];
|
|
583
|
+
if (bookmarkXml) {
|
|
584
|
+
const bookmark = this.parseBookmarkStart(bookmarkXml);
|
|
585
|
+
if (bookmark) {
|
|
586
|
+
paragraph.addBookmarkStart(bookmark);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
else if (child.type === "w:bookmarkEnd") {
|
|
592
|
+
if (child.index < bookmarkEndXmls.length) {
|
|
593
|
+
const bookmarkXml = bookmarkEndXmls[child.index];
|
|
594
|
+
if (bookmarkXml) {
|
|
595
|
+
const bookmark = this.parseBookmarkEnd(bookmarkXml);
|
|
596
|
+
if (bookmark) {
|
|
597
|
+
paragraph.addBookmarkEnd(bookmark);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
559
602
|
}
|
|
560
603
|
}
|
|
561
604
|
async parseRevisionFromXml(revisionXml, tagName, relationshipManager, zipHandler, imageManager) {
|
|
@@ -634,6 +677,49 @@ class DocumentParser {
|
|
|
634
677
|
return null;
|
|
635
678
|
}
|
|
636
679
|
}
|
|
680
|
+
parseBookmarkStart(bookmarkXml) {
|
|
681
|
+
try {
|
|
682
|
+
const idAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:id");
|
|
683
|
+
const nameAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:name");
|
|
684
|
+
if (!idAttr || !nameAttr) {
|
|
685
|
+
return null;
|
|
686
|
+
}
|
|
687
|
+
const id = parseInt(idAttr, 10);
|
|
688
|
+
const bookmark = new Bookmark_1.Bookmark({
|
|
689
|
+
name: nameAttr,
|
|
690
|
+
id: id,
|
|
691
|
+
skipNormalization: true,
|
|
692
|
+
});
|
|
693
|
+
return bookmark;
|
|
694
|
+
}
|
|
695
|
+
catch (error) {
|
|
696
|
+
logger_1.defaultLogger.warn("[DocumentParser] Failed to parse bookmark start:", error instanceof Error
|
|
697
|
+
? { message: error.message }
|
|
698
|
+
: { error: String(error) });
|
|
699
|
+
return null;
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
parseBookmarkEnd(bookmarkXml) {
|
|
703
|
+
try {
|
|
704
|
+
const idAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:id");
|
|
705
|
+
if (!idAttr) {
|
|
706
|
+
return null;
|
|
707
|
+
}
|
|
708
|
+
const id = parseInt(idAttr, 10);
|
|
709
|
+
const bookmark = new Bookmark_1.Bookmark({
|
|
710
|
+
name: `_end_${id}`,
|
|
711
|
+
id: id,
|
|
712
|
+
skipNormalization: true,
|
|
713
|
+
});
|
|
714
|
+
return bookmark;
|
|
715
|
+
}
|
|
716
|
+
catch (error) {
|
|
717
|
+
logger_1.defaultLogger.warn("[DocumentParser] Failed to parse bookmark end:", error instanceof Error
|
|
718
|
+
? { message: error.message }
|
|
719
|
+
: { error: String(error) });
|
|
720
|
+
return null;
|
|
721
|
+
}
|
|
722
|
+
}
|
|
637
723
|
async parseParagraphFromObject(paraObj, relationshipManager, zipHandler, imageManager) {
|
|
638
724
|
try {
|
|
639
725
|
const paragraph = new Paragraph_1.Paragraph();
|