docxmlater 10.0.1 → 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 (395) hide show
  1. package/README.md +3 -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 +24 -19
  9. package/dist/core/Document.d.ts.map +1 -1
  10. package/dist/core/Document.js +272 -71
  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.d.ts.map +1 -1
  139. package/dist/helpers/CleanupHelper.js +1 -7
  140. package/dist/helpers/CleanupHelper.js.map +1 -1
  141. package/dist/images/ImageOptimizer.js.map +1 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/managers/DrawingManager.d.ts.map +1 -1
  144. package/dist/managers/DrawingManager.js.map +1 -1
  145. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  146. package/dist/tracking/TrackingContext.js.map +1 -1
  147. package/dist/types/compatibility-types.js.map +1 -1
  148. package/dist/types/formatting.js.map +1 -1
  149. package/dist/types/list-types.d.ts +4 -4
  150. package/dist/types/list-types.d.ts.map +1 -1
  151. package/dist/types/list-types.js.map +1 -1
  152. package/dist/types/settings-types.js.map +1 -1
  153. package/dist/types/styleConfig.js.map +1 -1
  154. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  155. package/dist/utils/ChangelogGenerator.js.map +1 -1
  156. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  157. package/dist/utils/CompatibilityUpgrader.js +7 -7
  158. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  159. package/dist/utils/InMemoryRevisionAcceptor.js +1 -1
  160. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  161. package/dist/utils/MoveOperationHelper.js.map +1 -1
  162. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  163. package/dist/utils/RevisionWalker.js.map +1 -1
  164. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  165. package/dist/utils/ShadingResolver.js +1 -1
  166. package/dist/utils/ShadingResolver.js.map +1 -1
  167. package/dist/utils/acceptRevisions.d.ts +0 -28
  168. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  169. package/dist/utils/acceptRevisions.js +5 -7
  170. package/dist/utils/acceptRevisions.js.map +1 -1
  171. package/dist/utils/cnfStyleDecoder.js +1 -1
  172. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  173. package/dist/utils/corruptionDetection.js.map +1 -1
  174. package/dist/utils/dateFormatting.js.map +1 -1
  175. package/dist/utils/deepClone.d.ts +0 -1
  176. package/dist/utils/deepClone.d.ts.map +1 -1
  177. package/dist/utils/deepClone.js +0 -7
  178. package/dist/utils/deepClone.js.map +1 -1
  179. package/dist/utils/diagnostics.d.ts +2 -2
  180. package/dist/utils/diagnostics.d.ts.map +1 -1
  181. package/dist/utils/diagnostics.js.map +1 -1
  182. package/dist/utils/errorHandling.js.map +1 -1
  183. package/dist/utils/formatting.js.map +1 -1
  184. package/dist/utils/list-detection.d.ts +2 -2
  185. package/dist/utils/list-detection.d.ts.map +1 -1
  186. package/dist/utils/list-detection.js +3 -3
  187. package/dist/utils/list-detection.js.map +1 -1
  188. package/dist/utils/logger.d.ts +2 -4
  189. package/dist/utils/logger.d.ts.map +1 -1
  190. package/dist/utils/logger.js +0 -2
  191. package/dist/utils/logger.js.map +1 -1
  192. package/dist/utils/parsingHelpers.js.map +1 -1
  193. package/dist/utils/stripTrackedChanges.d.ts +0 -19
  194. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  195. package/dist/utils/stripTrackedChanges.js +0 -2
  196. package/dist/utils/stripTrackedChanges.js.map +1 -1
  197. package/dist/utils/textDiff.js.map +1 -1
  198. package/dist/utils/units.js.map +1 -1
  199. package/dist/utils/validation.d.ts.map +1 -1
  200. package/dist/utils/validation.js.map +1 -1
  201. package/dist/utils/xmlSanitization.js.map +1 -1
  202. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  203. package/dist/validation/RevisionValidator.js.map +1 -1
  204. package/dist/validation/ValidationRules.js.map +1 -1
  205. package/dist/validation/index.js.map +1 -1
  206. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  207. package/dist/xml/XMLBuilder.js +10 -0
  208. package/dist/xml/XMLBuilder.js.map +1 -1
  209. package/dist/xml/XMLParser.d.ts.map +1 -1
  210. package/dist/xml/XMLParser.js +4 -5
  211. package/dist/xml/XMLParser.js.map +1 -1
  212. package/dist/zip/ZipHandler.js.map +1 -1
  213. package/dist/zip/ZipReader.js.map +1 -1
  214. package/dist/zip/ZipWriter.js.map +1 -1
  215. package/dist/zip/errors.js.map +1 -1
  216. package/dist/zip/types.js.map +1 -1
  217. package/package.json +34 -4
  218. package/src/__tests__/helper-methods.test.ts +512 -0
  219. package/src/constants/legacyCompatFlags.ts +138 -0
  220. package/src/constants/limits.ts +50 -0
  221. package/src/core/CLAUDE.md +109 -0
  222. package/src/core/Document.ts +15569 -0
  223. package/src/core/DocumentContent.ts +467 -0
  224. package/src/core/DocumentGenerator.ts +1104 -0
  225. package/src/core/DocumentIdManager.ts +158 -0
  226. package/src/core/DocumentParser.ts +10107 -0
  227. package/src/core/DocumentValidator.ts +372 -0
  228. package/src/core/Relationship.ts +367 -0
  229. package/src/core/RelationshipManager.ts +428 -0
  230. package/src/elements/AlternateContent.ts +42 -0
  231. package/src/elements/Bookmark.ts +210 -0
  232. package/src/elements/BookmarkManager.ts +250 -0
  233. package/src/elements/CLAUDE.md +126 -0
  234. package/src/elements/Comment.ts +359 -0
  235. package/src/elements/CommentManager.ts +502 -0
  236. package/src/elements/CommonTypes.ts +549 -0
  237. package/src/elements/CustomXml.ts +36 -0
  238. package/src/elements/Endnote.ts +217 -0
  239. package/src/elements/EndnoteManager.ts +249 -0
  240. package/src/elements/Field.ts +1233 -0
  241. package/src/elements/FieldHelpers.ts +333 -0
  242. package/src/elements/FontManager.ts +339 -0
  243. package/src/elements/Footer.ts +269 -0
  244. package/src/elements/Footnote.ts +217 -0
  245. package/src/elements/FootnoteManager.ts +249 -0
  246. package/src/elements/Header.ts +269 -0
  247. package/src/elements/HeaderFooterManager.ts +219 -0
  248. package/src/elements/Hyperlink.ts +1146 -0
  249. package/src/elements/Image.ts +1756 -0
  250. package/src/elements/ImageManager.ts +432 -0
  251. package/src/elements/ImageRun.ts +59 -0
  252. package/src/elements/MathElement.ts +65 -0
  253. package/src/elements/Paragraph.ts +4227 -0
  254. package/src/elements/PreservedElement.ts +53 -0
  255. package/src/elements/PropertyChangeTypes.ts +442 -0
  256. package/src/elements/RangeMarker.ts +400 -0
  257. package/src/elements/Revision.ts +1217 -0
  258. package/src/elements/RevisionContent.ts +73 -0
  259. package/src/elements/RevisionManager.ts +1070 -0
  260. package/src/elements/Run.ts +3068 -0
  261. package/src/elements/Section.ts +1421 -0
  262. package/src/elements/Shape.ts +873 -0
  263. package/src/elements/StructuredDocumentTag.ts +978 -0
  264. package/src/elements/Table.ts +2524 -0
  265. package/src/elements/TableCell.ts +1586 -0
  266. package/src/elements/TableGridChange.ts +151 -0
  267. package/src/elements/TableOfContents.ts +691 -0
  268. package/src/elements/TableOfContentsElement.ts +89 -0
  269. package/src/elements/TableRow.ts +906 -0
  270. package/src/elements/TextBox.ts +768 -0
  271. package/src/formatting/AbstractNumbering.ts +548 -0
  272. package/src/formatting/CLAUDE.md +74 -0
  273. package/src/formatting/NumberingInstance.ts +212 -0
  274. package/src/formatting/NumberingLevel.ts +1006 -0
  275. package/src/formatting/NumberingManager.ts +827 -0
  276. package/src/formatting/Style.ts +1833 -0
  277. package/src/formatting/StylesManager.ts +1005 -0
  278. package/src/helpers/CleanupHelper.ts +524 -0
  279. package/src/images/ImageOptimizer.ts +274 -0
  280. package/src/index.ts +554 -0
  281. package/src/managers/CLAUDE.md +47 -0
  282. package/src/managers/DrawingManager.ts +319 -0
  283. package/src/tracking/DocumentTrackingContext.ts +643 -0
  284. package/src/tracking/TrackingContext.ts +173 -0
  285. package/src/types/compatibility-types.ts +49 -0
  286. package/src/types/formatting.ts +210 -0
  287. package/src/types/list-types.ts +152 -0
  288. package/src/types/settings-types.ts +59 -0
  289. package/src/types/styleConfig.ts +189 -0
  290. package/src/utils/CLAUDE.md +153 -0
  291. package/src/utils/ChangelogGenerator.ts +1581 -0
  292. package/src/utils/CompatibilityUpgrader.ts +237 -0
  293. package/src/utils/InMemoryRevisionAcceptor.ts +668 -0
  294. package/src/utils/MoveOperationHelper.ts +238 -0
  295. package/src/utils/RevisionAwareProcessor.ts +526 -0
  296. package/src/utils/RevisionWalker.ts +457 -0
  297. package/src/utils/SelectiveRevisionAcceptor.ts +613 -0
  298. package/src/utils/ShadingResolver.ts +107 -0
  299. package/src/utils/acceptRevisions.ts +714 -0
  300. package/src/utils/cnfStyleDecoder.ts +217 -0
  301. package/src/utils/corruptionDetection.ts +345 -0
  302. package/src/utils/dateFormatting.ts +20 -0
  303. package/src/utils/deepClone.ts +78 -0
  304. package/src/utils/diagnostics.ts +129 -0
  305. package/src/utils/errorHandling.ts +80 -0
  306. package/src/utils/formatting.ts +213 -0
  307. package/src/utils/list-detection.ts +274 -0
  308. package/src/utils/logger.ts +404 -0
  309. package/src/utils/parsingHelpers.ts +190 -0
  310. package/src/utils/stripTrackedChanges.ts +353 -0
  311. package/src/utils/textDiff.ts +100 -0
  312. package/src/utils/units.ts +421 -0
  313. package/src/utils/validation.ts +542 -0
  314. package/src/utils/xmlSanitization.ts +182 -0
  315. package/src/validation/RevisionAutoFixer.ts +542 -0
  316. package/src/validation/RevisionValidator.ts +460 -0
  317. package/src/validation/ValidationRules.ts +338 -0
  318. package/src/validation/index.ts +30 -0
  319. package/src/xml/CLAUDE.md +65 -0
  320. package/src/xml/XMLBuilder.ts +871 -0
  321. package/src/xml/XMLParser.ts +919 -0
  322. package/src/zip/CLAUDE.md +55 -0
  323. package/src/zip/ZipHandler.ts +637 -0
  324. package/src/zip/ZipReader.ts +299 -0
  325. package/src/zip/ZipWriter.ts +390 -0
  326. package/src/zip/errors.ts +69 -0
  327. package/src/zip/types.ts +116 -0
  328. package/dist/core/ListNormalizer.d.ts +0 -23
  329. package/dist/core/ListNormalizer.d.ts.map +0 -1
  330. package/dist/core/ListNormalizer.js +0 -624
  331. package/dist/core/ListNormalizer.js.map +0 -1
  332. package/dist/images/index.d.ts +0 -2
  333. package/dist/images/index.d.ts.map +0 -1
  334. package/dist/images/index.js +0 -8
  335. package/dist/images/index.js.map +0 -1
  336. package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
  337. package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
  338. package/dist/ms-doc/cfb/CFBReader.js +0 -360
  339. package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
  340. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
  341. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
  342. package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
  343. package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
  344. package/dist/ms-doc/fib/FIB.d.ts +0 -18
  345. package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
  346. package/dist/ms-doc/fib/FIB.js +0 -342
  347. package/dist/ms-doc/fib/FIB.js.map +0 -1
  348. package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
  349. package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
  350. package/dist/ms-doc/fields/FieldParser.js +0 -266
  351. package/dist/ms-doc/fields/FieldParser.js.map +0 -1
  352. package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
  353. package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
  354. package/dist/ms-doc/images/PictureExtractor.js +0 -233
  355. package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
  356. package/dist/ms-doc/index.d.ts +0 -20
  357. package/dist/ms-doc/index.d.ts.map +0 -1
  358. package/dist/ms-doc/index.js +0 -59
  359. package/dist/ms-doc/index.js.map +0 -1
  360. package/dist/ms-doc/properties/SPRM.d.ts +0 -210
  361. package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
  362. package/dist/ms-doc/properties/SPRM.js +0 -633
  363. package/dist/ms-doc/properties/SPRM.js.map +0 -1
  364. package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
  365. package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
  366. package/dist/ms-doc/sections/SectionParser.js +0 -214
  367. package/dist/ms-doc/sections/SectionParser.js.map +0 -1
  368. package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
  369. package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
  370. package/dist/ms-doc/styles/StyleSheet.js +0 -268
  371. package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
  372. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
  373. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
  374. package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
  375. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
  376. package/dist/ms-doc/tables/TableParser.d.ts +0 -29
  377. package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
  378. package/dist/ms-doc/tables/TableParser.js +0 -176
  379. package/dist/ms-doc/tables/TableParser.js.map +0 -1
  380. package/dist/ms-doc/text/PieceTable.d.ts +0 -21
  381. package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
  382. package/dist/ms-doc/text/PieceTable.js +0 -171
  383. package/dist/ms-doc/text/PieceTable.js.map +0 -1
  384. package/dist/ms-doc/types/Constants.d.ts +0 -99
  385. package/dist/ms-doc/types/Constants.d.ts.map +0 -1
  386. package/dist/ms-doc/types/Constants.js +0 -102
  387. package/dist/ms-doc/types/Constants.js.map +0 -1
  388. package/dist/ms-doc/types/DocTypes.d.ts +0 -368
  389. package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
  390. package/dist/ms-doc/types/DocTypes.js +0 -3
  391. package/dist/ms-doc/types/DocTypes.js.map +0 -1
  392. package/dist/tracking/index.d.ts +0 -3
  393. package/dist/tracking/index.d.ts.map +0 -1
  394. package/dist/tracking/index.js +0 -6
  395. package/dist/tracking/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../../src/elements/CommonTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../../src/elements/CommonTypes.ts"],"names":[],"mappings":";;;AA8ZA,4CA0CC;AAKD,sCAIC;AAKD,sDAIC;AAKD,kDAEC;AAKD,oDAIC;AAKD,kCAEC;AAkCD,wDAiBC;AAtID,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,QAAQ,GAAG;QACf,OAAO;QACP,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,mBAAmB;QACnB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,uBAAuB;QACvB,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;KACN,CAAC;IACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAKD,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CACvE,KAAK,CACN,CAAC;AACJ,CAAC;AAKD,SAAgB,qBAAqB,CACnC,KAAa;IAEb,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAKD,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAKD,SAAgB,oBAAoB,CAClC,KAAa;IAEb,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAKD,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AASY,QAAA,cAAc,GAAqB;IAC9C,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC;CACT,CAAC;AAKW,QAAA,SAAS,GAAqB;IACzC,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,CAAC;CACT,CAAC;AAUF,SAAgB,sBAAsB,CACpC,OAAsB;IAEtB,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC5C,IAAI,OAAO,CAAC,IAAI;QAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IACpD,IAAI,OAAO,CAAC,SAAS;QAAE,KAAK,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAChE,IAAI,OAAO,CAAC,UAAU;QAAE,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IACnE,IAAI,OAAO,CAAC,aAAa;QACvB,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IACnD,IAAI,OAAO,CAAC,cAAc;QACxB,KAAK,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IACrD,IAAI,OAAO,CAAC,SAAS;QAAE,KAAK,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAChE,IAAI,OAAO,CAAC,UAAU;QAAE,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\r\n * CommonTypes - Consolidated type definitions for docxmlater elements\r\n *\r\n * This file consolidates duplicate type definitions that were scattered across multiple\r\n * element files (Paragraph.ts, Run.ts, Table.ts, TableCell.ts, TableRow.ts, Image.ts, Section.ts).\r\n *\r\n * Benefits:\r\n * - Single source of truth for shared types\r\n * - Consistent type definitions across all elements\r\n * - Easier maintenance and updates\r\n * - Better type safety when passing values between elements\r\n *\r\n * @module CommonTypes\r\n */\r\n\r\n// ============================================================================\r\n// SHADING PATTERNS\r\n// ============================================================================\r\n\r\n/**\r\n * Shading pattern types per ECMA-376 Part 1 Section 17.18.78 (ST_Shd)\r\n *\r\n * Consolidated from: Paragraph.ts, Run.ts, TableRow.ts, TableCell.ts\r\n * This is the complete set of shading patterns supported by Word.\r\n */\r\nexport type ShadingPattern =\r\n // Solid patterns\r\n | \"clear\" // No pattern (transparent)\r\n | \"solid\" // Solid fill\r\n // Stripe patterns\r\n | \"horzStripe\" // Horizontal stripes\r\n | \"vertStripe\" // Vertical stripes\r\n | \"reverseDiagStripe\" // Reverse diagonal stripes (/)\r\n | \"diagStripe\" // Diagonal stripes (\\)\r\n // Cross patterns\r\n | \"horzCross\" // Horizontal cross-hatch\r\n | \"diagCross\" // Diagonal cross-hatch\r\n // Thin stripe patterns\r\n | \"thinHorzStripe\" // Thin horizontal stripes\r\n | \"thinVertStripe\" // Thin vertical stripes\r\n | \"thinReverseDiagStripe\" // Thin reverse diagonal stripes\r\n | \"thinDiagStripe\" // Thin diagonal stripes\r\n // Thin cross patterns\r\n | \"thinHorzCross\" // Thin horizontal cross-hatch\r\n | \"thinDiagCross\" // Thin diagonal cross-hatch\r\n // Percentage fill patterns (5% increments with some extras)\r\n | \"pct5\"\r\n | \"pct10\"\r\n | \"pct12\"\r\n | \"pct15\"\r\n | \"pct20\"\r\n | \"pct25\"\r\n | \"pct30\"\r\n | \"pct35\"\r\n | \"pct37\"\r\n | \"pct40\"\r\n | \"pct45\"\r\n | \"pct50\"\r\n | \"pct55\"\r\n | \"pct60\"\r\n | \"pct62\"\r\n | \"pct65\"\r\n | \"pct70\"\r\n | \"pct75\"\r\n | \"pct80\"\r\n | \"pct85\"\r\n | \"pct87\"\r\n | \"pct90\"\r\n | \"pct95\"\r\n | \"nil\"; // Explicitly clear inherited shading (ECMA-376 §17.18.78)\r\n\r\n/**\r\n * Basic shading patterns (without percentage fills)\r\n * Use this for contexts where percentage patterns are not needed\r\n */\r\nexport type BasicShadingPattern =\r\n | \"clear\"\r\n | \"solid\"\r\n | \"horzStripe\"\r\n | \"vertStripe\"\r\n | \"reverseDiagStripe\"\r\n | \"diagStripe\"\r\n | \"horzCross\"\r\n | \"diagCross\"\r\n | \"thinHorzStripe\"\r\n | \"thinVertStripe\"\r\n | \"thinReverseDiagStripe\"\r\n | \"thinDiagStripe\"\r\n | \"thinHorzCross\"\r\n | \"thinDiagCross\";\r\n\r\n// ============================================================================\r\n// BORDER STYLES\r\n// ============================================================================\r\n\r\n/**\r\n * Basic border styles per ECMA-376 Part 1 Section 17.18.2 (ST_Border)\r\n *\r\n * Consolidated from: Paragraph.ts, TableCell.ts, Table.ts\r\n * This covers the most commonly used border styles.\r\n */\r\nexport type BorderStyle =\r\n | \"none\" // No border\r\n | \"single\" // Single line\r\n | \"double\" // Double line\r\n | \"dashed\" // Dashed line\r\n | \"dotted\" // Dotted line\r\n | \"thick\"; // Thick single line\r\n\r\n/**\r\n * Extended border styles including decorative effects\r\n *\r\n * Consolidated from: Run.ts (TextBorderStyle)\r\n * Includes 3D effects and other decorative styles.\r\n */\r\nexport type ExtendedBorderStyle =\r\n | BorderStyle\r\n | \"wave\" // Wavy line\r\n | \"dashDotStroked\" // Dash-dot stroked\r\n | \"threeDEmboss\" // 3D embossed effect\r\n | \"threeDEngrave\"; // 3D engraved effect\r\n\r\n/**\r\n * Full border style set per ECMA-376\r\n * Includes all possible border values from the spec.\r\n */\r\nexport type FullBorderStyle =\r\n | ExtendedBorderStyle\r\n | \"dotDash\" // Dot-dash pattern\r\n | \"dotDotDash\" // Dot-dot-dash pattern\r\n | \"triple\" // Triple line\r\n | \"thinThickSmallGap\"\r\n | \"thickThinSmallGap\"\r\n | \"thinThickThinSmallGap\"\r\n | \"thinThickMediumGap\"\r\n | \"thickThinMediumGap\"\r\n | \"thinThickThinMediumGap\"\r\n | \"thinThickLargeGap\"\r\n | \"thickThinLargeGap\"\r\n | \"thinThickThinLargeGap\"\r\n | \"dashSmallGap\"\r\n | \"dashDotStroked\"\r\n | \"outset\"\r\n | \"inset\";\r\n\r\n/**\r\n * Generic border definition interface\r\n *\r\n * Consolidated from: Paragraph.ts (BorderDefinition), Run.ts (TextBorder),\r\n * TableCell.ts (CellBorder), Table.ts (TableBorder)\r\n */\r\nexport interface BorderDefinition {\r\n /** Border style */\r\n style?: BorderStyle | ExtendedBorderStyle;\r\n /** Border width in eighths of a point (1-96) */\r\n size?: number;\r\n /** Border color in hex format (without #) */\r\n color?: string;\r\n /** Space between border and content in points (0-31) */\r\n space?: number;\r\n}\r\n\r\n/**\r\n * Four-sided border definitions\r\n */\r\nexport interface FourSidedBorders {\r\n top?: BorderDefinition;\r\n bottom?: BorderDefinition;\r\n left?: BorderDefinition;\r\n right?: BorderDefinition;\r\n}\r\n\r\n/**\r\n * Table border definitions (includes inside borders)\r\n */\r\nexport interface TableBorderDefinitions extends FourSidedBorders {\r\n /** Inside horizontal borders (between rows) */\r\n insideH?: BorderDefinition;\r\n /** Inside vertical borders (between columns) */\r\n insideV?: BorderDefinition;\r\n}\r\n\r\n// ============================================================================\r\n// ALIGNMENT TYPES\r\n// ============================================================================\r\n\r\n/**\r\n * Horizontal alignment for general use\r\n *\r\n * Consolidated from: Image.ts, Table.ts (TableHorizontalAlignment)\r\n */\r\nexport type HorizontalAlignment =\r\n | \"left\"\r\n | \"center\"\r\n | \"right\"\r\n | \"inside\" // Toward binding edge\r\n | \"outside\"; // Away from binding edge\r\n\r\n/**\r\n * Vertical alignment for general use\r\n *\r\n * Consolidated from: Image.ts, Table.ts (TableVerticalAlignment)\r\n */\r\nexport type VerticalAlignment =\r\n | \"top\"\r\n | \"center\"\r\n | \"bottom\"\r\n | \"inside\" // Toward top of page in header\r\n | \"outside\"; // Toward bottom of page in footer\r\n\r\n/**\r\n * Vertical alignment for page content (Section-level)\r\n *\r\n * From: Section.ts - includes 'both' for justified vertical alignment\r\n */\r\nexport type PageVerticalAlignment = \"top\" | \"center\" | \"bottom\" | \"both\";\r\n\r\n/**\r\n * Vertical alignment for table cells\r\n *\r\n * From: TableCell.ts (CellVerticalAlignment)\r\n */\r\nexport type CellVerticalAlignment = \"top\" | \"center\" | \"bottom\";\r\n\r\n/**\r\n * Paragraph text alignment\r\n *\r\n * From: Paragraph.ts (ParagraphAlignment)\r\n * Note: 'both' is an alias for 'justify' in some contexts\r\n */\r\nexport type ParagraphAlignment =\r\n | \"left\"\r\n | \"center\"\r\n | \"right\"\r\n | \"justify\"\r\n | \"both\";\r\n\r\n/**\r\n * Table alignment (horizontal positioning)\r\n *\r\n * From: Table.ts (TableAlignment)\r\n */\r\nexport type TableAlignment = \"left\" | \"center\" | \"right\";\r\n\r\n/**\r\n * Row justification/alignment options\r\n *\r\n * From: TableRow.ts (RowJustification)\r\n */\r\nexport type RowJustification = \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\r\n\r\n/**\r\n * Text vertical alignment within line/cell\r\n *\r\n * From: Paragraph.ts (TextAlignment)\r\n */\r\nexport type TextVerticalAlignment =\r\n | \"top\"\r\n | \"center\"\r\n | \"baseline\"\r\n | \"bottom\"\r\n | \"auto\";\r\n\r\n/**\r\n * Tab stop alignment types\r\n *\r\n * From: Paragraph.ts (TabAlignment)\r\n */\r\nexport type TabAlignment =\r\n | \"clear\" // Remove tab stop\r\n | \"left\" // Left-aligned\r\n | \"center\" // Center-aligned\r\n | \"right\" // Right-aligned\r\n | \"decimal\" // Decimal-aligned (for numbers)\r\n | \"bar\" // Bar tab (vertical line)\r\n | \"num\"; // List number alignment\r\n\r\n// ============================================================================\r\n// POSITIONING & ANCHORING\r\n// ============================================================================\r\n\r\n/**\r\n * Position anchor type (what to position relative to)\r\n *\r\n * From: Image.ts (PositionAnchor)\r\n */\r\nexport type PositionAnchor =\r\n | \"page\"\r\n | \"margin\"\r\n | \"column\"\r\n | \"character\"\r\n | \"paragraph\";\r\n\r\n/**\r\n * Horizontal anchor for floating elements\r\n *\r\n * From: Table.ts (TableHorizontalAnchor), Paragraph.ts (FrameProperties.hAnchor)\r\n */\r\nexport type HorizontalAnchor = \"text\" | \"margin\" | \"page\";\r\n\r\n/**\r\n * Vertical anchor for floating elements\r\n *\r\n * From: Table.ts (TableVerticalAnchor), Paragraph.ts (FrameProperties.vAnchor)\r\n */\r\nexport type VerticalAnchor = \"text\" | \"margin\" | \"page\";\r\n\r\n// ============================================================================\r\n// TEXT DIRECTION\r\n// ============================================================================\r\n\r\n/**\r\n * Text direction for paragraphs and cells\r\n *\r\n * Consolidated from: Paragraph.ts, Section.ts\r\n * Per ECMA-376 Part 1 Section 17.18.93 (ST_TextDirection)\r\n */\r\nexport type TextDirection =\r\n | \"lrTb\" // Left-to-right, top-to-bottom (Western default)\r\n | \"tbRl\" // Top-to-bottom, right-to-left (East Asian vertical)\r\n | \"btLr\" // Bottom-to-top, left-to-right\r\n | \"lrTbV\" // Left-to-right, top-to-bottom (vertical variant)\r\n | \"tbRlV\" // Top-to-bottom, right-to-left (vertical variant)\r\n | \"tbLrV\"; // Top-to-bottom, left-to-right (vertical variant)\r\n\r\n/**\r\n * Simplified text direction for sections\r\n *\r\n * From: Section.ts\r\n */\r\nexport type SectionTextDirection = \"ltr\" | \"rtl\" | \"tbRl\" | \"btLr\";\r\n\r\n// ============================================================================\r\n// WIDTH TYPES\r\n// ============================================================================\r\n\r\n/**\r\n * Width type specification per ECMA-376\r\n *\r\n * Consolidated from: Table.ts, TableCell.ts\r\n */\r\nexport type WidthType =\r\n | \"auto\" // Automatically determined\r\n | \"dxa\" // Twips (twentieths of a point)\r\n | \"pct\"; // Percentage (in fiftieths of a percent)\r\n\r\n// ============================================================================\r\n// SHADING CONFIGURATION\r\n// ============================================================================\r\n\r\n/**\r\n * Generic shading configuration\r\n *\r\n * Consolidated from: Run.ts (CharacterShading), TableRow.ts (Shading), TableCell.ts (CellShading)\r\n */\r\nexport interface ShadingConfig {\r\n /** Background fill color in hex format (without #), or \"auto\" to inherit from style/parent */\r\n fill?: string;\r\n /** Foreground/pattern color in hex format (without #), or \"auto\" to inherit from style/parent */\r\n color?: string;\r\n /** Shading pattern type (maps to w:val in XML) */\r\n pattern?: ShadingPattern;\r\n /** Theme fill color reference (e.g., \"accent1\") */\r\n themeFill?: string;\r\n /** Theme foreground color reference */\r\n themeColor?: string;\r\n /** Tint on theme fill (hex 00-FF) */\r\n themeFillTint?: string;\r\n /** Shade on theme fill (hex 00-FF) */\r\n themeFillShade?: string;\r\n /** Tint on theme color (hex 00-FF) */\r\n themeTint?: string;\r\n /** Shade on theme color (hex 00-FF) */\r\n themeShade?: string;\r\n}\r\n\r\n// ============================================================================\r\n// TAB STOPS\r\n// ============================================================================\r\n\r\n/**\r\n * Tab stop leader types\r\n *\r\n * From: Paragraph.ts (TabLeader)\r\n */\r\nexport type TabLeader =\r\n | \"none\" // No leader\r\n | \"dot\" // Dots ......\r\n | \"hyphen\" // Hyphens ------\r\n | \"underscore\" // Underscores ______\r\n | \"heavy\" // Heavy line\r\n | \"middleDot\"; // Middle dots\r\n\r\n/**\r\n * Tab stop definition\r\n *\r\n * From: Paragraph.ts (TabStop)\r\n */\r\nexport interface TabStop {\r\n /** Position in twips from left margin */\r\n position: number;\r\n /** Alignment type */\r\n alignment?: TabAlignment;\r\n /** Leader character type */\r\n leader?: TabLeader;\r\n}\r\n\r\n// ============================================================================\r\n// TYPE GUARDS\r\n// ============================================================================\r\n\r\n/**\r\n * Check if a value is a valid ShadingPattern\r\n */\r\nexport function isShadingPattern(value: string): value is ShadingPattern {\r\n const patterns = [\r\n \"clear\",\r\n \"solid\",\r\n \"horzStripe\",\r\n \"vertStripe\",\r\n \"reverseDiagStripe\",\r\n \"diagStripe\",\r\n \"horzCross\",\r\n \"diagCross\",\r\n \"thinHorzStripe\",\r\n \"thinVertStripe\",\r\n \"thinReverseDiagStripe\",\r\n \"thinDiagStripe\",\r\n \"thinHorzCross\",\r\n \"thinDiagCross\",\r\n \"pct5\",\r\n \"pct10\",\r\n \"pct12\",\r\n \"pct15\",\r\n \"pct20\",\r\n \"pct25\",\r\n \"pct30\",\r\n \"pct35\",\r\n \"pct37\",\r\n \"pct40\",\r\n \"pct45\",\r\n \"pct50\",\r\n \"pct55\",\r\n \"pct60\",\r\n \"pct62\",\r\n \"pct65\",\r\n \"pct70\",\r\n \"pct75\",\r\n \"pct80\",\r\n \"pct85\",\r\n \"pct87\",\r\n \"pct90\",\r\n \"pct95\",\r\n \"nil\",\r\n ];\r\n return patterns.includes(value);\r\n}\r\n\r\n/**\r\n * Check if a value is a valid BorderStyle\r\n */\r\nexport function isBorderStyle(value: string): value is BorderStyle {\r\n return [\"none\", \"single\", \"double\", \"dashed\", \"dotted\", \"thick\"].includes(\r\n value\r\n );\r\n}\r\n\r\n/**\r\n * Check if a value is a valid HorizontalAlignment\r\n */\r\nexport function isHorizontalAlignment(\r\n value: string\r\n): value is HorizontalAlignment {\r\n return [\"left\", \"center\", \"right\", \"inside\", \"outside\"].includes(value);\r\n}\r\n\r\n/**\r\n * Check if a value is a valid VerticalAlignment\r\n */\r\nexport function isVerticalAlignment(value: string): value is VerticalAlignment {\r\n return [\"top\", \"center\", \"bottom\", \"inside\", \"outside\"].includes(value);\r\n}\r\n\r\n/**\r\n * Check if a value is a valid ParagraphAlignment\r\n */\r\nexport function isParagraphAlignment(\r\n value: string\r\n): value is ParagraphAlignment {\r\n return [\"left\", \"center\", \"right\", \"justify\", \"both\"].includes(value);\r\n}\r\n\r\n/**\r\n * Check if a value is a valid WidthType\r\n */\r\nexport function isWidthType(value: string): value is WidthType {\r\n return [\"auto\", \"dxa\", \"pct\"].includes(value);\r\n}\r\n\r\n// ============================================================================\r\n// CONSTANTS\r\n// ============================================================================\r\n\r\n/**\r\n * Default border definition\r\n */\r\nexport const DEFAULT_BORDER: BorderDefinition = {\r\n style: \"single\",\r\n size: 4, // 0.5pt (4 eighths)\r\n color: \"000000\",\r\n space: 0,\r\n};\r\n\r\n/**\r\n * No border definition\r\n */\r\nexport const NO_BORDER: BorderDefinition = {\r\n style: \"none\",\r\n size: 0,\r\n color: \"auto\",\r\n space: 0,\r\n};\r\n\r\n// ============================================================================\r\n// SHADING UTILITIES\r\n// ============================================================================\r\n\r\n/**\r\n * Builds XML attributes for a w:shd element from a ShadingConfig.\r\n * Shared across all element types for consistent shading generation.\r\n */\r\nexport function buildShadingAttributes(\r\n shading: ShadingConfig\r\n): Record<string, string> {\r\n const attrs: Record<string, string> = {};\r\n // w:val is REQUIRED per ECMA-376 — default to \"clear\" if no pattern specified\r\n attrs[\"w:val\"] = shading.pattern || \"clear\";\r\n if (shading.fill) attrs[\"w:fill\"] = shading.fill;\r\n if (shading.color) attrs[\"w:color\"] = shading.color;\r\n if (shading.themeFill) attrs[\"w:themeFill\"] = shading.themeFill;\r\n if (shading.themeColor) attrs[\"w:themeColor\"] = shading.themeColor;\r\n if (shading.themeFillTint)\r\n attrs[\"w:themeFillTint\"] = shading.themeFillTint;\r\n if (shading.themeFillShade)\r\n attrs[\"w:themeFillShade\"] = shading.themeFillShade;\r\n if (shading.themeTint) attrs[\"w:themeTint\"] = shading.themeTint;\r\n if (shading.themeShade) attrs[\"w:themeShade\"] = shading.themeShade;\r\n return attrs;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomXml.js","sourceRoot":"","sources":["../../src/elements/CustomXml.ts"],"names":[],"mappings":";;;AAcA,MAAa,cAAc;IACjB,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;SACN,CAAC;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AArBD,wCAqBC"}
