@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.
- package/dist/bibliography/tools.d.ts +14 -0
- package/dist/bibliography/tools.d.ts.map +1 -0
- package/dist/bibliography/tools.js +1 -1
- package/dist/bibliography/tools.js.map +1 -1
- package/dist/citations/index.d.ts +17 -0
- package/dist/citations/index.d.ts.map +1 -0
- package/dist/citations/index.js +22 -13
- package/dist/citations/index.js.map +1 -1
- package/dist/citations/render.d.ts +29 -0
- package/dist/citations/render.d.ts.map +1 -0
- package/dist/citations/render.js +25 -8
- package/dist/citations/render.js.map +1 -1
- package/dist/clipboard/copy/index.d.ts +2 -0
- package/dist/clipboard/copy/index.d.ts.map +1 -0
- package/dist/clipboard/copy/index.js.map +1 -1
- package/dist/clipboard/copy/schema.d.ts +4 -0
- package/dist/clipboard/copy/schema.d.ts.map +1 -0
- package/dist/clipboard/copy/schema.js +6 -5
- package/dist/clipboard/copy/schema.js.map +1 -1
- package/dist/clipboard/copy/serializers.d.ts +24 -0
- package/dist/clipboard/copy/serializers.d.ts.map +1 -0
- package/dist/clipboard/copy/serializers.js +19 -9
- package/dist/clipboard/copy/serializers.js.map +1 -1
- package/dist/clipboard/paste/fidus_writer.d.ts +7 -0
- package/dist/clipboard/paste/fidus_writer.d.ts.map +1 -0
- package/dist/clipboard/paste/fidus_writer.js +5 -2
- package/dist/clipboard/paste/fidus_writer.js.map +1 -1
- package/dist/clipboard/paste/general.d.ts +18 -0
- package/dist/clipboard/paste/general.d.ts.map +1 -0
- package/dist/clipboard/paste/general.js +18 -6
- package/dist/clipboard/paste/general.js.map +1 -1
- package/dist/clipboard/paste/google_docs.d.ts +6 -0
- package/dist/clipboard/paste/google_docs.d.ts.map +1 -0
- package/dist/clipboard/paste/google_docs.js +3 -2
- package/dist/clipboard/paste/google_docs.js.map +1 -1
- package/dist/clipboard/paste/html.d.ts +22 -0
- package/dist/clipboard/paste/html.d.ts.map +1 -0
- package/dist/clipboard/paste/html.js +15 -0
- package/dist/clipboard/paste/html.js.map +1 -1
- package/dist/clipboard/paste/index.d.ts +3 -0
- package/dist/clipboard/paste/index.d.ts.map +1 -0
- package/dist/clipboard/paste/index.js.map +1 -1
- package/dist/clipboard/paste/libreoffice_writer.d.ts +5 -0
- package/dist/clipboard/paste/libreoffice_writer.d.ts.map +1 -0
- package/dist/clipboard/paste/libreoffice_writer.js +2 -2
- package/dist/clipboard/paste/libreoffice_writer.js.map +1 -1
- package/dist/clipboard/paste/microsoft_word.d.ts +7 -0
- package/dist/clipboard/paste/microsoft_word.d.ts.map +1 -0
- package/dist/clipboard/paste/microsoft_word.js +13 -14
- package/dist/clipboard/paste/microsoft_word.js.map +1 -1
- package/dist/clipboard/paste/text.d.ts +11 -0
- package/dist/clipboard/paste/text.d.ts.map +1 -0
- package/dist/clipboard/paste/text.js +5 -3
- package/dist/clipboard/paste/text.js.map +1 -1
- package/dist/collab/chat.d.ts +24 -0
- package/dist/collab/chat.d.ts.map +1 -0
- package/dist/collab/chat.js +46 -16
- package/dist/collab/chat.js.map +1 -1
- package/dist/collab/colors.d.ts +16 -0
- package/dist/collab/colors.d.ts.map +1 -0
- package/dist/collab/colors.js +6 -0
- package/dist/collab/colors.js.map +1 -1
- package/dist/collab/doc.d.ts +147 -0
- package/dist/collab/doc.d.ts.map +1 -0
- package/dist/collab/doc.js +77 -42
- package/dist/collab/doc.js.map +1 -1
- package/dist/collab/index.d.ts +23 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +14 -3
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/merge/changeset.d.ts +23 -0
- package/dist/collab/merge/changeset.d.ts.map +1 -0
- package/dist/collab/merge/changeset.js +5 -4
- package/dist/collab/merge/changeset.js.map +1 -1
- package/dist/collab/merge/editor.d.ts +53 -0
- package/dist/collab/merge/editor.d.ts.map +1 -0
- package/dist/collab/merge/editor.js +62 -35
- package/dist/collab/merge/editor.js.map +1 -1
- package/dist/collab/merge/footnotes.d.ts +26 -0
- package/dist/collab/merge/footnotes.d.ts.map +1 -0
- package/dist/collab/merge/footnotes.js +14 -5
- package/dist/collab/merge/footnotes.js.map +1 -1
- package/dist/collab/merge/index.d.ts +32 -0
- package/dist/collab/merge/index.d.ts.map +1 -0
- package/dist/collab/merge/index.js +38 -26
- package/dist/collab/merge/index.js.map +1 -1
- package/dist/collab/merge/recreate_transform.d.ts +4 -0
- package/dist/collab/merge/recreate_transform.d.ts.map +1 -0
- package/dist/collab/merge/recreate_transform.js +25 -5
- package/dist/collab/merge/recreate_transform.js.map +1 -1
- package/dist/collab/merge/schema.d.ts +4 -0
- package/dist/collab/merge/schema.d.ts.map +1 -0
- package/dist/collab/merge/schema.js +35 -26
- package/dist/collab/merge/schema.js.map +1 -1
- package/dist/collab/merge/state_plugins/action.d.ts +16 -0
- package/dist/collab/merge/state_plugins/action.d.ts.map +1 -0
- package/dist/collab/merge/state_plugins/action.js +4 -5
- package/dist/collab/merge/state_plugins/action.js.map +1 -1
- package/dist/collab/merge/state_plugins/clipboard.d.ts +6 -0
- package/dist/collab/merge/state_plugins/clipboard.d.ts.map +1 -0
- package/dist/collab/merge/state_plugins/clipboard.js +1 -1
- package/dist/collab/merge/state_plugins/clipboard.js.map +1 -1
- package/dist/collab/merge/state_plugins/diff.d.ts +32 -0
- package/dist/collab/merge/state_plugins/diff.d.ts.map +1 -0
- package/dist/collab/merge/state_plugins/diff.js +108 -84
- package/dist/collab/merge/state_plugins/diff.js.map +1 -1
- package/dist/collab/merge/state_plugins/index.d.ts +3 -0
- package/dist/collab/merge/state_plugins/index.d.ts.map +1 -0
- package/dist/collab/merge/state_plugins/index.js.map +1 -1
- package/dist/collab/merge/tools.d.ts +11 -0
- package/dist/collab/merge/tools.d.ts.map +1 -0
- package/dist/collab/merge/tools.js +16 -14
- package/dist/collab/merge/tools.js.map +1 -1
- package/dist/collab/templates.d.ts +14 -0
- package/dist/collab/templates.d.ts.map +1 -0
- package/dist/collab/templates.js +1 -1
- package/dist/collab/templates.js.map +1 -1
- package/dist/comments/comment.d.ts +29 -0
- package/dist/comments/comment.d.ts.map +1 -0
- package/dist/comments/comment.js +12 -0
- package/dist/comments/comment.js.map +1 -1
- package/dist/comments/editors/answer.d.ts +14 -0
- package/dist/comments/editors/answer.d.ts.map +1 -0
- package/dist/comments/editors/answer.js +5 -3
- package/dist/comments/editors/answer.js.map +1 -1
- package/dist/comments/editors/comment.d.ts +65 -0
- package/dist/comments/editors/comment.d.ts.map +1 -0
- package/dist/comments/editors/comment.js +43 -14
- package/dist/comments/editors/comment.js.map +1 -1
- package/dist/comments/editors/index.d.ts +4 -0
- package/dist/comments/editors/index.d.ts.map +1 -0
- package/dist/comments/editors/index.js.map +1 -1
- package/dist/comments/editors/notify.d.ts +3 -0
- package/dist/comments/editors/notify.d.ts.map +1 -0
- package/dist/comments/editors/notify.js.map +1 -1
- package/dist/comments/editors/schema.d.ts +12 -0
- package/dist/comments/editors/schema.d.ts.map +1 -0
- package/dist/comments/editors/schema.js +5 -5
- package/dist/comments/editors/schema.js.map +1 -1
- package/dist/comments/index.d.ts +10 -0
- package/dist/comments/index.d.ts.map +1 -0
- package/dist/comments/index.js +5 -2
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/interactions.d.ts +49 -0
- package/dist/comments/interactions.d.ts.map +1 -0
- package/dist/comments/interactions.js +33 -18
- package/dist/comments/interactions.js.map +1 -1
- package/dist/comments/store.d.ts +59 -0
- package/dist/comments/store.d.ts.map +1 -0
- package/dist/comments/store.js +36 -16
- package/dist/comments/store.js.map +1 -1
- package/dist/contacts/add_dialog.d.ts +7 -0
- package/dist/contacts/add_dialog.d.ts.map +1 -0
- package/dist/contacts/add_dialog.js +25 -26
- package/dist/contacts/add_dialog.js.map +1 -1
- package/dist/contacts/templates.d.ts +12 -0
- package/dist/contacts/templates.d.ts.map +1 -0
- package/dist/contacts/templates.js +3 -2
- package/dist/contacts/templates.js.map +1 -1
- package/dist/copyright_dialog/index.d.ts +25 -0
- package/dist/copyright_dialog/index.d.ts.map +1 -0
- package/dist/copyright_dialog/index.js +34 -26
- package/dist/copyright_dialog/index.js.map +1 -1
- package/dist/copyright_dialog/templates.d.ts +17 -0
- package/dist/copyright_dialog/templates.d.ts.map +1 -0
- package/dist/copyright_dialog/templates.js.map +1 -1
- package/dist/databases/bibliography.d.ts +42 -0
- package/dist/databases/bibliography.d.ts.map +1 -0
- package/dist/databases/bibliography.js +24 -9
- package/dist/databases/bibliography.js.map +1 -1
- package/dist/databases/images.d.ts +66 -0
- package/dist/databases/images.d.ts.map +1 -0
- package/dist/databases/images.js +19 -9
- package/dist/databases/images.js.map +1 -1
- package/dist/databases/index.d.ts +26 -0
- package/dist/databases/index.d.ts.map +1 -0
- package/dist/databases/index.js +9 -8
- package/dist/databases/index.js.map +1 -1
- package/dist/dialogs/citation.d.ts +58 -0
- package/dist/dialogs/citation.d.ts.map +1 -0
- package/dist/dialogs/citation.js +43 -22
- package/dist/dialogs/citation.js.map +1 -1
- package/dist/dialogs/code_block.d.ts +25 -0
- package/dist/dialogs/code_block.d.ts.map +1 -0
- package/dist/dialogs/code_block.js +32 -11
- package/dist/dialogs/code_block.js.map +1 -1
- package/dist/dialogs/contributor.d.ts +13 -0
- package/dist/dialogs/contributor.d.ts.map +1 -0
- package/dist/dialogs/contributor.js +17 -20
- package/dist/dialogs/contributor.js.map +1 -1
- package/dist/dialogs/figure.d.ts +51 -0
- package/dist/dialogs/figure.d.ts.map +1 -0
- package/dist/dialogs/figure.js +123 -81
- package/dist/dialogs/figure.js.map +1 -1
- package/dist/dialogs/index.d.ts +11 -0
- package/dist/dialogs/index.d.ts.map +1 -0
- package/dist/dialogs/index.js.map +1 -1
- package/dist/dialogs/language.d.ts +10 -0
- package/dist/dialogs/language.d.ts.map +1 -0
- package/dist/dialogs/language.js +4 -1
- package/dist/dialogs/language.js.map +1 -1
- package/dist/dialogs/link.d.ts +30 -0
- package/dist/dialogs/link.d.ts.map +1 -0
- package/dist/dialogs/link.js +27 -15
- package/dist/dialogs/link.js.map +1 -1
- package/dist/dialogs/math.d.ts +22 -0
- package/dist/dialogs/math.d.ts.map +1 -0
- package/dist/dialogs/math.js +27 -14
- package/dist/dialogs/math.js.map +1 -1
- package/dist/dialogs/ordered_list.d.ts +22 -0
- package/dist/dialogs/ordered_list.d.ts.map +1 -0
- package/dist/dialogs/ordered_list.js +12 -5
- package/dist/dialogs/ordered_list.js.map +1 -1
- package/dist/dialogs/revision.d.ts +8 -0
- package/dist/dialogs/revision.d.ts.map +1 -0
- package/dist/dialogs/revision.js +2 -0
- package/dist/dialogs/revision.js.map +1 -1
- package/dist/dialogs/subsup.d.ts +5 -0
- package/dist/dialogs/subsup.d.ts.map +1 -0
- package/dist/dialogs/subsup.js +3 -3
- package/dist/dialogs/subsup.js.map +1 -1
- package/dist/dialogs/table.d.ts +33 -0
- package/dist/dialogs/table.d.ts.map +1 -0
- package/dist/dialogs/table.js +43 -21
- package/dist/dialogs/table.js.map +1 -1
- package/dist/dialogs/templates.d.ts +85 -0
- package/dist/dialogs/templates.d.ts.map +1 -0
- package/dist/dialogs/templates.js +8 -8
- package/dist/dialogs/templates.js.map +1 -1
- package/dist/document_template/exporter.d.ts +23 -0
- package/dist/document_template/exporter.d.ts.map +1 -0
- package/dist/document_template/exporter.js +14 -5
- package/dist/document_template/exporter.js.map +1 -1
- package/dist/document_template/index.d.ts +35 -0
- package/dist/document_template/index.d.ts.map +1 -0
- package/dist/document_template/index.js +61 -53
- package/dist/document_template/index.js.map +1 -1
- package/dist/document_template/schema.d.ts +13 -0
- package/dist/document_template/schema.d.ts.map +1 -0
- package/dist/document_template/schema.js +2 -2
- package/dist/document_template/schema.js.map +1 -1
- package/dist/documents/access_rights/index.d.ts +85 -0
- package/dist/documents/access_rights/index.d.ts.map +1 -0
- package/dist/documents/access_rights/index.js +96 -60
- package/dist/documents/access_rights/index.js.map +1 -1
- package/dist/documents/access_rights/templates.d.ts +47 -0
- package/dist/documents/access_rights/templates.d.ts.map +1 -0
- package/dist/documents/access_rights/templates.js.map +1 -1
- package/dist/e2ee/snapshot-manager.d.ts +120 -0
- package/dist/e2ee/snapshot-manager.d.ts.map +1 -0
- package/dist/e2ee/snapshot-manager.js +27 -38
- package/dist/e2ee/snapshot-manager.js.map +1 -1
- package/dist/exporter/native/copy.d.ts +16 -0
- package/dist/exporter/native/copy.d.ts.map +1 -0
- package/dist/exporter/native/copy.js +51 -35
- package/dist/exporter/native/copy.js.map +1 -1
- package/dist/exporter/native/file.d.ts +6 -0
- package/dist/exporter/native/file.d.ts.map +1 -0
- package/dist/exporter/native/file.js +1 -1
- package/dist/exporter/native/file.js.map +1 -1
- package/dist/exporter/native/index.d.ts +4 -0
- package/dist/exporter/native/index.d.ts.map +1 -0
- package/dist/exporter/native/index.js.map +1 -1
- package/dist/exporter/native/revision.d.ts +8 -0
- package/dist/exporter/native/revision.d.ts.map +1 -0
- package/dist/exporter/native/revision.js +2 -2
- package/dist/exporter/native/revision.js.map +1 -1
- package/dist/exporter/native/zip.d.ts +2 -0
- package/dist/exporter/native/zip.d.ts.map +1 -0
- package/dist/exporter/native/zip.js.map +1 -1
- package/dist/footnotes/editor.d.ts +25 -0
- package/dist/footnotes/editor.d.ts.map +1 -0
- package/dist/footnotes/editor.js +5 -3
- package/dist/footnotes/editor.js.map +1 -1
- package/dist/footnotes/index.d.ts +11 -0
- package/dist/footnotes/index.d.ts.map +1 -0
- package/dist/footnotes/index.js +5 -2
- package/dist/footnotes/index.js.map +1 -1
- package/dist/footnotes/layout.d.ts +15 -0
- package/dist/footnotes/layout.d.ts.map +1 -0
- package/dist/footnotes/layout.js +26 -17
- package/dist/footnotes/layout.js.map +1 -1
- package/dist/footnotes/state_plugins/access_rights.d.ts +6 -0
- package/dist/footnotes/state_plugins/access_rights.d.ts.map +1 -0
- package/dist/footnotes/state_plugins/access_rights.js +1 -1
- package/dist/footnotes/state_plugins/access_rights.js.map +1 -1
- package/dist/footnotes/state_plugins/index.d.ts +2 -0
- package/dist/footnotes/state_plugins/index.d.ts.map +1 -0
- package/dist/footnotes/state_plugins/index.js.map +1 -1
- package/dist/images/edit_dialog/model.d.ts +4 -0
- package/dist/images/edit_dialog/model.d.ts.map +1 -0
- package/dist/images/edit_dialog/model.js.map +1 -1
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -59
- package/dist/index.js.map +1 -1
- package/dist/keymap.d.ts +5 -0
- package/dist/keymap.d.ts.map +1 -0
- package/dist/keymap.js +1 -1
- package/dist/keymap.js.map +1 -1
- package/dist/marginboxes/index.d.ts +107 -0
- package/dist/marginboxes/index.d.ts.map +1 -0
- package/dist/marginboxes/index.js +165 -88
- package/dist/marginboxes/index.js.map +1 -1
- package/dist/marginboxes/templates.d.ts +118 -0
- package/dist/marginboxes/templates.d.ts.map +1 -0
- package/dist/marginboxes/templates.js +25 -24
- package/dist/marginboxes/templates.js.map +1 -1
- package/dist/menus/code_block/index.d.ts +2 -0
- package/dist/menus/code_block/index.d.ts.map +1 -0
- package/dist/menus/code_block/index.js.map +1 -1
- package/dist/menus/code_block/model.d.ts +14 -0
- package/dist/menus/code_block/model.d.ts.map +1 -0
- package/dist/menus/code_block/model.js +5 -4
- package/dist/menus/code_block/model.js.map +1 -1
- package/dist/menus/figure/index.d.ts +3 -0
- package/dist/menus/figure/index.d.ts.map +1 -0
- package/dist/menus/figure/index.js.map +1 -1
- package/dist/menus/figure/model.d.ts +32 -0
- package/dist/menus/figure/model.d.ts.map +1 -0
- package/dist/menus/figure/model.js +11 -12
- package/dist/menus/figure/model.js.map +1 -1
- package/dist/menus/figure/utils.d.ts +3 -0
- package/dist/menus/figure/utils.d.ts.map +1 -0
- package/dist/menus/figure/utils.js +4 -1
- package/dist/menus/figure/utils.js.map +1 -1
- package/dist/menus/headerbar/index.d.ts +3 -0
- package/dist/menus/headerbar/index.d.ts.map +1 -0
- package/dist/menus/headerbar/index.js.map +1 -1
- package/dist/menus/headerbar/model.d.ts +192 -0
- package/dist/menus/headerbar/model.d.ts.map +1 -0
- package/dist/menus/headerbar/model.js +141 -110
- package/dist/menus/headerbar/model.js.map +1 -1
- package/dist/menus/headerbar/view.d.ts +89 -0
- package/dist/menus/headerbar/view.d.ts.map +1 -0
- package/dist/menus/headerbar/view.js +76 -45
- package/dist/menus/headerbar/view.js.map +1 -1
- package/dist/menus/image/index.d.ts +2 -0
- package/dist/menus/image/index.d.ts.map +1 -0
- package/dist/menus/image/index.js.map +1 -1
- package/dist/menus/image/model.d.ts +18 -0
- package/dist/menus/image/model.d.ts.map +1 -0
- package/dist/menus/image/model.js +2 -2
- package/dist/menus/image/model.js.map +1 -1
- package/dist/menus/index.d.ts +10 -0
- package/dist/menus/index.d.ts.map +1 -0
- package/dist/menus/index.js.map +1 -1
- package/dist/menus/navigator/index.d.ts +2 -0
- package/dist/menus/navigator/index.d.ts.map +1 -0
- package/dist/menus/navigator/index.js.map +1 -1
- package/dist/menus/navigator/model.d.ts +9 -0
- package/dist/menus/navigator/model.d.ts.map +1 -0
- package/dist/menus/navigator/model.js.map +1 -1
- package/dist/menus/ordered_list/index.d.ts +2 -0
- package/dist/menus/ordered_list/index.d.ts.map +1 -0
- package/dist/menus/ordered_list/index.js.map +1 -1
- package/dist/menus/ordered_list/model.d.ts +11 -0
- package/dist/menus/ordered_list/model.d.ts.map +1 -0
- package/dist/menus/ordered_list/model.js +1 -1
- package/dist/menus/ordered_list/model.js.map +1 -1
- package/dist/menus/selection/index.d.ts +3 -0
- package/dist/menus/selection/index.d.ts.map +1 -0
- package/dist/menus/selection/index.js.map +1 -1
- package/dist/menus/selection/model.d.ts +16 -0
- package/dist/menus/selection/model.d.ts.map +1 -0
- package/dist/menus/selection/model.js +18 -16
- package/dist/menus/selection/model.js.map +1 -1
- package/dist/menus/selection/view.d.ts +49 -0
- package/dist/menus/selection/view.d.ts.map +1 -0
- package/dist/menus/selection/view.js +33 -18
- package/dist/menus/selection/view.js.map +1 -1
- package/dist/menus/table/index.d.ts +2 -0
- package/dist/menus/table/index.d.ts.map +1 -0
- package/dist/menus/table/index.js.map +1 -1
- package/dist/menus/table/model.d.ts +39 -0
- package/dist/menus/table/model.d.ts.map +1 -0
- package/dist/menus/table/model.js +53 -50
- package/dist/menus/table/model.js.map +1 -1
- package/dist/menus/toolbar/index.d.ts +3 -0
- package/dist/menus/toolbar/index.d.ts.map +1 -0
- package/dist/menus/toolbar/index.js.map +1 -1
- package/dist/menus/toolbar/model.d.ts +125 -0
- package/dist/menus/toolbar/model.d.ts.map +1 -0
- package/dist/menus/toolbar/model.js +160 -140
- package/dist/menus/toolbar/model.js.map +1 -1
- package/dist/menus/toolbar/view.d.ts +72 -0
- package/dist/menus/toolbar/view.d.ts.map +1 -0
- package/dist/menus/toolbar/view.js +61 -36
- package/dist/menus/toolbar/view.js.map +1 -1
- package/dist/navigator/index.d.ts +38 -0
- package/dist/navigator/index.d.ts.map +1 -0
- package/dist/navigator/index.js +42 -21
- package/dist/navigator/index.js.map +1 -1
- package/dist/no_collab_save/index.d.ts +20 -0
- package/dist/no_collab_save/index.d.ts.map +1 -0
- package/dist/no_collab_save/index.js +20 -11
- package/dist/no_collab_save/index.js.map +1 -1
- package/dist/plugins/citation_dialog/index.d.ts +2 -0
- package/dist/plugins/citation_dialog/index.d.ts.map +1 -0
- package/dist/plugins/citation_dialog/index.js.map +1 -1
- package/dist/plugins/editor/index.d.ts +2 -0
- package/dist/plugins/editor/index.d.ts.map +1 -0
- package/dist/plugins/editor/index.js.map +1 -1
- package/dist/state_plugins/access_rights.d.ts +6 -0
- package/dist/state_plugins/access_rights.d.ts.map +1 -0
- package/dist/state_plugins/access_rights.js +5 -3
- package/dist/state_plugins/access_rights.js.map +1 -1
- package/dist/state_plugins/citation_render.d.ts +9 -0
- package/dist/state_plugins/citation_render.d.ts.map +1 -0
- package/dist/state_plugins/citation_render.js +12 -43
- package/dist/state_plugins/citation_render.js.map +1 -1
- package/dist/state_plugins/clipboard.d.ts +12 -0
- package/dist/state_plugins/clipboard.d.ts.map +1 -0
- package/dist/state_plugins/clipboard.js +13 -11
- package/dist/state_plugins/clipboard.js.map +1 -1
- package/dist/state_plugins/code_block.d.ts +6 -0
- package/dist/state_plugins/code_block.d.ts.map +1 -0
- package/dist/state_plugins/code_block.js +23 -9
- package/dist/state_plugins/code_block.js.map +1 -1
- package/dist/state_plugins/collab_carets.d.ts +26 -0
- package/dist/state_plugins/collab_carets.d.ts.map +1 -0
- package/dist/state_plugins/collab_carets.js +24 -16
- package/dist/state_plugins/collab_carets.js.map +1 -1
- package/dist/state_plugins/comments.d.ts +15 -0
- package/dist/state_plugins/comments.d.ts.map +1 -0
- package/dist/state_plugins/comments.js +26 -21
- package/dist/state_plugins/comments.js.map +1 -1
- package/dist/state_plugins/contributor_input/dropup.d.ts +17 -0
- package/dist/state_plugins/contributor_input/dropup.d.ts.map +1 -0
- package/dist/state_plugins/contributor_input/dropup.js +19 -20
- package/dist/state_plugins/contributor_input/dropup.js.map +1 -1
- package/dist/state_plugins/contributor_input/index.d.ts +3 -0
- package/dist/state_plugins/contributor_input/index.d.ts.map +1 -0
- package/dist/state_plugins/contributor_input/index.js.map +1 -1
- package/dist/state_plugins/contributor_input/node_view.d.ts +7 -0
- package/dist/state_plugins/contributor_input/node_view.d.ts.map +1 -0
- package/dist/state_plugins/contributor_input/node_view.js.map +1 -1
- package/dist/state_plugins/contributor_input/plugin.d.ts +19 -0
- package/dist/state_plugins/contributor_input/plugin.d.ts.map +1 -0
- package/dist/state_plugins/contributor_input/plugin.js +14 -45
- package/dist/state_plugins/contributor_input/plugin.js.map +1 -1
- package/dist/state_plugins/document_template.d.ts +33 -0
- package/dist/state_plugins/document_template.d.ts.map +1 -0
- package/dist/state_plugins/document_template.js +34 -15
- package/dist/state_plugins/document_template.js.map +1 -1
- package/dist/state_plugins/figure.d.ts +6 -0
- package/dist/state_plugins/figure.d.ts.map +1 -0
- package/dist/state_plugins/figure.js +26 -8
- package/dist/state_plugins/figure.js.map +1 -1
- package/dist/state_plugins/footnote_markers.d.ts +15 -0
- package/dist/state_plugins/footnote_markers.d.ts.map +1 -0
- package/dist/state_plugins/footnote_markers.js +72 -153
- package/dist/state_plugins/footnote_markers.js.map +1 -1
- package/dist/state_plugins/headerbar.d.ts +6 -0
- package/dist/state_plugins/headerbar.d.ts.map +1 -0
- package/dist/state_plugins/headerbar.js +1 -1
- package/dist/state_plugins/headerbar.js.map +1 -1
- package/dist/state_plugins/index.d.ts +28 -0
- package/dist/state_plugins/index.d.ts.map +1 -0
- package/dist/state_plugins/index.js +13 -12
- package/dist/state_plugins/index.js.map +1 -1
- package/dist/state_plugins/inline_math.d.ts +6 -0
- package/dist/state_plugins/inline_math.d.ts.map +1 -0
- package/dist/state_plugins/inline_math.js +28 -19
- package/dist/state_plugins/inline_math.js.map +1 -1
- package/dist/state_plugins/inline_reference/dropup.d.ts +62 -0
- package/dist/state_plugins/inline_reference/dropup.d.ts.map +1 -0
- package/dist/state_plugins/inline_reference/dropup.js +17 -17
- package/dist/state_plugins/inline_reference/dropup.js.map +1 -1
- package/dist/state_plugins/inline_reference/index.d.ts +2 -0
- package/dist/state_plugins/inline_reference/index.d.ts.map +1 -0
- package/dist/state_plugins/inline_reference/index.js.map +1 -1
- package/dist/state_plugins/inline_reference/plugin.d.ts +35 -0
- package/dist/state_plugins/inline_reference/plugin.d.ts.map +1 -0
- package/dist/state_plugins/inline_reference/plugin.js +68 -55
- package/dist/state_plugins/inline_reference/plugin.js.map +1 -1
- package/dist/state_plugins/jump_hidden_nodes.d.ts +5 -0
- package/dist/state_plugins/jump_hidden_nodes.d.ts.map +1 -0
- package/dist/state_plugins/jump_hidden_nodes.js +35 -22
- package/dist/state_plugins/jump_hidden_nodes.js.map +1 -1
- package/dist/state_plugins/links.d.ts +11 -0
- package/dist/state_plugins/links.d.ts.map +1 -0
- package/dist/state_plugins/links.js +39 -25
- package/dist/state_plugins/links.js.map +1 -1
- package/dist/state_plugins/marginboxes.d.ts +6 -0
- package/dist/state_plugins/marginboxes.d.ts.map +1 -0
- package/dist/state_plugins/marginboxes.js +2 -1
- package/dist/state_plugins/marginboxes.js.map +1 -1
- package/dist/state_plugins/ordered_list_menu.d.ts +6 -0
- package/dist/state_plugins/ordered_list_menu.d.ts.map +1 -0
- package/dist/state_plugins/ordered_list_menu.js +20 -6
- package/dist/state_plugins/ordered_list_menu.js.map +1 -1
- package/dist/state_plugins/placeholders.d.ts +6 -0
- package/dist/state_plugins/placeholders.d.ts.map +1 -0
- package/dist/state_plugins/placeholders.js +18 -54
- package/dist/state_plugins/placeholders.js.map +1 -1
- package/dist/state_plugins/search.d.ts +34 -0
- package/dist/state_plugins/search.d.ts.map +1 -0
- package/dist/state_plugins/search.js +31 -27
- package/dist/state_plugins/search.js.map +1 -1
- package/dist/state_plugins/selection_menu.d.ts +6 -0
- package/dist/state_plugins/selection_menu.d.ts.map +1 -0
- package/dist/state_plugins/selection_menu.js +1 -1
- package/dist/state_plugins/selection_menu.js.map +1 -1
- package/dist/state_plugins/settings.d.ts +8 -0
- package/dist/state_plugins/settings.d.ts.map +1 -0
- package/dist/state_plugins/settings.js +31 -21
- package/dist/state_plugins/settings.js.map +1 -1
- package/dist/state_plugins/table.d.ts +6 -0
- package/dist/state_plugins/table.d.ts.map +1 -0
- package/dist/state_plugins/table.js +33 -13
- package/dist/state_plugins/table.js.map +1 -1
- package/dist/state_plugins/tag_input/index.d.ts +3 -0
- package/dist/state_plugins/tag_input/index.d.ts.map +1 -0
- package/dist/state_plugins/tag_input/index.js.map +1 -1
- package/dist/state_plugins/tag_input/node_view.d.ts +7 -0
- package/dist/state_plugins/tag_input/node_view.d.ts.map +1 -0
- package/dist/state_plugins/tag_input/node_view.js.map +1 -1
- package/dist/state_plugins/tag_input/plugin.d.ts +14 -0
- package/dist/state_plugins/tag_input/plugin.d.ts.map +1 -0
- package/dist/state_plugins/tag_input/plugin.js +7 -6
- package/dist/state_plugins/tag_input/plugin.js.map +1 -1
- package/dist/state_plugins/toc_render.d.ts +6 -0
- package/dist/state_plugins/toc_render.d.ts.map +1 -0
- package/dist/state_plugins/toc_render.js +59 -96
- package/dist/state_plugins/toc_render.js.map +1 -1
- package/dist/state_plugins/toolbar.d.ts +6 -0
- package/dist/state_plugins/toolbar.d.ts.map +1 -0
- package/dist/state_plugins/toolbar.js +1 -1
- package/dist/state_plugins/toolbar.js.map +1 -1
- package/dist/state_plugins/track/find_selected_changes.d.ts +13 -0
- package/dist/state_plugins/track/find_selected_changes.d.ts.map +1 -0
- package/dist/state_plugins/track/find_selected_changes.js +4 -3
- package/dist/state_plugins/track/find_selected_changes.js.map +1 -1
- package/dist/state_plugins/track/helpers.d.ts +29 -0
- package/dist/state_plugins/track/helpers.d.ts.map +1 -0
- package/dist/state_plugins/track/helpers.js +9 -3
- package/dist/state_plugins/track/helpers.js.map +1 -1
- package/dist/state_plugins/track/index.d.ts +3 -0
- package/dist/state_plugins/track/index.d.ts.map +1 -0
- package/dist/state_plugins/track/index.js.map +1 -1
- package/dist/state_plugins/track/plugin.d.ts +14 -0
- package/dist/state_plugins/track/plugin.d.ts.map +1 -0
- package/dist/state_plugins/track/plugin.js +10 -6
- package/dist/state_plugins/track/plugin.js.map +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/key_bindings/index.d.ts +7 -0
- package/dist/tools/key_bindings/index.d.ts.map +1 -0
- package/dist/tools/key_bindings/index.js +1 -3
- package/dist/tools/key_bindings/index.js.map +1 -1
- package/dist/tools/key_bindings/templates.d.ts +2 -0
- package/dist/tools/key_bindings/templates.d.ts.map +1 -0
- package/dist/tools/key_bindings/templates.js.map +1 -1
- package/dist/tools/search_replace/index.d.ts +28 -0
- package/dist/tools/search_replace/index.d.ts.map +1 -0
- package/dist/tools/search_replace/index.js +53 -27
- package/dist/tools/search_replace/index.js.map +1 -1
- package/dist/tools/search_replace/templates.d.ts +6 -0
- package/dist/tools/search_replace/templates.d.ts.map +1 -0
- package/dist/tools/search_replace/templates.js.map +1 -1
- package/dist/tools/word_count/index.d.ts +15 -0
- package/dist/tools/word_count/index.d.ts.map +1 -0
- package/dist/tools/word_count/index.js +2 -1
- package/dist/tools/word_count/index.js.map +1 -1
- package/dist/tools/word_count/templates.d.ts +11 -0
- package/dist/tools/word_count/templates.d.ts.map +1 -0
- package/dist/tools/word_count/templates.js.map +1 -1
- package/dist/track/accept.d.ts +3 -0
- package/dist/track/accept.d.ts.map +1 -0
- package/dist/track/accept.js +10 -5
- package/dist/track/accept.js.map +1 -1
- package/dist/track/accept_all.d.ts +3 -0
- package/dist/track/accept_all.d.ts.map +1 -0
- package/dist/track/accept_all.js +2 -2
- package/dist/track/accept_all.js.map +1 -1
- package/dist/track/accept_all_no_insertions.d.ts +3 -0
- package/dist/track/accept_all_no_insertions.d.ts.map +1 -0
- package/dist/track/accept_all_no_insertions.js +2 -2
- package/dist/track/accept_all_no_insertions.js.map +1 -1
- package/dist/track/amend_transaction.d.ts +5 -0
- package/dist/track/amend_transaction.d.ts.map +1 -0
- package/dist/track/amend_transaction.js +55 -32
- package/dist/track/amend_transaction.js.map +1 -1
- package/dist/track/delete.d.ts +3 -0
- package/dist/track/delete.d.ts.map +1 -0
- package/dist/track/delete.js +4 -3
- package/dist/track/delete.js.map +1 -1
- package/dist/track/index.d.ts +6 -0
- package/dist/track/index.d.ts.map +1 -0
- package/dist/track/index.js.map +1 -1
- package/dist/track/mod.d.ts +10 -0
- package/dist/track/mod.d.ts.map +1 -0
- package/dist/track/mod.js +9 -5
- package/dist/track/mod.js.map +1 -1
- package/dist/track/reject.d.ts +3 -0
- package/dist/track/reject.d.ts.map +1 -0
- package/dist/track/reject.js +14 -5
- package/dist/track/reject.js.map +1 -1
- package/dist/track/reject_all.d.ts +3 -0
- package/dist/track/reject_all.d.ts.map +1 -0
- package/dist/track/reject_all.js +6 -2
- package/dist/track/reject_all.js.map +1 -1
- package/dist/types.d.ts +182 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/package.json +38 -3
- package/src/bibliography/{tools.js → tools.ts} +16 -5
- package/src/citations/{index.js → index.ts} +100 -80
- package/src/citations/{render.js → render.ts} +43 -15
- package/src/clipboard/copy/{schema.js → schema.ts} +19 -8
- package/src/clipboard/copy/{serializers.js → serializers.ts} +44 -32
- package/src/clipboard/paste/{fidus_writer.js → fidus_writer.ts} +28 -8
- package/src/clipboard/paste/{general.js → general.ts} +28 -13
- package/src/clipboard/paste/{google_docs.js → google_docs.ts} +7 -4
- package/src/clipboard/paste/{html.js → html.ts} +35 -8
- package/src/clipboard/paste/{libreoffice_writer.js → libreoffice_writer.ts} +4 -4
- package/src/clipboard/paste/{microsoft_word.js → microsoft_word.ts} +22 -21
- package/src/clipboard/paste/{text.js → text.ts} +11 -7
- package/src/collab/{chat.js → chat.ts} +78 -27
- package/src/collab/{colors.js → colors.ts} +21 -5
- package/src/collab/{doc.js → doc.ts} +290 -184
- package/src/collab/{index.js → index.ts} +47 -13
- package/src/collab/merge/{changeset.js → changeset.ts} +33 -20
- package/src/collab/merge/{editor.js → editor.ts} +211 -107
- package/src/collab/merge/{footnotes.js → footnotes.ts} +43 -22
- package/src/collab/merge/{index.js → index.ts} +147 -70
- package/src/collab/merge/{recreate_transform.js → recreate_transform.ts} +60 -29
- package/src/collab/merge/{schema.js → schema.ts} +55 -35
- package/src/collab/merge/state_plugins/{action.js → action.ts} +65 -27
- package/src/collab/merge/state_plugins/{clipboard.js → clipboard.ts} +13 -3
- package/src/collab/merge/state_plugins/{diff.js → diff.ts} +279 -168
- package/src/collab/merge/{tools.js → tools.ts} +57 -27
- package/src/collab/{templates.js → templates.ts} +17 -2
- package/src/comments/{comment.js → comment.ts} +26 -0
- package/src/comments/editors/{answer.js → answer.ts} +27 -12
- package/src/comments/editors/{comment.js → comment.ts} +112 -36
- package/src/comments/editors/{notify.js → notify.ts} +6 -1
- package/src/comments/editors/{schema.js → schema.ts} +9 -8
- package/src/comments/index.ts +16 -0
- package/src/comments/{interactions.js → interactions.ts} +150 -89
- package/src/comments/{store.js → store.ts} +149 -73
- package/src/contacts/{add_dialog.js → add_dialog.ts} +50 -37
- package/src/contacts/{templates.js → templates.ts} +9 -3
- package/src/copyright_dialog/{index.js → index.ts} +92 -57
- package/src/copyright_dialog/{templates.js → templates.ts} +18 -3
- package/src/databases/{bibliography.js → bibliography.ts} +62 -36
- package/src/databases/{images.js → images.ts} +146 -96
- package/src/databases/index.ts +116 -0
- package/src/dialogs/{citation.js → citation.ts} +187 -106
- package/src/dialogs/{code_block.js → code_block.ts} +75 -33
- package/src/dialogs/{contributor.js → contributor.ts} +74 -49
- package/src/dialogs/{figure.js → figure.ts} +250 -149
- package/src/dialogs/{language.js → language.ts} +11 -6
- package/src/dialogs/{link.js → link.ts} +105 -60
- package/src/dialogs/{math.js → math.ts} +56 -28
- package/src/dialogs/{ordered_list.js → ordered_list.ts} +25 -12
- package/src/dialogs/{revision.js → revision.ts} +13 -9
- package/src/dialogs/{subsup.js → subsup.ts} +9 -7
- package/src/dialogs/{table.js → table.ts} +129 -70
- package/src/dialogs/{templates.js → templates.ts} +102 -22
- package/src/document_template/exporter.ts +158 -0
- package/src/document_template/{index.js → index.ts} +158 -117
- package/src/document_template/{schema.js → schema.ts} +31 -28
- package/src/documents/access_rights/{index.js → index.ts} +240 -123
- package/src/documents/access_rights/{templates.js → templates.ts} +41 -5
- package/src/e2ee/{snapshot-manager.js → snapshot-manager.ts} +80 -49
- package/src/exporter/native/copy.ts +302 -0
- package/src/exporter/native/{file.js → file.ts} +12 -5
- package/src/exporter/native/{revision.js → revision.ts} +17 -9
- package/src/footnotes/{editor.js → editor.ts} +37 -18
- package/src/footnotes/index.ts +21 -0
- package/src/footnotes/{layout.js → layout.ts} +53 -36
- package/src/footnotes/state_plugins/{access_rights.js → access_rights.ts} +6 -4
- package/src/global.d.ts +29 -0
- package/src/images/edit_dialog/{model.js → model.ts} +1 -1
- package/src/{index.js → index.ts} +193 -132
- package/src/{keymap.js → keymap.ts} +36 -16
- package/src/marginboxes/{index.js → index.ts} +341 -171
- package/src/marginboxes/{templates.js → templates.ts} +236 -38
- package/src/menus/code_block/{model.js → model.ts} +16 -5
- package/src/menus/figure/{model.js → model.ts} +21 -16
- package/src/menus/figure/utils.ts +13 -0
- package/src/menus/headerbar/{model.js → model.ts} +243 -153
- package/src/menus/headerbar/{view.js → view.ts} +189 -92
- package/src/menus/image/{model.js → model.ts} +13 -4
- package/src/menus/navigator/{model.js → model.ts} +6 -1
- package/src/menus/ordered_list/{model.js → model.ts} +2 -1
- package/src/menus/selection/{model.js → model.ts} +38 -20
- package/src/menus/selection/{view.js → view.ts} +88 -35
- package/src/menus/table/{model.js → model.ts} +84 -63
- package/src/menus/toolbar/{model.js → model.ts} +267 -215
- package/src/menus/toolbar/{view.js → view.ts} +135 -65
- package/src/modules.d.ts +84 -0
- package/src/navigator/{index.js → index.ts} +90 -56
- package/src/no_collab_save/{index.js → index.ts} +54 -31
- package/src/state_plugins/{access_rights.js → access_rights.ts} +12 -7
- package/src/state_plugins/citation_render.ts +63 -0
- package/src/state_plugins/{clipboard.js → clipboard.ts} +38 -23
- package/src/state_plugins/{code_block.js → code_block.ts} +62 -28
- package/src/state_plugins/{collab_carets.js → collab_carets.ts} +56 -25
- package/src/state_plugins/{comments.js → comments.ts} +70 -40
- package/src/state_plugins/contributor_input/{dropup.js → dropup.ts} +70 -38
- package/src/state_plugins/contributor_input/{node_view.js → node_view.ts} +13 -4
- package/src/state_plugins/contributor_input/{plugin.js → plugin.ts} +74 -75
- package/src/state_plugins/{document_template.js → document_template.ts} +108 -49
- package/src/state_plugins/{figure.js → figure.ts} +61 -23
- package/src/state_plugins/footnote_markers.ts +142 -0
- package/src/state_plugins/{headerbar.js → headerbar.ts} +4 -2
- package/src/state_plugins/{index.js → index.ts} +23 -56
- package/src/state_plugins/{inline_math.js → inline_math.ts} +151 -65
- package/src/state_plugins/inline_reference/{dropup.js → dropup.ts} +68 -34
- package/src/state_plugins/inline_reference/{plugin.js → plugin.ts} +221 -101
- package/src/state_plugins/jump_hidden_nodes.ts +67 -0
- package/src/state_plugins/{links.js → links.ts} +153 -99
- package/src/state_plugins/marginboxes.ts +17 -0
- package/src/state_plugins/{ordered_list_menu.js → ordered_list_menu.ts} +43 -17
- package/src/state_plugins/placeholders.ts +78 -0
- package/src/state_plugins/{search.js → search.ts} +110 -48
- package/src/state_plugins/{selection_menu.js → selection_menu.ts} +4 -2
- package/src/state_plugins/{settings.js → settings.ts} +68 -39
- package/src/state_plugins/table.ts +169 -0
- package/src/state_plugins/tag_input/{node_view.js → node_view.ts} +12 -3
- package/src/state_plugins/tag_input/plugin.ts +292 -0
- package/src/state_plugins/toc_render.ts +133 -0
- package/src/state_plugins/{toolbar.js → toolbar.ts} +4 -2
- package/src/state_plugins/track/{find_selected_changes.js → find_selected_changes.ts} +34 -19
- package/src/state_plugins/track/{helpers.js → helpers.ts} +36 -10
- package/src/state_plugins/track/{plugin.js → plugin.ts} +38 -14
- package/src/tools/key_bindings/{index.js → index.ts} +7 -3
- package/src/tools/key_bindings/{templates.js → templates.ts} +1 -1
- package/src/tools/search_replace/{index.js → index.ts} +115 -69
- package/src/tools/search_replace/{templates.js → templates.ts} +6 -1
- package/src/tools/word_count/{index.js → index.ts} +16 -6
- package/src/tools/word_count/{templates.js → templates.ts} +10 -1
- package/src/track/{accept.js → accept.ts} +20 -9
- package/src/track/{accept_all.js → accept_all.ts} +27 -17
- package/src/track/{accept_all_no_insertions.js → accept_all_no_insertions.ts} +16 -10
- package/src/track/{amend_transaction.js → amend_transaction.ts} +130 -70
- package/src/track/{delete.js → delete.ts} +15 -12
- package/src/track/{mod.js → mod.ts} +51 -32
- package/src/track/{reject.js → reject.ts} +34 -19
- package/src/track/{reject_all.js → reject_all.ts} +44 -24
- package/src/types.ts +214 -0
- package/src/comments/index.js +0 -11
- package/src/databases/index.js +0 -69
- package/src/document_template/exporter.js +0 -97
- package/src/exporter/native/copy.js +0 -191
- package/src/footnotes/index.js +0 -16
- package/src/menus/figure/utils.js +0 -5
- package/src/state_plugins/citation_render.js +0 -88
- package/src/state_plugins/footnote_markers.js +0 -238
- package/src/state_plugins/jump_hidden_nodes.js +0 -58
- package/src/state_plugins/marginboxes.js +0 -14
- package/src/state_plugins/placeholders.js +0 -123
- package/src/state_plugins/table.js +0 -127
- package/src/state_plugins/tag_input/plugin.js +0 -278
- package/src/state_plugins/toc_render.js +0 -160
- /package/src/clipboard/copy/{index.js → index.ts} +0 -0
- /package/src/clipboard/paste/{index.js → index.ts} +0 -0
- /package/src/collab/merge/state_plugins/{index.js → index.ts} +0 -0
- /package/src/comments/editors/{index.js → index.ts} +0 -0
- /package/src/dialogs/{index.js → index.ts} +0 -0
- /package/src/exporter/native/{index.js → index.ts} +0 -0
- /package/src/exporter/native/{zip.js → zip.ts} +0 -0
- /package/src/footnotes/state_plugins/{index.js → index.ts} +0 -0
- /package/src/menus/code_block/{index.js → index.ts} +0 -0
- /package/src/menus/figure/{index.js → index.ts} +0 -0
- /package/src/menus/headerbar/{index.js → index.ts} +0 -0
- /package/src/menus/image/{index.js → index.ts} +0 -0
- /package/src/menus/{index.js → index.ts} +0 -0
- /package/src/menus/navigator/{index.js → index.ts} +0 -0
- /package/src/menus/ordered_list/{index.js → index.ts} +0 -0
- /package/src/menus/selection/{index.js → index.ts} +0 -0
- /package/src/menus/table/{index.js → index.ts} +0 -0
- /package/src/menus/toolbar/{index.js → index.ts} +0 -0
- /package/src/plugins/citation_dialog/{index.js → index.ts} +0 -0
- /package/src/plugins/editor/{index.js → index.ts} +0 -0
- /package/src/state_plugins/contributor_input/{index.js → index.ts} +0 -0
- /package/src/state_plugins/inline_reference/{index.js → index.ts} +0 -0
- /package/src/state_plugins/tag_input/{index.js → index.ts} +0 -0
- /package/src/state_plugins/track/{index.js → index.ts} +0 -0
- /package/src/tools/{index.js → index.ts} +0 -0
- /package/src/track/{index.js → index.ts} +0 -0
package/dist/collab/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/collab/chat.
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/collab/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Editor } from "../types.js";
|
|
2
|
+
interface ModCollab {
|
|
3
|
+
colors: ModCollabColors;
|
|
4
|
+
editor: Editor;
|
|
5
|
+
}
|
|
6
|
+
export declare class ModCollabColors {
|
|
7
|
+
mod: ModCollab;
|
|
8
|
+
userColorStyle: HTMLStyleElement | false;
|
|
9
|
+
colorIds: number[];
|
|
10
|
+
constructor(mod: ModCollab);
|
|
11
|
+
setup(): void;
|
|
12
|
+
ensureUserColor(userId: number): void;
|
|
13
|
+
provideUserColorStyles(): void;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/collab/colors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAcvC,UAAU,SAAS;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACjB;AAGD,qBAAa,eAAe;IACxB,GAAG,EAAE,SAAS,CAAA;IACd,cAAc,EAAE,gBAAgB,GAAG,KAAK,CAAA;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAA;gBAEN,GAAG,EAAE,SAAS;IAQ1B,KAAK,IAAI,IAAI;IAYb,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWrC,sBAAsB,IAAI,IAAI;CAwBjC"}
|
package/dist/collab/colors.js
CHANGED
|
@@ -12,6 +12,9 @@ const CSS_COLORS = [
|
|
|
12
12
|
];
|
|
13
13
|
/* Create a CSS stylesheet for the colors of all users. */
|
|
14
14
|
export class ModCollabColors {
|
|
15
|
+
mod;
|
|
16
|
+
userColorStyle;
|
|
17
|
+
colorIds;
|
|
15
18
|
constructor(mod) {
|
|
16
19
|
mod.colors = this;
|
|
17
20
|
this.mod = mod;
|
|
@@ -39,6 +42,9 @@ export class ModCollabColors {
|
|
|
39
42
|
}
|
|
40
43
|
// Ensure that there are at least the given number of user color styles.
|
|
41
44
|
provideUserColorStyles() {
|
|
45
|
+
if (!this.userColorStyle) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
42
48
|
this.userColorStyle.innerHTML = this.colorIds
|
|
43
49
|
.map((id, index) => {
|
|
44
50
|
const color = index < CSS_COLORS.length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/collab/colors.
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/collab/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAIpC,MAAM,UAAU,GAAG;IACf,WAAW;IACX,WAAW;IACX,SAAS;IACT,WAAW;IACX,YAAY;IACZ,aAAa;IACb,WAAW;IACX,aAAa;IACb,WAAW;CACd,CAAA;AAOD,0DAA0D;AAC1D,MAAM,OAAO,eAAe;IACxB,GAAG,CAAW;IACd,cAAc,CAA0B;IACxC,QAAQ,CAAU;IAElB,YAAY,GAAc;QACtB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC;IAED,KAAK;QACD,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACtD,eAAe,CAAC,SAAS;YACrB,kDAAkD,CAAA;QACtD,OAAO,eAAe,CAAC,iBAAiB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CACzC,aAAa,CACI,CAAA;IACzB,CAAC;IAED,eAAe,CAAC,MAAc;QAC1B;;WAEG;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACjC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,sBAAsB;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,OAAM;QACV,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;aACxC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACf,MAAM,KAAK,GACP,KAAK,GAAG,UAAU,CAAC,MAAM;gBACrB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;YACpH,OAAO,UAAU,CAAA;4BACL,EAAE;yCACW,KAAK;kDACI,KAAK;;4BAE3B,EAAE;kCACI,KAAK;;2BAEZ,EAAE;6CACgB,KAAK;kBAChC,CAAA;QACN,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;CACJ"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { EditorState } from "prosemirror-state";
|
|
2
|
+
import type { Transaction } from "prosemirror-state";
|
|
3
|
+
import { Merge } from "./merge/index.js";
|
|
4
|
+
import type { ModCollab } from "./index.js";
|
|
5
|
+
interface IncomingDoc {
|
|
6
|
+
v: number;
|
|
7
|
+
content: unknown;
|
|
8
|
+
comments: unknown;
|
|
9
|
+
bibliography: unknown;
|
|
10
|
+
images?: Record<string, {
|
|
11
|
+
copyright?: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
template?: {
|
|
14
|
+
content: unknown;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface DiffData {
|
|
18
|
+
type?: string;
|
|
19
|
+
v?: number;
|
|
20
|
+
rid?: number;
|
|
21
|
+
cid?: string | number;
|
|
22
|
+
ds?: unknown[];
|
|
23
|
+
fs?: unknown[];
|
|
24
|
+
cu?: unknown[];
|
|
25
|
+
bu?: unknown[];
|
|
26
|
+
iu?: unknown[];
|
|
27
|
+
footnoterender?: boolean;
|
|
28
|
+
reject_request_id?: number;
|
|
29
|
+
ep?: string;
|
|
30
|
+
e2ee_salt?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class ModCollabDoc {
|
|
33
|
+
mod: ModCollab;
|
|
34
|
+
merge: Merge;
|
|
35
|
+
unconfirmedDiffs: Record<number, any>;
|
|
36
|
+
confirmStepsRequestCounter: number;
|
|
37
|
+
awaitingDiffResponse: boolean;
|
|
38
|
+
receiving: boolean;
|
|
39
|
+
currentlyCheckingVersion: boolean;
|
|
40
|
+
enableCheckVersion?: number;
|
|
41
|
+
footnoteRender: boolean;
|
|
42
|
+
initialVersionConfirmed: boolean;
|
|
43
|
+
initialDocLoaded: boolean;
|
|
44
|
+
templateAdjustmentPending: boolean;
|
|
45
|
+
sendNextDiffTimer?: number;
|
|
46
|
+
lastSelectionUpdateState?: EditorState;
|
|
47
|
+
constructor(mod: ModCollab);
|
|
48
|
+
cancelCurrentlyCheckingVersion(): void;
|
|
49
|
+
checkVersion(offline?: boolean): void;
|
|
50
|
+
disableDiffSending(): void;
|
|
51
|
+
enableDiffSending(): void;
|
|
52
|
+
receiveDocument(data: {
|
|
53
|
+
doc: IncomingDoc;
|
|
54
|
+
}): void;
|
|
55
|
+
finishInitialLoad(): void;
|
|
56
|
+
confirmVersion(version: number): void;
|
|
57
|
+
loadDocument(data: {
|
|
58
|
+
doc: IncomingDoc;
|
|
59
|
+
time: number;
|
|
60
|
+
doc_info: Record<string, any>;
|
|
61
|
+
}): void;
|
|
62
|
+
/**
|
|
63
|
+
* Load an E2EE document: try passphrase/DEK first, then fall back to
|
|
64
|
+
* per-document password prompt, decrypt, then load.
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
_loadE2EEDocument(doc: IncomingDoc, doc_info: Record<string, any>, isInitialLoad: boolean, urlFragmentPassword?: string): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Prompt for a password, derive the key, and decrypt/load the document.
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
_promptPasswordAndDecrypt(doc: IncomingDoc, doc_info: Record<string, any>, salt: string | undefined, iterations: number | undefined, isInitialLoad: boolean, urlFragmentPassword?: string): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Decrypt document content/comments/bibliography with the given key
|
|
75
|
+
* and load into ProseMirror.
|
|
76
|
+
*
|
|
77
|
+
* For a newly created E2EE document, no encrypted snapshot has been
|
|
78
|
+
* saved yet, so the content/comments/bibliography are still plaintext
|
|
79
|
+
* JSON objects (the template content). We detect this by checking
|
|
80
|
+
* whether the value is a string (encrypted = Base64 ciphertext) or
|
|
81
|
+
* an object (plaintext).
|
|
82
|
+
*
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
_decryptAndLoadDoc(doc: IncomingDoc, key: CryptoKey, salt: string | undefined, iterations: number | undefined, isInitialLoad: boolean, urlFragmentPassword: string): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Load an unencrypted (or already decrypted) document into ProseMirror.
|
|
88
|
+
* This is the original loadDocument logic, extracted for reuse.
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
_loadUnencryptedDocument(doc: IncomingDoc, isInitialLoad: boolean): void;
|
|
92
|
+
setDocSettings(): void;
|
|
93
|
+
sendToCollaborators(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Send an encrypted diff for an E2EE document.
|
|
96
|
+
*
|
|
97
|
+
* For E2EE documents, the diff payload (steps, comments, bibliography,
|
|
98
|
+
* image updates) is encrypted as a single blob before sending. The
|
|
99
|
+
* server relays the encrypted diff to other clients without being able
|
|
100
|
+
* to read the content.
|
|
101
|
+
*
|
|
102
|
+
* The unencrypted diff is stored locally in `unconfirmedDiffs` for
|
|
103
|
+
* confirmation/rejection handling. Only the wire format is encrypted.
|
|
104
|
+
*
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
_sendE2EEDiff(): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Send a selection change for an E2EE document.
|
|
110
|
+
* Selection changes are not encrypted (they only contain cursor position).
|
|
111
|
+
*
|
|
112
|
+
* @private
|
|
113
|
+
*/
|
|
114
|
+
_sendE2EESelectionChange(): void;
|
|
115
|
+
receiveSelectionChange(data: {
|
|
116
|
+
id: number;
|
|
117
|
+
editor: string;
|
|
118
|
+
session_id: string;
|
|
119
|
+
anchor: number;
|
|
120
|
+
head: number;
|
|
121
|
+
}): void;
|
|
122
|
+
receiveDiff(data: DiffData, serverFix?: boolean): void;
|
|
123
|
+
/**
|
|
124
|
+
* Process a diff (unencrypted or already decrypted).
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
_processDiff(data: DiffData, serverFix?: boolean): void;
|
|
128
|
+
/**
|
|
129
|
+
* Receive and decrypt an E2EE diff from another client.
|
|
130
|
+
*
|
|
131
|
+
* For E2EE documents, diffs arrive with an "ep" (encrypted payload)
|
|
132
|
+
* field containing the encrypted steps, comments, bibliography, and
|
|
133
|
+
* image updates. This method decrypts the payload and then processes
|
|
134
|
+
* the diff using the standard _processDiff path.
|
|
135
|
+
*
|
|
136
|
+
* @param data - The diff message with "ep" field
|
|
137
|
+
* @param serverFix - Whether this is a server-generated fix
|
|
138
|
+
* @private
|
|
139
|
+
*/
|
|
140
|
+
_receiveE2EEDiff(data: DiffData, serverFix?: boolean): Promise<void>;
|
|
141
|
+
setConfirmedDoc(tr: Transaction, stepsLength: number): void;
|
|
142
|
+
confirmDiff(request_id: number): void;
|
|
143
|
+
rejectDiff(request_id: number): void;
|
|
144
|
+
applyDiffs(diffs: unknown[], cid: string | number | undefined): void;
|
|
145
|
+
}
|
|
146
|
+
export {};
|
|
147
|
+
//# sourceMappingURL=doc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../src/collab/doc.ts"],"names":[],"mappings":"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"}
|
package/dist/collab/doc.js
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
import { SchemaExport } from "@fiduswriter/document/schema/export";
|
|
2
2
|
import { Dialog, activateWait, deactivateWait, makeWorker } from "fwtoolkit";
|
|
3
|
-
import { receiveTransaction, sendableSteps } from "prosemirror-collab";
|
|
4
|
-
import { EditorState } from "prosemirror-state";
|
|
5
|
-
import { Step } from "prosemirror-transform";
|
|
6
3
|
import { E2EEEncryptor } from "fwtoolkit/e2ee/encryptor";
|
|
7
4
|
import { E2EEKeyManager } from "fwtoolkit/e2ee/key-manager";
|
|
8
5
|
import { enterPassphraseDialog } from "fwtoolkit/e2ee/passphrase-dialog";
|
|
9
6
|
import { PassphraseManager } from "fwtoolkit/e2ee/passphrase-manager";
|
|
10
7
|
import { enterPasswordDialog } from "fwtoolkit/e2ee/password-dialog";
|
|
8
|
+
import { receiveTransaction, sendableSteps } from "prosemirror-collab";
|
|
9
|
+
import { EditorState } from "prosemirror-state";
|
|
10
|
+
import { Step } from "prosemirror-transform";
|
|
11
11
|
import { getSelectionUpdate, removeCollaboratorSelection, updateCollaboratorSelection } from "../state_plugins/index.js";
|
|
12
12
|
import { Merge } from "./merge/index.js";
|
|
13
13
|
export class ModCollabDoc {
|
|
14
|
+
mod;
|
|
15
|
+
merge;
|
|
16
|
+
unconfirmedDiffs;
|
|
17
|
+
confirmStepsRequestCounter;
|
|
18
|
+
awaitingDiffResponse;
|
|
19
|
+
receiving;
|
|
20
|
+
currentlyCheckingVersion;
|
|
21
|
+
enableCheckVersion;
|
|
22
|
+
footnoteRender;
|
|
23
|
+
initialVersionConfirmed;
|
|
24
|
+
initialDocLoaded;
|
|
25
|
+
templateAdjustmentPending;
|
|
26
|
+
sendNextDiffTimer;
|
|
27
|
+
lastSelectionUpdateState;
|
|
14
28
|
constructor(mod) {
|
|
15
29
|
mod.doc = this;
|
|
16
30
|
this.mod = mod;
|
|
@@ -35,7 +49,8 @@ export class ModCollabDoc {
|
|
|
35
49
|
if (!this.mod.editor.ws) {
|
|
36
50
|
return;
|
|
37
51
|
}
|
|
38
|
-
this.mod.editor.ws
|
|
52
|
+
const ws = this.mod.editor.ws;
|
|
53
|
+
ws.send(() => {
|
|
39
54
|
if (this.currentlyCheckingVersion ||
|
|
40
55
|
this.mod.editor.docInfo.version === undefined) {
|
|
41
56
|
return;
|
|
@@ -44,7 +59,7 @@ export class ModCollabDoc {
|
|
|
44
59
|
this.enableCheckVersion = window.setTimeout(() => {
|
|
45
60
|
this.currentlyCheckingVersion = false;
|
|
46
61
|
}, 1000);
|
|
47
|
-
if (
|
|
62
|
+
if (ws.connected) {
|
|
48
63
|
this.disableDiffSending();
|
|
49
64
|
}
|
|
50
65
|
const msg = {
|
|
@@ -100,24 +115,24 @@ export class ModCollabDoc {
|
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
|
-
loadDocument(
|
|
118
|
+
loadDocument(data) {
|
|
104
119
|
const isInitialLoad = !this.mod.editor.docInfo.confirmedDoc;
|
|
105
120
|
// Reset collaboration
|
|
106
121
|
this.unconfirmedDiffs = {};
|
|
107
122
|
if (this.awaitingDiffResponse) {
|
|
108
123
|
this.enableDiffSending();
|
|
109
124
|
}
|
|
110
|
-
this.mod.editor.clientTimeAdjustment = Date.now() - time;
|
|
125
|
+
this.mod.editor.clientTimeAdjustment = Date.now() - data.time;
|
|
111
126
|
const token = this.mod.editor.docInfo.token;
|
|
112
|
-
this.mod.editor.docInfo = doc_info;
|
|
127
|
+
this.mod.editor.docInfo = data.doc_info;
|
|
113
128
|
this.mod.editor.docInfo.token = token;
|
|
114
129
|
// For guests, update user object with the token UUID (stable identity)
|
|
115
130
|
// and session_id (for display). Token UUID persists across reconnections.
|
|
116
131
|
// session_id may not be present when loading from REST (it comes via
|
|
117
132
|
// the session_info WebSocket message). Only update if available.
|
|
118
133
|
if (!this.mod.editor.user.is_authenticated &&
|
|
119
|
-
doc_info.session_id !== undefined) {
|
|
120
|
-
const sessionId = doc_info.session_id;
|
|
134
|
+
data.doc_info.session_id !== undefined) {
|
|
135
|
+
const sessionId = data.doc_info.session_id;
|
|
121
136
|
this.mod.editor.user = {
|
|
122
137
|
id: token, // stable — same token UUID even after reconnect
|
|
123
138
|
username: `guest${sessionId}`, // display name per session
|
|
@@ -126,17 +141,17 @@ export class ModCollabDoc {
|
|
|
126
141
|
};
|
|
127
142
|
}
|
|
128
143
|
this.mod.editor.docInfo.token = token;
|
|
129
|
-
this.mod.editor.docInfo.version = doc.v;
|
|
144
|
+
this.mod.editor.docInfo.version = data.doc.v;
|
|
130
145
|
this.mod.editor.docInfo.updated = new Date();
|
|
131
146
|
// Check if this is an E2EE document. If so, we need to decrypt
|
|
132
147
|
// the content before loading it into ProseMirror.
|
|
133
|
-
const isE2EE = doc_info.e2ee === true;
|
|
148
|
+
const isE2EE = data.doc_info.e2ee === true;
|
|
134
149
|
if (isE2EE) {
|
|
135
|
-
this._loadE2EEDocument(doc, doc_info, isInitialLoad);
|
|
150
|
+
this._loadE2EEDocument(data.doc, data.doc_info, isInitialLoad);
|
|
136
151
|
}
|
|
137
152
|
else {
|
|
138
153
|
this.mod.editor.e2ee = { encrypted: false };
|
|
139
|
-
this._loadUnencryptedDocument(doc, isInitialLoad);
|
|
154
|
+
this._loadUnencryptedDocument(data.doc, isInitialLoad);
|
|
140
155
|
}
|
|
141
156
|
}
|
|
142
157
|
/**
|
|
@@ -144,12 +159,11 @@ export class ModCollabDoc {
|
|
|
144
159
|
* per-document password prompt, decrypt, then load.
|
|
145
160
|
* @private
|
|
146
161
|
*/
|
|
147
|
-
async _loadE2EEDocument(doc, doc_info, isInitialLoad) {
|
|
162
|
+
async _loadE2EEDocument(doc, doc_info, isInitialLoad, urlFragmentPassword = "") {
|
|
148
163
|
// Extract password from URL fragment if present (share link format:
|
|
149
164
|
// https://example.com/share/TOKEN/#target?password=PASSWORD). The fragment is never
|
|
150
165
|
// sent to the server, so this is safe.
|
|
151
166
|
const locationHash = window.location.hash;
|
|
152
|
-
let urlFragmentPassword = "";
|
|
153
167
|
if (locationHash && locationHash.includes("?")) {
|
|
154
168
|
urlFragmentPassword = decodeURIComponent(new URLSearchParams(locationHash.split("?")[1]).get("password") || "");
|
|
155
169
|
}
|
|
@@ -226,7 +240,7 @@ export class ModCollabDoc {
|
|
|
226
240
|
let unlocked = false;
|
|
227
241
|
while (!unlocked) {
|
|
228
242
|
const result = await new Promise(resolve => {
|
|
229
|
-
enterPassphraseDialog(pwd => resolve({ action: "unlock", passphrase: pwd }), () => resolve({ action: "recover" }), { errorMessage });
|
|
243
|
+
enterPassphraseDialog((pwd) => resolve({ action: "unlock", passphrase: pwd }), () => resolve({ action: "recover" }), { errorMessage });
|
|
230
244
|
});
|
|
231
245
|
if (result.action === "unlock" && result.passphrase) {
|
|
232
246
|
try {
|
|
@@ -253,7 +267,7 @@ export class ModCollabDoc {
|
|
|
253
267
|
});
|
|
254
268
|
if (recoverResult) {
|
|
255
269
|
try {
|
|
256
|
-
const { newRecoveryKey } = await PassphraseManager.recoverWithRecoveryKey(recoverResult.recoveryKey, recoverResult.newPassphrase);
|
|
270
|
+
const { newRecoveryKey } = (await PassphraseManager.recoverWithRecoveryKey(recoverResult.recoveryKey, recoverResult.newPassphrase));
|
|
257
271
|
const { showRecoveryKeyDialog } = await import("fwtoolkit/e2ee/passphrase-dialog");
|
|
258
272
|
await new Promise(resolve => {
|
|
259
273
|
showRecoveryKeyDialog(newRecoveryKey, resolve);
|
|
@@ -351,7 +365,7 @@ export class ModCollabDoc {
|
|
|
351
365
|
* Prompt for a password, derive the key, and decrypt/load the document.
|
|
352
366
|
* @private
|
|
353
367
|
*/
|
|
354
|
-
async _promptPasswordAndDecrypt(doc, doc_info, salt, iterations, isInitialLoad, urlFragmentPassword) {
|
|
368
|
+
async _promptPasswordAndDecrypt(doc, doc_info, salt, iterations, isInitialLoad, urlFragmentPassword = "") {
|
|
355
369
|
// Decode the salt from Base64 to Uint8Array
|
|
356
370
|
let saltBytes = null;
|
|
357
371
|
if (salt) {
|
|
@@ -466,6 +480,7 @@ export class ModCollabDoc {
|
|
|
466
480
|
const { E2EESnapshotManager } = await import("../e2ee/snapshot-manager.js");
|
|
467
481
|
this.mod.editor.e2ee.snapshotManager = new E2EESnapshotManager(this.mod.editor);
|
|
468
482
|
}
|
|
483
|
+
;
|
|
469
484
|
this.mod.editor.e2ee.snapshotManager.setKey(key);
|
|
470
485
|
// Cache the key in sessionStorage so the user doesn't have to
|
|
471
486
|
// re-enter the password when reopening the document this session.
|
|
@@ -496,11 +511,12 @@ export class ModCollabDoc {
|
|
|
496
511
|
decryptedImages = {};
|
|
497
512
|
const { E2EEEncryptor } = await import("fwtoolkit/e2ee/encryptor");
|
|
498
513
|
for (const [id, image] of Object.entries(doc.images)) {
|
|
514
|
+
;
|
|
499
515
|
decryptedImages[id] = image;
|
|
500
516
|
if (typeof image.copyright === "string") {
|
|
501
517
|
try {
|
|
502
|
-
|
|
503
|
-
|
|
518
|
+
;
|
|
519
|
+
decryptedImages[id].copyright = await E2EEEncryptor.decryptObject(image.copyright, key);
|
|
504
520
|
}
|
|
505
521
|
catch (_e) {
|
|
506
522
|
// If decryption fails, leave as-is (legacy plaintext)
|
|
@@ -520,7 +536,7 @@ export class ModCollabDoc {
|
|
|
520
536
|
// Cache the decrypted title in sessionStorage so the document overview
|
|
521
537
|
// can display the real title without prompting for the password again.
|
|
522
538
|
let title = "";
|
|
523
|
-
this.mod.editor.view.state.doc.firstChild
|
|
539
|
+
this.mod.editor.view.state.doc.firstChild?.forEach(child => {
|
|
524
540
|
if (!child.marks.find(mark => mark.type.name === "deletion")) {
|
|
525
541
|
title += child.textContent;
|
|
526
542
|
}
|
|
@@ -533,6 +549,7 @@ export class ModCollabDoc {
|
|
|
533
549
|
// (not a Base64 string) and this is the initial load.
|
|
534
550
|
const isNewE2EEDocument = isInitialLoad && typeof doc.content !== "string";
|
|
535
551
|
if (isNewE2EEDocument && this.mod.editor.e2ee.snapshotManager) {
|
|
552
|
+
;
|
|
536
553
|
this.mod.editor.e2ee.snapshotManager.sendInitialSnapshot(decryptedContent, decryptedComments, decryptedBibliography, this.mod.editor.docInfo.version);
|
|
537
554
|
}
|
|
538
555
|
// Now that the key is available and the document is loaded, open the
|
|
@@ -544,6 +561,7 @@ export class ModCollabDoc {
|
|
|
544
561
|
else if (!this.mod.editor.ws) {
|
|
545
562
|
// Non-collaborative mode: mark version as confirmed so the editor
|
|
546
563
|
// finishes loading and periodic saves can begin.
|
|
564
|
+
;
|
|
547
565
|
this.mod.editor.mod.collab.doc.confirmVersion(this.mod.editor.docInfo.version);
|
|
548
566
|
}
|
|
549
567
|
}
|
|
@@ -560,7 +578,7 @@ export class ModCollabDoc {
|
|
|
560
578
|
const stateDoc = this.mod.editor.schema.nodeFromJSON(doc.content);
|
|
561
579
|
const plugins = this.mod.editor.statePlugins.map(plugin => {
|
|
562
580
|
if (plugin[1]) {
|
|
563
|
-
return plugin[0](plugin[1](
|
|
581
|
+
return plugin[0](plugin[1]());
|
|
564
582
|
}
|
|
565
583
|
else {
|
|
566
584
|
return plugin[0]();
|
|
@@ -572,13 +590,13 @@ export class ModCollabDoc {
|
|
|
572
590
|
plugins
|
|
573
591
|
};
|
|
574
592
|
// Set document in prosemirror
|
|
575
|
-
this.mod.editor.view.setProps({
|
|
593
|
+
this.mod.editor.view.setProps({
|
|
594
|
+
state: EditorState.create(stateConfig)
|
|
595
|
+
});
|
|
576
596
|
this.mod.editor.view.setProps({ nodeViews: {} }); // Needed to initialize nodeViews in plugins
|
|
577
597
|
// Set initial confirmed doc
|
|
578
598
|
this.mod.editor.docInfo.confirmedDoc = this.mod.editor.view.state.doc;
|
|
579
|
-
// Render footnotes based on main doc
|
|
580
599
|
this.mod.editor.mod.footnotes.fnEditor.renderAllFootnotes();
|
|
581
|
-
// Setup comment handling
|
|
582
600
|
this.mod.editor.mod.comments.store.reset();
|
|
583
601
|
this.mod.editor.mod.comments.store.loadComments(doc.comments);
|
|
584
602
|
this.mod.editor.mod.marginboxes.view(this.mod.editor.view);
|
|
@@ -590,6 +608,7 @@ export class ModCollabDoc {
|
|
|
590
608
|
// runs before loadDocument(), so the header still shows "Untitled"
|
|
591
609
|
// from the empty initial document.
|
|
592
610
|
if (this.mod.editor.menu.headerView) {
|
|
611
|
+
;
|
|
593
612
|
this.mod.editor.menu.headerView.update();
|
|
594
613
|
}
|
|
595
614
|
if (isInitialLoad) {
|
|
@@ -612,11 +631,11 @@ export class ModCollabDoc {
|
|
|
612
631
|
activateWait(true, gettext("It's taking a bit longer than usual, but it should be ready soon. Please wait..."));
|
|
613
632
|
}, 60000);
|
|
614
633
|
const adjustWorker = makeWorker(staticUrl("js/adjust_doc_to_template_worker.js"));
|
|
615
|
-
adjustWorker.onmessage = message => {
|
|
634
|
+
adjustWorker.onmessage = (message) => {
|
|
616
635
|
if (message.data.type === "result") {
|
|
617
636
|
if (message.data.steps.length) {
|
|
618
637
|
const tr = this.mod.editor.view.state.tr;
|
|
619
|
-
message.data.steps.forEach(step => tr.step(Step.fromJSON(this.mod.editor.schema, step)));
|
|
638
|
+
message.data.steps.forEach((step) => tr.step(Step.fromJSON(this.mod.editor.schema, step)));
|
|
620
639
|
tr.setMeta("remote", true);
|
|
621
640
|
this.mod.editor.view.dispatch(tr);
|
|
622
641
|
}
|
|
@@ -632,13 +651,13 @@ export class ModCollabDoc {
|
|
|
632
651
|
this.setDocSettings();
|
|
633
652
|
}
|
|
634
653
|
};
|
|
635
|
-
adjustWorker.onerror = error => console.error(error);
|
|
654
|
+
adjustWorker.onerror = (error) => console.error(error);
|
|
636
655
|
const schemaExporter = new SchemaExport();
|
|
637
656
|
adjustWorker.postMessage({
|
|
638
657
|
schemaSpec: JSON.parse(schemaExporter.init()),
|
|
639
658
|
doc: doc.content,
|
|
640
659
|
template: doc.template.content,
|
|
641
|
-
documentStyleSlugs: this.mod.editor.mod.documentTemplate.documentStyles.map(style => style.slug)
|
|
660
|
+
documentStyleSlugs: this.mod.editor.mod.documentTemplate.documentStyles.map((style) => style.slug)
|
|
642
661
|
});
|
|
643
662
|
}
|
|
644
663
|
else {
|
|
@@ -650,6 +669,7 @@ export class ModCollabDoc {
|
|
|
650
669
|
}
|
|
651
670
|
setDocSettings() {
|
|
652
671
|
// Set part specific settings
|
|
672
|
+
;
|
|
653
673
|
this.mod.editor.mod.documentTemplate.addDocPartSettings();
|
|
654
674
|
this.mod.editor.mod.documentTemplate.addCitationStylesMenuEntries();
|
|
655
675
|
}
|
|
@@ -677,11 +697,15 @@ export class ModCollabDoc {
|
|
|
677
697
|
return false;
|
|
678
698
|
}
|
|
679
699
|
else if (sendableSteps(this.mod.editor.view.state) ||
|
|
680
|
-
this.mod.editor.mod.comments.store
|
|
700
|
+
this.mod.editor.mod.comments.store
|
|
701
|
+
.unsentEvents()
|
|
702
|
+
.length ||
|
|
681
703
|
this.mod.editor.mod.db.bibDB.unsentEvents().length ||
|
|
682
704
|
this.mod.editor.mod.db.imageDB.unsentEvents().length) {
|
|
683
705
|
this.disableDiffSending();
|
|
684
|
-
const stepsToSend = sendableSteps(this.mod.editor.view.state), fnStepsToSend = sendableSteps(this.mod.editor.mod.footnotes.fnEditor.view
|
|
706
|
+
const stepsToSend = sendableSteps(this.mod.editor.view.state), fnStepsToSend = sendableSteps(this.mod.editor.mod.footnotes.fnEditor.view
|
|
707
|
+
.state), commentUpdates = this.mod.editor.mod.comments.store
|
|
708
|
+
.unsentEvents(), bibliographyUpdates = this.mod.editor.mod.db.bibDB.unsentEvents(), imageUpdates = this.mod.editor.mod.db.imageDB.unsentEvents();
|
|
685
709
|
if (!stepsToSend &&
|
|
686
710
|
!fnStepsToSend &&
|
|
687
711
|
!commentUpdates.length &&
|
|
@@ -702,14 +726,14 @@ export class ModCollabDoc {
|
|
|
702
726
|
// update the title field instantly - important for the
|
|
703
727
|
// document overview page.
|
|
704
728
|
let newTitle = "";
|
|
705
|
-
this.mod.editor.view.state.doc.firstChild
|
|
729
|
+
this.mod.editor.view.state.doc.firstChild?.forEach(child => {
|
|
706
730
|
if (!child.marks.find(mark => mark.type.name === "deletion")) {
|
|
707
731
|
newTitle += child.textContent;
|
|
708
732
|
}
|
|
709
733
|
});
|
|
710
734
|
newTitle = newTitle.slice(0, 255);
|
|
711
735
|
let oldTitle = "";
|
|
712
|
-
this.mod.editor.docInfo.confirmedDoc.firstChild
|
|
736
|
+
this.mod.editor.docInfo.confirmedDoc.firstChild?.forEach(child => {
|
|
713
737
|
if (!child.marks.find(mark => mark.type.name === "deletion")) {
|
|
714
738
|
oldTitle += child.textContent;
|
|
715
739
|
}
|
|
@@ -804,7 +828,10 @@ export class ModCollabDoc {
|
|
|
804
828
|
return;
|
|
805
829
|
}
|
|
806
830
|
this.disableDiffSending();
|
|
807
|
-
const stepsToSend = sendableSteps(this.mod.editor.view.state), fnStepsToSend = sendableSteps(this.mod.editor.mod.footnotes.fnEditor.view.state), commentUpdates = this.mod.editor.mod.comments.store
|
|
831
|
+
const stepsToSend = sendableSteps(this.mod.editor.view.state), fnStepsToSend = sendableSteps(this.mod.editor.mod.footnotes.fnEditor.view.state), commentUpdates = this.mod.editor.mod.comments.store
|
|
832
|
+
.unsentEvents(), bibliographyUpdates = this.mod.editor.mod.db.bibDB
|
|
833
|
+
.unsentEvents(), imageUpdates = this.mod.editor.mod.db.imageDB
|
|
834
|
+
.unsentEvents();
|
|
808
835
|
if (!stepsToSend &&
|
|
809
836
|
!fnStepsToSend &&
|
|
810
837
|
!commentUpdates.length &&
|
|
@@ -826,14 +853,14 @@ export class ModCollabDoc {
|
|
|
826
853
|
encryptedPayload["ds"] = stepsToSend.steps.map(s => s.toJSON());
|
|
827
854
|
// Track title changes for the document overview
|
|
828
855
|
let newTitle = "";
|
|
829
|
-
this.mod.editor.view.state.doc.firstChild
|
|
856
|
+
this.mod.editor.view.state.doc.firstChild?.forEach(child => {
|
|
830
857
|
if (!child.marks.find(mark => mark.type.name === "deletion")) {
|
|
831
858
|
newTitle += child.textContent;
|
|
832
859
|
}
|
|
833
860
|
});
|
|
834
861
|
newTitle = newTitle.slice(0, 255);
|
|
835
862
|
let oldTitle = "";
|
|
836
|
-
this.mod.editor.docInfo.confirmedDoc.firstChild
|
|
863
|
+
this.mod.editor.docInfo.confirmedDoc.firstChild?.forEach(child => {
|
|
837
864
|
if (!child.marks.find(mark => mark.type.name === "deletion")) {
|
|
838
865
|
oldTitle += child.textContent;
|
|
839
866
|
}
|
|
@@ -940,6 +967,7 @@ export class ModCollabDoc {
|
|
|
940
967
|
this.mod.editor.view.dispatch(tr);
|
|
941
968
|
}
|
|
942
969
|
if (fnTr) {
|
|
970
|
+
;
|
|
943
971
|
this.mod.editor.mod.footnotes.fnEditor.view.dispatch(fnTr);
|
|
944
972
|
}
|
|
945
973
|
}
|
|
@@ -978,10 +1006,12 @@ export class ModCollabDoc {
|
|
|
978
1006
|
}
|
|
979
1007
|
if (data["fs"]) {
|
|
980
1008
|
// footnote steps
|
|
1009
|
+
;
|
|
981
1010
|
this.mod.editor.mod.footnotes.fnEditor.applyDiffs(data["fs"], data["cid"]);
|
|
982
1011
|
}
|
|
983
1012
|
if (data["footnoterender"]) {
|
|
984
1013
|
// re-render footnotes properly
|
|
1014
|
+
;
|
|
985
1015
|
this.mod.editor.mod.footnotes.fnEditor.renderAllFootnotes();
|
|
986
1016
|
}
|
|
987
1017
|
if (serverFix) {
|
|
@@ -1004,8 +1034,8 @@ export class ModCollabDoc {
|
|
|
1004
1034
|
* image updates. This method decrypts the payload and then processes
|
|
1005
1035
|
* the diff using the standard _processDiff path.
|
|
1006
1036
|
*
|
|
1007
|
-
* @param
|
|
1008
|
-
* @param
|
|
1037
|
+
* @param data - The diff message with "ep" field
|
|
1038
|
+
* @param serverFix - Whether this is a server-generated fix
|
|
1009
1039
|
* @private
|
|
1010
1040
|
*/
|
|
1011
1041
|
async _receiveE2EEDiff(data, serverFix = false) {
|
|
@@ -1046,26 +1076,29 @@ export class ModCollabDoc {
|
|
|
1046
1076
|
this.mod.editor.docInfo.version++;
|
|
1047
1077
|
const sentSteps = unconfirmedDiffs["ds"]; // document steps
|
|
1048
1078
|
if (sentSteps) {
|
|
1049
|
-
const ourIds = sentSteps.map(_step => this.mod.editor.client_id);
|
|
1079
|
+
const ourIds = sentSteps.map((_step) => this.mod.editor.client_id);
|
|
1050
1080
|
const tr = receiveTransaction(this.mod.editor.view.state, sentSteps, ourIds);
|
|
1051
1081
|
this.mod.editor.view.dispatch(tr);
|
|
1052
1082
|
this.mod.editor.docInfo.confirmedDoc = unconfirmedDiffs["doc"];
|
|
1053
1083
|
}
|
|
1054
1084
|
const sentFnSteps = unconfirmedDiffs["fs"]; // footnote steps
|
|
1055
1085
|
if (sentFnSteps) {
|
|
1056
|
-
const fnTr = receiveTransaction(this.mod.editor.mod.footnotes.fnEditor.view.state, sentFnSteps, sentFnSteps.map(_step => this.mod.editor.client_id));
|
|
1086
|
+
const fnTr = receiveTransaction(this.mod.editor.mod.footnotes.fnEditor.view.state, sentFnSteps, sentFnSteps.map((_step) => this.mod.editor.client_id));
|
|
1057
1087
|
this.mod.editor.mod.footnotes.fnEditor.view.dispatch(fnTr);
|
|
1058
1088
|
}
|
|
1059
1089
|
const sentComments = unconfirmedDiffs["cu"]; // comment updates
|
|
1060
1090
|
if (sentComments) {
|
|
1091
|
+
;
|
|
1061
1092
|
this.mod.editor.mod.comments.store.eventsSent(sentComments);
|
|
1062
1093
|
}
|
|
1063
1094
|
const sentBibliographyUpdates = unconfirmedDiffs["bu"]; // bibliography updates
|
|
1064
1095
|
if (sentBibliographyUpdates) {
|
|
1096
|
+
;
|
|
1065
1097
|
this.mod.editor.mod.db.bibDB.eventsSent(sentBibliographyUpdates);
|
|
1066
1098
|
}
|
|
1067
1099
|
const sentImageUpdates = unconfirmedDiffs["iu"]; // image updates
|
|
1068
1100
|
if (sentImageUpdates) {
|
|
1101
|
+
;
|
|
1069
1102
|
this.mod.editor.mod.db.imageDB.eventsSent(sentImageUpdates);
|
|
1070
1103
|
}
|
|
1071
1104
|
delete this.unconfirmedDiffs[request_id];
|
|
@@ -1078,7 +1111,9 @@ export class ModCollabDoc {
|
|
|
1078
1111
|
applyDiffs(diffs, cid) {
|
|
1079
1112
|
this.receiving = true;
|
|
1080
1113
|
const steps = diffs.map(j => Step.fromJSON(this.mod.editor.schema, j));
|
|
1081
|
-
const clientIds = diffs
|
|
1114
|
+
const clientIds = diffs
|
|
1115
|
+
.map(_ => cid)
|
|
1116
|
+
.filter((id) => id !== undefined);
|
|
1082
1117
|
const tr = receiveTransaction(this.mod.editor.view.state, steps, clientIds);
|
|
1083
1118
|
tr.setMeta("remote", true);
|
|
1084
1119
|
this.mod.editor.view.dispatch(tr);
|