@fiduswriter/editor 0.1.20 → 0.1.22

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 (787) hide show
  1. package/README.md +69 -14
  2. package/dist/bibliography/tools.d.ts +14 -0
  3. package/dist/bibliography/tools.d.ts.map +1 -0
  4. package/dist/bibliography/tools.js +1 -1
  5. package/dist/bibliography/tools.js.map +1 -1
  6. package/dist/citations/index.d.ts +17 -0
  7. package/dist/citations/index.d.ts.map +1 -0
  8. package/dist/citations/index.js +22 -13
  9. package/dist/citations/index.js.map +1 -1
  10. package/dist/citations/render.d.ts +29 -0
  11. package/dist/citations/render.d.ts.map +1 -0
  12. package/dist/citations/render.js +25 -8
  13. package/dist/citations/render.js.map +1 -1
  14. package/dist/clipboard/copy/index.d.ts +2 -0
  15. package/dist/clipboard/copy/index.d.ts.map +1 -0
  16. package/dist/clipboard/copy/index.js.map +1 -1
  17. package/dist/clipboard/copy/schema.d.ts +4 -0
  18. package/dist/clipboard/copy/schema.d.ts.map +1 -0
  19. package/dist/clipboard/copy/schema.js +6 -5
  20. package/dist/clipboard/copy/schema.js.map +1 -1
  21. package/dist/clipboard/copy/serializers.d.ts +24 -0
  22. package/dist/clipboard/copy/serializers.d.ts.map +1 -0
  23. package/dist/clipboard/copy/serializers.js +19 -9
  24. package/dist/clipboard/copy/serializers.js.map +1 -1
  25. package/dist/clipboard/paste/fidus_writer.d.ts +7 -0
  26. package/dist/clipboard/paste/fidus_writer.d.ts.map +1 -0
  27. package/dist/clipboard/paste/fidus_writer.js +5 -2
  28. package/dist/clipboard/paste/fidus_writer.js.map +1 -1
  29. package/dist/clipboard/paste/general.d.ts +18 -0
  30. package/dist/clipboard/paste/general.d.ts.map +1 -0
  31. package/dist/clipboard/paste/general.js +18 -6
  32. package/dist/clipboard/paste/general.js.map +1 -1
  33. package/dist/clipboard/paste/google_docs.d.ts +6 -0
  34. package/dist/clipboard/paste/google_docs.d.ts.map +1 -0
  35. package/dist/clipboard/paste/google_docs.js +3 -2
  36. package/dist/clipboard/paste/google_docs.js.map +1 -1
  37. package/dist/clipboard/paste/html.d.ts +22 -0
  38. package/dist/clipboard/paste/html.d.ts.map +1 -0
  39. package/dist/clipboard/paste/html.js +15 -0
  40. package/dist/clipboard/paste/html.js.map +1 -1
  41. package/dist/clipboard/paste/index.d.ts +3 -0
  42. package/dist/clipboard/paste/index.d.ts.map +1 -0
  43. package/dist/clipboard/paste/index.js.map +1 -1
  44. package/dist/clipboard/paste/libreoffice_writer.d.ts +5 -0
  45. package/dist/clipboard/paste/libreoffice_writer.d.ts.map +1 -0
  46. package/dist/clipboard/paste/libreoffice_writer.js +2 -2
  47. package/dist/clipboard/paste/libreoffice_writer.js.map +1 -1
  48. package/dist/clipboard/paste/microsoft_word.d.ts +7 -0
  49. package/dist/clipboard/paste/microsoft_word.d.ts.map +1 -0
  50. package/dist/clipboard/paste/microsoft_word.js +13 -14
  51. package/dist/clipboard/paste/microsoft_word.js.map +1 -1
  52. package/dist/clipboard/paste/text.d.ts +11 -0
  53. package/dist/clipboard/paste/text.d.ts.map +1 -0
  54. package/dist/clipboard/paste/text.js +5 -3
  55. package/dist/clipboard/paste/text.js.map +1 -1
  56. package/dist/collab/chat.d.ts +24 -0
  57. package/dist/collab/chat.d.ts.map +1 -0
  58. package/dist/collab/chat.js +46 -16
  59. package/dist/collab/chat.js.map +1 -1
  60. package/dist/collab/colors.d.ts +16 -0
  61. package/dist/collab/colors.d.ts.map +1 -0
  62. package/dist/collab/colors.js +6 -0
  63. package/dist/collab/colors.js.map +1 -1
  64. package/dist/collab/doc.d.ts +147 -0
  65. package/dist/collab/doc.d.ts.map +1 -0
  66. package/dist/collab/doc.js +77 -42
  67. package/dist/collab/doc.js.map +1 -1
  68. package/dist/collab/index.d.ts +23 -0
  69. package/dist/collab/index.d.ts.map +1 -0
  70. package/dist/collab/index.js +14 -3
  71. package/dist/collab/index.js.map +1 -1
  72. package/dist/collab/merge/changeset.d.ts +23 -0
  73. package/dist/collab/merge/changeset.d.ts.map +1 -0
  74. package/dist/collab/merge/changeset.js +5 -4
  75. package/dist/collab/merge/changeset.js.map +1 -1
  76. package/dist/collab/merge/editor.d.ts +53 -0
  77. package/dist/collab/merge/editor.d.ts.map +1 -0
  78. package/dist/collab/merge/editor.js +62 -35
  79. package/dist/collab/merge/editor.js.map +1 -1
  80. package/dist/collab/merge/footnotes.d.ts +26 -0
  81. package/dist/collab/merge/footnotes.d.ts.map +1 -0
  82. package/dist/collab/merge/footnotes.js +14 -5
  83. package/dist/collab/merge/footnotes.js.map +1 -1
  84. package/dist/collab/merge/index.d.ts +32 -0
  85. package/dist/collab/merge/index.d.ts.map +1 -0
  86. package/dist/collab/merge/index.js +38 -26
  87. package/dist/collab/merge/index.js.map +1 -1
  88. package/dist/collab/merge/recreate_transform.d.ts +4 -0
  89. package/dist/collab/merge/recreate_transform.d.ts.map +1 -0
  90. package/dist/collab/merge/recreate_transform.js +25 -5
  91. package/dist/collab/merge/recreate_transform.js.map +1 -1
  92. package/dist/collab/merge/schema.d.ts +4 -0
  93. package/dist/collab/merge/schema.d.ts.map +1 -0
  94. package/dist/collab/merge/schema.js +35 -26
  95. package/dist/collab/merge/schema.js.map +1 -1
  96. package/dist/collab/merge/state_plugins/action.d.ts +16 -0
  97. package/dist/collab/merge/state_plugins/action.d.ts.map +1 -0
  98. package/dist/collab/merge/state_plugins/action.js +4 -5
  99. package/dist/collab/merge/state_plugins/action.js.map +1 -1
  100. package/dist/collab/merge/state_plugins/clipboard.d.ts +6 -0
  101. package/dist/collab/merge/state_plugins/clipboard.d.ts.map +1 -0
  102. package/dist/collab/merge/state_plugins/clipboard.js +1 -1
  103. package/dist/collab/merge/state_plugins/clipboard.js.map +1 -1
  104. package/dist/collab/merge/state_plugins/diff.d.ts +32 -0
  105. package/dist/collab/merge/state_plugins/diff.d.ts.map +1 -0
  106. package/dist/collab/merge/state_plugins/diff.js +108 -84
  107. package/dist/collab/merge/state_plugins/diff.js.map +1 -1
  108. package/dist/collab/merge/state_plugins/index.d.ts +3 -0
  109. package/dist/collab/merge/state_plugins/index.d.ts.map +1 -0
  110. package/dist/collab/merge/state_plugins/index.js.map +1 -1
  111. package/dist/collab/merge/tools.d.ts +11 -0
  112. package/dist/collab/merge/tools.d.ts.map +1 -0
  113. package/dist/collab/merge/tools.js +16 -14
  114. package/dist/collab/merge/tools.js.map +1 -1
  115. package/dist/collab/templates.d.ts +14 -0
  116. package/dist/collab/templates.d.ts.map +1 -0
  117. package/dist/collab/templates.js +1 -1
  118. package/dist/collab/templates.js.map +1 -1
  119. package/dist/comments/comment.d.ts +29 -0
  120. package/dist/comments/comment.d.ts.map +1 -0
  121. package/dist/comments/comment.js +12 -0
  122. package/dist/comments/comment.js.map +1 -1
  123. package/dist/comments/editors/answer.d.ts +14 -0
  124. package/dist/comments/editors/answer.d.ts.map +1 -0
  125. package/dist/comments/editors/answer.js +5 -3
  126. package/dist/comments/editors/answer.js.map +1 -1
  127. package/dist/comments/editors/comment.d.ts +65 -0
  128. package/dist/comments/editors/comment.d.ts.map +1 -0
  129. package/dist/comments/editors/comment.js +43 -14
  130. package/dist/comments/editors/comment.js.map +1 -1
  131. package/dist/comments/editors/index.d.ts +4 -0
  132. package/dist/comments/editors/index.d.ts.map +1 -0
  133. package/dist/comments/editors/index.js.map +1 -1
  134. package/dist/comments/editors/notify.d.ts +3 -0
  135. package/dist/comments/editors/notify.d.ts.map +1 -0
  136. package/dist/comments/editors/notify.js.map +1 -1
  137. package/dist/comments/editors/schema.d.ts +12 -0
  138. package/dist/comments/editors/schema.d.ts.map +1 -0
  139. package/dist/comments/editors/schema.js +5 -5
  140. package/dist/comments/editors/schema.js.map +1 -1
  141. package/dist/comments/index.d.ts +10 -0
  142. package/dist/comments/index.d.ts.map +1 -0
  143. package/dist/comments/index.js +5 -2
  144. package/dist/comments/index.js.map +1 -1
  145. package/dist/comments/interactions.d.ts +49 -0
  146. package/dist/comments/interactions.d.ts.map +1 -0
  147. package/dist/comments/interactions.js +33 -18
  148. package/dist/comments/interactions.js.map +1 -1
  149. package/dist/comments/store.d.ts +59 -0
  150. package/dist/comments/store.d.ts.map +1 -0
  151. package/dist/comments/store.js +36 -16
  152. package/dist/comments/store.js.map +1 -1
  153. package/dist/contacts/add_dialog.d.ts +7 -0
  154. package/dist/contacts/add_dialog.d.ts.map +1 -0
  155. package/dist/contacts/add_dialog.js +25 -26
  156. package/dist/contacts/add_dialog.js.map +1 -1
  157. package/dist/contacts/templates.d.ts +12 -0
  158. package/dist/contacts/templates.d.ts.map +1 -0
  159. package/dist/contacts/templates.js +3 -2
  160. package/dist/contacts/templates.js.map +1 -1
  161. package/dist/copyright_dialog/index.d.ts +25 -0
  162. package/dist/copyright_dialog/index.d.ts.map +1 -0
  163. package/dist/copyright_dialog/index.js +34 -26
  164. package/dist/copyright_dialog/index.js.map +1 -1
  165. package/dist/copyright_dialog/templates.d.ts +17 -0
  166. package/dist/copyright_dialog/templates.d.ts.map +1 -0
  167. package/dist/copyright_dialog/templates.js.map +1 -1
  168. package/dist/databases/bibliography.d.ts +42 -0
  169. package/dist/databases/bibliography.d.ts.map +1 -0
  170. package/dist/databases/bibliography.js +24 -9
  171. package/dist/databases/bibliography.js.map +1 -1
  172. package/dist/databases/images.d.ts +66 -0
  173. package/dist/databases/images.d.ts.map +1 -0
  174. package/dist/databases/images.js +19 -9
  175. package/dist/databases/images.js.map +1 -1
  176. package/dist/databases/index.d.ts +26 -0
  177. package/dist/databases/index.d.ts.map +1 -0
  178. package/dist/databases/index.js +9 -8
  179. package/dist/databases/index.js.map +1 -1
  180. package/dist/dialogs/citation.d.ts +58 -0
  181. package/dist/dialogs/citation.d.ts.map +1 -0
  182. package/dist/dialogs/citation.js +43 -22
  183. package/dist/dialogs/citation.js.map +1 -1
  184. package/dist/dialogs/code_block.d.ts +25 -0
  185. package/dist/dialogs/code_block.d.ts.map +1 -0
  186. package/dist/dialogs/code_block.js +32 -11
  187. package/dist/dialogs/code_block.js.map +1 -1
  188. package/dist/dialogs/contributor.d.ts +13 -0
  189. package/dist/dialogs/contributor.d.ts.map +1 -0
  190. package/dist/dialogs/contributor.js +17 -20
  191. package/dist/dialogs/contributor.js.map +1 -1
  192. package/dist/dialogs/figure.d.ts +51 -0
  193. package/dist/dialogs/figure.d.ts.map +1 -0
  194. package/dist/dialogs/figure.js +123 -81
  195. package/dist/dialogs/figure.js.map +1 -1
  196. package/dist/dialogs/index.d.ts +11 -0
  197. package/dist/dialogs/index.d.ts.map +1 -0
  198. package/dist/dialogs/index.js.map +1 -1
  199. package/dist/dialogs/language.d.ts +10 -0
  200. package/dist/dialogs/language.d.ts.map +1 -0
  201. package/dist/dialogs/language.js +4 -1
  202. package/dist/dialogs/language.js.map +1 -1
  203. package/dist/dialogs/link.d.ts +30 -0
  204. package/dist/dialogs/link.d.ts.map +1 -0
  205. package/dist/dialogs/link.js +27 -15
  206. package/dist/dialogs/link.js.map +1 -1
  207. package/dist/dialogs/math.d.ts +22 -0
  208. package/dist/dialogs/math.d.ts.map +1 -0
  209. package/dist/dialogs/math.js +27 -14
  210. package/dist/dialogs/math.js.map +1 -1
  211. package/dist/dialogs/ordered_list.d.ts +22 -0
  212. package/dist/dialogs/ordered_list.d.ts.map +1 -0
  213. package/dist/dialogs/ordered_list.js +12 -5
  214. package/dist/dialogs/ordered_list.js.map +1 -1
  215. package/dist/dialogs/revision.d.ts +8 -0
  216. package/dist/dialogs/revision.d.ts.map +1 -0
  217. package/dist/dialogs/revision.js +2 -0
  218. package/dist/dialogs/revision.js.map +1 -1
  219. package/dist/dialogs/subsup.d.ts +5 -0
  220. package/dist/dialogs/subsup.d.ts.map +1 -0
  221. package/dist/dialogs/subsup.js +3 -3
  222. package/dist/dialogs/subsup.js.map +1 -1
  223. package/dist/dialogs/table.d.ts +33 -0
  224. package/dist/dialogs/table.d.ts.map +1 -0
  225. package/dist/dialogs/table.js +43 -21
  226. package/dist/dialogs/table.js.map +1 -1
  227. package/dist/dialogs/templates.d.ts +85 -0
  228. package/dist/dialogs/templates.d.ts.map +1 -0
  229. package/dist/dialogs/templates.js +8 -8
  230. package/dist/dialogs/templates.js.map +1 -1
  231. package/dist/document_template/exporter.d.ts +23 -0
  232. package/dist/document_template/exporter.d.ts.map +1 -0
  233. package/dist/document_template/exporter.js +14 -5
  234. package/dist/document_template/exporter.js.map +1 -1
  235. package/dist/document_template/index.d.ts +35 -0
  236. package/dist/document_template/index.d.ts.map +1 -0
  237. package/dist/document_template/index.js +61 -53
  238. package/dist/document_template/index.js.map +1 -1
  239. package/dist/document_template/schema.d.ts +13 -0
  240. package/dist/document_template/schema.d.ts.map +1 -0
  241. package/dist/document_template/schema.js +2 -2
  242. package/dist/document_template/schema.js.map +1 -1
  243. package/dist/documents/access_rights/index.d.ts +85 -0
  244. package/dist/documents/access_rights/index.d.ts.map +1 -0
  245. package/dist/documents/access_rights/index.js +96 -60
  246. package/dist/documents/access_rights/index.js.map +1 -1
  247. package/dist/documents/access_rights/templates.d.ts +47 -0
  248. package/dist/documents/access_rights/templates.d.ts.map +1 -0
  249. package/dist/documents/access_rights/templates.js.map +1 -1
  250. package/dist/e2ee/snapshot-manager.d.ts +120 -0
  251. package/dist/e2ee/snapshot-manager.d.ts.map +1 -0
  252. package/dist/e2ee/snapshot-manager.js +27 -38
  253. package/dist/e2ee/snapshot-manager.js.map +1 -1
  254. package/dist/exporter/native/copy.d.ts +16 -0
  255. package/dist/exporter/native/copy.d.ts.map +1 -0
  256. package/dist/exporter/native/copy.js +51 -35
  257. package/dist/exporter/native/copy.js.map +1 -1
  258. package/dist/exporter/native/file.d.ts +6 -0
  259. package/dist/exporter/native/file.d.ts.map +1 -0
  260. package/dist/exporter/native/file.js +1 -1
  261. package/dist/exporter/native/file.js.map +1 -1
  262. package/dist/exporter/native/index.d.ts +4 -0
  263. package/dist/exporter/native/index.d.ts.map +1 -0
  264. package/dist/exporter/native/index.js.map +1 -1
  265. package/dist/exporter/native/revision.d.ts +8 -0
  266. package/dist/exporter/native/revision.d.ts.map +1 -0
  267. package/dist/exporter/native/revision.js +2 -2
  268. package/dist/exporter/native/revision.js.map +1 -1
  269. package/dist/exporter/native/zip.d.ts +2 -0
  270. package/dist/exporter/native/zip.d.ts.map +1 -0
  271. package/dist/exporter/native/zip.js.map +1 -1
  272. package/dist/footnotes/editor.d.ts +25 -0
  273. package/dist/footnotes/editor.d.ts.map +1 -0
  274. package/dist/footnotes/editor.js +5 -3
  275. package/dist/footnotes/editor.js.map +1 -1
  276. package/dist/footnotes/index.d.ts +11 -0
  277. package/dist/footnotes/index.d.ts.map +1 -0
  278. package/dist/footnotes/index.js +5 -2
  279. package/dist/footnotes/index.js.map +1 -1
  280. package/dist/footnotes/layout.d.ts +15 -0
  281. package/dist/footnotes/layout.d.ts.map +1 -0
  282. package/dist/footnotes/layout.js +26 -17
  283. package/dist/footnotes/layout.js.map +1 -1
  284. package/dist/footnotes/state_plugins/access_rights.d.ts +6 -0
  285. package/dist/footnotes/state_plugins/access_rights.d.ts.map +1 -0
  286. package/dist/footnotes/state_plugins/access_rights.js +1 -1
  287. package/dist/footnotes/state_plugins/access_rights.js.map +1 -1
  288. package/dist/footnotes/state_plugins/index.d.ts +2 -0
  289. package/dist/footnotes/state_plugins/index.d.ts.map +1 -0
  290. package/dist/footnotes/state_plugins/index.js.map +1 -1
  291. package/dist/images/edit_dialog/model.d.ts +4 -0
  292. package/dist/images/edit_dialog/model.d.ts.map +1 -0
  293. package/dist/images/edit_dialog/model.js.map +1 -1
  294. package/dist/index.d.ts +74 -0
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +86 -59
  297. package/dist/index.js.map +1 -1
  298. package/dist/keymap.d.ts +5 -0
  299. package/dist/keymap.d.ts.map +1 -0
  300. package/dist/keymap.js +1 -1
  301. package/dist/keymap.js.map +1 -1
  302. package/dist/marginboxes/index.d.ts +107 -0
  303. package/dist/marginboxes/index.d.ts.map +1 -0
  304. package/dist/marginboxes/index.js +165 -88
  305. package/dist/marginboxes/index.js.map +1 -1
  306. package/dist/marginboxes/templates.d.ts +118 -0
  307. package/dist/marginboxes/templates.d.ts.map +1 -0
  308. package/dist/marginboxes/templates.js +25 -24
  309. package/dist/marginboxes/templates.js.map +1 -1
  310. package/dist/menus/code_block/index.d.ts +2 -0
  311. package/dist/menus/code_block/index.d.ts.map +1 -0
  312. package/dist/menus/code_block/index.js.map +1 -1
  313. package/dist/menus/code_block/model.d.ts +14 -0
  314. package/dist/menus/code_block/model.d.ts.map +1 -0
  315. package/dist/menus/code_block/model.js +5 -4
  316. package/dist/menus/code_block/model.js.map +1 -1
  317. package/dist/menus/figure/index.d.ts +3 -0
  318. package/dist/menus/figure/index.d.ts.map +1 -0
  319. package/dist/menus/figure/index.js.map +1 -1
  320. package/dist/menus/figure/model.d.ts +32 -0
  321. package/dist/menus/figure/model.d.ts.map +1 -0
  322. package/dist/menus/figure/model.js +11 -12
  323. package/dist/menus/figure/model.js.map +1 -1
  324. package/dist/menus/figure/utils.d.ts +3 -0
  325. package/dist/menus/figure/utils.d.ts.map +1 -0
  326. package/dist/menus/figure/utils.js +4 -1
  327. package/dist/menus/figure/utils.js.map +1 -1
  328. package/dist/menus/headerbar/index.d.ts +3 -0
  329. package/dist/menus/headerbar/index.d.ts.map +1 -0
  330. package/dist/menus/headerbar/index.js.map +1 -1
  331. package/dist/menus/headerbar/model.d.ts +192 -0
  332. package/dist/menus/headerbar/model.d.ts.map +1 -0
  333. package/dist/menus/headerbar/model.js +141 -110
  334. package/dist/menus/headerbar/model.js.map +1 -1
  335. package/dist/menus/headerbar/view.d.ts +89 -0
  336. package/dist/menus/headerbar/view.d.ts.map +1 -0
  337. package/dist/menus/headerbar/view.js +76 -45
  338. package/dist/menus/headerbar/view.js.map +1 -1
  339. package/dist/menus/image/index.d.ts +2 -0
  340. package/dist/menus/image/index.d.ts.map +1 -0
  341. package/dist/menus/image/index.js.map +1 -1
  342. package/dist/menus/image/model.d.ts +18 -0
  343. package/dist/menus/image/model.d.ts.map +1 -0
  344. package/dist/menus/image/model.js +2 -2
  345. package/dist/menus/image/model.js.map +1 -1
  346. package/dist/menus/index.d.ts +10 -0
  347. package/dist/menus/index.d.ts.map +1 -0
  348. package/dist/menus/index.js.map +1 -1
  349. package/dist/menus/navigator/index.d.ts +2 -0
  350. package/dist/menus/navigator/index.d.ts.map +1 -0
  351. package/dist/menus/navigator/index.js.map +1 -1
  352. package/dist/menus/navigator/model.d.ts +9 -0
  353. package/dist/menus/navigator/model.d.ts.map +1 -0
  354. package/dist/menus/navigator/model.js.map +1 -1
  355. package/dist/menus/ordered_list/index.d.ts +2 -0
  356. package/dist/menus/ordered_list/index.d.ts.map +1 -0
  357. package/dist/menus/ordered_list/index.js.map +1 -1
  358. package/dist/menus/ordered_list/model.d.ts +11 -0
  359. package/dist/menus/ordered_list/model.d.ts.map +1 -0
  360. package/dist/menus/ordered_list/model.js +1 -1
  361. package/dist/menus/ordered_list/model.js.map +1 -1
  362. package/dist/menus/selection/index.d.ts +3 -0
  363. package/dist/menus/selection/index.d.ts.map +1 -0
  364. package/dist/menus/selection/index.js.map +1 -1
  365. package/dist/menus/selection/model.d.ts +16 -0
  366. package/dist/menus/selection/model.d.ts.map +1 -0
  367. package/dist/menus/selection/model.js +18 -16
  368. package/dist/menus/selection/model.js.map +1 -1
  369. package/dist/menus/selection/view.d.ts +49 -0
  370. package/dist/menus/selection/view.d.ts.map +1 -0
  371. package/dist/menus/selection/view.js +33 -18
  372. package/dist/menus/selection/view.js.map +1 -1
  373. package/dist/menus/table/index.d.ts +2 -0
  374. package/dist/menus/table/index.d.ts.map +1 -0
  375. package/dist/menus/table/index.js.map +1 -1
  376. package/dist/menus/table/model.d.ts +39 -0
  377. package/dist/menus/table/model.d.ts.map +1 -0
  378. package/dist/menus/table/model.js +53 -50
  379. package/dist/menus/table/model.js.map +1 -1
  380. package/dist/menus/toolbar/index.d.ts +3 -0
  381. package/dist/menus/toolbar/index.d.ts.map +1 -0
  382. package/dist/menus/toolbar/index.js.map +1 -1
  383. package/dist/menus/toolbar/model.d.ts +125 -0
  384. package/dist/menus/toolbar/model.d.ts.map +1 -0
  385. package/dist/menus/toolbar/model.js +160 -140
  386. package/dist/menus/toolbar/model.js.map +1 -1
  387. package/dist/menus/toolbar/view.d.ts +72 -0
  388. package/dist/menus/toolbar/view.d.ts.map +1 -0
  389. package/dist/menus/toolbar/view.js +61 -36
  390. package/dist/menus/toolbar/view.js.map +1 -1
  391. package/dist/navigator/index.d.ts +38 -0
  392. package/dist/navigator/index.d.ts.map +1 -0
  393. package/dist/navigator/index.js +42 -21
  394. package/dist/navigator/index.js.map +1 -1
  395. package/dist/no_collab_save/index.d.ts +20 -0
  396. package/dist/no_collab_save/index.d.ts.map +1 -0
  397. package/dist/no_collab_save/index.js +20 -11
  398. package/dist/no_collab_save/index.js.map +1 -1
  399. package/dist/plugins/citation_dialog/index.d.ts +2 -0
  400. package/dist/plugins/citation_dialog/index.d.ts.map +1 -0
  401. package/dist/plugins/citation_dialog/index.js.map +1 -1
  402. package/dist/plugins/editor/index.d.ts +2 -0
  403. package/dist/plugins/editor/index.d.ts.map +1 -0
  404. package/dist/plugins/editor/index.js.map +1 -1
  405. package/dist/state_plugins/access_rights.d.ts +6 -0
  406. package/dist/state_plugins/access_rights.d.ts.map +1 -0
  407. package/dist/state_plugins/access_rights.js +5 -3
  408. package/dist/state_plugins/access_rights.js.map +1 -1
  409. package/dist/state_plugins/citation_render.d.ts +9 -0
  410. package/dist/state_plugins/citation_render.d.ts.map +1 -0
  411. package/dist/state_plugins/citation_render.js +12 -43
  412. package/dist/state_plugins/citation_render.js.map +1 -1
  413. package/dist/state_plugins/clipboard.d.ts +12 -0
  414. package/dist/state_plugins/clipboard.d.ts.map +1 -0
  415. package/dist/state_plugins/clipboard.js +13 -11
  416. package/dist/state_plugins/clipboard.js.map +1 -1
  417. package/dist/state_plugins/code_block.d.ts +6 -0
  418. package/dist/state_plugins/code_block.d.ts.map +1 -0
  419. package/dist/state_plugins/code_block.js +23 -9
  420. package/dist/state_plugins/code_block.js.map +1 -1
  421. package/dist/state_plugins/collab_carets.d.ts +26 -0
  422. package/dist/state_plugins/collab_carets.d.ts.map +1 -0
  423. package/dist/state_plugins/collab_carets.js +24 -16
  424. package/dist/state_plugins/collab_carets.js.map +1 -1
  425. package/dist/state_plugins/comments.d.ts +15 -0
  426. package/dist/state_plugins/comments.d.ts.map +1 -0
  427. package/dist/state_plugins/comments.js +26 -21
  428. package/dist/state_plugins/comments.js.map +1 -1
  429. package/dist/state_plugins/contributor_input/dropup.d.ts +17 -0
  430. package/dist/state_plugins/contributor_input/dropup.d.ts.map +1 -0
  431. package/dist/state_plugins/contributor_input/dropup.js +19 -20
  432. package/dist/state_plugins/contributor_input/dropup.js.map +1 -1
  433. package/dist/state_plugins/contributor_input/index.d.ts +3 -0
  434. package/dist/state_plugins/contributor_input/index.d.ts.map +1 -0
  435. package/dist/state_plugins/contributor_input/index.js.map +1 -1
  436. package/dist/state_plugins/contributor_input/node_view.d.ts +7 -0
  437. package/dist/state_plugins/contributor_input/node_view.d.ts.map +1 -0
  438. package/dist/state_plugins/contributor_input/node_view.js.map +1 -1
  439. package/dist/state_plugins/contributor_input/plugin.d.ts +19 -0
  440. package/dist/state_plugins/contributor_input/plugin.d.ts.map +1 -0
  441. package/dist/state_plugins/contributor_input/plugin.js +14 -45
  442. package/dist/state_plugins/contributor_input/plugin.js.map +1 -1
  443. package/dist/state_plugins/document_template.d.ts +33 -0
  444. package/dist/state_plugins/document_template.d.ts.map +1 -0
  445. package/dist/state_plugins/document_template.js +34 -15
  446. package/dist/state_plugins/document_template.js.map +1 -1
  447. package/dist/state_plugins/figure.d.ts +6 -0
  448. package/dist/state_plugins/figure.d.ts.map +1 -0
  449. package/dist/state_plugins/figure.js +26 -8
  450. package/dist/state_plugins/figure.js.map +1 -1
  451. package/dist/state_plugins/footnote_markers.d.ts +15 -0
  452. package/dist/state_plugins/footnote_markers.d.ts.map +1 -0
  453. package/dist/state_plugins/footnote_markers.js +72 -153
  454. package/dist/state_plugins/footnote_markers.js.map +1 -1
  455. package/dist/state_plugins/headerbar.d.ts +6 -0
  456. package/dist/state_plugins/headerbar.d.ts.map +1 -0
  457. package/dist/state_plugins/headerbar.js +1 -1
  458. package/dist/state_plugins/headerbar.js.map +1 -1
  459. package/dist/state_plugins/index.d.ts +28 -0
  460. package/dist/state_plugins/index.d.ts.map +1 -0
  461. package/dist/state_plugins/index.js +13 -12
  462. package/dist/state_plugins/index.js.map +1 -1
  463. package/dist/state_plugins/inline_math.d.ts +6 -0
  464. package/dist/state_plugins/inline_math.d.ts.map +1 -0
  465. package/dist/state_plugins/inline_math.js +28 -19
  466. package/dist/state_plugins/inline_math.js.map +1 -1
  467. package/dist/state_plugins/inline_reference/dropup.d.ts +62 -0
  468. package/dist/state_plugins/inline_reference/dropup.d.ts.map +1 -0
  469. package/dist/state_plugins/inline_reference/dropup.js +17 -17
  470. package/dist/state_plugins/inline_reference/dropup.js.map +1 -1
  471. package/dist/state_plugins/inline_reference/index.d.ts +2 -0
  472. package/dist/state_plugins/inline_reference/index.d.ts.map +1 -0
  473. package/dist/state_plugins/inline_reference/index.js.map +1 -1
  474. package/dist/state_plugins/inline_reference/plugin.d.ts +35 -0
  475. package/dist/state_plugins/inline_reference/plugin.d.ts.map +1 -0
  476. package/dist/state_plugins/inline_reference/plugin.js +68 -55
  477. package/dist/state_plugins/inline_reference/plugin.js.map +1 -1
  478. package/dist/state_plugins/jump_hidden_nodes.d.ts +5 -0
  479. package/dist/state_plugins/jump_hidden_nodes.d.ts.map +1 -0
  480. package/dist/state_plugins/jump_hidden_nodes.js +35 -22
  481. package/dist/state_plugins/jump_hidden_nodes.js.map +1 -1
  482. package/dist/state_plugins/links.d.ts +11 -0
  483. package/dist/state_plugins/links.d.ts.map +1 -0
  484. package/dist/state_plugins/links.js +39 -25
  485. package/dist/state_plugins/links.js.map +1 -1
  486. package/dist/state_plugins/marginboxes.d.ts +6 -0
  487. package/dist/state_plugins/marginboxes.d.ts.map +1 -0
  488. package/dist/state_plugins/marginboxes.js +2 -1
  489. package/dist/state_plugins/marginboxes.js.map +1 -1
  490. package/dist/state_plugins/ordered_list_menu.d.ts +6 -0
  491. package/dist/state_plugins/ordered_list_menu.d.ts.map +1 -0
  492. package/dist/state_plugins/ordered_list_menu.js +20 -6
  493. package/dist/state_plugins/ordered_list_menu.js.map +1 -1
  494. package/dist/state_plugins/placeholders.d.ts +6 -0
  495. package/dist/state_plugins/placeholders.d.ts.map +1 -0
  496. package/dist/state_plugins/placeholders.js +18 -54
  497. package/dist/state_plugins/placeholders.js.map +1 -1
  498. package/dist/state_plugins/search.d.ts +34 -0
  499. package/dist/state_plugins/search.d.ts.map +1 -0
  500. package/dist/state_plugins/search.js +31 -27
  501. package/dist/state_plugins/search.js.map +1 -1
  502. package/dist/state_plugins/selection_menu.d.ts +6 -0
  503. package/dist/state_plugins/selection_menu.d.ts.map +1 -0
  504. package/dist/state_plugins/selection_menu.js +1 -1
  505. package/dist/state_plugins/selection_menu.js.map +1 -1
  506. package/dist/state_plugins/settings.d.ts +8 -0
  507. package/dist/state_plugins/settings.d.ts.map +1 -0
  508. package/dist/state_plugins/settings.js +31 -21
  509. package/dist/state_plugins/settings.js.map +1 -1
  510. package/dist/state_plugins/table.d.ts +6 -0
  511. package/dist/state_plugins/table.d.ts.map +1 -0
  512. package/dist/state_plugins/table.js +33 -13
  513. package/dist/state_plugins/table.js.map +1 -1
  514. package/dist/state_plugins/tag_input/index.d.ts +3 -0
  515. package/dist/state_plugins/tag_input/index.d.ts.map +1 -0
  516. package/dist/state_plugins/tag_input/index.js.map +1 -1
  517. package/dist/state_plugins/tag_input/node_view.d.ts +7 -0
  518. package/dist/state_plugins/tag_input/node_view.d.ts.map +1 -0
  519. package/dist/state_plugins/tag_input/node_view.js.map +1 -1
  520. package/dist/state_plugins/tag_input/plugin.d.ts +14 -0
  521. package/dist/state_plugins/tag_input/plugin.d.ts.map +1 -0
  522. package/dist/state_plugins/tag_input/plugin.js +7 -6
  523. package/dist/state_plugins/tag_input/plugin.js.map +1 -1
  524. package/dist/state_plugins/toc_render.d.ts +6 -0
  525. package/dist/state_plugins/toc_render.d.ts.map +1 -0
  526. package/dist/state_plugins/toc_render.js +59 -96
  527. package/dist/state_plugins/toc_render.js.map +1 -1
  528. package/dist/state_plugins/toolbar.d.ts +6 -0
  529. package/dist/state_plugins/toolbar.d.ts.map +1 -0
  530. package/dist/state_plugins/toolbar.js +1 -1
  531. package/dist/state_plugins/toolbar.js.map +1 -1
  532. package/dist/state_plugins/track/find_selected_changes.d.ts +13 -0
  533. package/dist/state_plugins/track/find_selected_changes.d.ts.map +1 -0
  534. package/dist/state_plugins/track/find_selected_changes.js +4 -3
  535. package/dist/state_plugins/track/find_selected_changes.js.map +1 -1
  536. package/dist/state_plugins/track/helpers.d.ts +29 -0
  537. package/dist/state_plugins/track/helpers.d.ts.map +1 -0
  538. package/dist/state_plugins/track/helpers.js +9 -3
  539. package/dist/state_plugins/track/helpers.js.map +1 -1
  540. package/dist/state_plugins/track/index.d.ts +3 -0
  541. package/dist/state_plugins/track/index.d.ts.map +1 -0
  542. package/dist/state_plugins/track/index.js.map +1 -1
  543. package/dist/state_plugins/track/plugin.d.ts +14 -0
  544. package/dist/state_plugins/track/plugin.d.ts.map +1 -0
  545. package/dist/state_plugins/track/plugin.js +10 -6
  546. package/dist/state_plugins/track/plugin.js.map +1 -1
  547. package/dist/tools/index.d.ts +4 -0
  548. package/dist/tools/index.d.ts.map +1 -0
  549. package/dist/tools/index.js.map +1 -1
  550. package/dist/tools/key_bindings/index.d.ts +7 -0
  551. package/dist/tools/key_bindings/index.d.ts.map +1 -0
  552. package/dist/tools/key_bindings/index.js +1 -3
  553. package/dist/tools/key_bindings/index.js.map +1 -1
  554. package/dist/tools/key_bindings/templates.d.ts +2 -0
  555. package/dist/tools/key_bindings/templates.d.ts.map +1 -0
  556. package/dist/tools/key_bindings/templates.js.map +1 -1
  557. package/dist/tools/search_replace/index.d.ts +28 -0
  558. package/dist/tools/search_replace/index.d.ts.map +1 -0
  559. package/dist/tools/search_replace/index.js +53 -27
  560. package/dist/tools/search_replace/index.js.map +1 -1
  561. package/dist/tools/search_replace/templates.d.ts +6 -0
  562. package/dist/tools/search_replace/templates.d.ts.map +1 -0
  563. package/dist/tools/search_replace/templates.js.map +1 -1
  564. package/dist/tools/word_count/index.d.ts +15 -0
  565. package/dist/tools/word_count/index.d.ts.map +1 -0
  566. package/dist/tools/word_count/index.js +2 -1
  567. package/dist/tools/word_count/index.js.map +1 -1
  568. package/dist/tools/word_count/templates.d.ts +11 -0
  569. package/dist/tools/word_count/templates.d.ts.map +1 -0
  570. package/dist/tools/word_count/templates.js.map +1 -1
  571. package/dist/track/accept.d.ts +3 -0
  572. package/dist/track/accept.d.ts.map +1 -0
  573. package/dist/track/accept.js +10 -5
  574. package/dist/track/accept.js.map +1 -1
  575. package/dist/track/accept_all.d.ts +3 -0
  576. package/dist/track/accept_all.d.ts.map +1 -0
  577. package/dist/track/accept_all.js +2 -2
  578. package/dist/track/accept_all.js.map +1 -1
  579. package/dist/track/accept_all_no_insertions.d.ts +3 -0
  580. package/dist/track/accept_all_no_insertions.d.ts.map +1 -0
  581. package/dist/track/accept_all_no_insertions.js +2 -2
  582. package/dist/track/accept_all_no_insertions.js.map +1 -1
  583. package/dist/track/amend_transaction.d.ts +5 -0
  584. package/dist/track/amend_transaction.d.ts.map +1 -0
  585. package/dist/track/amend_transaction.js +55 -32
  586. package/dist/track/amend_transaction.js.map +1 -1
  587. package/dist/track/delete.d.ts +3 -0
  588. package/dist/track/delete.d.ts.map +1 -0
  589. package/dist/track/delete.js +4 -3
  590. package/dist/track/delete.js.map +1 -1
  591. package/dist/track/index.d.ts +6 -0
  592. package/dist/track/index.d.ts.map +1 -0
  593. package/dist/track/index.js.map +1 -1
  594. package/dist/track/mod.d.ts +10 -0
  595. package/dist/track/mod.d.ts.map +1 -0
  596. package/dist/track/mod.js +9 -5
  597. package/dist/track/mod.js.map +1 -1
  598. package/dist/track/reject.d.ts +3 -0
  599. package/dist/track/reject.d.ts.map +1 -0
  600. package/dist/track/reject.js +14 -5
  601. package/dist/track/reject.js.map +1 -1
  602. package/dist/track/reject_all.d.ts +3 -0
  603. package/dist/track/reject_all.d.ts.map +1 -0
  604. package/dist/track/reject_all.js +6 -2
  605. package/dist/track/reject_all.js.map +1 -1
  606. package/dist/types.d.ts +275 -0
  607. package/dist/types.d.ts.map +1 -0
  608. package/dist/types.js +17 -0
  609. package/dist/types.js.map +1 -0
  610. package/package.json +124 -75
  611. package/src/bibliography/{tools.js → tools.ts} +16 -5
  612. package/src/citations/{index.js → index.ts} +100 -80
  613. package/src/citations/{render.js → render.ts} +43 -15
  614. package/src/clipboard/copy/{schema.js → schema.ts} +19 -8
  615. package/src/clipboard/copy/{serializers.js → serializers.ts} +44 -32
  616. package/src/clipboard/paste/{fidus_writer.js → fidus_writer.ts} +28 -8
  617. package/src/clipboard/paste/{general.js → general.ts} +28 -13
  618. package/src/clipboard/paste/{google_docs.js → google_docs.ts} +7 -4
  619. package/src/clipboard/paste/{html.js → html.ts} +35 -8
  620. package/src/clipboard/paste/{libreoffice_writer.js → libreoffice_writer.ts} +4 -4
  621. package/src/clipboard/paste/{microsoft_word.js → microsoft_word.ts} +22 -21
  622. package/src/clipboard/paste/{text.js → text.ts} +11 -7
  623. package/src/collab/{chat.js → chat.ts} +78 -27
  624. package/src/collab/{colors.js → colors.ts} +21 -5
  625. package/src/collab/{doc.js → doc.ts} +290 -184
  626. package/src/collab/{index.js → index.ts} +47 -13
  627. package/src/collab/merge/{changeset.js → changeset.ts} +33 -20
  628. package/src/collab/merge/{editor.js → editor.ts} +211 -107
  629. package/src/collab/merge/{footnotes.js → footnotes.ts} +43 -22
  630. package/src/collab/merge/{index.js → index.ts} +147 -70
  631. package/src/collab/merge/{recreate_transform.js → recreate_transform.ts} +60 -29
  632. package/src/collab/merge/{schema.js → schema.ts} +55 -35
  633. package/src/collab/merge/state_plugins/{action.js → action.ts} +65 -27
  634. package/src/collab/merge/state_plugins/{clipboard.js → clipboard.ts} +13 -3
  635. package/src/collab/merge/state_plugins/{diff.js → diff.ts} +279 -168
  636. package/src/collab/merge/{tools.js → tools.ts} +57 -27
  637. package/src/collab/{templates.js → templates.ts} +17 -2
  638. package/src/comments/{comment.js → comment.ts} +26 -0
  639. package/src/comments/editors/{answer.js → answer.ts} +27 -12
  640. package/src/comments/editors/{comment.js → comment.ts} +112 -36
  641. package/src/comments/editors/{notify.js → notify.ts} +6 -1
  642. package/src/comments/editors/{schema.js → schema.ts} +9 -8
  643. package/src/comments/index.ts +16 -0
  644. package/src/comments/{interactions.js → interactions.ts} +150 -89
  645. package/src/comments/{store.js → store.ts} +149 -73
  646. package/src/contacts/{add_dialog.js → add_dialog.ts} +50 -37
  647. package/src/contacts/{templates.js → templates.ts} +9 -3
  648. package/src/copyright_dialog/{index.js → index.ts} +92 -57
  649. package/src/copyright_dialog/{templates.js → templates.ts} +18 -3
  650. package/src/databases/{bibliography.js → bibliography.ts} +62 -36
  651. package/src/databases/{images.js → images.ts} +146 -96
  652. package/src/databases/index.ts +116 -0
  653. package/src/dialogs/{citation.js → citation.ts} +187 -106
  654. package/src/dialogs/{code_block.js → code_block.ts} +75 -33
  655. package/src/dialogs/{contributor.js → contributor.ts} +74 -49
  656. package/src/dialogs/{figure.js → figure.ts} +250 -149
  657. package/src/dialogs/{language.js → language.ts} +11 -6
  658. package/src/dialogs/{link.js → link.ts} +105 -60
  659. package/src/dialogs/{math.js → math.ts} +56 -28
  660. package/src/dialogs/{ordered_list.js → ordered_list.ts} +25 -12
  661. package/src/dialogs/{revision.js → revision.ts} +13 -9
  662. package/src/dialogs/{subsup.js → subsup.ts} +9 -7
  663. package/src/dialogs/{table.js → table.ts} +129 -70
  664. package/src/dialogs/{templates.js → templates.ts} +102 -22
  665. package/src/document_template/exporter.ts +158 -0
  666. package/src/document_template/{index.js → index.ts} +158 -117
  667. package/src/document_template/{schema.js → schema.ts} +31 -28
  668. package/src/documents/access_rights/{index.js → index.ts} +240 -123
  669. package/src/documents/access_rights/{templates.js → templates.ts} +41 -5
  670. package/src/e2ee/{snapshot-manager.js → snapshot-manager.ts} +80 -49
  671. package/src/exporter/native/copy.ts +302 -0
  672. package/src/exporter/native/{file.js → file.ts} +12 -5
  673. package/src/exporter/native/{revision.js → revision.ts} +17 -9
  674. package/src/footnotes/{editor.js → editor.ts} +37 -18
  675. package/src/footnotes/index.ts +21 -0
  676. package/src/footnotes/{layout.js → layout.ts} +53 -36
  677. package/src/footnotes/state_plugins/{access_rights.js → access_rights.ts} +6 -4
  678. package/src/global.d.ts +29 -0
  679. package/src/images/edit_dialog/{model.js → model.ts} +1 -1
  680. package/src/{index.js → index.ts} +193 -132
  681. package/src/{keymap.js → keymap.ts} +36 -16
  682. package/src/marginboxes/{index.js → index.ts} +341 -171
  683. package/src/marginboxes/{templates.js → templates.ts} +236 -38
  684. package/src/menus/code_block/{model.js → model.ts} +16 -5
  685. package/src/menus/figure/{model.js → model.ts} +21 -16
  686. package/src/menus/figure/utils.ts +13 -0
  687. package/src/menus/headerbar/{model.js → model.ts} +243 -153
  688. package/src/menus/headerbar/{view.js → view.ts} +189 -92
  689. package/src/menus/image/{model.js → model.ts} +13 -4
  690. package/src/menus/navigator/{model.js → model.ts} +6 -1
  691. package/src/menus/ordered_list/{model.js → model.ts} +2 -1
  692. package/src/menus/selection/{model.js → model.ts} +38 -20
  693. package/src/menus/selection/{view.js → view.ts} +88 -35
  694. package/src/menus/table/{model.js → model.ts} +84 -63
  695. package/src/menus/toolbar/{model.js → model.ts} +267 -215
  696. package/src/menus/toolbar/{view.js → view.ts} +135 -65
  697. package/src/modules.d.ts +84 -0
  698. package/src/navigator/{index.js → index.ts} +90 -56
  699. package/src/no_collab_save/{index.js → index.ts} +54 -31
  700. package/src/state_plugins/{access_rights.js → access_rights.ts} +12 -7
  701. package/src/state_plugins/citation_render.ts +63 -0
  702. package/src/state_plugins/{clipboard.js → clipboard.ts} +38 -23
  703. package/src/state_plugins/{code_block.js → code_block.ts} +62 -28
  704. package/src/state_plugins/{collab_carets.js → collab_carets.ts} +56 -25
  705. package/src/state_plugins/{comments.js → comments.ts} +70 -40
  706. package/src/state_plugins/contributor_input/{dropup.js → dropup.ts} +70 -38
  707. package/src/state_plugins/contributor_input/{node_view.js → node_view.ts} +13 -4
  708. package/src/state_plugins/contributor_input/{plugin.js → plugin.ts} +74 -75
  709. package/src/state_plugins/{document_template.js → document_template.ts} +108 -49
  710. package/src/state_plugins/{figure.js → figure.ts} +61 -23
  711. package/src/state_plugins/footnote_markers.ts +142 -0
  712. package/src/state_plugins/{headerbar.js → headerbar.ts} +4 -2
  713. package/src/state_plugins/{index.js → index.ts} +23 -56
  714. package/src/state_plugins/{inline_math.js → inline_math.ts} +151 -65
  715. package/src/state_plugins/inline_reference/{dropup.js → dropup.ts} +68 -34
  716. package/src/state_plugins/inline_reference/{plugin.js → plugin.ts} +221 -101
  717. package/src/state_plugins/jump_hidden_nodes.ts +67 -0
  718. package/src/state_plugins/{links.js → links.ts} +153 -99
  719. package/src/state_plugins/marginboxes.ts +17 -0
  720. package/src/state_plugins/{ordered_list_menu.js → ordered_list_menu.ts} +43 -17
  721. package/src/state_plugins/placeholders.ts +78 -0
  722. package/src/state_plugins/{search.js → search.ts} +110 -48
  723. package/src/state_plugins/{selection_menu.js → selection_menu.ts} +4 -2
  724. package/src/state_plugins/{settings.js → settings.ts} +68 -39
  725. package/src/state_plugins/table.ts +169 -0
  726. package/src/state_plugins/tag_input/{node_view.js → node_view.ts} +12 -3
  727. package/src/state_plugins/tag_input/plugin.ts +292 -0
  728. package/src/state_plugins/toc_render.ts +133 -0
  729. package/src/state_plugins/{toolbar.js → toolbar.ts} +4 -2
  730. package/src/state_plugins/track/{find_selected_changes.js → find_selected_changes.ts} +34 -19
  731. package/src/state_plugins/track/{helpers.js → helpers.ts} +36 -10
  732. package/src/state_plugins/track/{plugin.js → plugin.ts} +38 -14
  733. package/src/tools/key_bindings/{index.js → index.ts} +7 -3
  734. package/src/tools/key_bindings/{templates.js → templates.ts} +1 -1
  735. package/src/tools/search_replace/{index.js → index.ts} +115 -69
  736. package/src/tools/search_replace/{templates.js → templates.ts} +6 -1
  737. package/src/tools/word_count/{index.js → index.ts} +16 -6
  738. package/src/tools/word_count/{templates.js → templates.ts} +10 -1
  739. package/src/track/{accept.js → accept.ts} +20 -9
  740. package/src/track/{accept_all.js → accept_all.ts} +27 -17
  741. package/src/track/{accept_all_no_insertions.js → accept_all_no_insertions.ts} +16 -10
  742. package/src/track/{amend_transaction.js → amend_transaction.ts} +130 -70
  743. package/src/track/{delete.js → delete.ts} +15 -12
  744. package/src/track/{mod.js → mod.ts} +51 -32
  745. package/src/track/{reject.js → reject.ts} +34 -19
  746. package/src/track/{reject_all.js → reject_all.ts} +44 -24
  747. package/src/types.ts +287 -0
  748. package/src/comments/index.js +0 -11
  749. package/src/databases/index.js +0 -69
  750. package/src/document_template/exporter.js +0 -97
  751. package/src/exporter/native/copy.js +0 -191
  752. package/src/footnotes/index.js +0 -16
  753. package/src/menus/figure/utils.js +0 -5
  754. package/src/state_plugins/citation_render.js +0 -88
  755. package/src/state_plugins/footnote_markers.js +0 -238
  756. package/src/state_plugins/jump_hidden_nodes.js +0 -58
  757. package/src/state_plugins/marginboxes.js +0 -14
  758. package/src/state_plugins/placeholders.js +0 -123
  759. package/src/state_plugins/table.js +0 -127
  760. package/src/state_plugins/tag_input/plugin.js +0 -278
  761. package/src/state_plugins/toc_render.js +0 -160
  762. /package/src/clipboard/copy/{index.js → index.ts} +0 -0
  763. /package/src/clipboard/paste/{index.js → index.ts} +0 -0
  764. /package/src/collab/merge/state_plugins/{index.js → index.ts} +0 -0
  765. /package/src/comments/editors/{index.js → index.ts} +0 -0
  766. /package/src/dialogs/{index.js → index.ts} +0 -0
  767. /package/src/exporter/native/{index.js → index.ts} +0 -0
  768. /package/src/exporter/native/{zip.js → zip.ts} +0 -0
  769. /package/src/footnotes/state_plugins/{index.js → index.ts} +0 -0
  770. /package/src/menus/code_block/{index.js → index.ts} +0 -0
  771. /package/src/menus/figure/{index.js → index.ts} +0 -0
  772. /package/src/menus/headerbar/{index.js → index.ts} +0 -0
  773. /package/src/menus/image/{index.js → index.ts} +0 -0
  774. /package/src/menus/{index.js → index.ts} +0 -0
  775. /package/src/menus/navigator/{index.js → index.ts} +0 -0
  776. /package/src/menus/ordered_list/{index.js → index.ts} +0 -0
  777. /package/src/menus/selection/{index.js → index.ts} +0 -0
  778. /package/src/menus/table/{index.js → index.ts} +0 -0
  779. /package/src/menus/toolbar/{index.js → index.ts} +0 -0
  780. /package/src/plugins/citation_dialog/{index.js → index.ts} +0 -0
  781. /package/src/plugins/editor/{index.js → index.ts} +0 -0
  782. /package/src/state_plugins/contributor_input/{index.js → index.ts} +0 -0
  783. /package/src/state_plugins/inline_reference/{index.js → index.ts} +0 -0
  784. /package/src/state_plugins/tag_input/{index.js → index.ts} +0 -0
  785. /package/src/state_plugins/track/{index.js → index.ts} +0 -0
  786. /package/src/tools/{index.js → index.ts} +0 -0
  787. /package/src/track/{index.js → index.ts} +0 -0
