docxmlater 10.0.2 → 10.0.3

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 (393) hide show
  1. package/README.md +2 -2
  2. package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.d.ts +0 -27
  5. package/dist/constants/limits.d.ts.map +1 -1
  6. package/dist/constants/limits.js +13 -13
  7. package/dist/constants/limits.js.map +1 -1
  8. package/dist/core/Document.d.ts +23 -19
  9. package/dist/core/Document.d.ts.map +1 -1
  10. package/dist/core/Document.js +197 -63
  11. package/dist/core/Document.js.map +1 -1
  12. package/dist/core/DocumentContent.d.ts.map +1 -1
  13. package/dist/core/DocumentContent.js.map +1 -1
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +59 -24
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.d.ts.map +1 -1
  18. package/dist/core/DocumentIdManager.js.map +1 -1
  19. package/dist/core/DocumentParser.d.ts +6 -6
  20. package/dist/core/DocumentParser.d.ts.map +1 -1
  21. package/dist/core/DocumentParser.js +60 -54
  22. package/dist/core/DocumentParser.js.map +1 -1
  23. package/dist/core/DocumentValidator.d.ts.map +1 -1
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.d.ts.map +1 -1
  26. package/dist/core/Relationship.js +1 -1
  27. package/dist/core/Relationship.js.map +1 -1
  28. package/dist/core/RelationshipManager.js +3 -3
  29. package/dist/core/RelationshipManager.js.map +1 -1
  30. package/dist/elements/AlternateContent.js.map +1 -1
  31. package/dist/elements/Bookmark.d.ts.map +1 -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.js +1 -1
  36. package/dist/elements/Comment.js.map +1 -1
  37. package/dist/elements/CommentManager.d.ts.map +1 -1
  38. package/dist/elements/CommentManager.js +8 -2
  39. package/dist/elements/CommentManager.js.map +1 -1
  40. package/dist/elements/CommonTypes.d.ts.map +1 -1
  41. package/dist/elements/CommonTypes.js +1 -2
  42. package/dist/elements/CommonTypes.js.map +1 -1
  43. package/dist/elements/CustomXml.js.map +1 -1
  44. package/dist/elements/Endnote.d.ts.map +1 -1
  45. package/dist/elements/Endnote.js.map +1 -1
  46. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  47. package/dist/elements/EndnoteManager.js.map +1 -1
  48. package/dist/elements/Field.d.ts.map +1 -1
  49. package/dist/elements/Field.js +31 -28
  50. package/dist/elements/Field.js.map +1 -1
  51. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  52. package/dist/elements/FieldHelpers.js +6 -6
  53. package/dist/elements/FieldHelpers.js.map +1 -1
  54. package/dist/elements/FontManager.d.ts.map +1 -1
  55. package/dist/elements/FontManager.js.map +1 -1
  56. package/dist/elements/Footer.js.map +1 -1
  57. package/dist/elements/Footnote.d.ts.map +1 -1
  58. package/dist/elements/Footnote.js.map +1 -1
  59. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  60. package/dist/elements/FootnoteManager.js.map +1 -1
  61. package/dist/elements/Header.js.map +1 -1
  62. package/dist/elements/HeaderFooterManager.js.map +1 -1
  63. package/dist/elements/Hyperlink.d.ts.map +1 -1
  64. package/dist/elements/Hyperlink.js +5 -5
  65. package/dist/elements/Hyperlink.js.map +1 -1
  66. package/dist/elements/Image.d.ts +2 -2
  67. package/dist/elements/Image.d.ts.map +1 -1
  68. package/dist/elements/Image.js +21 -5
  69. package/dist/elements/Image.js.map +1 -1
  70. package/dist/elements/ImageManager.d.ts.map +1 -1
  71. package/dist/elements/ImageManager.js +2 -2
  72. package/dist/elements/ImageManager.js.map +1 -1
  73. package/dist/elements/ImageRun.js.map +1 -1
  74. package/dist/elements/MathElement.js.map +1 -1
  75. package/dist/elements/Paragraph.d.ts.map +1 -1
  76. package/dist/elements/Paragraph.js +128 -117
  77. package/dist/elements/Paragraph.js.map +1 -1
  78. package/dist/elements/PreservedElement.js.map +1 -1
  79. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  80. package/dist/elements/RangeMarker.js.map +1 -1
  81. package/dist/elements/Revision.d.ts +1 -0
  82. package/dist/elements/Revision.d.ts.map +1 -1
  83. package/dist/elements/Revision.js +44 -5
  84. package/dist/elements/Revision.js.map +1 -1
  85. package/dist/elements/RevisionContent.js.map +1 -1
  86. package/dist/elements/RevisionManager.d.ts.map +1 -1
  87. package/dist/elements/RevisionManager.js.map +1 -1
  88. package/dist/elements/Run.d.ts.map +1 -1
  89. package/dist/elements/Run.js +1 -3
  90. package/dist/elements/Run.js.map +1 -1
  91. package/dist/elements/Section.d.ts.map +1 -1
  92. package/dist/elements/Section.js +127 -118
  93. package/dist/elements/Section.js.map +1 -1
  94. package/dist/elements/Shape.d.ts.map +1 -1
  95. package/dist/elements/Shape.js +21 -0
  96. package/dist/elements/Shape.js.map +1 -1
  97. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  98. package/dist/elements/StructuredDocumentTag.js +20 -8
  99. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  100. package/dist/elements/Table.d.ts +2 -2
  101. package/dist/elements/Table.d.ts.map +1 -1
  102. package/dist/elements/Table.js +29 -35
  103. package/dist/elements/Table.js.map +1 -1
  104. package/dist/elements/TableCell.d.ts +2 -2
  105. package/dist/elements/TableCell.d.ts.map +1 -1
  106. package/dist/elements/TableCell.js +63 -67
  107. package/dist/elements/TableCell.js.map +1 -1
  108. package/dist/elements/TableGridChange.js.map +1 -1
  109. package/dist/elements/TableOfContents.d.ts +6 -6
  110. package/dist/elements/TableOfContents.d.ts.map +1 -1
  111. package/dist/elements/TableOfContents.js.map +1 -1
  112. package/dist/elements/TableOfContentsElement.js.map +1 -1
  113. package/dist/elements/TableRow.d.ts.map +1 -1
  114. package/dist/elements/TableRow.js +65 -47
  115. package/dist/elements/TableRow.js.map +1 -1
  116. package/dist/elements/TextBox.d.ts.map +1 -1
  117. package/dist/elements/TextBox.js +1 -1
  118. package/dist/elements/TextBox.js.map +1 -1
  119. package/dist/formatting/AbstractNumbering.d.ts +1 -1
  120. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  121. package/dist/formatting/AbstractNumbering.js +11 -11
  122. package/dist/formatting/AbstractNumbering.js.map +1 -1
  123. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  124. package/dist/formatting/NumberingInstance.js +4 -4
  125. package/dist/formatting/NumberingInstance.js.map +1 -1
  126. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  127. package/dist/formatting/NumberingLevel.js +26 -26
  128. package/dist/formatting/NumberingLevel.js.map +1 -1
  129. package/dist/formatting/NumberingManager.d.ts +1 -1
  130. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  131. package/dist/formatting/NumberingManager.js.map +1 -1
  132. package/dist/formatting/Style.d.ts.map +1 -1
  133. package/dist/formatting/Style.js +87 -95
  134. package/dist/formatting/Style.js.map +1 -1
  135. package/dist/formatting/StylesManager.d.ts +3 -3
  136. package/dist/formatting/StylesManager.d.ts.map +1 -1
  137. package/dist/formatting/StylesManager.js.map +1 -1
  138. package/dist/helpers/CleanupHelper.js.map +1 -1
  139. package/dist/images/ImageOptimizer.js.map +1 -1
  140. package/dist/index.js.map +1 -1
  141. package/dist/managers/DrawingManager.d.ts.map +1 -1
  142. package/dist/managers/DrawingManager.js.map +1 -1
  143. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  144. package/dist/tracking/TrackingContext.js.map +1 -1
  145. package/dist/types/compatibility-types.js.map +1 -1
  146. package/dist/types/formatting.js.map +1 -1
  147. package/dist/types/list-types.d.ts +4 -4
  148. package/dist/types/list-types.d.ts.map +1 -1
  149. package/dist/types/list-types.js.map +1 -1
  150. package/dist/types/settings-types.js.map +1 -1
  151. package/dist/types/styleConfig.js.map +1 -1
  152. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  153. package/dist/utils/ChangelogGenerator.js.map +1 -1
  154. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  155. package/dist/utils/CompatibilityUpgrader.js +7 -7
  156. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  157. package/dist/utils/InMemoryRevisionAcceptor.js +1 -1
  158. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  159. package/dist/utils/MoveOperationHelper.js.map +1 -1
  160. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  161. package/dist/utils/RevisionWalker.js.map +1 -1
  162. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  163. package/dist/utils/ShadingResolver.js +1 -1
  164. package/dist/utils/ShadingResolver.js.map +1 -1
  165. package/dist/utils/acceptRevisions.d.ts +0 -28
  166. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  167. package/dist/utils/acceptRevisions.js +5 -7
  168. package/dist/utils/acceptRevisions.js.map +1 -1
  169. package/dist/utils/cnfStyleDecoder.js +1 -1
  170. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  171. package/dist/utils/corruptionDetection.js.map +1 -1
  172. package/dist/utils/dateFormatting.js.map +1 -1
  173. package/dist/utils/deepClone.d.ts +0 -1
  174. package/dist/utils/deepClone.d.ts.map +1 -1
  175. package/dist/utils/deepClone.js +0 -7
  176. package/dist/utils/deepClone.js.map +1 -1
  177. package/dist/utils/diagnostics.d.ts +2 -2
  178. package/dist/utils/diagnostics.d.ts.map +1 -1
  179. package/dist/utils/diagnostics.js.map +1 -1
  180. package/dist/utils/errorHandling.js.map +1 -1
  181. package/dist/utils/formatting.js.map +1 -1
  182. package/dist/utils/list-detection.d.ts +2 -2
  183. package/dist/utils/list-detection.d.ts.map +1 -1
  184. package/dist/utils/list-detection.js +3 -3
  185. package/dist/utils/list-detection.js.map +1 -1
  186. package/dist/utils/logger.d.ts +2 -4
  187. package/dist/utils/logger.d.ts.map +1 -1
  188. package/dist/utils/logger.js +0 -2
  189. package/dist/utils/logger.js.map +1 -1
  190. package/dist/utils/parsingHelpers.js.map +1 -1
  191. package/dist/utils/stripTrackedChanges.d.ts +0 -19
  192. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  193. package/dist/utils/stripTrackedChanges.js +0 -2
  194. package/dist/utils/stripTrackedChanges.js.map +1 -1
  195. package/dist/utils/textDiff.js.map +1 -1
  196. package/dist/utils/units.js.map +1 -1
  197. package/dist/utils/validation.d.ts.map +1 -1
  198. package/dist/utils/validation.js.map +1 -1
  199. package/dist/utils/xmlSanitization.js.map +1 -1
  200. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  201. package/dist/validation/RevisionValidator.js.map +1 -1
  202. package/dist/validation/ValidationRules.js.map +1 -1
  203. package/dist/validation/index.js.map +1 -1
  204. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  205. package/dist/xml/XMLBuilder.js +10 -0
  206. package/dist/xml/XMLBuilder.js.map +1 -1
  207. package/dist/xml/XMLParser.d.ts.map +1 -1
  208. package/dist/xml/XMLParser.js +4 -5
  209. package/dist/xml/XMLParser.js.map +1 -1
  210. package/dist/zip/ZipHandler.js.map +1 -1
  211. package/dist/zip/ZipReader.js.map +1 -1
  212. package/dist/zip/ZipWriter.js.map +1 -1
  213. package/dist/zip/errors.js.map +1 -1
  214. package/dist/zip/types.js.map +1 -1
  215. package/package.json +34 -4
  216. package/src/__tests__/helper-methods.test.ts +512 -0
  217. package/src/constants/legacyCompatFlags.ts +138 -0
  218. package/src/constants/limits.ts +50 -0
  219. package/src/core/CLAUDE.md +109 -0
  220. package/src/core/Document.ts +15569 -0
  221. package/src/core/DocumentContent.ts +467 -0
  222. package/src/core/DocumentGenerator.ts +1104 -0
  223. package/src/core/DocumentIdManager.ts +158 -0
  224. package/src/core/DocumentParser.ts +10107 -0
  225. package/src/core/DocumentValidator.ts +372 -0
  226. package/src/core/Relationship.ts +367 -0
  227. package/src/core/RelationshipManager.ts +428 -0
  228. package/src/elements/AlternateContent.ts +42 -0
  229. package/src/elements/Bookmark.ts +210 -0
  230. package/src/elements/BookmarkManager.ts +250 -0
  231. package/src/elements/CLAUDE.md +126 -0
  232. package/src/elements/Comment.ts +359 -0
  233. package/src/elements/CommentManager.ts +502 -0
  234. package/src/elements/CommonTypes.ts +549 -0
  235. package/src/elements/CustomXml.ts +36 -0
  236. package/src/elements/Endnote.ts +217 -0
  237. package/src/elements/EndnoteManager.ts +249 -0
  238. package/src/elements/Field.ts +1233 -0
  239. package/src/elements/FieldHelpers.ts +333 -0
  240. package/src/elements/FontManager.ts +339 -0
  241. package/src/elements/Footer.ts +269 -0
  242. package/src/elements/Footnote.ts +217 -0
  243. package/src/elements/FootnoteManager.ts +249 -0
  244. package/src/elements/Header.ts +269 -0
  245. package/src/elements/HeaderFooterManager.ts +219 -0
  246. package/src/elements/Hyperlink.ts +1146 -0
  247. package/src/elements/Image.ts +1756 -0
  248. package/src/elements/ImageManager.ts +432 -0
  249. package/src/elements/ImageRun.ts +59 -0
  250. package/src/elements/MathElement.ts +65 -0
  251. package/src/elements/Paragraph.ts +4227 -0
  252. package/src/elements/PreservedElement.ts +53 -0
  253. package/src/elements/PropertyChangeTypes.ts +442 -0
  254. package/src/elements/RangeMarker.ts +400 -0
  255. package/src/elements/Revision.ts +1217 -0
  256. package/src/elements/RevisionContent.ts +73 -0
  257. package/src/elements/RevisionManager.ts +1070 -0
  258. package/src/elements/Run.ts +3068 -0
  259. package/src/elements/Section.ts +1421 -0
  260. package/src/elements/Shape.ts +873 -0
  261. package/src/elements/StructuredDocumentTag.ts +978 -0
  262. package/src/elements/Table.ts +2524 -0
  263. package/src/elements/TableCell.ts +1586 -0
  264. package/src/elements/TableGridChange.ts +151 -0
  265. package/src/elements/TableOfContents.ts +691 -0
  266. package/src/elements/TableOfContentsElement.ts +89 -0
  267. package/src/elements/TableRow.ts +906 -0
  268. package/src/elements/TextBox.ts +768 -0
  269. package/src/formatting/AbstractNumbering.ts +548 -0
  270. package/src/formatting/CLAUDE.md +74 -0
  271. package/src/formatting/NumberingInstance.ts +212 -0
  272. package/src/formatting/NumberingLevel.ts +1006 -0
  273. package/src/formatting/NumberingManager.ts +827 -0
  274. package/src/formatting/Style.ts +1833 -0
  275. package/src/formatting/StylesManager.ts +1005 -0
  276. package/src/helpers/CleanupHelper.ts +524 -0
  277. package/src/images/ImageOptimizer.ts +274 -0
  278. package/src/index.ts +554 -0
  279. package/src/managers/CLAUDE.md +47 -0
  280. package/src/managers/DrawingManager.ts +319 -0
  281. package/src/tracking/DocumentTrackingContext.ts +643 -0
  282. package/src/tracking/TrackingContext.ts +173 -0
  283. package/src/types/compatibility-types.ts +49 -0
  284. package/src/types/formatting.ts +210 -0
  285. package/src/types/list-types.ts +152 -0
  286. package/src/types/settings-types.ts +59 -0
  287. package/src/types/styleConfig.ts +189 -0
  288. package/src/utils/CLAUDE.md +153 -0
  289. package/src/utils/ChangelogGenerator.ts +1581 -0
  290. package/src/utils/CompatibilityUpgrader.ts +237 -0
  291. package/src/utils/InMemoryRevisionAcceptor.ts +668 -0
  292. package/src/utils/MoveOperationHelper.ts +238 -0
  293. package/src/utils/RevisionAwareProcessor.ts +526 -0
  294. package/src/utils/RevisionWalker.ts +457 -0
  295. package/src/utils/SelectiveRevisionAcceptor.ts +613 -0
  296. package/src/utils/ShadingResolver.ts +107 -0
  297. package/src/utils/acceptRevisions.ts +714 -0
  298. package/src/utils/cnfStyleDecoder.ts +217 -0
  299. package/src/utils/corruptionDetection.ts +345 -0
  300. package/src/utils/dateFormatting.ts +20 -0
  301. package/src/utils/deepClone.ts +78 -0
  302. package/src/utils/diagnostics.ts +129 -0
  303. package/src/utils/errorHandling.ts +80 -0
  304. package/src/utils/formatting.ts +213 -0
  305. package/src/utils/list-detection.ts +274 -0
  306. package/src/utils/logger.ts +404 -0
  307. package/src/utils/parsingHelpers.ts +190 -0
  308. package/src/utils/stripTrackedChanges.ts +353 -0
  309. package/src/utils/textDiff.ts +100 -0
  310. package/src/utils/units.ts +421 -0
  311. package/src/utils/validation.ts +542 -0
  312. package/src/utils/xmlSanitization.ts +182 -0
  313. package/src/validation/RevisionAutoFixer.ts +542 -0
  314. package/src/validation/RevisionValidator.ts +460 -0
  315. package/src/validation/ValidationRules.ts +338 -0
  316. package/src/validation/index.ts +30 -0
  317. package/src/xml/CLAUDE.md +65 -0
  318. package/src/xml/XMLBuilder.ts +871 -0
  319. package/src/xml/XMLParser.ts +919 -0
  320. package/src/zip/CLAUDE.md +55 -0
  321. package/src/zip/ZipHandler.ts +637 -0
  322. package/src/zip/ZipReader.ts +299 -0
  323. package/src/zip/ZipWriter.ts +390 -0
  324. package/src/zip/errors.ts +69 -0
  325. package/src/zip/types.ts +116 -0
  326. package/dist/core/ListNormalizer.d.ts +0 -23
  327. package/dist/core/ListNormalizer.d.ts.map +0 -1
  328. package/dist/core/ListNormalizer.js +0 -624
  329. package/dist/core/ListNormalizer.js.map +0 -1
  330. package/dist/images/index.d.ts +0 -2
  331. package/dist/images/index.d.ts.map +0 -1
  332. package/dist/images/index.js +0 -8
  333. package/dist/images/index.js.map +0 -1
  334. package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
  335. package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
  336. package/dist/ms-doc/cfb/CFBReader.js +0 -360
  337. package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
  338. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
  339. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
  340. package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
  341. package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
  342. package/dist/ms-doc/fib/FIB.d.ts +0 -18
  343. package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
  344. package/dist/ms-doc/fib/FIB.js +0 -342
  345. package/dist/ms-doc/fib/FIB.js.map +0 -1
  346. package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
  347. package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
  348. package/dist/ms-doc/fields/FieldParser.js +0 -266
  349. package/dist/ms-doc/fields/FieldParser.js.map +0 -1
  350. package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
  351. package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
  352. package/dist/ms-doc/images/PictureExtractor.js +0 -233
  353. package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
  354. package/dist/ms-doc/index.d.ts +0 -20
  355. package/dist/ms-doc/index.d.ts.map +0 -1
  356. package/dist/ms-doc/index.js +0 -59
  357. package/dist/ms-doc/index.js.map +0 -1
  358. package/dist/ms-doc/properties/SPRM.d.ts +0 -210
  359. package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
  360. package/dist/ms-doc/properties/SPRM.js +0 -633
  361. package/dist/ms-doc/properties/SPRM.js.map +0 -1
  362. package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
  363. package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
  364. package/dist/ms-doc/sections/SectionParser.js +0 -214
  365. package/dist/ms-doc/sections/SectionParser.js.map +0 -1
  366. package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
  367. package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
  368. package/dist/ms-doc/styles/StyleSheet.js +0 -268
  369. package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
  370. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
  371. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
  372. package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
  373. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
  374. package/dist/ms-doc/tables/TableParser.d.ts +0 -29
  375. package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
  376. package/dist/ms-doc/tables/TableParser.js +0 -176
  377. package/dist/ms-doc/tables/TableParser.js.map +0 -1
  378. package/dist/ms-doc/text/PieceTable.d.ts +0 -21
  379. package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
  380. package/dist/ms-doc/text/PieceTable.js +0 -171
  381. package/dist/ms-doc/text/PieceTable.js.map +0 -1
  382. package/dist/ms-doc/types/Constants.d.ts +0 -99
  383. package/dist/ms-doc/types/Constants.d.ts.map +0 -1
  384. package/dist/ms-doc/types/Constants.js +0 -102
  385. package/dist/ms-doc/types/Constants.js.map +0 -1
  386. package/dist/ms-doc/types/DocTypes.d.ts +0 -368
  387. package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
  388. package/dist/ms-doc/types/DocTypes.js +0 -3
  389. package/dist/ms-doc/types/DocTypes.js.map +0 -1
  390. package/dist/tracking/index.d.ts +0 -3
  391. package/dist/tracking/index.d.ts.map +0 -1
  392. package/dist/tracking/index.js +0 -6
  393. package/dist/tracking/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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"}
