@fiduswriter/document 0.1.0-alpha.4 → 0.1.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/bibliography/common.d.ts +9 -91
  2. package/dist/bibliography/common.d.ts.map +1 -1
  3. package/dist/bibliography/common.js +3 -2
  4. package/dist/bibliography/common.js.map +1 -1
  5. package/dist/bibliography/csl_bib.d.ts +1 -1
  6. package/dist/bibliography/csl_bib.d.ts.map +1 -1
  7. package/dist/bibliography/csl_bib.js +7 -7
  8. package/dist/bibliography/csl_bib.js.map +1 -1
  9. package/dist/citations/citeproc_sys.d.ts +9 -10
  10. package/dist/citations/citeproc_sys.d.ts.map +1 -1
  11. package/dist/citations/citeproc_sys.js +6 -1
  12. package/dist/citations/citeproc_sys.js.map +1 -1
  13. package/dist/citations/format.d.ts +33 -16
  14. package/dist/citations/format.d.ts.map +1 -1
  15. package/dist/citations/format.js +29 -4
  16. package/dist/citations/format.js.map +1 -1
  17. package/dist/editor/e2ee/encryptor.d.ts +35 -35
  18. package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
  19. package/dist/editor/e2ee/encryptor.js +31 -31
  20. package/dist/editor/e2ee/encryptor.js.map +1 -1
  21. package/dist/exporter/docx/citations.d.ts +27 -17
  22. package/dist/exporter/docx/citations.d.ts.map +1 -1
  23. package/dist/exporter/docx/citations.js +24 -7
  24. package/dist/exporter/docx/citations.js.map +1 -1
  25. package/dist/exporter/docx/comments.d.ts +15 -11
  26. package/dist/exporter/docx/comments.d.ts.map +1 -1
  27. package/dist/exporter/docx/comments.js +47 -14
  28. package/dist/exporter/docx/comments.js.map +1 -1
  29. package/dist/exporter/docx/footnotes.d.ts +36 -31
  30. package/dist/exporter/docx/footnotes.d.ts.map +1 -1
  31. package/dist/exporter/docx/footnotes.js +46 -12
  32. package/dist/exporter/docx/footnotes.js.map +1 -1
  33. package/dist/exporter/docx/images.d.ts +23 -12
  34. package/dist/exporter/docx/images.d.ts.map +1 -1
  35. package/dist/exporter/docx/images.js +35 -20
  36. package/dist/exporter/docx/images.js.map +1 -1
  37. package/dist/exporter/docx/index.d.ts +11 -17
  38. package/dist/exporter/docx/index.d.ts.map +1 -1
  39. package/dist/exporter/docx/index.js +15 -7
  40. package/dist/exporter/docx/index.js.map +1 -1
  41. package/dist/exporter/docx/lists.d.ts +27 -22
  42. package/dist/exporter/docx/lists.d.ts.map +1 -1
  43. package/dist/exporter/docx/lists.js +77 -30
  44. package/dist/exporter/docx/lists.js.map +1 -1
  45. package/dist/exporter/docx/math.d.ts +9 -9
  46. package/dist/exporter/docx/math.d.ts.map +1 -1
  47. package/dist/exporter/docx/math.js +22 -5
  48. package/dist/exporter/docx/math.js.map +1 -1
  49. package/dist/exporter/docx/metadata.d.ts +12 -9
  50. package/dist/exporter/docx/metadata.d.ts.map +1 -1
  51. package/dist/exporter/docx/metadata.js +59 -26
  52. package/dist/exporter/docx/metadata.js.map +1 -1
  53. package/dist/exporter/docx/rels.d.ts +14 -12
  54. package/dist/exporter/docx/rels.d.ts.map +1 -1
  55. package/dist/exporter/docx/rels.js +37 -22
  56. package/dist/exporter/docx/rels.js.map +1 -1
  57. package/dist/exporter/docx/render.d.ts +17 -15
  58. package/dist/exporter/docx/render.d.ts.map +1 -1
  59. package/dist/exporter/docx/render.js +37 -31
  60. package/dist/exporter/docx/render.js.map +1 -1
  61. package/dist/exporter/docx/richtext.d.ts +8 -8
  62. package/dist/exporter/docx/richtext.d.ts.map +1 -1
  63. package/dist/exporter/docx/richtext.js +61 -43
  64. package/dist/exporter/docx/richtext.js.map +1 -1
  65. package/dist/exporter/docx/tables.d.ts +11 -9
  66. package/dist/exporter/docx/tables.d.ts.map +1 -1
  67. package/dist/exporter/docx/tables.js +16 -10
  68. package/dist/exporter/docx/tables.js.map +1 -1
  69. package/dist/exporter/docx/tools.d.ts +3 -2
  70. package/dist/exporter/docx/tools.d.ts.map +1 -1
  71. package/dist/exporter/docx/tools.js +3 -3
  72. package/dist/exporter/docx/tools.js.map +1 -1
  73. package/dist/exporter/epub/index.d.ts +11 -3
  74. package/dist/exporter/epub/index.d.ts.map +1 -1
  75. package/dist/exporter/epub/index.js +10 -3
  76. package/dist/exporter/epub/index.js.map +1 -1
  77. package/dist/exporter/epub/templates.d.ts +62 -31
  78. package/dist/exporter/epub/templates.d.ts.map +1 -1
  79. package/dist/exporter/epub/templates.js +1 -1
  80. package/dist/exporter/epub/templates.js.map +1 -1
  81. package/dist/exporter/epub/tools.d.ts +12 -4
  82. package/dist/exporter/epub/tools.d.ts.map +1 -1
  83. package/dist/exporter/epub/tools.js +14 -13
  84. package/dist/exporter/epub/tools.js.map +1 -1
  85. package/dist/exporter/html/citations.d.ts +17 -15
  86. package/dist/exporter/html/citations.d.ts.map +1 -1
  87. package/dist/exporter/html/citations.js +37 -18
  88. package/dist/exporter/html/citations.js.map +1 -1
  89. package/dist/exporter/html/convert.d.ts +20 -70
  90. package/dist/exporter/html/convert.d.ts.map +1 -1
  91. package/dist/exporter/html/convert.js +74 -42
  92. package/dist/exporter/html/convert.js.map +1 -1
  93. package/dist/exporter/html/index.d.ts +55 -52
  94. package/dist/exporter/html/index.d.ts.map +1 -1
  95. package/dist/exporter/html/index.js +23 -3
  96. package/dist/exporter/html/index.js.map +1 -1
  97. package/dist/exporter/html/templates.d.ts +23 -9
  98. package/dist/exporter/html/templates.d.ts.map +1 -1
  99. package/dist/exporter/html/templates.js +1 -1
  100. package/dist/exporter/html/templates.js.map +1 -1
  101. package/dist/exporter/html/tools.d.ts +1 -1
  102. package/dist/exporter/html/tools.d.ts.map +1 -1
  103. package/dist/exporter/html/tools.js +2 -2
  104. package/dist/exporter/html/tools.js.map +1 -1
  105. package/dist/exporter/jats/bibliography.d.ts +2 -1
  106. package/dist/exporter/jats/bibliography.d.ts.map +1 -1
  107. package/dist/exporter/jats/bibliography.js +57 -52
  108. package/dist/exporter/jats/bibliography.js.map +1 -1
  109. package/dist/exporter/jats/citations.d.ts +13 -11
  110. package/dist/exporter/jats/citations.d.ts.map +1 -1
  111. package/dist/exporter/jats/citations.js +28 -6
  112. package/dist/exporter/jats/citations.js.map +1 -1
  113. package/dist/exporter/jats/convert.d.ts +24 -28
  114. package/dist/exporter/jats/convert.d.ts.map +1 -1
  115. package/dist/exporter/jats/convert.js +53 -36
  116. package/dist/exporter/jats/convert.js.map +1 -1
  117. package/dist/exporter/jats/index.d.ts +21 -15
  118. package/dist/exporter/jats/index.d.ts.map +1 -1
  119. package/dist/exporter/jats/index.js +21 -5
  120. package/dist/exporter/jats/index.js.map +1 -1
  121. package/dist/exporter/jats/templates.d.ts +17 -15
  122. package/dist/exporter/jats/templates.d.ts.map +1 -1
  123. package/dist/exporter/jats/templates.js.map +1 -1
  124. package/dist/exporter/jats/text.d.ts +3 -2
  125. package/dist/exporter/jats/text.d.ts.map +1 -1
  126. package/dist/exporter/jats/text.js +4 -4
  127. package/dist/exporter/jats/text.js.map +1 -1
  128. package/dist/exporter/latex/convert.d.ts +12 -15
  129. package/dist/exporter/latex/convert.d.ts.map +1 -1
  130. package/dist/exporter/latex/convert.js +70 -54
  131. package/dist/exporter/latex/convert.js.map +1 -1
  132. package/dist/exporter/latex/escape_latex.d.ts +1 -1
  133. package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
  134. package/dist/exporter/latex/escape_latex.js +1 -1
  135. package/dist/exporter/latex/escape_latex.js.map +1 -1
  136. package/dist/exporter/latex/index.d.ts +20 -19
  137. package/dist/exporter/latex/index.d.ts.map +1 -1
  138. package/dist/exporter/latex/index.js +15 -5
  139. package/dist/exporter/latex/index.js.map +1 -1
  140. package/dist/exporter/latex/readme.d.ts +1 -1
  141. package/dist/exporter/latex/readme.d.ts.map +1 -1
  142. package/dist/exporter/latex/readme.js +2 -2
  143. package/dist/exporter/latex/readme.js.map +1 -1
  144. package/dist/exporter/native/copy.d.ts +30 -0
  145. package/dist/exporter/native/copy.d.ts.map +1 -0
  146. package/dist/exporter/native/copy.js +151 -0
  147. package/dist/exporter/native/copy.js.map +1 -0
  148. package/dist/exporter/native/file.d.ts +12 -0
  149. package/dist/exporter/native/file.d.ts.map +1 -0
  150. package/dist/exporter/native/file.js +38 -0
  151. package/dist/exporter/native/file.js.map +1 -0
  152. package/dist/exporter/native/index.d.ts +5 -0
  153. package/dist/exporter/native/index.d.ts.map +1 -0
  154. package/dist/exporter/native/index.js +5 -0
  155. package/dist/exporter/native/index.js.map +1 -0
  156. package/dist/exporter/native/revision.d.ts +18 -0
  157. package/dist/exporter/native/revision.d.ts.map +1 -0
  158. package/dist/exporter/native/revision.js +39 -0
  159. package/dist/exporter/native/revision.js.map +1 -0
  160. package/dist/exporter/native/shrink.d.ts +29 -14
  161. package/dist/exporter/native/shrink.d.ts.map +1 -1
  162. package/dist/exporter/native/shrink.js +27 -18
  163. package/dist/exporter/native/shrink.js.map +1 -1
  164. package/dist/exporter/native/zip.d.ts +25 -0
  165. package/dist/exporter/native/zip.d.ts.map +1 -0
  166. package/dist/exporter/native/zip.js +56 -0
  167. package/dist/exporter/native/zip.js.map +1 -0
  168. package/dist/exporter/odt/citations.d.ts +18 -15
  169. package/dist/exporter/odt/citations.d.ts.map +1 -1
  170. package/dist/exporter/odt/citations.js +21 -4
  171. package/dist/exporter/odt/citations.js.map +1 -1
  172. package/dist/exporter/odt/footnotes.d.ts +25 -19
  173. package/dist/exporter/odt/footnotes.d.ts.map +1 -1
  174. package/dist/exporter/odt/footnotes.js +23 -6
  175. package/dist/exporter/odt/footnotes.js.map +1 -1
  176. package/dist/exporter/odt/images.d.ts +23 -11
  177. package/dist/exporter/odt/images.d.ts.map +1 -1
  178. package/dist/exporter/odt/images.js +34 -26
  179. package/dist/exporter/odt/images.js.map +1 -1
  180. package/dist/exporter/odt/index.d.ts +12 -18
  181. package/dist/exporter/odt/index.d.ts.map +1 -1
  182. package/dist/exporter/odt/index.js +16 -7
  183. package/dist/exporter/odt/index.js.map +1 -1
  184. package/dist/exporter/odt/math.d.ts +10 -8
  185. package/dist/exporter/odt/math.d.ts.map +1 -1
  186. package/dist/exporter/odt/math.js +27 -4
  187. package/dist/exporter/odt/math.js.map +1 -1
  188. package/dist/exporter/odt/metadata.d.ts +13 -9
  189. package/dist/exporter/odt/metadata.d.ts.map +1 -1
  190. package/dist/exporter/odt/metadata.js +36 -15
  191. package/dist/exporter/odt/metadata.js.map +1 -1
  192. package/dist/exporter/odt/render.d.ts +17 -15
  193. package/dist/exporter/odt/render.d.ts.map +1 -1
  194. package/dist/exporter/odt/render.js +25 -18
  195. package/dist/exporter/odt/render.js.map +1 -1
  196. package/dist/exporter/odt/richtext.d.ts +9 -9
  197. package/dist/exporter/odt/richtext.d.ts.map +1 -1
  198. package/dist/exporter/odt/richtext.js +55 -40
  199. package/dist/exporter/odt/richtext.js.map +1 -1
  200. package/dist/exporter/odt/styles.d.ts +29 -21
  201. package/dist/exporter/odt/styles.d.ts.map +1 -1
  202. package/dist/exporter/odt/styles.js +44 -22
  203. package/dist/exporter/odt/styles.js.map +1 -1
  204. package/dist/exporter/odt/track.d.ts +14 -7
  205. package/dist/exporter/odt/track.d.ts.map +1 -1
  206. package/dist/exporter/odt/track.js +7 -0
  207. package/dist/exporter/odt/track.js.map +1 -1
  208. package/dist/exporter/pandoc/citations.d.ts +20 -14
  209. package/dist/exporter/pandoc/citations.d.ts.map +1 -1
  210. package/dist/exporter/pandoc/citations.js +18 -4
  211. package/dist/exporter/pandoc/citations.js.map +1 -1
  212. package/dist/exporter/pandoc/convert.d.ts +10 -29
  213. package/dist/exporter/pandoc/convert.d.ts.map +1 -1
  214. package/dist/exporter/pandoc/convert.js +45 -40
  215. package/dist/exporter/pandoc/convert.js.map +1 -1
  216. package/dist/exporter/pandoc/index.d.ts +20 -33
  217. package/dist/exporter/pandoc/index.d.ts.map +1 -1
  218. package/dist/exporter/pandoc/index.js +20 -8
  219. package/dist/exporter/pandoc/index.js.map +1 -1
  220. package/dist/exporter/pandoc/readme.d.ts +1 -1
  221. package/dist/exporter/pandoc/readme.d.ts.map +1 -1
  222. package/dist/exporter/pandoc/readme.js +0 -1
  223. package/dist/exporter/pandoc/readme.js.map +1 -1
  224. package/dist/exporter/pandoc/tools.d.ts +21 -5
  225. package/dist/exporter/pandoc/tools.d.ts.map +1 -1
  226. package/dist/exporter/pandoc/tools.js +2 -2
  227. package/dist/exporter/pandoc/tools.js.map +1 -1
  228. package/dist/exporter/print/index.d.ts +18 -7
  229. package/dist/exporter/print/index.d.ts.map +1 -1
  230. package/dist/exporter/print/index.js +12 -10
  231. package/dist/exporter/print/index.js.map +1 -1
  232. package/dist/exporter/tools/doc_content.d.ts +5 -6
  233. package/dist/exporter/tools/doc_content.d.ts.map +1 -1
  234. package/dist/exporter/tools/doc_content.js +17 -16
  235. package/dist/exporter/tools/doc_content.js.map +1 -1
  236. package/dist/exporter/tools/svg.d.ts +7 -1
  237. package/dist/exporter/tools/svg.d.ts.map +1 -1
  238. package/dist/exporter/tools/svg.js.map +1 -1
  239. package/dist/exporter/tools/xml.d.ts +39 -38
  240. package/dist/exporter/tools/xml.d.ts.map +1 -1
  241. package/dist/exporter/tools/xml.js +82 -55
  242. package/dist/exporter/tools/xml.js.map +1 -1
  243. package/dist/exporter/tools/xml_zip.d.ts +15 -14
  244. package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
  245. package/dist/exporter/tools/xml_zip.js +8 -2
  246. package/dist/exporter/tools/xml_zip.js.map +1 -1
  247. package/dist/exporter/tools/zip.d.ts +28 -14
  248. package/dist/exporter/tools/zip.d.ts.map +1 -1
  249. package/dist/exporter/tools/zip.js +13 -6
  250. package/dist/exporter/tools/zip.js.map +1 -1
  251. package/dist/exporter/tools/zotero_csl.d.ts +19 -6
  252. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
  253. package/dist/exporter/tools/zotero_csl.js +9 -9
  254. package/dist/exporter/tools/zotero_csl.js.map +1 -1
  255. package/dist/importer/citations.d.ts +25 -22
  256. package/dist/importer/citations.d.ts.map +1 -1
  257. package/dist/importer/citations.js +1 -49
  258. package/dist/importer/citations.js.map +1 -1
  259. package/dist/importer/docx/citations.d.ts +8 -30
  260. package/dist/importer/docx/citations.d.ts.map +1 -1
  261. package/dist/importer/docx/citations.js +1 -26
  262. package/dist/importer/docx/citations.js.map +1 -1
  263. package/dist/importer/docx/convert.d.ts +38 -116
  264. package/dist/importer/docx/convert.d.ts.map +1 -1
  265. package/dist/importer/docx/convert.js +99 -82
  266. package/dist/importer/docx/convert.js.map +1 -1
  267. package/dist/importer/docx/helpers.d.ts +1 -1
  268. package/dist/importer/docx/helpers.d.ts.map +1 -1
  269. package/dist/importer/docx/helpers.js +1 -1
  270. package/dist/importer/docx/helpers.js.map +1 -1
  271. package/dist/importer/docx/index.d.ts +27 -0
  272. package/dist/importer/docx/index.d.ts.map +1 -0
  273. package/dist/importer/docx/index.js +77 -0
  274. package/dist/importer/docx/index.js.map +1 -0
  275. package/dist/importer/docx/omml2mathml.d.ts +2 -3
  276. package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
  277. package/dist/importer/docx/omml2mathml.js +23 -116
  278. package/dist/importer/docx/omml2mathml.js.map +1 -1
  279. package/dist/importer/docx/parse.d.ts +22 -131
  280. package/dist/importer/docx/parse.d.ts.map +1 -1
  281. package/dist/importer/docx/parse.js +73 -55
  282. package/dist/importer/docx/parse.js.map +1 -1
  283. package/dist/importer/native/extract_template.d.ts +6 -0
  284. package/dist/importer/native/extract_template.d.ts.map +1 -0
  285. package/dist/importer/native/extract_template.js +80 -0
  286. package/dist/importer/native/extract_template.js.map +1 -0
  287. package/dist/importer/native/file.d.ts +37 -0
  288. package/dist/importer/native/file.d.ts.map +1 -0
  289. package/dist/importer/native/file.js +162 -0
  290. package/dist/importer/native/file.js.map +1 -0
  291. package/dist/importer/native/get_images.d.ts +18 -8
  292. package/dist/importer/native/get_images.d.ts.map +1 -1
  293. package/dist/importer/native/get_images.js +39 -45
  294. package/dist/importer/native/get_images.js.map +1 -1
  295. package/dist/importer/native/importer.d.ts +41 -0
  296. package/dist/importer/native/importer.d.ts.map +1 -0
  297. package/dist/importer/native/importer.js +170 -0
  298. package/dist/importer/native/importer.js.map +1 -0
  299. package/dist/importer/native/index.d.ts +7 -0
  300. package/dist/importer/native/index.d.ts.map +1 -0
  301. package/dist/importer/native/index.js +7 -0
  302. package/dist/importer/native/index.js.map +1 -0
  303. package/dist/importer/native/update.d.ts +5 -4
  304. package/dist/importer/native/update.d.ts.map +1 -1
  305. package/dist/importer/native/update.js +4 -3
  306. package/dist/importer/native/update.js.map +1 -1
  307. package/dist/importer/native/update_template.d.ts +12 -0
  308. package/dist/importer/native/update_template.d.ts.map +1 -0
  309. package/dist/importer/native/update_template.js +19 -0
  310. package/dist/importer/native/update_template.js.map +1 -0
  311. package/dist/importer/odt/citations.d.ts +7 -27
  312. package/dist/importer/odt/citations.d.ts.map +1 -1
  313. package/dist/importer/odt/citations.js +0 -22
  314. package/dist/importer/odt/citations.js.map +1 -1
  315. package/dist/importer/odt/convert.d.ts +53 -237
  316. package/dist/importer/odt/convert.d.ts.map +1 -1
  317. package/dist/importer/odt/convert.js +162 -138
  318. package/dist/importer/odt/convert.js.map +1 -1
  319. package/dist/importer/odt/index.d.ts +30 -0
  320. package/dist/importer/odt/index.d.ts.map +1 -0
  321. package/dist/importer/odt/index.js +124 -0
  322. package/dist/importer/odt/index.js.map +1 -0
  323. package/dist/importer/pandoc/convert.d.ts +25 -77
  324. package/dist/importer/pandoc/convert.d.ts.map +1 -1
  325. package/dist/importer/pandoc/convert.js +65 -52
  326. package/dist/importer/pandoc/convert.js.map +1 -1
  327. package/dist/importer/pandoc/helpers.d.ts +4 -3
  328. package/dist/importer/pandoc/helpers.d.ts.map +1 -1
  329. package/dist/importer/pandoc/helpers.js +24 -26
  330. package/dist/importer/pandoc/helpers.js.map +1 -1
  331. package/dist/importer/pandoc/index.d.ts +31 -0
  332. package/dist/importer/pandoc/index.d.ts.map +1 -0
  333. package/dist/importer/pandoc/index.js +114 -0
  334. package/dist/importer/pandoc/index.js.map +1 -0
  335. package/dist/importer/registry.d.ts +21 -0
  336. package/dist/importer/registry.d.ts.map +1 -0
  337. package/dist/importer/registry.js +41 -0
  338. package/dist/importer/registry.js.map +1 -0
  339. package/dist/importer/zip_analyzer.d.ts +27 -21
  340. package/dist/importer/zip_analyzer.d.ts.map +1 -1
  341. package/dist/importer/zip_analyzer.js +10 -5
  342. package/dist/importer/zip_analyzer.js.map +1 -1
  343. package/dist/mathlive/opf_includes.d.ts +1 -1
  344. package/dist/mathlive/opf_includes.d.ts.map +1 -1
  345. package/dist/mathlive/opf_includes.js.map +1 -1
  346. package/dist/schema/common/annotate.d.ts +37 -49
  347. package/dist/schema/common/annotate.d.ts.map +1 -1
  348. package/dist/schema/common/annotate.js +2 -2
  349. package/dist/schema/common/annotate.js.map +1 -1
  350. package/dist/schema/common/base.d.ts +63 -81
  351. package/dist/schema/common/base.d.ts.map +1 -1
  352. package/dist/schema/common/base.js.map +1 -1
  353. package/dist/schema/common/citation.d.ts +23 -22
  354. package/dist/schema/common/citation.d.ts.map +1 -1
  355. package/dist/schema/common/citation.js +4 -5
  356. package/dist/schema/common/citation.js.map +1 -1
  357. package/dist/schema/common/equation.d.ts +13 -14
  358. package/dist/schema/common/equation.d.ts.map +1 -1
  359. package/dist/schema/common/equation.js +1 -1
  360. package/dist/schema/common/equation.js.map +1 -1
  361. package/dist/schema/common/figure.d.ts +72 -93
  362. package/dist/schema/common/figure.d.ts.map +1 -1
  363. package/dist/schema/common/figure.js +11 -9
  364. package/dist/schema/common/figure.js.map +1 -1
  365. package/dist/schema/common/heading.d.ts +8 -32
  366. package/dist/schema/common/heading.d.ts.map +1 -1
  367. package/dist/schema/common/heading.js +2 -2
  368. package/dist/schema/common/heading.js.map +1 -1
  369. package/dist/schema/common/index.d.ts +2 -2
  370. package/dist/schema/common/index.d.ts.map +1 -1
  371. package/dist/schema/common/index.js.map +1 -1
  372. package/dist/schema/common/list.d.ts +52 -72
  373. package/dist/schema/common/list.d.ts.map +1 -1
  374. package/dist/schema/common/list.js +3 -3
  375. package/dist/schema/common/list.js.map +1 -1
  376. package/dist/schema/common/reference.d.ts +51 -59
  377. package/dist/schema/common/reference.d.ts.map +1 -1
  378. package/dist/schema/common/reference.js +5 -5
  379. package/dist/schema/common/reference.js.map +1 -1
  380. package/dist/schema/common/table.d.ts +59 -75
  381. package/dist/schema/common/table.d.ts.map +1 -1
  382. package/dist/schema/common/table.js +3 -2
  383. package/dist/schema/common/table.js.map +1 -1
  384. package/dist/schema/common/track.d.ts +83 -97
  385. package/dist/schema/common/track.d.ts.map +1 -1
  386. package/dist/schema/common/track.js +18 -17
  387. package/dist/schema/common/track.js.map +1 -1
  388. package/dist/schema/convert.d.ts +2 -2
  389. package/dist/schema/convert.d.ts.map +1 -1
  390. package/dist/schema/convert.js +2 -2
  391. package/dist/schema/convert.js.map +1 -1
  392. package/dist/schema/document/content.d.ts +95 -122
  393. package/dist/schema/document/content.d.ts.map +1 -1
  394. package/dist/schema/document/content.js +9 -9
  395. package/dist/schema/document/content.js.map +1 -1
  396. package/dist/schema/document/index.d.ts +173 -257
  397. package/dist/schema/document/index.d.ts.map +1 -1
  398. package/dist/schema/document/index.js.map +1 -1
  399. package/dist/schema/document/structure.d.ts +149 -258
  400. package/dist/schema/document/structure.d.ts.map +1 -1
  401. package/dist/schema/document/structure.js +2 -2
  402. package/dist/schema/document/structure.js.map +1 -1
  403. package/dist/schema/export.d.ts +4 -877
  404. package/dist/schema/export.d.ts.map +1 -1
  405. package/dist/schema/export.js +1 -0
  406. package/dist/schema/export.js.map +1 -1
  407. package/dist/schema/footnotes.d.ts +110 -155
  408. package/dist/schema/footnotes.d.ts.map +1 -1
  409. package/dist/schema/footnotes.js +4 -2
  410. package/dist/schema/footnotes.js.map +1 -1
  411. package/dist/schema/footnotes_convert.d.ts +3 -3
  412. package/dist/schema/footnotes_convert.d.ts.map +1 -1
  413. package/dist/schema/footnotes_convert.js +10 -6
  414. package/dist/schema/footnotes_convert.js.map +1 -1
  415. package/dist/schema/i18n.d.ts +3 -534
  416. package/dist/schema/i18n.d.ts.map +1 -1
  417. package/dist/schema/i18n.js +1 -0
  418. package/dist/schema/i18n.js.map +1 -1
  419. package/dist/schema/index.d.ts +1 -1
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js.map +1 -1
  422. package/dist/schema/mini_json.d.ts +3 -4
  423. package/dist/schema/mini_json.d.ts.map +1 -1
  424. package/dist/schema/mini_json.js +2 -0
  425. package/dist/schema/mini_json.js.map +1 -1
  426. package/dist/schema/text.d.ts +2 -1
  427. package/dist/schema/text.d.ts.map +1 -1
  428. package/dist/schema/text.js +1 -1
  429. package/dist/schema/text.js.map +1 -1
  430. package/dist/types.d.ts +167 -8
  431. package/dist/types.d.ts.map +1 -1
  432. package/package.json +24 -1
  433. package/src/bibliography/{common.js → common.ts} +15 -12
  434. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  435. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  436. package/src/citations/{format.js → format.ts} +80 -24
  437. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  438. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  439. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  440. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  441. package/src/exporter/docx/images.ts +128 -0
  442. package/src/exporter/docx/{index.js → index.ts} +48 -25
  443. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  444. package/src/exporter/docx/{math.js → math.ts} +29 -9
  445. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  446. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  447. package/src/exporter/docx/{render.js → render.ts} +124 -87
  448. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  449. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  450. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  451. package/src/exporter/epub/{index.js → index.ts} +44 -15
  452. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  453. package/src/exporter/epub/{tools.js → tools.ts} +31 -25
  454. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  455. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  456. package/src/exporter/html/{index.js → index.ts} +63 -29
  457. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  458. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  459. package/src/exporter/jats/bibliography.ts +199 -0
  460. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  461. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  462. package/src/exporter/jats/index.ts +132 -0
  463. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  464. package/src/exporter/jats/{text.js → text.ts} +8 -6
  465. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  466. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  467. package/src/exporter/latex/{index.js → index.ts} +27 -12
  468. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  469. package/src/exporter/native/copy.ts +231 -0
  470. package/src/exporter/native/file.ts +65 -0
  471. package/src/exporter/native/index.ts +4 -0
  472. package/src/exporter/native/revision.ts +76 -0
  473. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  474. package/src/exporter/native/zip.ts +85 -0
  475. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  476. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  477. package/src/exporter/odt/images.ts +135 -0
  478. package/src/exporter/odt/{index.js → index.ts} +49 -27
  479. package/src/exporter/odt/{math.js → math.ts} +38 -9
  480. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  481. package/src/exporter/odt/{render.js → render.ts} +89 -60
  482. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  483. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  484. package/src/exporter/odt/{track.js → track.ts} +22 -6
  485. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  486. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  487. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  488. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  489. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  490. package/src/exporter/print/{index.js → index.ts} +38 -19
  491. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  492. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  493. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  494. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  495. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  496. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  497. package/src/global.d.ts +2 -0
  498. package/src/importer/citations.ts +116 -0
  499. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  500. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  501. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  502. package/src/importer/docx/index.ts +124 -0
  503. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  504. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  505. package/src/importer/native/extract_template.ts +83 -0
  506. package/src/importer/native/file.ts +282 -0
  507. package/src/importer/native/get_images.ts +82 -0
  508. package/src/importer/native/importer.ts +244 -0
  509. package/src/importer/native/index.ts +6 -0
  510. package/src/importer/native/{update.js → update.ts} +13 -5
  511. package/src/importer/native/update_template.ts +32 -0
  512. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  513. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  514. package/src/importer/odt/index.ts +202 -0
  515. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  516. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  517. package/src/importer/pandoc/index.ts +171 -0
  518. package/src/importer/registry.ts +69 -0
  519. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  520. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  521. package/src/modules.d.ts +40 -0
  522. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  523. package/src/schema/common/{base.js → base.ts} +12 -10
  524. package/src/schema/common/{citation.js → citation.ts} +17 -8
  525. package/src/schema/common/{equation.js → equation.ts} +6 -4
  526. package/src/schema/common/{figure.js → figure.ts} +43 -23
  527. package/src/schema/common/{heading.js → heading.ts} +7 -5
  528. package/src/schema/common/{list.js → list.ts} +15 -13
  529. package/src/schema/common/{reference.js → reference.ts} +14 -12
  530. package/src/schema/common/{table.js → table.ts} +16 -14
  531. package/src/schema/common/{track.js → track.ts} +42 -31
  532. package/src/schema/{convert.js → convert.ts} +6 -2
  533. package/src/schema/document/{content.js → content.ts} +22 -20
  534. package/src/schema/document/{structure.js → structure.ts} +15 -9
  535. package/src/schema/{export.js → export.ts} +4 -2
  536. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  537. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  538. package/src/schema/{i18n.js → i18n.ts} +7 -1
  539. package/src/schema/{mini_json.js → mini_json.ts} +11 -12
  540. package/src/schema/{text.js → text.ts} +6 -2
  541. package/src/types.ts +185 -7
  542. package/src/exporter/docx/images.js +0 -101
  543. package/src/exporter/jats/bibliography.js +0 -183
  544. package/src/exporter/jats/index.js +0 -92
  545. package/src/exporter/odt/images.js +0 -115
  546. package/src/importer/citations.js +0 -129
  547. package/src/importer/native/get_images.js +0 -76
  548. /package/src/schema/common/{index.js → index.ts} +0 -0
  549. /package/src/schema/document/{index.js → index.ts} +0 -0
  550. /package/src/schema/{index.js → index.ts} +0 -0
