@fiduswriter/editor 0.1.20 → 0.1.21

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 (786) hide show
  1. package/dist/bibliography/tools.d.ts +14 -0
  2. package/dist/bibliography/tools.d.ts.map +1 -0
  3. package/dist/bibliography/tools.js +1 -1
  4. package/dist/bibliography/tools.js.map +1 -1
  5. package/dist/citations/index.d.ts +17 -0
  6. package/dist/citations/index.d.ts.map +1 -0
  7. package/dist/citations/index.js +22 -13
  8. package/dist/citations/index.js.map +1 -1
  9. package/dist/citations/render.d.ts +29 -0
  10. package/dist/citations/render.d.ts.map +1 -0
  11. package/dist/citations/render.js +25 -8
  12. package/dist/citations/render.js.map +1 -1
  13. package/dist/clipboard/copy/index.d.ts +2 -0
  14. package/dist/clipboard/copy/index.d.ts.map +1 -0
  15. package/dist/clipboard/copy/index.js.map +1 -1
  16. package/dist/clipboard/copy/schema.d.ts +4 -0
  17. package/dist/clipboard/copy/schema.d.ts.map +1 -0
  18. package/dist/clipboard/copy/schema.js +6 -5
  19. package/dist/clipboard/copy/schema.js.map +1 -1
  20. package/dist/clipboard/copy/serializers.d.ts +24 -0
  21. package/dist/clipboard/copy/serializers.d.ts.map +1 -0
  22. package/dist/clipboard/copy/serializers.js +19 -9
  23. package/dist/clipboard/copy/serializers.js.map +1 -1
  24. package/dist/clipboard/paste/fidus_writer.d.ts +7 -0
  25. package/dist/clipboard/paste/fidus_writer.d.ts.map +1 -0
  26. package/dist/clipboard/paste/fidus_writer.js +5 -2
  27. package/dist/clipboard/paste/fidus_writer.js.map +1 -1
  28. package/dist/clipboard/paste/general.d.ts +18 -0
  29. package/dist/clipboard/paste/general.d.ts.map +1 -0
  30. package/dist/clipboard/paste/general.js +18 -6
  31. package/dist/clipboard/paste/general.js.map +1 -1
  32. package/dist/clipboard/paste/google_docs.d.ts +6 -0
  33. package/dist/clipboard/paste/google_docs.d.ts.map +1 -0
  34. package/dist/clipboard/paste/google_docs.js +3 -2
  35. package/dist/clipboard/paste/google_docs.js.map +1 -1
  36. package/dist/clipboard/paste/html.d.ts +22 -0
  37. package/dist/clipboard/paste/html.d.ts.map +1 -0
  38. package/dist/clipboard/paste/html.js +15 -0
  39. package/dist/clipboard/paste/html.js.map +1 -1
  40. package/dist/clipboard/paste/index.d.ts +3 -0
  41. package/dist/clipboard/paste/index.d.ts.map +1 -0
  42. package/dist/clipboard/paste/index.js.map +1 -1
  43. package/dist/clipboard/paste/libreoffice_writer.d.ts +5 -0
  44. package/dist/clipboard/paste/libreoffice_writer.d.ts.map +1 -0
  45. package/dist/clipboard/paste/libreoffice_writer.js +2 -2
  46. package/dist/clipboard/paste/libreoffice_writer.js.map +1 -1
  47. package/dist/clipboard/paste/microsoft_word.d.ts +7 -0
  48. package/dist/clipboard/paste/microsoft_word.d.ts.map +1 -0
  49. package/dist/clipboard/paste/microsoft_word.js +13 -14
  50. package/dist/clipboard/paste/microsoft_word.js.map +1 -1
  51. package/dist/clipboard/paste/text.d.ts +11 -0
  52. package/dist/clipboard/paste/text.d.ts.map +1 -0
  53. package/dist/clipboard/paste/text.js +5 -3
  54. package/dist/clipboard/paste/text.js.map +1 -1
  55. package/dist/collab/chat.d.ts +24 -0
  56. package/dist/collab/chat.d.ts.map +1 -0
  57. package/dist/collab/chat.js +46 -16
  58. package/dist/collab/chat.js.map +1 -1
  59. package/dist/collab/colors.d.ts +16 -0
  60. package/dist/collab/colors.d.ts.map +1 -0
  61. package/dist/collab/colors.js +6 -0
  62. package/dist/collab/colors.js.map +1 -1
  63. package/dist/collab/doc.d.ts +147 -0
  64. package/dist/collab/doc.d.ts.map +1 -0
  65. package/dist/collab/doc.js +77 -42
  66. package/dist/collab/doc.js.map +1 -1
  67. package/dist/collab/index.d.ts +23 -0
  68. package/dist/collab/index.d.ts.map +1 -0
  69. package/dist/collab/index.js +14 -3
  70. package/dist/collab/index.js.map +1 -1
  71. package/dist/collab/merge/changeset.d.ts +23 -0
  72. package/dist/collab/merge/changeset.d.ts.map +1 -0
  73. package/dist/collab/merge/changeset.js +5 -4
  74. package/dist/collab/merge/changeset.js.map +1 -1
  75. package/dist/collab/merge/editor.d.ts +53 -0
  76. package/dist/collab/merge/editor.d.ts.map +1 -0
  77. package/dist/collab/merge/editor.js +62 -35
  78. package/dist/collab/merge/editor.js.map +1 -1
  79. package/dist/collab/merge/footnotes.d.ts +26 -0
  80. package/dist/collab/merge/footnotes.d.ts.map +1 -0
  81. package/dist/collab/merge/footnotes.js +14 -5
  82. package/dist/collab/merge/footnotes.js.map +1 -1
  83. package/dist/collab/merge/index.d.ts +32 -0
  84. package/dist/collab/merge/index.d.ts.map +1 -0
  85. package/dist/collab/merge/index.js +38 -26
  86. package/dist/collab/merge/index.js.map +1 -1
  87. package/dist/collab/merge/recreate_transform.d.ts +4 -0
  88. package/dist/collab/merge/recreate_transform.d.ts.map +1 -0
  89. package/dist/collab/merge/recreate_transform.js +25 -5
  90. package/dist/collab/merge/recreate_transform.js.map +1 -1
  91. package/dist/collab/merge/schema.d.ts +4 -0
  92. package/dist/collab/merge/schema.d.ts.map +1 -0
  93. package/dist/collab/merge/schema.js +35 -26
  94. package/dist/collab/merge/schema.js.map +1 -1
  95. package/dist/collab/merge/state_plugins/action.d.ts +16 -0
  96. package/dist/collab/merge/state_plugins/action.d.ts.map +1 -0
  97. package/dist/collab/merge/state_plugins/action.js +4 -5
  98. package/dist/collab/merge/state_plugins/action.js.map +1 -1
  99. package/dist/collab/merge/state_plugins/clipboard.d.ts +6 -0
  100. package/dist/collab/merge/state_plugins/clipboard.d.ts.map +1 -0
  101. package/dist/collab/merge/state_plugins/clipboard.js +1 -1
  102. package/dist/collab/merge/state_plugins/clipboard.js.map +1 -1
  103. package/dist/collab/merge/state_plugins/diff.d.ts +32 -0
  104. package/dist/collab/merge/state_plugins/diff.d.ts.map +1 -0
  105. package/dist/collab/merge/state_plugins/diff.js +108 -84
  106. package/dist/collab/merge/state_plugins/diff.js.map +1 -1
  107. package/dist/collab/merge/state_plugins/index.d.ts +3 -0
  108. package/dist/collab/merge/state_plugins/index.d.ts.map +1 -0
  109. package/dist/collab/merge/state_plugins/index.js.map +1 -1
  110. package/dist/collab/merge/tools.d.ts +11 -0
  111. package/dist/collab/merge/tools.d.ts.map +1 -0
  112. package/dist/collab/merge/tools.js +16 -14
  113. package/dist/collab/merge/tools.js.map +1 -1
  114. package/dist/collab/templates.d.ts +14 -0
  115. package/dist/collab/templates.d.ts.map +1 -0
  116. package/dist/collab/templates.js +1 -1
  117. package/dist/collab/templates.js.map +1 -1
  118. package/dist/comments/comment.d.ts +29 -0
  119. package/dist/comments/comment.d.ts.map +1 -0
  120. package/dist/comments/comment.js +12 -0
  121. package/dist/comments/comment.js.map +1 -1
  122. package/dist/comments/editors/answer.d.ts +14 -0
  123. package/dist/comments/editors/answer.d.ts.map +1 -0
  124. package/dist/comments/editors/answer.js +5 -3
  125. package/dist/comments/editors/answer.js.map +1 -1
  126. package/dist/comments/editors/comment.d.ts +65 -0
  127. package/dist/comments/editors/comment.d.ts.map +1 -0
  128. package/dist/comments/editors/comment.js +43 -14
  129. package/dist/comments/editors/comment.js.map +1 -1
  130. package/dist/comments/editors/index.d.ts +4 -0
  131. package/dist/comments/editors/index.d.ts.map +1 -0
  132. package/dist/comments/editors/index.js.map +1 -1
  133. package/dist/comments/editors/notify.d.ts +3 -0
  134. package/dist/comments/editors/notify.d.ts.map +1 -0
  135. package/dist/comments/editors/notify.js.map +1 -1
  136. package/dist/comments/editors/schema.d.ts +12 -0
  137. package/dist/comments/editors/schema.d.ts.map +1 -0
  138. package/dist/comments/editors/schema.js +5 -5
  139. package/dist/comments/editors/schema.js.map +1 -1
  140. package/dist/comments/index.d.ts +10 -0
  141. package/dist/comments/index.d.ts.map +1 -0
  142. package/dist/comments/index.js +5 -2
  143. package/dist/comments/index.js.map +1 -1
  144. package/dist/comments/interactions.d.ts +49 -0
  145. package/dist/comments/interactions.d.ts.map +1 -0
  146. package/dist/comments/interactions.js +33 -18
  147. package/dist/comments/interactions.js.map +1 -1
  148. package/dist/comments/store.d.ts +59 -0
  149. package/dist/comments/store.d.ts.map +1 -0
  150. package/dist/comments/store.js +36 -16
  151. package/dist/comments/store.js.map +1 -1
  152. package/dist/contacts/add_dialog.d.ts +7 -0
  153. package/dist/contacts/add_dialog.d.ts.map +1 -0
  154. package/dist/contacts/add_dialog.js +25 -26
  155. package/dist/contacts/add_dialog.js.map +1 -1
  156. package/dist/contacts/templates.d.ts +12 -0
  157. package/dist/contacts/templates.d.ts.map +1 -0
  158. package/dist/contacts/templates.js +3 -2
  159. package/dist/contacts/templates.js.map +1 -1
  160. package/dist/copyright_dialog/index.d.ts +25 -0
  161. package/dist/copyright_dialog/index.d.ts.map +1 -0
  162. package/dist/copyright_dialog/index.js +34 -26
  163. package/dist/copyright_dialog/index.js.map +1 -1
  164. package/dist/copyright_dialog/templates.d.ts +17 -0
  165. package/dist/copyright_dialog/templates.d.ts.map +1 -0
  166. package/dist/copyright_dialog/templates.js.map +1 -1
  167. package/dist/databases/bibliography.d.ts +42 -0
  168. package/dist/databases/bibliography.d.ts.map +1 -0
  169. package/dist/databases/bibliography.js +24 -9
  170. package/dist/databases/bibliography.js.map +1 -1
  171. package/dist/databases/images.d.ts +66 -0
  172. package/dist/databases/images.d.ts.map +1 -0
  173. package/dist/databases/images.js +19 -9
  174. package/dist/databases/images.js.map +1 -1
  175. package/dist/databases/index.d.ts +26 -0
  176. package/dist/databases/index.d.ts.map +1 -0
  177. package/dist/databases/index.js +9 -8
  178. package/dist/databases/index.js.map +1 -1
  179. package/dist/dialogs/citation.d.ts +58 -0
  180. package/dist/dialogs/citation.d.ts.map +1 -0
  181. package/dist/dialogs/citation.js +43 -22
  182. package/dist/dialogs/citation.js.map +1 -1
  183. package/dist/dialogs/code_block.d.ts +25 -0
  184. package/dist/dialogs/code_block.d.ts.map +1 -0
  185. package/dist/dialogs/code_block.js +32 -11
  186. package/dist/dialogs/code_block.js.map +1 -1
  187. package/dist/dialogs/contributor.d.ts +13 -0
  188. package/dist/dialogs/contributor.d.ts.map +1 -0
  189. package/dist/dialogs/contributor.js +17 -20
  190. package/dist/dialogs/contributor.js.map +1 -1
  191. package/dist/dialogs/figure.d.ts +51 -0
  192. package/dist/dialogs/figure.d.ts.map +1 -0
  193. package/dist/dialogs/figure.js +123 -81
  194. package/dist/dialogs/figure.js.map +1 -1
  195. package/dist/dialogs/index.d.ts +11 -0
  196. package/dist/dialogs/index.d.ts.map +1 -0
  197. package/dist/dialogs/index.js.map +1 -1
  198. package/dist/dialogs/language.d.ts +10 -0
  199. package/dist/dialogs/language.d.ts.map +1 -0
  200. package/dist/dialogs/language.js +4 -1
  201. package/dist/dialogs/language.js.map +1 -1
  202. package/dist/dialogs/link.d.ts +30 -0
  203. package/dist/dialogs/link.d.ts.map +1 -0
  204. package/dist/dialogs/link.js +27 -15
  205. package/dist/dialogs/link.js.map +1 -1
  206. package/dist/dialogs/math.d.ts +22 -0
  207. package/dist/dialogs/math.d.ts.map +1 -0
  208. package/dist/dialogs/math.js +27 -14
  209. package/dist/dialogs/math.js.map +1 -1
  210. package/dist/dialogs/ordered_list.d.ts +22 -0
  211. package/dist/dialogs/ordered_list.d.ts.map +1 -0
  212. package/dist/dialogs/ordered_list.js +12 -5
  213. package/dist/dialogs/ordered_list.js.map +1 -1
  214. package/dist/dialogs/revision.d.ts +8 -0
  215. package/dist/dialogs/revision.d.ts.map +1 -0
  216. package/dist/dialogs/revision.js +2 -0
  217. package/dist/dialogs/revision.js.map +1 -1
  218. package/dist/dialogs/subsup.d.ts +5 -0
  219. package/dist/dialogs/subsup.d.ts.map +1 -0
  220. package/dist/dialogs/subsup.js +3 -3
  221. package/dist/dialogs/subsup.js.map +1 -1
  222. package/dist/dialogs/table.d.ts +33 -0
  223. package/dist/dialogs/table.d.ts.map +1 -0
  224. package/dist/dialogs/table.js +43 -21
  225. package/dist/dialogs/table.js.map +1 -1
  226. package/dist/dialogs/templates.d.ts +85 -0
  227. package/dist/dialogs/templates.d.ts.map +1 -0
  228. package/dist/dialogs/templates.js +8 -8
  229. package/dist/dialogs/templates.js.map +1 -1
  230. package/dist/document_template/exporter.d.ts +23 -0
  231. package/dist/document_template/exporter.d.ts.map +1 -0
  232. package/dist/document_template/exporter.js +14 -5
  233. package/dist/document_template/exporter.js.map +1 -1
  234. package/dist/document_template/index.d.ts +35 -0
  235. package/dist/document_template/index.d.ts.map +1 -0
  236. package/dist/document_template/index.js +61 -53
  237. package/dist/document_template/index.js.map +1 -1
  238. package/dist/document_template/schema.d.ts +13 -0
  239. package/dist/document_template/schema.d.ts.map +1 -0
  240. package/dist/document_template/schema.js +2 -2
  241. package/dist/document_template/schema.js.map +1 -1
  242. package/dist/documents/access_rights/index.d.ts +85 -0
  243. package/dist/documents/access_rights/index.d.ts.map +1 -0
  244. package/dist/documents/access_rights/index.js +96 -60
  245. package/dist/documents/access_rights/index.js.map +1 -1
  246. package/dist/documents/access_rights/templates.d.ts +47 -0
  247. package/dist/documents/access_rights/templates.d.ts.map +1 -0
  248. package/dist/documents/access_rights/templates.js.map +1 -1
  249. package/dist/e2ee/snapshot-manager.d.ts +120 -0
  250. package/dist/e2ee/snapshot-manager.d.ts.map +1 -0
  251. package/dist/e2ee/snapshot-manager.js +27 -38
  252. package/dist/e2ee/snapshot-manager.js.map +1 -1
  253. package/dist/exporter/native/copy.d.ts +16 -0
  254. package/dist/exporter/native/copy.d.ts.map +1 -0
  255. package/dist/exporter/native/copy.js +51 -35
  256. package/dist/exporter/native/copy.js.map +1 -1
  257. package/dist/exporter/native/file.d.ts +6 -0
  258. package/dist/exporter/native/file.d.ts.map +1 -0
  259. package/dist/exporter/native/file.js +1 -1
  260. package/dist/exporter/native/file.js.map +1 -1
  261. package/dist/exporter/native/index.d.ts +4 -0
  262. package/dist/exporter/native/index.d.ts.map +1 -0
  263. package/dist/exporter/native/index.js.map +1 -1
  264. package/dist/exporter/native/revision.d.ts +8 -0
  265. package/dist/exporter/native/revision.d.ts.map +1 -0
  266. package/dist/exporter/native/revision.js +2 -2
  267. package/dist/exporter/native/revision.js.map +1 -1
  268. package/dist/exporter/native/zip.d.ts +2 -0
  269. package/dist/exporter/native/zip.d.ts.map +1 -0
  270. package/dist/exporter/native/zip.js.map +1 -1
  271. package/dist/footnotes/editor.d.ts +25 -0
  272. package/dist/footnotes/editor.d.ts.map +1 -0
  273. package/dist/footnotes/editor.js +5 -3
  274. package/dist/footnotes/editor.js.map +1 -1
  275. package/dist/footnotes/index.d.ts +11 -0
  276. package/dist/footnotes/index.d.ts.map +1 -0
  277. package/dist/footnotes/index.js +5 -2
  278. package/dist/footnotes/index.js.map +1 -1
  279. package/dist/footnotes/layout.d.ts +15 -0
  280. package/dist/footnotes/layout.d.ts.map +1 -0
  281. package/dist/footnotes/layout.js +26 -17
  282. package/dist/footnotes/layout.js.map +1 -1
  283. package/dist/footnotes/state_plugins/access_rights.d.ts +6 -0
  284. package/dist/footnotes/state_plugins/access_rights.d.ts.map +1 -0
  285. package/dist/footnotes/state_plugins/access_rights.js +1 -1
  286. package/dist/footnotes/state_plugins/access_rights.js.map +1 -1
  287. package/dist/footnotes/state_plugins/index.d.ts +2 -0
  288. package/dist/footnotes/state_plugins/index.d.ts.map +1 -0
  289. package/dist/footnotes/state_plugins/index.js.map +1 -1
  290. package/dist/images/edit_dialog/model.d.ts +4 -0
  291. package/dist/images/edit_dialog/model.d.ts.map +1 -0
  292. package/dist/images/edit_dialog/model.js.map +1 -1
  293. package/dist/index.d.ts +74 -0
  294. package/dist/index.d.ts.map +1 -0
  295. package/dist/index.js +86 -59
  296. package/dist/index.js.map +1 -1
  297. package/dist/keymap.d.ts +5 -0
  298. package/dist/keymap.d.ts.map +1 -0
  299. package/dist/keymap.js +1 -1
  300. package/dist/keymap.js.map +1 -1
  301. package/dist/marginboxes/index.d.ts +107 -0
  302. package/dist/marginboxes/index.d.ts.map +1 -0
  303. package/dist/marginboxes/index.js +165 -88
  304. package/dist/marginboxes/index.js.map +1 -1
  305. package/dist/marginboxes/templates.d.ts +118 -0
  306. package/dist/marginboxes/templates.d.ts.map +1 -0
  307. package/dist/marginboxes/templates.js +25 -24
  308. package/dist/marginboxes/templates.js.map +1 -1
  309. package/dist/menus/code_block/index.d.ts +2 -0
  310. package/dist/menus/code_block/index.d.ts.map +1 -0
  311. package/dist/menus/code_block/index.js.map +1 -1
  312. package/dist/menus/code_block/model.d.ts +14 -0
  313. package/dist/menus/code_block/model.d.ts.map +1 -0
  314. package/dist/menus/code_block/model.js +5 -4
  315. package/dist/menus/code_block/model.js.map +1 -1
  316. package/dist/menus/figure/index.d.ts +3 -0
  317. package/dist/menus/figure/index.d.ts.map +1 -0
  318. package/dist/menus/figure/index.js.map +1 -1
  319. package/dist/menus/figure/model.d.ts +32 -0
  320. package/dist/menus/figure/model.d.ts.map +1 -0
  321. package/dist/menus/figure/model.js +11 -12
  322. package/dist/menus/figure/model.js.map +1 -1
  323. package/dist/menus/figure/utils.d.ts +3 -0
  324. package/dist/menus/figure/utils.d.ts.map +1 -0
  325. package/dist/menus/figure/utils.js +4 -1
  326. package/dist/menus/figure/utils.js.map +1 -1
  327. package/dist/menus/headerbar/index.d.ts +3 -0
  328. package/dist/menus/headerbar/index.d.ts.map +1 -0
  329. package/dist/menus/headerbar/index.js.map +1 -1
  330. package/dist/menus/headerbar/model.d.ts +192 -0
  331. package/dist/menus/headerbar/model.d.ts.map +1 -0
  332. package/dist/menus/headerbar/model.js +141 -110
  333. package/dist/menus/headerbar/model.js.map +1 -1
  334. package/dist/menus/headerbar/view.d.ts +89 -0
  335. package/dist/menus/headerbar/view.d.ts.map +1 -0
  336. package/dist/menus/headerbar/view.js +76 -45
  337. package/dist/menus/headerbar/view.js.map +1 -1
  338. package/dist/menus/image/index.d.ts +2 -0
  339. package/dist/menus/image/index.d.ts.map +1 -0
  340. package/dist/menus/image/index.js.map +1 -1
  341. package/dist/menus/image/model.d.ts +18 -0
  342. package/dist/menus/image/model.d.ts.map +1 -0
  343. package/dist/menus/image/model.js +2 -2
  344. package/dist/menus/image/model.js.map +1 -1
  345. package/dist/menus/index.d.ts +10 -0
  346. package/dist/menus/index.d.ts.map +1 -0
  347. package/dist/menus/index.js.map +1 -1
  348. package/dist/menus/navigator/index.d.ts +2 -0
  349. package/dist/menus/navigator/index.d.ts.map +1 -0
  350. package/dist/menus/navigator/index.js.map +1 -1
  351. package/dist/menus/navigator/model.d.ts +9 -0
  352. package/dist/menus/navigator/model.d.ts.map +1 -0
  353. package/dist/menus/navigator/model.js.map +1 -1
  354. package/dist/menus/ordered_list/index.d.ts +2 -0
  355. package/dist/menus/ordered_list/index.d.ts.map +1 -0
  356. package/dist/menus/ordered_list/index.js.map +1 -1
  357. package/dist/menus/ordered_list/model.d.ts +11 -0
  358. package/dist/menus/ordered_list/model.d.ts.map +1 -0
  359. package/dist/menus/ordered_list/model.js +1 -1
  360. package/dist/menus/ordered_list/model.js.map +1 -1
  361. package/dist/menus/selection/index.d.ts +3 -0
  362. package/dist/menus/selection/index.d.ts.map +1 -0
  363. package/dist/menus/selection/index.js.map +1 -1
  364. package/dist/menus/selection/model.d.ts +16 -0
  365. package/dist/menus/selection/model.d.ts.map +1 -0
  366. package/dist/menus/selection/model.js +18 -16
  367. package/dist/menus/selection/model.js.map +1 -1
  368. package/dist/menus/selection/view.d.ts +49 -0
  369. package/dist/menus/selection/view.d.ts.map +1 -0
  370. package/dist/menus/selection/view.js +33 -18
  371. package/dist/menus/selection/view.js.map +1 -1
  372. package/dist/menus/table/index.d.ts +2 -0
  373. package/dist/menus/table/index.d.ts.map +1 -0
  374. package/dist/menus/table/index.js.map +1 -1
  375. package/dist/menus/table/model.d.ts +39 -0
  376. package/dist/menus/table/model.d.ts.map +1 -0
  377. package/dist/menus/table/model.js +53 -50
  378. package/dist/menus/table/model.js.map +1 -1
  379. package/dist/menus/toolbar/index.d.ts +3 -0
  380. package/dist/menus/toolbar/index.d.ts.map +1 -0
  381. package/dist/menus/toolbar/index.js.map +1 -1
  382. package/dist/menus/toolbar/model.d.ts +125 -0
  383. package/dist/menus/toolbar/model.d.ts.map +1 -0
  384. package/dist/menus/toolbar/model.js +160 -140
  385. package/dist/menus/toolbar/model.js.map +1 -1
  386. package/dist/menus/toolbar/view.d.ts +72 -0
  387. package/dist/menus/toolbar/view.d.ts.map +1 -0
  388. package/dist/menus/toolbar/view.js +61 -36
  389. package/dist/menus/toolbar/view.js.map +1 -1
  390. package/dist/navigator/index.d.ts +38 -0
  391. package/dist/navigator/index.d.ts.map +1 -0
  392. package/dist/navigator/index.js +42 -21
  393. package/dist/navigator/index.js.map +1 -1
  394. package/dist/no_collab_save/index.d.ts +20 -0
  395. package/dist/no_collab_save/index.d.ts.map +1 -0
  396. package/dist/no_collab_save/index.js +20 -11
  397. package/dist/no_collab_save/index.js.map +1 -1
  398. package/dist/plugins/citation_dialog/index.d.ts +2 -0
  399. package/dist/plugins/citation_dialog/index.d.ts.map +1 -0
  400. package/dist/plugins/citation_dialog/index.js.map +1 -1
  401. package/dist/plugins/editor/index.d.ts +2 -0
  402. package/dist/plugins/editor/index.d.ts.map +1 -0
  403. package/dist/plugins/editor/index.js.map +1 -1
  404. package/dist/state_plugins/access_rights.d.ts +6 -0
  405. package/dist/state_plugins/access_rights.d.ts.map +1 -0
  406. package/dist/state_plugins/access_rights.js +5 -3
  407. package/dist/state_plugins/access_rights.js.map +1 -1
  408. package/dist/state_plugins/citation_render.d.ts +9 -0
  409. package/dist/state_plugins/citation_render.d.ts.map +1 -0
  410. package/dist/state_plugins/citation_render.js +12 -43
  411. package/dist/state_plugins/citation_render.js.map +1 -1
  412. package/dist/state_plugins/clipboard.d.ts +12 -0
  413. package/dist/state_plugins/clipboard.d.ts.map +1 -0
  414. package/dist/state_plugins/clipboard.js +13 -11
  415. package/dist/state_plugins/clipboard.js.map +1 -1
  416. package/dist/state_plugins/code_block.d.ts +6 -0
  417. package/dist/state_plugins/code_block.d.ts.map +1 -0
  418. package/dist/state_plugins/code_block.js +23 -9
  419. package/dist/state_plugins/code_block.js.map +1 -1
  420. package/dist/state_plugins/collab_carets.d.ts +26 -0
  421. package/dist/state_plugins/collab_carets.d.ts.map +1 -0
  422. package/dist/state_plugins/collab_carets.js +24 -16
  423. package/dist/state_plugins/collab_carets.js.map +1 -1
  424. package/dist/state_plugins/comments.d.ts +15 -0
  425. package/dist/state_plugins/comments.d.ts.map +1 -0
  426. package/dist/state_plugins/comments.js +26 -21
  427. package/dist/state_plugins/comments.js.map +1 -1
  428. package/dist/state_plugins/contributor_input/dropup.d.ts +17 -0
  429. package/dist/state_plugins/contributor_input/dropup.d.ts.map +1 -0
  430. package/dist/state_plugins/contributor_input/dropup.js +19 -20
  431. package/dist/state_plugins/contributor_input/dropup.js.map +1 -1
  432. package/dist/state_plugins/contributor_input/index.d.ts +3 -0
  433. package/dist/state_plugins/contributor_input/index.d.ts.map +1 -0
  434. package/dist/state_plugins/contributor_input/index.js.map +1 -1
  435. package/dist/state_plugins/contributor_input/node_view.d.ts +7 -0
  436. package/dist/state_plugins/contributor_input/node_view.d.ts.map +1 -0
  437. package/dist/state_plugins/contributor_input/node_view.js.map +1 -1
  438. package/dist/state_plugins/contributor_input/plugin.d.ts +19 -0
  439. package/dist/state_plugins/contributor_input/plugin.d.ts.map +1 -0
  440. package/dist/state_plugins/contributor_input/plugin.js +14 -45
  441. package/dist/state_plugins/contributor_input/plugin.js.map +1 -1
  442. package/dist/state_plugins/document_template.d.ts +33 -0
  443. package/dist/state_plugins/document_template.d.ts.map +1 -0
  444. package/dist/state_plugins/document_template.js +34 -15
  445. package/dist/state_plugins/document_template.js.map +1 -1
  446. package/dist/state_plugins/figure.d.ts +6 -0
  447. package/dist/state_plugins/figure.d.ts.map +1 -0
  448. package/dist/state_plugins/figure.js +26 -8
  449. package/dist/state_plugins/figure.js.map +1 -1
  450. package/dist/state_plugins/footnote_markers.d.ts +15 -0
  451. package/dist/state_plugins/footnote_markers.d.ts.map +1 -0
  452. package/dist/state_plugins/footnote_markers.js +72 -153
  453. package/dist/state_plugins/footnote_markers.js.map +1 -1
  454. package/dist/state_plugins/headerbar.d.ts +6 -0
  455. package/dist/state_plugins/headerbar.d.ts.map +1 -0
  456. package/dist/state_plugins/headerbar.js +1 -1
  457. package/dist/state_plugins/headerbar.js.map +1 -1
  458. package/dist/state_plugins/index.d.ts +28 -0
  459. package/dist/state_plugins/index.d.ts.map +1 -0
  460. package/dist/state_plugins/index.js +13 -12
  461. package/dist/state_plugins/index.js.map +1 -1
  462. package/dist/state_plugins/inline_math.d.ts +6 -0
  463. package/dist/state_plugins/inline_math.d.ts.map +1 -0
  464. package/dist/state_plugins/inline_math.js +28 -19
  465. package/dist/state_plugins/inline_math.js.map +1 -1
  466. package/dist/state_plugins/inline_reference/dropup.d.ts +62 -0
  467. package/dist/state_plugins/inline_reference/dropup.d.ts.map +1 -0
  468. package/dist/state_plugins/inline_reference/dropup.js +17 -17
  469. package/dist/state_plugins/inline_reference/dropup.js.map +1 -1
  470. package/dist/state_plugins/inline_reference/index.d.ts +2 -0
  471. package/dist/state_plugins/inline_reference/index.d.ts.map +1 -0
  472. package/dist/state_plugins/inline_reference/index.js.map +1 -1
  473. package/dist/state_plugins/inline_reference/plugin.d.ts +35 -0
  474. package/dist/state_plugins/inline_reference/plugin.d.ts.map +1 -0
  475. package/dist/state_plugins/inline_reference/plugin.js +68 -55
  476. package/dist/state_plugins/inline_reference/plugin.js.map +1 -1
  477. package/dist/state_plugins/jump_hidden_nodes.d.ts +5 -0
  478. package/dist/state_plugins/jump_hidden_nodes.d.ts.map +1 -0
  479. package/dist/state_plugins/jump_hidden_nodes.js +35 -22
  480. package/dist/state_plugins/jump_hidden_nodes.js.map +1 -1
  481. package/dist/state_plugins/links.d.ts +11 -0
  482. package/dist/state_plugins/links.d.ts.map +1 -0
  483. package/dist/state_plugins/links.js +39 -25
  484. package/dist/state_plugins/links.js.map +1 -1
  485. package/dist/state_plugins/marginboxes.d.ts +6 -0
  486. package/dist/state_plugins/marginboxes.d.ts.map +1 -0
  487. package/dist/state_plugins/marginboxes.js +2 -1
  488. package/dist/state_plugins/marginboxes.js.map +1 -1
  489. package/dist/state_plugins/ordered_list_menu.d.ts +6 -0
  490. package/dist/state_plugins/ordered_list_menu.d.ts.map +1 -0
  491. package/dist/state_plugins/ordered_list_menu.js +20 -6
  492. package/dist/state_plugins/ordered_list_menu.js.map +1 -1
  493. package/dist/state_plugins/placeholders.d.ts +6 -0
  494. package/dist/state_plugins/placeholders.d.ts.map +1 -0
  495. package/dist/state_plugins/placeholders.js +18 -54
  496. package/dist/state_plugins/placeholders.js.map +1 -1
  497. package/dist/state_plugins/search.d.ts +34 -0
  498. package/dist/state_plugins/search.d.ts.map +1 -0
  499. package/dist/state_plugins/search.js +31 -27
  500. package/dist/state_plugins/search.js.map +1 -1
  501. package/dist/state_plugins/selection_menu.d.ts +6 -0
  502. package/dist/state_plugins/selection_menu.d.ts.map +1 -0
  503. package/dist/state_plugins/selection_menu.js +1 -1
  504. package/dist/state_plugins/selection_menu.js.map +1 -1
  505. package/dist/state_plugins/settings.d.ts +8 -0
  506. package/dist/state_plugins/settings.d.ts.map +1 -0
  507. package/dist/state_plugins/settings.js +31 -21
  508. package/dist/state_plugins/settings.js.map +1 -1
  509. package/dist/state_plugins/table.d.ts +6 -0
  510. package/dist/state_plugins/table.d.ts.map +1 -0
  511. package/dist/state_plugins/table.js +33 -13
  512. package/dist/state_plugins/table.js.map +1 -1
  513. package/dist/state_plugins/tag_input/index.d.ts +3 -0
  514. package/dist/state_plugins/tag_input/index.d.ts.map +1 -0
  515. package/dist/state_plugins/tag_input/index.js.map +1 -1
  516. package/dist/state_plugins/tag_input/node_view.d.ts +7 -0
  517. package/dist/state_plugins/tag_input/node_view.d.ts.map +1 -0
  518. package/dist/state_plugins/tag_input/node_view.js.map +1 -1
  519. package/dist/state_plugins/tag_input/plugin.d.ts +14 -0
  520. package/dist/state_plugins/tag_input/plugin.d.ts.map +1 -0
  521. package/dist/state_plugins/tag_input/plugin.js +7 -6
  522. package/dist/state_plugins/tag_input/plugin.js.map +1 -1
  523. package/dist/state_plugins/toc_render.d.ts +6 -0
  524. package/dist/state_plugins/toc_render.d.ts.map +1 -0
  525. package/dist/state_plugins/toc_render.js +59 -96
  526. package/dist/state_plugins/toc_render.js.map +1 -1
  527. package/dist/state_plugins/toolbar.d.ts +6 -0
  528. package/dist/state_plugins/toolbar.d.ts.map +1 -0
  529. package/dist/state_plugins/toolbar.js +1 -1
  530. package/dist/state_plugins/toolbar.js.map +1 -1
  531. package/dist/state_plugins/track/find_selected_changes.d.ts +13 -0
  532. package/dist/state_plugins/track/find_selected_changes.d.ts.map +1 -0
  533. package/dist/state_plugins/track/find_selected_changes.js +4 -3
  534. package/dist/state_plugins/track/find_selected_changes.js.map +1 -1
  535. package/dist/state_plugins/track/helpers.d.ts +29 -0
  536. package/dist/state_plugins/track/helpers.d.ts.map +1 -0
  537. package/dist/state_plugins/track/helpers.js +9 -3
  538. package/dist/state_plugins/track/helpers.js.map +1 -1
  539. package/dist/state_plugins/track/index.d.ts +3 -0
  540. package/dist/state_plugins/track/index.d.ts.map +1 -0
  541. package/dist/state_plugins/track/index.js.map +1 -1
  542. package/dist/state_plugins/track/plugin.d.ts +14 -0
  543. package/dist/state_plugins/track/plugin.d.ts.map +1 -0
  544. package/dist/state_plugins/track/plugin.js +10 -6
  545. package/dist/state_plugins/track/plugin.js.map +1 -1
  546. package/dist/tools/index.d.ts +4 -0
  547. package/dist/tools/index.d.ts.map +1 -0
  548. package/dist/tools/index.js.map +1 -1
  549. package/dist/tools/key_bindings/index.d.ts +7 -0
  550. package/dist/tools/key_bindings/index.d.ts.map +1 -0
  551. package/dist/tools/key_bindings/index.js +1 -3
  552. package/dist/tools/key_bindings/index.js.map +1 -1
  553. package/dist/tools/key_bindings/templates.d.ts +2 -0
  554. package/dist/tools/key_bindings/templates.d.ts.map +1 -0
  555. package/dist/tools/key_bindings/templates.js.map +1 -1
  556. package/dist/tools/search_replace/index.d.ts +28 -0
  557. package/dist/tools/search_replace/index.d.ts.map +1 -0
  558. package/dist/tools/search_replace/index.js +53 -27
  559. package/dist/tools/search_replace/index.js.map +1 -1
  560. package/dist/tools/search_replace/templates.d.ts +6 -0
  561. package/dist/tools/search_replace/templates.d.ts.map +1 -0
  562. package/dist/tools/search_replace/templates.js.map +1 -1
  563. package/dist/tools/word_count/index.d.ts +15 -0
  564. package/dist/tools/word_count/index.d.ts.map +1 -0
  565. package/dist/tools/word_count/index.js +2 -1
  566. package/dist/tools/word_count/index.js.map +1 -1
  567. package/dist/tools/word_count/templates.d.ts +11 -0
  568. package/dist/tools/word_count/templates.d.ts.map +1 -0
  569. package/dist/tools/word_count/templates.js.map +1 -1
  570. package/dist/track/accept.d.ts +3 -0
  571. package/dist/track/accept.d.ts.map +1 -0
  572. package/dist/track/accept.js +10 -5
  573. package/dist/track/accept.js.map +1 -1
  574. package/dist/track/accept_all.d.ts +3 -0
  575. package/dist/track/accept_all.d.ts.map +1 -0
  576. package/dist/track/accept_all.js +2 -2
  577. package/dist/track/accept_all.js.map +1 -1
  578. package/dist/track/accept_all_no_insertions.d.ts +3 -0
  579. package/dist/track/accept_all_no_insertions.d.ts.map +1 -0
  580. package/dist/track/accept_all_no_insertions.js +2 -2
  581. package/dist/track/accept_all_no_insertions.js.map +1 -1
  582. package/dist/track/amend_transaction.d.ts +5 -0
  583. package/dist/track/amend_transaction.d.ts.map +1 -0
  584. package/dist/track/amend_transaction.js +55 -32
  585. package/dist/track/amend_transaction.js.map +1 -1
  586. package/dist/track/delete.d.ts +3 -0
  587. package/dist/track/delete.d.ts.map +1 -0
  588. package/dist/track/delete.js +4 -3
  589. package/dist/track/delete.js.map +1 -1
  590. package/dist/track/index.d.ts +6 -0
  591. package/dist/track/index.d.ts.map +1 -0
  592. package/dist/track/index.js.map +1 -1
  593. package/dist/track/mod.d.ts +10 -0
  594. package/dist/track/mod.d.ts.map +1 -0
  595. package/dist/track/mod.js +9 -5
  596. package/dist/track/mod.js.map +1 -1
  597. package/dist/track/reject.d.ts +3 -0
  598. package/dist/track/reject.d.ts.map +1 -0
  599. package/dist/track/reject.js +14 -5
  600. package/dist/track/reject.js.map +1 -1
  601. package/dist/track/reject_all.d.ts +3 -0
  602. package/dist/track/reject_all.d.ts.map +1 -0
  603. package/dist/track/reject_all.js +6 -2
  604. package/dist/track/reject_all.js.map +1 -1
  605. package/dist/types.d.ts +182 -0
  606. package/dist/types.d.ts.map +1 -0
  607. package/dist/types.js +17 -0
  608. package/dist/types.js.map +1 -0
  609. package/package.json +38 -3
  610. package/src/bibliography/{tools.js → tools.ts} +16 -5
  611. package/src/citations/{index.js → index.ts} +100 -80
  612. package/src/citations/{render.js → render.ts} +43 -15
  613. package/src/clipboard/copy/{schema.js → schema.ts} +19 -8
  614. package/src/clipboard/copy/{serializers.js → serializers.ts} +44 -32
  615. package/src/clipboard/paste/{fidus_writer.js → fidus_writer.ts} +28 -8
  616. package/src/clipboard/paste/{general.js → general.ts} +28 -13
  617. package/src/clipboard/paste/{google_docs.js → google_docs.ts} +7 -4
  618. package/src/clipboard/paste/{html.js → html.ts} +35 -8
  619. package/src/clipboard/paste/{libreoffice_writer.js → libreoffice_writer.ts} +4 -4
  620. package/src/clipboard/paste/{microsoft_word.js → microsoft_word.ts} +22 -21
  621. package/src/clipboard/paste/{text.js → text.ts} +11 -7
  622. package/src/collab/{chat.js → chat.ts} +78 -27
  623. package/src/collab/{colors.js → colors.ts} +21 -5
  624. package/src/collab/{doc.js → doc.ts} +290 -184
  625. package/src/collab/{index.js → index.ts} +47 -13
  626. package/src/collab/merge/{changeset.js → changeset.ts} +33 -20
  627. package/src/collab/merge/{editor.js → editor.ts} +211 -107
  628. package/src/collab/merge/{footnotes.js → footnotes.ts} +43 -22
  629. package/src/collab/merge/{index.js → index.ts} +147 -70
  630. package/src/collab/merge/{recreate_transform.js → recreate_transform.ts} +60 -29
  631. package/src/collab/merge/{schema.js → schema.ts} +55 -35
  632. package/src/collab/merge/state_plugins/{action.js → action.ts} +65 -27
  633. package/src/collab/merge/state_plugins/{clipboard.js → clipboard.ts} +13 -3
  634. package/src/collab/merge/state_plugins/{diff.js → diff.ts} +279 -168
  635. package/src/collab/merge/{tools.js → tools.ts} +57 -27
  636. package/src/collab/{templates.js → templates.ts} +17 -2
  637. package/src/comments/{comment.js → comment.ts} +26 -0
  638. package/src/comments/editors/{answer.js → answer.ts} +27 -12
  639. package/src/comments/editors/{comment.js → comment.ts} +112 -36
  640. package/src/comments/editors/{notify.js → notify.ts} +6 -1
  641. package/src/comments/editors/{schema.js → schema.ts} +9 -8
  642. package/src/comments/index.ts +16 -0
  643. package/src/comments/{interactions.js → interactions.ts} +150 -89
  644. package/src/comments/{store.js → store.ts} +149 -73
  645. package/src/contacts/{add_dialog.js → add_dialog.ts} +50 -37
  646. package/src/contacts/{templates.js → templates.ts} +9 -3
  647. package/src/copyright_dialog/{index.js → index.ts} +92 -57
  648. package/src/copyright_dialog/{templates.js → templates.ts} +18 -3
  649. package/src/databases/{bibliography.js → bibliography.ts} +62 -36
  650. package/src/databases/{images.js → images.ts} +146 -96
  651. package/src/databases/index.ts +116 -0
  652. package/src/dialogs/{citation.js → citation.ts} +187 -106
  653. package/src/dialogs/{code_block.js → code_block.ts} +75 -33
  654. package/src/dialogs/{contributor.js → contributor.ts} +74 -49
  655. package/src/dialogs/{figure.js → figure.ts} +250 -149
  656. package/src/dialogs/{language.js → language.ts} +11 -6
  657. package/src/dialogs/{link.js → link.ts} +105 -60
  658. package/src/dialogs/{math.js → math.ts} +56 -28
  659. package/src/dialogs/{ordered_list.js → ordered_list.ts} +25 -12
  660. package/src/dialogs/{revision.js → revision.ts} +13 -9
  661. package/src/dialogs/{subsup.js → subsup.ts} +9 -7
  662. package/src/dialogs/{table.js → table.ts} +129 -70
  663. package/src/dialogs/{templates.js → templates.ts} +102 -22
  664. package/src/document_template/exporter.ts +158 -0
  665. package/src/document_template/{index.js → index.ts} +158 -117
  666. package/src/document_template/{schema.js → schema.ts} +31 -28
  667. package/src/documents/access_rights/{index.js → index.ts} +240 -123
  668. package/src/documents/access_rights/{templates.js → templates.ts} +41 -5
  669. package/src/e2ee/{snapshot-manager.js → snapshot-manager.ts} +80 -49
  670. package/src/exporter/native/copy.ts +302 -0
  671. package/src/exporter/native/{file.js → file.ts} +12 -5
  672. package/src/exporter/native/{revision.js → revision.ts} +17 -9
  673. package/src/footnotes/{editor.js → editor.ts} +37 -18
  674. package/src/footnotes/index.ts +21 -0
  675. package/src/footnotes/{layout.js → layout.ts} +53 -36
  676. package/src/footnotes/state_plugins/{access_rights.js → access_rights.ts} +6 -4
  677. package/src/global.d.ts +29 -0
  678. package/src/images/edit_dialog/{model.js → model.ts} +1 -1
  679. package/src/{index.js → index.ts} +193 -132
  680. package/src/{keymap.js → keymap.ts} +36 -16
  681. package/src/marginboxes/{index.js → index.ts} +341 -171
  682. package/src/marginboxes/{templates.js → templates.ts} +236 -38
  683. package/src/menus/code_block/{model.js → model.ts} +16 -5
  684. package/src/menus/figure/{model.js → model.ts} +21 -16
  685. package/src/menus/figure/utils.ts +13 -0
  686. package/src/menus/headerbar/{model.js → model.ts} +243 -153
  687. package/src/menus/headerbar/{view.js → view.ts} +189 -92
  688. package/src/menus/image/{model.js → model.ts} +13 -4
  689. package/src/menus/navigator/{model.js → model.ts} +6 -1
  690. package/src/menus/ordered_list/{model.js → model.ts} +2 -1
  691. package/src/menus/selection/{model.js → model.ts} +38 -20
  692. package/src/menus/selection/{view.js → view.ts} +88 -35
  693. package/src/menus/table/{model.js → model.ts} +84 -63
  694. package/src/menus/toolbar/{model.js → model.ts} +267 -215
  695. package/src/menus/toolbar/{view.js → view.ts} +135 -65
  696. package/src/modules.d.ts +84 -0
  697. package/src/navigator/{index.js → index.ts} +90 -56
  698. package/src/no_collab_save/{index.js → index.ts} +54 -31
  699. package/src/state_plugins/{access_rights.js → access_rights.ts} +12 -7
  700. package/src/state_plugins/citation_render.ts +63 -0
  701. package/src/state_plugins/{clipboard.js → clipboard.ts} +38 -23
  702. package/src/state_plugins/{code_block.js → code_block.ts} +62 -28
  703. package/src/state_plugins/{collab_carets.js → collab_carets.ts} +56 -25
  704. package/src/state_plugins/{comments.js → comments.ts} +70 -40
  705. package/src/state_plugins/contributor_input/{dropup.js → dropup.ts} +70 -38
  706. package/src/state_plugins/contributor_input/{node_view.js → node_view.ts} +13 -4
  707. package/src/state_plugins/contributor_input/{plugin.js → plugin.ts} +74 -75
  708. package/src/state_plugins/{document_template.js → document_template.ts} +108 -49
  709. package/src/state_plugins/{figure.js → figure.ts} +61 -23
  710. package/src/state_plugins/footnote_markers.ts +142 -0
  711. package/src/state_plugins/{headerbar.js → headerbar.ts} +4 -2
  712. package/src/state_plugins/{index.js → index.ts} +23 -56
  713. package/src/state_plugins/{inline_math.js → inline_math.ts} +151 -65
  714. package/src/state_plugins/inline_reference/{dropup.js → dropup.ts} +68 -34
  715. package/src/state_plugins/inline_reference/{plugin.js → plugin.ts} +221 -101
  716. package/src/state_plugins/jump_hidden_nodes.ts +67 -0
  717. package/src/state_plugins/{links.js → links.ts} +153 -99
  718. package/src/state_plugins/marginboxes.ts +17 -0
  719. package/src/state_plugins/{ordered_list_menu.js → ordered_list_menu.ts} +43 -17
  720. package/src/state_plugins/placeholders.ts +78 -0
  721. package/src/state_plugins/{search.js → search.ts} +110 -48
  722. package/src/state_plugins/{selection_menu.js → selection_menu.ts} +4 -2
  723. package/src/state_plugins/{settings.js → settings.ts} +68 -39
  724. package/src/state_plugins/table.ts +169 -0
  725. package/src/state_plugins/tag_input/{node_view.js → node_view.ts} +12 -3
  726. package/src/state_plugins/tag_input/plugin.ts +292 -0
  727. package/src/state_plugins/toc_render.ts +133 -0
  728. package/src/state_plugins/{toolbar.js → toolbar.ts} +4 -2
  729. package/src/state_plugins/track/{find_selected_changes.js → find_selected_changes.ts} +34 -19
  730. package/src/state_plugins/track/{helpers.js → helpers.ts} +36 -10
  731. package/src/state_plugins/track/{plugin.js → plugin.ts} +38 -14
  732. package/src/tools/key_bindings/{index.js → index.ts} +7 -3
  733. package/src/tools/key_bindings/{templates.js → templates.ts} +1 -1
  734. package/src/tools/search_replace/{index.js → index.ts} +115 -69
  735. package/src/tools/search_replace/{templates.js → templates.ts} +6 -1
  736. package/src/tools/word_count/{index.js → index.ts} +16 -6
  737. package/src/tools/word_count/{templates.js → templates.ts} +10 -1
  738. package/src/track/{accept.js → accept.ts} +20 -9
  739. package/src/track/{accept_all.js → accept_all.ts} +27 -17
  740. package/src/track/{accept_all_no_insertions.js → accept_all_no_insertions.ts} +16 -10
  741. package/src/track/{amend_transaction.js → amend_transaction.ts} +130 -70
  742. package/src/track/{delete.js → delete.ts} +15 -12
  743. package/src/track/{mod.js → mod.ts} +51 -32
  744. package/src/track/{reject.js → reject.ts} +34 -19
  745. package/src/track/{reject_all.js → reject_all.ts} +44 -24
  746. package/src/types.ts +214 -0
  747. package/src/comments/index.js +0 -11
  748. package/src/databases/index.js +0 -69
  749. package/src/document_template/exporter.js +0 -97
  750. package/src/exporter/native/copy.js +0 -191
  751. package/src/footnotes/index.js +0 -16
  752. package/src/menus/figure/utils.js +0 -5
  753. package/src/state_plugins/citation_render.js +0 -88
  754. package/src/state_plugins/footnote_markers.js +0 -238
  755. package/src/state_plugins/jump_hidden_nodes.js +0 -58
  756. package/src/state_plugins/marginboxes.js +0 -14
  757. package/src/state_plugins/placeholders.js +0 -123
  758. package/src/state_plugins/table.js +0 -127
  759. package/src/state_plugins/tag_input/plugin.js +0 -278
  760. package/src/state_plugins/toc_render.js +0 -160
  761. /package/src/clipboard/copy/{index.js → index.ts} +0 -0
  762. /package/src/clipboard/paste/{index.js → index.ts} +0 -0
  763. /package/src/collab/merge/state_plugins/{index.js → index.ts} +0 -0
  764. /package/src/comments/editors/{index.js → index.ts} +0 -0
  765. /package/src/dialogs/{index.js → index.ts} +0 -0
  766. /package/src/exporter/native/{index.js → index.ts} +0 -0
  767. /package/src/exporter/native/{zip.js → zip.ts} +0 -0
  768. /package/src/footnotes/state_plugins/{index.js → index.ts} +0 -0
  769. /package/src/menus/code_block/{index.js → index.ts} +0 -0
  770. /package/src/menus/figure/{index.js → index.ts} +0 -0
  771. /package/src/menus/headerbar/{index.js → index.ts} +0 -0
  772. /package/src/menus/image/{index.js → index.ts} +0 -0
  773. /package/src/menus/{index.js → index.ts} +0 -0
  774. /package/src/menus/navigator/{index.js → index.ts} +0 -0
  775. /package/src/menus/ordered_list/{index.js → index.ts} +0 -0
  776. /package/src/menus/selection/{index.js → index.ts} +0 -0
  777. /package/src/menus/table/{index.js → index.ts} +0 -0
  778. /package/src/menus/toolbar/{index.js → index.ts} +0 -0
  779. /package/src/plugins/citation_dialog/{index.js → index.ts} +0 -0
  780. /package/src/plugins/editor/{index.js → index.ts} +0 -0
  781. /package/src/state_plugins/contributor_input/{index.js → index.ts} +0 -0
  782. /package/src/state_plugins/inline_reference/{index.js → index.ts} +0 -0
  783. /package/src/state_plugins/tag_input/{index.js → index.ts} +0 -0
  784. /package/src/state_plugins/track/{index.js → index.ts} +0 -0
  785. /package/src/tools/{index.js → index.ts} +0 -0
  786. /package/src/track/{index.js → index.ts} +0 -0
