docxmlater 10.0.3 → 10.0.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/README.md +3 -2
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +26 -1
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +8 -0
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +25 -1
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +22 -1
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts +1 -0
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js +46 -0
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/package.json +1 -1
- package/src/core/DocumentParser.ts +34 -1
- package/src/elements/Paragraph.ts +61 -1
- package/src/utils/InMemoryRevisionAcceptor.ts +29 -1
- package/src/utils/SelectiveRevisionAcceptor.ts +70 -0
package/README.md
CHANGED
|
@@ -73,6 +73,7 @@ A comprehensive, production-ready TypeScript/JavaScript framework for creating,
|
|
|
73
73
|
- Unified shading model with theme color support and inheritance resolution
|
|
74
74
|
- Lossless image optimization (PNG re-compression, BMP-to-PNG conversion)
|
|
75
75
|
- Run property change tracking (w:rPrChange) with direct API access
|
|
76
|
+
- Paragraph mark revision tracking (w:del/w:ins in w:pPr/w:rPr) for full tracked-changes fidelity
|
|
76
77
|
- Normal/NormalWeb style linking with preservation flags
|
|
77
78
|
|
|
78
79
|
### Developer Tools
|
|
@@ -606,7 +607,7 @@ const properties: DocumentProperties = {
|
|
|
606
607
|
|
|
607
608
|
## Version History
|
|
608
609
|
|
|
609
|
-
**Current Version: 10.0.
|
|
610
|
+
**Current Version: 10.0.4**
|
|
610
611
|
|
|
611
612
|
See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
|
|
612
613
|
|
|
@@ -614,7 +615,7 @@ See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
|
|
|
614
615
|
|
|
615
616
|
The framework includes comprehensive test coverage:
|
|
616
617
|
|
|
617
|
-
- **2,
|
|
618
|
+
- **2,823 test cases** across 129 test suites
|
|
618
619
|
- Tests cover all phases of implementation
|
|
619
620
|
- Integration tests for complex scenarios
|
|
620
621
|
- Performance benchmarks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1463,9 +1463,34 @@ class DocumentParser {
|
|
|
1463
1463
|
if (!pPrObj)
|
|
1464
1464
|
return;
|
|
1465
1465
|
if (pPrObj["w:rPr"]) {
|
|
1466
|
+
const rPrObj = pPrObj["w:rPr"];
|
|
1466
1467
|
const tempRun = new Run_1.Run("");
|
|
1467
|
-
this.parseRunPropertiesFromObject(
|
|
1468
|
+
this.parseRunPropertiesFromObject(rPrObj, tempRun);
|
|
1468
1469
|
paragraph.setParagraphMarkFormatting(tempRun.getFormatting());
|
|
1470
|
+
if (rPrObj["w:del"]) {
|
|
1471
|
+
const rawDel = rPrObj["w:del"];
|
|
1472
|
+
const delObj = Array.isArray(rawDel) ? rawDel[0] : rawDel;
|
|
1473
|
+
if (delObj && typeof delObj === "object") {
|
|
1474
|
+
const id = parseInt(delObj["@_w:id"] || "0", 10) || 0;
|
|
1475
|
+
const author = String(delObj["@_w:author"] ?? "");
|
|
1476
|
+
const dateStr = delObj["@_w:date"];
|
|
1477
|
+
const parsedDate = dateStr ? new Date(String(dateStr)) : new Date();
|
|
1478
|
+
const date = isNaN(parsedDate.getTime()) ? new Date() : parsedDate;
|
|
1479
|
+
paragraph.markParagraphMarkAsDeleted(id, author, date);
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
if (rPrObj["w:ins"]) {
|
|
1483
|
+
const rawIns = rPrObj["w:ins"];
|
|
1484
|
+
const insObj = Array.isArray(rawIns) ? rawIns[0] : rawIns;
|
|
1485
|
+
if (insObj && typeof insObj === "object") {
|
|
1486
|
+
const id = parseInt(insObj["@_w:id"] || "0", 10) || 0;
|
|
1487
|
+
const author = String(insObj["@_w:author"] ?? "");
|
|
1488
|
+
const dateStr = insObj["@_w:date"];
|
|
1489
|
+
const parsedDate = dateStr ? new Date(String(dateStr)) : new Date();
|
|
1490
|
+
const date = isNaN(parsedDate.getTime()) ? new Date() : parsedDate;
|
|
1491
|
+
paragraph.markParagraphMarkAsInserted(id, author, date);
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1469
1494
|
}
|
|
1470
1495
|
if (pPrObj["w:jc"]?.["@_w:val"]) {
|
|
1471
1496
|
paragraph.setAlignment(pPrObj["w:jc"]["@_w:val"]);
|