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.
Files changed (371) hide show
  1. package/README.md +759 -754
  2. package/dist/constants/legacyCompatFlags.js +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.js.map +1 -1
  5. package/dist/core/Document.d.ts +50 -50
  6. package/dist/core/Document.d.ts.map +1 -1
  7. package/dist/core/Document.js +483 -471
  8. package/dist/core/Document.js.map +1 -1
  9. package/dist/core/DocumentContent.d.ts +9 -9
  10. package/dist/core/DocumentContent.d.ts.map +1 -1
  11. package/dist/core/DocumentContent.js +1 -1
  12. package/dist/core/DocumentContent.js.map +1 -1
  13. package/dist/core/DocumentGenerator.d.ts +11 -11
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +251 -251
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.js.map +1 -1
  18. package/dist/core/DocumentParser.d.ts +15 -15
  19. package/dist/core/DocumentParser.d.ts.map +1 -1
  20. package/dist/core/DocumentParser.js +2123 -2155
  21. package/dist/core/DocumentParser.js.map +1 -1
  22. package/dist/core/DocumentValidator.d.ts.map +1 -1
  23. package/dist/core/DocumentValidator.js +2 -5
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.js.map +1 -1
  26. package/dist/core/RelationshipManager.d.ts.map +1 -1
  27. package/dist/core/RelationshipManager.js +3 -3
  28. package/dist/core/RelationshipManager.js.map +1 -1
  29. package/dist/elements/AlternateContent.js.map +1 -1
  30. package/dist/elements/Bookmark.d.ts.map +1 -1
  31. package/dist/elements/Bookmark.js +3 -1
  32. package/dist/elements/Bookmark.js.map +1 -1
  33. package/dist/elements/BookmarkManager.d.ts.map +1 -1
  34. package/dist/elements/BookmarkManager.js.map +1 -1
  35. package/dist/elements/Comment.d.ts.map +1 -1
  36. package/dist/elements/Comment.js +9 -6
  37. package/dist/elements/Comment.js.map +1 -1
  38. package/dist/elements/CommentManager.d.ts.map +1 -1
  39. package/dist/elements/CommentManager.js +18 -17
  40. package/dist/elements/CommentManager.js.map +1 -1
  41. package/dist/elements/CommonTypes.d.ts +21 -21
  42. package/dist/elements/CommonTypes.d.ts.map +1 -1
  43. package/dist/elements/CommonTypes.js +56 -56
  44. package/dist/elements/CommonTypes.js.map +1 -1
  45. package/dist/elements/CustomXml.js.map +1 -1
  46. package/dist/elements/Endnote.d.ts.map +1 -1
  47. package/dist/elements/Endnote.js +6 -6
  48. package/dist/elements/Endnote.js.map +1 -1
  49. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  50. package/dist/elements/EndnoteManager.js +6 -7
  51. package/dist/elements/EndnoteManager.js.map +1 -1
  52. package/dist/elements/Field.d.ts.map +1 -1
  53. package/dist/elements/Field.js +82 -25
  54. package/dist/elements/Field.js.map +1 -1
  55. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  56. package/dist/elements/FieldHelpers.js.map +1 -1
  57. package/dist/elements/FontManager.d.ts.map +1 -1
  58. package/dist/elements/FontManager.js +1 -1
  59. package/dist/elements/FontManager.js.map +1 -1
  60. package/dist/elements/Footer.js +2 -2
  61. package/dist/elements/Footer.js.map +1 -1
  62. package/dist/elements/Footnote.d.ts.map +1 -1
  63. package/dist/elements/Footnote.js +6 -6
  64. package/dist/elements/Footnote.js.map +1 -1
  65. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  66. package/dist/elements/FootnoteManager.js +6 -7
  67. package/dist/elements/FootnoteManager.js.map +1 -1
  68. package/dist/elements/Header.js +2 -2
  69. package/dist/elements/Header.js.map +1 -1
  70. package/dist/elements/HeaderFooterManager.js.map +1 -1
  71. package/dist/elements/Hyperlink.d.ts +5 -3
  72. package/dist/elements/Hyperlink.d.ts.map +1 -1
  73. package/dist/elements/Hyperlink.js +134 -76
  74. package/dist/elements/Hyperlink.js.map +1 -1
  75. package/dist/elements/Image.d.ts.map +1 -1
  76. package/dist/elements/Image.js +238 -106
  77. package/dist/elements/Image.js.map +1 -1
  78. package/dist/elements/ImageManager.d.ts.map +1 -1
  79. package/dist/elements/ImageManager.js +1 -1
  80. package/dist/elements/ImageManager.js.map +1 -1
  81. package/dist/elements/ImageRun.js +1 -1
  82. package/dist/elements/ImageRun.js.map +1 -1
  83. package/dist/elements/MathElement.js.map +1 -1
  84. package/dist/elements/Paragraph.d.ts +24 -24
  85. package/dist/elements/Paragraph.d.ts.map +1 -1
  86. package/dist/elements/Paragraph.js +181 -188
  87. package/dist/elements/Paragraph.js.map +1 -1
  88. package/dist/elements/PreservedElement.js.map +1 -1
  89. package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
  90. package/dist/elements/PropertyChangeTypes.js +6 -6
  91. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  92. package/dist/elements/RangeMarker.d.ts.map +1 -1
  93. package/dist/elements/RangeMarker.js.map +1 -1
  94. package/dist/elements/Revision.d.ts.map +1 -1
  95. package/dist/elements/Revision.js +4 -5
  96. package/dist/elements/Revision.js.map +1 -1
  97. package/dist/elements/RevisionContent.js.map +1 -1
  98. package/dist/elements/RevisionManager.d.ts.map +1 -1
  99. package/dist/elements/RevisionManager.js +40 -48
  100. package/dist/elements/RevisionManager.js.map +1 -1
  101. package/dist/elements/Run.d.ts +16 -16
  102. package/dist/elements/Run.d.ts.map +1 -1
  103. package/dist/elements/Run.js +256 -238
  104. package/dist/elements/Run.js.map +1 -1
  105. package/dist/elements/Section.d.ts.map +1 -1
  106. package/dist/elements/Section.js +36 -11
  107. package/dist/elements/Section.js.map +1 -1
  108. package/dist/elements/Shape.d.ts.map +1 -1
  109. package/dist/elements/Shape.js.map +1 -1
  110. package/dist/elements/StructuredDocumentTag.d.ts +6 -6
  111. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  112. package/dist/elements/StructuredDocumentTag.js +99 -104
  113. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  114. package/dist/elements/Table.d.ts +11 -11
  115. package/dist/elements/Table.d.ts.map +1 -1
  116. package/dist/elements/Table.js +102 -107
  117. package/dist/elements/Table.js.map +1 -1
  118. package/dist/elements/TableCell.d.ts +10 -10
  119. package/dist/elements/TableCell.d.ts.map +1 -1
  120. package/dist/elements/TableCell.js +105 -106
  121. package/dist/elements/TableCell.js.map +1 -1
  122. package/dist/elements/TableGridChange.d.ts.map +1 -1
  123. package/dist/elements/TableGridChange.js.map +1 -1
  124. package/dist/elements/TableOfContents.d.ts.map +1 -1
  125. package/dist/elements/TableOfContents.js +4 -4
  126. package/dist/elements/TableOfContents.js.map +1 -1
  127. package/dist/elements/TableOfContentsElement.js.map +1 -1
  128. package/dist/elements/TableRow.d.ts.map +1 -1
  129. package/dist/elements/TableRow.js +13 -6
  130. package/dist/elements/TableRow.js.map +1 -1
  131. package/dist/elements/TextBox.d.ts.map +1 -1
  132. package/dist/elements/TextBox.js +3 -5
  133. package/dist/elements/TextBox.js.map +1 -1
  134. package/dist/formatting/AbstractNumbering.d.ts +4 -4
  135. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  136. package/dist/formatting/AbstractNumbering.js +54 -49
  137. package/dist/formatting/AbstractNumbering.js.map +1 -1
  138. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  139. package/dist/formatting/NumberingInstance.js +1 -3
  140. package/dist/formatting/NumberingInstance.js.map +1 -1
  141. package/dist/formatting/NumberingLevel.d.ts +5 -5
  142. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  143. package/dist/formatting/NumberingLevel.js +119 -125
  144. package/dist/formatting/NumberingLevel.js.map +1 -1
  145. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  146. package/dist/formatting/NumberingManager.js +9 -9
  147. package/dist/formatting/NumberingManager.js.map +1 -1
  148. package/dist/formatting/Style.d.ts +11 -11
  149. package/dist/formatting/Style.d.ts.map +1 -1
  150. package/dist/formatting/Style.js +219 -247
  151. package/dist/formatting/Style.js.map +1 -1
  152. package/dist/formatting/StylesManager.d.ts +2 -2
  153. package/dist/formatting/StylesManager.d.ts.map +1 -1
  154. package/dist/formatting/StylesManager.js +96 -102
  155. package/dist/formatting/StylesManager.js.map +1 -1
  156. package/dist/helpers/CleanupHelper.d.ts +1 -1
  157. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  158. package/dist/helpers/CleanupHelper.js +6 -6
  159. package/dist/helpers/CleanupHelper.js.map +1 -1
  160. package/dist/images/ImageOptimizer.js +7 -7
  161. package/dist/images/ImageOptimizer.js.map +1 -1
  162. package/dist/index.d.ts +9 -9
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js.map +1 -1
  165. package/dist/managers/DrawingManager.js.map +1 -1
  166. package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
  167. package/dist/tracking/DocumentTrackingContext.js +23 -7
  168. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  169. package/dist/tracking/TrackingContext.d.ts.map +1 -1
  170. package/dist/tracking/TrackingContext.js.map +1 -1
  171. package/dist/types/compatibility-types.js.map +1 -1
  172. package/dist/types/formatting.js.map +1 -1
  173. package/dist/types/list-types.d.ts +6 -6
  174. package/dist/types/list-types.js.map +1 -1
  175. package/dist/types/settings-types.js.map +1 -1
  176. package/dist/types/styleConfig.d.ts +2 -2
  177. package/dist/types/styleConfig.js.map +1 -1
  178. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  179. package/dist/utils/ChangelogGenerator.js +97 -101
  180. package/dist/utils/ChangelogGenerator.js.map +1 -1
  181. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  182. package/dist/utils/CompatibilityUpgrader.js +1 -1
  183. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  184. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  185. package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
  186. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  187. package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
  188. package/dist/utils/MoveOperationHelper.js +1 -1
  189. package/dist/utils/MoveOperationHelper.js.map +1 -1
  190. package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
  191. package/dist/utils/RevisionAwareProcessor.js +2 -4
  192. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  193. package/dist/utils/RevisionWalker.d.ts.map +1 -1
  194. package/dist/utils/RevisionWalker.js +4 -12
  195. package/dist/utils/RevisionWalker.js.map +1 -1
  196. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  197. package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
  198. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  199. package/dist/utils/ShadingResolver.d.ts.map +1 -1
  200. package/dist/utils/ShadingResolver.js +1 -1
  201. package/dist/utils/ShadingResolver.js.map +1 -1
  202. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  203. package/dist/utils/acceptRevisions.js +23 -12
  204. package/dist/utils/acceptRevisions.js.map +1 -1
  205. package/dist/utils/cnfStyleDecoder.d.ts +1 -1
  206. package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
  207. package/dist/utils/cnfStyleDecoder.js +40 -40
  208. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  209. package/dist/utils/corruptionDetection.d.ts.map +1 -1
  210. package/dist/utils/corruptionDetection.js.map +1 -1
  211. package/dist/utils/dateFormatting.js.map +1 -1
  212. package/dist/utils/deepClone.js +1 -1
  213. package/dist/utils/deepClone.js.map +1 -1
  214. package/dist/utils/diagnostics.d.ts.map +1 -1
  215. package/dist/utils/diagnostics.js +1 -1
  216. package/dist/utils/diagnostics.js.map +1 -1
  217. package/dist/utils/errorHandling.js.map +1 -1
  218. package/dist/utils/formatting.d.ts.map +1 -1
  219. package/dist/utils/formatting.js +10 -2
  220. package/dist/utils/formatting.js.map +1 -1
  221. package/dist/utils/list-detection.d.ts +2 -2
  222. package/dist/utils/list-detection.d.ts.map +1 -1
  223. package/dist/utils/list-detection.js +21 -23
  224. package/dist/utils/list-detection.js.map +1 -1
  225. package/dist/utils/logger.d.ts.map +1 -1
  226. package/dist/utils/logger.js +12 -7
  227. package/dist/utils/logger.js.map +1 -1
  228. package/dist/utils/parsingHelpers.js.map +1 -1
  229. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  230. package/dist/utils/stripTrackedChanges.js +3 -3
  231. package/dist/utils/stripTrackedChanges.js.map +1 -1
  232. package/dist/utils/textDiff.d.ts +1 -1
  233. package/dist/utils/textDiff.js +8 -8
  234. package/dist/utils/textDiff.js.map +1 -1
  235. package/dist/utils/units.js.map +1 -1
  236. package/dist/utils/validation.d.ts.map +1 -1
  237. package/dist/utils/validation.js +24 -7
  238. package/dist/utils/validation.js.map +1 -1
  239. package/dist/utils/xmlSanitization.d.ts.map +1 -1
  240. package/dist/utils/xmlSanitization.js +3 -3
  241. package/dist/utils/xmlSanitization.js.map +1 -1
  242. package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
  243. package/dist/validation/RevisionAutoFixer.js +5 -5
  244. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  245. package/dist/validation/RevisionValidator.d.ts.map +1 -1
  246. package/dist/validation/RevisionValidator.js +7 -9
  247. package/dist/validation/RevisionValidator.js.map +1 -1
  248. package/dist/validation/ValidationRules.js +3 -3
  249. package/dist/validation/ValidationRules.js.map +1 -1
  250. package/dist/validation/index.js.map +1 -1
  251. package/dist/xml/XMLBuilder.d.ts +1 -1
  252. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  253. package/dist/xml/XMLBuilder.js +98 -100
  254. package/dist/xml/XMLBuilder.js.map +1 -1
  255. package/dist/xml/XMLParser.d.ts.map +1 -1
  256. package/dist/xml/XMLParser.js +61 -66
  257. package/dist/xml/XMLParser.js.map +1 -1
  258. package/dist/zip/ZipHandler.d.ts.map +1 -1
  259. package/dist/zip/ZipHandler.js.map +1 -1
  260. package/dist/zip/ZipReader.d.ts.map +1 -1
  261. package/dist/zip/ZipReader.js +1 -3
  262. package/dist/zip/ZipReader.js.map +1 -1
  263. package/dist/zip/ZipWriter.d.ts +1 -1
  264. package/dist/zip/ZipWriter.d.ts.map +1 -1
  265. package/dist/zip/ZipWriter.js +28 -36
  266. package/dist/zip/ZipWriter.js.map +1 -1
  267. package/dist/zip/types.js +1 -1
  268. package/dist/zip/types.js.map +1 -1
  269. package/package.json +92 -92
  270. package/src/__tests__/helper-methods.test.ts +512 -512
  271. package/src/constants/legacyCompatFlags.ts +138 -138
  272. package/src/constants/limits.ts +50 -50
  273. package/src/core/Document.ts +985 -1145
  274. package/src/core/DocumentContent.ts +461 -467
  275. package/src/core/DocumentGenerator.ts +1133 -1104
  276. package/src/core/DocumentIdManager.ts +158 -158
  277. package/src/core/DocumentParser.ts +2347 -2716
  278. package/src/core/DocumentValidator.ts +363 -372
  279. package/src/core/Relationship.ts +367 -367
  280. package/src/core/RelationshipManager.ts +429 -428
  281. package/src/elements/AlternateContent.ts +42 -42
  282. package/src/elements/Bookmark.ts +212 -210
  283. package/src/elements/BookmarkManager.ts +247 -250
  284. package/src/elements/Comment.ts +356 -359
  285. package/src/elements/CommentManager.ts +499 -502
  286. package/src/elements/CommonTypes.ts +524 -549
  287. package/src/elements/CustomXml.ts +36 -36
  288. package/src/elements/Endnote.ts +221 -217
  289. package/src/elements/EndnoteManager.ts +246 -249
  290. package/src/elements/Field.ts +1292 -1233
  291. package/src/elements/FieldHelpers.ts +329 -333
  292. package/src/elements/FontManager.ts +336 -339
  293. package/src/elements/Footer.ts +269 -269
  294. package/src/elements/Footnote.ts +221 -217
  295. package/src/elements/FootnoteManager.ts +246 -249
  296. package/src/elements/Header.ts +269 -269
  297. package/src/elements/HeaderFooterManager.ts +219 -219
  298. package/src/elements/Hyperlink.ts +1288 -1193
  299. package/src/elements/Image.ts +1982 -1756
  300. package/src/elements/ImageManager.ts +437 -432
  301. package/src/elements/ImageRun.ts +59 -59
  302. package/src/elements/MathElement.ts +65 -65
  303. package/src/elements/Paragraph.ts +4347 -4287
  304. package/src/elements/PreservedElement.ts +53 -53
  305. package/src/elements/PropertyChangeTypes.ts +458 -442
  306. package/src/elements/RangeMarker.ts +382 -400
  307. package/src/elements/Revision.ts +1198 -1217
  308. package/src/elements/RevisionContent.ts +73 -73
  309. package/src/elements/RevisionManager.ts +1070 -1070
  310. package/src/elements/Run.ts +3103 -3073
  311. package/src/elements/Section.ts +1521 -1421
  312. package/src/elements/Shape.ts +884 -873
  313. package/src/elements/StructuredDocumentTag.ts +1176 -1207
  314. package/src/elements/Table.ts +2468 -2524
  315. package/src/elements/TableCell.ts +1617 -1621
  316. package/src/elements/TableGridChange.ts +149 -151
  317. package/src/elements/TableOfContents.ts +701 -691
  318. package/src/elements/TableOfContentsElement.ts +89 -89
  319. package/src/elements/TableRow.ts +960 -929
  320. package/src/elements/TextBox.ts +766 -768
  321. package/src/formatting/AbstractNumbering.ts +580 -579
  322. package/src/formatting/NumberingInstance.ts +295 -299
  323. package/src/formatting/NumberingLevel.ts +981 -1040
  324. package/src/formatting/NumberingManager.ts +833 -827
  325. package/src/formatting/Style.ts +1785 -1879
  326. package/src/formatting/StylesManager.ts +1090 -1130
  327. package/src/helpers/CleanupHelper.ts +524 -524
  328. package/src/images/ImageOptimizer.ts +274 -274
  329. package/src/index.ts +559 -554
  330. package/src/managers/DrawingManager.ts +319 -319
  331. package/src/tracking/DocumentTrackingContext.ts +687 -674
  332. package/src/tracking/TrackingContext.ts +175 -173
  333. package/src/types/compatibility-types.ts +49 -49
  334. package/src/types/formatting.ts +210 -210
  335. package/src/types/list-types.ts +14 -14
  336. package/src/types/settings-types.ts +59 -59
  337. package/src/types/styleConfig.ts +189 -189
  338. package/src/utils/ChangelogGenerator.ts +1583 -1581
  339. package/src/utils/CompatibilityUpgrader.ts +235 -237
  340. package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
  341. package/src/utils/MoveOperationHelper.ts +233 -238
  342. package/src/utils/RevisionAwareProcessor.ts +518 -526
  343. package/src/utils/RevisionWalker.ts +427 -457
  344. package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
  345. package/src/utils/ShadingResolver.ts +105 -107
  346. package/src/utils/acceptRevisions.ts +723 -714
  347. package/src/utils/cnfStyleDecoder.ts +212 -217
  348. package/src/utils/corruptionDetection.ts +346 -345
  349. package/src/utils/dateFormatting.ts +20 -20
  350. package/src/utils/deepClone.ts +77 -78
  351. package/src/utils/diagnostics.ts +125 -129
  352. package/src/utils/errorHandling.ts +80 -80
  353. package/src/utils/formatting.ts +220 -213
  354. package/src/utils/list-detection.ts +32 -42
  355. package/src/utils/logger.ts +412 -404
  356. package/src/utils/parsingHelpers.ts +190 -190
  357. package/src/utils/stripTrackedChanges.ts +356 -353
  358. package/src/utils/textDiff.ts +100 -100
  359. package/src/utils/units.ts +421 -421
  360. package/src/utils/validation.ts +553 -542
  361. package/src/utils/xmlSanitization.ts +179 -182
  362. package/src/validation/RevisionAutoFixer.ts +541 -542
  363. package/src/validation/RevisionValidator.ts +470 -460
  364. package/src/validation/ValidationRules.ts +338 -338
  365. package/src/validation/index.ts +30 -30
  366. package/src/xml/XMLBuilder.ts +857 -871
  367. package/src/xml/XMLParser.ts +877 -919
  368. package/src/zip/ZipHandler.ts +629 -637
  369. package/src/zip/ZipReader.ts +295 -299
  370. package/src/zip/ZipWriter.ts +374 -390
  371. package/src/zip/types.ts +116 -116