@@ -1,25 +1,114 @@
1
1
  import {DiffDOM, stringToObj} from "diff-dom"
2
2
  import fastdom from "fastdom"
3
+ import type {Node} from "prosemirror-model"
4
+ import type {Selection} from "prosemirror-state"
5
+ import type {EditorView} from "prosemirror-view"
3
6
 
4
7
  import {cancelPromise, findTarget} from "fwtoolkit"
5
8
  import {READ_ONLY_ROLES} from "../index.js"
6
9
  import {
7
10
  getCommentDuringCreationDecoration,
8
- getFootnoteMarkers,
9
- getSelectedChanges
11
+ getFootnoteMarkers
10
12
  } from "../state_plugins/index.js"
13
+ import {getSelectedChanges} from "../state_plugins/track/index.js"
14
+ import type {Editor} from "../types.js"
11
15
  import {
12
16
  globalCommentsTemplate,
13
17
  marginBoxOptions,
14
18
  marginBoxesTemplate,
15
19
  marginboxFilterTemplate
16
20
  } from "./templates.js"
21
+ import type {
22
+ Comment,
23
+ MarginBox,
24
+ MarginBoxFilterOptions,
25
+ Participant
26
+ } from "./templates.js"
27
+
28
+ interface SelectedChanges {
29
+ insertion?: {from: number; to: number}
30
+ deletion?: {from: number; to: number}
31
+ format_change?: {from: number; to: number}
32
+ block_change?: {from: number; to: number}
33
+ }
34
+
35
+ interface NodeTrack {
36
+ type: string
37
+ data: Record<string, unknown>
38
+ }
39
+
40
+ interface CommentInteractions {
41
+ createNewGlobalComment(): void
42
+ deactivateSelectedChanges(): void
43
+ activateComment(id: string): void
44
+ isCurrentlyEditing(): boolean
45
+ activateSelectedComment(view: EditorView): void
46
+ editComment: boolean
47
+ activeCommentAnswerId: number | string | undefined
48
+ activeCommentId: number | string | undefined
49
+ findCommentIds(node: Node): string[]
50
+ }
51
+
52
+ interface CommentStore {
53
+ commentDuringCreation?: {
54
+ comment: Comment
55
+ inDOM?: boolean
56
+ }
57
+ comments: Record<string, Comment>
58
+ findComment(id: string): Comment | undefined
59
+ }
60
+
61
+ interface CommentsMod {
62
+ interactions: CommentInteractions
63
+ store: CommentStore
64
+ }
65
+
66
+ interface CollabMod {
67
+ pastParticipants: Participant[]
68
+ }
69
+
70
+ interface FootnotesMod {
71
+ fnEditor: {view: EditorView}
72
+ }
73
+
74
+ interface TrackMod {
75
+ activateTrack(view: string, type: string, pos: number): void
76
+ }
77
+
78
+ interface MarginboxesEditorMod {
79
+ comments: CommentsMod
80
+ collab: CollabMod
81
+ footnotes: FootnotesMod
82
+ track: TrackMod
83
+ }
84
+
85
+ interface MarginBoxPlacement {
86
+ height: number
87
+ refPos: number
88
+ pos?: number
89
+ }
17
90
 
