docxmlater 8.6.0 → 8.6.2
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/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +34 -18
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +1 -0
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +1 -0
- package/dist/elements/Paragraph.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAyC,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EAEL,OAAO,EAGR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAA8B,MAAM,qBAAqB,CAAC;AAexE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAKD,KAAK,WAAW,GACZ,SAAS,GACT,KAAK,GACL,sBAAsB,GACtB,qBAAqB,CAAC;AAK1B,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAgC;gBAE3C,aAAa,GAAE,OAAe;IAO1C,cAAc,IAAI,UAAU,EAAE;IAO9B,gBAAgB,IAAI,IAAI;IAWlB,aAAa,CACjB,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC;QACT,YAAY,EAAE,WAAW,EAAE,CAAC;QAC5B,UAAU,EAAE,kBAAkB,CAAC;QAC/B,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;QACxC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,CAAC;YAyFY,iBAAiB;IAyM/B,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,8BAA8B;IA2BtC,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,qBAAqB;YAwEf,uBAAuB;YAuFvB,6BAA6B;YAgW7B,oBAAoB;IAwIlC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE;IAqBhD,OAAO,CAAC,mBAAmB;IA6D3B,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,gBAAgB;YA8BV,wBAAwB;IAoLtC,OAAO,CAAC,kCAAkC;IAugB1C,OAAO,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1489,6 +1489,10 @@ class DocumentParser {
|
|
|
1489
1489
|
}
|
|
1490
1490
|
}
|
|
1491
1491
|
assembleComplexFields(paragraph) {
|
|
1492
|
+
if (paragraph._isPartOfMultiParagraphField) {
|
|
1493
|
+
logger_1.defaultLogger.debug("[DocumentParser] Skipping assembleComplexFields for paragraph marked as part of multi-paragraph field");
|
|
1494
|
+
return;
|
|
1495
|
+
}
|
|
1492
1496
|
const content = paragraph.getContent();
|
|
1493
1497
|
const groupedContent = [];
|
|
1494
1498
|
let fieldRuns = [];
|
|
@@ -1868,21 +1872,27 @@ class DocumentParser {
|
|
|
1868
1872
|
this.processMultiParagraphFieldAsComplexField(fieldTracker, allParagraphs, runs);
|
|
1869
1873
|
}
|
|
1870
1874
|
processMultiParagraphFieldAsComplexField(fieldTracker, allParagraphs, runs) {
|
|
1871
|
-
const
|
|
1875
|
+
const affectedParaIndices = new Set();
|
|
1872
1876
|
for (const fr of fieldTracker.fieldRuns) {
|
|
1873
|
-
|
|
1874
|
-
|
|
1877
|
+
affectedParaIndices.add(fr.paragraphIndex);
|
|
1878
|
+
}
|
|
1879
|
+
const sortedIndices = Array.from(affectedParaIndices).sort((a, b) => a - b);
|
|
1880
|
+
const firstParaIdx = sortedIndices[0];
|
|
1881
|
+
const lastParaIdx = sortedIndices[sortedIndices.length - 1];
|
|
1882
|
+
if (lastParaIdx - firstParaIdx > 1) {
|
|
1883
|
+
for (let pIdx = firstParaIdx; pIdx <= lastParaIdx; pIdx++) {
|
|
1884
|
+
const paragraph = allParagraphs[pIdx];
|
|
1885
|
+
if (paragraph) {
|
|
1886
|
+
paragraph._isPartOfMultiParagraphField = true;
|
|
1887
|
+
}
|
|
1875
1888
|
}
|
|
1876
|
-
|
|
1889
|
+
logger_1.defaultLogger.debug(`Preserving original runs for multi-paragraph field spanning paragraphs ${firstParaIdx} to ${lastParaIdx} (gap > 1)`);
|
|
1890
|
+
return;
|
|
1877
1891
|
}
|
|
1878
|
-
const
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
if (lastParaIdx - firstParaIdx > 1) {
|
|
1883
|
-
logger_1.defaultLogger.debug(`Preserving multi-paragraph field structure spanning paragraphs ${firstParaIdx} to ${lastParaIdx} ` +
|
|
1884
|
-
`(${lastParaIdx - firstParaIdx - 1} intermediate paragraphs with result content)`);
|
|
1885
|
-
return;
|
|
1892
|
+
for (const pIdx of affectedParaIndices) {
|
|
1893
|
+
const paragraph = allParagraphs[pIdx];
|
|
1894
|
+
if (paragraph) {
|
|
1895
|
+
paragraph._isPartOfMultiParagraphField = true;
|
|
1886
1896
|
}
|
|
1887
1897
|
}
|
|
1888
1898
|
const complexField = this.createComplexFieldFromRuns(runs);
|
|
@@ -1891,6 +1901,14 @@ class DocumentParser {
|
|
|
1891
1901
|
return;
|
|
1892
1902
|
}
|
|
1893
1903
|
complexField.setMultiParagraph(true);
|
|
1904
|
+
const runsByParagraph = new Map();
|
|
1905
|
+
for (const fr of fieldTracker.fieldRuns) {
|
|
1906
|
+
if (!runsByParagraph.has(fr.paragraphIndex)) {
|
|
1907
|
+
runsByParagraph.set(fr.paragraphIndex, new Set());
|
|
1908
|
+
}
|
|
1909
|
+
runsByParagraph.get(fr.paragraphIndex).add(fr.runIndex);
|
|
1910
|
+
}
|
|
1911
|
+
const affectedParagraphIndices = Array.from(runsByParagraph.keys()).sort((a, b) => a - b);
|
|
1894
1912
|
for (let i = 0; i < affectedParagraphIndices.length; i++) {
|
|
1895
1913
|
const pIdx = affectedParagraphIndices[i];
|
|
1896
1914
|
const paragraph = allParagraphs[pIdx];
|
|
@@ -1988,6 +2006,7 @@ class DocumentParser {
|
|
|
1988
2006
|
});
|
|
1989
2007
|
return null;
|
|
1990
2008
|
}
|
|
2009
|
+
instruction = instruction.trim();
|
|
1991
2010
|
logger_1.defaultLogger.debug(`Created ComplexField: ${instruction.substring(0, 50)}... (result: "${resultText}")`);
|
|
1992
2011
|
const properties = {
|
|
1993
2012
|
instruction,
|
|
@@ -2100,7 +2119,7 @@ class DocumentParser {
|
|
|
2100
2119
|
}
|
|
2101
2120
|
}
|
|
2102
2121
|
else {
|
|
2103
|
-
|
|
2122
|
+
console.warn('[DocumentParser] _orderedChildren missing - using fallback element ordering which may affect tab/break positions');
|
|
2104
2123
|
const textElement = runObj["w:t"];
|
|
2105
2124
|
if (textElement !== undefined && textElement !== null) {
|
|
2106
2125
|
const textElements = toArray(textElement);
|
|
@@ -2262,11 +2281,8 @@ class DocumentParser {
|
|
|
2262
2281
|
`Using placeholder "[Link]" to prevent bookmark ID from appearing as visible text. ` +
|
|
2263
2282
|
`This may indicate a corrupted TOC or malformed hyperlink in the source document.`);
|
|
2264
2283
|
}
|
|
2265
|
-
if (!url && !finalAnchor && !
|
|
2266
|
-
|
|
2267
|
-
logger_1.defaultLogger.warn(`[DocumentParser] Skipping blank hyperlink with no URL, no anchor, and no relationship ID. ` +
|
|
2268
|
-
`Text content: "${textPreview}". ` +
|
|
2269
|
-
`This hyperlink cannot be represented in valid OOXML and will be removed.`);
|
|
2284
|
+
if (!url && !finalAnchor && !finalRelationshipId) {
|
|
2285
|
+
logger_1.defaultLogger.debug(`[DocumentParser] Skipping hyperlink with no URL, anchor, or relationship ID. Text: "${displayText}"`);
|
|
2270
2286
|
return result;
|
|
2271
2287
|
}
|
|
2272
2288
|
const hyperlink = new Hyperlink_1.Hyperlink({
|