@@ -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 === "auto" ? "autofit" : 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 || "0000";
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: "4472C4" } }
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("tblStyle", { "w:val": this.formatting.style }));
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["w:tblpX"] = pos.x;
499
+ posAttrs['w:tblpX'] = pos.x;
505
500
  if (pos.y !== undefined)
506
- posAttrs["w:tblpY"] = pos.y;
501
+ posAttrs['w:tblpY'] = pos.y;
507
502
  if (pos.horizontalAnchor)
508
- posAttrs["w:horzAnchor"] = pos.horizontalAnchor;
503
+ posAttrs['w:horzAnchor'] = pos.horizontalAnchor;
509
504
  if (pos.verticalAnchor)
510
- posAttrs["w:vertAnchor"] = pos.verticalAnchor;
505
+ posAttrs['w:vertAnchor'] = pos.verticalAnchor;
511
506
  if (pos.horizontalAlignment)
512
- posAttrs["w:tblpXSpec"] = pos.horizontalAlignment;
507
+ posAttrs['w:tblpXSpec'] = pos.horizontalAlignment;
513
508
  if (pos.verticalAlignment)
514
- posAttrs["w:tblpYSpec"] = pos.verticalAlignment;
509
+ posAttrs['w:tblpYSpec'] = pos.verticalAlignment;
515
510
  if (pos.leftFromText !== undefined)