@@ -1,9 +1,11 @@
1
1
  import download from "downloadjs"
2
2
 
3
3
  import {shortFileTitle} from "fwtoolkit"
4
+ import type {BibDB, CSL, ExportDoc, FidusNode, ImageDB} from "../../types.js"
4
5
  import {fixTables, removeHidden, textContent} from "../tools/doc_content.js"
5
6
  import {createSlug} from "../tools/file.js"
6
- import {XmlZip} from "../tools/xml_zip.js"
7
+ import type {XmlZip} from "../tools/xml_zip.js"
8
+ import {XmlZip as XmlZipImpl} from "../tools/xml_zip.js"
7
9
  import {DOCXExporterCitations} from "./citations.js"
8
10
  import {DOCXExporterComments} from "./comments.js"
9
11
  import {DOCXExporterFootnotes} from "./footnotes.js"
@@ -29,23 +31,39 @@ TODO:
29
31
  */
30
32
 
31
33
  export class DOCXExporter {
32
- constructor(doc, templateUrl, bibDB, imageDB, csl) {
34
+ doc: ExportDoc
35
+ templateUrl: string
36
+ bibDB: BibDB
37
+ imageDB: ImageDB
38
+ csl: CSL
39
+
40
+ docTitle: string
41
+ mimeType: string
42
+ docContent: any
43
+
44
+ constructor(
45
+ doc: ExportDoc,
46
+ templateUrl: string,
47
+ bibDB: BibDB,
48
+ imageDB: ImageDB,
49
+ csl: CSL
50
+ ) {
33
51
  this.doc = doc
34
52
  this.templateUrl = templateUrl
35
53
  this.bibDB = bibDB
36
54
  this.imageDB = imageDB
37
55
  this.csl = csl
38
56
 
39
- this.docTitle = shortFileTitle(this.doc.title, this.doc.path)
57
+ this.docTitle = shortFileTitle(this.doc.title, this.doc.path || "")
40
58
  this.mimeType =
41
59
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
42
60
  this.docContent = moveFootnoteComments(
43
- fixTables(removeHidden(this.doc.content))
61
+ fixTables(removeHidden(this.doc.content) as FidusNode)
44
62
  )
45
63
  }
46
64
 
47
- init() {
48
- const xml = new XmlZip(this.templateUrl, this.mimeType)
65
+ init(): Promise<void> {
66
+ const xml: XmlZip = new XmlZipImpl(this.templateUrl, this.mimeType)
49
67
 
50
68
  const tables = new DOCXExporterTables(xml)
51
69
  const math = new DOCXExporterMath(xml)
@@ -101,7 +119,7 @@ export class DOCXExporter {
101
119
 
102
120
  const comments = new DOCXExporterComments(
103
121
  this.docContent,
104
- this.doc.comments,
122
+ this.doc.comments || {},
105
123
  xml,
106
124
  rels,
107
125
  richtext
@@ -133,7 +151,7 @@ export class DOCXExporter {
133
151
  .then(blob => this.download(blob))
134
152
  }
135
153
 
136
- download(blob) {
154
+ download(blob: Blob): void {
137
155
  return download(
138
156
  blob,
139
157
  createSlug(this.docTitle) + ".docx",
@@ -141,16 +159,16 @@ export class DOCXExporter {
141
159
  )
142
160
  }
143
161
 
144
- getBaseMetadata() {
162
+ getBaseMetadata(): any {
145
163
  const contributors = this.docContent.content.reduce(
146
- (contributors, part) => {
164
+ (contributors: any[], part: any) => {
147
165
  if (
148
166
  part.type === "contributors_part" &&
149
167
  part.attrs.metadata &&
150
168
  part.content
151
169
  ) {
152
170
  return contributors.concat(
153
- part.content.map(node => ({
171
+ part.content.map((node: any) => ({
154
172
  ...node.attrs,
155
173
  role: part.attrs.metadata
156
174
  }))
@@ -162,21 +180,26 @@ export class DOCXExporter {
162
180
  []
163
181
  )
164
182
  return {
165
- authors: contributors.filter(c => c.role === "authors"),
183
+ authors: contributors.filter((c: any) => c.role === "authors"),
166
184
  contributors,
167
- keywords: this.docContent.content.reduce((keywords, part) => {
168
- if (
169
- part.type === "tags_part" &&
170
- part.attrs.metadata === "keywords" &&
171
- part.content
172
- ) {
173
- return keywords.concat(
174
- part.content.map(keywordNode => keywordNode.attrs.tag)
175
- )
176
- } else {
177
- return keywords
178
- }
179
- }, []),
185
+ keywords: this.docContent.content.reduce(
186
+ (keywords: string[], part: any) => {
187
+ if (
188
+ part.type === "tags_part" &&
189
+ part.attrs.metadata === "keywords" &&
190
+ part.content
191
+ ) {
192
+ return keywords.concat(
193
+ part.content.map(
194
+ (keywordNode: any) => keywordNode.attrs.tag
195
+ )
196
+ )
197
+ } else {
198
+ return keywords
199
+ }
200
+ },
201
+ []
202
+ ),
180
203
  title: textContent(this.docContent.content[0]),
181
204
  language: this.doc.settings.language,
182
205
  citationStyle: this.doc.settings.citationstyle
@@ -1,4 +1,8 @@
1
1
  import {descendantNodes} from "../tools/doc_content.js"
2
+ import type {FidusNode} from "../../types.js"
3
+ import type {XMLElement} from "../tools/xml.js"
4
+ import type {XmlZip} from "../tools/xml_zip.js"
5
+ import type {DOCXExporterRels} from "./rels.js"
2
6
 
3
7
  const DEFAULT_LISTPARAGRAPH_XML = `
4
8
  <w:style w:type="paragraph" w:styleId="ListParagraph">
@@ -19,56 +23,68 @@ const DEFAULT_NUMBERING_XML = `<?xml version="1.0" encoding="UTF-8" standalone="
19
23
  </w:numbering>`
20
24
 
21
25
  export class DOCXExporterLists {
22
- constructor(docContent, xml, rels) {
26
+ docContent: FidusNode
27
+ xml: XmlZip
28
+ rels: DOCXExporterRels
29
+ useBulletList: boolean
30
+ usedNumberedList: number[]
31
+ styleXML: XMLElement | null
32
+ numberingXML: XMLElement | null
33
+ abstractNumIdCounter: number
34
+ numIdCounter: number
35
+ // We only need one bulletType for all bullet lists, but a new
36
+ // numberedType for each numbered list so that the numbering starts in 1
37
+ // each time.
38
+ bulletType: number | false
39
+ bulletAbstractType: number | undefined
40
+ numberFormat: string | null
41
+ numberedTypes: number[]
42
+ numberedAbstractType: number | undefined
43
+ styleFilePath: string
44
+ numberingFilePath: string
45
+ ctFilePath: string
46
+ ctXML: XMLElement | null
47
+
48
+ constructor(docContent: FidusNode, xml: XmlZip, rels: DOCXExporterRels) {
23
49
  this.docContent = docContent
24
50
  this.xml = xml
25
51
  this.rels = rels
26
52
  this.useBulletList = false
27
53
  this.usedNumberedList = []
28
- this.styleXML = false
29
- this.numberingXML = false
54
+ this.styleXML = null
55
+ this.numberingXML = null
30
56
  this.abstractNumIdCounter = 0
31
57
  this.numIdCounter = 0
32
- // We only need one bulletType for all bullet lists, but a new
33
- // numberedType for each numbered list so that the numbering starts in 1
34
- // each time.
35
58
  this.bulletType = false
36
59
  this.numberFormat = "decimal"
37
60
  this.numberedTypes = []
38
61
  this.styleFilePath = "word/styles.xml"
39
62
  this.numberingFilePath = "word/numbering.xml"
40
63
  this.ctFilePath = "[Content_Types].xml"
64
+ this.ctXML = null
41
65
  }
42
66
 
43
- init() {
67
+ init(): Promise<void> | Promise<undefined> {
44
68
  this.findLists()
45
69
  if (this.usedNumberedList.length > 0 || this.useBulletList) {
46
- const p = []
47
-
48
- p.push(
70
+ const p: Array<Promise<void>> = [
49
71
  new Promise(resolve => {
50
72
  this.initCt().then(() => resolve())
51
- })
52
- )
53
-
54
- p.push(
73
+ }),
55
74
  new Promise(resolve => {
56
75
  this.addNumberingXml().then(() => resolve())
57
- })
58
- )
59
-
60
- p.push(
76
+ }),
61
77
  new Promise(resolve => {
62
78
  this.addListParagraphStyle().then(() => resolve())
63
79
  })
64
- )
65
- return Promise.all(p)
80
+ ]
81
+ return Promise.all(p).then(() => undefined)
66
82
  } else {
67
83
  return Promise.resolve()
68
84
  }
69
85
  }
70
86
 
71
- initCt() {
87
+ initCt(): Promise<void> {
72
88
  return this.xml.getXml(this.ctFilePath).then(ctXML => {
73
89
  this.ctXML = ctXML
74
90
  this.addRelsToCt()
@@ -76,29 +92,32 @@ export class DOCXExporterLists {
76
92
  })
77
93
  }
78
94
 
79
- addRelsToCt() {
95
+ addRelsToCt(): void {
96
+ if (!this.ctXML) {
97
+ return
98
+ }
80
99
  const override = this.ctXML.query("Override", {
81
100
  PartName: `/${this.numberingFilePath}`
82
101
  })
83
102
  if (!override) {
84
103
  const types = this.ctXML.query("Types")
85
- types.appendXML(
104
+ types?.appendXML(
86
105
  `<Override PartName="/${this.numberingFilePath}" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>`
87
106
  )
88
107
  }
89
108
  }
90
109
 
91
- findLists() {
110
+ findLists(): void {
92
111
  descendantNodes(this.docContent).forEach(node => {
93
112
  if (node.type === "bullet_list") {
94
113
  this.useBulletList = true
95
114
  } else if (node.type === "ordered_list") {
96
- this.usedNumberedList.push(node.attrs.order)
115
+ this.usedNumberedList.push(node.attrs?.order as number)
97
116
  }
98
117
  })
99
118
  }
100
119
 
101
- addNumberingXml() {
120
+ addNumberingXml(): Promise<void> {
102
121
  return this.xml
103
122
  .getXml(this.numberingFilePath, DEFAULT_NUMBERING_XML)
104
123
  .then(numberingXML => {
@@ -109,20 +128,23 @@ export class DOCXExporterLists {
109
128
  })
110
129
  }
111
130
 
112
- addListParagraphStyle() {
131
+ addListParagraphStyle(): Promise<void> {
113
132
  return this.xml.getXml(this.styleFilePath).then(styleXML => {
114
133
  this.styleXML = styleXML
115
134
  if (
116
135
  !this.styleXML.query("w:style", {"w:styleId": "ListParagraph"})
117
136
  ) {
118
137
  const stylesEl = this.styleXML.query("w:styles")
119
- stylesEl.appendXML(DEFAULT_LISTPARAGRAPH_XML)
138
+ stylesEl?.appendXML(DEFAULT_LISTPARAGRAPH_XML)
120
139
  }
121
140
  return Promise.resolve()
122
141
  })
123
142
  }
124
143
 
125
- addUsedListTypes() {
144
+ addUsedListTypes(): void {
145
+ if (!this.numberingXML) {
146
+ return
147
+ }
126
148
  const allAbstractNum = this.numberingXML.queryAll("w:abstractNum")
127
149
  allAbstractNum.forEach(abstractNum => {
128
150
  // We check the format for the lowest level list and use the first
@@ -130,18 +152,24 @@ export class DOCXExporterLists {
130
152
  // This means that if a list is defined using anything else than
131
153
  // bullets, it will be accepted as the format of
132
154
  // the numeric list.
133
- const levelZeroFormat = abstractNum
155
+ const levelZeroFormatEl = abstractNum
134
156
  .query("w:lvl", {"w:ilvl": "0"})
135
- .query("w:numFmt")
136
- .getAttribute("w:val")
157
+ ?.query("w:numFmt")
158
+ const levelZeroFormat = levelZeroFormatEl
159
+ ? String(levelZeroFormatEl.getAttribute("w:val"))
160
+ : ""
137
161
  const abstractNumId = Number.parseInt(
138
- abstractNum.getAttribute("w:abstractNumId")
162
+ String(abstractNum.getAttribute("w:abstractNumId"))
139
163
  )
140
164
  if (levelZeroFormat === "bullet" && !this.bulletAbstractType) {
141
- const numEl = this.numberingXML.query("w:abstractNumId", {
142
- "w:val": abstractNumId
143
- }).parentElement
144
- const numId = Number.parseInt(numEl.getAttribute("w:numId"))
165
+ const numEl = this.numberingXML!
166
+ .query("w:abstractNumId", {
167
+ "w:val": abstractNumId
168
+ })
169
+ ?.parentElement
170
+ const numId = numEl
171
+ ? Number.parseInt(String(numEl.getAttribute("w:numId")))
172
+ : NaN
145
173
  this.bulletType = numId
146
174
  } else if (levelZeroFormat !== "bullet" && !this.numberFormat) {
147
175
  this.numberFormat = levelZeroFormat
@@ -152,7 +180,7 @@ export class DOCXExporterLists {
152
180
  })
153
181
  const allNum = this.numberingXML.queryAll("w:num")
154
182
  allNum.forEach(numEl => {
155
- const numId = Number.parseInt(numEl.getAttribute("w:val"))
183
+ const numId = Number.parseInt(String(numEl.getAttribute("w:val")))
156
184
  if (this.numIdCounter < numId) {
157
185
  this.numIdCounter = numId
158
186
  }
@@ -177,17 +205,20 @@ export class DOCXExporterLists {
177
205
  }
178
206
  }
179
207
 
180
- getBulletType() {
208
+ getBulletType(): number | false {
181
209
  return this.bulletType
182
210
  }
183
211
 
184
- getNumberedType() {
212
+ getNumberedType(): number | undefined {
185
213
  return this.numberedTypes.shift()
186
214
  }
187
215
 
188
- addBulletNumType(numId, abstractNumId) {
216
+ addBulletNumType(numId: number, abstractNumId: number): void {
217
+ if (!this.numberingXML) {
218
+ return
219
+ }
189
220
  const numberingEl = this.numberingXML.query("w:numbering")
190
- numberingEl.appendXML(`
221
+ numberingEl?.appendXML(`
191
222
  <w:abstractNum w:abstractNumId="${abstractNumId}" w15:restartNumberingAfterBreak="0">
192
223
  <w:nsid w:val="3620195A" />
193
224
  <w:multiLevelType w:val="hybridMultilevel" />
@@ -200,6 +231,9 @@ export class DOCXExporterLists {
200
231
  const newAbstractNum = this.numberingXML.query("w:abstractNum", {
201
232
  "w:abstractNumId": String(abstractNumId)
202
233
  })
234
+ if (!newAbstractNum) {
235
+ return
236
+ }
203
237
  // Definition seem to always define 9 levels (0-8).
204
238
  for (let level = 0; level < 9; level++) {
205
239
  newAbstractNum.appendXML(`
@@ -219,20 +253,26 @@ export class DOCXExporterLists {
219
253
  }
220
254
  }
221
255
 
222
- addNumberedNumType(numId, start) {
256
+ addNumberedNumType(numId: number, start: number): void {
223
257
  this.abstractNumIdCounter++
224
258
  this.addNumberedAbstractNumType(this.abstractNumIdCounter, start)
259
+ if (!this.numberingXML) {
260
+ return
261
+ }
225
262
  const numberingEl = this.numberingXML.query("w:numbering")
226
- numberingEl.appendXML(`
263
+ numberingEl?.appendXML(`
227
264
  <w:num w:numId="${numId}">
228
265
  <w:abstractNumId w:val="${this.abstractNumIdCounter}" />
229
266
  </w:num>
230
267
  `)
231
268
  }
232
269
 
233
- addNumberedAbstractNumType(abstractNumId, start) {
270
+ addNumberedAbstractNumType(abstractNumId: number, start: number): void {
271
+ if (!this.numberingXML) {
272
+ return
273
+ }
234
274
  const numberingEl = this.numberingXML.query("w:numbering")
235
- numberingEl.appendXML(`
275
+ numberingEl?.appendXML(`
236
276
  <w:abstractNum w:abstractNumId="${abstractNumId}" w15:restartNumberingAfterBreak="0">
237
277
  <w:nsid w:val="7F6635F3" />
238
278
  <w:multiLevelType w:val="hybridMultilevel" />
@@ -242,6 +282,9 @@ export class DOCXExporterLists {
242
282
  const newAbstractNum = this.numberingXML.query("w:abstractNum", {
243
283
  "w:abstractNumId": String(abstractNumId)
244
284
  })
285
+ if (!newAbstractNum) {
286
+ return
287
+ }
245
288
  // Definition seem to always define 9 levels (0-8).
246
289
  for (let level = 0; level < 9; level++) {
247
290
  newAbstractNum.appendXML(`
@@ -1,7 +1,9 @@
1
1
  import {mml2omml} from "mathml2omml"
2
2
 
3
+ import type {XmlZip} from "../tools/xml_zip.js"
4
+
3
5
  // Not entirely sure if we need this font here. This is included whenever Word
4
- // itself adds a formula, but our ooml doesn't refer to the font, so it may be pointless.
6
+ // itself adds a formula, but our omml doesn't refer to the font, so it may be pointless.
5
7
  const CAMBRIA_MATH_FONT_DECLARATION = `
6
8
  <w:font w:name="Cambria Math">
7
9
  <w:panose1 w:val="02040503050406030204" />
@@ -12,35 +14,53 @@ const CAMBRIA_MATH_FONT_DECLARATION = `
12
14
  </w:font>`
13
15
 
14
16
  export class DOCXExporterMath {
15
- constructor(xml) {
17
+ xml: XmlZip
18
+ fontTablesXML: import("../tools/xml.js").XMLElement | false
19
+ addedCambriaMath: boolean
20
+ domParser: DOMParser
21
+ mathLive: typeof import("mathlive") | null
22
+
23
+ constructor(xml: XmlZip) {
16
24
  this.xml = xml
17
- this.fontTableXML = false
25
+ this.fontTablesXML = false
18
26
  this.addedCambriaMath = false
19
27
  this.domParser = new DOMParser()
28
+ this.mathLive = null
20
29
  }
21
30
 
22
- init() {
31
+ init(): Promise<typeof import("mathlive")> {
23
32
  return this.xml
24
33
  .getXml("word/fontTable.xml")
25
34
  .then(fontTablesXML => {
26
35
  this.fontTablesXML = fontTablesXML
27
36
  return import("mathlive")
28
37
  })
29
- .then(MathLive => (this.mathLive = MathLive))
38
+ .then(MathLive => {
39
+ this.mathLive = MathLive
40
+ return MathLive
41
+ })
30
42
  }
31
43
 
32
- latexToMathML(latex) {
44
+ latexToMathML(latex: string): string {
45
+ if (!this.mathLive) {
46
+ throw new Error("MathLive not initialised")
47
+ }
33
48
  return this.mathLive.convertLatexToMathMl(latex)
34
49
  }
35
50
 
36
- getOmml(latex) {
51
+ getOmml(latex: string): string {
52
+ if (!this.fontTablesXML) {
53
+ throw new Error("Font table XML not loaded")
54
+ }
37
55
  if (!this.addedCambriaMath) {
38
56
  const fontsEl = this.fontTablesXML.query("w:fonts")
57
+ if (!fontsEl) {
58
+ throw new Error("No w:fonts element found in font table")
59
+ }
39
60
  fontsEl.appendXML(CAMBRIA_MATH_FONT_DECLARATION)
40
61
  this.addedCambriaMath = true
41
62
  }
42
63
  const mathmlString = `<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics>${this.latexToMathML(latex)}</semantics></math>`
43
- const ommlString = mml2omml(mathmlString)
44
- return ommlString
64
+ return mml2omml(mathmlString)
45
65
  }
46
66
  }