@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,101 +0,0 @@
1
- import {get} from "fwtoolkit"
2
- import {descendantNodes} from "../tools/doc_content.js"
3
- import {svg2png} from "../tools/svg.js"
4
-
5
- export class DOCXExporterImages {
6
- constructor(docContent, imageDB, xml, rels) {
7
- this.docContent = docContent
8
- this.imageDB = imageDB
9
- this.xml = xml
10
- this.rels = rels
11
-
12
- this.images = {}
13
- this.ctXML = false
14
- }
15
-
16
- init() {
17
- return this.xml.getXml("[Content_Types].xml").then(ctXML => {
18
- this.ctXML = ctXML
19
- return this.exportImages()
20
- })
21
- }
22
-
23
- // add an image to the list of files
24
- addImage(imgFileName, image) {
25
- const rId = this.rels.addImageRel(imgFileName)
26
- this.addContentType(imgFileName.split(".").pop())
27
- this.xml.addExtraFile(`word/media/${imgFileName}`, image)
28
- return rId
29
- }
30
-
31
- // add a global contenttype declaration for an image type (if needed)
32
- addContentType(fileEnding) {
33
- const types = this.ctXML.query("Types")
34
- const contentDec = types.query("Default", {Extension: fileEnding})
35
- if (!contentDec) {
36
- const string = `<Default ContentType="image/${fileEnding}" Extension="${fileEnding}"/>`
37
- types.appendXML(string)
38
- }
39
- }
40
-
41
- // Find all images used in file and add these to the export zip.
42
- // TODO: This will likely fail on image types docx doesn't support such as SVG.
43
- // Try out and fix.
44
- exportImages() {
45
- const usedImgs = []
46
- descendantNodes(this.docContent).forEach(node => {
47
- if (node.type === "image" && node.attrs.image !== false) {
48
- if (!usedImgs.includes(node.attrs.image)) {
49
- usedImgs.push(node.attrs.image)
50
- }
51
- }
52
- })
53
- return new Promise(resolveExportImages => {
54
- const p = []
55
- usedImgs.forEach(image => {
56
- const imgDBEntry = this.imageDB.db[image]
57
- p.push(
58
- get(imgDBEntry.image)
59
- .then(response => response.blob())
60
- .then(blob => {
61
- if (blob.type === "image/svg+xml") {
62
- // DOCX doesn't support SVG. Convert to PNG.
63
- return svg2png(blob).then(
64
- ({blob: pngBlob, width, height}) => {
65
- const wImgId = this.addImage(
66
- imgDBEntry.image
67
- .split("/")
68
- .pop()
69
- .replace(/.svg$/g, ".png"),
70
- pngBlob
71
- )
72
- this.images[image] = {
73
- id: wImgId,
74
- width,
75
- height,
76
- title: imgDBEntry.title
77
- }
78
- }
79
- )
80
- } else {
81
- const wImgId = this.addImage(
82
- imgDBEntry.image.split("/").pop(),
83
- blob
84
- )
85
- this.images[image] = {
86
- id: wImgId,
87
- width: imgDBEntry.width,
88
- height: imgDBEntry.height,
89
- title: imgDBEntry.title
90
- }
91
- }
92
- })
93
- )
94
- })
95
-
96
- Promise.all(p).then(() => {
97
- resolveExportImages()
98
- })
99
- })
100
- }
101
- }
@@ -1,183 +0,0 @@
1
- import {escapeText} from "fwtoolkit"
2
- import {convertTexts} from "./text.js"
3
-
4
- // This list is based on values listed at https://jats.nlm.nih.gov/archiving/tag-library/1.2/attribute/publication-type.html
5
- // And the advice given here: https://jats4r.org/citations/#recommendation
6
- const PUBLICATION_TYPES = {
7
- article: "journal",
8
- "article-journal": "journal",
9
- "article-magazine": "journal",
10
- "article-newspaper": "journal",
11
- book: "book",
12
- bookinbook: "book",
13
- booklet: "book",
14
- chapter: "book",
15
- collection: "standard",
16
- dataset: "dataset",
17
- "entry-dictionary": "standard",
18
- "entry-encyclopedia": "standard",
19
- inbook: "book",
20
- incollection: "book",
21
- inproceedings: "standard",
22
- inreference: "standard",
23
- manual: "book",
24
- misc: "standard",
25
- mvbook: "book",
26
- mvcollection: "standard",
27
- mvproceedings: "book",
28
- mvreference: "standard",
29
- online: "standard",
30
- patent: "patent",
31
- periodical: "book",
32
- post: "standards",
33
- "post-weblog": "standard",
34
- proceedings: "book",
35
- reference: "standard",
36
- report: "report",
37
- review: "review",
38
- suppbook: "book",
39
- suppcollection: "book",
40
- suppperiodical: "journal",
41
- thesis: "standard",
42
- unpublished: "standard"
43
- }
44
-
45
- export function jatsBib(bib, id) {
46
- let start = "",
47
- end = ""
48
- start += `<ref id="ref-${id}">`
49
- end = "</ref>" + end
50
- // Type
51
- const publicationType = PUBLICATION_TYPES[bib.bib_type] ?? "standard"
52
- start += `<element-citation publication-type="${publicationType}">`
53
- end = "</element-citation>" + end
54
-
55
- // authors
56
- if (bib.fields.author && bib.fields.author.length) {
57
- start += `<person-group person-group-type="author">${bib.fields.author
58
- .map(author => {
59
- if (author.literal) {
60
- return `<collab>${convertTexts(author.literal)}</collab>`
61
- }
62
- let nameStart = `<name><surname>${convertTexts(author.family)}</surname> <given-names>${convertTexts(author.given)}</given-names>`
63
- if (author.prefix && author.prefix.length) {
64
- nameStart += ` <prefix>${convertTexts(author.prefix)}</prefix>`
65
- }
66
- if (author.suffix && author.suffix.length) {
67
- nameStart += ` <suffix>${convertTexts(author.suffix)}</suffix>`
68
- }
69
- const nameEnd = "</name>"
70
- return nameStart + nameEnd
71
- })
72
- .join(", ")}</person-group>`
73
- }
74
-
75
- // title && container title
76
- if (bib.fields.title) {
77
- if (
78
- bib.fields.shortjournal ||
79
- bib.fields.booktitle ||
80
- bib.fields.journaltitle
81
- ) {
82
- start += `<source>${convertTexts(bib.fields.shortjournal || bib.fields.booktitle || bib.fields.journaltitle)}</source>`
83
- start += `<article-title>${convertTexts(bib.fields.title)}</article-title>`
84
- } else {
85
- start += `<source>${convertTexts(bib.fields.title)}</source>`
86
- }
87
- }
88
-
89
- // editors
90
- if (bib.fields.editor && bib.fields.editor.length) {
91
- start += `<person-group person-group-type="editor">${bib.fields.editor
92
- .map(editor => {
93
- if (editor.literal) {
94
- return `<collab>${convertTexts(editor.literal)}</collab>`
95
- }
96
- let nameStart = `<name><surname>${convertTexts(editor.family)}</surname> <given-names>${convertTexts(editor.given)}</given-names>`
97
- const nameEnd = "</name>"
98
- if (editor.prefix && editor.prefix.length) {
99
- nameStart = `<prefix>${convertTexts(editor.prefix)}</prefix>`
100
- }
101
- if (editor.suffix && editor.suffix.length) {
102
- nameStart = `<suffix>${convertTexts(editor.suffix)}</suffix>`
103
- }
104
- return nameStart + nameEnd
105
- })
106
- .join(", ")}</person-group>`
107
- }
108
-
109
- // publisher
110
- if (bib.fields.publisher && bib.fields.publisher.length) {
111
- start += bib.fields.publisher
112
- .map(
113
- publisher =>
114
- `<publisher-name>${convertTexts(publisher)}</publisher-name>`
115
- )
116
- .join("")
117
- }
118
-
119
- // location
120
- if (bib.fields.location && bib.fields.location.length) {
121
- start += bib.fields.location
122
- .map(
123
- location =>
124
- `<publisher-loc>${convertTexts(location)}</publisher-loc>`
125
- )
126
- .join("")
127
- }
128
-
129
- // date
130
- if (bib.fields.date && bib.fields.date.length) {
131
- const date = bib.fields.date
132
- const dateParts = date.split("-")
133
- start += `<date iso-8601-date="${date}" date-type="published">${
134
- dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""
135
- }${
136
- dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""
137
- }<year>${dateParts[0]}</year></date>`
138
- }
139
-
140
- // volume
141
- if (bib.fields.volume && bib.fields.volume.length) {
142
- start += `<volume>${convertTexts(bib.fields.volume)}</volume>`
143
- }
144
-
145
- // issue
146
- if (bib.fields.issue && bib.fields.issue.length) {
147
- start += `<issue>${convertTexts(bib.fields.issue)}</issue>`
148
- }
149
-
150
- // pages
151
- if (bib.fields.pages && bib.fields.pages.length) {
152
- start += `<fpage>${convertTexts(bib.fields.pages[0][0])}</fpage>`
153
- start += `<lpage>${convertTexts(bib.fields.pages.slice(-1)[0].slice(-1)[0])}</lpage>`
154
- if (bib.fields.pages.length > 1) {
155
- start += `<page-range>${bib.fields.pages
156
- .map(pages => pages.map(page => convertTexts(page)).join("-"))
157
- .join(", ")}</page-range>`
158
- }
159
- }
160
-
161
- // doi
162
- if (bib.fields.doi && bib.fields.doi.length) {
163
- start += `<pub-id pub-id-type="doi">${escapeText(bib.fields.doi)}</pub-id>`
164
- }
165
-
166
- // url
167
- if (bib.fields.url && bib.fields.url.length) {
168
- start += `<ext-link ext-link-type="web" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${escapeText(bib.fields.url)}"/>`
169
- }
170
-
171
- // url date
172
- if (bib.fields.urldate && bib.fields.urldate.length) {
173
- const date = bib.fields.urldate
174
- const dateParts = date.split("-")
175
- start += `<date-in-citation content-type="access-date" iso-8601-date="${date}">${
176
- dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""
177
- }${
178
- dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""
179
- }<year>${dateParts[0]}</year></date-in-citation>`
180
- }
181
-
182
- return start + end
183
- }
@@ -1,92 +0,0 @@
1
- import download from "downloadjs"
2
- import pretty from "pretty"
3
-
4
- import {shortFileTitle} from "fwtoolkit"
5
- import {createSlug} from "../tools/file.js"
6
- import {ZipFileCreator} from "../tools/zip.js"
7
- import {JATSExporterConverter} from "./convert.js"
8
- import {
9
- articleTemplate,
10
- bookPartWrapperTemplate,
11
- darManifest
12
- } from "./templates.js"
13
- /*
14
- Exporter to JATS
15
- */
16
-
17
- export class JATSExporter {
18
- constructor(doc, bibDB, imageDB, csl, updated, type) {
19
- this.doc = doc
20
- this.docTitle = shortFileTitle(this.doc.title, this.doc.path)
21
- this.bibDB = bibDB
22
- this.imageDB = imageDB
23
- this.csl = csl
24
- this.updated = updated
25
- this.type = type // "article", "book-part-wrapper" (for documents) or "book" (for document collections)
26
-
27
- this.zipFileName = false
28
- this.textFiles = []
29
- this.httpFiles = []
30
- }
31
-
32
- init() {
33
- const fileFormat = this.type === "article" ? "jats" : "bits"
34
- this.zipFileName = `${createSlug(this.docTitle)}.${fileFormat}.zip`
35
- this.converter = new JATSExporterConverter(
36
- this.type,
37
- this.doc,
38
- this.csl,
39
- this.imageDB,
40
- this.bibDB
41
- )
42
- return this.converter.init().then(({front, body, back, imageIds}) => {
43
- const jats =
44
- this.type === "article"
45
- ? articleTemplate({front, body, back})
46
- : bookPartWrapperTemplate({front, body, back})
47
- this.textFiles.push({
48
- filename: "manuscript.xml",
49
- contents: pretty(jats, {ocd: true})
50
- })
51
- const images = imageIds.map(id => {
52
- const imageEntry = this.imageDB.db[id]
53
- return {
54
- title: imageEntry.title,
55
- filename: imageEntry.image.split("/").pop(),
56
- url: imageEntry.image
57
- }
58
- })
59
- this.textFiles.push({
60
- filename: "manifest.xml",
61
- contents: pretty(
62
- darManifest({
63
- title: this.docTitle,
64
- type: this.type,
65
- images
66
- }),
67
- {ocd: true}
68
- )
69
- })
70
- images.forEach(image => {
71
- this.httpFiles.push({filename: image.filename, url: image.url})
72
- })
73
-
74
- return this.createZip()
75
- })
76
- }
77
-
78
- createZip() {
79
- const zipper = new ZipFileCreator(
80
- this.textFiles,
81
- this.httpFiles,
82
- undefined,
83
- undefined,
84
- this.updated
85
- )
86
- return zipper.init().then(blob => this.download(blob))
87
- }
88
-
89
- download(blob) {
90
- return download(blob, this.zipFileName, "application/zip")
91
- }
92
- }
@@ -1,115 +0,0 @@
1
- import {get} from "fwtoolkit"
2
- import {descendantNodes} from "../tools/doc_content.js"
3
- import {svg2png} from "../tools/svg.js"
4
-
5
- export class ODTExporterImages {
6
- constructor(docContent, xml, imageDB) {
7
- this.docContent = docContent
8
- this.xml = xml
9
- this.imageDB = imageDB
10
- this.images = {}
11
- this.manifestXml = false
12
- }
13
-
14
- init() {
15
- return this.xml.getXml("META-INF/manifest.xml").then(manifestXml => {
16
- this.manifestXml = manifestXml
17
- return this.exportImages()
18
- })
19
- }
20
-
21
- // add an image to the list of files
22
- addImage(imgFileName, image) {
23
- imgFileName = this.addFileToManifest(imgFileName)
24
- this.xml.addExtraFile(`Pictures/${imgFileName}`, image)
25
- return imgFileName
26
- }
27
-
28
- // add a an image file to the manifest
29
- addFileToManifest(imgFileName) {
30
- const fileNameParts = imgFileName.split(".")
31
- const fileNameEnding = fileNameParts.pop()
32
- const fileNameStart = fileNameParts.join(".")
33
- const manifestEl = this.manifestXml.query("manifest:manifest")
34
- let imgManifest = manifestEl.query("manifest:file-entry", {
35
- "manifest:full-path": `Pictures/${imgFileName}`
36
- })
37
- let counter = 0
38
- while (imgManifest) {
39
- // Name exists already, we change the name until we get a file name not yet included in manifest.
40
- imgFileName = `${fileNameStart}_${counter++}.${fileNameEnding}`
41
- imgManifest = manifestEl.query("manifest:file-entry", {
42
- "manifest:full-path": `Pictures/${imgFileName}`
43
- })
44
- }
45
- const string = ` <manifest:file-entry manifest:full-path="Pictures/${imgFileName}" manifest:media-type="image/${fileNameEnding}"/>`
46
- manifestEl.appendXML(string)
47
- return imgFileName
48
- }
49
-
50
- // Find all images used in file and add these to the export zip.
51
- // TODO: This will likely fail on image types odt doesn't support such as
52
- // SVG. Try out and fix.
53
- exportImages() {
54
- const usedImgs = []
55
-
56
- descendantNodes(this.docContent).forEach(node => {
57
- if (node.type === "image" && node.attrs.image !== false) {
58
- if (!usedImgs.includes(node.attrs.image)) {
59
- usedImgs.push(node.attrs.image)
60
- }
61
- }
62
- })
63
-
64
- return new Promise(resolveExportImages => {
65
- const p = []
66
-
67
- usedImgs.forEach(image => {
68
- const imgDBEntry = this.imageDB.db[image]
69
- p.push(
70
- get(imgDBEntry.image)
71
- .then(response => response.blob())
72
- .then(blob => {
73
- const wImgId = this.addImage(
74
- imgDBEntry.image.split("/").pop(),
75
- blob
76
- )
77
- if (blob.type === "image/svg+xml") {
78
- // Add PNG version in addition to SVG
79
- return svg2png(blob).then(
80
- ({blob: pngBlob, width, height}) => {
81
- const pngWImgId = this.addImage(
82
- imgDBEntry.image
83
- .split("/")
84
- .pop()
85
- .replace(/.svg$/g, ".png"),
86
- pngBlob
87
- )
88
- this.images[image] = {
89
- id: pngWImgId,
90
- width,
91
- height,
92
- title: imgDBEntry.title,
93
- type: blob.type,
94
- svg: wImgId
95
- }
96
- }
97
- )
98
- } else {
99
- this.images[image] = {
100
- id: wImgId,
101
- width: imgDBEntry.width,
102
- height: imgDBEntry.height,
103
- title: imgDBEntry.title,
104
- type: blob.type,
105
- svg: false
106
- }
107
- }
108
- })
109
- )
110
- })
111
-
112
- Promise.all(p).then(() => resolveExportImages())
113
- })
114
- }
115
- }
@@ -1,129 +0,0 @@
1
- /**
2
- * Shared citation utilities for DOCX and ODT importers.
3
- *
4
- * Converts a CitationResult (from DocxCitationsParser or OdtCitationsParser
5
- * static methods) plus a BibDB (entries) into a Fidus Writer citation node,
6
- * and merges the new BibDB entries into the document bibliography.
7
- *
8
- * The `bibliography` object passed in is mutated in place: new entries are
9
- * appended with sequential numeric string keys ("1", "2", …).
10
- */
11
-
12
- /**
13
- * Given a BibDB returned by a static Citations parser call and the current
14
- * document bibliography, add every entry that is not yet present (matched by
15
- * entry_key) and return a mapping from entry_key → bibliography key string.
16
- *
17
- * @param {Object} entries BibDB (Record<number, EntryObject>) from parser
18
- * @param {Object} bibliography Fidus Writer bibliography (mutated in place)
19
- * @returns {Object} Map of entry_key → bibKey string
20
- */
21
- function mergeBibEntries(entries, bibliography, bibDB) {
22
- const keyMap = {}
23
-
24
- for (const entry of Object.values(entries)) {
25
- if (!entry || !entry.entry_key) {
26
- continue
27
- }
28
- const entryKey = entry.entry_key
29
-
30
- // Check whether this entry_key is already in the bibliography.
31
- const existing = Object.entries(bibliography).find(
32
- ([, bibEntry]) => bibEntry && bibEntry.entry_key === entryKey
33
- )
34
-
35
- if (existing) {
36
- keyMap[entryKey] = existing[0]
37
- } else {
38
- if (bibDB && Object.keys(entry.fields).length === 0) {
39
- // Jabref citations don't contain any fields. Look up values in bibDB instead
40
- const bibEntry = Object.values(bibDB.db).find(
41
- bibEntry => bibEntry && bibEntry.entry_key === entryKey
42
- )
43
- if (bibEntry) {
44
- entry.fields = JSON.parse(JSON.stringify(bibEntry.fields))
45
- entry.bib_type = bibEntry.bib_type
46
- }
47
- }
48
- // TODO: add for jabref citations - according to entry_key import from user
49
- // library if useExternalDB is true
50
- const bibKey = String(Object.keys(bibliography).length + 1)
51
- bibliography[bibKey] = entry
52
- keyMap[entryKey] = bibKey
53
- }
54
- }
55
-
56
- return keyMap
57
- }
58
-
59
- /**
60
- * Convert a CitationResult from a static DocxCitationsParser or
61
- * OdtCitationsParser call into a Fidus Writer citation node.
62
- *
63
- * The `bibliography` object is mutated in place to include any new entries.
64
- *
65
- * Each item in `metadata` (when `retrieveMetadata` was true) may carry:
66
- * - id : entry_key string identifying which entry this item refers to
67
- * - prefix : citation prefix text
68
- * - suffix : citation suffix / locator text (used as `locator`)
69
- * - locator : explicit locator string (preferred over suffix when present)
70
- * - authorOnly : boolean – render author name only (maps to "textcite")
71
- * - suppressAuthor : boolean – suppress author name (ignored, maps to default)
72
- * - authorYear : boolean – render author name and year (maps to "textcite")
73
- *
74
- * `format` on the returned citation node matches the Fidus Writer citation schema:
75
- * - "textcite" when authorOnly or authorYear is set on the (single) item (biblatex \textcite)
76
- * - "autocite" otherwise, including when suppressAuthor is set (biblatex \autocite)
77
- *
78
- * @param {Object} result CitationResult from a static parser method
79
- * @param {Object} bibliography Fidus Writer bibliography (mutated in place)
80
- * @returns {Object|null} ProseMirror citation node or null
81
- */
82
- export function citationResultToNode(result, bibliography, bibDB = false) {
83
- if (!result || !result.isCitation || !result.entries) {
84
- return null
85
- }
86
- const entries = result.entries
87
- const metadata = result.metadata || []
88
-
89
- if (Object.keys(entries).length === 0) {
90
- return null
91
- }
92
- const keyMap = mergeBibEntries(entries, bibliography, bibDB)
93
- // Build the references array from entries.
94
- //
95
- const references = Object.entries(entries).map(([_entryId, entry]) => {
96
- const entryKey = entry.entry_key
97
- const entryMetadata = metadata.find(meta => meta.entry_key === entryKey)
98
- return {
99
- id: keyMap[entryKey],
100
- prefix: entryMetadata?.prefix || "",
101
- locator: entryMetadata?.locator || entryMetadata?.suffix || ""
102
- }
103
- })
104
-
105
- if (references.length === 0) {
106
- return null
107
- }
108
-
109
- // Determine citation format from the first item's metadata flags.
110
- // "textcite" corresponds to biblatex's \textcite (author-in-text / authorYear).
111
- // Even authorOnly comes through as "textcite" since it's a similar concept.
112
- // Everything else, including suppressAuthor, falls back to "autocite".
113
- // TODO: When an authorOnly citation is followed directly by a suppressAuthor
114
- // citation, this would display the same as a single authorYear citation and
115
- // should be treated as such.
116
- const format =
117
- metadata.length === 1 &&
118
- (metadata[0].authorOnly || metadata[0].authorYear)
119
- ? "textcite"
120
- : "autocite"
121
-
122
- return {
123
- type: "citation",
124
- attrs: {
125
- format,
126
- references
127
- }
128
- }
129
- }