@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
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NodeSelection,
|
|
3
|
+
Plugin,
|
|
4
|
+
PluginKey,
|
|
5
|
+
TextSelection
|
|
6
|
+
} from "prosemirror-state"
|
|
7
|
+
import type {Node} from "prosemirror-model"
|
|
8
|
+
import type {EditorView} from "prosemirror-view"
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
nextSelection,
|
|
12
|
+
submitTag,
|
|
13
|
+
tagInputReferences
|
|
14
|
+
} from "@fiduswriter/common/state_plugins/tag_input"
|
|
15
|
+
|
|
16
|
+
import {TagsPartView} from "./node_view.js"
|
|
17
|
+
import type {Editor} from "../../types.js"
|
|
18
|
+
|
|
19
|
+
const key = new PluginKey("tagInput")
|
|
20
|
+
|
|
21
|
+
// Track mouse click state across transactions using closure variable
|
|
22
|
+
let mouseClickActive = false
|
|
23
|
+
let mouseClickTimer: ReturnType<typeof setTimeout> | null = null
|
|
24
|
+
// Track when we've explicitly blurred the tag input to prevent refocus
|
|
25
|
+
let tagInputJustBlurred = false
|
|
26
|
+
|
|
27
|
+
// Export function to check if we should prevent tag input focus
|
|
28
|
+
export const shouldPreventTagInputFocus = () => tagInputJustBlurred
|
|
29
|
+
|
|
30
|
+
interface TagInputState {
|
|
31
|
+
tagsPartPositions: Array<{start: number; end: number}>
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const tagInputPlugin = (options: {editor: Editor}) =>
|
|
35
|
+
new Plugin<TagInputState>({
|
|
36
|
+
key,
|
|
37
|
+
state: {
|
|
38
|
+
init(_config, state) {
|
|
39
|
+
const self = this as unknown as {
|
|
40
|
+
spec: {props: {nodeViews: Record<string, unknown>}}
|
|
41
|
+
}
|
|
42
|
+
if (options.editor.docInfo.access_rights === "write") {
|
|
43
|
+
self.spec.props.nodeViews["tags_part"] = (
|
|
44
|
+
node: Node,
|
|
45
|
+
view: EditorView,
|
|
46
|
+
getPos: () => number
|
|
47
|
+
) => new TagsPartView(node, view, getPos)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Find all tags_part nodes in the document
|
|
51
|
+
const tagsPartPositions: Array<{start: number; end: number}> = []
|
|
52
|
+
state.doc.descendants((node, pos) => {
|
|
53
|
+
if (node.type.name === "tags_part") {
|
|
54
|
+
tagsPartPositions.push({
|
|
55
|
+
start: pos,
|
|
56
|
+
end: pos + node.nodeSize
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
return {tagsPartPositions}
|
|
62
|
+
},
|
|
63
|
+
apply(tr, prev) {
|
|
64
|
+
// If the document was modified, update all positions
|
|
65
|
+
if (tr.docChanged) {
|
|
66
|
+
const newPositions = prev.tagsPartPositions.map(range => ({
|
|
67
|
+
start: tr.mapping.map(range.start),
|
|
68
|
+
end: tr.mapping.map(range.end)
|
|
69
|
+
}))
|
|
70
|
+
|
|
71
|
+
return {tagsPartPositions: newPositions}
|
|
72
|
+
}
|
|
73
|
+
return prev
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
props: {
|
|
77
|
+
nodeViews: {},
|
|
78
|
+
handleDOMEvents: {
|
|
79
|
+
mousedown(view, event) {
|
|
80
|
+
// Mark that this selection change came from a mouse click
|
|
81
|
+
// Set the closure variable to indicate a mouse click is happening
|
|
82
|
+
mouseClickActive = true
|
|
83
|
+
|
|
84
|
+
// Clear any existing timer
|
|
85
|
+
if (mouseClickTimer) {
|
|
86
|
+
clearTimeout(mouseClickTimer)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Reset after a delay to allow all related transactions to process
|
|
90
|
+
// Including blur handlers and any delayed events
|
|
91
|
+
mouseClickTimer = setTimeout(() => {
|
|
92
|
+
mouseClickActive = false
|
|
93
|
+
mouseClickTimer = null
|
|
94
|
+
}, 100)
|
|
95
|
+
|
|
96
|
+
// Check if we're clicking outside a focused tag input
|
|
97
|
+
const activeElement = document.activeElement
|
|
98
|
+
// Check if active element is inside a tag-input container
|
|
99
|
+
const tagInputContainer =
|
|
100
|
+
activeElement?.closest(".tag-input")
|
|
101
|
+
const target = event.target as HTMLElement
|
|
102
|
+
const clickedInsideTagInput = target.closest(".tag-input")
|
|
103
|
+
// Check if clicking on a tag within the tags_part (but not the tag input)
|
|
104
|
+
const clickedOnTag =
|
|
105
|
+
target.closest(".tag") ||
|
|
106
|
+
target.closest(".doc-tags_part")
|
|
107
|
+
|
|
108
|
+
// If a tag input has focus and we're clicking outside it (including on existing tags), submit and blur it
|
|
109
|
+
if (
|
|
110
|
+
tagInputContainer &&
|
|
111
|
+
(!clickedInsideTagInput || clickedOnTag)
|
|
112
|
+
) {
|
|
113
|
+
// Get the stored references from WeakMap
|
|
114
|
+
const refs = tagInputReferences.get(
|
|
115
|
+
tagInputContainer as HTMLElement
|
|
116
|
+
)
|
|
117
|
+
if (refs) {
|
|
118
|
+
const {tagInputView, mainView, getPos} = refs
|
|
119
|
+
|
|
120
|
+
// Submit the tag immediately with the valid position
|
|
121
|
+
submitTag(tagInputView, mainView, getPos)
|
|
122
|
+
|
|
123
|
+
// If we clicked outside the tags_part entirely, set selection to clicked position
|
|
124
|
+
// If we clicked on a tag, let the normal click handling select it
|
|
125
|
+
if (!clickedOnTag) {
|
|
126
|
+
// Now set the selection based on where the user clicked
|
|
127
|
+
// We need to do this synchronously before appendTransaction runs
|
|
128
|
+
const clickPos = view.posAtCoords({
|
|
129
|
+
left: event.clientX,
|
|
130
|
+
top: event.clientY
|
|
131
|
+
})
|
|
132
|
+
if (clickPos) {
|
|
133
|
+
const tr = view.state.tr.setSelection(
|
|
134
|
+
TextSelection.create(
|
|
135
|
+
view.state.doc,
|
|
136
|
+
clickPos.pos
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
view.dispatch(tr)
|
|
140
|
+
view.focus()
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
// Blur the tag input first, then focus the main view
|
|
144
|
+
|
|
145
|
+
// Set flag to prevent tag input from being refocused
|
|
146
|
+
tagInputJustBlurred = true
|
|
147
|
+
|
|
148
|
+
// Blur the tag input
|
|
149
|
+
tagInputView.dom.blur()
|
|
150
|
+
|
|
151
|
+
// Find the position of the clicked tag and select it
|
|
152
|
+
const clickPos = view.posAtCoords({
|
|
153
|
+
left: event.clientX,
|
|
154
|
+
top: event.clientY
|
|
155
|
+
})
|
|
156
|
+
if (clickPos) {
|
|
157
|
+
// Try to create a NodeSelection on the tag
|
|
158
|
+
try {
|
|
159
|
+
const node = view.state.doc.nodeAt(
|
|
160
|
+
clickPos.pos
|
|
161
|
+
)
|
|
162
|
+
if (node && node.type.name === "tag") {
|
|
163
|
+
const tr = view.state.tr.setSelection(
|
|
164
|
+
NodeSelection.create(
|
|
165
|
+
view.state.doc,
|
|
166
|
+
clickPos.pos
|
|
167
|
+
)
|
|
168
|
+
)
|
|
169
|
+
view.dispatch(tr)
|
|
170
|
+
} else {
|
|
171
|
+
// If not directly on a tag, try the position before
|
|
172
|
+
const nodeBefore =
|
|
173
|
+
view.state.doc.nodeAt(
|
|
174
|
+
clickPos.pos - 1
|
|
175
|
+
)
|
|
176
|
+
if (
|
|
177
|
+
nodeBefore &&
|
|
178
|
+
nodeBefore.type.name === "tag"
|
|
179
|
+
) {
|
|
180
|
+
const tr =
|
|
181
|
+
view.state.tr.setSelection(
|
|
182
|
+
NodeSelection.create(
|
|
183
|
+
view.state.doc,
|
|
184
|
+
clickPos.pos - 1
|
|
185
|
+
)
|
|
186
|
+
)
|
|
187
|
+
view.dispatch(tr)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
} catch {
|
|
191
|
+
// Silently ignore selection errors
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
view.focus()
|
|
196
|
+
|
|
197
|
+
// Reset the flag after a short delay
|
|
198
|
+
setTimeout(() => {
|
|
199
|
+
tagInputJustBlurred = false
|
|
200
|
+
}, 150)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return false
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
appendTransaction: (trs, oldState, newState) => {
|
|
210
|
+
// If selection is not collapsed or not changed, don't do anything
|
|
211
|
+
if (
|
|
212
|
+
newState.selection.from !== newState.selection.to ||
|
|
213
|
+
!trs.some(tr => tr.selectionSet)
|
|
214
|
+
) {
|
|
215
|
+
return
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
const selectionPos = newState.selection.from
|
|
219
|
+
const pluginState = key.getState(newState) as TagInputState
|
|
220
|
+
|
|
221
|
+
// If this selection change came from a mouse click, don't interfere
|
|
222
|
+
if (mouseClickActive) {
|
|
223
|
+
return
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// If selection is already a NodeSelection on a tag, don't interfere
|
|
227
|
+
if (newState.selection instanceof NodeSelection) {
|
|
228
|
+
const selectedNode = newState.selection.node
|
|
229
|
+
if (selectedNode && selectedNode.type.name === "tag") {
|
|
230
|
+
return
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Check if selection is within any tags_part node
|
|
235
|
+
const tagsPartRange = pluginState.tagsPartPositions.find(
|
|
236
|
+
range => selectionPos > range.start && selectionPos < range.end
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
if (tagsPartRange) {
|
|
240
|
+
const oldSelectionPos = oldState.selection.from
|
|
241
|
+
|
|
242
|
+
if (selectionPos + 1 === tagsPartRange.end) {
|
|
243
|
+
// Selection is at end of tags_part.
|
|
244
|
+
// Put caret into tag editor if write access is present.
|
|
245
|
+
// Otherwise, move caret beyond tags_part.
|
|
246
|
+
if (options.editor.docInfo.access_rights === "write") {
|
|
247
|
+
// tag editor will be activated by node view.
|
|
248
|
+
return
|
|
249
|
+
}
|
|
250
|
+
if (oldSelectionPos < selectionPos) {
|
|
251
|
+
const newSelection = nextSelection(
|
|
252
|
+
newState,
|
|
253
|
+
tagsPartRange.end,
|
|
254
|
+
1
|
|
255
|
+
)
|
|
256
|
+
if (!newSelection) {
|
|
257
|
+
// Cannot find a location. Give up.
|
|
258
|
+
return
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return newState.tr.setSelection(newSelection)
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const selectedNodePos =
|
|
266
|
+
oldSelectionPos < selectionPos
|
|
267
|
+
? selectionPos
|
|
268
|
+
: selectionPos - 1
|
|
269
|
+
|
|
270
|
+
if (selectedNodePos === tagsPartRange.start) {
|
|
271
|
+
// selection is at start of tags node. Find previous possible selection location.
|
|
272
|
+
const newSelection = nextSelection(
|
|
273
|
+
newState,
|
|
274
|
+
selectedNodePos,
|
|
275
|
+
-1
|
|
276
|
+
)
|
|
277
|
+
if (!newSelection) {
|
|
278
|
+
// Cannot find a location. Give up.
|
|
279
|
+
return
|
|
280
|
+
}
|
|
281
|
+
return newState.tr.setSelection(newSelection)
|
|
282
|
+
} else {
|
|
283
|
+
// Select an entire tag node
|
|
284
|
+
return newState.tr.setSelection(
|
|
285
|
+
NodeSelection.create(newState.doc, selectedNodePos)
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
return null
|
|
291
|
+
}
|
|
292
|
+
})
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import {escapeText} from "fwtoolkit"
|
|
2
|
+
import {Plugin, PluginKey} from "prosemirror-state"
|
|
3
|
+
import {Decoration, DecorationSet} from "prosemirror-view"
|
|
4
|
+
import type {Node} from "prosemirror-model"
|
|
5
|
+
import type {EditorView} from "prosemirror-view"
|
|
6
|
+
|
|
7
|
+
const key = new PluginKey("tocRender")
|
|
8
|
+
|
|
9
|
+
interface TocItem {
|
|
10
|
+
type: Node
|
|
11
|
+
id: string
|
|
12
|
+
textContent: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function getTocItems(decorations: DecorationSet) {
|
|
16
|
+
let tocItems: TocItem[] | undefined
|
|
17
|
+
|
|
18
|
+
decorations.find(undefined, undefined, (deco: Decoration) => {
|
|
19
|
+
if (deco.spec.tocItems) {
|
|
20
|
+
tocItems = deco.spec.tocItems as TocItem[]
|
|
21
|
+
return true
|
|
22
|
+
}
|
|
23
|
+
return false
|
|
24
|
+
})
|
|
25
|
+
return tocItems
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function tocHTML(tocItems: TocItem[], title: string) {
|
|
29
|
+
return `<h1 class="toc">${escapeText(title)}</h1>
|
|
30
|
+
${tocItems
|
|
31
|
+
.map(item => {
|
|
32
|
+
const level = (item.type as unknown as {name: string}).name.substr(-1)
|
|
33
|
+
return `<h${level}><a href="#${item.id}">${escapeText(item.textContent)}</a></h${level}>`
|
|
34
|
+
})
|
|
35
|
+
.join("")}`
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
class ToCView {
|
|
39
|
+
node: Node
|
|
40
|
+
view: EditorView
|
|
41
|
+
getPos: () => number
|
|
42
|
+
dom: HTMLDivElement
|
|
43
|
+
innerView: HTMLDivElement
|
|
44
|
+
contentDOM: HTMLDivElement
|
|
45
|
+
|
|
46
|
+
constructor(node: Node, view: EditorView, getPos: () => number) {
|
|
47
|
+
this.node = node
|
|
48
|
+
this.view = view
|
|
49
|
+
this.getPos = getPos
|
|
50
|
+
this.dom = document.createElement("div")
|
|
51
|
+
this.dom.classList.add("content-container", "toc")
|
|
52
|
+
this.dom.id = node.attrs.id as string
|
|
53
|
+
this.innerView = document.createElement("div")
|
|
54
|
+
this.dom.appendChild(this.innerView)
|
|
55
|
+
this.contentDOM = document.createElement("div")
|
|
56
|
+
this.dom.appendChild(this.contentDOM)
|
|
57
|
+
this.update(node)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
update(node: Node) {
|
|
61
|
+
if (node.type !== this.node.type) {
|
|
62
|
+
return false
|
|
63
|
+
}
|
|
64
|
+
this.node = node
|
|
65
|
+
const tocPlugin = this.view.state.plugins.find(
|
|
66
|
+
plugin => plugin.spec.key === key
|
|
67
|
+
)
|
|
68
|
+
const tocItems = tocPlugin
|
|
69
|
+
? getTocItems(key.getState(this.view.state) as DecorationSet)
|
|
70
|
+
: undefined
|
|
71
|
+
if (tocItems) {
|
|
72
|
+
this.innerView.innerHTML = tocHTML(
|
|
73
|
+
tocItems,
|
|
74
|
+
node.attrs.title as string
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
return true
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
stopEvent() {
|
|
81
|
+
return true
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function findTocItems(doc: Node): TocItem[] {
|
|
86
|
+
const items: TocItem[] = []
|
|
87
|
+
doc.descendants(node => {
|
|
88
|
+
if (node.type.name.startsWith("heading") && node.attrs.id) {
|
|
89
|
+
items.push({
|
|
90
|
+
type: node,
|
|
91
|
+
id: node.attrs.id as string,
|
|
92
|
+
textContent: node.textContent
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
})
|
|
96
|
+
return items
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export const tocRenderPlugin = (_options: {editor: unknown}) =>
|
|
100
|
+
new Plugin({
|
|
101
|
+
key,
|
|
102
|
+
state: {
|
|
103
|
+
init(_config, state) {
|
|
104
|
+
const tocItems = findTocItems(state.doc)
|
|
105
|
+
return DecorationSet.create(state.doc, [
|
|
106
|
+
Decoration.widget(1, () => document.createElement("span"), {
|
|
107
|
+
tocItems
|
|
108
|
+
})
|
|
109
|
+
])
|
|
110
|
+
},
|
|
111
|
+
apply(tr, value, _oldState, newState) {
|
|
112
|
+
value = value.map(tr.mapping, tr.doc)
|
|
113
|
+
if (!tr.docChanged) {
|
|
114
|
+
return value
|
|
115
|
+
}
|
|
116
|
+
const tocItems = findTocItems(newState.doc)
|
|
117
|
+
const deco = Decoration.widget(
|
|
118
|
+
1,
|
|
119
|
+
() => document.createElement("span"),
|
|
120
|
+
{
|
|
121
|
+
tocItems
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
return DecorationSet.create(newState.doc, [deco])
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
props: {
|
|
128
|
+
nodeViews: {
|
|
129
|
+
toc: (node: Node, view: EditorView, getPos: () => number | undefined) =>
|
|
130
|
+
new ToCView(node, view, getPos as () => number)
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
})
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {Plugin, PluginKey} from "prosemirror-state"
|
|
2
|
+
import type {EditorView} from "prosemirror-view"
|
|
2
3
|
|
|
3
4
|
import {ToolbarView} from "../menus/index.js"
|
|
5
|
+
import type {Editor} from "../types.js"
|
|
4
6
|
|
|
5
7
|
const key = new PluginKey("toolbar")
|
|
6
|
-
export const toolbarPlugin = options =>
|
|
8
|
+
export const toolbarPlugin = (options: {editor: Editor}) =>
|
|
7
9
|
new Plugin({
|
|
8
10
|
key,
|
|
9
|
-
view(editorView) {
|
|
11
|
+
view(editorView: EditorView) {
|
|
10
12
|
return new ToolbarView(editorView, options)
|
|
11
13
|
}
|
|
12
14
|
})
|
|
@@ -1,21 +1,35 @@
|
|
|
1
|
+
import type {EditorState} from "prosemirror-state"
|
|
2
|
+
import type {Mark} from "prosemirror-model"
|
|
3
|
+
|
|
1
4
|
import {getFromToMark} from "./helpers.js"
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
interface SelectedChangeRange {
|
|
7
|
+
from: number
|
|
8
|
+
to: number
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface SelectedChanges {
|
|
12
|
+
insertion: SelectedChangeRange | false | null
|
|
13
|
+
deletion: SelectedChangeRange | false | null
|
|
14
|
+
formatChange: SelectedChangeRange | false | null
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function findSelectedChanges(state: EditorState): SelectedChanges {
|
|
4
18
|
const selection = state.selection,
|
|
5
|
-
selectedChanges = {
|
|
19
|
+
selectedChanges: SelectedChanges = {
|
|
6
20
|
insertion: false,
|
|
7
21
|
deletion: false,
|
|
8
22
|
formatChange: false
|
|
9
23
|
}
|
|
10
|
-
let insertionPos = false,
|
|
11
|
-
deletionPos = false,
|
|
12
|
-
formatChangePos = false,
|
|
13
|
-
insertionMark,
|
|
14
|
-
deletionMark,
|
|
15
|
-
formatChangeMark,
|
|
16
|
-
insertionSize,
|
|
17
|
-
deletionSize,
|
|
18
|
-
formatChangeSize
|
|
24
|
+
let insertionPos: number | false = false,
|
|
25
|
+
deletionPos: number | false = false,
|
|
26
|
+
formatChangePos: number | false = false,
|
|
27
|
+
insertionMark: Mark | {type: string} | undefined,
|
|
28
|
+
deletionMark: Mark | {type: string} | undefined,
|
|
29
|
+
formatChangeMark: Mark | {type: string} | undefined,
|
|
30
|
+
insertionSize: number | undefined,
|
|
31
|
+
deletionSize: number | undefined,
|
|
32
|
+
formatChangeSize: number | undefined
|
|
19
33
|
|
|
20
34
|
if (selection.empty) {
|
|
21
35
|
const resolvedPos = state.doc.resolve(selection.from),
|
|
@@ -45,7 +59,7 @@ export function findSelectedChanges(state) {
|
|
|
45
59
|
}
|
|
46
60
|
if (!insertionMark) {
|
|
47
61
|
insertionMark = node.attrs.track
|
|
48
|
-
? node.attrs.track.find(
|
|
62
|
+
? (node.attrs.track as Array<{type: string}>).find(
|
|
49
63
|
trackAttr => trackAttr.type === "insertion"
|
|
50
64
|
)
|
|
51
65
|
: node.marks.find(
|
|
@@ -62,7 +76,7 @@ export function findSelectedChanges(state) {
|
|
|
62
76
|
}
|
|
63
77
|
if (!deletionMark) {
|
|
64
78
|
deletionMark = node.attrs.track
|
|
65
|
-
? node.attrs.track.find(
|
|
79
|
+
? (node.attrs.track as Array<{type: string}>).find(
|
|
66
80
|
trackAttr => trackAttr.type === "deletion"
|
|
67
81
|
)
|
|
68
82
|
: node.marks.find(mark => mark.type.name === "deletion")
|
|
@@ -84,24 +98,25 @@ export function findSelectedChanges(state) {
|
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
100
|
}
|
|
101
|
+
return false
|
|
87
102
|
})
|
|
88
103
|
}
|
|
89
|
-
if (insertionMark) {
|
|
104
|
+
if (insertionMark && insertionPos !== false) {
|
|
90
105
|
selectedChanges.insertion = insertionSize
|
|
91
106
|
? {from: insertionPos, to: insertionPos + insertionSize}
|
|
92
|
-
: getFromToMark(state.doc, insertionPos, insertionMark)
|
|
107
|
+
: getFromToMark(state.doc, insertionPos, insertionMark as Mark)
|
|
93
108
|
}
|
|
94
109
|
|
|
95
|
-
if (deletionMark) {
|
|
110
|
+
if (deletionMark && deletionPos !== false) {
|
|
96
111
|
selectedChanges.deletion = deletionSize
|
|
97
112
|
? {from: deletionPos, to: deletionPos + deletionSize}
|
|
98
|
-
: getFromToMark(state.doc, deletionPos, deletionMark)
|
|
113
|
+
: getFromToMark(state.doc, deletionPos, deletionMark as Mark)
|
|
99
114
|
}
|
|
100
115
|
|
|
101
|
-
if (formatChangeMark) {
|
|
116
|
+
if (formatChangeMark && formatChangePos !== false) {
|
|
102
117
|
selectedChanges.formatChange = formatChangeSize
|
|
103
118
|
? {from: formatChangePos, to: formatChangePos + formatChangeSize}
|
|
104
|
-
: getFromToMark(state.doc, formatChangePos, formatChangeMark)
|
|
119
|
+
: getFromToMark(state.doc, formatChangePos, formatChangeMark as Mark)
|
|
105
120
|
}
|
|
106
121
|
return selectedChanges
|
|
107
122
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import {Decoration, DecorationSet} from "prosemirror-view"
|
|
2
|
+
import type {EditorState, Transaction} from "prosemirror-state"
|
|
3
|
+
import type {Mark, Node} from "prosemirror-model"
|
|
2
4
|
|
|
3
5
|
import {
|
|
4
6
|
key,
|
|
@@ -8,8 +10,15 @@ import {
|
|
|
8
10
|
selectedInsertionSpec
|
|
9
11
|
} from "./plugin.js"
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
interface SelectedChanges {
|
|
14
|
+
insertion?: {from: number; to: number}
|
|
15
|
+
deletion?: {from: number; to: number}
|
|
16
|
+
format_change?: {from: number; to: number}
|
|
17
|
+
block_change?: {from: number; to: number}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function getSelectedChanges(state: EditorState): SelectedChanges {
|
|
21
|
+
const keyState = key.getState(state) as {decos: DecorationSet}
|
|
13
22
|
if (!keyState) {
|
|
14
23
|
return {}
|
|
15
24
|
}
|
|
@@ -39,18 +48,27 @@ export function getSelectedChanges(state) {
|
|
|
39
48
|
return {insertion, deletion, format_change, block_change}
|
|
40
49
|
}
|
|
41
50
|
|
|
42
|
-
export function setSelectedChanges(
|
|
51
|
+
export function setSelectedChanges(
|
|
52
|
+
state: EditorState,
|
|
53
|
+
type: string,
|
|
54
|
+
pos: number
|
|
55
|
+
): Transaction | undefined {
|
|
43
56
|
const tr = state.tr,
|
|
44
57
|
node = tr.doc.nodeAt(pos),
|
|
45
|
-
mark = node
|
|
46
|
-
? node.attrs.track
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
mark = node?.attrs.track
|
|
59
|
+
? (node.attrs.track as Array<{type: string}>).find(
|
|
60
|
+
trackAttr => trackAttr.type === type
|
|
61
|
+
)
|
|
62
|
+
: node?.marks.find(mark => mark.type.name === type)
|
|
63
|
+
if (!node || !mark) {
|
|
49
64
|
return
|
|
50
65
|
}
|
|
51
66
|
const selectedChange = node.isInline
|
|
52
|
-
? getFromToMark(tr.doc, pos, mark)
|
|
67
|
+
? getFromToMark(tr.doc, pos, mark as Mark)
|
|
53
68
|
: {from: pos, to: pos + node.nodeSize}
|
|
69
|
+
if (!selectedChange) {
|
|
70
|
+
return
|
|
71
|
+
}
|
|
54
72
|
let decos = DecorationSet.empty,
|
|
55
73
|
spec
|
|
56
74
|
if (type === "insertion") {
|
|
@@ -61,6 +79,8 @@ export function setSelectedChanges(state, type, pos) {
|
|
|
61
79
|
spec = selectedChangeFormatSpec
|
|
62
80
|
} else if (type === "block_change") {
|
|
63
81
|
spec = selectedChangeBlockSpec
|
|
82
|
+
} else {
|
|
83
|
+
return
|
|
64
84
|
}
|
|
65
85
|
const decoType = node.isInline ? Decoration.inline : Decoration.node
|
|
66
86
|
decos = decos.add(tr.doc, [
|
|
@@ -76,7 +96,9 @@ export function setSelectedChanges(state, type, pos) {
|
|
|
76
96
|
return tr.setMeta(key, {decos}).setMeta("track", true)
|
|
77
97
|
}
|
|
78
98
|
|
|
79
|
-
export function deactivateAllSelectedChanges(
|
|
99
|
+
export function deactivateAllSelectedChanges(
|
|
100
|
+
tr: Transaction
|
|
101
|
+
): Transaction {
|
|
80
102
|
const pluginState = {
|
|
81
103
|
decos: DecorationSet.empty
|
|
82
104
|
}
|
|
@@ -84,7 +106,11 @@ export function deactivateAllSelectedChanges(tr) {
|
|
|
84
106
|
}
|
|
85
107
|
|
|
86
108
|
// From https://discuss.prosemirror.net/t/expanding-the-selection-to-the-active-mark/478/2 with some bugs fixed
|
|
87
|
-
export function getFromToMark(
|
|
109
|
+
export function getFromToMark(
|
|
110
|
+
doc: Node,
|
|
111
|
+
pos: number,
|
|
112
|
+
mark: Mark
|
|
113
|
+
): {from: number; to: number} | null {
|
|
88
114
|
const $pos = doc.resolve(pos),
|
|
89
115
|
parent = $pos.parent
|
|
90
116
|
const start = parent.childAfter($pos.parentOffset)
|