docxmlater 10.1.3 → 10.1.5
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 +759 -754
- package/dist/constants/legacyCompatFlags.js +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/constants/limits.js.map +1 -1
- package/dist/core/Document.d.ts +50 -50
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +483 -471
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts +9 -9
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts +11 -11
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +251 -251
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentIdManager.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +15 -15
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +2123 -2155
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js +2 -5
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.d.ts.map +1 -1
- package/dist/core/RelationshipManager.js +3 -3
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/elements/AlternateContent.js.map +1 -1
- package/dist/elements/Bookmark.d.ts.map +1 -1
- package/dist/elements/Bookmark.js +3 -1
- package/dist/elements/Bookmark.js.map +1 -1
- package/dist/elements/BookmarkManager.d.ts.map +1 -1
- package/dist/elements/BookmarkManager.js.map +1 -1
- package/dist/elements/Comment.d.ts.map +1 -1
- package/dist/elements/Comment.js +9 -6
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +18 -17
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts +21 -21
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +56 -56
- package/dist/elements/CommonTypes.js.map +1 -1
- package/dist/elements/CustomXml.js.map +1 -1
- package/dist/elements/Endnote.d.ts.map +1 -1
- package/dist/elements/Endnote.js +6 -6
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js +6 -7
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +82 -25
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/FontManager.d.ts.map +1 -1
- package/dist/elements/FontManager.js +1 -1
- package/dist/elements/FontManager.js.map +1 -1
- package/dist/elements/Footer.js +2 -2
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js +6 -6
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js +6 -7
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.js +2 -2
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts +5 -3
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +134 -76
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +238 -106
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +1 -1
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.js +1 -1
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +24 -24
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +181 -188
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
- package/dist/elements/PropertyChangeTypes.js +6 -6
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.d.ts.map +1 -1
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +4 -5
- package/dist/elements/Revision.js.map +1 -1
- package/dist/elements/RevisionContent.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js +40 -48
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts +16 -16
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +256 -238
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +36 -11
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts +6 -6
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +99 -104
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +11 -11
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +102 -107
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +10 -10
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +105 -106
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.d.ts.map +1 -1
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js +4 -4
- package/dist/elements/TableOfContents.js.map +1 -1
- package/dist/elements/TableOfContentsElement.js.map +1 -1
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +13 -6
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +3 -5
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.d.ts +4 -4
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +54 -49
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +1 -3
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts +5 -5
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +119 -125
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js +9 -9
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts +11 -11
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +219 -247
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +2 -2
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js +96 -102
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.d.ts +1 -1
- package/dist/helpers/CleanupHelper.d.ts.map +1 -1
- package/dist/helpers/CleanupHelper.js +6 -6
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/images/ImageOptimizer.js +7 -7
- package/dist/images/ImageOptimizer.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +23 -7
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts.map +1 -1
- package/dist/tracking/TrackingContext.js.map +1 -1
- package/dist/types/compatibility-types.js.map +1 -1
- package/dist/types/formatting.js.map +1 -1
- package/dist/types/list-types.d.ts +6 -6
- package/dist/types/list-types.js.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/types/styleConfig.d.ts +2 -2
- package/dist/types/styleConfig.js.map +1 -1
- package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
- package/dist/utils/ChangelogGenerator.js +97 -101
- package/dist/utils/ChangelogGenerator.js.map +1 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
- package/dist/utils/CompatibilityUpgrader.js +1 -1
- package/dist/utils/CompatibilityUpgrader.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
- package/dist/utils/MoveOperationHelper.js +1 -1
- package/dist/utils/MoveOperationHelper.js.map +1 -1
- package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js +2 -4
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/RevisionWalker.d.ts.map +1 -1
- package/dist/utils/RevisionWalker.js +4 -12
- package/dist/utils/RevisionWalker.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/dist/utils/ShadingResolver.d.ts.map +1 -1
- package/dist/utils/ShadingResolver.js +1 -1
- package/dist/utils/ShadingResolver.js.map +1 -1
- package/dist/utils/acceptRevisions.d.ts.map +1 -1
- package/dist/utils/acceptRevisions.js +23 -12
- package/dist/utils/acceptRevisions.js.map +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
- package/dist/utils/cnfStyleDecoder.js +40 -40
- package/dist/utils/cnfStyleDecoder.js.map +1 -1
- package/dist/utils/corruptionDetection.d.ts.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/dateFormatting.js.map +1 -1
- package/dist/utils/deepClone.js +1 -1
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +10 -2
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/list-detection.d.ts +2 -2
- package/dist/utils/list-detection.d.ts.map +1 -1
- package/dist/utils/list-detection.js +21 -23
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
- package/dist/utils/stripTrackedChanges.js +3 -3
- package/dist/utils/stripTrackedChanges.js.map +1 -1
- package/dist/utils/textDiff.d.ts +1 -1
- package/dist/utils/textDiff.js +8 -8
- package/dist/utils/textDiff.js.map +1 -1
- package/dist/utils/units.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +24 -7
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.d.ts.map +1 -1
- package/dist/utils/xmlSanitization.js +3 -3
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
- package/dist/validation/RevisionAutoFixer.js +5 -5
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.d.ts.map +1 -1
- package/dist/validation/RevisionValidator.js +7 -9
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRules.js +3 -3
- package/dist/validation/ValidationRules.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts +1 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +98 -100
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.d.ts.map +1 -1
- package/dist/xml/XMLParser.js +61 -66
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.d.ts.map +1 -1
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.d.ts.map +1 -1
- package/dist/zip/ZipReader.js +1 -3
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.d.ts +1 -1
- package/dist/zip/ZipWriter.d.ts.map +1 -1
- package/dist/zip/ZipWriter.js +28 -36
- package/dist/zip/ZipWriter.js.map +1 -1
- package/dist/zip/types.js +1 -1
- package/dist/zip/types.js.map +1 -1
- package/package.json +92 -92
- package/src/__tests__/helper-methods.test.ts +512 -512
- package/src/constants/legacyCompatFlags.ts +138 -138
- package/src/constants/limits.ts +50 -50
- package/src/core/Document.ts +985 -1145
- package/src/core/DocumentContent.ts +461 -467
- package/src/core/DocumentGenerator.ts +1133 -1104
- package/src/core/DocumentIdManager.ts +158 -158
- package/src/core/DocumentParser.ts +2347 -2716
- package/src/core/DocumentValidator.ts +363 -372
- package/src/core/Relationship.ts +367 -367
- package/src/core/RelationshipManager.ts +429 -428
- package/src/elements/AlternateContent.ts +42 -42
- package/src/elements/Bookmark.ts +212 -210
- package/src/elements/BookmarkManager.ts +247 -250
- package/src/elements/Comment.ts +356 -359
- package/src/elements/CommentManager.ts +499 -502
- package/src/elements/CommonTypes.ts +524 -549
- package/src/elements/CustomXml.ts +36 -36
- package/src/elements/Endnote.ts +221 -217
- package/src/elements/EndnoteManager.ts +246 -249
- package/src/elements/Field.ts +1292 -1233
- package/src/elements/FieldHelpers.ts +329 -333
- package/src/elements/FontManager.ts +336 -339
- package/src/elements/Footer.ts +269 -269
- package/src/elements/Footnote.ts +221 -217
- package/src/elements/FootnoteManager.ts +246 -249
- package/src/elements/Header.ts +269 -269
- package/src/elements/HeaderFooterManager.ts +219 -219
- package/src/elements/Hyperlink.ts +1288 -1193
- package/src/elements/Image.ts +1982 -1756
- package/src/elements/ImageManager.ts +437 -432
- package/src/elements/ImageRun.ts +59 -59
- package/src/elements/MathElement.ts +65 -65
- package/src/elements/Paragraph.ts +4347 -4287
- package/src/elements/PreservedElement.ts +53 -53
- package/src/elements/PropertyChangeTypes.ts +458 -442
- package/src/elements/RangeMarker.ts +382 -400
- package/src/elements/Revision.ts +1198 -1217
- package/src/elements/RevisionContent.ts +73 -73
- package/src/elements/RevisionManager.ts +1070 -1070
- package/src/elements/Run.ts +3103 -3073
- package/src/elements/Section.ts +1521 -1421
- package/src/elements/Shape.ts +884 -873
- package/src/elements/StructuredDocumentTag.ts +1176 -1207
- package/src/elements/Table.ts +2468 -2524
- package/src/elements/TableCell.ts +1617 -1621
- package/src/elements/TableGridChange.ts +149 -151
- package/src/elements/TableOfContents.ts +701 -691
- package/src/elements/TableOfContentsElement.ts +89 -89
- package/src/elements/TableRow.ts +960 -929
- package/src/elements/TextBox.ts +766 -768
- package/src/formatting/AbstractNumbering.ts +580 -579
- package/src/formatting/NumberingInstance.ts +295 -299
- package/src/formatting/NumberingLevel.ts +981 -1040
- package/src/formatting/NumberingManager.ts +833 -827
- package/src/formatting/Style.ts +1785 -1879
- package/src/formatting/StylesManager.ts +1090 -1130
- package/src/helpers/CleanupHelper.ts +524 -524
- package/src/images/ImageOptimizer.ts +274 -274
- package/src/index.ts +559 -554
- package/src/managers/DrawingManager.ts +319 -319
- package/src/tracking/DocumentTrackingContext.ts +687 -674
- package/src/tracking/TrackingContext.ts +175 -173
- package/src/types/compatibility-types.ts +49 -49
- package/src/types/formatting.ts +210 -210
- package/src/types/list-types.ts +14 -14
- package/src/types/settings-types.ts +59 -59
- package/src/types/styleConfig.ts +189 -189
- package/src/utils/ChangelogGenerator.ts +1583 -1581
- package/src/utils/CompatibilityUpgrader.ts +235 -237
- package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
- package/src/utils/MoveOperationHelper.ts +233 -238
- package/src/utils/RevisionAwareProcessor.ts +518 -526
- package/src/utils/RevisionWalker.ts +427 -457
- package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
- package/src/utils/ShadingResolver.ts +105 -107
- package/src/utils/acceptRevisions.ts +723 -714
- package/src/utils/cnfStyleDecoder.ts +212 -217
- package/src/utils/corruptionDetection.ts +346 -345
- package/src/utils/dateFormatting.ts +20 -20
- package/src/utils/deepClone.ts +77 -78
- package/src/utils/diagnostics.ts +125 -129
- package/src/utils/errorHandling.ts +80 -80
- package/src/utils/formatting.ts +220 -213
- package/src/utils/list-detection.ts +32 -42
- package/src/utils/logger.ts +412 -404
- package/src/utils/parsingHelpers.ts +190 -190
- package/src/utils/stripTrackedChanges.ts +356 -353
- package/src/utils/textDiff.ts +100 -100
- package/src/utils/units.ts +421 -421
- package/src/utils/validation.ts +553 -542
- package/src/utils/xmlSanitization.ts +179 -182
- package/src/validation/RevisionAutoFixer.ts +541 -542
- package/src/validation/RevisionValidator.ts +470 -460
- package/src/validation/ValidationRules.ts +338 -338
- package/src/validation/index.ts +30 -30
- package/src/xml/XMLBuilder.ts +857 -871
- package/src/xml/XMLParser.ts +877 -919
- package/src/zip/ZipHandler.ts +629 -637
- package/src/zip/ZipReader.ts +295 -299
- package/src/zip/ZipWriter.ts +374 -390
- package/src/zip/types.ts +116 -116
package/dist/elements/Table.js
CHANGED
|
@@ -18,10 +18,7 @@ class Table {
|
|
|
18
18
|
formatting.width = 9360;
|
|
19
19
|
}
|
|
20
20
|
this.formatting = formatting;
|
|
21
|
-
if (rows !== undefined &&
|
|
22
|
-
rows > 0 &&
|
|
23
|
-
columns !== undefined &&
|
|
24
|
-
columns > 0) {
|
|
21
|
+
if (rows !== undefined && rows > 0 && columns !== undefined && columns > 0) {
|
|
25
22
|
for (let i = 0; i < rows; i++) {
|
|
26
23
|
const row = new TableRow_1.TableRow(columns);
|
|
27
24
|
row._setParentTable(this);
|
|
@@ -68,7 +65,7 @@ class Table {
|
|
|
68
65
|
if (cells.length === 0)
|
|
69
66
|
return null;
|
|
70
67
|
const paras = cells[0]?.getParagraphs();
|
|
71
|
-
return paras && paras.length > 0 ? paras[0] ?? null : null;
|
|
68
|
+
return paras && paras.length > 0 ? (paras[0] ?? null) : null;
|
|
72
69
|
}
|
|
73
70
|
getLastParagraph() {
|
|
74
71
|
for (let r = this.rows.length - 1; r >= 0; r--) {
|
|
@@ -113,7 +110,7 @@ class Table {
|
|
|
113
110
|
}
|
|
114
111
|
setLayout(layout) {
|
|
115
112
|
const prev = this.formatting.layout;
|
|
116
|
-
this.formatting.layout = layout ===
|
|
113
|
+
this.formatting.layout = layout === 'auto' ? 'autofit' : layout;
|
|
117
114
|
if (this.trackingContext?.isEnabled() && prev !== this.formatting.layout) {
|
|
118
115
|
this.trackingContext.trackTableChange(this, 'layout', prev, this.formatting.layout);
|
|
119
116
|
}
|
|
@@ -256,7 +253,7 @@ class Table {
|
|
|
256
253
|
return this;
|
|
257
254
|
}
|
|
258
255
|
getTblLookFlags() {
|
|
259
|
-
const hex = this.formatting.tblLook ||
|
|
256
|
+
const hex = this.formatting.tblLook || '0000';
|
|
260
257
|
const value = parseInt(hex, 16) || 0;
|
|
261
258
|
return {
|
|
262
259
|
firstRow: (value & 0x0020) !== 0,
|
|
@@ -271,7 +268,7 @@ class Table {
|
|
|
271
268
|
const rows = this.getRows();
|
|
272
269
|
if (rules.headerRow && rows.length > 0) {
|
|
273
270
|
const headerFormatting = rules.headerRow === true
|
|
274
|
-
? { shading: { fill:
|
|
271
|
+
? { shading: { fill: '4472C4' } }
|
|
275
272
|
: rules.headerRow;
|
|
276
273
|
const headerRow = rows[0];
|
|
277
274
|
if (headerRow) {
|
|
@@ -283,9 +280,7 @@ class Table {
|
|
|
283
280
|
if (rules.alternatingRows) {
|
|
284
281
|
rows.forEach((row, index) => {
|
|
285
282
|
const isEven = index % 2 === 0;
|
|
286
|
-
const formatting = isEven
|
|
287
|
-
? rules.alternatingRows?.even
|
|
288
|
-
: rules.alternatingRows?.odd;
|
|
283
|
+
const formatting = isEven ? rules.alternatingRows?.even : rules.alternatingRows?.odd;
|
|
289
284
|
if (formatting) {
|
|
290
285
|
for (const cell of row.getCells()) {
|
|
291
286
|
this.applyCellFormatting(cell, formatting);
|
|
@@ -299,7 +294,7 @@ class Table {
|
|
|
299
294
|
const cellText = cell
|
|
300
295
|
.getParagraphs()
|
|
301
296
|
.map((p) => p.getText())
|
|
302
|
-
.join(
|
|
297
|
+
.join('');
|
|
303
298
|
for (const rule of rules.contentRules) {
|
|
304
299
|
if (rule.condition(cellText, rowIndex, colIndex)) {
|
|
305
300
|
this.applyCellFormatting(cell, rule.formatting);
|
|
@@ -495,164 +490,164 @@ class Table {
|
|
|
495
490
|
toXML() {
|
|
496
491
|
const tblPrChildren = [];
|
|
497
492
|
if (this.formatting.style) {
|
|
498
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
493
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblStyle', { 'w:val': this.formatting.style }));
|
|
499
494
|
}
|
|
500
495
|
if (this.formatting.position) {
|
|
501
496
|
const pos = this.formatting.position;
|
|
502
497
|
const posAttrs = {};
|
|
503
498
|
if (pos.x !== undefined)
|
|
504
|
-
posAttrs[
|
|
499
|
+
posAttrs['w:tblpX'] = pos.x;
|
|
505
500
|
if (pos.y !== undefined)
|
|
506
|
-
posAttrs[
|
|
501
|
+
posAttrs['w:tblpY'] = pos.y;
|
|
507
502
|
if (pos.horizontalAnchor)
|
|
508
|
-
posAttrs[
|
|
503
|
+
posAttrs['w:horzAnchor'] = pos.horizontalAnchor;
|
|
509
504
|
if (pos.verticalAnchor)
|
|
510
|
-
posAttrs[
|
|
505
|
+
posAttrs['w:vertAnchor'] = pos.verticalAnchor;
|
|
511
506
|
if (pos.horizontalAlignment)
|
|
512
|
-
posAttrs[
|
|
507
|
+
posAttrs['w:tblpXSpec'] = pos.horizontalAlignment;
|
|
513
508
|
if (pos.verticalAlignment)
|
|
514
|
-
posAttrs[
|
|
509
|
+
posAttrs['w:tblpYSpec'] = pos.verticalAlignment;
|
|
515
510
|
if (pos.leftFromText !== undefined)
|
|
516
|
-
posAttrs[
|
|
511
|
+
posAttrs['w:leftFromText'] = pos.leftFromText;
|
|
517
512
|
if (pos.rightFromText !== undefined)
|
|
518
|
-
posAttrs[
|
|
513
|
+
posAttrs['w:rightFromText'] = pos.rightFromText;
|
|
519
514
|
if (pos.topFromText !== undefined)
|
|
520
|
-
posAttrs[
|
|
515
|
+
posAttrs['w:topFromText'] = pos.topFromText;
|
|
521
516
|
if (pos.bottomFromText !== undefined)
|
|
522
|
-
posAttrs[
|
|
517
|
+
posAttrs['w:bottomFromText'] = pos.bottomFromText;
|
|
523
518
|
if (Object.keys(posAttrs).length > 0) {
|
|
524
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
519
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblpPr', posAttrs));
|
|
525
520
|
}
|
|
526
521
|
}
|
|
527
522
|
if (this.formatting.overlap !== undefined) {
|
|
528
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
529
|
-
|
|
523
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblOverlap', {
|
|
524
|
+
'w:val': this.formatting.overlap ? 'overlap' : 'never',
|
|
530
525
|
}));
|
|
531
526
|
}
|
|
532
527
|
if (this.formatting.bidiVisual) {
|
|
533
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
528
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('bidiVisual'));
|
|
534
529
|
}
|
|
535
530
|
if (this.formatting.width !== undefined) {
|
|
536
|
-
const widthType = this.formatting.widthType ||
|
|
537
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
538
|
-
|
|
539
|
-
|
|
531
|
+
const widthType = this.formatting.widthType || 'dxa';
|
|
532
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblW', {
|
|
533
|
+
'w:w': this.formatting.width,
|
|
534
|
+
'w:type': widthType,
|
|
540
535
|
}));
|
|
541
536
|
}
|
|
542
537
|
if (this.formatting.alignment) {
|
|
543
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
538
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('jc', { 'w:val': this.formatting.alignment }));
|
|
544
539
|
}
|
|
545
540
|
if (this.formatting.cellSpacing !== undefined) {
|
|
546
|
-
const cellSpacingType = this.formatting.cellSpacingType ||
|
|
547
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
548
|
-
|
|
549
|
-
|
|
541
|
+
const cellSpacingType = this.formatting.cellSpacingType || 'dxa';
|
|
542
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblCellSpacing', {
|
|
543
|
+
'w:w': this.formatting.cellSpacing,
|
|
544
|
+
'w:type': cellSpacingType,
|
|
550
545
|
}));
|
|
551
546
|
}
|
|
552
547
|
if (this.formatting.indent !== undefined) {
|
|
553
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
554
|
-
|
|
555
|
-
|
|
548
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblInd', {
|
|
549
|
+
'w:w': this.formatting.indent,
|
|
550
|
+
'w:type': 'dxa',
|
|
556
551
|
}));
|
|
557
552
|
}
|
|
558
553
|
if (this.formatting.borders) {
|
|
559
554
|
const borderElements = [];
|
|
560
555
|
const borders = this.formatting.borders;
|
|
561
556
|
if (borders.top) {
|
|
562
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
557
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('top', borders.top));
|
|
563
558
|
}
|
|
564
559
|
if (borders.left) {
|
|
565
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
560
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('left', borders.left));
|
|
566
561
|
}
|
|
567
562
|
if (borders.bottom) {
|
|
568
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
563
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('bottom', borders.bottom));
|
|
569
564
|
}
|
|
570
565
|
if (borders.right) {
|
|
571
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
566
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('right', borders.right));
|
|
572
567
|
}
|
|
573
568
|
if (borders.insideH) {
|
|
574
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
569
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('insideH', borders.insideH));
|
|
575
570
|
}
|
|
576
571
|
if (borders.insideV) {
|
|
577
|
-
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder(
|
|
572
|
+
borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('insideV', borders.insideV));
|
|
578
573
|
}
|
|
579
574
|
if (borderElements.length > 0) {
|
|
580
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
575
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w('tblBorders', undefined, borderElements));
|
|
581
576
|
}
|
|
582
577
|
}
|
|
583
578
|
if (this.formatting.shading) {
|
|
584
579
|
const shdAttrs = (0, CommonTypes_1.buildShadingAttributes)(this.formatting.shading);
|
|
585
580
|
if (Object.keys(shdAttrs).length > 0) {
|
|
586
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
581
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('shd', shdAttrs));
|
|
587
582
|
}
|
|
588
583
|
}
|
|
589
584
|
if (this.formatting.layout) {
|
|
590
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
585
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblLayout', { 'w:type': this.formatting.layout }));
|
|
591
586
|
}
|
|
592
587
|
if (this.formatting.cellMargins) {
|
|
593
588
|
const marginElements = [];
|
|
594
589
|
if (this.formatting.cellMargins.top !== undefined) {
|
|
595
|
-
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
596
|
-
|
|
597
|
-
|
|
590
|
+
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf('top', {
|
|
591
|
+
'w:w': this.formatting.cellMargins.top,
|
|
592
|
+
'w:type': 'dxa',
|
|
598
593
|
}));
|
|
599
594
|
}
|
|
600
595
|
if (this.formatting.cellMargins.left !== undefined) {
|
|
601
|
-
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
602
|
-
|
|
603
|
-
|
|
596
|
+
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf('left', {
|
|
597
|
+
'w:w': this.formatting.cellMargins.left,
|
|
598
|
+
'w:type': 'dxa',
|
|
604
599
|
}));
|
|
605
600
|
}
|
|
606
601
|
if (this.formatting.cellMargins.bottom !== undefined) {
|
|
607
|
-
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
608
|
-
|
|
609
|
-
|
|
602
|
+
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf('bottom', {
|
|
603
|
+
'w:w': this.formatting.cellMargins.bottom,
|
|
604
|
+
'w:type': 'dxa',
|
|
610
605
|
}));
|
|
611
606
|
}
|
|
612
607
|
if (this.formatting.cellMargins.right !== undefined) {
|
|
613
|
-
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
614
|
-
|
|
615
|
-
|
|
608
|
+
marginElements.push(XMLBuilder_1.XMLBuilder.wSelf('right', {
|
|
609
|
+
'w:w': this.formatting.cellMargins.right,
|
|
610
|
+
'w:type': 'dxa',
|
|
616
611
|
}));
|
|
617
612
|
}
|
|
618
613
|
if (marginElements.length > 0) {
|
|
619
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
614
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w('tblCellMar', undefined, marginElements));
|
|
620
615
|
}
|
|
621
616
|
}
|
|
622
617
|
if (this.formatting.tblLook) {
|
|
623
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
618
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblLook', { 'w:val': this.formatting.tblLook }));
|
|
624
619
|
}
|
|
625
620
|
if (this.formatting.caption) {
|
|
626
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
621
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblCaption', { 'w:val': this.formatting.caption }));
|
|
627
622
|
}
|
|
628
623
|
if (this.formatting.description) {
|
|
629
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
630
|
-
|
|
624
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblDescription', {
|
|
625
|
+
'w:val': this.formatting.description,
|
|
631
626
|
}));
|
|
632
627
|
}
|
|
633
628
|
if (this.tblPrChange) {
|
|
634
629
|
const changeAttrs = {
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
630
|
+
'w:id': this.tblPrChange.id,
|
|
631
|
+
'w:author': this.tblPrChange.author,
|
|
632
|
+
'w:date': this.tblPrChange.date,
|
|
638
633
|
};
|
|
639
634
|
const prevTblPrChildren = [];
|
|
640
635
|
const prev = this.tblPrChange.previousProperties;
|
|
641
636
|
if (prev) {
|
|
642
637
|
if (prev.style) {
|
|
643
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
638
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblStyle', { 'w:val': prev.style }));
|
|
644
639
|
}
|
|
645
640
|
if (prev.width !== undefined) {
|
|
646
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
647
|
-
|
|
648
|
-
|
|
641
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblW', {
|
|
642
|
+
'w:w': prev.width,
|
|
643
|
+
'w:type': prev.widthType || 'dxa',
|
|
649
644
|
}));
|
|
650
645
|
}
|
|
651
646
|
if (prev.alignment) {
|
|
652
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
647
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('jc', { 'w:val': prev.alignment }));
|
|
653
648
|
}
|
|
654
649
|
if (prev.indent !== undefined) {
|
|
655
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
650
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblInd', { 'w:w': prev.indent, 'w:type': 'dxa' }));
|
|
656
651
|
}
|
|
657
652
|
if (prev.borders) {
|
|
658
653
|
const borderChildren = [];
|
|
@@ -671,61 +666,64 @@ class Table {
|
|
|
671
666
|
}
|
|
672
667
|
}
|
|
673
668
|
if (borderChildren.length > 0) {
|
|
674
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
669
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.w('tblBorders', undefined, borderChildren));
|
|
675
670
|
}
|
|
676
671
|
}
|
|
677
672
|
if (prev.shading) {
|
|
678
673
|
const shadingAttrs = (0, CommonTypes_1.buildShadingAttributes)(prev.shading);
|
|
679
674
|
if (Object.keys(shadingAttrs).length > 0) {
|
|
680
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
675
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('shd', shadingAttrs));
|
|
681
676
|
}
|
|
682
677
|
}
|
|
683
678
|
if (prev.layout) {
|
|
684
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
679
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblLayout', { 'w:type': prev.layout }));
|
|
685
680
|
}
|
|
686
681
|
if (prev.cellSpacing !== undefined) {
|
|
687
|
-
const csAttrs = {
|
|
688
|
-
|
|
682
|
+
const csAttrs = {
|
|
683
|
+
'w:w': prev.cellSpacing,
|
|
684
|
+
'w:type': prev.cellSpacingType || 'dxa',
|
|
685
|
+
};
|
|
686
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblCellSpacing', csAttrs));
|
|
689
687
|
}
|
|
690
688
|
if (prev.bidiVisual) {
|
|
691
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
689
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('bidiVisual'));
|
|
692
690
|
}
|
|
693
691
|
if (prev.cellMargins) {
|
|
694
692
|
const cmChildren = [];
|
|
695
693
|
for (const side of ['top', 'start', 'bottom', 'end']) {
|
|
696
694
|
const val = prev.cellMargins[side];
|
|
697
695
|
if (val !== undefined) {
|
|
698
|
-
cmChildren.push(XMLBuilder_1.XMLBuilder.wSelf(side, {
|
|
696
|
+
cmChildren.push(XMLBuilder_1.XMLBuilder.wSelf(side, { 'w:w': val, 'w:type': 'dxa' }));
|
|
699
697
|
}
|
|
700
698
|
}
|
|
701
699
|
if (cmChildren.length > 0) {
|
|
702
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
700
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.w('tblCellMar', undefined, cmChildren));
|
|
703
701
|
}
|
|
704
702
|
}
|
|
705
703
|
if (prev.tblLook) {
|
|
706
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
704
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblLook', { 'w:val': prev.tblLook }));
|
|
707
705
|
}
|
|
708
706
|
if (prev.tblStyleRowBandSize !== undefined) {
|
|
709
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
707
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblStyleRowBandSize', { 'w:val': prev.tblStyleRowBandSize }));
|
|
710
708
|
}
|
|
711
709
|
if (prev.tblStyleColBandSize !== undefined) {
|
|
712
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
710
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblStyleColBandSize', { 'w:val': prev.tblStyleColBandSize }));
|
|
713
711
|
}
|
|
714
712
|
if (prev.overlap) {
|
|
715
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
713
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblOverlap', { 'w:val': prev.overlap }));
|
|
716
714
|
}
|
|
717
715
|
if (prev.caption) {
|
|
718
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
716
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblCaption', { 'w:val': prev.caption }));
|
|
719
717
|
}
|
|
720
718
|
if (prev.description) {
|
|
721
|
-
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
719
|
+
prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblDescription', { 'w:val': prev.description }));
|
|
722
720
|
}
|
|
723
721
|
}
|
|
724
|
-
const prevTblPr = XMLBuilder_1.XMLBuilder.w(
|
|
725
|
-
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
722
|
+
const prevTblPr = XMLBuilder_1.XMLBuilder.w('tblPr', undefined, prevTblPrChildren);
|
|
723
|
+
tblPrChildren.push(XMLBuilder_1.XMLBuilder.w('tblPrChange', changeAttrs, [prevTblPr]));
|
|
726
724
|
}
|
|
727
725
|
const tableChildren = [];
|
|
728
|
-
tableChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
726
|
+
tableChildren.push(XMLBuilder_1.XMLBuilder.w('tblPr', undefined, tblPrChildren));
|
|
729
727
|
const gridWidths = this.formatting.tableGrid;
|
|
730
728
|
const maxColumns = gridWidths
|
|
731
729
|
? gridWidths.length
|
|
@@ -734,17 +732,17 @@ class Table {
|
|
|
734
732
|
const tblGridChildren = [];
|
|
735
733
|
for (let i = 0; i < gridColumnCount; i++) {
|
|
736
734
|
if (gridWidths?.[i] !== undefined) {
|
|
737
|
-
tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
735
|
+
tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf('gridCol', { 'w:w': gridWidths[i] }));
|
|
738
736
|
}
|
|
739
737
|
else {
|
|
740
|
-
tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
738
|
+
tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf('gridCol', { 'w:w': 2880 }));
|
|
741
739
|
}
|
|
742
740
|
}
|
|
743
|
-
tableChildren.push(XMLBuilder_1.XMLBuilder.w(
|
|
741
|
+
tableChildren.push(XMLBuilder_1.XMLBuilder.w('tblGrid', undefined, tblGridChildren));
|
|
744
742
|
for (const row of this.rows) {
|
|
745
743
|
tableChildren.push(row.toXML());
|
|
746
744
|
}
|
|
747
|
-
return XMLBuilder_1.XMLBuilder.w(
|
|
745
|
+
return XMLBuilder_1.XMLBuilder.w('tbl', undefined, tableChildren);
|
|
748
746
|
}
|
|
749
747
|
removeRow(index) {
|
|
750
748
|
if (index >= 0 && index < this.rows.length) {
|
|
@@ -842,17 +840,14 @@ class Table {
|
|
|
842
840
|
return Math.max(...this.rows.map((row) => row.getCellCount()));
|
|
843
841
|
}
|
|
844
842
|
setColumnWidths(widths) {
|
|
845
|
-
this.formatting.tableGrid = widths.map(w => w === null ? undefined : w);
|
|
843
|
+
this.formatting.tableGrid = widths.map((w) => (w === null ? undefined : w));
|
|
846
844
|
return this;
|
|
847
845
|
}
|
|
848
846
|
static create(rows, columns, formatting) {
|
|
849
847
|
return new Table(rows, columns, formatting);
|
|
850
848
|
}
|
|
851
849
|
mergeCells(startRow, startCol, endRow, endCol) {
|
|
852
|
-
if (startRow < 0 ||
|
|
853
|
-
endRow >= this.rows.length ||
|
|
854
|
-
startCol < 0 ||
|
|
855
|
-
endCol < 0) {
|
|
850
|
+
if (startRow < 0 || endRow >= this.rows.length || startCol < 0 || endCol < 0) {
|
|
856
851
|
return this;
|
|
857
852
|
}
|
|
858
853
|
if (endRow < startRow || endCol < startCol) {
|
|
@@ -869,7 +864,7 @@ class Table {
|
|
|
869
864
|
continue;
|
|
870
865
|
const vMerge = checkCell.getVerticalMerge();
|
|
871
866
|
if (vMerge) {
|
|
872
|
-
if (row === startRow && col === startCol && vMerge ===
|
|
867
|
+
if (row === startRow && col === startCol && vMerge === 'restart') {
|
|
873
868
|
continue;
|
|
874
869
|
}
|
|
875
870
|
throw new Error(`Cannot merge cells: Cell at row ${row}, column ${col} is already part of a vertical merge region. ` +
|
|
@@ -889,11 +884,11 @@ class Table {
|
|
|
889
884
|
cell.setColumnSpan(endCol - startCol + 1);
|
|
890
885
|
}
|
|
891
886
|
if (endRow > startRow) {
|
|
892
|
-
cell.setVerticalMerge(
|
|
887
|
+
cell.setVerticalMerge('restart');
|
|
893
888
|
for (let row = startRow + 1; row <= endRow; row++) {
|
|
894
889
|
const mergeCell = this.getCell(row, startCol);
|
|
895
890
|
if (mergeCell) {
|
|
896
|
-
mergeCell.setVerticalMerge(
|
|
891
|
+
mergeCell.setVerticalMerge('continue');
|
|
897
892
|
if (endCol > startCol) {
|
|
898
893
|
mergeCell.setColumnSpan(endCol - startCol + 1);
|
|
899
894
|
}
|
|
@@ -932,7 +927,7 @@ class Table {
|
|
|
932
927
|
endCol < 0 ||
|
|
933
928
|
endRow < startRow ||
|
|
934
929
|
endCol < startCol) {
|
|
935
|
-
conflicts.push(
|
|
930
|
+
conflicts.push('Invalid cell range specified');
|
|
936
931
|
return { valid: false, conflicts };
|
|
937
932
|
}
|
|
938
933
|
for (let row = startRow; row <= endRow; row++) {
|
|
@@ -944,7 +939,7 @@ class Table {
|
|
|
944
939
|
}
|
|
945
940
|
const vMerge = checkCell.getVerticalMerge();
|
|
946
941
|
if (vMerge) {
|
|
947
|
-
if (!(row === startRow && col === startCol && vMerge ===
|
|
942
|
+
if (!(row === startRow && col === startCol && vMerge === 'restart')) {
|
|
948
943
|
conflicts.push(`Cell at row ${row}, column ${col} is part of a vertical merge (${vMerge})`);
|
|
949
944
|
}
|
|
950
945
|
}
|
|
@@ -1054,8 +1049,8 @@ class Table {
|
|
|
1054
1049
|
rowsToSort.sort((a, b) => {
|
|
1055
1050
|
const cellA = a.getCell(columnIndex);
|
|
1056
1051
|
const cellB = b.getCell(columnIndex);
|
|
1057
|
-
const textA = cellA?.getText().trim() ||
|
|
1058
|
-
const textB = cellB?.getText().trim() ||
|
|
1052
|
+
const textA = cellA?.getText().trim() || '';
|
|
1053
|
+
const textB = cellB?.getText().trim() || '';
|
|
1059
1054
|
let comparison;
|
|
1060
1055
|
if (numeric) {
|
|
1061
1056
|
const numA = parseFloat(textA) || 0;
|