@@ -366,6 +366,42 @@ class Section {
366
366
  }));
367
367
  }
368
368
  }
369
+ if (this.properties.footnotePr) {
370
+ const fnChildren = [];
371
+ if (this.properties.footnotePr.position) {
372
+ fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pos', { 'w:val': this.properties.footnotePr.position }));
373
+ }
374
+ if (this.properties.footnotePr.numberFormat) {
375
+ fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat }));
376
+ }
377
+ if (this.properties.footnotePr.startNumber !== undefined) {
378
+ fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.footnotePr.startNumber.toString() }));
379
+ }
380
+ if (this.properties.footnotePr.restart) {
381
+ fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart }));
382
+ }
383
+ if (fnChildren.length > 0) {
384
+ children.push(XMLBuilder_1.XMLBuilder.w('footnotePr', undefined, fnChildren));
385
+ }
386
+ }
387
+ if (this.properties.endnotePr) {
388
+ const enChildren = [];
389
+ if (this.properties.endnotePr.position) {
390
+ enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pos', { 'w:val': this.properties.endnotePr.position }));
391
+ }
392
+ if (this.properties.endnotePr.numberFormat) {
393
+ enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat }));
394
+ }
395
+ if (this.properties.endnotePr.startNumber !== undefined) {
396
+ enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.endnotePr.startNumber.toString() }));
397
+ }
398
+ if (this.properties.endnotePr.restart) {
399
+ enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart }));
400
+ }
401
+ if (enChildren.length > 0) {
402
+ children.push(XMLBuilder_1.XMLBuilder.w('endnotePr', undefined, enChildren));
403
+ }
404
+ }
369
405
  if (this.properties.type) {
370
406
  children.push(XMLBuilder_1.XMLBuilder.wSelf('type', { 'w:val': this.properties.type }));
371
407
  }