516
- posAttrs["w:leftFromText"] = pos.leftFromText;
511
+ posAttrs['w:leftFromText'] = pos.leftFromText;
517
512
  if (pos.rightFromText !== undefined)
518
- posAttrs["w:rightFromText"] = pos.rightFromText;
513
+ posAttrs['w:rightFromText'] = pos.rightFromText;
519
514
  if (pos.topFromText !== undefined)
520
- posAttrs["w:topFromText"] = pos.topFromText;
515
+ posAttrs['w:topFromText'] = pos.topFromText;
521
516
  if (pos.bottomFromText !== undefined)
522
- posAttrs["w:bottomFromText"] = pos.bottomFromText;
517
+ posAttrs['w:bottomFromText'] = pos.bottomFromText;
523
518
  if (Object.keys(posAttrs).length > 0) {
524
- tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf("tblpPr", posAttrs));
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("tblOverlap", {
529
- "w:val": this.formatting.overlap ? "overlap" : "never",
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("bidiVisual"));
528
+ tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('bidiVisual'));
534
529
  }
535
530
  if (this.formatting.width !== undefined) {
536
- const widthType = this.formatting.widthType || "dxa";
537
- tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf("tblW", {
538
- "w:w": this.formatting.width,
539
- "w:type": widthType,
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("jc", { "w:val": this.formatting.alignment }));
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 || "dxa";
547
- tblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf("tblCellSpacing", {
548
- "w:w": this.formatting.cellSpacing,
549
- "w:type": cellSpacingType,
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("tblInd", {
554
- "w:w": this.formatting.indent,
555
- "w:type": "dxa",
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("top", borders.top));
557
+ borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('top', borders.top));
563
558
  }
564
559
  if (borders.left) {
565
- borderElements.push(XMLBuilder_1.XMLBuilder.createBorder("left", borders.left));
560
+ borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('left', borders.left));
566
561
  }
567
562
  if (borders.bottom) {
568
- borderElements.push(XMLBuilder_1.XMLBuilder.createBorder("bottom", borders.bottom));
563
+ borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('bottom', borders.bottom));
569
564
  }
570
565
  if (borders.right) {
571
- borderElements.push(XMLBuilder_1.XMLBuilder.createBorder("right", borders.right));
566
+ borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('right', borders.right));
572
567
  }