1
+ {"version":3,"file":"CustomXml.js","sourceRoot":"","sources":["../../src/elements/CustomXml.ts"],"names":[],"mappings":";;;AAcA,MAAa,cAAc;IACjB,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;SACN,CAAC;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AArBD,wCAqBC","sourcesContent":["/**\r\n * CustomXml - Represents w:customXml block and inline elements\r\n *\r\n * Per ECMA-376 Part 1 §17.5.1.6, custom XML elements carry a URI and element\r\n * name, wrapping block-level or inline content.\r\n *\r\n * Stored as raw XML for round-trip fidelity.\r\n */\r\n\r\nimport { XMLElement } from '../xml/XMLBuilder';\r\n\r\n/**\r\n * Block-level custom XML (w:customXml wrapping block content)\r\n */\r\nexport class CustomXmlBlock {\r\n private rawXml: string;\r\n\r\n constructor(rawXml: string) {\r\n this.rawXml = rawXml;\r\n }\r\n\r\n toXML(): XMLElement {\r\n return {\r\n name: '__rawXml',\r\n rawXml: this.rawXml,\r\n } as XMLElement;\r\n }\r\n\r\n getRawXml(): string {\r\n return this.rawXml;\r\n }\r\n\r\n getType(): string {\r\n return 'customXmlBlock';\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Endnote.d.ts","sourceRoot":"","sources":["../../src/elements/Endnote.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAc,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK3D,oBAAY,WAAW;IAErB,MAAM,WAAW;IAEjB,SAAS,cAAc;IAEvB,qBAAqB,0BAA0B;IAE/C,kBAAkB,uBAAuB;CAC1C;AAKD,MAAM,WAAW,iBAAiB;IAEhC,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAmB;gBAMzB,UAAU,EAAE,iBAAiB;IASzC,KAAK,IAAI,MAAM;IAOf,OAAO,IAAI,WAAW;IAOtB,aAAa,IAAI,MAAM,GAAG,SAAS;IAQnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASjC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAUxC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAYzC,aAAa,IAAI,SAAS,EAAE;IAO5B,OAAO,IAAI,MAAM;IAOjB,KAAK,IAAI,UAAU;IA2CnB,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWlD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3C,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAavD,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,MAAuB,GAAG,OAAO;CAQpF"}
1
+ {"version":3,"file":"Endnote.d.ts","sourceRoot":"","sources":["../../src/elements/Endnote.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAc,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK3D,oBAAY,WAAW;IAErB,MAAM,WAAW;IAEjB,SAAS,cAAc;IAEvB,qBAAqB,0BAA0B;IAE/C,kBAAkB,uBAAuB;CAC1C;AAKD,MAAM,WAAW,iBAAiB;IAEhC,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAmB;gBAMzB,UAAU,EAAE,iBAAiB;IASzC,KAAK,IAAI,MAAM;IAOf,OAAO,IAAI,WAAW;IAOtB,aAAa,IAAI,MAAM,GAAG,SAAS;IAQnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASjC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAUxC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAYzC,aAAa,IAAI,SAAS,EAAE;IAO5B,OAAO,IAAI,MAAM;IAOjB,KAAK,IAAI,UAAU;IA2CnB,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWlD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3C,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAavD,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAiB,GAAG,OAAO;CAQ5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Endnote.js","sourceRoot":"","sources":["../../src/elements/Endnote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Endnote.js","sourceRoot":"","sources":["../../src/elements/Endnote.ts"],"names":[],"mappings":";;;AAOA,2CAAwC;AACxC,kDAA2D;AAK3D,IAAY,WASX;AATD,WAAY,WAAW;IAErB,gCAAiB,CAAA;IAEjB,sCAAuB,CAAA;IAEvB,8DAA+C,CAAA;IAE/C,wDAAyC,CAAA;AAC3C,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB;AAiBD,MAAa,OAAO;IACV,EAAE,CAAS;IACX,IAAI,CAAc;IAClB,UAAU,CAAU;IACpB,UAAU,GAAgB,EAAE,CAAC;IAMrC,YAAY,UAA6B;QACvC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKD,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAMD,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,eAAe,CAAC,IAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAKD,KAAK;QACH,MAAM,KAAK,GAAwB;YACjC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAGlC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAExC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE;gBACzC,uBAAU,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;aAC9D,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,qBAAqB,EAAE,CAAC;YAE3D,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE;gBACzC,uBAAU,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,uBAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;aAC1E,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YAEN,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9B,CAAC;YAGD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAQD,MAAM,CAAC,QAAQ,CAAC,EAAU,EAAE,IAAY;QACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAOD,MAAM,CAAC,eAAe,CAAC,EAAU;QAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,WAAW,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,eAAe,EAAE,CAAC;QAE1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAOD,MAAM,CAAC,2BAA2B,CAAC,EAAU;QAC3C,OAAO,IAAI,OAAO,CAAC;YACjB,EAAE;YACF,IAAI,EAAE,WAAW,CAAC,qBAAqB;SACxC,CAAC,CAAC;IACL,CAAC;IAQD,MAAM,CAAC,wBAAwB,CAAC,EAAU,EAAE,IAAI,GAAG,cAAc;QAC/D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,WAAW,CAAC,kBAAkB;SACrC,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAjLD,0BAiLC","sourcesContent":["/**\r\n * Endnote - Represents an endnote in a Word document\r\n *\r\n * Endnotes appear at the end of the document or section and are referenced\r\n * within the document text via endnote references.\r\n */\r\n\r\nimport { Paragraph } from './Paragraph';\r\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\r\n\r\n/**\r\n * Endnote type\r\n */\r\nexport enum EndnoteType {\r\n /** Normal endnote */\r\n Normal = 'normal',\r\n /** Separator between document text and endnotes */\r\n Separator = 'separator',\r\n /** Continuation separator for endnotes that continue to next page */\r\n ContinuationSeparator = 'continuationSeparator',\r\n /** Continuation notice at bottom of page when endnotes continue */\r\n ContinuationNotice = 'continuationNotice',\r\n}\r\n\r\n/**\r\n * Endnote properties\r\n */\r\nexport interface EndnoteProperties {\r\n /** Endnote ID (required, must be unique) */\r\n id: number;\r\n /** Type of endnote */\r\n type?: EndnoteType;\r\n /** Custom mark/symbol (optional, otherwise uses numbering) */\r\n customMark?: string;\r\n}\r\n\r\n/**\r\n * Represents an endnote in a document\r\n */\r\nexport class Endnote {\r\n private id: number;\r\n private type: EndnoteType;\r\n private customMark?: string;\r\n private paragraphs: Paragraph[] = [];\r\n\r\n /**\r\n * Creates a new endnote\r\n * @param properties Endnote properties\r\n */\r\n constructor(properties: EndnoteProperties) {\r\n this.id = properties.id;\r\n this.type = properties.type || EndnoteType.Normal;\r\n this.customMark = properties.customMark;\r\n }\r\n\r\n /**\r\n * Gets the endnote ID\r\n */\r\n getId(): number {\r\n return this.id;\r\n }\r\n\r\n /**\r\n * Gets the endnote type\r\n */\r\n getType(): EndnoteType {\r\n return this.type;\r\n }\r\n\r\n /**\r\n * Gets the custom mark\r\n */\r\n getCustomMark(): string | undefined {\r\n return this.customMark;\r\n }\r\n\r\n /**\r\n * Sets the custom mark\r\n * @param mark Custom mark/symbol\r\n */\r\n setCustomMark(mark: string): this {\r\n this.customMark = mark;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a paragraph to the endnote\r\n * @param paragraph Paragraph to add\r\n */\r\n addParagraph(paragraph: Paragraph): this {\r\n this.paragraphs.push(paragraph);\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates and adds a new paragraph\r\n * @param text Optional text content\r\n * @returns The created paragraph\r\n */\r\n createParagraph(text?: string): Paragraph {\r\n const para = new Paragraph();\r\n if (text) {\r\n para.addText(text);\r\n }\r\n this.paragraphs.push(para);\r\n return para;\r\n }\r\n\r\n /**\r\n * Gets all paragraphs in the endnote\r\n */\r\n getParagraphs(): Paragraph[] {\r\n return [...this.paragraphs];\r\n }\r\n\r\n /**\r\n * Gets the text content of the endnote\r\n */\r\n getText(): string {\r\n return this.paragraphs.map(p => p.getText()).join('\\n');\r\n }\r\n\r\n /**\r\n * Generates the XML for this endnote\r\n */\r\n toXML(): XMLElement {\r\n const attrs: Record<string, any> = {\r\n 'w:id': this.id.toString(),\r\n };\r\n\r\n if (this.type !== EndnoteType.Normal) {\r\n attrs['w:type'] = this.type;\r\n }\r\n\r\n const children: XMLElement[] = [];\r\n\r\n // Separator types require specific child elements per ECMA-376\r\n if (this.type === EndnoteType.Separator) {\r\n // <w:p><w:r><w:separator/></w:r></w:p>\r\n children.push(XMLBuilder.w('p', undefined, [\r\n XMLBuilder.w('r', undefined, [XMLBuilder.wSelf('separator')])\r\n ]));\r\n } else if (this.type === EndnoteType.ContinuationSeparator) {\r\n // <w:p><w:r><w:continuationSeparator/></w:r></w:p>\r\n children.push(XMLBuilder.w('p', undefined, [\r\n XMLBuilder.w('r', undefined, [XMLBuilder.wSelf('continuationSeparator')])\r\n ]));\r\n } else {\r\n // Add paragraphs\r\n for (const para of this.paragraphs) {\r\n children.push(para.toXML());\r\n }\r\n\r\n // If no paragraphs, add an empty one (required)\r\n if (children.length === 0) {\r\n children.push(XMLBuilder.w('p'));\r\n }\r\n }\r\n\r\n return XMLBuilder.w('endnote', attrs, children);\r\n }\r\n\r\n /**\r\n * Creates an endnote from text\r\n * @param id Endnote ID\r\n * @param text Text content\r\n * @returns New endnote instance\r\n */\r\n static fromText(id: number, text: string): Endnote {\r\n const endnote = new Endnote({ id });\r\n endnote.createParagraph(text);\r\n return endnote;\r\n }\r\n\r\n /**\r\n * Creates a separator endnote\r\n * @param id Endnote ID\r\n * @returns New separator endnote\r\n */\r\n static createSeparator(id: number): Endnote {\r\n const endnote = new Endnote({\r\n id,\r\n type: EndnoteType.Separator\r\n });\r\n // Separator typically has a horizontal line\r\n endnote.createParagraph();\r\n // Add separator formatting if needed\r\n return endnote;\r\n }\r\n\r\n /**\r\n * Creates a continuation separator endnote\r\n * @param id Endnote ID\r\n * @returns New continuation separator endnote\r\n */\r\n static createContinuationSeparator(id: number): Endnote {\r\n return new Endnote({\r\n id,\r\n type: EndnoteType.ContinuationSeparator\r\n });\r\n }\r\n\r\n /**\r\n * Creates a continuation notice endnote\r\n * @param id Endnote ID\r\n * @param text Notice text (e.g., \"Continued on next page...\")\r\n * @returns New continuation notice endnote\r\n */\r\n static createContinuationNotice(id: number, text = 'Continued...'): Endnote {\r\n const endnote = new Endnote({\r\n id,\r\n type: EndnoteType.ContinuationNotice\r\n });\r\n endnote.createParagraph(text);\r\n return endnote;\r\n }\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"EndnoteManager.d.ts","sourceRoot":"","sources":["../../src/elements/EndnoteManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAe,MAAM,WAAW,CAAC;AAOjD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CAAa;IAM3B,OAAO;IASP,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAUxB,MAAM,CAAC,MAAM,IAAI,cAAc;IAS/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAuBnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAQ3C,cAAc,IAAI,OAAO,EAAE;IAS3B,yBAAyB,IAAI,OAAO,EAAE;IAStC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS/B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAWlC,SAAS,IAAI,MAAM;IAOnB,QAAQ,IAAI,MAAM;IAOlB,OAAO,IAAI,OAAO;IAQlB,KAAK,IAAI,IAAI;IAqBb,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAUD,mBAAmB,IAAI,MAAM;IA4B7B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAkBtC"}
1
+ {"version":3,"file":"EndnoteManager.d.ts","sourceRoot":"","sources":["../../src/elements/EndnoteManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAe,MAAM,WAAW,CAAC;AAOjD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,MAAM,CAAK;IAMnB,OAAO;IASP,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAUxB,MAAM,CAAC,MAAM,IAAI,cAAc;IAS/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAuBnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAQ3C,cAAc,IAAI,OAAO,EAAE;IAS3B,yBAAyB,IAAI,OAAO,EAAE;IAStC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS/B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAWlC,SAAS,IAAI,MAAM;IAOnB,QAAQ,IAAI,MAAM;IAOlB,OAAO,IAAI,OAAO;IAQlB,KAAK,IAAI,IAAI;IAqBb,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAUD,mBAAmB,IAAI,MAAM;IA4B7B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAkBtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EndnoteManager.js","sourceRoot":"","sources":["../../src/elements/EndnoteManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EndnoteManager.js","sourceRoot":"","sources":["../../src/elements/EndnoteManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * EndnoteManager - Manages endnotes in a document\r\n *\r\n * Handles creation, registration, and XML generation for endnotes.\r\n * Maintains unique IDs and proper ordering.\r\n */\r\n\r\nimport { Endnote, EndnoteType } from './Endnote';\r\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\r\nimport { XMLParser } from '../xml/XMLParser';\r\n\r\n/**\r\n * Manages endnotes in a document\r\n */\r\nexport class EndnoteManager {\r\n private endnotes = new Map<number, Endnote>();\r\n private nextId = 1;\r\n\r\n /**\r\n * Creates a new EndnoteManager\r\n * @private Use static factory method\r\n */\r\n private constructor() {\r\n // Add special endnotes (separators) with negative IDs\r\n this.addSpecialEndnotes();\r\n }\r\n\r\n /**\r\n * Adds special endnotes (separator, continuation)\r\n * These use negative IDs as per OOXML specification\r\n */\r\n private addSpecialEndnotes(): void {\r\n // Separator endnote (ID -1)\r\n const separator = Endnote.createSeparator(-1);\r\n this.endnotes.set(-1, separator);\r\n\r\n // Continuation separator (ID 0)\r\n const continuationSep = Endnote.createContinuationSeparator(0);\r\n this.endnotes.set(0, continuationSep);\r\n }\r\n\r\n /**\r\n * Checks if an endnote is a special/system type (separator, continuationSeparator,\r\n * continuationNotice) that should be preserved across clear() operations.\r\n * Uses type-based detection rather than ID-based, because continuationNotice\r\n * has a positive ID (typically 1) but is still a system endnote.\r\n */\r\n private isSpecialEndnote(endnote: Endnote): boolean {\r\n const type = endnote.getType();\r\n return type === EndnoteType.Separator ||\r\n type === EndnoteType.ContinuationSeparator ||\r\n type === EndnoteType.ContinuationNotice;\r\n }\r\n\r\n /**\r\n * Creates a new EndnoteManager instance\r\n */\r\n static create(): EndnoteManager {\r\n return new EndnoteManager();\r\n }\r\n\r\n /**\r\n * Registers an endnote\r\n * @param endnote Endnote to register\r\n * @returns The registered endnote\r\n */\r\n register(endnote: Endnote): Endnote {\r\n const id = endnote.getId();\r\n\r\n // Ensure ID is not already used (except for special endnotes)\r\n if (id > 0 && this.endnotes.has(id)) {\r\n throw new Error(`Endnote with ID ${id} already exists`);\r\n }\r\n\r\n this.endnotes.set(id, endnote);\r\n\r\n // Update next ID if needed\r\n if (id >= this.nextId) {\r\n this.nextId = id + 1;\r\n }\r\n\r\n return endnote;\r\n }\r\n\r\n /**\r\n * Creates and registers a new endnote\r\n * @param text Endnote text\r\n * @returns The created endnote\r\n */\r\n createEndnote(text: string): Endnote {\r\n const endnote = Endnote.fromText(this.nextId++, text);\r\n this.endnotes.set(endnote.getId(), endnote);\r\n return endnote;\r\n }\r\n\r\n /**\r\n * Gets an endnote by ID\r\n * @param id Endnote ID\r\n * @returns The endnote, or undefined if not found\r\n */\r\n getEndnote(id: number): Endnote | undefined {\r\n return this.endnotes.get(id);\r\n }\r\n\r\n /**\r\n * Gets all user endnotes (excluding special system types: separator,\r\n * continuationSeparator, continuationNotice)\r\n */\r\n getAllEndnotes(): Endnote[] {\r\n return Array.from(this.endnotes.values())\r\n .filter(e => !this.isSpecialEndnote(e))\r\n .sort((a, b) => a.getId() - b.getId());\r\n }\r\n\r\n /**\r\n * Gets all endnotes including special ones\r\n */\r\n getAllEndnotesWithSpecial(): Endnote[] {\r\n return Array.from(this.endnotes.values())\r\n .sort((a, b) => a.getId() - b.getId());\r\n }\r\n\r\n /**\r\n * Checks if an endnote exists\r\n * @param id Endnote ID\r\n */\r\n hasEndnote(id: number): boolean {\r\n return this.endnotes.has(id);\r\n }\r\n\r\n /**\r\n * Removes an endnote\r\n * @param id Endnote ID\r\n * @returns True if removed, false if not found or if it's a special type\r\n */\r\n removeEndnote(id: number): boolean {\r\n const endnote = this.endnotes.get(id);\r\n if (!endnote || this.isSpecialEndnote(endnote)) {\r\n return false;\r\n }\r\n return this.endnotes.delete(id);\r\n }\r\n\r\n /**\r\n * Gets the next available ID\r\n */\r\n getNextId(): number {\r\n return this.nextId;\r\n }\r\n\r\n /**\r\n * Gets the count of endnotes (excluding special ones)\r\n */\r\n getCount(): number {\r\n return this.getAllEndnotes().length;\r\n }\r\n\r\n /**\r\n * Checks if there are any endnotes (excluding special ones)\r\n */\r\n isEmpty(): boolean {\r\n return this.getCount() === 0;\r\n }\r\n\r\n /**\r\n * Clears all user endnotes (preserves special system types: separator,\r\n * continuationSeparator, continuationNotice)\r\n */\r\n clear(): void {\r\n const specialEndnotes = new Map<number, Endnote>();\r\n let maxSpecialId = 0;\r\n\r\n for (const [id, endnote] of this.endnotes) {\r\n if (this.isSpecialEndnote(endnote)) {\r\n specialEndnotes.set(id, endnote);\r\n if (id > maxSpecialId) {\r\n maxSpecialId = id;\r\n }\r\n }\r\n }\r\n\r\n this.endnotes = specialEndnotes;\r\n // Ensure nextId doesn't collide with special endnotes that have positive IDs\r\n this.nextId = Math.max(maxSpecialId + 1, 1);\r\n }\r\n\r\n /**\r\n * Gets statistics about endnotes\r\n */\r\n getStats(): {\r\n total: number;\r\n nextId: number;\r\n } {\r\n return {\r\n total: this.getCount(),\r\n nextId: this.nextId,\r\n };\r\n }\r\n\r\n /**\r\n * Generates the endnotes.xml content\r\n */\r\n generateEndnotesXml(): string {\r\n const endnotes = this.getAllEndnotesWithSpecial();\r\n\r\n // Build endnotes element\r\n const endnotesElement: XMLElement = {\r\n name: 'w:endnotes',\r\n attributes: {\r\n 'xmlns:w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',\r\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'\r\n },\r\n children: endnotes.map(e => e.toXML())\r\n };\r\n\r\n // Build XML using XMLBuilder\r\n const builder = new XMLBuilder();\r\n builder.element(\r\n endnotesElement.name,\r\n endnotesElement.attributes,\r\n endnotesElement.children\r\n );\r\n return builder.build(true);\r\n }\r\n\r\n /**\r\n * Validates endnotes XML\r\n * @param xml XML string to validate\r\n * @returns True if valid\r\n */\r\n static validate(xml: string): boolean {\r\n // Use XMLParser to extract root element\r\n if (!xml) {\r\n return false;\r\n }\r\n\r\n const endnotesContent = XMLParser.extractBetweenTags(xml, '<w:endnotes', '</w:endnotes>');\r\n if (!endnotesContent) {\r\n return false;\r\n }\r\n\r\n // Check for proper structure - namespace declaration\r\n if (!xml.includes('xmlns:w=')) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/elements/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/elements/Field.ts"],"names":[],"mappings":"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"}
@@ -59,11 +59,11 @@ class Field {
59
59
  return this;
60
60
  }
61
61
  toXML() {
62
- const children = [];
62
+ const runChildren = [];
63
63
  if (this.formatting) {
64
- children.push(this.createRunProperties());
64
+ runChildren.push(this.createRunProperties());
65
65
  }
66
- children.push({
66
+ runChildren.push({
67
67
  name: 'w:t',
68
68
  children: [this.getPlaceholderText()],
69
69
  });
@@ -72,7 +72,10 @@ class Field {
72
72
  attributes: {
73
73
  'w:instr': this.instruction,
74
74
  },
75
- children,
75
+ children: [{
76
+ name: 'w:r',
77
+ children: runChildren,
78
+ }],
76
79
  };
77
80
  }
78
81
  getPlaceholderText() {
@@ -124,33 +127,31 @@ class Field {
124
127
  if (!this.formatting) {
125
128
  return { name: 'w:rPr', children };
126
129
  }
130
+ if (this.formatting.font) {
131
+ children.push({
132
+ name: 'w:rFonts',
133
+ attributes: {
134
+ 'w:ascii': this.formatting.font,
135
+ 'w:hAnsi': this.formatting.font,
136
+ 'w:cs': this.formatting.font,
137
+ },
138
+ selfClosing: true,
139
+ });
140
+ }
127
141
  if (this.formatting.bold) {
128
142
  children.push({ name: 'w:b', selfClosing: true });
129
143
  }
130
144
  if (this.formatting.italic) {
131
145
  children.push({ name: 'w:i', selfClosing: true });
132
146
  }
133
- if (this.formatting.underline) {
134
- const val = typeof this.formatting.underline === 'string'
135
- ? this.formatting.underline
136
- : 'single';
137
- children.push({
138
- name: 'w:u',
139
- attributes: { 'w:val': val },
140
- selfClosing: true,
141
- });
142
- }
143
147
  if (this.formatting.strike) {
144
148
  children.push({ name: 'w:strike', selfClosing: true });
145
149
  }
146
- if (this.formatting.font) {
150
+ if (this.formatting.color) {
151
+ const color = this.formatting.color.replace('#', '');
147
152
  children.push({
148
- name: 'w:rFonts',
149
- attributes: {
150
- 'w:ascii': this.formatting.font,
151
- 'w:hAnsi': this.formatting.font,
152
- 'w:cs': this.formatting.font,
153
- },
153
+ name: 'w:color',
154
+ attributes: { 'w:val': color },
154
155
  selfClosing: true,
155
156
  });
156
157
  }
@@ -167,18 +168,20 @@ class Field {
167
168
  selfClosing: true,
168
169
  });
169
170
  }
170
- if (this.formatting.color) {
171
- const color = this.formatting.color.replace('#', '');
171
+ if (this.formatting.highlight) {
172
172
  children.push({
173
- name: 'w:color',
174
- attributes: { 'w:val': color },
173
+ name: 'w:highlight',
174
+ attributes: { 'w:val': this.formatting.highlight },
175
175
  selfClosing: true,
176
176
  });
177
177
  }
178
- if (this.formatting.highlight) {
178
+ if (this.formatting.underline) {
179
+ const val = typeof this.formatting.underline === 'string'
180
+ ? this.formatting.underline
181
+ : 'single';
179
182
  children.push({
180
- name: 'w:highlight',
181
- attributes: { 'w:val': this.formatting.highlight },
183
+ name: 'w:u',
184
+ attributes: { 'w:val': val },
182
185
  selfClosing: true,
183
186
  });
184
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/elements/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/elements/Field.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Field - Represents a dynamic field in a Word document\r\n *\r\n * Fields are used for dynamic content like page numbers, dates, document properties, etc.\r\n * They are represented using the <w:fldSimple> element with field codes.\r\n */\r\n\r\nimport { XMLElement } from '../xml/XMLBuilder';\r\nimport { RunFormatting, FormFieldData } from './Run';\r\nimport { ParsedHyperlinkInstruction, parseHyperlinkInstruction, isHyperlinkInstruction } from './FieldHelpers';\r\nimport type { Revision } from './Revision';\r\nimport { pointsToHalfPoints } from '../utils/units';\r\n\r\n/**\r\n * Common field types\r\n */\r\nexport type FieldType =\r\n | 'PAGE' // Current page number\r\n | 'NUMPAGES' // Total number of pages\r\n | 'DATE' // Current date\r\n | 'TIME' // Current time\r\n | 'AUTHOR' // Document author\r\n | 'TITLE' // Document title\r\n | 'FILENAME' // Document filename\r\n | 'FILENAMEWITHPATH' // Document filename with path\r\n | 'SUBJECT' // Document subject\r\n | 'KEYWORDS' // Document keywords\r\n | 'CREATEDATE' // Document creation date\r\n | 'SAVEDATE' // Last save date\r\n | 'PRINTDATE' // Last print date\r\n | 'SECTIONPAGES' // Pages in current section\r\n | 'SECTION' // Current section number\r\n | 'REF' // Cross-reference to bookmark\r\n | 'HYPERLINK' // Hyperlink field\r\n | 'SEQ' // Sequence numbering\r\n | 'TC' // Table of contents entry\r\n | 'XE' // Index entry\r\n | 'IF' // Conditional field\r\n | 'MERGEFIELD' // Mail merge field\r\n | 'INCLUDE' // Include text from external file\r\n | 'INCLUDETEXT' // Include text from external file (alias)\r\n | 'CUSTOM'; // Custom field type for unknown/specialized fields\r\n\r\n/**\r\n * Field properties\r\n */\r\nexport interface FieldProperties {\r\n /** Field type */\r\n type: FieldType;\r\n /** Field instruction (e.g., 'PAGE \\* MERGEFORMAT') */\r\n instruction?: string;\r\n /** Format switches (e.g., '\\\\* MERGEFORMAT') */\r\n format?: string;\r\n /** Date/time format (e.g., 'MMMM d, yyyy') */\r\n dateFormat?: string;\r\n /** Preserve formatting during updates */\r\n preserveFormatting?: boolean;\r\n /** Run formatting for field result */\r\n formatting?: RunFormatting;\r\n}\r\n\r\n/**\r\n * Represents a dynamic field\r\n */\r\nexport class Field {\r\n private type: FieldType;\r\n private instruction: string;\r\n private formatting?: RunFormatting;\r\n\r\n /**\r\n * Creates a new field\r\n * @param properties Field properties\r\n */\r\n constructor(properties: FieldProperties) {\r\n this.type = properties.type;\r\n this.formatting = properties.formatting;\r\n\r\n // Build field instruction\r\n if (properties.instruction) {\r\n this.instruction = properties.instruction;\r\n } else {\r\n this.instruction = this.buildInstruction(properties);\r\n }\r\n }\r\n\r\n /**\r\n * Builds field instruction from properties\r\n */\r\n private buildInstruction(properties: FieldProperties): string {\r\n let instruction = properties.type;\r\n\r\n // Add date format for date/time fields\r\n if (properties.dateFormat && this.isDateField(properties.type)) {\r\n instruction += ` \\\\@ \"${properties.dateFormat}\"`;\r\n }\r\n\r\n // Add format switch\r\n if (properties.format) {\r\n instruction += ` ${properties.format}`;\r\n } else if (properties.preserveFormatting !== false) {\r\n // Add MERGEFORMAT by default to preserve formatting\r\n instruction += ' \\\\* MERGEFORMAT';\r\n }\r\n\r\n return instruction;\r\n }\r\n\r\n /**\r\n * Checks if field type is a date field\r\n */\r\n private isDateField(type: FieldType): boolean {\r\n return ['DATE', 'TIME', 'CREATEDATE', 'SAVEDATE', 'PRINTDATE'].includes(type);\r\n }\r\n\r\n /**\r\n * Gets the field type\r\n */\r\n getType(): FieldType {\r\n return this.type;\r\n }\r\n\r\n /**\r\n * Gets the field instruction\r\n */\r\n getInstruction(): string {\r\n return this.instruction;\r\n }\r\n\r\n /**\r\n * Sets run formatting for the field\r\n */\r\n setFormatting(formatting: RunFormatting): this {\r\n this.formatting = formatting;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets run formatting\r\n */\r\n getFormatting(): RunFormatting | undefined {\r\n return this.formatting;\r\n }\r\n\r\n /**\r\n * Checks if this field is a HYPERLINK field\r\n * @returns True if the field type is HYPERLINK or instruction starts with HYPERLINK\r\n */\r\n isHyperlinkField(): boolean {\r\n return this.type === 'HYPERLINK' ||\r\n this.instruction.trim().toUpperCase().startsWith('HYPERLINK');\r\n }\r\n\r\n /**\r\n * Sets text color for the field\r\n * @param color Color in hex format (e.g., '0000FF')\r\n * @returns This field for chaining\r\n */\r\n setColor(color: string): this {\r\n if (!this.formatting) {\r\n this.formatting = {};\r\n }\r\n this.formatting.color = color.replace('#', '');\r\n return this;\r\n }\r\n\r\n /**\r\n * Generates XML for the field.\r\n * Per ECMA-376, w:fldSimple is a paragraph-level element that CONTAINS w:r children.\r\n * Structure: <w:fldSimple w:instr=\"...\"><w:r><w:rPr/><w:t>...</w:t></w:r></w:fldSimple>\r\n * The fldSimple element should be added directly to paragraph children (not wrapped in w:r).\r\n */\r\n toXML(): XMLElement {\r\n // Build the inner run with optional formatting\r\n const runChildren: XMLElement[] = [];\r\n if (this.formatting) {\r\n runChildren.push(this.createRunProperties());\r\n }\r\n runChildren.push({\r\n name: 'w:t',\r\n children: [this.getPlaceholderText()],\r\n });\r\n\r\n return {\r\n name: 'w:fldSimple',\r\n attributes: {\r\n 'w:instr': this.instruction,\r\n },\r\n children: [{\r\n name: 'w:r',\r\n children: runChildren,\r\n }],\r\n };\r\n }\r\n\r\n /**\r\n * Gets placeholder text for the field\r\n */\r\n private getPlaceholderText(): string {\r\n switch (this.type) {\r\n case 'PAGE':\r\n return '1';\r\n case 'NUMPAGES':\r\n return '1';\r\n case 'SECTIONPAGES':\r\n return '1';\r\n case 'SECTION':\r\n return '1';\r\n case 'DATE':\r\n return new Date().toLocaleDateString();\r\n case 'TIME':\r\n return new Date().toLocaleTimeString();\r\n case 'CREATEDATE':\r\n case 'SAVEDATE':\r\n case 'PRINTDATE':\r\n return new Date().toLocaleDateString();\r\n case 'FILENAME':\r\n return 'Document';\r\n case 'FILENAMEWITHPATH':\r\n return 'C:\\\\Document.docx';\r\n case 'AUTHOR':\r\n return 'Author';\r\n case 'TITLE':\r\n return 'Title';\r\n case 'SUBJECT':\r\n return 'Subject';\r\n case 'KEYWORDS':\r\n return 'Keywords';\r\n case 'REF':\r\n return '1'; // Reference typically shows page number or heading text\r\n case 'HYPERLINK':\r\n return 'Link'; // Hyperlink displays the link text\r\n case 'SEQ':\r\n return '1'; // Sequence shows the current number\r\n case 'TC':\r\n return ''; // TC fields are hidden\r\n case 'XE':\r\n return ''; // XE fields are hidden\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n /**\r\n * Creates run properties XML\r\n */\r\n private createRunProperties(): XMLElement {\r\n const children: XMLElement[] = [];\r\n\r\n if (!this.formatting) {\r\n return { name: 'w:rPr', children };\r\n }\r\n\r\n // Per ECMA-376 CT_RPr ordering:\r\n // rFonts → b → i → strike → color → sz/szCs → highlight → u\r\n\r\n if (this.formatting.font) {\r\n children.push({\r\n name: 'w:rFonts',\r\n attributes: {\r\n 'w:ascii': this.formatting.font,\r\n 'w:hAnsi': this.formatting.font,\r\n 'w:cs': this.formatting.font,\r\n },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (this.formatting.bold) {\r\n children.push({ name: 'w:b', selfClosing: true });\r\n }\r\n\r\n if (this.formatting.italic) {\r\n children.push({ name: 'w:i', selfClosing: true });\r\n }\r\n\r\n if (this.formatting.strike) {\r\n children.push({ name: 'w:strike', selfClosing: true });\r\n }\r\n\r\n if (this.formatting.color) {\r\n const color = this.formatting.color.replace('#', '');\r\n children.push({\r\n name: 'w:color',\r\n attributes: { 'w:val': color },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (this.formatting.size) {\r\n const sizeValue = pointsToHalfPoints(this.formatting.size).toString();\r\n children.push({\r\n name: 'w:sz',\r\n attributes: { 'w:val': sizeValue },\r\n selfClosing: true,\r\n });\r\n children.push({\r\n name: 'w:szCs',\r\n attributes: { 'w:val': sizeValue },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (this.formatting.highlight) {\r\n children.push({\r\n name: 'w:highlight',\r\n attributes: { 'w:val': this.formatting.highlight },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (this.formatting.underline) {\r\n const val = typeof this.formatting.underline === 'string'\r\n ? this.formatting.underline\r\n : 'single';\r\n children.push({\r\n name: 'w:u',\r\n attributes: { 'w:val': val },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n return { name: 'w:rPr', children };\r\n }\r\n\r\n /**\r\n * Creates a page number field\r\n * @param formatting Optional run formatting\r\n */\r\n static createPageNumber(formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'PAGE',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a total pages field\r\n * @param formatting Optional run formatting\r\n */\r\n static createTotalPages(formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'NUMPAGES',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a date field\r\n * @param format Date format (e.g., 'MMMM d, yyyy')\r\n * @param formatting Optional run formatting\r\n */\r\n static createDate(format?: string, formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'DATE',\r\n dateFormat: format,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a time field\r\n * @param format Time format\r\n * @param formatting Optional run formatting\r\n */\r\n static createTime(format?: string, formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'TIME',\r\n dateFormat: format,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a filename field\r\n * @param includePath Whether to include full path\r\n * @param formatting Optional run formatting\r\n */\r\n static createFilename(includePath = false, formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: includePath ? 'FILENAMEWITHPATH' : 'FILENAME',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates an author field\r\n * @param formatting Optional run formatting\r\n */\r\n static createAuthor(formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'AUTHOR',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a title field\r\n * @param formatting Optional run formatting\r\n */\r\n static createTitle(formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'TITLE',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a section pages field (pages in current section)\r\n * @param formatting Optional run formatting\r\n */\r\n static createSectionPages(formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'SECTIONPAGES',\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a cross-reference field\r\n * @param bookmark Bookmark name to reference\r\n * @param format Reference format (\\h for hyperlink, \\p for page number, etc.)\r\n * @param formatting Optional run formatting\r\n */\r\n static createRef(bookmark: string, format?: string, formatting?: RunFormatting): Field {\r\n const formatSwitch = format || '\\\\h'; // Default to hyperlink format\r\n const instruction = `REF ${bookmark} ${formatSwitch} \\\\* MERGEFORMAT`;\r\n\r\n return new Field({\r\n type: 'REF',\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a hyperlink field\r\n * @param url The URL to link to\r\n * @param displayText The text to display\r\n * @param tooltip Optional tooltip text\r\n * @param formatting Optional run formatting\r\n */\r\n static createHyperlink(\r\n url: string,\r\n displayText: string = url,\r\n tooltip?: string,\r\n formatting?: RunFormatting\r\n ): Field {\r\n let instruction = `HYPERLINK \"${url}\"`;\r\n\r\n if (tooltip) {\r\n instruction += ` \\\\o \"${tooltip}\"`;\r\n }\r\n\r\n instruction += ' \\\\* MERGEFORMAT';\r\n\r\n return new Field({\r\n type: 'HYPERLINK',\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a sequence numbering field\r\n * @param identifier Sequence identifier (e.g., 'Figure', 'Table')\r\n * @param format Number format (\\* ARABIC, \\* ROMAN, etc.)\r\n * @param formatting Optional run formatting\r\n */\r\n static createSeq(\r\n identifier: string,\r\n format?: string,\r\n formatting?: RunFormatting\r\n ): Field {\r\n let instruction = `SEQ ${identifier}`;\r\n\r\n if (format) {\r\n instruction += ` ${format}`;\r\n } else {\r\n instruction += ' \\\\* ARABIC'; // Default to Arabic numerals\r\n }\r\n\r\n instruction += ' \\\\* MERGEFORMAT';\r\n\r\n return new Field({\r\n type: 'SEQ',\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a table of contents entry field (TC)\r\n * @param text Entry text\r\n * @param level TOC level (1-9)\r\n * @param formatting Optional run formatting\r\n */\r\n static createTCEntry(\r\n text: string,\r\n level = 1,\r\n formatting?: RunFormatting\r\n ): Field {\r\n if (level < 1 || level > 9) {\r\n throw new Error('TC level must be between 1 and 9');\r\n }\r\n\r\n const instruction = `TC \"${text}\" \\\\f C \\\\l ${level}`;\r\n\r\n return new Field({\r\n type: 'TC',\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates an index entry field (XE)\r\n * @param text Entry text\r\n * @param subEntry Optional sub-entry text\r\n * @param formatting Optional run formatting\r\n */\r\n static createXEEntry(\r\n text: string,\r\n subEntry?: string,\r\n formatting?: RunFormatting\r\n ): Field {\r\n let instruction = `XE \"${text}\"`;\r\n\r\n if (subEntry) {\r\n instruction += `:${subEntry}`;\r\n }\r\n\r\n return new Field({\r\n type: 'XE',\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a custom field with instruction\r\n * @param instruction Field instruction code\r\n * @param formatting Optional run formatting\r\n */\r\n static createCustom(instruction: string, formatting?: RunFormatting): Field {\r\n return new Field({\r\n type: 'PAGE', // Placeholder type\r\n instruction,\r\n formatting,\r\n });\r\n }\r\n\r\n /**\r\n * Creates a field from properties\r\n * @param properties Field properties\r\n */\r\n static create(properties: FieldProperties): Field {\r\n return new Field(properties);\r\n }\r\n}\r\n\r\n/**\r\n * Field character type for complex fields\r\n */\r\nexport type FieldCharType = 'begin' | 'separate' | 'end';\r\n\r\n/**\r\n * Complex field properties\r\n * Complex fields use begin/separate/end structure instead of fldSimple\r\n */\r\nexport interface ComplexFieldProperties {\r\n /** Field instruction (e.g., \" TOC \\\\o \\\"1-3\\\" \\\\h \\\\z \\\\u \") */\r\n instruction: string;\r\n\r\n /** Current field result text (optional) */\r\n result?: string;\r\n\r\n /** Run formatting for instruction */\r\n instructionFormatting?: RunFormatting;\r\n\r\n /** Run formatting for result */\r\n resultFormatting?: RunFormatting;\r\n\r\n /** Nested fields to include within this field */\r\n nestedFields?: ComplexField[];\r\n\r\n /** Custom XML content for result section */\r\n resultContent?: XMLElement[];\r\n\r\n /** Whether field spans multiple paragraphs */\r\n multiParagraph?: boolean;\r\n\r\n /** Parsed HYPERLINK instruction components (auto-populated if instruction is HYPERLINK) */\r\n parsedHyperlink?: ParsedHyperlinkInstruction;\r\n\r\n /**\r\n * Whether the field has a result section (w:fldSep was present during parsing)\r\n * Per ECMA-376, fields without results skip the separator element.\r\n * This flag distinguishes between:\r\n * - hasResult=true, result=\"\" → Field had separator but result was empty\r\n * - hasResult=false, result=\"\" → Field never had a result section (empty field)\r\n */\r\n hasResult?: boolean;\r\n\r\n /** Form field data (w:ffData) from begin field char per ECMA-376 §17.16.17 */\r\n formFieldData?: FormFieldData;\r\n}\r\n\r\n/**\r\n * Represents a complex field (begin/separate/end structure)\r\n * Used for TOC, cross-references, and other advanced fields\r\n *\r\n * Structure:\r\n * <w:r><w:fldChar w:fldCharType=\"begin\"/></w:r>\r\n * <w:r><w:instrText>INSTRUCTION</w:instrText></w:r>\r\n * <w:r><w:fldChar w:fldCharType=\"separate\"/></w:r>\r\n * <w:r><w:t>RESULT</w:t></w:r>\r\n * <w:r><w:fldChar w:fldCharType=\"end\"/></w:r>\r\n */\r\nexport class ComplexField {\r\n private instruction: string;\r\n private result?: string;\r\n private instructionFormatting?: RunFormatting;\r\n private resultFormatting?: RunFormatting;\r\n private nestedFields: ComplexField[];\r\n private resultContent: XMLElement[];\r\n private multiParagraph: boolean;\r\n private parsedHyperlink?: ParsedHyperlinkInstruction;\r\n /** Revisions that wrap the result section (for tracked changes in field content) */\r\n private resultRevisions: Revision[] = [];\r\n /**\r\n * Whether the field has a result section (w:fldSep was present during parsing)\r\n * Per ECMA-376, fields without results skip the separator element.\r\n */\r\n private _hasResultSection = false;\r\n private _formFieldData?: FormFieldData;\r\n\r\n /**\r\n * Creates a new complex field\r\n * @param properties Complex field properties\r\n */\r\n constructor(properties: ComplexFieldProperties) {\r\n this.instruction = properties.instruction;\r\n this.result = properties.result;\r\n this.instructionFormatting = properties.instructionFormatting;\r\n this.resultFormatting = properties.resultFormatting;\r\n this.nestedFields = properties.nestedFields || [];\r\n this.resultContent = properties.resultContent || [];\r\n this.multiParagraph = properties.multiParagraph || false;\r\n this._hasResultSection = properties.hasResult ?? false;\r\n this._formFieldData = properties.formFieldData;\r\n\r\n // Auto-parse HYPERLINK instruction if provided or detected\r\n if (properties.parsedHyperlink) {\r\n this.parsedHyperlink = properties.parsedHyperlink;\r\n } else if (isHyperlinkInstruction(this.instruction)) {\r\n this.parsedHyperlink = parseHyperlinkInstruction(this.instruction) || undefined;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the field instruction\r\n */\r\n getInstruction(): string {\r\n return this.instruction;\r\n }\r\n\r\n /**\r\n * Sets the field instruction\r\n */\r\n setInstruction(instruction: string): this {\r\n this.instruction = instruction;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets form field data (w:ffData) if present\r\n */\r\n getFormFieldData(): FormFieldData | undefined {\r\n return this._formFieldData;\r\n }\r\n\r\n /**\r\n * Gets the field result text\r\n */\r\n getResult(): string | undefined {\r\n return this.result;\r\n }\r\n\r\n /**\r\n * Sets the field result text\r\n */\r\n setResult(result: string): this {\r\n this.result = result;\r\n return this;\r\n }\r\n\r\n /**\r\n * Checks if the field has a result section\r\n *\r\n * Per ECMA-376, complex fields may or may not have a result section.\r\n * Fields without results (like TOC markers or empty PAGE fields) skip\r\n * the w:fldSep (separator) element entirely.\r\n *\r\n * This method distinguishes between:\r\n * - `hasResultSection() === true && getResult() === \"\"` → Field had separator but result was empty\r\n * - `hasResultSection() === false && getResult() === undefined` → Field never had a result section\r\n *\r\n * @returns True if the field has a result section (w:fldSep was present)\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = paragraph.getFields()[0];\r\n * if (field instanceof ComplexField) {\r\n * if (field.hasResultSection()) {\r\n * console.log('Field result:', field.getResult());\r\n * } else {\r\n * console.log('Field has no result section (empty field)');\r\n * }\r\n * }\r\n * ```\r\n */\r\n hasResultSection(): boolean {\r\n return this._hasResultSection;\r\n }\r\n\r\n /**\r\n * Sets instruction formatting\r\n */\r\n setInstructionFormatting(formatting: RunFormatting): this {\r\n this.instructionFormatting = formatting;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets result formatting\r\n */\r\n setResultFormatting(formatting: RunFormatting): this {\r\n this.resultFormatting = formatting;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the parsed HYPERLINK instruction components\r\n * Returns undefined if this is not a HYPERLINK field\r\n */\r\n getParsedHyperlink(): ParsedHyperlinkInstruction | undefined {\r\n return this.parsedHyperlink;\r\n }\r\n\r\n /**\r\n * Checks if this field is a HYPERLINK field\r\n */\r\n isHyperlinkField(): boolean {\r\n return this.parsedHyperlink !== undefined;\r\n }\r\n\r\n /**\r\n * Gets the full URL for HYPERLINK fields (combining base URL and anchor)\r\n * Returns undefined if not a HYPERLINK field\r\n */\r\n getHyperlinkUrl(): string | undefined {\r\n return this.parsedHyperlink?.fullUrl;\r\n }\r\n\r\n /**\r\n * Adds a nested field within this field\r\n * Nested fields appear between instruction and separator\r\n */\r\n addNestedField(field: ComplexField): this {\r\n this.nestedFields.push(field);\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets all nested fields\r\n */\r\n getNestedFields(): ComplexField[] {\r\n return [...this.nestedFields];\r\n }\r\n\r\n /**\r\n * Removes a nested field at the specified index\r\n * @param index - Index of the nested field to remove (0-based)\r\n * @returns True if removed, false if index out of bounds\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = new ComplexField({ instruction: 'TOC' });\r\n * field.addNestedField(nested1);\r\n * field.addNestedField(nested2);\r\n * field.removeNestedField(0); // Removes nested1\r\n * ```\r\n */\r\n removeNestedField(index: number): boolean {\r\n if (index < 0 || index >= this.nestedFields.length) {\r\n return false;\r\n }\r\n this.nestedFields.splice(index, 1);\r\n return true;\r\n }\r\n\r\n /**\r\n * Gets the count of nested fields\r\n * @returns Number of nested fields\r\n */\r\n getNestedFieldCount(): number {\r\n return this.nestedFields.length;\r\n }\r\n\r\n /**\r\n * Clears all nested fields\r\n * @returns This field for chaining\r\n */\r\n clearNestedFields(): this {\r\n this.nestedFields = [];\r\n return this;\r\n }\r\n\r\n /**\r\n * Updates the field instruction\r\n * @param instruction - New field instruction (e.g., 'TOC \\\\o \"1-3\"')\r\n * @returns This field for chaining\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = new ComplexField({ instruction: 'DATE' });\r\n * field.updateInstruction('DATE \\\\@ \"yyyy-MM-dd\"');\r\n * ```\r\n */\r\n updateInstruction(instruction: string): this {\r\n this.instruction = instruction;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds custom XML content to the result section\r\n */\r\n addResultContent(content: XMLElement): this {\r\n this.resultContent.push(content);\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets result content XML elements\r\n */\r\n getResultContent(): XMLElement[] {\r\n return [...this.resultContent];\r\n }\r\n\r\n /**\r\n * Sets whether this field spans multiple paragraphs\r\n */\r\n setMultiParagraph(multiParagraph: boolean): this {\r\n this.multiParagraph = multiParagraph;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets whether this field spans multiple paragraphs\r\n */\r\n isMultiParagraph(): boolean {\r\n return this.multiParagraph;\r\n }\r\n\r\n /**\r\n * Sets revisions that wrap the result section\r\n * These are tracked changes (w:ins, w:del) that need to wrap the result AND end marker\r\n * @param revisions Array of Revision objects\r\n */\r\n setResultRevisions(revisions: Revision[]): this {\r\n this.resultRevisions = revisions;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a revision to the result section\r\n * @param revision Revision to add\r\n */\r\n addResultRevision(revision: Revision): this {\r\n this.resultRevisions.push(revision);\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets revisions that wrap the result section\r\n */\r\n getResultRevisions(): Revision[] {\r\n return [...this.resultRevisions];\r\n }\r\n\r\n /**\r\n * Checks if this field has revisions in the result section\r\n */\r\n hasResultRevisions(): boolean {\r\n return this.resultRevisions.length > 0;\r\n }\r\n\r\n /**\r\n * Generates XML for the complex field\r\n * Returns array of run elements (begin, instr, sep, result, end)\r\n */\r\n toXML(): XMLElement[] {\r\n const runs: XMLElement[] = [];\r\n\r\n // 1. Begin marker run\r\n const beginFldChar: XMLElement = this._formFieldData\r\n ? this.buildFldCharWithFfData()\r\n : {\r\n name: 'w:fldChar',\r\n attributes: { 'w:fldCharType': 'begin' },\r\n selfClosing: true,\r\n };\r\n runs.push({\r\n name: 'w:r',\r\n children: [beginFldChar],\r\n });\r\n\r\n // 2. Instruction run\r\n const instrChildren: XMLElement[] = [];\r\n if (this.instructionFormatting) {\r\n instrChildren.push(this.createRunProperties(this.instructionFormatting));\r\n }\r\n instrChildren.push({\r\n name: 'w:instrText',\r\n attributes: { 'xml:space': 'preserve' },\r\n children: [this.instruction],\r\n });\r\n runs.push({\r\n name: 'w:r',\r\n children: instrChildren,\r\n });\r\n\r\n // 2a. Nested fields (if any)\r\n for (const nestedField of this.nestedFields) {\r\n runs.push(...nestedField.toXML());\r\n }\r\n\r\n // 3. Separator run\r\n runs.push({\r\n name: 'w:r',\r\n children: [\r\n {\r\n name: 'w:fldChar',\r\n attributes: { 'w:fldCharType': 'separate' },\r\n selfClosing: true,\r\n },\r\n ],\r\n });\r\n\r\n // 4. Result content (prioritize custom XML content, then simple text)\r\n // Design note: For INCLUDEPICTURE fields, the parser stores the w:drawing\r\n // content in resultContent so it survives the parser→generator round-trip.\r\n // When flattenFieldCodes() is active, the full field structure is emitted\r\n // here, then _postProcessDocumentXml() strips the INCLUDEPICTURE scaffolding\r\n // (fldChar/instrText runs) from the final XML while preserving the drawing.\r\n // Non-INCLUDEPICTURE fields emit their complete structure unchanged.\r\n if (this.resultContent.length > 0) {\r\n // Use custom XML content\r\n runs.push(...this.resultContent);\r\n } else if (this.result) {\r\n // Use simple text result\r\n const resultChildren: XMLElement[] = [];\r\n if (this.resultFormatting) {\r\n resultChildren.push(this.createRunProperties(this.resultFormatting));\r\n }\r\n resultChildren.push({\r\n name: 'w:t',\r\n attributes: { 'xml:space': 'preserve' },\r\n children: [this.result],\r\n });\r\n runs.push({\r\n name: 'w:r',\r\n children: resultChildren,\r\n });\r\n }\r\n\r\n // 4a. Result revisions (tracked changes within the result section)\r\n // These MUST appear between the separator and end marker per ECMA-376\r\n // The revisions contain the actual field result content wrapped in w:ins or w:del\r\n for (const revision of this.resultRevisions) {\r\n const revisionXml = revision.toXML();\r\n if (revisionXml) {\r\n runs.push(revisionXml);\r\n }\r\n }\r\n\r\n // 5. End marker run\r\n runs.push({\r\n name: 'w:r',\r\n children: [\r\n {\r\n name: 'w:fldChar',\r\n attributes: { 'w:fldCharType': 'end' },\r\n selfClosing: true,\r\n },\r\n ],\r\n });\r\n\r\n return runs;\r\n }\r\n\r\n /**\r\n * Creates run properties XML from formatting\r\n */\r\n private createRunProperties(formatting: RunFormatting): XMLElement {\r\n const children: XMLElement[] = [];\r\n\r\n if (formatting.bold) {\r\n children.push({ name: 'w:b', selfClosing: true });\r\n }\r\n\r\n if (formatting.italic) {\r\n children.push({ name: 'w:i', selfClosing: true });\r\n }\r\n\r\n if (formatting.underline) {\r\n const val =\r\n typeof formatting.underline === 'string'\r\n ? formatting.underline\r\n : 'single';\r\n children.push({\r\n name: 'w:u',\r\n attributes: { 'w:val': val },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (formatting.strike) {\r\n children.push({ name: 'w:strike', selfClosing: true });\r\n }\r\n\r\n if (formatting.font) {\r\n children.push({\r\n name: 'w:rFonts',\r\n attributes: {\r\n 'w:ascii': formatting.font,\r\n 'w:hAnsi': formatting.font,\r\n 'w:cs': formatting.font,\r\n },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (formatting.size) {\r\n const sizeValue = pointsToHalfPoints(formatting.size).toString();\r\n children.push({\r\n name: 'w:sz',\r\n attributes: { 'w:val': sizeValue },\r\n selfClosing: true,\r\n });\r\n children.push({\r\n name: 'w:szCs',\r\n attributes: { 'w:val': sizeValue },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (formatting.color) {\r\n const color = formatting.color.replace('#', '');\r\n children.push({\r\n name: 'w:color',\r\n attributes: { 'w:val': color },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n if (formatting.highlight) {\r\n children.push({\r\n name: 'w:highlight',\r\n attributes: { 'w:val': formatting.highlight },\r\n selfClosing: true,\r\n });\r\n }\r\n\r\n return { name: 'w:rPr', children };\r\n }\r\n\r\n /**\r\n * Builds a w:fldChar begin element with w:ffData child\r\n */\r\n private buildFldCharWithFfData(): XMLElement {\r\n const ffd = this._formFieldData!;\r\n const ffDataChildren: (string | XMLElement)[] = [];\r\n\r\n if (ffd.name) {\r\n ffDataChildren.push({ name: 'w:name', attributes: { 'w:val': ffd.name }, selfClosing: true });\r\n }\r\n if (ffd.enabled !== undefined) {\r\n if (ffd.enabled) {\r\n ffDataChildren.push({ name: 'w:enabled', selfClosing: true });\r\n } else {\r\n ffDataChildren.push({ name: 'w:enabled', attributes: { 'w:val': '0' }, selfClosing: true });\r\n }\r\n }\r\n if (ffd.calcOnExit !== undefined) {\r\n ffDataChildren.push({ name: 'w:calcOnExit', attributes: { 'w:val': ffd.calcOnExit ? '1' : '0' }, selfClosing: true });\r\n }\r\n if (ffd.helpText) {\r\n ffDataChildren.push({ name: 'w:helpText', attributes: { 'w:type': 'text', 'w:val': ffd.helpText }, selfClosing: true });\r\n }\r\n if (ffd.statusText) {\r\n ffDataChildren.push({ name: 'w:statusText', attributes: { 'w:type': 'text', 'w:val': ffd.statusText }, selfClosing: true });\r\n }\r\n if (ffd.entryMacro) {\r\n ffDataChildren.push({ name: 'w:entryMacro', attributes: { 'w:val': ffd.entryMacro }, selfClosing: true });\r\n }\r\n if (ffd.exitMacro) {\r\n ffDataChildren.push({ name: 'w:exitMacro', attributes: { 'w:val': ffd.exitMacro }, selfClosing: true });\r\n }\r\n\r\n if (ffd.fieldType) {\r\n switch (ffd.fieldType.type) {\r\n case 'textInput': {\r\n const tiChildren: (string | XMLElement)[] = [];\r\n if (ffd.fieldType.inputType) tiChildren.push({ name: 'w:type', attributes: { 'w:val': ffd.fieldType.inputType }, selfClosing: true });\r\n if (ffd.fieldType.defaultValue) tiChildren.push({ name: 'w:default', attributes: { 'w:val': ffd.fieldType.defaultValue }, selfClosing: true });\r\n if (ffd.fieldType.maxLength !== undefined) tiChildren.push({ name: 'w:maxLength', attributes: { 'w:val': String(ffd.fieldType.maxLength) }, selfClosing: true });\r\n if (ffd.fieldType.format) tiChildren.push({ name: 'w:format', attributes: { 'w:val': ffd.fieldType.format }, selfClosing: true });\r\n ffDataChildren.push({ name: 'w:textInput', children: tiChildren });\r\n break;\r\n }\r\n case 'checkBox': {\r\n const cbChildren: (string | XMLElement)[] = [];\r\n if (ffd.fieldType.size === 'auto') {\r\n cbChildren.push({ name: 'w:sizeAuto', selfClosing: true });\r\n } else if (ffd.fieldType.size !== undefined) {\r\n cbChildren.push({ name: 'w:size', attributes: { 'w:val': String(ffd.fieldType.size) }, selfClosing: true });\r\n }\r\n if (ffd.fieldType.defaultChecked !== undefined) cbChildren.push({ name: 'w:default', attributes: { 'w:val': ffd.fieldType.defaultChecked ? '1' : '0' }, selfClosing: true });\r\n if (ffd.fieldType.checked !== undefined) cbChildren.push({ name: 'w:checked', attributes: { 'w:val': ffd.fieldType.checked ? '1' : '0' }, selfClosing: true });\r\n ffDataChildren.push({ name: 'w:checkBox', children: cbChildren });\r\n break;\r\n }\r\n case 'dropDownList': {\r\n const ddChildren: (string | XMLElement)[] = [];\r\n if (ffd.fieldType.result !== undefined) ddChildren.push({ name: 'w:result', attributes: { 'w:val': String(ffd.fieldType.result) }, selfClosing: true });\r\n if (ffd.fieldType.defaultResult !== undefined) ddChildren.push({ name: 'w:default', attributes: { 'w:val': String(ffd.fieldType.defaultResult) }, selfClosing: true });\r\n if (ffd.fieldType.listEntries) {\r\n for (const entry of ffd.fieldType.listEntries) {\r\n ddChildren.push({ name: 'w:listEntry', attributes: { 'w:val': entry }, selfClosing: true });\r\n }\r\n }\r\n ffDataChildren.push({ name: 'w:ddList', children: ddChildren });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n name: 'w:fldChar',\r\n attributes: { 'w:fldCharType': 'begin' },\r\n children: [{ name: 'w:ffData', children: ffDataChildren }],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * TOC field options\r\n */\r\nexport interface TOCFieldOptions {\r\n /** Heading levels to include (e.g., \"1-3\" for levels 1-3) */\r\n levels?: string;\r\n\r\n /** Make entries hyperlinks (\\h switch) */\r\n hyperlinks?: boolean;\r\n\r\n /** Hide tab leaders and page numbers in Web Layout (\\z switch) */\r\n hideInWebLayout?: boolean;\r\n\r\n /** Use outline levels (\\u switch) */\r\n useOutlineLevels?: boolean;\r\n\r\n /** Omit page numbers (\\n switch) */\r\n omitPageNumbers?: boolean;\r\n\r\n /** Custom styles to use (\\t switch) */\r\n customStyles?: string;\r\n}\r\n\r\n/**\r\n * Creates a TOC (Table of Contents) complex field\r\n * Generates proper field instruction with switches\r\n *\r\n * @param options TOC field options\r\n * @returns ComplexField configured for TOC\r\n *\r\n * @example\r\n * const toc = createTOCField({ levels: '1-3', hyperlinks: true });\r\n * // Generates: TOC \\o \"1-3\" \\h \\z \\u\r\n */\r\nexport function createTOCField(options: TOCFieldOptions = {}): ComplexField {\r\n // Build instruction string\r\n let instruction = ' TOC';\r\n\r\n // Add outline levels switch\r\n if (options.levels !== undefined) {\r\n instruction += ` \\\\o \"${options.levels}\"`;\r\n } else {\r\n instruction += ' \\\\o \"1-3\"'; // Default: levels 1-3\r\n }\r\n\r\n // Add hyperlinks switch\r\n if (options.hyperlinks !== false) {\r\n instruction += ' \\\\h';\r\n }\r\n\r\n // Add hide in web layout switch\r\n if (options.hideInWebLayout !== false) {\r\n instruction += ' \\\\z';\r\n }\r\n\r\n // Add use outline levels switch\r\n if (options.useOutlineLevels !== false) {\r\n instruction += ' \\\\u';\r\n }\r\n\r\n // Add omit page numbers switch\r\n if (options.omitPageNumbers) {\r\n instruction += ' \\\\n';\r\n }\r\n\r\n // Add custom styles switch\r\n if (options.customStyles) {\r\n instruction += ` \\\\t \"${options.customStyles}\"`;\r\n }\r\n\r\n instruction += ' '; // Trailing space per Microsoft convention\r\n\r\n return new ComplexField({\r\n instruction,\r\n result: 'Table of Contents', // Placeholder result\r\n });\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldHelpers.d.ts","sourceRoot":"","sources":["../../src/elements/FieldHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,MAAM,WAAW,0BAA0B;IAEzC,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,OAAO,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;CACxB;AAgCD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CA8EhG;AAgBD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAeR;AAQD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAKnE;AAkBD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,MAAW,EACrB,SAAS,GAAE,MAAW,GACrB,YAAY,CAgBd;AAcD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAajF;AAeD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAelF;AAeD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAW,GACxB,YAAY,CAOd;AAgBD,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAAE,GAC3B,YAAY,CAUd"}
1
+ {"version":3,"file":"FieldHelpers.d.ts","sourceRoot":"","sources":["../../src/elements/FieldHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,MAAM,WAAW,0BAA0B;IAEzC,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,OAAO,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;CACxB;AAgCD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CA8EhG;AAgBD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAeR;AAQD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAKnE;AAkBD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,SAAK,EACb,SAAS,SAAK,GACb,YAAY,CAgBd;AAcD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAajF;AAeD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAelF;AAeD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,SAAK,GAChB,YAAY,CAOd;AAgBD,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAAE,GAC3B,YAAY,CAUd"}
@@ -19,8 +19,8 @@ function parseHyperlinkInstruction(instruction) {
19
19
  return null;
20
20
  }
21
21
  let url = '';
22
- const urlMatch = normalized.match(/HYPERLINK\s+"([^"]*)"/i);
23
- if (urlMatch && urlMatch[1] !== undefined) {
22
+ const urlMatch = /HYPERLINK\s+"([^"]*)"/i.exec(normalized);
23
+ if (urlMatch?.[1] !== undefined) {
24
24
  url = urlMatch[1];
25
25
  try {
26
26
  url = decodeURIComponent(url);
@@ -30,8 +30,8 @@ function parseHyperlinkInstruction(instruction) {
30
30
  }
31
31
  }
32
32
  let anchor;
33
- const anchorMatch = normalized.match(/\\l\s+"([^"]*)"/i);
34
- if (anchorMatch && anchorMatch[1] !== undefined) {
33
+ const anchorMatch = /\\l\s+"([^"]*)"/i.exec(normalized);
34
+ if (anchorMatch?.[1] !== undefined) {
35
35
  anchor = anchorMatch[1];
36
36
  try {
37
37
  anchor = decodeURIComponent(anchor);
@@ -44,8 +44,8 @@ function parseHyperlinkInstruction(instruction) {
44
44
  return null;
45
45
  }
46
46
  let tooltip;
47
- const tooltipMatch = normalized.match(/\\o\s+"([^"]*)"/i);
48
- if (tooltipMatch && tooltipMatch[1] !== undefined) {
47
+ const tooltipMatch = /\\o\s+"([^"]*)"/i.exec(normalized);
48
+ if (tooltipMatch?.[1] !== undefined) {
49
49
  tooltip = tooltipMatch[1];
50
50
  }
51
51
  const hasHSwitch = /\\h(?:\s|$)/i.test(normalized);
@@ -1 +1 @@
1
- {"version":3,"file":"FieldHelpers.js","sourceRoot":"","sources":["../../src/elements/FieldHelpers.ts"],"names":[],"mappings":";;AAuDA,8DA8EC;AAgBD,8DAmBC;AAQD,wDAKC;AAkBD,4DAqBC;AAcD,4CAaC;AAeD,wCAeC;AAeD,sCAWC;AAgBD,8CAaC;AAxUD,mCAAuC;AACvC,4CAAgD;AAkDhD,SAAgB,yBAAyB,CAAC,WAAmB;IAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAGtC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAID,IAAI,GAAG,GAAW,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5D,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC;YACH,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sBAAa,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAGD,IAAI,MAA0B,CAAC;IAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzD,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,CAAC;YACH,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sBAAa,CAAC,KAAK,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAGD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,IAAI,OAA2B,CAAC;IAChC,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAGD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAGnD,IAAI,OAAO,GAAW,GAAG,CAAC;IAC1B,IAAI,MAAM,EAAE,CAAC;QAEX,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;QACvD,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;QAC/B,CAAC;aAAM,CAAC;YAEN,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG;QACH,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,cAAc,EAAE,WAAW;KAC5B,CAAC;AACJ,CAAC;AAgBD,SAAgB,yBAAyB,CACvC,GAAW,EACX,MAAe,EACf,OAAgB;IAEhB,IAAI,WAAW,GAAG,cAAc,GAAG,GAAG,CAAC;IAEvC,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,IAAI,SAAS,MAAM,GAAG,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,WAAW,IAAI,SAAS,OAAO,GAAG,CAAC;IACrC,CAAC;IAGD,WAAW,IAAI,MAAM,CAAC;IAEtB,OAAO,WAAW,CAAC;AACrB,CAAC;AAQD,SAAgB,sBAAsB,CAAC,WAAmB;IACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAClE,CAAC;AAkBD,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,cAAsB,EACtB,WAAmB,EAAE,EACrB,YAAoB,EAAE;IAGtB,MAAM,UAAU,GAAG,IAAI,oBAAY,CAAC;QAClC,WAAW,EAAE,eAAe,cAAc,GAAG;QAC7C,MAAM,EAAE,IAAI,cAAc,GAAG;KAC9B,CAAC,CAAC;IAGH,MAAM,OAAO,GAAG,IAAI,oBAAY,CAAC;QAC/B,WAAW,EAAE,OAAO,SAAS,KAAK,QAAQ,MAAM,SAAS,IAAI;QAC7D,MAAM,EAAE,QAAQ,IAAI,SAAS;KAC9B,CAAC,CAAC;IAEH,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAcD,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,MAAe;IACjE,IAAI,WAAW,GAAG,eAAe,SAAS,EAAE,CAAC;IAE7C,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,IAAI,IAAI,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,IAAI,mBAAmB,CAAC;IAEnC,OAAO,IAAI,oBAAY,CAAC;QACtB,WAAW;QACX,MAAM,EAAE,IAAI,SAAS,GAAG;KACzB,CAAC,CAAC;AACL,CAAC;AAeD,SAAgB,cAAc,CAAC,YAAoB,EAAE,MAAe;IAClE,IAAI,WAAW,GAAG,QAAQ,YAAY,EAAE,CAAC;IAEzC,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,IAAI,IAAI,MAAM,EAAE,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,WAAW,IAAI,MAAM,CAAC;IACxB,CAAC;IAED,WAAW,IAAI,mBAAmB,CAAC;IAEnC,OAAO,IAAI,oBAAY,CAAC;QACtB,WAAW;QACX,MAAM,EAAE,IAAI,YAAY,GAAG;KAC5B,CAAC,CAAC;AACL,CAAC;AAeD,SAAgB,aAAa,CAC3B,SAAiB,EACjB,WAAmB,EACnB,eAAuB,EAAE;IAEzB,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,WAAW,MAAM,YAAY,IAAI,CAAC;IAE3E,OAAO,IAAI,oBAAY,CAAC;QACtB,WAAW;QACX,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC;AAgBD,SAAgB,iBAAiB,CAC/B,gBAAwB,EACxB,YAA4B;IAE5B,MAAM,KAAK,GAAG,IAAI,oBAAY,CAAC;QAC7B,WAAW,EAAE,gBAAgB;KAC9B,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"FieldHelpers.js","sourceRoot":"","sources":["../../src/elements/FieldHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Helper functions for creating complex and nested fields\r\n */\r\n\r\nimport { ComplexField } from './Field';\r\nimport { defaultLogger } from '../utils/logger';\r\n\r\n/**\r\n * Parsed components of a HYPERLINK field instruction\r\n */\r\nexport interface ParsedHyperlinkInstruction {\r\n /** Base URL (with encoded characters decoded) */\r\n url: string;\r\n /** Anchor/fragment from \\l switch (decoded) */\r\n anchor?: string;\r\n /** Tooltip text from \\o switch */\r\n tooltip?: string;\r\n /** Whether \\h switch is present (creates hyperlink) */\r\n hasHSwitch: boolean;\r\n /** Combined full URL (url + \"#\" + anchor if both present) */\r\n fullUrl: string;\r\n /** Original raw instruction string */\r\n rawInstruction: string;\r\n}\r\n\r\n/**\r\n * Parses a HYPERLINK field instruction string into its components\r\n *\r\n * HYPERLINK field syntax per ECMA-376:\r\n * - HYPERLINK \"url\" - basic external hyperlink\r\n * - HYPERLINK \\l \"anchor\" - anchor-only internal hyperlink (no URL)\r\n * - \\l \"anchor\" - specifies a location (anchor/fragment) within the target\r\n * - \\o \"tooltip\" - specifies the tooltip/screentip text\r\n * - \\h - creates a hyperlink (always present for clickable links)\r\n * - \\n - opens link in new window\r\n * - \\t \"target\" - specifies target frame\r\n *\r\n * @param instruction The raw field instruction string (e.g., 'HYPERLINK \"url\" \\l \"anchor\" \\h')\r\n * @returns Parsed components or null if not a valid HYPERLINK instruction\r\n *\r\n * @example\r\n * ```typescript\r\n * // External hyperlink with anchor\r\n * const result = parseHyperlinkInstruction('HYPERLINK \"https://example.com/\" \\\\l \"section1\" \\\\h');\r\n * // result.url = \"https://example.com/\"\r\n * // result.anchor = \"section1\"\r\n * // result.fullUrl = \"https://example.com/#section1\"\r\n *\r\n * // Anchor-only internal hyperlink (e.g., \"Top of the Document\")\r\n * const result2 = parseHyperlinkInstruction('HYPERLINK \\\\l \"_top\" \\\\h');\r\n * // result2.url = \"\"\r\n * // result2.anchor = \"_top\"\r\n * // result2.fullUrl = \"#_top\"\r\n * ```\r\n */\r\nexport function parseHyperlinkInstruction(instruction: string): ParsedHyperlinkInstruction | null {\r\n if (!instruction) {\r\n return null;\r\n }\r\n\r\n // Normalize whitespace and trim\r\n const normalized = instruction.trim();\r\n\r\n // Check if this is a HYPERLINK instruction\r\n if (!normalized.toUpperCase().startsWith('HYPERLINK')) {\r\n return null;\r\n }\r\n\r\n // Extract the URL (first quoted string after HYPERLINK, before any switches)\r\n // URL is optional - anchor-only hyperlinks like 'HYPERLINK \\l \"_top\"' are valid\r\n let url = '';\r\n const urlMatch = /HYPERLINK\\s+\"([^\"]*)\"/i.exec(normalized);\r\n if (urlMatch?.[1] !== undefined) {\r\n url = urlMatch[1];\r\n // Decode URL-encoded characters\r\n try {\r\n url = decodeURIComponent(url);\r\n } catch (e) {\r\n defaultLogger.debug(`[FieldHelpers] Failed to decode URL: ${url}`);\r\n }\r\n }\r\n\r\n // Extract \\l switch (anchor/fragment)\r\n let anchor: string | undefined;\r\n const anchorMatch = /\\\\l\\s+\"([^\"]*)\"/i.exec(normalized);\r\n if (anchorMatch?.[1] !== undefined) {\r\n anchor = anchorMatch[1];\r\n // Decode anchor as well\r\n try {\r\n anchor = decodeURIComponent(anchor);\r\n } catch (e) {\r\n defaultLogger.debug(`[FieldHelpers] Failed to decode anchor: ${anchor}`);\r\n }\r\n }\r\n\r\n // Must have either URL or anchor to be valid\r\n if (!url && !anchor) {\r\n return null;\r\n }\r\n\r\n // Extract \\o switch (tooltip)\r\n let tooltip: string | undefined;\r\n const tooltipMatch = /\\\\o\\s+\"([^\"]*)\"/i.exec(normalized);\r\n if (tooltipMatch?.[1] !== undefined) {\r\n tooltip = tooltipMatch[1];\r\n }\r\n\r\n // Check for \\h switch\r\n const hasHSwitch = /\\\\h(?:\\s|$)/i.test(normalized);\r\n\r\n // Build full URL by combining base URL and anchor\r\n let fullUrl: string = url;\r\n if (anchor) {\r\n // If URL already has a fragment, replace it; otherwise append\r\n const hashIndex = url.indexOf('#');\r\n if (hashIndex >= 0) {\r\n fullUrl = url.substring(0, hashIndex) + '#' + anchor;\r\n } else if (url) {\r\n fullUrl = url + '#' + anchor;\r\n } else {\r\n // Anchor-only: just use #anchor\r\n fullUrl = '#' + anchor;\r\n }\r\n }\r\n\r\n return {\r\n url,\r\n anchor,\r\n tooltip,\r\n hasHSwitch,\r\n fullUrl,\r\n rawInstruction: instruction,\r\n };\r\n}\r\n\r\n/**\r\n * Creates a HYPERLINK field instruction string from components\r\n *\r\n * @param url The target URL\r\n * @param anchor Optional anchor/fragment (will use \\l switch)\r\n * @param tooltip Optional tooltip text (will use \\o switch)\r\n * @returns Properly formatted HYPERLINK instruction string\r\n *\r\n * @example\r\n * ```typescript\r\n * const instr = buildHyperlinkInstruction('https://example.com/', 'section1', 'Click here');\r\n * // Returns: 'HYPERLINK \"https://example.com/\" \\\\l \"section1\" \\\\o \"Click here\" \\\\h'\r\n * ```\r\n */\r\nexport function buildHyperlinkInstruction(\r\n url: string,\r\n anchor?: string,\r\n tooltip?: string\r\n): string {\r\n let instruction = `HYPERLINK \"${url}\"`;\r\n\r\n if (anchor) {\r\n instruction += ` \\\\l \"${anchor}\"`;\r\n }\r\n\r\n if (tooltip) {\r\n instruction += ` \\\\o \"${tooltip}\"`;\r\n }\r\n\r\n // Always add \\h switch for clickable hyperlinks\r\n instruction += ' \\\\h';\r\n\r\n return instruction;\r\n}\r\n\r\n/**\r\n * Checks if a field instruction is a HYPERLINK field\r\n *\r\n * @param instruction The field instruction to check\r\n * @returns True if the instruction is a HYPERLINK field\r\n */\r\nexport function isHyperlinkInstruction(instruction: string): boolean {\r\n if (!instruction) {\r\n return false;\r\n }\r\n return instruction.trim().toUpperCase().startsWith('HYPERLINK');\r\n}\r\n\r\n/**\r\n * Creates a nested IF field containing a MERGEFIELD\r\n * This is a common pattern for conditional mail merge\r\n *\r\n * @param condition The IF condition (e.g., 'Status = \"Active\"')\r\n * @param mergeFieldName The merge field name to include\r\n * @param trueText Text to show when condition is true\r\n * @param falseText Text to show when condition is false\r\n * @returns ComplexField with nested MERGEFIELD\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = createNestedIFMergeField('Status = \"Active\"', 'Name', 'Active: ', 'Inactive');\r\n * // Result: IF field that shows \"Active: [Name]\" if Status is Active, otherwise \"Inactive\"\r\n * ```\r\n */\r\nexport function createNestedIFMergeField(\r\n condition: string,\r\n mergeFieldName: string,\r\n trueText = '',\r\n falseText = ''\r\n): ComplexField {\r\n // Create the nested MERGEFIELD\r\n const mergeField = new ComplexField({\r\n instruction: ` MERGEFIELD ${mergeFieldName} `,\r\n result: `[${mergeFieldName}]`,\r\n });\r\n\r\n // Create the IF field with nested MERGEFIELD\r\n const ifField = new ComplexField({\r\n instruction: ` IF ${condition} \"${trueText}\" \"${falseText}\" `,\r\n result: trueText || falseText,\r\n });\r\n\r\n ifField.addNestedField(mergeField);\r\n\r\n return ifField;\r\n}\r\n\r\n/**\r\n * Creates a MERGEFIELD with custom formatting\r\n *\r\n * @param fieldName The merge field name\r\n * @param format Optional format switches\r\n * @returns ComplexField for MERGEFIELD\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = createMergeField('Date', '\\\\@ \"MMMM d, yyyy\"');\r\n * ```\r\n */\r\nexport function createMergeField(fieldName: string, format?: string): ComplexField {\r\n let instruction = ` MERGEFIELD ${fieldName}`;\r\n\r\n if (format) {\r\n instruction += ` ${format}`;\r\n }\r\n\r\n instruction += ' \\\\* MERGEFORMAT ';\r\n\r\n return new ComplexField({\r\n instruction,\r\n result: `[${fieldName}]`,\r\n });\r\n}\r\n\r\n/**\r\n * Creates a REF field with a nested field in the bookmark reference\r\n * Used for complex cross-references\r\n *\r\n * @param bookmarkName The bookmark to reference\r\n * @param format Optional format switches\r\n * @returns ComplexField for REF\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = createRefField('Chapter1', '\\\\h');\r\n * ```\r\n */\r\nexport function createRefField(bookmarkName: string, format?: string): ComplexField {\r\n let instruction = ` REF ${bookmarkName}`;\r\n\r\n if (format) {\r\n instruction += ` ${format}`;\r\n } else {\r\n instruction += ' \\\\h'; // Hyperlink by default\r\n }\r\n\r\n instruction += ' \\\\* MERGEFORMAT ';\r\n\r\n return new ComplexField({\r\n instruction,\r\n result: `[${bookmarkName}]`,\r\n });\r\n}\r\n\r\n/**\r\n * Creates an IF field with custom true/false branches\r\n *\r\n * @param condition The condition to evaluate\r\n * @param trueContent Content to show when true\r\n * @param falseContent Content to show when false\r\n * @returns ComplexField for IF\r\n *\r\n * @example\r\n * ```typescript\r\n * const field = createIFField('Amount > 1000', 'High Value', 'Normal');\r\n * ```\r\n */\r\nexport function createIFField(\r\n condition: string,\r\n trueContent: string,\r\n falseContent = ''\r\n): ComplexField {\r\n const instruction = ` IF ${condition} \"${trueContent}\" \"${falseContent}\" `;\r\n\r\n return new ComplexField({\r\n instruction,\r\n result: trueContent,\r\n });\r\n}\r\n\r\n/**\r\n * Creates a complex nested field structure with multiple levels\r\n * Useful for advanced scenarios like nested IF statements\r\n *\r\n * @param outerInstruction The outer field instruction\r\n * @param nestedFields Array of nested fields to include\r\n * @returns ComplexField with nested structure\r\n *\r\n * @example\r\n * ```typescript\r\n * const innerField = createMergeField('Amount');\r\n * const field = createNestedField('IF Amount > 0', [innerField]);\r\n * ```\r\n */\r\nexport function createNestedField(\r\n outerInstruction: string,\r\n nestedFields: ComplexField[]\r\n): ComplexField {\r\n const field = new ComplexField({\r\n instruction: outerInstruction,\r\n });\r\n\r\n for (const nested of nestedFields) {\r\n field.addNestedField(nested);\r\n }\r\n\r\n return field;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FontManager.d.ts","sourceRoot":"","sources":["../../src/elements/FontManager.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAK1D,MAAM,WAAW,SAAS;IAExB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,UAAU,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;;IAY/B,MAAM,CAAC,MAAM,IAAI,WAAW;IAW5B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,UAAkB,GAAG,MAAM;IA4BvE,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC;IAwBlB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAapC,WAAW,IAAI,SAAS,EAAE;IAQ1B,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAe9C,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC;IAY5B,0BAA0B,IAAI,MAAM,EAAE;IAkBtC,OAAO,CAAC,gBAAgB;IAYxB,KAAK,IAAI,IAAI;IASb,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASlD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAc1D,MAAM,CAAC,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE;IA8B7E,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAc3E,oBAAoB,CAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACtC,eAAe,EAAE,MAAM,GACtB,IAAI;IAuCP,OAAO,CAAC,6BAA6B;CAatC"}
1
+ {"version":3,"file":"FontManager.d.ts","sourceRoot":"","sources":["../../src/elements/FontManager.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAK1D,MAAM,WAAW,SAAS;IAExB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,UAAU,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;;IAY/B,MAAM,CAAC,MAAM,IAAI,WAAW;IAW5B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,UAAkB,GAAG,MAAM;IA4BvE,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC;IAwBlB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAapC,WAAW,IAAI,SAAS,EAAE;IAQ1B,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAe9C,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC;IAY5B,0BAA0B,IAAI,MAAM,EAAE;IAkBtC,OAAO,CAAC,gBAAgB;IAYxB,KAAK,IAAI,IAAI;IASb,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASlD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAc1D,MAAM,CAAC,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE;IA8B7E,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAc3E,oBAAoB,CAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACtC,eAAe,EAAE,MAAM,GACtB,IAAI;IAuCP,OAAO,CAAC,6BAA6B;CAatC"}