18
91
  /* Functions related to layouting of comments */
19
92
  export class ModMarginboxes {
20
- constructor(editor) {
21
- editor.mod.marginboxes = this
22
- this.editor = editor
93
+ editor: Editor & {mod: MarginboxesEditorMod}
94
+ activeCommentStyle: string
95
+ filterOptions: MarginBoxFilterOptions
96
+ commentColors: {isMajor: string; marker: string; active: string}
97
+ dd: DiffDOM
98
+ marginBoxesContainerString: string
99
+ marginBoxesContainerObj: ReturnType<typeof stringToObj>
100
+ globalCommentsContainerString: string
101
+ globalCommentsContainerObj: ReturnType<typeof stringToObj>
102
+ marginBoxesPlacementStyle: string
103
+ marginBoxes: MarginBox[]
104
+ marginBoxesContainer: HTMLElement | null
105
+ globalCommentsContainer: HTMLElement | null
106
+ activeCommentStyleElement: HTMLElement | null
107
+ trackOptionsStyleElement: HTMLElement | null
108
+
109
+ constructor(editor: Editor) {
110
+ this.editor = editor as Editor & {mod: MarginboxesEditorMod}
111
+ this.editor.mod.marginboxes = this
23
112
  this.activeCommentStyle = ""
24
113
  this.filterOptions = {
25
114
  track: true,
@@ -51,6 +140,10 @@ export class ModMarginboxes {
51
140
  )
52
141
  this.marginBoxesPlacementStyle = ""
53
142
  this.marginBoxes = []
143
+ this.marginBoxesContainer = null
144
+ this.globalCommentsContainer = null
145
+ this.activeCommentStyleElement = null
146
+ this.trackOptionsStyleElement = null
54
147
  }
55
148
 
56
149
  init() {
@@ -75,7 +168,9 @@ export class ModMarginboxes {
75
168
  document.getElementById("new-global-comment")
76
169
  if (
77
170
  newGlobalCommentButton &&
78
- READ_ONLY_ROLES.includes(this.editor.docInfo.access_rights)
171
+ READ_ONLY_ROLES.includes(
172
+ this.editor.docInfo.access_rights || ""
173
+ )
79
174
  ) {
80
175
  newGlobalCommentButton.classList.add("fw-hide")
81
176
  }
@@ -85,7 +180,7 @@ export class ModMarginboxes {
85
180
  bindEvents() {
86
181
  // Bind all the click events related to the margin box filter
87
182
  document.body.addEventListener("click", event => {
88
- const el = {}
183
+ const el: {target?: Element | null} = {}
89
184
  switch (true) {
90
185
  case findTarget(event, "#new-global-comment", el):
91
186
  this.editor.mod.comments.interactions.createNewGlobalComment()
@@ -97,57 +192,68 @@ export class ModMarginboxes {
97
192
  event,
98
193
  ".margin-box-filter-comments-author",
99
194
  el
100
- ):
195
+ ): {
196
+ const target = el.target as HTMLElement | null | undefined
101
197
  this.filterOptions.commentsAuthor = Number.parseInt(
102
- el.target.dataset.id
198
+ target?.dataset.id || "0"
103
199
  )
104
200
  this.view(this.editor.currentView)
105
201
  break
202
+ }
106
203
  case findTarget(
107
204
  event,
108
205
  ".margin-box-filter-comments-assigned",
109
206
  el
110
- ):
207
+ ): {
208
+ const target = el.target as HTMLElement | null | undefined
111
209
  this.filterOptions.assigned = Number.parseInt(
112
- el.target.dataset.id
210
+ target?.dataset.id || "0"
113
211
  )
114
212
  this.view(this.editor.currentView)
115
213
  break
116
- case findTarget(event, ".show-marginbox-options-submenu", el):
214
+ }
215
+ case findTarget(event, ".show-marginbox-options-submenu", el): {
216
+ const target = el.target as HTMLElement | null | undefined
117
217
  this.closeAllMenus(".marginbox-options-submenu.fw-open")
118
- Array.from(el.target.parentElement.children)
119
- .find(node =>
120
- node.matches(".marginbox-options-submenu")
121
- )
122
- .classList.add("fw-open")
218
+ const submenu = Array.from(
219
+ target?.parentElement?.children || []
220
+ ).find(node =>
221
+ node.matches(".marginbox-options-submenu")
222
+ ) as HTMLElement | undefined
223
+ submenu?.classList.add("fw-open")
123
224
  break
124
- case findTarget(event, ".show-marginbox-options", el):
225
+ }
226
+ case findTarget(event, ".show-marginbox-options", el): {
227
+ const target = el.target as HTMLElement | null | undefined
125
228
  this.closeAllMenus()
126
229
  if (
127
- el.target.parentElement.classList.contains(
230
+ target?.parentElement?.classList.contains(
128
231
  "margin-box-filter-button"
129
232
  )
130
233
  ) {
131
- Array.from(el.target.parentElement.children)
132
- .find(node => node.matches(".fw-marginbox-options"))
133
- .classList.add("fw-open")
234
+ const options = Array.from(
235
+ target.parentElement.children
236
+ ).find(node => node.matches(".fw-marginbox-options"))
237
+ if (options) {
238
+ ;(options as HTMLElement).classList.add("fw-open")
239
+ }
134
240
  } else {
135
241
  let resolved = false
136
- if (el.target.parentElement?.parentElement) {
242
+ if (target?.parentElement?.parentElement) {
137
243
  resolved =
138
- el.target.parentElement.parentElement.classList.contains(
244
+ target.parentElement.parentElement.classList.contains(
139
245
  "resolved"
140
246
  )
141
247
  }
142
248
  const user = this.editor.user
143
249
  const docInfo = this.editor.docInfo
144
- const elData = el.target.dataset
250
+ const elData = (target as HTMLElement).dataset
145
251
  const comment = {
146
252
  answer: elData.hasOwnProperty("answer"),
147
- id: elData.id,
148
- commentId: elData.commentid,
149
- user: Number(elData.commentuser),
150
- resolved: resolved
253
+ id: elData.id || "",
254
+ commentId: elData.commentid || "",
255
+ user: Number(elData.commentuser || 0),
256
+ resolved
151
257
  }
152
258
  document.body.insertAdjacentHTML(
153
259
  "beforeend",
@@ -156,20 +262,25 @@ export class ModMarginboxes {
156
262
  const marginboxOptions = document.body.querySelector(
157
263
  ".comment-answer-options.fw-marginbox-options"
158
264
  )
159
- marginboxOptions.classList.add("fw-open")
160
- this.positionMarginBoxOptions(
161
- marginboxOptions,
162
- el.target
163
- )
265
+ if (marginboxOptions && target) {
266
+ marginboxOptions.classList.add("fw-open")
267
+ this.positionMarginBoxOptions(
268
+ marginboxOptions as HTMLElement,
269
+ target
270
+ )
271
+ }
164
272
  }
165
273
  break
166
- case findTarget(event, ".margin-box-filter-track-author", el):
274
+ }
275
+ case findTarget(event, ".margin-box-filter-track-author", el): {
276
+ const target = el.target as HTMLElement | null | undefined
167
277
  this.filterOptions.trackAuthor = Number.parseInt(
168
- el.target.dataset.id
278
+ target?.dataset.id || "0"
169
279
  )
170
280
  this.setTrackStyle()
171
281
  this.view(this.editor.currentView)
172
282
  break
283
+ }
173
284
  case findTarget(event, "#margin-box-filter-track", el):
174
285
  this.filterOptions.track = !this.filterOptions.track
175
286
  this.setTrackStyle()
@@ -183,44 +294,59 @@ export class ModMarginboxes {
183
294
  this.filterOptions.info = !this.filterOptions.info
184
295
  this.view(this.editor.currentView)
185
296
  break
186
- case findTarget(event, ".margin-box.comment.inactive", el):
187
- {
188
- const commentId = el.target.dataset.id
189
- const comment =
190
- this.editor.mod.comments.store.findComment(
191
- commentId
192
- )
193
- if (!comment?.isGlobal) {
194
- this.editor.mod.comments.interactions.deactivateSelectedChanges()
195
- }
196
- this.editor.mod.comments.interactions.activateComment(
197
- commentId
198
- )
199
- this.scrollToGlobalComment(commentId)
297
+ case findTarget(event, ".margin-box.comment.inactive", el): {
298
+ const target = el.target as HTMLElement | null | undefined
299
+ const commentId = target?.dataset.id
300
+ if (!commentId) {
301
+ break
200
302
  }
303
+ const comment =
304
+ this.editor.mod.comments.store.findComment(commentId)
305
+ if (!comment?.isGlobal) {
306
+ this.editor.mod.comments.interactions.deactivateSelectedChanges()
307
+ }
308
+ this.editor.mod.comments.interactions.activateComment(
309
+ commentId
310
+ )
311
+ this.scrollToGlobalComment(commentId)
201
312
  break
313
+ }
202
314
  case findTarget(event, ".margin-box.track.inactive", el): {
315
+ const target = el.target as HTMLElement | null | undefined
203
316
  let boxNumber = 0
204
- let seekItem = el.target
205
- while (seekItem.previousElementSibling) {
317
+ let seekItem: Element | null | undefined = target
318
+ while (seekItem?.previousElementSibling) {
206
319
  boxNumber += 1
207
320
  seekItem = seekItem.previousElementSibling
208
321
  }
209
322
  const box = this.marginBoxes[boxNumber]
210
- this.editor.mod.track.activateTrack(
211
- box.view,
212
- box.type,
213
- box.pos
214
- )
323
+ switch (box.type) {
324
+ case "insertion":
325
+ case "deletion":
326
+ case "format_change":
327
+ case "block_change":
328
+ this.editor.mod.track.activateTrack(
329
+ box.view,
330
+ box.type,
331
+ box.pos as number
332
+ )
333
+ break
334
+ default:
335
+ break
336
+ }
215
337
  break
216
338
  }
217
339
  case findTarget(
218
340
  event,
219
341
  ".margin-box.comment.fw-active .show-more-less",
220
342
  el
221
- ):
222
- this.toggleShowMore(el)
343
+ ): {
344
+ const target = el.target as HTMLElement | null | undefined
345
+ if (target) {
346
+ this.toggleShowMore(target)
347
+ }
223
348
  break
349
+ }
224
350
  default:
225
351
  this.closeAllMenus()
226
352
  this.closeAllLongComments()
@@ -231,25 +357,25 @@ export class ModMarginboxes {
231
357
  document.body.addEventListener(
232
358
  "change",
233
359
  evt => {
234
- switch (evt.target.id) {
360
+ const target = evt.target as HTMLInputElement | null
361
+ switch (target?.id) {
235
362
  case "margin-box-filter-comments-resolved":
236
- this.filterOptions.commentsResolved = evt.target.checked
363
+ this.filterOptions.commentsResolved = target.checked
237
364
  this.view(this.editor.currentView)
238
365
  break
239
366
 
240
367
  case "margin-box-filter-comments-only-major":
241
- this.filterOptions.commentsOnlyMajor =
242
- evt.target.checked
368
+ this.filterOptions.commentsOnlyMajor = target.checked
243
369
  this.view(this.editor.currentView)
244
370
  break
245
371
 
246
372
  case "margin-box-filter-info-help":
247
- this.filterOptions.help = evt.target.checked
373
+ this.filterOptions.help = target.checked
248
374
  this.view(this.editor.currentView)
249
375
  break
250
376
 
251
377
  case "margin-box-filter-info-warning":
252
- this.filterOptions.warning = evt.target.checked
378
+ this.filterOptions.warning = target.checked
253
379
  this.view(this.editor.currentView)
254
380
  break
255
381
  }
@@ -265,32 +391,35 @@ export class ModMarginboxes {
265
391
  ) {
266
392
  document.querySelectorAll(selector).forEach(el => {
267
393
  if (el.classList.contains("comment-answer-options")) {
268
- el.parentElement.removeChild(el)
394
+ el.parentElement?.removeChild(el)
269
395
  } else {
270
396
  el.classList.remove("fw-open")
271
397
  }
272
398
  })
273
399
  }
274
400
 
275
- view(view) {
401
+ view(view: EditorView) {
276
402
  // Give up if the user is currently editing a comment.
277
403
  if (this.editor.mod.comments.interactions.isCurrentlyEditing()) {
278
404
  return false
279
405
  }
280
406
  this.editor.mod.comments.interactions.activateSelectedComment(view)
407
+ return
281
408
  }
282
409
 
283
- updateDOM() {
410
+ updateDOM(): Promise<void> | false {
284
411
  // Handle the layout of the comments on the screen.
285
412
  // DOM write phase
286
413
 
287
- const marginBoxes = [],
288
- globalComments = [],
289
- referrers = [],
290
- selectedChanges = getSelectedChanges(this.editor.currentView.state)
414
+ const marginBoxes: MarginBox[] = [],
415
+ globalComments: import("./templates.js").CommentMarginBox[] = [],
416
+ referrers: number[] = []
417
+ const selectedChanges = getSelectedChanges(
418
+ this.editor.currentView.state
419
+ ) as SelectedChanges
291
420
  let fnIndex = 0,
292
421
  fnPosCount = 0,
293
- lastNodeTracks = [],
422
+ lastNodeTracks: NodeTrack[] = [],
294
423
  lastNode = this.editor.view.state.doc
295
424
 
296
425
  this.activeCommentStyle = ""
@@ -315,7 +444,7 @@ export class ModMarginboxes {
315
444
  if (node.type.name === "footnote") {
316
445
  let lastFnNode =
317
446
  this.editor.mod.footnotes.fnEditor.view.state.doc,
318
- lastFnNodeTracks = []
447
+ lastFnNodeTracks: NodeTrack[] = []
319
448
  const footnote =
320
449
  lastFnNode.childCount > fnIndex
321
450
  ? lastFnNode.child(fnIndex)
@@ -326,7 +455,7 @@ export class ModMarginboxes {
326
455
  this.editor.mod.footnotes.fnEditor.view.state.doc.nodesBetween(
327
456
  fnPosCount,
328
457
  fnPosCount + footnote.nodeSize,
329
- (fnNode, fnPos) => {
458
+ (fnNode: Node, fnPos: number) => {
330
459
  if (fnPos < fnPosCount) {
331
460
  return false
332
461
  }
@@ -343,11 +472,13 @@ export class ModMarginboxes {
343
472
  this.editor.view.state.selection
344
473
  )
345
474
  lastFnNode = fnNode
475
+ return
346
476
  }
347
477
  )
348
478
  fnIndex++
349
479
  fnPosCount += footnote.nodeSize
350
480
  }
481
+ return
351
482
  })
352
483
 
353
484
  // Add a comment that is currently under construction to the list.
@@ -367,15 +498,15 @@ export class ModMarginboxes {
367
498
  } else {
368
499
  const deco = getCommentDuringCreationDecoration(
369
500
  this.editor.view.state
370
- )
371
- let pos, view
501
+ ) as {from: number} | null | undefined
502
+ let pos: number | undefined, view: string | undefined
372
503
  if (deco) {
373
504
  pos = deco.from
374
505
  view = "main"
375
506
  } else {
376
507
  const fnDeco = getCommentDuringCreationDecoration(
377
508
  this.editor.mod.footnotes.fnEditor.view.state
378
- )
509
+ ) as {from: number} | null | undefined
379
510
  if (fnDeco) {
380
511
  pos = this.fnPosToPos(fnDeco.from)
381
512
  view = "footnote"
@@ -394,7 +525,7 @@ export class ModMarginboxes {
394
525
  view,
395
526
  pos,
396
527
  active: true
397
- })
528
+ } as MarginBox)
398
529
  referrers.splice(index, 0, pos)
399
530
  this.activeCommentStyle +=
400
531
  ".active-comment, .active-comment .comment {background-color: #fffacf !important;}"
@@ -449,7 +580,9 @@ export class ModMarginboxes {
449
580
  this.marginBoxesContainerObj,
450
581
  newMarginBoxesContainerObj
451
582
  )
452
- this.dd.apply(this.marginBoxesContainer, diff)
583
+ if (this.marginBoxesContainer) {
584
+ this.dd.apply(this.marginBoxesContainer, diff)
585
+ }
453
586
  this.marginBoxesContainerString = marginBoxesHTML
454
587
  this.marginBoxesContainerObj = newMarginBoxesContainerObj
455
588
  }
@@ -461,14 +594,14 @@ export class ModMarginboxes {
461
594
  this.globalCommentsContainerObj,
462
595
  newGlobalCommentsContainerObj
463
596
  )
464
- this.dd.apply(this.globalCommentsContainer, diff)
597
+ if (this.globalCommentsContainer) {
598
+ this.dd.apply(this.globalCommentsContainer, diff)
599
+ }
465
600
  this.globalCommentsContainerString = globalCommentsHTML
466
601
  this.globalCommentsContainerObj = newGlobalCommentsContainerObj
467
602
  }
468
603
 
469
- if (
470
- this.activeCommentStyleElement.innerHTML != this.activeCommentStyle
471
- ) {
604
+ if (this.activeCommentStyleElement) {
472
605
  this.activeCommentStyleElement.innerHTML = this.activeCommentStyle
473
606
  }
474
607
 
@@ -491,7 +624,11 @@ export class ModMarginboxes {
491
624
  }
492
625
 
493
626
  return new Promise(resolve => {
494
- fastdom.measure(() => {
627
+ const fd = fastdom as unknown as {
628
+ measure(cb: () => void): void
629
+ mutate(cb: () => void): void
630
+ }
631
+ fd.measure(() => {
495
632
  // DOM read phase
496
633
  let marginBoxesPlacementStyle = ""
497
634
  if (
@@ -513,19 +650,19 @@ export class ModMarginboxes {
513
650
  return
514
651
  }
515
652
  const bodyTop = document.body.getBoundingClientRect().top,
516
- marginBoxPlacements = Array.from(marginBoxesDOM).map(
517
- (mboxDOM, index) => {
518
- const mboxDOMRect =
519
- mboxDOM.getBoundingClientRect()
520
- return {
521
- height: mboxDOMRect.height,
522
- refPos:
523
- this.editor.view.coordsAtPos(
524
- referrers[index]
525
- ).top - bodyTop
526
- }
653
+ marginBoxPlacements: MarginBoxPlacement[] = Array.from(
654
+ marginBoxesDOM
655
+ ).map((mboxDOM, index) => {
656
+ const mboxDOMRect =
657
+ mboxDOM.getBoundingClientRect()
658
+ return {
659
+ height: mboxDOMRect.height,
660
+ refPos:
661
+ this.editor.view.coordsAtPos(
662
+ referrers[index]
663
+ ).top - bodyTop
527
664
  }
528
- ),
665
+ }),
529
666
  firstActiveIndex = marginBoxes.findIndex(
530
667
  mBox => mBox.active
531
668
  ),
@@ -546,12 +683,12 @@ export class ModMarginboxes {
546
683
  mboxPlacement.refPos
547
684
  )
548
685
  }
549
- currentPos = mboxPlacement.pos
686
+ currentPos = mboxPlacement.pos as number
550
687
  activeIndex--
551
688
  }
552
689
  if (firstActiveIndex > -1) {
553
690
  currentPos =
554
- firstActiveMboxPlacement.pos +
691
+ (firstActiveMboxPlacement.pos as number) +
555
692
  firstActiveMboxPlacement.height
556
693
  activeIndex = firstActiveIndex + 1
557
694
  } else {
@@ -564,7 +701,7 @@ export class ModMarginboxes {
564
701
  currentPos + 2,
565
702
  mboxPlacement.refPos
566
703
  )
567
- currentPos = mboxPlacement.pos + mboxPlacement.height
704
+ currentPos = (mboxPlacement.pos as number) + mboxPlacement.height
568
705
  activeIndex++
569
706
  }
570
707
 
@@ -587,10 +724,10 @@ export class ModMarginboxes {
587
724
  if (mboxPlacement.height === 0) {
588
725
  return ""
589
726
  }
590
- const pos = mboxPlacement.pos - initialOffset
727
+ const pos = (mboxPlacement.pos as number) - initialOffset
591
728
  let css = ""
592
729
  if (pos !== totalOffset) {
593
- let topMargin = Number.parseInt(
730
+ let topMargin = Math.trunc(
594
731
  pos - totalOffset
595
732
  )
596
733
  if (selectionInTitle) {
@@ -605,7 +742,8 @@ export class ModMarginboxes {
605
742
  .join("")
606
743
  if (firstActiveIndex > -1) {
607
744
  const topMenuHeight =
608
- this.editor.dom.querySelector("header").offsetHeight
745
+ (this.editor.dom.querySelector("header") as HTMLElement | null)
746
+ ?.offsetHeight || 0
609
747
  const refDistanceFromTop = this.editor.view.coordsAtPos(
610
748
  referrers[firstActiveIndex]
611
749
  ).top
@@ -619,22 +757,24 @@ export class ModMarginboxes {
619
757
  window.scrollBy({
620
758
  left: 0,
621
759
  top: scrollTop,
622
- behavior: "smooth",
623
- block: "center"
624
- })
760
+ behavior: "smooth"
761
+ } as unknown as ScrollToOptions)
625
762
  }
626
763
  }
627
764
  }
628
765
 
629
- fastdom.mutate(() => {
766
+ fd.mutate(() => {
630
767
  //DOM write phase
631
768
  if (
632
769
  this.marginBoxesPlacementStyle !==
633
770
  marginBoxesPlacementStyle
634
771
  ) {
635
- document.getElementById(
772
+ const placementStyleEl = document.getElementById(
636
773
  "margin-box-placement-style"
637
- ).innerHTML = marginBoxesPlacementStyle
774
+ )
775
+ if (placementStyleEl) {
776
+ placementStyleEl.innerHTML = marginBoxesPlacementStyle
777
+ }
638
778
  this.marginBoxesPlacementStyle =
639
779
  marginBoxesPlacementStyle
640
780
  }
@@ -647,37 +787,44 @@ export class ModMarginboxes {
647
787
  })
648
788
  }
649
789
 
650
- fnPosToPos(fnPos) {
790
+ fnPosToPos(fnPos: number) {
651
791
  const fnIndex = this.editor.mod.footnotes.fnEditor.view.state.doc
652
792
  .resolve(fnPos)
653
793
  .index(0),
654
- fnMarker = getFootnoteMarkers(this.editor.view.state)[fnIndex]
794
+ fnMarker = (
795
+ getFootnoteMarkers(this.editor.view.state) as Array<{
796
+ from: number
797
+ }>
798
+ )[fnIndex]
655
799
 
656
800
  return fnMarker.from
657
801
  }
658
802
 
659
803
  getMarginBoxes(
660
- node,
661
- pos,
662
- refPos,
663
- lastNode,
664
- lastNodeTracks,
665
- view,
666
- marginBoxes,
667
- referrers,
668
- selectedChanges,
669
- selection // Selection in main editor
670
- ) {
804
+ node: Node,
805
+ pos: number,
806
+ refPos: number,
807
+ lastNode: Node,
808
+ lastNodeTracks: NodeTrack[],
809
+ view: string,
810
+ marginBoxes: MarginBox[],
811
+ referrers: number[],
812
+ selectedChanges: SelectedChanges,
813
+ selection: Selection
814
+ ): NodeTrack[] {
815
+ const selectionLike = selection as Selection & {
816
+ node?: Node
817
+ }
671
818
  if (node.attrs.help) {
672
819
  // Help/instruction margin boxes
673
820
  const helpBox = {
674
821
  type: "help",
675
822
  data: {
676
- active: selection.$anchor.node(1) === node ? true : false,
823
+ active: selectionLike.$anchor.node(1) === node ? true : false,
677
824
  help: node.attrs.help
678
825
  }
679
826
  }
680
- marginBoxes.push(helpBox)
827
+ marginBoxes.push(helpBox as MarginBox)
681
828
  referrers.push(refPos)
682
829
  }
683
830
 
@@ -685,11 +832,11 @@ export class ModMarginboxes {
685
832
  const warningBox = {
686
833
  type: "warning",
687
834
  data: {
688
- active: selection.node && selection.node === node,
835
+ active: selectionLike.node && selectionLike.node === node,
689
836
  warning: gettext("A cross reference has lost its target.")
690
837
  }
691
838
  }
692
- marginBoxes.push(warningBox)
839
+ marginBoxes.push(warningBox as MarginBox)
693
840
  referrers.push(refPos)
694
841
  }
695
842
 
@@ -702,15 +849,17 @@ export class ModMarginboxes {
702
849
  )
703
850
  ) {
704
851
  const linkMark = node.marks.find(mark => mark.type.name === "link")
705
- const warningBox = {
706
- type: "warning",
707
- data: {
708
- active: linkMark.isInSet(selection.$anchor.marks()),
709
- warning: gettext("An internal link has lost its target.")
852
+ if (linkMark) {
853
+ const warningBox = {
854
+ type: "warning",
855
+ data: {
856
+ active: linkMark.isInSet(selectionLike.$anchor.marks()),
857
+ warning: gettext("An internal link has lost its target.")
858
+ }
710
859
  }
860
+ marginBoxes.push(warningBox as MarginBox)
861
+ referrers.push(refPos)
711
862
  }
712
- marginBoxes.push(warningBox)
713
- referrers.push(refPos)
714
863
  }
715
864
 
716
865
  const commentIds =
@@ -719,8 +868,16 @@ export class ModMarginboxes {
719
868
  : []
720
869
 
721
870
  const nodeTracks = node.attrs.track
722
- ? node.attrs.track.map(track => {
723
- const nodeTrack = {
871
+ ? (
872
+ node.attrs.track as Array<{
873
+ type: string
874
+ user: number
875
+ username: string
876
+ date: number
877
+ before?: unknown
878
+ }>
879
+ ).map(track => {
880
+ const nodeTrack: NodeTrack = {
724
881
  type: track.type,
725
882
  data: {
726
883
  user: track.user,
@@ -762,26 +919,33 @@ export class ModMarginboxes {
762
919
  track.type
763
920
  ) ||
764
921
  (track.type === "format_change" &&
765
- track.data.before.length ===
766
- lastTrack.data.before.length &&
767
- track.data.after.length ===
768
- lastTrack.data.after.length &&
769
- track.data.before.every(markName =>
770
- lastTrack.data.before.includes(
771
- markName
772
- )
922
+ (track.data.before as string[]).length ===
923
+ (lastTrack.data.before as string[])
924
+ .length &&
925
+ (track.data.after as string[]).length ===
926
+ (lastTrack.data.after as string[])
927
+ .length &&
928
+ (track.data.before as string[]).every(
929
+ markName =>
930
+ (lastTrack.data.before as string[]).includes(
931
+ markName
932
+ )
773
933
  ) &&
774
- track.data.after.every(markName =>
775
- lastTrack.data.after.includes(
776
- markName
777
- )
934
+ (track.data.after as string[]).every(
935
+ markName =>
936
+ (lastTrack.data.after as string[]).includes(
937
+ markName
938
+ )
778
939
  )) ||
779
940
  (track.type === "block_change" &&
780
- track.data.before.type ===
781
- lastTrack.data.before.type &&
782
- track.data.before.attrs.level ===
783
- lastTrack.data.before.attrs
784
- .level))
941
+ (track.data.before as {type: string}).type ===
942
+ (lastTrack.data.before as {type: string})
943
+ .type &&
944
+ (track.data.before as {attrs?: {level?: number}})
945
+ .attrs?.level ===
946
+ (lastTrack.data.before as {
947
+ attrs?: {level?: number}
948
+ }).attrs?.level))
785
949
  )
786
950
  )
787
951
  : nodeTracks
@@ -793,11 +957,12 @@ export class ModMarginboxes {
793
957
  pos,
794
958
  view,
795
959
  active:
796
- selectedChanges[track.type] &&
797
- selectedChanges[track.type].from === pos
960
+ selectedChanges[track.type as keyof SelectedChanges] &&
961
+ selectedChanges[track.type as keyof SelectedChanges]!
962
+ .from === pos
798
963
  },
799
964
  track
800
- )
965
+ ) as MarginBox
801
966
  )
802
967
  referrers.push(refPos)
803
968
  })
@@ -850,25 +1015,28 @@ export class ModMarginboxes {
850
1015
  document.body.querySelectorAll(selector).forEach(el => {
851
1016
  el.classList.remove("show-more")
852
1017
  const showMoreButton =
853
- el.parentElement.parentElement.querySelector(".show-more-less")
1018
+ el.parentElement?.parentElement?.querySelector(".show-more-less")
854
1019
  if (showMoreButton) {
855
- showMoreButton.innerText = `${gettext("show more")}`
1020
+ showMoreButton.innerHTML = `${gettext("show more")}`
856
1021
  }
857
1022
  })
858
1023
  }
859
1024
 
860
- positionMarginBoxOptions(marginBoxDialog, showMarginboxOptionsBtn) {
1025
+ positionMarginBoxOptions(
1026
+ marginBoxDialog: HTMLElement,
1027
+ showMarginboxOptionsBtn: Element
1028
+ ) {
861
1029
  const btnTop = showMarginboxOptionsBtn.getBoundingClientRect().top,
862
1030
  scrollTopOffset = window.pageYOffset,
863
1031
  mBoxRight = showMarginboxOptionsBtn
864
1032
  .closest(".comment-answer-container")
865
- .getBoundingClientRect().right
1033
+ ?.getBoundingClientRect().right || 0
866
1034
 
867
1035
  marginBoxDialog.style.top = `${btnTop + scrollTopOffset + 30}px`
868
1036
  marginBoxDialog.style.left = `${mBoxRight - marginBoxDialog.getBoundingClientRect().width - 10}px`
869
1037
  }
870
1038
 
871
- scrollToGlobalComment(id) {
1039
+ scrollToGlobalComment(id: string) {
872
1040
  const commentDOM = document.querySelector(
873
1041
  `#global-comments #margin-box-${id}`
874
1042
  )
@@ -876,7 +1044,8 @@ export class ModMarginboxes {
876
1044
  return
877
1045
  }
878
1046
  const topMenuHeight =
879
- this.editor.dom.querySelector("header").offsetHeight,
1047
+ (this.editor.dom.querySelector("header") as HTMLElement | null)
1048
+ ?.offsetHeight || 0,
880
1049
  rect = commentDOM.getBoundingClientRect()
881
1050
  if (rect.top < topMenuHeight || rect.bottom > window.innerHeight - 30) {
882
1051
  const scrollTop = rect.top - (topMenuHeight + 90)
@@ -893,7 +1062,7 @@ export class ModMarginboxes {
893
1062
  .querySelectorAll(".comment-answer-container")
894
1063
  .forEach(element => {
895
1064
  element.addEventListener("scroll", () => {
896
- const scrollTop = element.scrollTop
1065
+ const scrollTop = (element as HTMLElement).scrollTop
897
1066
  const marginBoxOption = Array.from(element.children).find(
898
1067
  node => node.matches(".show-marginbox-options")
899
1068
  )
@@ -906,22 +1075,23 @@ export class ModMarginboxes {
906
1075
  })
907
1076
  }
908
1077
 
909
- toggleShowMore(element) {
1078
+ toggleShowMore(element: Element) {
910
1079
  const commentText =
911
- element.target.parentElement.parentElement.querySelector(
912
- ".comment-p"
913
- )
1080
+ element.parentElement?.parentElement?.querySelector(".comment-p")
1081
+ if (!commentText) {
1082
+ return
1083
+ }
914
1084
  commentText.classList.toggle("show-more")
915
1085
  if (commentText.classList.contains("show-more")) {
916
- element.target.innerText = `${gettext("show less")}`
1086
+ ;(element as HTMLElement).innerText = `${gettext("show less")}`
917
1087
  } else {
918
- element.target.innerText = `${gettext("show more")}`
1088
+ ;(element as HTMLElement).innerText = `${gettext("show more")}`
919
1089
  }
920
1090
  }
921
1091
 
922
1092
  setTrackStyle() {
923
1093
  if (!this.filterOptions.track) {
924
- this.trackOptionsStyleElement.innerHTML = `span.insertion, .selected-insertion, .selected-format_change, .selected-block_change {
1094
+ this.trackOptionsStyleElement!.innerHTML = `span.insertion, .selected-insertion, .selected-format_change, .selected-block_change {
925
1095
  color: inherit !important;
926
1096
  background-color: inherit !important;
927
1097
  }
@@ -929,7 +1099,7 @@ export class ModMarginboxes {
929
1099
  display: none;
930
1100
  }`
931
1101
  } else if (this.filterOptions.trackAuthor) {
932
- this.trackOptionsStyleElement.innerHTML = `span.insertion:not([data-user="${this.filterOptions.trackAuthor}"]),
1102
+ this.trackOptionsStyleElement!.innerHTML = `span.insertion:not([data-user="${this.filterOptions.trackAuthor}"]),
933
1103
  span.insertion:not([data-user="${this.filterOptions.trackAuthor}"]) .selected-insertion,
934
1104
  .selected-format_change:not([data-user="${this.filterOptions.trackAuthor}"]),
935
1105
  .selected-block_change:not([data-user="${this.filterOptions.trackAuthor}"]) {
@@ -940,7 +1110,7 @@ export class ModMarginboxes {
940
1110
  display: none;
941
1111
  }`
942
1112
  } else {
943
- this.trackOptionsStyleElement.innerHTML = ""
1113
+ this.trackOptionsStyleElement!.innerHTML = ""
944
1114
  }
945
1115
  }
946
1116
  }