573
568
  if (borders.insideH) {
574
- borderElements.push(XMLBuilder_1.XMLBuilder.createBorder("insideH", borders.insideH));
569
+ borderElements.push(XMLBuilder_1.XMLBuilder.createBorder('insideH', borders.insideH));
575
570
  }
576
571
  if (borders.insideV) {
577
- borderElements.push(XMLBuilder_1.XMLBuilder.createBorder("insideV", borders.insideV));
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("tblBorders", undefined, borderElements));
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("shd", shdAttrs));
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("tblLayout", { "w:type": this.formatting.layout }));
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("top", {
596
- "w:w": this.formatting.cellMargins.top,
597
- "w:type": "dxa",
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("left", {
602
- "w:w": this.formatting.cellMargins.left,
603
- "w:type": "dxa",
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("bottom", {
608
- "w:w": this.formatting.cellMargins.bottom,
609
- "w:type": "dxa",
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("right", {
614
- "w:w": this.formatting.cellMargins.right,
615
- "w:type": "dxa",
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("tblCellMar", undefined, marginElements));
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("tblLook", { "w:val": this.formatting.tblLook }));
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("tblCaption", { "w:val": this.formatting.caption }));
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("tblDescription", {
630
- "w:val": this.formatting.description,
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
- "w:id": this.tblPrChange.id,
636
- "w:author": this.tblPrChange.author,
637
- "w:date": this.tblPrChange.date,
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("tblStyle", { "w:val": prev.style }));
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("tblW", {
647
- "w:w": prev.width,
648
- "w:type": prev.widthType || "dxa",
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("jc", { "w:val": prev.alignment }));
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("tblInd", { "w:w": prev.indent, "w:type": "dxa" }));
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("tblBorders", undefined, borderChildren));
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("shd", shadingAttrs));
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("tblLayout", { "w:type": prev.layout }));
679
+ prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblLayout', { 'w:type': prev.layout }));
685
680
  }
686
681
  if (prev.cellSpacing !== undefined) {
687
- const csAttrs = { "w:w": prev.cellSpacing, "w:type": prev.cellSpacingType || "dxa" };
688
- prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf("tblCellSpacing", csAttrs));
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("bidiVisual"));
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, { "w:w": val, "w:type": "dxa" }));
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("tblCellMar", undefined, cmChildren));
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("tblLook", { "w:val": prev.tblLook }));
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("tblStyleRowBandSize", { "w:val": prev.tblStyleRowBandSize }));
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("tblStyleColBandSize", { "w:val": prev.tblStyleColBandSize }));
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("tblOverlap", { "w:val": prev.overlap }));
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("tblCaption", { "w:val": prev.caption }));
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("tblDescription", { "w:val": prev.description }));
719
+ prevTblPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('tblDescription', { 'w:val': prev.description }));
722
720
  }
723
721
  }
724
- const prevTblPr = XMLBuilder_1.XMLBuilder.w("tblPr", undefined, prevTblPrChildren);
725
- tblPrChildren.push(XMLBuilder_1.XMLBuilder.w("tblPrChange", changeAttrs, [prevTblPr]));
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("tblPr", undefined, tblPrChildren));
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("gridCol", { "w:w": gridWidths[i] }));
735
+ tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf('gridCol', { 'w:w': gridWidths[i] }));
738
736
  }
739
737
  else {
740
- tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf("gridCol", { "w:w": 2880 }));
738
+ tblGridChildren.push(XMLBuilder_1.XMLBuilder.wSelf('gridCol', { 'w:w': 2880 }));
741
739
  }
742
740
  }
743
- tableChildren.push(XMLBuilder_1.XMLBuilder.w("tblGrid", undefined, tblGridChildren));
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("tbl", undefined, tableChildren);
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 === "restart") {
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("restart");
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("continue");
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("Invalid cell range specified");
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 === "restart")) {
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;