docxmlater 10.1.4 → 10.1.6

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 (372) 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 +51 -50
  6. package/dist/core/Document.d.ts.map +1 -1
  7. package/dist/core/Document.js +486 -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 +1 -0
  146. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  147. package/dist/formatting/NumberingManager.js +27 -9
  148. package/dist/formatting/NumberingManager.js.map +1 -1
  149. package/dist/formatting/Style.d.ts +11 -11
  150. package/dist/formatting/Style.d.ts.map +1 -1
  151. package/dist/formatting/Style.js +219 -247
  152. package/dist/formatting/Style.js.map +1 -1
  153. package/dist/formatting/StylesManager.d.ts +2 -2
  154. package/dist/formatting/StylesManager.d.ts.map +1 -1
  155. package/dist/formatting/StylesManager.js +96 -102
  156. package/dist/formatting/StylesManager.js.map +1 -1
  157. package/dist/helpers/CleanupHelper.d.ts +1 -1
  158. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  159. package/dist/helpers/CleanupHelper.js +6 -6
  160. package/dist/helpers/CleanupHelper.js.map +1 -1
  161. package/dist/images/ImageOptimizer.js +7 -7
  162. package/dist/images/ImageOptimizer.js.map +1 -1
  163. package/dist/index.d.ts +9 -9
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js.map +1 -1
  166. package/dist/managers/DrawingManager.js.map +1 -1
  167. package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
  168. package/dist/tracking/DocumentTrackingContext.js +23 -7
  169. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  170. package/dist/tracking/TrackingContext.d.ts.map +1 -1
  171. package/dist/tracking/TrackingContext.js.map +1 -1
  172. package/dist/types/compatibility-types.js.map +1 -1
  173. package/dist/types/formatting.js.map +1 -1
  174. package/dist/types/list-types.d.ts +6 -6
  175. package/dist/types/list-types.js.map +1 -1
  176. package/dist/types/settings-types.js.map +1 -1
  177. package/dist/types/styleConfig.d.ts +2 -2
  178. package/dist/types/styleConfig.js.map +1 -1
  179. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  180. package/dist/utils/ChangelogGenerator.js +97 -101
  181. package/dist/utils/ChangelogGenerator.js.map +1 -1
  182. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  183. package/dist/utils/CompatibilityUpgrader.js +1 -1
  184. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  185. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  186. package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
  187. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  188. package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
  189. package/dist/utils/MoveOperationHelper.js +1 -1
  190. package/dist/utils/MoveOperationHelper.js.map +1 -1
  191. package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
  192. package/dist/utils/RevisionAwareProcessor.js +2 -4
  193. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  194. package/dist/utils/RevisionWalker.d.ts.map +1 -1
  195. package/dist/utils/RevisionWalker.js +4 -12
  196. package/dist/utils/RevisionWalker.js.map +1 -1
  197. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  198. package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
  199. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  200. package/dist/utils/ShadingResolver.d.ts.map +1 -1
  201. package/dist/utils/ShadingResolver.js +1 -1
  202. package/dist/utils/ShadingResolver.js.map +1 -1
  203. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  204. package/dist/utils/acceptRevisions.js +23 -12
  205. package/dist/utils/acceptRevisions.js.map +1 -1
  206. package/dist/utils/cnfStyleDecoder.d.ts +1 -1
  207. package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
  208. package/dist/utils/cnfStyleDecoder.js +40 -40
  209. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  210. package/dist/utils/corruptionDetection.d.ts.map +1 -1
  211. package/dist/utils/corruptionDetection.js.map +1 -1
  212. package/dist/utils/dateFormatting.js.map +1 -1
  213. package/dist/utils/deepClone.js +1 -1
  214. package/dist/utils/deepClone.js.map +1 -1
  215. package/dist/utils/diagnostics.d.ts.map +1 -1
  216. package/dist/utils/diagnostics.js +1 -1
  217. package/dist/utils/diagnostics.js.map +1 -1
  218. package/dist/utils/errorHandling.js.map +1 -1
  219. package/dist/utils/formatting.d.ts.map +1 -1
  220. package/dist/utils/formatting.js +10 -2
  221. package/dist/utils/formatting.js.map +1 -1
  222. package/dist/utils/list-detection.d.ts +2 -2
  223. package/dist/utils/list-detection.d.ts.map +1 -1
  224. package/dist/utils/list-detection.js +21 -23
  225. package/dist/utils/list-detection.js.map +1 -1
  226. package/dist/utils/logger.d.ts.map +1 -1
  227. package/dist/utils/logger.js +12 -7
  228. package/dist/utils/logger.js.map +1 -1
  229. package/dist/utils/parsingHelpers.js.map +1 -1
  230. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  231. package/dist/utils/stripTrackedChanges.js +3 -3
  232. package/dist/utils/stripTrackedChanges.js.map +1 -1
  233. package/dist/utils/textDiff.d.ts +1 -1
  234. package/dist/utils/textDiff.js +8 -8
  235. package/dist/utils/textDiff.js.map +1 -1
  236. package/dist/utils/units.js.map +1 -1
  237. package/dist/utils/validation.d.ts.map +1 -1
  238. package/dist/utils/validation.js +24 -7
  239. package/dist/utils/validation.js.map +1 -1
  240. package/dist/utils/xmlSanitization.d.ts.map +1 -1
  241. package/dist/utils/xmlSanitization.js +3 -3
  242. package/dist/utils/xmlSanitization.js.map +1 -1
  243. package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
  244. package/dist/validation/RevisionAutoFixer.js +5 -5
  245. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  246. package/dist/validation/RevisionValidator.d.ts.map +1 -1
  247. package/dist/validation/RevisionValidator.js +7 -9
  248. package/dist/validation/RevisionValidator.js.map +1 -1
  249. package/dist/validation/ValidationRules.js +3 -3
  250. package/dist/validation/ValidationRules.js.map +1 -1
  251. package/dist/validation/index.js.map +1 -1
  252. package/dist/xml/XMLBuilder.d.ts +1 -1
  253. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  254. package/dist/xml/XMLBuilder.js +98 -100
  255. package/dist/xml/XMLBuilder.js.map +1 -1
  256. package/dist/xml/XMLParser.d.ts.map +1 -1
  257. package/dist/xml/XMLParser.js +61 -66
  258. package/dist/xml/XMLParser.js.map +1 -1
  259. package/dist/zip/ZipHandler.d.ts.map +1 -1
  260. package/dist/zip/ZipHandler.js.map +1 -1
  261. package/dist/zip/ZipReader.d.ts.map +1 -1
  262. package/dist/zip/ZipReader.js +1 -3
  263. package/dist/zip/ZipReader.js.map +1 -1
  264. package/dist/zip/ZipWriter.d.ts +1 -1
  265. package/dist/zip/ZipWriter.d.ts.map +1 -1
  266. package/dist/zip/ZipWriter.js +28 -36
  267. package/dist/zip/ZipWriter.js.map +1 -1
  268. package/dist/zip/types.js +1 -1
  269. package/dist/zip/types.js.map +1 -1
  270. package/package.json +92 -92
  271. package/src/__tests__/helper-methods.test.ts +512 -512
  272. package/src/constants/legacyCompatFlags.ts +138 -138
  273. package/src/constants/limits.ts +50 -50
  274. package/src/core/Document.ts +1010 -1145
  275. package/src/core/DocumentContent.ts +461 -467
  276. package/src/core/DocumentGenerator.ts +1133 -1104
  277. package/src/core/DocumentIdManager.ts +158 -158
  278. package/src/core/DocumentParser.ts +2347 -2716
  279. package/src/core/DocumentValidator.ts +363 -372
  280. package/src/core/Relationship.ts +367 -367
  281. package/src/core/RelationshipManager.ts +429 -428
  282. package/src/elements/AlternateContent.ts +42 -42
  283. package/src/elements/Bookmark.ts +212 -210
  284. package/src/elements/BookmarkManager.ts +247 -250
  285. package/src/elements/Comment.ts +356 -359
  286. package/src/elements/CommentManager.ts +499 -502
  287. package/src/elements/CommonTypes.ts +524 -549
  288. package/src/elements/CustomXml.ts +36 -36
  289. package/src/elements/Endnote.ts +221 -217
  290. package/src/elements/EndnoteManager.ts +246 -249
  291. package/src/elements/Field.ts +1292 -1233
  292. package/src/elements/FieldHelpers.ts +329 -333
  293. package/src/elements/FontManager.ts +336 -339
  294. package/src/elements/Footer.ts +269 -269
  295. package/src/elements/Footnote.ts +221 -217
  296. package/src/elements/FootnoteManager.ts +246 -249
  297. package/src/elements/Header.ts +269 -269
  298. package/src/elements/HeaderFooterManager.ts +219 -219
  299. package/src/elements/Hyperlink.ts +1288 -1193
  300. package/src/elements/Image.ts +1982 -1756
  301. package/src/elements/ImageManager.ts +437 -432
  302. package/src/elements/ImageRun.ts +59 -59
  303. package/src/elements/MathElement.ts +65 -65
  304. package/src/elements/Paragraph.ts +4347 -4287
  305. package/src/elements/PreservedElement.ts +53 -53
  306. package/src/elements/PropertyChangeTypes.ts +458 -442
  307. package/src/elements/RangeMarker.ts +382 -400
  308. package/src/elements/Revision.ts +1198 -1217
  309. package/src/elements/RevisionContent.ts +73 -73
  310. package/src/elements/RevisionManager.ts +1070 -1070
  311. package/src/elements/Run.ts +3103 -3073
  312. package/src/elements/Section.ts +1521 -1421
  313. package/src/elements/Shape.ts +884 -873
  314. package/src/elements/StructuredDocumentTag.ts +1176 -1207
  315. package/src/elements/Table.ts +2468 -2524
  316. package/src/elements/TableCell.ts +1617 -1621
  317. package/src/elements/TableGridChange.ts +149 -151
  318. package/src/elements/TableOfContents.ts +701 -691
  319. package/src/elements/TableOfContentsElement.ts +89 -89
  320. package/src/elements/TableRow.ts +960 -929
  321. package/src/elements/TextBox.ts +766 -768
  322. package/src/formatting/AbstractNumbering.ts +580 -579
  323. package/src/formatting/NumberingInstance.ts +295 -299
  324. package/src/formatting/NumberingLevel.ts +981 -1040
  325. package/src/formatting/NumberingManager.ts +875 -827
  326. package/src/formatting/Style.ts +1785 -1879
  327. package/src/formatting/StylesManager.ts +1090 -1130
  328. package/src/helpers/CleanupHelper.ts +524 -524
  329. package/src/images/ImageOptimizer.ts +274 -274
  330. package/src/index.ts +559 -554
  331. package/src/managers/DrawingManager.ts +319 -319
  332. package/src/tracking/DocumentTrackingContext.ts +687 -674
  333. package/src/tracking/TrackingContext.ts +175 -173
  334. package/src/types/compatibility-types.ts +49 -49
  335. package/src/types/formatting.ts +210 -210
  336. package/src/types/list-types.ts +14 -14
  337. package/src/types/settings-types.ts +59 -59
  338. package/src/types/styleConfig.ts +189 -189
  339. package/src/utils/ChangelogGenerator.ts +1583 -1581
  340. package/src/utils/CompatibilityUpgrader.ts +235 -237
  341. package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
  342. package/src/utils/MoveOperationHelper.ts +233 -238
  343. package/src/utils/RevisionAwareProcessor.ts +518 -526
  344. package/src/utils/RevisionWalker.ts +427 -457
  345. package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
  346. package/src/utils/ShadingResolver.ts +105 -107
  347. package/src/utils/acceptRevisions.ts +723 -714
  348. package/src/utils/cnfStyleDecoder.ts +212 -217
  349. package/src/utils/corruptionDetection.ts +346 -345
  350. package/src/utils/dateFormatting.ts +20 -20
  351. package/src/utils/deepClone.ts +77 -78
  352. package/src/utils/diagnostics.ts +125 -129
  353. package/src/utils/errorHandling.ts +80 -80
  354. package/src/utils/formatting.ts +220 -213
  355. package/src/utils/list-detection.ts +32 -42
  356. package/src/utils/logger.ts +412 -404
  357. package/src/utils/parsingHelpers.ts +190 -190
  358. package/src/utils/stripTrackedChanges.ts +356 -353
  359. package/src/utils/textDiff.ts +100 -100
  360. package/src/utils/units.ts +421 -421
  361. package/src/utils/validation.ts +553 -542
  362. package/src/utils/xmlSanitization.ts +179 -182
  363. package/src/validation/RevisionAutoFixer.ts +541 -542
  364. package/src/validation/RevisionValidator.ts +470 -460
  365. package/src/validation/ValidationRules.ts +338 -338
  366. package/src/validation/index.ts +30 -30
  367. package/src/xml/XMLBuilder.ts +857 -871
  368. package/src/xml/XMLParser.ts +877 -919
  369. package/src/zip/ZipHandler.ts +629 -637
  370. package/src/zip/ZipReader.ts +295 -299
  371. package/src/zip/ZipWriter.ts +374 -390
  372. 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;