docxmlater 9.7.7 → 9.7.9
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.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 +235 -7
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/elements/Section.d.ts +12 -0
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +183 -0
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Table.d.ts +12 -0
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +271 -3
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +12 -0
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +181 -7
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableRow.d.ts +14 -0
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +157 -0
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts +7 -0
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +173 -46
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts +7 -1
- package/dist/tracking/TrackingContext.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +23 -0
- package/dist/utils/InMemoryRevisionAcceptor.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":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,EAEL,OAAO,EAGR,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAA8B,MAAM,qBAAqB,CAAC;AAgBxE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,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,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAgC;IAMvD,OAAO,CAAC,eAAe,CAAiC;gBAE5C,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;QACnC,kBAAkB,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACvG,CAAC;YA6FY,iBAAiB;IA8S/B,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,8BAA8B;IAiCtC,OAAO,CAAC,8BAA8B;IAmBtC,OAAO,CAAC,gCAAgC;IAmBxC,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,qBAAqB;YAwEf,uBAAuB;YAwGvB,6BAA6B;YAmc7B,oBAAoB;IAwKlC,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;IAijB1C,OAAO,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1767,6 +1767,9 @@ class DocumentParser {
|
|
|
1767
1767
|
let fieldRevisions = [];
|
|
1768
1768
|
let instructionRevisions = [];
|
|
1769
1769
|
let fieldState = null;
|
|
1770
|
+
let nestingDepth = 0;
|
|
1771
|
+
let hasNestedFields = false;
|
|
1772
|
+
let fieldStartIndex = -1;
|
|
1770
1773
|
for (let i = 0; i < content.length; i++) {
|
|
1771
1774
|
const item = content[i];
|
|
1772
1775
|
if (item instanceof Run_1.Run) {
|
|
@@ -1778,14 +1781,41 @@ class DocumentParser {
|
|
|
1778
1781
|
if (fieldChar) {
|
|
1779
1782
|
switch (fieldChar.fieldCharType) {
|
|
1780
1783
|
case "begin":
|
|
1781
|
-
|
|
1784
|
+
nestingDepth++;
|
|
1785
|
+
if (nestingDepth === 1) {
|
|
1786
|
+
fieldState = "begin";
|
|
1787
|
+
fieldStartIndex = i;
|
|
1788
|
+
}
|
|
1789
|
+
else {
|
|
1790
|
+
hasNestedFields = true;
|
|
1791
|
+
}
|
|
1782
1792
|
break;
|
|
1783
1793
|
case "separate":
|
|
1784
|
-
|
|
1794
|
+
if (nestingDepth <= 1) {
|
|
1795
|
+
fieldState = "separate";
|
|
1796
|
+
}
|
|
1785
1797
|
break;
|
|
1786
1798
|
case "end":
|
|
1799
|
+
nestingDepth--;
|
|
1800
|
+
if (nestingDepth > 0) {
|
|
1801
|
+
break;
|
|
1802
|
+
}
|
|
1787
1803
|
fieldState = "end";
|
|
1788
|
-
if (
|
|
1804
|
+
if (fieldRuns.length > 0) {
|
|
1805
|
+
if (hasNestedFields) {
|
|
1806
|
+
for (let j = fieldStartIndex; j <= i; j++) {
|
|
1807
|
+
groupedContent.push(content[j]);
|
|
1808
|
+
}
|
|
1809
|
+
logger_1.defaultLogger.debug(`Preserved raw structure for nested field spanning ${i - fieldStartIndex + 1} content items`);
|
|
1810
|
+
fieldRuns = [];
|
|
1811
|
+
instructionRevisions = [];
|
|
1812
|
+
fieldRevisions = [];
|
|
1813
|
+
fieldState = null;
|
|
1814
|
+
hasNestedFields = false;
|
|
1815
|
+
fieldStartIndex = -1;
|
|
1816
|
+
nestingDepth = 0;
|
|
1817
|
+
break;
|
|
1818
|
+
}
|
|
1789
1819
|
if (instructionRevisions.length > 0) {
|
|
1790
1820
|
let hasSep = false;
|
|
1791
1821
|
for (const run of fieldRuns) {
|
|
@@ -1939,7 +1969,10 @@ class DocumentParser {
|
|
|
1939
1969
|
}
|
|
1940
1970
|
}
|
|
1941
1971
|
else {
|
|
1942
|
-
if (
|
|
1972
|
+
if (nestingDepth > 0) {
|
|
1973
|
+
fieldRuns.push(item);
|
|
1974
|
+
}
|
|
1975
|
+
else if (fieldState === "separate" || fieldState === "result") {
|
|
1943
1976
|
fieldRuns.push(item);
|
|
1944
1977
|
fieldState = "result";
|
|
1945
1978
|
}
|
|
@@ -1966,7 +1999,10 @@ class DocumentParser {
|
|
|
1966
1999
|
}
|
|
1967
2000
|
}
|
|
1968
2001
|
else if (item instanceof Revision_1.Revision) {
|
|
1969
|
-
if (
|
|
2002
|
+
if (nestingDepth > 0) {
|
|
2003
|
+
fieldRevisions.push(item);
|
|
2004
|
+
}
|
|
2005
|
+
else if (fieldState === "separate" || fieldState === "result") {
|
|
1970
2006
|
item.setFieldContext({ position: 'result' });
|
|
1971
2007
|
fieldRevisions.push(item);
|
|
1972
2008
|
fieldState = "result";
|
|
@@ -1997,7 +2033,10 @@ class DocumentParser {
|
|
|
1997
2033
|
}
|
|
1998
2034
|
}
|
|
1999
2035
|
else {
|
|
2000
|
-
if (
|
|
2036
|
+
if (nestingDepth > 0) {
|
|
2037
|
+
fieldRuns.push(item);
|
|
2038
|
+
}
|
|
2039
|
+
else if (fieldRuns.length > 0) {
|
|
2001
2040
|
fieldRuns.forEach((run) => groupedContent.push(run));
|
|
2002
2041
|
for (const revision of instructionRevisions) {
|
|
2003
2042
|
groupedContent.push(revision);
|
|
@@ -4354,6 +4393,15 @@ class DocumentParser {
|
|
|
4354
4393
|
table.setBorders(borders);
|
|
4355
4394
|
}
|
|
4356
4395
|
}
|
|
4396
|
+
if (tblPrObj["w:tblPrChange"]) {
|
|
4397
|
+
const changeObj = tblPrObj["w:tblPrChange"];
|
|
4398
|
+
table.setTblPrChange({
|
|
4399
|
+
id: String(changeObj["@_w:id"] || "0"),
|
|
4400
|
+
author: changeObj["@_w:author"] || "",
|
|
4401
|
+
date: changeObj["@_w:date"] || "",
|
|
4402
|
+
previousProperties: this.parseGenericPreviousProperties(changeObj["w:tblPr"]),
|
|
4403
|
+
});
|
|
4404
|
+
}
|
|
4357
4405
|
}
|
|
4358
4406
|
async parseTableRowFromObject(rowObj, relationshipManager, zipHandler, imageManager, rawRowXml) {
|
|
4359
4407
|
try {
|
|
@@ -4456,6 +4504,15 @@ class DocumentParser {
|
|
|
4456
4504
|
row.setCnfStyle(val);
|
|
4457
4505
|
}
|
|
4458
4506
|
}
|
|
4507
|
+
if (trPrObj["w:trPrChange"]) {
|
|
4508
|
+
const changeObj = trPrObj["w:trPrChange"];
|
|
4509
|
+
row.setTrPrChange({
|
|
4510
|
+
id: String(changeObj["@_w:id"] || "0"),
|
|
4511
|
+
author: changeObj["@_w:author"] || "",
|
|
4512
|
+
date: changeObj["@_w:date"] || "",
|
|
4513
|
+
previousProperties: this.parseGenericPreviousProperties(changeObj["w:trPr"]),
|
|
4514
|
+
});
|
|
4515
|
+
}
|
|
4459
4516
|
}
|
|
4460
4517
|
parseTablePropertyExceptionsFromObject(tblPrExObj) {
|
|
4461
4518
|
if (!tblPrExObj)
|
|
@@ -4691,6 +4748,15 @@ class DocumentParser {
|
|
|
4691
4748
|
});
|
|
4692
4749
|
cell.setCellRevision(revision);
|
|
4693
4750
|
}
|
|
4751
|
+
if (tcPr["w:tcPrChange"]) {
|
|
4752
|
+
const changeObj = tcPr["w:tcPrChange"];
|
|
4753
|
+
cell.setTcPrChange({
|
|
4754
|
+
id: String(changeObj["@_w:id"] || "0"),
|
|
4755
|
+
author: changeObj["@_w:author"] || "",
|
|
4756
|
+
date: changeObj["@_w:date"] || "",
|
|
4757
|
+
previousProperties: this.parseGenericPreviousProperties(changeObj["w:tcPr"]),
|
|
4758
|
+
});
|
|
4759
|
+
}
|
|
4694
4760
|
}
|
|
4695
4761
|
if (rawCellXml) {
|
|
4696
4762
|
const cellContent = this.extractCellContentInOrder(rawCellXml);
|
|
@@ -5892,7 +5958,21 @@ class DocumentParser {
|
|
|
5892
5958
|
sectionProps.printerSettingsId = rId;
|
|
5893
5959
|
}
|
|
5894
5960
|
}
|
|
5895
|
-
|
|
5961
|
+
const section = new Section_1.Section(sectionProps);
|
|
5962
|
+
const sectPrChangeElements = XMLParser_1.XMLParser.extractElements(sectPr, "w:sectPrChange");
|
|
5963
|
+
if (sectPrChangeElements.length > 0 && sectPrChangeElements[0]) {
|
|
5964
|
+
const changeXml = sectPrChangeElements[0];
|
|
5965
|
+
const id = XMLParser_1.XMLParser.extractAttribute(changeXml, "w:id") || "0";
|
|
5966
|
+
const author = XMLParser_1.XMLParser.extractAttribute(changeXml, "w:author") || "";
|
|
5967
|
+
const date = XMLParser_1.XMLParser.extractAttribute(changeXml, "w:date") || "";
|
|
5968
|
+
const prevSectPrElements = XMLParser_1.XMLParser.extractElements(changeXml, "w:sectPr");
|
|
5969
|
+
const prevSectPrXml = prevSectPrElements.length > 0 ? prevSectPrElements[0] : undefined;
|
|
5970
|
+
const prevProps = prevSectPrXml
|
|
5971
|
+
? this.parsePreviousSectionProperties(prevSectPrXml)
|
|
5972
|
+
: {};
|
|
5973
|
+
section.setSectPrChange({ id, author, date, previousProperties: prevProps });
|
|
5974
|
+
}
|
|
5975
|
+
return section;
|
|
5896
5976
|
}
|
|
5897
5977
|
catch (error) {
|
|
5898
5978
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
@@ -6715,6 +6795,154 @@ class DocumentParser {
|
|
|
6715
6795
|
return null;
|
|
6716
6796
|
}
|
|
6717
6797
|
}
|
|
6798
|
+
parseGenericPreviousProperties(propsObj) {
|
|
6799
|
+
if (!propsObj)
|
|
6800
|
+
return {};
|
|
6801
|
+
const result = {};
|
|
6802
|
+
if (propsObj["w:tblStyle"]) {
|
|
6803
|
+
result.style = propsObj["w:tblStyle"]["@_w:val"] || "";
|
|
6804
|
+
}
|
|
6805
|
+
if (propsObj["w:tblW"]) {
|
|
6806
|
+
result.width = parseInt(propsObj["w:tblW"]["@_w:w"] || "0", 10);
|
|
6807
|
+
result.widthType = propsObj["w:tblW"]["@_w:type"] || "dxa";
|
|
6808
|
+
}
|
|
6809
|
+
if (propsObj["w:tblLayout"]) {
|
|
6810
|
+
result.layout = propsObj["w:tblLayout"]["@_w:type"];
|
|
6811
|
+
}
|
|
6812
|
+
if (propsObj["w:tblInd"]) {
|
|
6813
|
+
result.indent = parseInt(propsObj["w:tblInd"]["@_w:w"] || "0", 10);
|
|
6814
|
+
}
|
|
6815
|
+
if (propsObj["w:tblCellSpacing"]) {
|
|
6816
|
+
result.cellSpacing = parseInt(propsObj["w:tblCellSpacing"]["@_w:w"] || "0", 10);
|
|
6817
|
+
}
|
|
6818
|
+
if (propsObj["w:tblBorders"]) {
|
|
6819
|
+
const borders = {};
|
|
6820
|
+
const bordersObj = propsObj["w:tblBorders"];
|
|
6821
|
+
for (const side of ['top', 'bottom', 'left', 'right', 'insideH', 'insideV']) {
|
|
6822
|
+
if (bordersObj[`w:${side}`]) {
|
|
6823
|
+
borders[side] = this.parseBorderElement(bordersObj[`w:${side}`]);
|
|
6824
|
+
}
|
|
6825
|
+
}
|
|
6826
|
+
if (Object.keys(borders).length > 0)
|
|
6827
|
+
result.borders = borders;
|
|
6828
|
+
}
|
|
6829
|
+
if (propsObj["w:trHeight"]) {
|
|
6830
|
+
result.height = parseInt(propsObj["w:trHeight"]["@_w:val"] || "0", 10);
|
|
6831
|
+
const rule = propsObj["w:trHeight"]["@_w:hRule"];
|
|
6832
|
+
if (rule)
|
|
6833
|
+
result.heightRule = rule;
|
|
6834
|
+
}
|
|
6835
|
+
if (propsObj["w:tblHeader"]) {
|
|
6836
|
+
result.isHeader = true;
|
|
6837
|
+
}
|
|
6838
|
+
if (propsObj["w:cantSplit"]) {
|
|
6839
|
+
result.cantSplit = true;
|
|
6840
|
+
}
|
|
6841
|
+
if (propsObj["w:hidden"]) {
|
|
6842
|
+
result.hidden = true;
|
|
6843
|
+
}
|
|
6844
|
+
if (propsObj["w:tcW"]) {
|
|
6845
|
+
result.width = parseInt(propsObj["w:tcW"]["@_w:w"] || "0", 10);
|
|
6846
|
+
result.widthType = propsObj["w:tcW"]["@_w:type"] || "dxa";
|
|
6847
|
+
}
|
|
6848
|
+
if (propsObj["w:vAlign"]) {
|
|
6849
|
+
result.verticalAlignment = propsObj["w:vAlign"]["@_w:val"];
|
|
6850
|
+
}
|
|
6851
|
+
if (propsObj["w:tcBorders"]) {
|
|
6852
|
+
const borders = {};
|
|
6853
|
+
const bordersObj = propsObj["w:tcBorders"];
|
|
6854
|
+
for (const side of ['top', 'bottom', 'left', 'right']) {
|
|
6855
|
+
if (bordersObj[`w:${side}`]) {
|
|
6856
|
+
borders[side] = this.parseBorderElement(bordersObj[`w:${side}`]);
|
|
6857
|
+
}
|
|
6858
|
+
}
|
|
6859
|
+
if (Object.keys(borders).length > 0)
|
|
6860
|
+
result.borders = borders;
|
|
6861
|
+
}
|
|
6862
|
+
if (propsObj["w:jc"]) {
|
|
6863
|
+
const val = propsObj["w:jc"]["@_w:val"];
|
|
6864
|
+
if (val) {
|
|
6865
|
+
result.alignment = val;
|
|
6866
|
+
result.justification = val;
|
|
6867
|
+
}
|
|
6868
|
+
}
|
|
6869
|
+
if (propsObj["w:shd"]) {
|
|
6870
|
+
const shd = propsObj["w:shd"];
|
|
6871
|
+
const shading = {};
|
|
6872
|
+
if (shd["@_w:val"])
|
|
6873
|
+
shading.pattern = shd["@_w:val"];
|
|
6874
|
+
if (shd["@_w:fill"])
|
|
6875
|
+
shading.fill = shd["@_w:fill"];
|
|
6876
|
+
if (shd["@_w:color"])
|
|
6877
|
+
shading.color = shd["@_w:color"];
|
|
6878
|
+
if (Object.keys(shading).length > 0)
|
|
6879
|
+
result.shading = shading;
|
|
6880
|
+
}
|
|
6881
|
+
return result;
|
|
6882
|
+
}
|
|
6883
|
+
parsePreviousSectionProperties(sectPrXml) {
|
|
6884
|
+
if (!sectPrXml)
|
|
6885
|
+
return {};
|
|
6886
|
+
const result = {};
|
|
6887
|
+
const pgSzElements = XMLParser_1.XMLParser.extractElements(sectPrXml, "w:pgSz");
|
|
6888
|
+
if (pgSzElements.length > 0 && pgSzElements[0]) {
|
|
6889
|
+
const pgSz = pgSzElements[0];
|
|
6890
|
+
const width = XMLParser_1.XMLParser.extractAttribute(pgSz, "w:w");
|
|
6891
|
+
const height = XMLParser_1.XMLParser.extractAttribute(pgSz, "w:h");
|
|
6892
|
+
const orient = XMLParser_1.XMLParser.extractAttribute(pgSz, "w:orient");
|
|
6893
|
+
if (width || height) {
|
|
6894
|
+
result.pageSize = {
|
|
6895
|
+
width: width ? parseInt(width, 10) : undefined,
|
|
6896
|
+
height: height ? parseInt(height, 10) : undefined,
|
|
6897
|
+
orientation: orient === "landscape" ? "landscape" : "portrait",
|
|
6898
|
+
};
|
|
6899
|
+
}
|
|
6900
|
+
}
|
|
6901
|
+
const pgMarElements = XMLParser_1.XMLParser.extractElements(sectPrXml, "w:pgMar");
|
|
6902
|
+
if (pgMarElements.length > 0 && pgMarElements[0]) {
|
|
6903
|
+
const pgMar = pgMarElements[0];
|
|
6904
|
+
const margins = {};
|
|
6905
|
+
const top = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:top");
|
|
6906
|
+
if (top)
|
|
6907
|
+
margins.top = parseInt(top, 10);
|
|
6908
|
+
const bottom = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:bottom");
|
|
6909
|
+
if (bottom)
|
|
6910
|
+
margins.bottom = parseInt(bottom, 10);
|
|
6911
|
+
const left = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:left");
|
|
6912
|
+
if (left)
|
|
6913
|
+
margins.left = parseInt(left, 10);
|
|
6914
|
+
const right = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:right");
|
|
6915
|
+
if (right)
|
|
6916
|
+
margins.right = parseInt(right, 10);
|
|
6917
|
+
const header = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:header");
|
|
6918
|
+
if (header)
|
|
6919
|
+
margins.header = parseInt(header, 10);
|
|
6920
|
+
const footer = XMLParser_1.XMLParser.extractAttribute(pgMar, "w:footer");
|
|
6921
|
+
if (footer)
|
|
6922
|
+
margins.footer = parseInt(footer, 10);
|
|
6923
|
+
if (Object.keys(margins).length > 0)
|
|
6924
|
+
result.margins = margins;
|
|
6925
|
+
}
|
|
6926
|
+
const typeElements = XMLParser_1.XMLParser.extractElements(sectPrXml, "w:type");
|
|
6927
|
+
if (typeElements.length > 0 && typeElements[0]) {
|
|
6928
|
+
const val = XMLParser_1.XMLParser.extractAttribute(typeElements[0], "w:val");
|
|
6929
|
+
if (val)
|
|
6930
|
+
result.type = val;
|
|
6931
|
+
}
|
|
6932
|
+
const colsElements = XMLParser_1.XMLParser.extractElements(sectPrXml, "w:cols");
|
|
6933
|
+
if (colsElements.length > 0 && colsElements[0]) {
|
|
6934
|
+
const cols = colsElements[0];
|
|
6935
|
+
const num = XMLParser_1.XMLParser.extractAttribute(cols, "w:num");
|
|
6936
|
+
const space = XMLParser_1.XMLParser.extractAttribute(cols, "w:space");
|
|
6937
|
+
if (num) {
|
|
6938
|
+
result.columns = {
|
|
6939
|
+
count: parseInt(num, 10),
|
|
6940
|
+
space: space ? parseInt(space, 10) : undefined,
|
|
6941
|
+
};
|
|
6942
|
+
}
|
|
6943
|
+
}
|
|
6944
|
+
return result;
|
|
6945
|
+
}
|
|
6718
6946
|
}
|
|
6719
6947
|
exports.DocumentParser = DocumentParser;
|
|
6720
6948
|
//# sourceMappingURL=DocumentParser.js.map
|