@@ -393,6 +429,18 @@ class Section {
393
429
  }
394
430
  children.push(XMLBuilder_1.XMLBuilder.wSelf('pgMar', attrs));
395
431
  }
432
+ if (this.properties.paperSource) {
433
+ const attrs = {};
434
+ if (this.properties.paperSource.first !== undefined) {
435
+ attrs['w:first'] = this.properties.paperSource.first.toString();
436
+ }
437
+ if (this.properties.paperSource.other !== undefined) {
438
+ attrs['w:other'] = this.properties.paperSource.other.toString();
439
+ }
440
+ if (Object.keys(attrs).length > 0) {
441
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('paperSrc', attrs));
442
+ }
443
+ }
396
444
  if (this.properties.pageBorders) {
397
445
  const pgBorders = this.properties.pageBorders;
398
446
  const pgBordersAttrs = {};
@@ -433,6 +481,42 @@ class Section {
433
481
  buildBorder('right', pgBorders.right);
434
482
  children.push(XMLBuilder_1.XMLBuilder.w('pgBorders', pgBordersAttrs, borderChildren));
435
483
  }
484
+ if (this.properties.lineNumbering) {
485
+ const attrs = {};
486
+ if (this.properties.lineNumbering.countBy !== undefined) {
487
+ attrs['w:countBy'] = this.properties.lineNumbering.countBy.toString();
488
+ }
489
+ if (this.properties.lineNumbering.start !== undefined) {
490
+ attrs['w:start'] = this.properties.lineNumbering.start.toString();
491
+ }
492
+ if (this.properties.lineNumbering.distance !== undefined) {
493
+ attrs['w:distance'] = this.properties.lineNumbering.distance.toString();
494
+ }
495
+ if (this.properties.lineNumbering.restart) {
496
+ attrs['w:restart'] = this.properties.lineNumbering.restart;
497
+ }
498
+ if (Object.keys(attrs).length > 0) {
499
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('lnNumType', attrs));
500
+ }
501
+ }
502
+ if (this.properties.pageNumbering || this.properties.chapStyle !== undefined) {
503
+ const attrs = {};
504
+ if (this.properties.pageNumbering?.start !== undefined) {
505
+ attrs['w:start'] = this.properties.pageNumbering.start.toString();
506
+ }
507
+ if (this.properties.pageNumbering?.format) {
508
+ attrs['w:fmt'] = this.properties.pageNumbering.format;
509
+ }
510
+ if (this.properties.chapStyle !== undefined) {
511
+ attrs['w:chapStyle'] = this.properties.chapStyle.toString();
512
+ }
513
+ if (this.properties.chapSep) {
514
+ attrs['w:chapSep'] = this.properties.chapSep;
515
+ }
516
+ if (Object.keys(attrs).length > 0) {
517
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('pgNumType', attrs));
518
+ }
519
+ }
436
520
  if (this.properties.columns) {
437
521
  const attrs = {
438
522
  'w:num': this.properties.columns.count.toString(),
@@ -456,86 +540,25 @@ class Section {
456
540
  ? XMLBuilder_1.XMLBuilder.w('cols', attrs, colChildren)
457
541
  : XMLBuilder_1.XMLBuilder.wSelf('cols', attrs));
458
542
  }
459
- if (this.properties.titlePage) {
460
- children.push(XMLBuilder_1.XMLBuilder.wSelf('titlePg', { 'w:val': '1' }));
461
- }
462
- if (this.properties.footnotePr) {
463
- const fnChildren = [];
464
- if (this.properties.footnotePr.position) {
465
- fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pos', { 'w:val': this.properties.footnotePr.position }));
466
- }
467
- if (this.properties.footnotePr.numberFormat) {
468
- fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat }));
469
- }
470
- if (this.properties.footnotePr.startNumber !== undefined) {
471
- fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.footnotePr.startNumber.toString() }));
472
- }
473
- if (this.properties.footnotePr.restart) {
474
- fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart }));
475
- }
476
- if (fnChildren.length > 0) {
477
- children.push(XMLBuilder_1.XMLBuilder.w('footnotePr', undefined, fnChildren));
478
- }
479
- }
480
- if (this.properties.endnotePr) {
481
- const enChildren = [];
482
- if (this.properties.endnotePr.position) {
483
- enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pos', { 'w:val': this.properties.endnotePr.position }));
484
- }
485
- if (this.properties.endnotePr.numberFormat) {
486
- enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat }));
487
- }
488
- if (this.properties.endnotePr.startNumber !== undefined) {
489
- enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.endnotePr.startNumber.toString() }));
490
- }
491
- if (this.properties.endnotePr.restart) {
492
- enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart }));
493
- }
494
- if (enChildren.length > 0) {
495
- children.push(XMLBuilder_1.XMLBuilder.w('endnotePr', undefined, enChildren));
496
- }
497
- }
498
- if (this.properties.noEndnote) {
499
- children.push(XMLBuilder_1.XMLBuilder.wSelf('noEndnote'));
500
- }
501
543
  if (this.properties.formProt) {
502
544
  children.push(XMLBuilder_1.XMLBuilder.wSelf('formProt'));
503
545
  }
504
- if (this.properties.pageNumbering || this.properties.chapStyle !== undefined) {
505
- const attrs = {};
506
- if (this.properties.pageNumbering?.start !== undefined) {
507
- attrs['w:start'] = this.properties.pageNumbering.start.toString();
508
- }
509
- if (this.properties.pageNumbering?.format) {
510
- attrs['w:fmt'] = this.properties.pageNumbering.format;
511
- }
512
- if (this.properties.chapStyle !== undefined) {
513
- attrs['w:chapStyle'] = this.properties.chapStyle.toString();
514
- }
515
- if (this.properties.chapSep) {
516
- attrs['w:chapSep'] = this.properties.chapSep;
517
- }
518
- if (Object.keys(attrs).length > 0) {
519
- children.push(XMLBuilder_1.XMLBuilder.wSelf('pgNumType', attrs));
520
- }
521
- }
522
546
  if (this.properties.verticalAlignment) {
523
547
  children.push(XMLBuilder_1.XMLBuilder.wSelf('vAlign', { 'w:val': this.properties.verticalAlignment }));
524
548
  }
525
- if (this.properties.paperSource) {
526
- const attrs = {};
527
- if (this.properties.paperSource.first !== undefined) {
528
- attrs['w:first'] = this.properties.paperSource.first.toString();
529
- }
530
- if (this.properties.paperSource.other !== undefined) {
531
- attrs['w:other'] = this.properties.paperSource.other.toString();
532
- }
533
- if (Object.keys(attrs).length > 0) {
534
- children.push(XMLBuilder_1.XMLBuilder.wSelf('paperSrc', attrs));
535
- }
549
+ if (this.properties.noEndnote) {
550
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('noEndnote'));
551
+ }
552
+ if (this.properties.titlePage) {
553
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('titlePg', { 'w:val': '1' }));
536
554
  }
537
555
  if (this.properties.textDirection) {
538
- children.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': this.properties.textDirection }));
556
+ const textDirMap = {
557
+ ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',
558
+ lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',
559
+ };
560
+ const val = textDirMap[this.properties.textDirection] || this.properties.textDirection;
561
+ children.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': val }));
539
562
  }
