Skip to content

Commit 18a232f

Browse files
committed
Ignore deleted table rows
1 parent ee76b52 commit 18a232f

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
elements, such as table cells. Previously, the wrapping elements would have
88
been ignored.
99

10+
* Ignore deleted table rows.
11+
1012
# 1.9.1
1113

1214
* Ignore AlternateContent elements when there is no Fallback element.

lib/docx/body-reader.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,12 @@ function BodyReader(options) {
480480

481481
function readTableRow(element) {
482482
var properties = element.firstOrEmpty("w:trPr");
483+
484+
var isDeleted = !!properties.first("w:del");
485+
if (isDeleted) {
486+
return emptyResult();
487+
}
488+
483489
var isHeader = !!properties.first("w:tblHeader");
484490
return readXmlElements(element.children).map(function(children) {
485491
return documents.TableRow(children, {isHeader: isHeader});

test/docx/body-reader.tests.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,43 @@ test("no vertical cell merging if merged cells do not line up", function() {
12671267
]));
12681268
});
12691269

1270+
test("when row is marked as deleted in row properties then row is ignored", function() {
1271+
var tableXml = xml.element("w:tbl", {}, [
1272+
xml.element("w:tr", {}, [
1273+
xml.element("w:tc", {}, [
1274+
xml.element("w:p", {}, [
1275+
runOfText("Row 1")
1276+
])
1277+
])
1278+
]),
1279+
1280+
xml.element("w:tr", {}, [
1281+
xml.element("w:trPr", {}, [
1282+
xml.element("w:del")
1283+
]),
1284+
xml.element("w:tc", {}, [
1285+
xml.element("w:p", {}, [
1286+
runOfText("Row 2")
1287+
])
1288+
])
1289+
])
1290+
]);
1291+
1292+
var result = readXmlElement(tableXml);
1293+
1294+
assert.deepEqual(result.value, new documents.Table([
1295+
new documents.TableRow([
1296+
new documents.TableCell([
1297+
new documents.Paragraph([
1298+
new documents.Run([
1299+
new documents.Text("Row 1")
1300+
])
1301+
])
1302+
])
1303+
])
1304+
]));
1305+
});
1306+
12701307
test("warning if non-row in table", function() {
12711308
var tableXml = new XmlElement("w:tbl", {}, [
12721309
new XmlElement("w:p")

0 commit comments

Comments
 (0)