@@ -1,15 +1,36 @@
1
1
  import {FormatCitations} from "@fiduswriter/document/citations/format"
2
+ import type {BibDB, CSL} from "@fiduswriter/document"
3
+
4
+ interface CitationInfo {
5
+ format: string
6
+ references: Array<{
7
+ id: number
8
+ [key: string]: unknown
9
+ }>
10
+ }
11
+
2
12
  /**
3
13
  * Render citations into the DOM.
4
14
  */
5
15
 
6
16
  export class RenderCitations {
17
+ contentElement: HTMLElement
18
+ citationStyle: string
19
+ bibliographyHeader: string
20
+ bibDB: BibDB
21
+ csl: CSL
22
+ synchronous: boolean
23
+ lang: string
24
+ allCitationNodes: NodeListOf<HTMLElement>
25
+ allCitationInfos: CitationInfo[]
26
+ fm: FormatCitations | false
27
+
7
28
  constructor(
8
- contentElement,
9
- citationStyle,
10
- bibliographyHeader,
11
- bibDB,
12
- csl,
29
+ contentElement: HTMLElement,
30
+ citationStyle: string,
31
+ bibliographyHeader: string,
32
+ bibDB: BibDB,
33
+ csl: CSL,
13
34
  synchronous = false,
14
35
  lang = "en-US"
15
36
  ) {
@@ -21,17 +42,19 @@ export class RenderCitations {
21
42
  this.synchronous = synchronous
22
43
  this.lang = lang
23
44
 
24
- this.allCitationNodes = []
45
+ this.allCitationNodes = document.querySelectorAll("span.citation")
25
46
  this.allCitationInfos = []
26
47
  this.fm = false
27
48
  }
28
49
 
29
- init() {
50
+ init(): boolean | Promise<void> {
30
51
  this.allCitationNodes =
31
52
  this.contentElement.querySelectorAll("span.citation")
32
53
  this.allCitationNodes.forEach(cElement => {
33
- const citeInfo = Object.assign({}, cElement.dataset)
34
- citeInfo.references = JSON.parse(citeInfo.references)
54
+ const citeInfo: CitationInfo = {
55
+ format: cElement.dataset.format || "",
56
+ references: JSON.parse(cElement.dataset.references || "[]")
57
+ }
35
58
  this.allCitationInfos.push(citeInfo)
36
59
  })
37
60
  this.fm = new FormatCitations(
@@ -50,15 +73,20 @@ export class RenderCitations {
50
73
  this.renderCitations()
51
74
  return true
52
75
  } else {
53
- return this.fm.init().then(() => {
54
- this.renderCitations()
55
- return Promise.resolve()
56
- })
76
+ const initResult = this.fm.init()
77
+ if (initResult instanceof Promise) {
78
+ return initResult.then(() => {
79
+ this.renderCitations()
80
+ return Promise.resolve()
81
+ })
82
+ }
83
+ this.renderCitations()
84
+ return Promise.resolve()
57
85
  }
58
86
  }
59
87
 
60
- renderCitations() {
61
- if ("note" !== this.fm.citationType) {
88
+ renderCitations(): void {
89
+ if (this.fm && "note" !== this.fm.citationType) {
62
90
  this.fm.citationTexts.forEach(
63
91
  (citationText, index) =>
64
92
  (this.allCitationNodes[index].innerHTML = citationText)
@@ -4,13 +4,22 @@ import {DOMSerializer, Node, Schema} from "prosemirror-model"
4
4
  import {citation} from "@fiduswriter/document/schema/common/index"
5
5
  import {footnote} from "@fiduswriter/document/schema/document/content"
6
6
  import {fnSchema} from "@fiduswriter/document/schema/footnotes"
7
+ import type {BibDB} from "@fiduswriter/document"
8
+
9
+ interface CachedSchema {
10
+ cached: {bibDB: BibDB}
11
+ }
12
+
13
+ const asCached = (schema: Schema): CachedSchema => schema as unknown as CachedSchema
7
14
 
8
15
  const copyCitation = Object.assign({}, citation)
9
16
 
10
17
  copyCitation.toDOM = node => {
11
- const bibDB = node.type.schema.cached.bibDB,
12
- bibs = {}
13
- node.attrs.references.forEach(ref => (bibs[ref.id] = bibDB.db[ref.id]))
18
+ const bibDB = asCached(node.type.schema).cached.bibDB,
19
+ bibs: Record<string, Record<string, unknown>> = {}
20
+ ;(node.attrs.references as Array<{id: number | string}>).forEach(
21
+ ref => (bibs[ref.id] = bibDB.db[ref.id])
22
+ )
14
23
  return [
15
24
  "span",
16
25
  {
@@ -35,8 +44,8 @@ export const fnCopySchema = new Schema({
35
44
  const copyFootnote = Object.assign({}, footnote)
36
45
 
37
46
  copyFootnote.toDOM = node => {
38
- if (!fnCopySchema.cached.bibDB) {
39
- fnCopySchema.cached.bibDB = fnSchema.cached.bibDB
47
+ if (!asCached(fnCopySchema).cached.bibDB) {
48
+ asCached(fnCopySchema).cached.bibDB = asCached(fnSchema).cached.bibDB
40
49
  }
41
50
  const fnCopySerializer = DOMSerializer.fromSchema(fnCopySchema)
42
51
  const dom = document.createElement("span")
@@ -45,18 +54,20 @@ copyFootnote.toDOM = node => {
45
54
  type: "footnotecontainer",
46
55
  content: node.attrs.footnote
47
56
  })
48
- dom.dataset.footnote = fnCopySerializer.serializeNode(pmNode).innerHTML
57
+ dom.dataset.footnote = (
58
+ fnCopySerializer.serializeNode(pmNode) as HTMLElement
59
+ ).innerHTML
49
60
  dom.innerHTML = "&nbsp;"
50
61
  return dom
51
62
  }
52
63
 
53
- export const createDocCopySchema = docSchema => {
64
+ export const createDocCopySchema = (docSchema: Schema): Schema => {
54
65
  const newSchema = new Schema({
55
66
  marks: docSchema.spec.marks,
56
67
  nodes: docSchema.spec.nodes
57
68
  .update("citation", copyCitation)
58
69
  .update("footnote", copyFootnote)
59
70
  })
60
- newSchema.cached.bibDB = docSchema.cached.bibDB
71
+ asCached(newSchema).cached.bibDB = asCached(docSchema).cached.bibDB
61
72
  return newSchema
62
73
  }
@@ -1,24 +1,30 @@
1
1
  import {BIBLIOGRAPHY_HEADERS} from "@fiduswriter/document/schema/i18n"
2
+ import type {Fragment, Schema} from "prosemirror-model"
2
3
  import {DOMSerializer} from "prosemirror-model"
4
+
3
5
  import {RenderCitations} from "../../citations/render.js"
4
6
  import {createDocCopySchema, fnCopySchema} from "./schema.js"
7
+ import type {Editor} from "../../types.js"
5
8
 
6
9
  // Wrap around DOMSerializer, allowing post processing.
7
10
  class ClipboardDOMSerializer {
8
- constructor(nodes, marks, editor) {
11
+ domSerializer: DOMSerializer
12
+ editor: Editor
13
+
14
+ constructor(nodes: Record<string, any>, marks: Record<string, any>, editor: Editor) {
9
15
  this.domSerializer = new DOMSerializer(nodes, marks)
10
16
  this.editor = editor
11
17
  }
12
18
 
13
- serializeFragment(fragment, options) {
19
+ serializeFragment(fragment: Fragment, options?: {document?: Document}): DocumentFragment {
14
20
  const domFragment = this.domSerializer.serializeFragment(
15
21
  fragment,
16
22
  options
17
23
  )
18
- return this.postProcessFragment(domFragment)
24
+ return this.postProcessFragment(domFragment as DocumentFragment)
19
25
  }
20
26
 
21
- postProcessFragment(domFragment) {
27
+ postProcessFragment(domFragment: DocumentFragment): DocumentFragment {
22
28
  const citationFormatter = this.renderCitations(domFragment)
23
29
  this.renderFootnotes(domFragment, citationFormatter)
24
30
  this.removeTrackingData(domFragment)
@@ -27,34 +33,37 @@ class ClipboardDOMSerializer {
27
33
  return domFragment
28
34
  }
29
35
 
30
- renderCitations(domFragment) {
31
- const settings = this.editor.view.state.doc.attrs,
36
+ renderCitations(domFragment: DocumentFragment): any {
37
+ const settings = this.editor.view.state.doc.attrs as Record<string, any>,
32
38
  bibliographyHeader =
33
39
  settings.bibliography_header[settings.language] ||
34
- BIBLIOGRAPHY_HEADERS[settings.language]
40
+ (BIBLIOGRAPHY_HEADERS as any)[settings.language]
35
41
  const citRenderer = new RenderCitations(
36
- domFragment,
42
+ domFragment as any,
37
43
  settings.citationstyle,
38
44
  bibliographyHeader,
39
- this.editor.mod.db.bibDB,
40
- this.editor.app.csl,
45
+ (this.editor.mod.db as any).bibDB,
46
+ (this.editor.app as any).csl,
41
47
  true // synchronous. Should work as the editor has used the same style previously.
42
48
  )
49
+ const fm = citRenderer.fm as any
43
50
  if (citRenderer.init()) {
44
- if (citRenderer.fm.bibHTML.length) {
51
+ if (fm.bibHTML.length) {
45
52
  const bibDiv = document.createElement("div")
46
53
  bibDiv.classList.add("fiduswriter-clipboard-bibliography")
47
- bibDiv.innerHTML = citRenderer.fm.bibHTML
48
- bibDiv.firstElementChild.innerHTML = gettext("Bibliography")
54
+ bibDiv.innerHTML = fm.bibHTML
55
+ ;(bibDiv.firstElementChild as HTMLElement).innerHTML = gettext(
56
+ "Bibliography"
57
+ )
49
58
  domFragment.appendChild(bibDiv)
50
59
  }
51
- return citRenderer.fm
60
+ return fm
52
61
  } else {
53
62
  return false
54
63
  }
55
64
  }
56
65
 
57
- renderFootnotes(domFragment, citationFormatter) {
66
+ renderFootnotes(domFragment: DocumentFragment, citationFormatter: any): void {
58
67
  const footnoteSelector =
59
68
  citationFormatter && citationFormatter.citationType === "note"
60
69
  ? ".footnote-marker, .citation"
@@ -76,13 +85,13 @@ class ClipboardDOMSerializer {
76
85
  const newFootnote = document.createElement("h6") // We use H6 as Wordpress Gutenberg only allows IDs on H1-6 elements.
77
86
  newFootnote.setAttribute("role", "doc-footnote")
78
87
  newFootnote.innerHTML = footnote.matches(".footnote-marker")
79
- ? footnote.dataset.footnote
88
+ ? (footnote as HTMLElement).dataset.footnote || ""
80
89
  : `<p>${citationFormatter.citationTexts[citationCount++] || " "}</p>`
81
90
  if (
82
91
  newFootnote.firstElementChild &&
83
92
  newFootnote.firstElementChild.matches("p")
84
93
  ) {
85
- newFootnote.firstElementChild.insertAdjacentHTML(
94
+ ;(newFootnote.firstElementChild as HTMLElement).insertAdjacentHTML(
86
95
  "afterbegin",
87
96
  `${counter}. `
88
97
  )
@@ -100,13 +109,14 @@ class ClipboardDOMSerializer {
100
109
  }
101
110
  }
102
111
 
103
- addFigureNumbers(domFragment) {
112
+ addFigureNumbers(domFragment: DocumentFragment): void {
104
113
  domFragment
105
114
  .querySelectorAll(
106
115
  "figure[data-category='figure'] figcaption span.label"
107
116
  )
108
117
  .forEach((el, index) => {
109
- el.innerHTML += " " + (index + 1) + ": "
118
+ ;(el as HTMLElement).innerHTML +=
119
+ " " + (index + 1) + ": "
110
120
  })
111
121
 
112
122
  domFragment
@@ -114,7 +124,8 @@ class ClipboardDOMSerializer {
114
124
  "figure[data-category='photo'] figcaption span.label"
115
125
  )
116
126
  .forEach((el, index) => {
117
- el.innerHTML += " " + (index + 1) + ": "
127
+ ;(el as HTMLElement).innerHTML +=
128
+ " " + (index + 1) + ": "
118
129
  })
119
130
 
120
131
  domFragment
@@ -122,21 +133,22 @@ class ClipboardDOMSerializer {
122
133
  "figure[data-category='table'] figcaption span.label"
123
134
  )
124
135
  .forEach((el, index) => {
125
- el.innerHTML += " " + (index + 1) + ": "
136
+ ;(el as HTMLElement).innerHTML +=
137
+ " " + (index + 1) + ": "
126
138
  })
127
139
  }
128
140
 
129
- addBaseUrlToImages(domFragment) {
141
+ addBaseUrlToImages(domFragment: DocumentFragment): void {
130
142
  domFragment
131
143
  .querySelectorAll("img")
132
144
  .forEach(el => el.setAttribute("src", el.src))
133
145
  }
134
146
 
135
- getRandomID() {
147
+ getRandomID(): string {
136
148
  return (0 | (Math.random() * 9e6)).toString(36)
137
149
  }
138
150
 
139
- getFootnoteAnchor(counter, id) {
151
+ getFootnoteAnchor(counter: number, id: string): HTMLElement {
140
152
  const footnoteAnchor = document.createElement("a")
141
153
  footnoteAnchor.setAttribute("href", `#fn-${id}`)
142
154
  footnoteAnchor.classList.add("fn")
@@ -145,11 +157,11 @@ class ClipboardDOMSerializer {
145
157
  return footnoteAnchor
146
158
  }
147
159
 
148
- removeTrackingData(domFragment) {
160
+ removeTrackingData(domFragment: DocumentFragment): void {
149
161
  domFragment
150
162
  .querySelectorAll(".approved-insertion, .insertion")
151
163
  .forEach(el => {
152
- const parent = el.parentNode
164
+ const parent = el.parentNode as any
153
165
  const fragment = document.createDocumentFragment()
154
166
  while (el.firstChild) {
155
167
  fragment.appendChild(el.firstChild)
@@ -158,10 +170,10 @@ class ClipboardDOMSerializer {
158
170
  })
159
171
  domFragment
160
172
  .querySelectorAll(".deletion")
161
- .forEach(el => el.parentElement.removeChild(el))
173
+ .forEach(el => el.parentElement!.removeChild(el))
162
174
  }
163
175
 
164
- static fromSchema(schema, editor) {
176
+ static fromSchema(schema: Schema, editor: Editor): ClipboardDOMSerializer {
165
177
  return new ClipboardDOMSerializer(
166
178
  DOMSerializer.nodesFromSchema(schema),
167
179
  DOMSerializer.marksFromSchema(schema),
@@ -170,10 +182,10 @@ class ClipboardDOMSerializer {
170
182
  }
171
183
  }
172
184
 
173
- export const docClipboardSerializer = editor =>
185
+ export const docClipboardSerializer = (editor: Editor): ClipboardDOMSerializer =>
174
186
  ClipboardDOMSerializer.fromSchema(
175
- createDocCopySchema(editor.schema),
187
+ createDocCopySchema(editor.schema) as Schema,
176
188
  editor
177
189
  )
178
- export const fnClipboardSerializer = editor =>
179
- ClipboardDOMSerializer.fromSchema(fnCopySchema, editor)
190
+ export const fnClipboardSerializer = (editor: Editor): ClipboardDOMSerializer =>
191
+ ClipboardDOMSerializer.fromSchema(fnCopySchema as Schema, editor)
@@ -1,9 +1,11 @@
1
+ import type {Editor} from "../../types.js"
2
+
1
3
  import {GeneralPasteHandler} from "./general.js"
2
4
 
3
5
  // Fidus Writer paste handler
4
6
  export class FidusWriterPasteHandler extends GeneralPasteHandler {
5
7
  // Convert an existing node to a different node, if needed.
6
- convertNode(node) {
8
+ convertNode(node: HTMLElement): HTMLElement {
7
9
  node = super.convertNode(node)
8
10
  // Replace nodes with other nodes to not change the number of child nodes
9
11
  // <b style="font-weight:normal;">...</b> => <span>...</span>
@@ -13,12 +15,30 @@ export class FidusWriterPasteHandler extends GeneralPasteHandler {
13
15
  return node
14
16
  }
15
17
 
16
- verifyCitationNode(node) {
18
+ verifyCitationNode(node: HTMLElement): HTMLElement {
17
19
  try {
18
- const bibs = JSON.parse(node.dataset.bibs),
19
- references = JSON.parse(node.dataset.references),
20
- bibDB = this.editor.mod.db.bibDB,
21
- idTranslations = {}
20
+ const bibs = JSON.parse(node.dataset.bibs || "{}") as Record<
21
+ string,
22
+ Record<string, unknown>
23
+ >,
24
+ references = JSON.parse(node.dataset.references || "[]") as Array<{
25
+ id: number | string
26
+ }>,
27
+ bibDB = (this.editor as Editor).mod.db?.bibDB as
28
+ | {
29
+ findReference: (
30
+ reference: Record<string, unknown>
31
+ ) => string | undefined
32
+ addReference: (
33
+ reference: Record<string, unknown>,
34
+ id: string | number
35
+ ) => string | number
36
+ }
37
+ | undefined,
38
+ idTranslations: Record<string, number | string> = {}
39
+ if (!bibDB) {
40
+ return node
41
+ }
22
42
  Object.keys(bibs).forEach(bibKey => {
23
43
  const reference = bibs[bibKey]
24
44
  const oldKey = bibDB.findReference(reference)
@@ -45,11 +65,11 @@ export class FidusWriterPasteHandler extends GeneralPasteHandler {
45
65
  }
46
66
  }
47
67
 
48
- cleanDOM() {
68
+ cleanDOM(): void {
49
69
  // Remove the bibliography that was added by the copy serializer
50
70
  const clipboardArtifacts = this.dom.querySelectorAll(
51
71
  ".fiduswriter-clipboard-bibliography, .fiduswriter-clipboard-footnotes"
52
72
  )
53
- clipboardArtifacts.forEach(el => el.parentElement.removeChild(el))
73
+ clipboardArtifacts.forEach(el => el.parentElement?.removeChild(el))
54
74
  }
55
75
  }
@@ -1,15 +1,29 @@
1
+ import type {Editor} from "../../types.js"
2
+
1
3
  // General Fallback handler for paste
2
4
  export class GeneralPasteHandler {
3
- constructor(editor, htmlDoc, pmType) {
5
+ editor: Editor
6
+ htmlDoc: HTMLElement
7
+ pmType: string
8
+ footnoteMarkers: HTMLElement[]
9
+ footnotes: HTMLElement[]
10
+ dom: HTMLElement
11
+ inHTML: string
12
+ outHTML: string
13
+
14
+ constructor(editor: Editor, htmlDoc: HTMLElement, pmType: string) {
4
15
  this.editor = editor
5
16
  this.htmlDoc = htmlDoc
6
17
  this.pmType = pmType
7
18
  this.footnoteMarkers = []
8
19
  this.footnotes = []
20
+ this.dom = document.createElement("body")
21
+ this.inHTML = ""
22
+ this.outHTML = ""
9
23
  }
10
24
 
11
25
  // Iterate over each node in the body of the pasted content.
12
- getOutput() {
26
+ getOutput(): string {
13
27
  this.dom = this.htmlDoc.getElementsByTagName("body")[0]
14
28
  this.inHTML = this.dom.innerHTML
15
29
  this.iterateNode(this.dom)
@@ -20,17 +34,17 @@ export class GeneralPasteHandler {
20
34
  }
21
35
 
22
36
  // Remove unused content
23
- cleanDOM() {}
37
+ cleanDOM(): void {}
24
38
 
25
39
  // Iterate over pasted nodes and their children
26
- iterateNode(node) {
27
- if ((node.tagName === "P") & !node.firstChild) {
28
- node.parentNode.removeChild(node)
29
- return
40
+ iterateNode(node: ChildNode): boolean {
41
+ if ((node as HTMLElement).tagName === "P" && !node.firstChild) {
42
+ node.parentNode?.removeChild(node)
43
+ return true
30
44
  } else if (node.nodeType === 8) {
31
45
  // comment node
32
- node.parentNode.removeChild(node)
33
- return
46
+ node.parentNode?.removeChild(node)
47
+ return true
34
48
  } else if (node.nodeType === 1) {
35
49
  // element node
36
50
  let childNode = node.firstChild
@@ -39,12 +53,13 @@ export class GeneralPasteHandler {
39
53
  this.iterateNode(childNode)
40
54
  childNode = nextChildNode
41
55
  }
42
- node = this.convertNode(node)
56
+ node = this.convertNode(node as HTMLElement)
43
57
  }
58
+ return true
44
59
  }
45
60
 
46
61
  // Convert an existing node to a different node, if needed.
47
- convertNode(node) {
62
+ convertNode(node: HTMLElement): HTMLElement {
48
63
  if (
49
64
  node.tagName === "TABLE" &&
50
65
  node.firstElementChild?.tagName !== "CAPTION"
@@ -58,7 +73,7 @@ export class GeneralPasteHandler {
58
73
 
59
74
  // Move footnotes into their markers and turn footnote markers into the
60
75
  // required format.
61
- convertFootnotes() {
76
+ convertFootnotes(): void {
62
77
  this.footnoteMarkers.forEach((fnM, index) => {
63
78
  const footnote = this.footnotes[index]
64
79
  const newFnM = document.createElement("span")
@@ -67,7 +82,7 @@ export class GeneralPasteHandler {
67
82
  // Remove linebreaks in string (not <BR>)
68
83
  // Turn multiple white spaces into single space
69
84
  newFnM.dataset.footnote = footnoteContents
70
- fnM.parentNode.replaceChild(newFnM, fnM)
85
+ fnM.parentNode?.replaceChild(newFnM, fnM)
71
86
  })
72
87
  // Remove all footnotes from document. Some footnotes may have several
73
88
  // markers, so only remove each footnote once.
@@ -3,23 +3,26 @@ import {GeneralPasteHandler} from "./general.js"
3
3
  // Google Docs (the writing component) paste handler
4
4
  export class GoogleDocsPasteHandler extends GeneralPasteHandler {
5
5
  // Convert an existing node to a different node, if needed.
6
- convertNode(node) {
6
+ convertNode(node: HTMLElement) {
7
7
  node = super.convertNode(node)
8
8
  // Replace nodes with other nodes to not change the number of child nodes
9
9
  // <b style="font-weight:normal;">...</b> => <span>...</span>
10
- if (node.tagName === "B" && node.style.fontWeight === "normal") {
10
+ if (
11
+ node.tagName === "B" &&
12
+ node.style.fontWeight === "normal"
13
+ ) {
11
14
  node = this.neutralizeInlineNode(node)
12
15
  }
13
16
  return node
14
17
  }
15
18
 
16
19
  // Replace any type of inline node with a span node.
17
- neutralizeInlineNode(node) {
20
+ neutralizeInlineNode(node: HTMLElement): HTMLElement {
18
21
  const newNode = document.createElement("span")
19
22
  while (node.firstChild) {
20
23
  newNode.appendChild(node.firstChild)
21
24
  }
22
- node.parentNode.replaceChild(newNode, node)
25
+ node.parentNode?.replaceChild(newNode, node)
23
26
 
24
27
  return newNode
25
28
  }
@@ -5,25 +5,49 @@ import {LibreOfficeWriterPasteHandler} from "./libreoffice_writer.js"
5
5
  import {MicrosoftWordPasteHandler} from "./microsoft_word.js"
6
6
 
7
7
  import {resetPasteRange} from "../../state_plugins/clipboard.js"
8
+ import type {Editor} from "../../types.js"
8
9
 
9
10
  // Some pasted HTML will need slight conversions to work correctly.
10
11
  // We try to sniff whether paste comes from MsWord, LibreOffice or Google Docs
11
12
  // and use specialized handlers for these and a general handler everything else.
12
13
 
13
14
  export class HTMLPaste {
14
- constructor(editor, inHTML, pmType, view) {
15
+ editor: Editor
16
+ inHTML: string
17
+ pmType: string
18
+ view: import("prosemirror-view").EditorView
19
+ htmlDoc: HTMLElement | undefined
20
+ handler:
21
+ | typeof FidusWriterPasteHandler
22
+ | typeof GeneralPasteHandler
23
+ | typeof GoogleDocsPasteHandler
24
+ | typeof LibreOfficeWriterPasteHandler
25
+ | typeof MicrosoftWordPasteHandler
26
+ handlerInstance: GeneralPasteHandler
27
+ outHTML: string
28
+
29
+ constructor(
30
+ editor: Editor,
31
+ inHTML: string,
32
+ pmType: string,
33
+ view: import("prosemirror-view").EditorView
34
+ ) {
15
35
  this.editor = editor
16
36
  this.inHTML = inHTML
17
37
  this.pmType = pmType
18
38
  this.view = view
39
+ this.htmlDoc = undefined
40
+ this.handler = GeneralPasteHandler
41
+ this.handlerInstance = new GeneralPasteHandler(editor, document.createElement("html"), pmType)
42
+ this.outHTML = ""
19
43
  }
20
44
 
21
- getOutput() {
45
+ getOutput(): string {
22
46
  this.parseHTML()
23
47
  this.selectHandler()
24
48
  this.handlerInstance = new this.handler(
25
49
  this.editor,
26
- this.htmlDoc,
50
+ this.htmlDoc as HTMLElement,
27
51
  this.pmType
28
52
  )
29
53
  this.outHTML = this.handlerInstance.getOutput()
@@ -33,7 +57,7 @@ export class HTMLPaste {
33
57
  return this.outHTML
34
58
  }
35
59
 
36
- parseHTML() {
60
+ parseHTML(): void {
37
61
  const parser = new window.DOMParser()
38
62
  this.htmlDoc = parser
39
63
  .parseFromString(this.inHTML, "text/html")
@@ -42,13 +66,16 @@ export class HTMLPaste {
42
66
 
43
67
  // Find out what the source of the paste is and choose a corresponding
44
68
  // handler.
45
- selectHandler() {
69
+ selectHandler(): void {
70
+ if (!this.htmlDoc) {
71
+ return
72
+ }
46
73
  // For LibreOffice
47
74
  const head = this.htmlDoc.getElementsByTagName("head")[0]
48
- const generatorMetaTag = head.querySelector("meta[name=generator]")
75
+ const generatorMetaTag = head.querySelector("meta[name=generator]") as HTMLMetaElement | null
49
76
  // For Google Docs
50
77
  const body = this.htmlDoc.getElementsByTagName("body")[0]
51
- const firstB = body.querySelector("b")
78
+ const firstB = body.querySelector("b") as HTMLElement | null
52
79
  // For Fidus Writer
53
80
  const pmSlice = this.htmlDoc.querySelector("[data-pm-slice]")
54
81
  if (
@@ -68,7 +95,7 @@ export class HTMLPaste {
68
95
  }
69
96
  }
70
97
 
71
- resetPasteRange() {
98
+ resetPasteRange(): void {
72
99
  const tr = this.view.state.tr
73
100
  resetPasteRange(tr)
74
101
  this.view.dispatch(tr)
@@ -3,7 +3,7 @@ import {GeneralPasteHandler} from "./general.js"
3
3
  // LibreOffice Writer paste handler
4
4
  export class LibreOfficeWriterPasteHandler extends GeneralPasteHandler {
5
5
  // Convert an existing node to a different node, if needed.
6
- convertNode(node) {
6
+ convertNode(node: HTMLElement) {
7
7
  node = super.convertNode(node)
8
8
  // Footnote markers (only in main pm instance):
9
9
  if (
@@ -12,15 +12,15 @@ export class LibreOfficeWriterPasteHandler extends GeneralPasteHandler {
12
12
  this.pmType === "main"
13
13
  ) {
14
14
  // Remove "sym" at the end of the selector
15
- const href = node.getAttribute("href")
15
+ const href = node.getAttribute("href") || ""
16
16
  const fnSelector =
17
17
  href.length > 3 ? href.substring(0, href.length - 3) : href
18
- const footnote = this.dom.querySelector(fnSelector)
18
+ const footnote = this.dom.querySelector(fnSelector) as HTMLElement | null
19
19
  if (footnote) {
20
20
  const footnoteCounter =
21
21
  footnote.querySelector("a.sdfootnotesym")
22
22
  if (footnoteCounter) {
23
- footnoteCounter.parentNode.removeChild(footnoteCounter)
23
+ footnoteCounter.parentNode?.removeChild(footnoteCounter)
24
24
  }
25
25
  this.footnoteMarkers.push(node)
26
26
  this.footnotes.push(footnote)