540
563
  if (this.properties.bidi) {
541
564
  children.push(XMLBuilder_1.XMLBuilder.wSelf('bidi'));
@@ -543,24 +566,6 @@ class Section {
543
566
  if (this.properties.rtlGutter) {
544
567
  children.push(XMLBuilder_1.XMLBuilder.wSelf('rtlGutter'));
545
568
  }
546
- if (this.properties.lineNumbering) {
547
- const attrs = {};
548
- if (this.properties.lineNumbering.countBy !== undefined) {
549
- attrs['w:countBy'] = this.properties.lineNumbering.countBy.toString();
550
- }
551
- if (this.properties.lineNumbering.start !== undefined) {
552
- attrs['w:start'] = this.properties.lineNumbering.start.toString();
553
- }
554
- if (this.properties.lineNumbering.distance !== undefined) {
555
- attrs['w:distance'] = this.properties.lineNumbering.distance.toString();
556
- }
557
- if (this.properties.lineNumbering.restart) {
558
- attrs['w:restart'] = this.properties.lineNumbering.restart;
559
- }
560
- if (Object.keys(attrs).length > 0) {
561
- children.push(XMLBuilder_1.XMLBuilder.wSelf('lnNumType', attrs));
562
- }
563
- }
564
569
  if (this.properties.docGrid) {
565
570
  const attrs = {};
566
571
  if (this.properties.docGrid.type) {
@@ -590,6 +595,9 @@ class Section {
590
595
  const prevChildren = [];
591
596
  const prev = this.sectPrChange.previousProperties;
592
597
  if (prev) {
598
+ if (prev.type) {
599
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('type', { 'w:val': prev.type }));
600
+ }
593
601
  if (prev.pageSize) {
594
602
  const pgSzAttrs = {
595
603
  'w:w': prev.pageSize.width?.toString() || '12240',
@@ -616,34 +624,6 @@ class Section {
616
624
  pgMarAttrs['w:footer'] = prev.margins.footer.toString();
617
625
  prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pgMar', pgMarAttrs));
618
626
  }
619
- if (prev.type) {
620
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('type', { 'w:val': prev.type }));
621
- }
622
- if (prev.columns) {
623
- const colAttrs = { 'w:num': prev.columns.count?.toString() || '1' };
624
- if (prev.columns.space !== undefined)
625
- colAttrs['w:space'] = prev.columns.space.toString();
626
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('cols', colAttrs));
627
- }
628
- if (prev.titlePage) {
629
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('titlePg'));
630
- }
631
- if (prev.pageNumbering) {
632
- const pnAttrs = {};
633
- if (prev.pageNumbering.start !== undefined)
634
- pnAttrs['w:start'] = prev.pageNumbering.start.toString();
635
- if (prev.pageNumbering.format)
636
- pnAttrs['w:fmt'] = prev.pageNumbering.format;
637
- if (Object.keys(pnAttrs).length > 0) {
638
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pgNumType', pnAttrs));
639
- }
640
- }
641
- if (prev.verticalAlignment) {
642
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('vAlign', { 'w:val': prev.verticalAlignment }));
643
- }
644
- if (prev.textDirection) {
645
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': prev.textDirection }));
646
- }
647
627
  if (prev.lineNumbering) {
648
628
  const lnAttrs = {};
649
629
  if (prev.lineNumbering.countBy !== undefined)
@@ -658,9 +638,38 @@ class Section {
658
638
  prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('lnNumType', lnAttrs));
659
639
  }
660
640
  }
641
+ if (prev.pageNumbering) {
642
+ const pnAttrs = {};
643
+ if (prev.pageNumbering.start !== undefined)
644
+ pnAttrs['w:start'] = prev.pageNumbering.start.toString();
645
+ if (prev.pageNumbering.format)
646
+ pnAttrs['w:fmt'] = prev.pageNumbering.format;
647
+ if (Object.keys(pnAttrs).length > 0) {
648
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('pgNumType', pnAttrs));
649
+ }
650
+ }
651
+ if (prev.columns) {
652
+ const colAttrs = { 'w:num': prev.columns.count?.toString() || '1' };
653
+ if (prev.columns.space !== undefined)
654
+ colAttrs['w:space'] = prev.columns.space.toString();
655
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('cols', colAttrs));
656
+ }
661
657
  if (prev.formProt) {
662
658
  prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('formProt'));
663
659
  }
660
+ if (prev.verticalAlignment) {
661
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('vAlign', { 'w:val': prev.verticalAlignment }));
662
+ }
663
+ if (prev.titlePage) {
664
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('titlePg'));
665
+ }
666
+ if (prev.textDirection) {
667
+ const tdMap = {
668
+ ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',
669
+ lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',
670
+ };
671
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': tdMap[prev.textDirection] || prev.textDirection }));
672
+ }
664
673
  }
665
674
  const prevSectPr = XMLBuilder_1.XMLBuilder.w('sectPr', undefined, prevChildren);
666
675
  children.push(XMLBuilder_1.XMLBuilder.w('sectPrChange', changeAttrs, [prevSectPr]));
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Section - Represents a document section with page setup properties\r\n *\r\n * Sections allow different page setups within a single document (margins, orientation, etc.)\r\n * Each section can have its own headers, footers, and page numbering.\r\n */\r\n\r\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\r\nimport { PAGE_SIZES } from '../utils/units';\r\n\r\n/**\r\n * Page orientation\r\n */\r\nexport type PageOrientation = 'portrait' | 'landscape';\r\n\r\n/**\r\n * Section break type\r\n */\r\nexport type SectionType = 'nextPage' | 'continuous' | 'evenPage' | 'oddPage' | 'nextColumn';\r\n\r\n/**\r\n * Page numbering format\r\n */\r\n/**\r\n * Per ECMA-376 Part 1 §17.18.59 (ST_NumberFormat)\r\n * Comprehensive set of page number formats\r\n */\r\nexport type PageNumberFormat =\r\n | 'decimal' | 'lowerRoman' | 'upperRoman' | 'lowerLetter' | 'upperLetter'\r\n | 'ordinal' | 'cardinalText' | 'ordinalText'\r\n | 'hex' | 'chicago' | 'decimalZero'\r\n | 'decimalEnclosedCircle' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen'\r\n | 'ideographDigital' | 'ideographTraditional' | 'ideographLegalTraditional'\r\n | 'ideographEnclosedCircle' | 'ideographZodiac' | 'ideographZodiacTraditional'\r\n | 'chineseCounting' | 'chineseCountingThousand' | 'chineseLegalSimplified'\r\n | 'japaneseCounting' | 'japaneseDigitalTenThousand' | 'japaneseLegal'\r\n | 'koreanCounting' | 'koreanDigital' | 'koreanDigital2' | 'koreanLegal'\r\n | 'taiwaneseCounting' | 'taiwaneseCountingThousand' | 'taiwaneseDigital'\r\n | 'aiueo' | 'aiueoFullWidth' | 'iroha' | 'irohaFullWidth'\r\n | 'arabicAbjad' | 'arabicAlpha' | 'hebrew1' | 'hebrew2'\r\n | 'hindiConsonants' | 'hindiCounting' | 'hindiNumbers' | 'hindiVowels'\r\n | 'thaiCounting' | 'thaiLetters' | 'thaiNumbers'\r\n | 'vietnameseCounting'\r\n | 'russianLower' | 'russianUpper'\r\n | 'numberInDash' | 'dollarText' | 'bullet'\r\n | 'bahtText' | 'ganada' | 'chosung'\r\n | 'none'\r\n | string; // Allow any format string for forward compatibility\r\n\r\n/**\r\n * Page size properties\r\n */\r\nexport interface PageSize {\r\n /** Width in twips */\r\n width: number;\r\n /** Height in twips */\r\n height: number;\r\n /** Orientation */\r\n orientation?: PageOrientation;\r\n}\r\n\r\n/**\r\n * Margin properties\r\n */\r\nexport interface Margins {\r\n /** Top margin in twips */\r\n top: number;\r\n /** Bottom margin in twips */\r\n bottom: number;\r\n /** Left margin in twips */\r\n left: number;\r\n /** Right margin in twips */\r\n right: number;\r\n /** Header distance from top in twips */\r\n header?: number;\r\n /** Footer distance from bottom in twips */\r\n footer?: number;\r\n /** Gutter margin in twips */\r\n gutter?: number;\r\n}\r\n\r\n/**\r\n * Column properties\r\n */\r\nexport interface Columns {\r\n /** Number of columns */\r\n count: number;\r\n /** Space between columns in twips */\r\n space?: number;\r\n /** Equal column widths */\r\n equalWidth?: boolean;\r\n /** Show column separator line */\r\n separator?: boolean;\r\n /** Individual column widths (for unequal columns) in twips */\r\n columnWidths?: number[];\r\n}\r\n\r\n/**\r\n * Page numbering properties\r\n */\r\nexport interface PageNumbering {\r\n /** Starting page number */\r\n start?: number;\r\n /** Number format */\r\n format?: PageNumberFormat;\r\n}\r\n\r\n/**\r\n * Paper source (printer tray) properties\r\n */\r\nexport interface PaperSource {\r\n /** First page tray number */\r\n first?: number;\r\n /** Other pages tray number */\r\n other?: number;\r\n}\r\n\r\n/**\r\n * Vertical page alignment\r\n */\r\nexport type VerticalAlignment = 'top' | 'center' | 'bottom' | 'both';\r\n\r\n/**\r\n * Text direction\r\n */\r\nexport type TextDirection = 'ltr' | 'rtl' | 'tbRl' | 'btLr';\r\n\r\n/**\r\n * Document grid type for East Asian typography\r\n */\r\nexport type DocumentGridType = 'default' | 'lines' | 'linesAndChars' | 'snapToChars';\r\n\r\n/**\r\n * Document grid properties\r\n */\r\nexport interface DocumentGrid {\r\n /** Grid type */\r\n type?: DocumentGridType;\r\n /** Lines per page */\r\n linePitch?: number;\r\n /** Characters per line */\r\n charSpace?: number;\r\n}\r\n\r\n/**\r\n * Line numbering restart mode\r\n */\r\nexport type LineNumberingRestart = 'newPage' | 'newSection' | 'continuous';\r\n\r\n/**\r\n * Line numbering properties\r\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType element)\r\n */\r\nexport interface LineNumbering {\r\n /** Display line number every N lines (countBy attribute) */\r\n countBy?: number;\r\n /** Starting line number */\r\n start?: number;\r\n /** Distance from text margin in twips */\r\n distance?: number;\r\n /** When to restart line numbering */\r\n restart?: LineNumberingRestart;\r\n}\r\n\r\n/**\r\n * Footnote/endnote position\r\n * Per ECMA-376 Part 1 §17.11.6 and §17.11.7\r\n */\r\nexport type NotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';\r\n\r\n/**\r\n * Note numbering restart mode\r\n */\r\nexport type NoteNumberRestart = 'continuous' | 'eachSect' | 'eachPage';\r\n\r\n/**\r\n * Chapter separator character for page numbering\r\n * Per ECMA-376 Part 1 §17.18.5\r\n */\r\nexport type ChapterSeparator = 'colon' | 'emDash' | 'enDash' | 'hyphen' | 'period';\r\n\r\n/**\r\n * Footnote/endnote section-level properties\r\n */\r\nexport interface NoteProperties {\r\n /** Note positioning */\r\n position?: NotePosition;\r\n /** Number format */\r\n numberFormat?: PageNumberFormat;\r\n /** Starting number */\r\n startNumber?: number;\r\n /** Restart numbering mode */\r\n restart?: NoteNumberRestart;\r\n}\r\n\r\n/**\r\n * Page border definition for a single side\r\n * Per ECMA-376 Part 1 §17.6.10\r\n */\r\nexport interface PageBorderDef {\r\n /** Border style (single, double, dashed, etc.) */\r\n style?: string;\r\n /** Border size in eighths of a point */\r\n size?: number;\r\n /** Border color in hex format (without #) */\r\n color?: string;\r\n /** Space between border and page edge/text in points */\r\n space?: number;\r\n /** Whether to show shadow */\r\n shadow?: boolean;\r\n /** Whether to include frame around page */\r\n frame?: boolean;\r\n /** Theme color reference */\r\n themeColor?: string;\r\n /** Art border ID (for decorative borders) */\r\n artId?: number;\r\n}\r\n\r\n/**\r\n * Page borders configuration\r\n * Per ECMA-376 Part 1 §17.6.10\r\n */\r\nexport interface PageBorders {\r\n /** Top page border */\r\n top?: PageBorderDef;\r\n /** Bottom page border */\r\n bottom?: PageBorderDef;\r\n /** Left page border */\r\n left?: PageBorderDef;\r\n /** Right page border */\r\n right?: PageBorderDef;\r\n /** Whether border is measured from page edge or text edge */\r\n offsetFrom?: 'page' | 'text';\r\n /** Display on all pages, first page only, or not first page */\r\n display?: 'allPages' | 'firstPage' | 'notFirstPage';\r\n /** Z-ordering relative to text */\r\n zOrder?: 'front' | 'back';\r\n}\r\n\r\n/**\r\n * Section properties\r\n */\r\nexport interface SectionProperties {\r\n /** Page size */\r\n pageSize?: PageSize;\r\n /** Margins */\r\n margins?: Margins;\r\n /** Column layout */\r\n columns?: Columns;\r\n /** Section break type */\r\n type?: SectionType;\r\n /** Page numbering */\r\n pageNumbering?: PageNumbering;\r\n /** Header reference IDs */\r\n headers?: {\r\n default?: string; // rId for default header\r\n first?: string; // rId for first page header\r\n even?: string; // rId for even page header\r\n };\r\n /** Footer reference IDs */\r\n footers?: {\r\n default?: string; // rId for default footer\r\n first?: string; // rId for first page footer\r\n even?: string; // rId for even page footer\r\n };\r\n /** Title page (different first page) */\r\n titlePage?: boolean;\r\n /** Vertical page alignment */\r\n verticalAlignment?: VerticalAlignment;\r\n /** Paper source (printer tray) */\r\n paperSource?: PaperSource;\r\n /** Text direction (LTR/RTL support) */\r\n textDirection?: TextDirection;\r\n /** Right-to-left section layout */\r\n bidi?: boolean;\r\n /** Gutter on right side (for RTL) */\r\n rtlGutter?: boolean;\r\n /** Document grid for snapping text to grid */\r\n docGrid?: DocumentGrid;\r\n /** Line numbering configuration */\r\n lineNumbering?: LineNumbering;\r\n /** Section-level footnote properties (w:footnotePr) */\r\n footnotePr?: NoteProperties;\r\n /** Section-level endnote properties (w:endnotePr) */\r\n endnotePr?: NoteProperties;\r\n /** Suppress endnotes in this section (w:noEndnote) */\r\n noEndnote?: boolean;\r\n /** Form protection for this section (w:formProt) */\r\n formProt?: boolean;\r\n /** Page borders per ECMA-376 Part 1 §17.6.10 */\r\n pageBorders?: PageBorders;\r\n /** Printer settings relationship ID (w:printerSettings r:id) */\r\n printerSettingsId?: string;\r\n /** Chapter style heading level for page numbering (w:pgNumType w:chapStyle) */\r\n chapStyle?: number;\r\n /** Chapter separator for page numbering (w:pgNumType w:chapSep) */\r\n chapSep?: ChapterSeparator;\r\n}\r\n\r\n/**\r\n * Represents a document section\r\n */\r\n/**\r\n * Section property change tracking (w:sectPrChange)\r\n * Per ECMA-376 Part 1 §17.13.5.32\r\n */\r\nexport interface SectPrChange {\r\n author: string;\r\n date: string;\r\n id: string;\r\n previousProperties: Record<string, any>;\r\n}\r\n\r\nexport class Section {\r\n private properties: SectionProperties;\r\n /** Tracking context for automatic change tracking */\r\n private trackingContext?: import('../tracking/TrackingContext').TrackingContext;\r\n /** Section property change tracking (w:sectPrChange) */\r\n private sectPrChange?: SectPrChange;\r\n\r\n /**\r\n * Creates a new section\r\n * @param properties Section properties\r\n */\r\n constructor(properties: SectionProperties = {}) {\r\n // Set defaults only where necessary\r\n this.properties = {\r\n pageSize: properties.pageSize || {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n orientation: 'portrait',\r\n },\r\n margins: properties.margins || {\r\n top: 1440, // 1 inch\r\n bottom: 1440,\r\n left: 1440,\r\n right: 1440,\r\n header: 720, // 0.5 inch\r\n footer: 720,\r\n },\r\n // Default to single column layout\r\n columns: properties.columns || {\r\n count: 1,\r\n },\r\n // Default to next page section break\r\n type: properties.type || 'nextPage',\r\n pageNumbering: properties.pageNumbering,\r\n headers: properties.headers,\r\n footers: properties.footers,\r\n titlePage: properties.titlePage,\r\n // Phase 4.5 - New properties\r\n verticalAlignment: properties.verticalAlignment,\r\n paperSource: properties.paperSource,\r\n textDirection: properties.textDirection,\r\n pageBorders: properties.pageBorders,\r\n };\r\n }\r\n\r\n /**\r\n * Sets the tracking context for automatic change tracking.\r\n * Called by Document when track changes is enabled.\r\n * @internal\r\n */\r\n _setTrackingContext(context: import('../tracking/TrackingContext').TrackingContext): void {\r\n this.trackingContext = context;\r\n }\r\n\r\n /**\r\n * Gets the section property change tracking info\r\n */\r\n getSectPrChange(): SectPrChange | undefined {\r\n return this.sectPrChange;\r\n }\r\n\r\n /**\r\n * Sets the section property change tracking info\r\n */\r\n setSectPrChange(change: SectPrChange | undefined): void {\r\n this.sectPrChange = change;\r\n }\r\n\r\n /**\r\n * Clears the section property change tracking\r\n */\r\n clearSectPrChange(): void {\r\n this.sectPrChange = undefined;\r\n }\r\n\r\n /**\r\n * Gets the section properties\r\n */\r\n getProperties(): SectionProperties {\r\n return { ...this.properties };\r\n }\r\n\r\n // ============================================================================\r\n // Individual Property Getters\r\n // ============================================================================\r\n\r\n /**\r\n * Gets the page size settings\r\n * @returns Page size object with width, height, and orientation, or undefined\r\n */\r\n getPageSize(): PageSize | undefined {\r\n return this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the page orientation\r\n * @returns 'portrait' or 'landscape', or undefined if not set\r\n */\r\n getOrientation(): PageOrientation | undefined {\r\n return this.properties.pageSize?.orientation;\r\n }\r\n\r\n /**\r\n * Gets the margin settings\r\n * @returns Margins object or undefined if not set\r\n */\r\n getMargins(): Margins | undefined {\r\n return this.properties.margins ? { ...this.properties.margins } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the column layout settings\r\n * @returns Columns object or undefined if not set\r\n */\r\n getColumns(): Columns | undefined {\r\n return this.properties.columns ? { ...this.properties.columns } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the section type (break type)\r\n * @returns Section type or undefined if not set\r\n */\r\n getSectionType(): SectionType | undefined {\r\n return this.properties.type;\r\n }\r\n\r\n /**\r\n * Gets the page numbering settings\r\n * @returns PageNumbering object or undefined if not set\r\n */\r\n getPageNumbering(): PageNumbering | undefined {\r\n return this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\r\n }\r\n\r\n /**\r\n * Gets whether this section has a title page (different first page)\r\n * @returns true if title page is enabled, false otherwise\r\n */\r\n getTitlePage(): boolean {\r\n return this.properties.titlePage ?? false;\r\n }\r\n\r\n /**\r\n * Gets header references\r\n * @returns Object with default, first, and even header relationship IDs, or undefined\r\n */\r\n getHeaderReferences(): { default?: string; first?: string; even?: string } | undefined {\r\n return this.properties.headers ? { ...this.properties.headers } : undefined;\r\n }\r\n\r\n /**\r\n * Gets a specific header reference\r\n * @param type Header type (default, first, even)\r\n * @returns Relationship ID or undefined if not set\r\n */\r\n getHeaderReference(type: 'default' | 'first' | 'even'): string | undefined {\r\n return this.properties.headers?.[type];\r\n }\r\n\r\n /**\r\n * Gets footer references\r\n * @returns Object with default, first, and even footer relationship IDs, or undefined\r\n */\r\n getFooterReferences(): { default?: string; first?: string; even?: string } | undefined {\r\n return this.properties.footers ? { ...this.properties.footers } : undefined;\r\n }\r\n\r\n /**\r\n * Gets a specific footer reference\r\n * @param type Footer type (default, first, even)\r\n * @returns Relationship ID or undefined if not set\r\n */\r\n getFooterReference(type: 'default' | 'first' | 'even'): string | undefined {\r\n return this.properties.footers?.[type];\r\n }\r\n\r\n /**\r\n * Gets the vertical page alignment\r\n * @returns Vertical alignment or undefined if not set\r\n */\r\n getVerticalAlignment(): VerticalAlignment | undefined {\r\n return this.properties.verticalAlignment;\r\n }\r\n\r\n /**\r\n * Gets the paper source (printer tray) settings\r\n * @returns PaperSource object or undefined if not set\r\n */\r\n getPaperSource(): PaperSource | undefined {\r\n return this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\r\n }\r\n\r\n /**\r\n * Gets whether column separator is enabled\r\n * @returns true if separator is enabled, false otherwise\r\n */\r\n getColumnSeparator(): boolean {\r\n return this.properties.columns?.separator ?? false;\r\n }\r\n\r\n /**\r\n * Gets custom column widths\r\n * @returns Array of column widths in twips, or undefined if not set\r\n */\r\n getColumnWidths(): number[] | undefined {\r\n return this.properties.columns?.columnWidths ? [...this.properties.columns.columnWidths] : undefined;\r\n }\r\n\r\n /**\r\n * Gets the text direction\r\n * @returns Text direction or undefined if not set\r\n */\r\n getTextDirection(): TextDirection | undefined {\r\n return this.properties.textDirection;\r\n }\r\n\r\n /**\r\n * Gets whether the section is bidirectional (RTL)\r\n * @returns true if bidi is enabled, false otherwise\r\n */\r\n getBidi(): boolean {\r\n return this.properties.bidi ?? false;\r\n }\r\n\r\n /**\r\n * Gets whether RTL gutter is enabled (gutter on right side)\r\n * @returns true if RTL gutter is enabled, false otherwise\r\n */\r\n getRtlGutter(): boolean {\r\n return this.properties.rtlGutter ?? false;\r\n }\r\n\r\n /**\r\n * Gets the document grid settings\r\n * @returns DocumentGrid object or undefined if not set\r\n */\r\n getDocGrid(): DocumentGrid | undefined {\r\n return this.properties.docGrid ? { ...this.properties.docGrid } : undefined;\r\n }\r\n\r\n // ============================================================================\r\n // Setters\r\n // ============================================================================\r\n\r\n /**\r\n * Sets page size\r\n * @param width Width in twips\r\n * @param height Height in twips\r\n * @param orientation Page orientation\r\n */\r\n setPageSize(width: number, height: number, orientation: PageOrientation = 'portrait'): this {\r\n const prev = this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\r\n this.properties.pageSize = { width, height, orientation };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'pageSize', prev, this.properties.pageSize);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets page orientation\r\n * @param orientation Page orientation\r\n */\r\n setOrientation(orientation: PageOrientation): this {\r\n const prev = this.properties.pageSize?.orientation;\r\n if (!this.properties.pageSize) {\r\n this.properties.pageSize = {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n };\r\n }\r\n this.properties.pageSize.orientation = orientation;\r\n\r\n // Swap width/height for landscape\r\n if (orientation === 'landscape' && this.properties.pageSize.width < this.properties.pageSize.height) {\r\n const temp = this.properties.pageSize.width;\r\n this.properties.pageSize.width = this.properties.pageSize.height;\r\n this.properties.pageSize.height = temp;\r\n }\r\n\r\n if (this.trackingContext?.isEnabled() && prev !== orientation) {\r\n this.trackingContext.trackSectionChange(this, 'orientation', prev, orientation);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets margins\r\n * @param margins Margin properties\r\n */\r\n setMargins(margins: Margins): this {\r\n const prev = this.properties.margins ? { ...this.properties.margins } : undefined;\r\n const existing = this.properties.margins;\r\n this.properties.margins = {\r\n top: margins.top,\r\n bottom: margins.bottom,\r\n left: margins.left,\r\n right: margins.right,\r\n header: margins.header ?? existing?.header ?? 720,\r\n footer: margins.footer ?? existing?.footer ?? 720,\r\n gutter: margins.gutter ?? existing?.gutter,\r\n };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'margins', prev, this.properties.margins);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets column layout\r\n * @param count Number of columns\r\n * @param space Space between columns in twips\r\n */\r\n setColumns(count: number, space = 720): this {\r\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\r\n this.properties.columns = {\r\n count,\r\n space,\r\n equalWidth: true,\r\n };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'columns', prev, this.properties.columns);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section type\r\n * @param type Section break type\r\n */\r\n setSectionType(type: SectionType): this {\r\n const prev = this.properties.type;\r\n this.properties.type = type;\r\n if (this.trackingContext?.isEnabled() && prev !== type) {\r\n this.trackingContext.trackSectionChange(this, 'type', prev, type);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets page numbering\r\n * @param start Starting page number\r\n * @param format Number format\r\n */\r\n setPageNumbering(start?: number, format?: PageNumberFormat): this {\r\n const prev = this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\r\n this.properties.pageNumbering = { start, format };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'pageNumbering', prev, this.properties.pageNumbering);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets title page flag (different first page)\r\n * @param titlePage Whether this section has a different first page\r\n */\r\n setTitlePage(titlePage = true): this {\r\n const prev = this.properties.titlePage;\r\n this.properties.titlePage = titlePage;\r\n if (this.trackingContext?.isEnabled() && prev !== titlePage) {\r\n this.trackingContext.trackSectionChange(this, 'titlePage', prev, titlePage);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets header reference\r\n * @param type Header type (default, first, even)\r\n * @param rId Relationship ID\r\n */\r\n setHeaderReference(type: 'default' | 'first' | 'even', rId: string): this {\r\n const prev = this.properties.headers?.[type];\r\n if (!this.properties.headers) {\r\n this.properties.headers = {};\r\n }\r\n this.properties.headers[type] = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, `headerReference:${type}`, prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets footer reference\r\n * @param type Footer type (default, first, even)\r\n * @param rId Relationship ID\r\n */\r\n setFooterReference(type: 'default' | 'first' | 'even', rId: string): this {\r\n const prev = this.properties.footers?.[type];\r\n if (!this.properties.footers) {\r\n this.properties.footers = {};\r\n }\r\n this.properties.footers[type] = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, `footerReference:${type}`, prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets vertical page alignment\r\n * Controls how content is vertically aligned on the page\r\n * @param alignment Vertical alignment (top, center, bottom, both=justified)\r\n */\r\n setVerticalAlignment(alignment: VerticalAlignment): this {\r\n const prev = this.properties.verticalAlignment;\r\n this.properties.verticalAlignment = alignment;\r\n if (this.trackingContext?.isEnabled() && prev !== alignment) {\r\n this.trackingContext.trackSectionChange(this, 'verticalAlignment', prev, alignment);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets paper source (printer tray selection)\r\n * @param first First page tray number\r\n * @param other Other pages tray number\r\n */\r\n setPaperSource(first?: number, other?: number): this {\r\n const prev = this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\r\n this.properties.paperSource = { first, other };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'paperSource', prev, this.properties.paperSource);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets column separator line\r\n * Shows a vertical line between columns\r\n * @param separator Whether to show column separator line\r\n */\r\n setColumnSeparator(separator = true): this {\r\n const prev = this.properties.columns?.separator;\r\n if (!this.properties.columns) {\r\n this.properties.columns = { count: 1 };\r\n }\r\n this.properties.columns.separator = separator;\r\n if (this.trackingContext?.isEnabled() && prev !== separator) {\r\n this.trackingContext.trackSectionChange(this, 'columnSeparator', prev, separator);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets custom column widths (for unequal columns)\r\n * @param widths Array of column widths in twips\r\n */\r\n setColumnWidths(widths: number[]): this {\r\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\r\n if (!this.properties.columns) {\r\n this.properties.columns = { count: widths.length };\r\n }\r\n this.properties.columns.columnWidths = widths;\r\n this.properties.columns.equalWidth = false;\r\n this.properties.columns.count = widths.length;\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'columns', prev, { ...this.properties.columns });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets text direction for the section\r\n * @param direction Text direction (ltr=left-to-right, rtl=right-to-left, tbRl=top-to-bottom-right-to-left, btLr=bottom-to-top-left-to-right)\r\n */\r\n setTextDirection(direction: TextDirection): this {\r\n const prev = this.properties.textDirection;\r\n this.properties.textDirection = direction;\r\n if (this.trackingContext?.isEnabled() && prev !== direction) {\r\n this.trackingContext.trackSectionChange(this, 'textDirection', prev, direction);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets line numbering for the section\r\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType)\r\n * @param options Line numbering configuration\r\n */\r\n setLineNumbering(options: LineNumbering): this {\r\n const prev = this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\r\n this.properties.lineNumbering = { ...options };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'lineNumbering', prev, this.properties.lineNumbering);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets line numbering configuration\r\n * @returns Line numbering settings or undefined if not set\r\n */\r\n getLineNumbering(): LineNumbering | undefined {\r\n return this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\r\n }\r\n\r\n /**\r\n * Clears line numbering for the section\r\n */\r\n clearLineNumbering(): this {\r\n this.properties.lineNumbering = undefined;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section-level footnote properties\r\n * Per ECMA-376 Part 1 §17.11.6\r\n */\r\n setFootnoteProperties(props: NoteProperties): this {\r\n const prev = this.properties.footnotePr ? { ...this.properties.footnotePr } : undefined;\r\n this.properties.footnotePr = { ...props };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'footnotePr', prev, this.properties.footnotePr);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section-level endnote properties\r\n * Per ECMA-376 Part 1 §17.11.7\r\n */\r\n setEndnoteProperties(props: NoteProperties): this {\r\n const prev = this.properties.endnotePr ? { ...this.properties.endnotePr } : undefined;\r\n this.properties.endnotePr = { ...props };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'endnotePr', prev, this.properties.endnotePr);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether endnotes are suppressed in this section\r\n * Per ECMA-376 Part 1 §17.6.14\r\n */\r\n setNoEndnote(noEndnote = true): this {\r\n const prev = this.properties.noEndnote;\r\n this.properties.noEndnote = noEndnote;\r\n if (this.trackingContext?.isEnabled() && prev !== noEndnote) {\r\n this.trackingContext.trackSectionChange(this, 'noEndnote', prev, noEndnote);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets form protection for this section\r\n * Per ECMA-376 Part 1 §17.6.4\r\n */\r\n setFormProtection(formProt = true): this {\r\n const prev = this.properties.formProt;\r\n this.properties.formProt = formProt;\r\n if (this.trackingContext?.isEnabled() && prev !== formProt) {\r\n this.trackingContext.trackSectionChange(this, 'formProt', prev, formProt);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets printer settings relationship ID\r\n * Per ECMA-376 Part 1 §17.6.6\r\n */\r\n setPrinterSettings(rId: string): this {\r\n const prev = this.properties.printerSettingsId;\r\n this.properties.printerSettingsId = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, 'printerSettings', prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets chapter numbering for page numbers\r\n * Per ECMA-376 Part 1 §17.6.12\r\n * @param chapStyle - Heading level (1-9) to use for chapter numbering\r\n * @param chapSep - Separator between chapter and page number\r\n */\r\n setChapterNumbering(chapStyle: number, chapSep?: ChapterSeparator): this {\r\n const prevStyle = this.properties.chapStyle;\r\n const prevSep = this.properties.chapSep;\r\n this.properties.chapStyle = chapStyle;\r\n if (chapSep) this.properties.chapSep = chapSep;\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'chapterNumbering',\r\n { chapStyle: prevStyle, chapSep: prevSep },\r\n { chapStyle, chapSep: chapSep || prevSep });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Generates WordprocessingML XML for section properties\r\n */\r\n toXML(): XMLElement {\r\n const children: XMLElement[] = [];\r\n\r\n // Header references\r\n if (this.properties.headers) {\r\n if (this.properties.headers.first) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'first',\r\n 'r:id': this.properties.headers.first,\r\n })\r\n );\r\n }\r\n if (this.properties.headers.even) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'even',\r\n 'r:id': this.properties.headers.even,\r\n })\r\n );\r\n }\r\n if (this.properties.headers.default) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'default',\r\n 'r:id': this.properties.headers.default,\r\n })\r\n );\r\n }\r\n }\r\n\r\n // Footer references\r\n if (this.properties.footers) {\r\n if (this.properties.footers.first) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'first',\r\n 'r:id': this.properties.footers.first,\r\n })\r\n );\r\n }\r\n if (this.properties.footers.even) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'even',\r\n 'r:id': this.properties.footers.even,\r\n })\r\n );\r\n }\r\n if (this.properties.footers.default) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'default',\r\n 'r:id': this.properties.footers.default,\r\n })\r\n );\r\n }\r\n }\r\n\r\n // CT_SectPr element order per ECMA-376:\r\n // footnotePr → endnotePr → type → pgSz → pgMar → paperSrc → pgBorders →\r\n // lnNumType → pgNumType → cols → formProt → vAlign → noEndnote → titlePg →\r\n // textDirection → bidi → rtlGutter → docGrid → printerSettings → sectPrChange\r\n\r\n // Footnote properties (w:footnotePr)\r\n if (this.properties.footnotePr) {\r\n const fnChildren: XMLElement[] = [];\r\n if (this.properties.footnotePr.position) {\r\n fnChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.footnotePr.position }));\r\n }\r\n if (this.properties.footnotePr.numberFormat) {\r\n fnChildren.push(XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat }));\r\n }\r\n if (this.properties.footnotePr.startNumber !== undefined) {\r\n fnChildren.push(XMLBuilder.wSelf('numStart', { 'w:val': this.properties.footnotePr.startNumber.toString() }));\r\n }\r\n if (this.properties.footnotePr.restart) {\r\n fnChildren.push(XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart }));\r\n }\r\n if (fnChildren.length > 0) {\r\n children.push(XMLBuilder.w('footnotePr', undefined, fnChildren));\r\n }\r\n }\r\n\r\n // Endnote properties (w:endnotePr)\r\n if (this.properties.endnotePr) {\r\n const enChildren: XMLElement[] = [];\r\n if (this.properties.endnotePr.position) {\r\n enChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.endnotePr.position }));\r\n }\r\n if (this.properties.endnotePr.numberFormat) {\r\n enChildren.push(XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat }));\r\n }\r\n if (this.properties.endnotePr.startNumber !== undefined) {\r\n enChildren.push(XMLBuilder.wSelf('numStart', { 'w:val': this.properties.endnotePr.startNumber.toString() }));\r\n }\r\n if (this.properties.endnotePr.restart) {\r\n enChildren.push(XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart }));\r\n }\r\n if (enChildren.length > 0) {\r\n children.push(XMLBuilder.w('endnotePr', undefined, enChildren));\r\n }\r\n }\r\n\r\n // Section type\r\n if (this.properties.type) {\r\n children.push(\r\n XMLBuilder.wSelf('type', { 'w:val': this.properties.type })\r\n );\r\n }\r\n\r\n // Page size\r\n if (this.properties.pageSize) {\r\n const attrs: Record<string, string> = {\r\n 'w:w': this.properties.pageSize.width.toString(),\r\n 'w:h': this.properties.pageSize.height.toString(),\r\n };\r\n if (this.properties.pageSize.orientation === 'landscape') {\r\n attrs['w:orient'] = 'landscape';\r\n }\r\n children.push(XMLBuilder.wSelf('pgSz', attrs));\r\n }\r\n\r\n // Margins\r\n if (this.properties.margins) {\r\n const attrs: Record<string, string> = {\r\n 'w:top': this.properties.margins.top.toString(),\r\n 'w:right': this.properties.margins.right.toString(),\r\n 'w:bottom': this.properties.margins.bottom.toString(),\r\n 'w:left': this.properties.margins.left.toString(),\r\n };\r\n attrs['w:header'] = (this.properties.margins.header ?? 720).toString();\r\n attrs['w:footer'] = (this.properties.margins.footer ?? 720).toString();\r\n if (this.properties.margins.gutter !== undefined) {\r\n attrs['w:gutter'] = this.properties.margins.gutter.toString();\r\n }\r\n children.push(XMLBuilder.wSelf('pgMar', attrs));\r\n }\r\n\r\n // Paper source\r\n if (this.properties.paperSource) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.paperSource.first !== undefined) {\r\n attrs['w:first'] = this.properties.paperSource.first.toString();\r\n }\r\n if (this.properties.paperSource.other !== undefined) {\r\n attrs['w:other'] = this.properties.paperSource.other.toString();\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('paperSrc', attrs));\r\n }\r\n }\r\n\r\n // Page borders per ECMA-376 Part 1 §17.6.10\r\n if (this.properties.pageBorders) {\r\n const pgBorders = this.properties.pageBorders;\r\n const pgBordersAttrs: Record<string, string> = {};\r\n if (pgBorders.offsetFrom) pgBordersAttrs['w:offsetFrom'] = pgBorders.offsetFrom;\r\n if (pgBorders.display) pgBordersAttrs['w:display'] = pgBorders.display;\r\n if (pgBorders.zOrder) pgBordersAttrs['w:zOrder'] = pgBorders.zOrder;\r\n\r\n const borderChildren: XMLElement[] = [];\r\n const buildBorder = (side: string, def: PageBorderDef) => {\r\n const bAttrs: Record<string, string | number> = {};\r\n if (def.style) bAttrs['w:val'] = def.style;\r\n // ECMA-376 Part 1 §17.18.2: sz valid range 2-96 (eighths of a point)\r\n if (def.size !== undefined) bAttrs['w:sz'] = Math.max(2, Math.min(96, def.size));\r\n if (def.color) bAttrs['w:color'] = def.color;\r\n // ECMA-376 Part 1 §17.18.88: space valid range 0-31680 (points)\r\n if (def.space !== undefined) bAttrs['w:space'] = Math.max(0, Math.min(31680, def.space));\r\n if (def.shadow) bAttrs['w:shadow'] = '1';\r\n if (def.frame) bAttrs['w:frame'] = '1';\r\n if (def.themeColor) bAttrs['w:themeColor'] = def.themeColor;\r\n if (def.artId !== undefined) bAttrs['w:id'] = def.artId;\r\n borderChildren.push(XMLBuilder.wSelf(side, bAttrs));\r\n };\r\n\r\n if (pgBorders.top) buildBorder('top', pgBorders.top);\r\n if (pgBorders.left) buildBorder('left', pgBorders.left);\r\n if (pgBorders.bottom) buildBorder('bottom', pgBorders.bottom);\r\n if (pgBorders.right) buildBorder('right', pgBorders.right);\r\n\r\n children.push(XMLBuilder.w('pgBorders', pgBordersAttrs, borderChildren));\r\n }\r\n\r\n // Line numbering (w:lnNumType)\r\n if (this.properties.lineNumbering) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.lineNumbering.countBy !== undefined) {\r\n attrs['w:countBy'] = this.properties.lineNumbering.countBy.toString();\r\n }\r\n if (this.properties.lineNumbering.start !== undefined) {\r\n attrs['w:start'] = this.properties.lineNumbering.start.toString();\r\n }\r\n if (this.properties.lineNumbering.distance !== undefined) {\r\n attrs['w:distance'] = this.properties.lineNumbering.distance.toString();\r\n }\r\n if (this.properties.lineNumbering.restart) {\r\n attrs['w:restart'] = this.properties.lineNumbering.restart;\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('lnNumType', attrs));\r\n }\r\n }\r\n\r\n // Page numbering\r\n if (this.properties.pageNumbering || this.properties.chapStyle !== undefined) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.pageNumbering?.start !== undefined) {\r\n attrs['w:start'] = this.properties.pageNumbering.start.toString();\r\n }\r\n if (this.properties.pageNumbering?.format) {\r\n attrs['w:fmt'] = this.properties.pageNumbering.format;\r\n }\r\n if (this.properties.chapStyle !== undefined) {\r\n attrs['w:chapStyle'] = this.properties.chapStyle.toString();\r\n }\r\n if (this.properties.chapSep) {\r\n attrs['w:chapSep'] = this.properties.chapSep;\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('pgNumType', attrs));\r\n }\r\n }\r\n\r\n // Columns\r\n if (this.properties.columns) {\r\n const attrs: Record<string, string> = {\r\n 'w:num': this.properties.columns.count.toString(),\r\n };\r\n if (this.properties.columns.space !== undefined) {\r\n attrs['w:space'] = this.properties.columns.space.toString();\r\n }\r\n if (this.properties.columns.equalWidth !== undefined) {\r\n attrs['w:equalWidth'] = this.properties.columns.equalWidth ? '1' : '0';\r\n }\r\n if (this.properties.columns.separator !== undefined) {\r\n attrs['w:sep'] = this.properties.columns.separator ? '1' : '0';\r\n }\r\n\r\n const colChildren: XMLElement[] = [];\r\n if (this.properties.columns.columnWidths) {\r\n for (const width of this.properties.columns.columnWidths) {\r\n colChildren.push(\r\n XMLBuilder.wSelf('col', { 'w:w': width.toString() })\r\n );\r\n }\r\n }\r\n\r\n children.push(\r\n colChildren.length > 0\r\n ? XMLBuilder.w('cols', attrs, colChildren)\r\n : XMLBuilder.wSelf('cols', attrs)\r\n );\r\n }\r\n\r\n // Form protection (w:formProt)\r\n if (this.properties.formProt) {\r\n children.push(XMLBuilder.wSelf('formProt'));\r\n }\r\n\r\n // Vertical alignment\r\n if (this.properties.verticalAlignment) {\r\n children.push(\r\n XMLBuilder.wSelf('vAlign', { 'w:val': this.properties.verticalAlignment })\r\n );\r\n }\r\n\r\n // Suppress endnotes (w:noEndnote)\r\n if (this.properties.noEndnote) {\r\n children.push(XMLBuilder.wSelf('noEndnote'));\r\n }\r\n\r\n // Title page\r\n if (this.properties.titlePage) {\r\n children.push(XMLBuilder.wSelf('titlePg', { 'w:val': '1' }));\r\n }\r\n\r\n // Text direction (map to valid ST_TextDirection values per ECMA-376 §17.18.93)\r\n if (this.properties.textDirection) {\r\n const textDirMap: Record<string, string> = {\r\n ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',\r\n lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',\r\n };\r\n const val = textDirMap[this.properties.textDirection] || this.properties.textDirection;\r\n children.push(\r\n XMLBuilder.wSelf('textDirection', { 'w:val': val })\r\n );\r\n }\r\n\r\n // Bidirectional section (RTL)\r\n if (this.properties.bidi) {\r\n children.push(XMLBuilder.wSelf('bidi'));\r\n }\r\n\r\n // RTL gutter (gutter on right side)\r\n if (this.properties.rtlGutter) {\r\n children.push(XMLBuilder.wSelf('rtlGutter'));\r\n }\r\n\r\n // Document grid\r\n if (this.properties.docGrid) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.docGrid.type) {\r\n attrs['w:type'] = this.properties.docGrid.type;\r\n }\r\n if (this.properties.docGrid.linePitch !== undefined) {\r\n attrs['w:linePitch'] = this.properties.docGrid.linePitch.toString();\r\n }\r\n if (this.properties.docGrid.charSpace !== undefined) {\r\n attrs['w:charSpace'] = this.properties.docGrid.charSpace.toString();\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('docGrid', attrs));\r\n }\r\n }\r\n\r\n // Printer settings (w:printerSettings)\r\n if (this.properties.printerSettingsId) {\r\n children.push(XMLBuilder.wSelf('printerSettings', {\r\n 'r:id': this.properties.printerSettingsId,\r\n }));\r\n }\r\n\r\n // Add section property change (w:sectPrChange) per ECMA-376 Part 1 §17.13.5.32\r\n // Must be last child of w:sectPr\r\n if (this.sectPrChange) {\r\n const changeAttrs: Record<string, string | number> = {\r\n 'w:id': this.sectPrChange.id,\r\n 'w:author': this.sectPrChange.author,\r\n 'w:date': this.sectPrChange.date,\r\n };\r\n const prevChildren: XMLElement[] = [];\r\n const prev = this.sectPrChange.previousProperties;\r\n if (prev) {\r\n // Ordered per CT_SectPrBase:\r\n // type → pgSz → pgMar → lnNumType → pgNumType → cols → formProt → vAlign → titlePg → textDirection\r\n if (prev.type) {\r\n prevChildren.push(XMLBuilder.wSelf('type', { 'w:val': prev.type }));\r\n }\r\n if (prev.pageSize) {\r\n const pgSzAttrs: Record<string, string> = {\r\n 'w:w': prev.pageSize.width?.toString() || '12240',\r\n 'w:h': prev.pageSize.height?.toString() || '15840',\r\n };\r\n if (prev.pageSize.orientation === 'landscape') {\r\n pgSzAttrs['w:orient'] = 'landscape';\r\n }\r\n prevChildren.push(XMLBuilder.wSelf('pgSz', pgSzAttrs));\r\n }\r\n if (prev.margins) {\r\n const pgMarAttrs: Record<string, string> = {};\r\n if (prev.margins.top !== undefined) pgMarAttrs['w:top'] = prev.margins.top.toString();\r\n if (prev.margins.bottom !== undefined) pgMarAttrs['w:bottom'] = prev.margins.bottom.toString();\r\n if (prev.margins.left !== undefined) pgMarAttrs['w:left'] = prev.margins.left.toString();\r\n if (prev.margins.right !== undefined) pgMarAttrs['w:right'] = prev.margins.right.toString();\r\n if (prev.margins.header !== undefined) pgMarAttrs['w:header'] = prev.margins.header.toString();\r\n if (prev.margins.footer !== undefined) pgMarAttrs['w:footer'] = prev.margins.footer.toString();\r\n prevChildren.push(XMLBuilder.wSelf('pgMar', pgMarAttrs));\r\n }\r\n if (prev.lineNumbering) {\r\n const lnAttrs: Record<string, string> = {};\r\n if (prev.lineNumbering.countBy !== undefined) lnAttrs['w:countBy'] = prev.lineNumbering.countBy.toString();\r\n if (prev.lineNumbering.start !== undefined) lnAttrs['w:start'] = prev.lineNumbering.start.toString();\r\n if (prev.lineNumbering.restart) lnAttrs['w:restart'] = prev.lineNumbering.restart;\r\n if (prev.lineNumbering.distance !== undefined) lnAttrs['w:distance'] = prev.lineNumbering.distance.toString();\r\n if (Object.keys(lnAttrs).length > 0) {\r\n prevChildren.push(XMLBuilder.wSelf('lnNumType', lnAttrs));\r\n }\r\n }\r\n if (prev.pageNumbering) {\r\n const pnAttrs: Record<string, string> = {};\r\n if (prev.pageNumbering.start !== undefined) pnAttrs['w:start'] = prev.pageNumbering.start.toString();\r\n if (prev.pageNumbering.format) pnAttrs['w:fmt'] = prev.pageNumbering.format;\r\n if (Object.keys(pnAttrs).length > 0) {\r\n prevChildren.push(XMLBuilder.wSelf('pgNumType', pnAttrs));\r\n }\r\n }\r\n if (prev.columns) {\r\n const colAttrs: Record<string, string> = { 'w:num': prev.columns.count?.toString() || '1' };\r\n if (prev.columns.space !== undefined) colAttrs['w:space'] = prev.columns.space.toString();\r\n prevChildren.push(XMLBuilder.wSelf('cols', colAttrs));\r\n }\r\n if (prev.formProt) {\r\n prevChildren.push(XMLBuilder.wSelf('formProt'));\r\n }\r\n if (prev.verticalAlignment) {\r\n prevChildren.push(XMLBuilder.wSelf('vAlign', { 'w:val': prev.verticalAlignment }));\r\n }\r\n if (prev.titlePage) {\r\n prevChildren.push(XMLBuilder.wSelf('titlePg'));\r\n }\r\n if (prev.textDirection) {\r\n const tdMap: Record<string, string> = {\r\n ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',\r\n lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',\r\n };\r\n prevChildren.push(XMLBuilder.wSelf('textDirection', { 'w:val': tdMap[prev.textDirection] || prev.textDirection }));\r\n }\r\n }\r\n const prevSectPr = XMLBuilder.w('sectPr', undefined, prevChildren);\r\n children.push(XMLBuilder.w('sectPrChange', changeAttrs, [prevSectPr]));\r\n }\r\n\r\n return XMLBuilder.w('sectPr', undefined, children);\r\n }\r\n\r\n /**\r\n * Creates a deep clone of this section\r\n * @returns New Section instance with copied properties\r\n */\r\n clone(): Section {\r\n // Deep clone all nested objects\r\n const clonedProperties: SectionProperties = {};\r\n\r\n if (this.properties.pageSize) {\r\n clonedProperties.pageSize = { ...this.properties.pageSize };\r\n }\r\n\r\n if (this.properties.margins) {\r\n clonedProperties.margins = { ...this.properties.margins };\r\n }\r\n\r\n if (this.properties.columns) {\r\n clonedProperties.columns = {\r\n ...this.properties.columns,\r\n columnWidths: this.properties.columns.columnWidths\r\n ? [...this.properties.columns.columnWidths]\r\n : undefined,\r\n };\r\n }\r\n\r\n if (this.properties.pageNumbering) {\r\n clonedProperties.pageNumbering = { ...this.properties.pageNumbering };\r\n }\r\n\r\n if (this.properties.headers) {\r\n clonedProperties.headers = { ...this.properties.headers };\r\n }\r\n\r\n if (this.properties.footers) {\r\n clonedProperties.footers = { ...this.properties.footers };\r\n }\r\n\r\n if (this.properties.paperSource) {\r\n clonedProperties.paperSource = { ...this.properties.paperSource };\r\n }\r\n\r\n if (this.properties.docGrid) {\r\n clonedProperties.docGrid = { ...this.properties.docGrid };\r\n }\r\n\r\n if (this.properties.lineNumbering) {\r\n clonedProperties.lineNumbering = { ...this.properties.lineNumbering };\r\n }\r\n\r\n // Copy primitive properties\r\n clonedProperties.type = this.properties.type;\r\n clonedProperties.titlePage = this.properties.titlePage;\r\n clonedProperties.verticalAlignment = this.properties.verticalAlignment;\r\n clonedProperties.textDirection = this.properties.textDirection;\r\n clonedProperties.bidi = this.properties.bidi;\r\n clonedProperties.rtlGutter = this.properties.rtlGutter;\r\n\r\n return new Section(clonedProperties);\r\n }\r\n\r\n /**\r\n * Creates a section with default properties\r\n */\r\n static create(properties?: SectionProperties): Section {\r\n return new Section(properties);\r\n }\r\n\r\n /**\r\n * Creates a letter-sized section (8.5\" x 11\")\r\n */\r\n static createLetter(): Section {\r\n return new Section({\r\n pageSize: {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n orientation: 'portrait',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates an A4-sized section (21cm x 29.7cm)\r\n */\r\n static createA4(): Section {\r\n return new Section({\r\n pageSize: {\r\n width: PAGE_SIZES.A4.width,\r\n height: PAGE_SIZES.A4.height,\r\n orientation: 'portrait',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a landscape section\r\n * @param pageSize Page size (default: Letter)\r\n */\r\n static createLandscape(pageSize: 'letter' | 'a4' = 'letter'): Section {\r\n const size = pageSize === 'a4' ? PAGE_SIZES.A4 : PAGE_SIZES.LETTER;\r\n return new Section({\r\n pageSize: {\r\n width: size.height, // Swap for landscape\r\n height: size.width,\r\n orientation: 'landscape',\r\n },\r\n });\r\n }\r\n}\r\n"]}