@seafile/sdoc-editor 0.3.6 → 0.3.7
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/api/sdoc-server-api.js +165 -170
- package/dist/api/seafile-api.js +180 -246
- package/dist/basic-sdk/comment/comment-decorate.js +23 -30
- package/dist/basic-sdk/comment/components/comment-all-participants/index.js +18 -18
- package/dist/basic-sdk/comment/components/comment-all-participants/participant-avatar.js +13 -13
- package/dist/basic-sdk/comment/components/comment-delete-shadow.js +11 -9
- package/dist/basic-sdk/comment/components/comment-editor.js +37 -34
- package/dist/basic-sdk/comment/components/comment-input/comment-participant-item.js +16 -14
- package/dist/basic-sdk/comment/components/comment-input/index.js +110 -106
- package/dist/basic-sdk/comment/components/comment-item-content.js +29 -37
- package/dist/basic-sdk/comment/components/comment-item-reply.js +24 -33
- package/dist/basic-sdk/comment/components/comment-item-resolved-reply.js +5 -3
- package/dist/basic-sdk/comment/components/comment-item-wrapper.js +190 -285
- package/dist/basic-sdk/comment/components/comment-list.js +52 -72
- package/dist/basic-sdk/comment/components/comment-participants-editor/index.js +23 -30
- package/dist/basic-sdk/comment/components/comment-participants-editor/searched-collaborators.js +21 -19
- package/dist/basic-sdk/comment/components/comment-participants-editor/selected-participants.js +16 -14
- package/dist/basic-sdk/comment/components/editor-comment.js +23 -32
- package/dist/basic-sdk/comment/components/elements-comment-count/element-comment-count.js +18 -20
- package/dist/basic-sdk/comment/components/elements-comment-count/index.js +8 -8
- package/dist/basic-sdk/comment/components/global-comment/global-comment-body-header.js +23 -25
- package/dist/basic-sdk/comment/components/global-comment/global-comment-editor.js +9 -7
- package/dist/basic-sdk/comment/components/global-comment/global-comment-header.js +9 -6
- package/dist/basic-sdk/comment/components/global-comment/index.js +63 -86
- package/dist/basic-sdk/comment/constants/index.js +9 -9
- package/dist/basic-sdk/comment/helper.js +27 -26
- package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-context.js +8 -7
- package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-list.js +19 -30
- package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-mount.js +41 -71
- package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-context.js +8 -7
- package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-mount.js +45 -64
- package/dist/basic-sdk/comment/hooks/use-participants.js +46 -53
- package/dist/basic-sdk/comment/index.js +22 -19
- package/dist/basic-sdk/comment/provider/comment-context-provider.js +9 -11
- package/dist/basic-sdk/comment/provider/index.js +4 -2
- package/dist/basic-sdk/comment/provider/notification-context-provider.js +9 -11
- package/dist/basic-sdk/comment/reducer/comment-reducer.js +151 -137
- package/dist/basic-sdk/comment/reducer/notification-reducer.js +20 -15
- package/dist/basic-sdk/comment/utils/index.js +180 -173
- package/dist/basic-sdk/comment/utils/notification-utils.js +15 -14
- package/dist/basic-sdk/constants/index.js +9 -9
- package/dist/basic-sdk/cursor/helper.js +13 -9
- package/dist/basic-sdk/cursor/use-cursors.js +9 -13
- package/dist/basic-sdk/decorates/index.js +8 -9
- package/dist/basic-sdk/editor/editable-article.js +63 -57
- package/dist/basic-sdk/editor/sdoc-editor.js +42 -47
- package/dist/basic-sdk/extension/commons/color-menu/color-item.js +6 -4
- package/dist/basic-sdk/extension/commons/color-menu/index.js +40 -50
- package/dist/basic-sdk/extension/commons/dropdown-menu-item/index.js +17 -16
- package/dist/basic-sdk/extension/commons/element-popover/index.js +27 -45
- package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +46 -59
- package/dist/basic-sdk/extension/commons/menu/menu-group.js +7 -21
- package/dist/basic-sdk/extension/commons/menu/menu-item.js +17 -14
- package/dist/basic-sdk/extension/commons/more-dropdown/index.js +9 -7
- package/dist/basic-sdk/extension/commons/select-file-dialog/helpers.js +3 -3
- package/dist/basic-sdk/extension/commons/select-file-dialog/index.js +26 -23
- package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +49 -80
- package/dist/basic-sdk/extension/constants/color.js +10 -10
- package/dist/basic-sdk/extension/constants/diff-view.js +3 -3
- package/dist/basic-sdk/extension/constants/element-type.js +29 -29
- package/dist/basic-sdk/extension/constants/font.js +44 -37
- package/dist/basic-sdk/extension/constants/index.js +27 -16
- package/dist/basic-sdk/extension/constants/keyboard.js +4 -4
- package/dist/basic-sdk/extension/constants/menus-config.js +234 -203
- package/dist/basic-sdk/extension/core/queries/index.js +185 -285
- package/dist/basic-sdk/extension/core/transforms/focus-editor.js +2 -2
- package/dist/basic-sdk/extension/core/transforms/move-children.js +14 -14
- package/dist/basic-sdk/extension/core/transforms/remove-node-children.js +6 -18
- package/dist/basic-sdk/extension/core/transforms/replace-node.js +22 -19
- package/dist/basic-sdk/extension/core/transforms/update-parent-node.js +6 -8
- package/dist/basic-sdk/extension/core/utils/index.js +12 -12
- package/dist/basic-sdk/extension/index.js +6 -6
- package/dist/basic-sdk/extension/plugins/blockquote/helpers.js +39 -54
- package/dist/basic-sdk/extension/plugins/blockquote/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/blockquote/menu/index.js +34 -44
- package/dist/basic-sdk/extension/plugins/blockquote/model.js +8 -9
- package/dist/basic-sdk/extension/plugins/blockquote/plugin.js +36 -37
- package/dist/basic-sdk/extension/plugins/blockquote/render-elem.js +7 -5
- package/dist/basic-sdk/extension/plugins/check-list/helpers.js +15 -25
- package/dist/basic-sdk/extension/plugins/check-list/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/check-list/menu/index.js +35 -45
- package/dist/basic-sdk/extension/plugins/check-list/model.js +9 -10
- package/dist/basic-sdk/extension/plugins/check-list/plugin.js +16 -10
- package/dist/basic-sdk/extension/plugins/check-list/render-elem.js +42 -56
- package/dist/basic-sdk/extension/plugins/clear-format/helpers.js +21 -36
- package/dist/basic-sdk/extension/plugins/clear-format/menu/index.js +12 -10
- package/dist/basic-sdk/extension/plugins/code-block/helpers.js +40 -58
- package/dist/basic-sdk/extension/plugins/code-block/hover-menu/index.js +38 -46
- package/dist/basic-sdk/extension/plugins/code-block/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/code-block/menu/index.js +9 -7
- package/dist/basic-sdk/extension/plugins/code-block/model.js +8 -9
- package/dist/basic-sdk/extension/plugins/code-block/plugin.js +44 -51
- package/dist/basic-sdk/extension/plugins/code-block/prismjs.js +27 -27
- package/dist/basic-sdk/extension/plugins/code-block/render-elem.js +62 -58
- package/dist/basic-sdk/extension/plugins/file-link/constants/index.js +16 -14
- package/dist/basic-sdk/extension/plugins/file-link/helpers.js +34 -36
- package/dist/basic-sdk/extension/plugins/file-link/hover-menu/index.js +19 -23
- package/dist/basic-sdk/extension/plugins/file-link/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/file-link/menu/index.js +10 -8
- package/dist/basic-sdk/extension/plugins/file-link/plugin.js +17 -11
- package/dist/basic-sdk/extension/plugins/file-link/render-elem.js +34 -38
- package/dist/basic-sdk/extension/plugins/font/helpers.js +75 -78
- package/dist/basic-sdk/extension/plugins/font/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/font/menu/font-family/font-item.js +14 -13
- package/dist/basic-sdk/extension/plugins/font/menu/font-family/index.js +38 -55
- package/dist/basic-sdk/extension/plugins/font/menu/font-size/font-size-scale.js +12 -10
- package/dist/basic-sdk/extension/plugins/font/menu/font-size/index.js +29 -31
- package/dist/basic-sdk/extension/plugins/font/menu/index.js +5 -3
- package/dist/basic-sdk/extension/plugins/font/plugin.js +4 -4
- package/dist/basic-sdk/extension/plugins/header/helpers.js +32 -38
- package/dist/basic-sdk/extension/plugins/header/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/header/menu/index.js +101 -107
- package/dist/basic-sdk/extension/plugins/header/plugin.js +41 -44
- package/dist/basic-sdk/extension/plugins/header/render-elem.js +28 -20
- package/dist/basic-sdk/extension/plugins/html/helper.js +30 -28
- package/dist/basic-sdk/extension/plugins/html/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/html/plugin.js +12 -10
- package/dist/basic-sdk/extension/plugins/html/rules/blockquote.js +5 -3
- package/dist/basic-sdk/extension/plugins/html/rules/check-list.js +4 -2
- package/dist/basic-sdk/extension/plugins/html/rules/code-block.js +20 -24
- package/dist/basic-sdk/extension/plugins/html/rules/header.js +7 -5
- package/dist/basic-sdk/extension/plugins/html/rules/image.js +4 -2
- package/dist/basic-sdk/extension/plugins/html/rules/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/html/rules/link.js +5 -3
- package/dist/basic-sdk/extension/plugins/html/rules/list.js +6 -4
- package/dist/basic-sdk/extension/plugins/html/rules/paragraph.js +5 -3
- package/dist/basic-sdk/extension/plugins/html/rules/table.js +5 -3
- package/dist/basic-sdk/extension/plugins/html/rules/text.js +5 -3
- package/dist/basic-sdk/extension/plugins/image/constants/index.js +2 -2
- package/dist/basic-sdk/extension/plugins/image/dialogs/image-previewer.js +59 -75
- package/dist/basic-sdk/extension/plugins/image/helpers.js +74 -98
- package/dist/basic-sdk/extension/plugins/image/hover-menu/index.js +49 -62
- package/dist/basic-sdk/extension/plugins/image/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/image/menu/index.js +12 -9
- package/dist/basic-sdk/extension/plugins/image/model.js +11 -12
- package/dist/basic-sdk/extension/plugins/image/plugin.js +43 -35
- package/dist/basic-sdk/extension/plugins/image/render-elem.js +73 -91
- package/dist/basic-sdk/extension/plugins/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/link/dialog/add-link-dialog/index.js +30 -39
- package/dist/basic-sdk/extension/plugins/link/helpers.js +76 -100
- package/dist/basic-sdk/extension/plugins/link/hover/index.js +12 -9
- package/dist/basic-sdk/extension/plugins/link/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/link/menu/index.js +10 -8
- package/dist/basic-sdk/extension/plugins/link/model.js +10 -11
- package/dist/basic-sdk/extension/plugins/link/plugin.js +28 -31
- package/dist/basic-sdk/extension/plugins/link/render-elem.js +66 -74
- package/dist/basic-sdk/extension/plugins/list/helpers.js +45 -57
- package/dist/basic-sdk/extension/plugins/list/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/list/menu/index.js +37 -49
- package/dist/basic-sdk/extension/plugins/list/model.js +11 -12
- package/dist/basic-sdk/extension/plugins/list/plugin/index.js +16 -12
- package/dist/basic-sdk/extension/plugins/list/plugin/insert-break-list.js +4 -4
- package/dist/basic-sdk/extension/plugins/list/plugin/insert-fragment-list.js +54 -70
- package/dist/basic-sdk/extension/plugins/list/plugin/normalize-list.js +16 -20
- package/dist/basic-sdk/extension/plugins/list/plugin/on-tab-handle.js +19 -14
- package/dist/basic-sdk/extension/plugins/list/plugin/shortcut.js +20 -28
- package/dist/basic-sdk/extension/plugins/list/queries/index.js +16 -18
- package/dist/basic-sdk/extension/plugins/list/render-elem.js +23 -15
- package/dist/basic-sdk/extension/plugins/list/transforms/insert-list-item.js +20 -24
- package/dist/basic-sdk/extension/plugins/list/transforms/move-list-item-down.js +16 -19
- package/dist/basic-sdk/extension/plugins/list/transforms/move-list-item-up.js +31 -35
- package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items-to-list.js +18 -18
- package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items.js +23 -24
- package/dist/basic-sdk/extension/plugins/list/transforms/normalize-list-item.js +38 -55
- package/dist/basic-sdk/extension/plugins/list/transforms/normalize-nested-list.js +11 -13
- package/dist/basic-sdk/extension/plugins/list/transforms/remove-first-list-item.js +8 -8
- package/dist/basic-sdk/extension/plugins/list/transforms/toggle-list.js +42 -50
- package/dist/basic-sdk/extension/plugins/list/transforms/unwrap-list.js +11 -14
- package/dist/basic-sdk/extension/plugins/markdown/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/markdown/plugin.js +59 -52
- package/dist/basic-sdk/extension/plugins/paragraph/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/paragraph/render-elem.js +12 -10
- package/dist/basic-sdk/extension/plugins/sdoc-link/constants/index.js +16 -14
- package/dist/basic-sdk/extension/plugins/sdoc-link/helpers.js +66 -65
- package/dist/basic-sdk/extension/plugins/sdoc-link/hover-menu/index.js +19 -23
- package/dist/basic-sdk/extension/plugins/sdoc-link/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/sdoc-link/menu/index.js +10 -8
- package/dist/basic-sdk/extension/plugins/sdoc-link/plugin.js +23 -15
- package/dist/basic-sdk/extension/plugins/sdoc-link/render-elem.js +35 -39
- package/dist/basic-sdk/extension/plugins/table/constants/index.js +16 -14
- package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.js +17 -24
- package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/number-input.js +9 -7
- package/dist/basic-sdk/extension/plugins/table/helpers.js +466 -440
- package/dist/basic-sdk/extension/plugins/table/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/cell-bg-color-menu.js +16 -13
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/cell-text-align-menu.js +16 -18
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/common-menu.js +58 -65
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.js +7 -5
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/remove-table-menu.js +11 -9
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/table-column-menu.js +13 -14
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/table-row-menu.js +13 -14
- package/dist/basic-sdk/extension/plugins/table/menu/table-context-menu/index.js +92 -105
- package/dist/basic-sdk/extension/plugins/table/menu/table-context-menu/insert-table-element.js +62 -66
- package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +9 -7
- package/dist/basic-sdk/extension/plugins/table/model.js +14 -15
- package/dist/basic-sdk/extension/plugins/table/plugin.js +130 -112
- package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +31 -45
- package/dist/basic-sdk/extension/plugins/table/popover/table-template/index.js +12 -14
- package/dist/basic-sdk/extension/plugins/table/popover/table-template/sample-table.js +15 -19
- package/dist/basic-sdk/extension/plugins/table/render/hooks.js +25 -32
- package/dist/basic-sdk/extension/plugins/table/render/index.js +57 -67
- package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +42 -36
- package/dist/basic-sdk/extension/plugins/table/render/render-row.js +44 -49
- package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/first-column-left-resize-handler.js +36 -45
- package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/index.js +10 -8
- package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/resize-handler.js +41 -50
- package/dist/basic-sdk/extension/plugins/table/render/table-header/columns-header/column-header.js +30 -29
- package/dist/basic-sdk/extension/plugins/table/render/table-header/columns-header/index.js +21 -33
- package/dist/basic-sdk/extension/plugins/table/render/table-header/index.js +17 -15
- package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-columns-header.js +7 -5
- package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-header/index.js +22 -32
- package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-header/row-header.js +41 -43
- package/dist/basic-sdk/extension/plugins/table/render/table-root.js +16 -20
- package/dist/basic-sdk/extension/plugins/text-align/helpers.js +19 -24
- package/dist/basic-sdk/extension/plugins/text-align/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/text-align/menu/index.js +20 -26
- package/dist/basic-sdk/extension/plugins/text-style/caret.js +9 -7
- package/dist/basic-sdk/extension/plugins/text-style/helpers.js +17 -24
- package/dist/basic-sdk/extension/plugins/text-style/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +38 -37
- package/dist/basic-sdk/extension/plugins/text-style/plugin.js +6 -6
- package/dist/basic-sdk/extension/plugins/text-style/render-elem.js +14 -10
- package/dist/basic-sdk/extension/render/custom-element.js +30 -49
- package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/index.js +6 -4
- package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-delete-modify-decorate.js +13 -10
- package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-modify-delete-decorate.js +13 -10
- package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-modify-modify-decorate.js +21 -19
- package/dist/basic-sdk/extension/render/render-element.js +5 -3
- package/dist/basic-sdk/extension/render/render-leaf.js +4 -6
- package/dist/basic-sdk/extension/toolbar/context-toolbar/index.js +18 -16
- package/dist/basic-sdk/extension/toolbar/header-toolbar/index.js +5 -3
- package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +29 -29
- package/dist/basic-sdk/extension/toolbar/header-toolbar/redo-undo.js +45 -53
- package/dist/basic-sdk/extension/toolbar/side-toolbar/event.js +8 -8
- package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +45 -49
- package/dist/basic-sdk/extension/toolbar/side-toolbar/index.js +50 -72
- package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-below-menu.js +5 -3
- package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +25 -26
- package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu.js +24 -26
- package/dist/basic-sdk/extension/toolbar/side-toolbar/transform-menus.js +14 -16
- package/dist/basic-sdk/extension/utils/index.js +4 -4
- package/dist/basic-sdk/highlight/index.js +8 -13
- package/dist/basic-sdk/highlight/setNodeToDecorations.js +43 -73
- package/dist/basic-sdk/hooks/use-color-context.js +27 -35
- package/dist/basic-sdk/hooks/use-scroll-context.js +6 -4
- package/dist/basic-sdk/hooks/use-selection-element.js +5 -7
- package/dist/basic-sdk/hooks/use-selection-position.js +13 -15
- package/dist/basic-sdk/hooks/use-selection-update.js +6 -11
- package/dist/basic-sdk/layout/article-container.js +20 -23
- package/dist/basic-sdk/layout/editor-container.js +6 -4
- package/dist/basic-sdk/layout/editor-content.js +15 -15
- package/dist/basic-sdk/node-id/constants.js +9 -9
- package/dist/basic-sdk/node-id/helpers.js +44 -29
- package/dist/basic-sdk/node-id/index.js +13 -11
- package/dist/basic-sdk/outline/index.js +24 -27
- package/dist/basic-sdk/outline/outline-item.js +39 -44
- package/dist/basic-sdk/socket/helpers.js +99 -90
- package/dist/basic-sdk/socket/socket-client.js +175 -171
- package/dist/basic-sdk/socket/socket-manager.js +316 -297
- package/dist/basic-sdk/socket/with-socket-io.js +38 -30
- package/dist/basic-sdk/utils/debug.js +4 -4
- package/dist/basic-sdk/utils/diff-text.js +191 -193
- package/dist/basic-sdk/utils/diff.js +115 -106
- package/dist/basic-sdk/utils/document-utils.js +10 -13
- package/dist/basic-sdk/utils/dom-utils.js +18 -16
- package/dist/basic-sdk/utils/event-bus.js +26 -39
- package/dist/basic-sdk/utils/event-handler.js +81 -79
- package/dist/basic-sdk/utils/mouse-event.js +29 -27
- package/dist/basic-sdk/utils/object-utils.js +35 -53
- package/dist/basic-sdk/utils/rebase.js +101 -76
- package/dist/basic-sdk/views/published-revision-diff-viewer.js +19 -22
- package/dist/basic-sdk/views/readonly-article.js +7 -5
- package/dist/basic-sdk/views/revision-diff-viewer.js +15 -18
- package/dist/basic-sdk/views/sdoc-diff-viewer.js +8 -6
- package/dist/basic-sdk/views/sdoc-viewer.js +9 -7
- package/dist/components/common-loading/index.js +1 -1
- package/dist/components/doc-info/index.js +25 -23
- package/dist/components/doc-operations/collaborators-operation/collaborators-popover.js +36 -49
- package/dist/components/doc-operations/collaborators-operation/index.js +58 -76
- package/dist/components/doc-operations/comments-operation/index.js +7 -13
- package/dist/components/doc-operations/history-operation.js +5 -5
- package/dist/components/doc-operations/index.js +10 -9
- package/dist/components/doc-operations/more-operations.js +15 -21
- package/dist/components/doc-operations/revision-operations/changes-count/index.js +15 -16
- package/dist/components/doc-operations/revision-operations/index.js +65 -71
- package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +13 -17
- package/dist/components/doc-operations/revision-operations/publish-revision/index.js +8 -5
- package/dist/components/doc-operations/revision-operations/revisions/index.js +13 -19
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +56 -87
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +14 -16
- package/dist/components/doc-operations/revision-operations/view-changes/index.js +25 -32
- package/dist/components/doc-operations/share-operation/index.js +2 -2
- package/dist/components/doc-operations/tag-operation/constans.js +1 -1
- package/dist/components/doc-operations/tag-operation/file-tag-quick-view/index.js +26 -42
- package/dist/components/doc-operations/tag-operation/index.js +1 -1
- package/dist/components/doc-operations/tag-operation/tag-popover/index.js +95 -175
- package/dist/components/doc-operations/tag-operation/utils.js +2 -6
- package/dist/components/draft-dropdown/index.js +44 -53
- package/dist/components/loading/index.js +8 -22
- package/dist/components/modal-portal/index.js +15 -32
- package/dist/components/switch/index.js +8 -6
- package/dist/components/tip-dialog/index.js +21 -23
- package/dist/components/tip-message/index.js +93 -92
- package/dist/components/toast/alert.js +73 -88
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toast/toast.js +76 -103
- package/dist/components/toast/toastManager.js +55 -89
- package/dist/components/toast/toaster.js +54 -56
- package/dist/components/tooltip/index.js +15 -16
- package/dist/constants/index.js +26 -6
- package/dist/constants/transfer-types.js +3 -3
- package/dist/context.js +242 -339
- package/dist/hooks/use-collaborators.js +18 -20
- package/dist/hooks/use-document.js +33 -45
- package/dist/layout/content.js +13 -26
- package/dist/layout/header.js +13 -26
- package/dist/layout/layout.js +11 -9
- package/dist/model/notification.js +10 -11
- package/dist/model/revision.js +27 -28
- package/dist/model/user.js +10 -11
- package/dist/pages/error-boundary.js +18 -36
- package/dist/pages/error-page.js +14 -26
- package/dist/pages/published-revision-viewer.js +23 -35
- package/dist/pages/simple-editor.js +39 -46
- package/dist/pages/simple-viewer.js +70 -104
- package/dist/utils/date-utils.js +67 -81
- package/dist/utils/get-event-transfer.js +13 -15
- package/dist/utils/hotkey.js +24 -24
- package/dist/utils/index.js +20 -20
- package/dist/utils/local-storage-utils.js +41 -58
- package/package.json +10 -10
- package/public/locales/cs/sdoc-editor.json +3 -1
- package/public/locales/de/sdoc-editor.json +3 -1
- package/public/locales/en/sdoc-editor.json +1 -0
- package/public/locales/es/sdoc-editor.json +3 -1
- package/public/locales/fr/sdoc-editor.json +3 -1
- package/public/locales/it/sdoc-editor.json +3 -1
- package/public/locales/ru/sdoc-editor.json +3 -1
- package/public/locales/zh_CN/sdoc-editor.json +1 -0
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
3
1
|
import copy from 'copy-to-clipboard';
|
|
4
2
|
import { Transforms, Editor, Node } from '@seafile/slate';
|
|
5
3
|
import slugid from 'slugid';
|
|
6
4
|
import { CODE_BLOCK, CODE_LINE, INSERT_POSITION, PARAGRAPH } from '../../constants';
|
|
7
5
|
import { getNodeType, getSelectedNodeByType, getSelectedElems } from '../../core';
|
|
8
6
|
import { genCodeLangs } from './prismjs';
|
|
9
|
-
export
|
|
7
|
+
export const isMenuDisabled = (editor, readonly) => {
|
|
10
8
|
if (readonly) return true;
|
|
11
|
-
|
|
9
|
+
const {
|
|
10
|
+
selection
|
|
11
|
+
} = editor;
|
|
12
12
|
if (selection == null) return true;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return editor.isVoid(elem);
|
|
16
|
-
});
|
|
13
|
+
const selectedElems = getSelectedElems(editor);
|
|
14
|
+
const hasVoid = selectedElems.some(elem => editor.isVoid(elem));
|
|
17
15
|
if (hasVoid) return true;
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const isMatch = selectedElems.some(elem => {
|
|
17
|
+
const type = getNodeType(elem);
|
|
20
18
|
if (type === CODE_BLOCK || type === PARAGRAPH) return true;
|
|
21
19
|
return false;
|
|
22
20
|
});
|
|
@@ -24,53 +22,41 @@ export var isMenuDisabled = function isMenuDisabled(editor, readonly) {
|
|
|
24
22
|
return true; // disable
|
|
25
23
|
};
|
|
26
24
|
|
|
27
|
-
export
|
|
28
|
-
|
|
25
|
+
export const getSelectCodeElem = editor => {
|
|
26
|
+
const codeNode = getSelectedNodeByType(editor, CODE_BLOCK);
|
|
29
27
|
if (codeNode == null) return null;
|
|
30
28
|
return codeNode;
|
|
31
29
|
};
|
|
32
|
-
export
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
export const changeToCodeBlock = function (editor) {
|
|
31
|
+
let language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
32
|
+
let position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : INSERT_POSITION.CURRENT;
|
|
35
33
|
// Summarizes the strings for the selected highest-level node
|
|
36
|
-
|
|
34
|
+
let strArr = [];
|
|
37
35
|
if (position === INSERT_POSITION.AFTER) {
|
|
38
36
|
strArr = [''];
|
|
39
37
|
} else {
|
|
40
38
|
// Select the plain text of the node
|
|
41
|
-
|
|
42
|
-
match:
|
|
43
|
-
return editor.children.includes(n);
|
|
44
|
-
},
|
|
39
|
+
const nodeEntries = Editor.nodes(editor, {
|
|
40
|
+
match: n => editor.children.includes(n),
|
|
45
41
|
// Matches the selected node at the highest level
|
|
46
42
|
universal: true
|
|
47
43
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52
|
-
var nodeEntry = _step.value;
|
|
53
|
-
var _nodeEntry = _slicedToArray(nodeEntry, 1),
|
|
54
|
-
n = _nodeEntry[0];
|
|
55
|
-
if (n) strArr.push(Node.string(n));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Deletes the selected node at the highest level
|
|
59
|
-
} catch (err) {
|
|
60
|
-
_iterator.e(err);
|
|
61
|
-
} finally {
|
|
62
|
-
_iterator.f();
|
|
44
|
+
for (let nodeEntry of nodeEntries) {
|
|
45
|
+
const [n] = nodeEntry;
|
|
46
|
+
if (n) strArr.push(Node.string(n));
|
|
63
47
|
}
|
|
48
|
+
|
|
49
|
+
// Deletes the selected node at the highest level
|
|
64
50
|
Transforms.removeNodes(editor, {
|
|
65
51
|
mode: 'highest'
|
|
66
52
|
});
|
|
67
53
|
}
|
|
68
54
|
|
|
69
55
|
// Insert the codeBlockNode node
|
|
70
|
-
|
|
56
|
+
const newCodeBlockNode = {
|
|
71
57
|
id: slugid.nice(),
|
|
72
58
|
type: CODE_BLOCK,
|
|
73
|
-
language
|
|
59
|
+
language,
|
|
74
60
|
style: {
|
|
75
61
|
white_space: 'nowrap' // default nowrap
|
|
76
62
|
},
|
|
@@ -84,7 +70,7 @@ export var changeToCodeBlock = function changeToCodeBlock(editor) {
|
|
|
84
70
|
}]
|
|
85
71
|
}]
|
|
86
72
|
};
|
|
87
|
-
|
|
73
|
+
const path = Editor.path(editor, editor.selection);
|
|
88
74
|
if (position === INSERT_POSITION.AFTER) {
|
|
89
75
|
Transforms.insertNodes(editor, newCodeBlockNode, {
|
|
90
76
|
mode: 'highest',
|
|
@@ -93,8 +79,8 @@ export var changeToCodeBlock = function changeToCodeBlock(editor) {
|
|
|
93
79
|
Transforms.select(editor, [path[0] + 1, 0, 0]);
|
|
94
80
|
return;
|
|
95
81
|
}
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
const atPath = path ? [path[0]] : editor.selection;
|
|
83
|
+
const atPoint = path ? {
|
|
98
84
|
anchor: {
|
|
99
85
|
offset: 0,
|
|
100
86
|
path: [path[0], 0, 0]
|
|
@@ -110,12 +96,12 @@ export var changeToCodeBlock = function changeToCodeBlock(editor) {
|
|
|
110
96
|
});
|
|
111
97
|
Transforms.select(editor, atPoint);
|
|
112
98
|
};
|
|
113
|
-
export
|
|
114
|
-
|
|
99
|
+
export const changeToPlainText = editor => {
|
|
100
|
+
const elem = getSelectCodeElem(editor);
|
|
115
101
|
if (elem == null) return;
|
|
116
102
|
|
|
117
103
|
// Get code text
|
|
118
|
-
|
|
104
|
+
const str = Node.string(elem);
|
|
119
105
|
|
|
120
106
|
// Delete the highest level node, -> "the code-block node"
|
|
121
107
|
Transforms.removeNodes(editor, {
|
|
@@ -123,7 +109,7 @@ export var changeToPlainText = function changeToPlainText(editor) {
|
|
|
123
109
|
});
|
|
124
110
|
|
|
125
111
|
// Insert p node
|
|
126
|
-
|
|
112
|
+
const pList = str.split('\n').map(s => {
|
|
127
113
|
return {
|
|
128
114
|
id: elem.id,
|
|
129
115
|
type: PARAGRAPH,
|
|
@@ -137,34 +123,30 @@ export var changeToPlainText = function changeToPlainText(editor) {
|
|
|
137
123
|
mode: 'highest'
|
|
138
124
|
});
|
|
139
125
|
};
|
|
140
|
-
export
|
|
126
|
+
export const setClipboardCodeBlockData = value => {
|
|
141
127
|
// Insert text into the clipboard for use on other pages
|
|
142
|
-
|
|
143
|
-
return Node.string(line);
|
|
144
|
-
}).join('\n');
|
|
128
|
+
const text = value.children.map(line => Node.string(line)).join('\n');
|
|
145
129
|
copy(text, {
|
|
146
130
|
format: 'text/plain',
|
|
147
|
-
onCopy:
|
|
131
|
+
onCopy: data => {
|
|
148
132
|
// Set the sdoc editor to format the data
|
|
149
133
|
data.setData('text/code-block', JSON.stringify(value));
|
|
150
134
|
}
|
|
151
135
|
});
|
|
152
136
|
};
|
|
153
|
-
export
|
|
154
|
-
|
|
137
|
+
export const deleteBackwardByLength = (editor, len) => {
|
|
138
|
+
let i = len >= 4 ? 4 : len;
|
|
155
139
|
while (i > 0) {
|
|
156
140
|
Editor.deleteBackward(editor, 'word');
|
|
157
141
|
i--;
|
|
158
142
|
}
|
|
159
143
|
};
|
|
160
|
-
export
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return item.value === lang;
|
|
164
|
-
});
|
|
144
|
+
export const getSelectedLangOption = lang => {
|
|
145
|
+
const langs = genCodeLangs();
|
|
146
|
+
const selectedLangOption = langs.find(item => item.value === lang);
|
|
165
147
|
return selectedLangOption || langs[0];
|
|
166
148
|
};
|
|
167
|
-
export
|
|
168
|
-
|
|
149
|
+
export const getValidLang = lang => {
|
|
150
|
+
const langOption = getSelectedLangOption(lang);
|
|
169
151
|
return langOption.value;
|
|
170
152
|
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
1
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
3
2
|
import { Input } from 'reactstrap';
|
|
4
3
|
import { withTranslation } from 'react-i18next';
|
|
@@ -7,53 +6,44 @@ import { ElementPopover } from '../../../commons/';
|
|
|
7
6
|
import { genCodeLangs } from '../prismjs';
|
|
8
7
|
import { getSelectedLangOption } from '../helpers';
|
|
9
8
|
import './index.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var _useState5 = useState(genCodeLangs()),
|
|
30
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
31
|
-
langsData = _useState6[0],
|
|
32
|
-
setLangsData = _useState6[1];
|
|
33
|
-
var _useState7 = useState(false),
|
|
34
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
35
|
-
isShowTooltip = _useState8[0],
|
|
36
|
-
setIsShowTooltip = _useState8[1];
|
|
37
|
-
var onHiddenLangsList = useCallback(function (e) {
|
|
9
|
+
const CodeBlockHoverMenu = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
style,
|
|
12
|
+
language,
|
|
13
|
+
menuPosition,
|
|
14
|
+
onChangeLanguage,
|
|
15
|
+
onChangeAutoLineWrap,
|
|
16
|
+
onCopyCodeBlock,
|
|
17
|
+
onDeleteCodeBlock,
|
|
18
|
+
t
|
|
19
|
+
} = _ref;
|
|
20
|
+
const {
|
|
21
|
+
white_space = 'nowrap'
|
|
22
|
+
} = style;
|
|
23
|
+
const [isShowlangsList, setIsShowlangsList] = useState(false);
|
|
24
|
+
const [selectedLanguageText, setSelectedLanguageText] = useState('');
|
|
25
|
+
const [langsData, setLangsData] = useState(genCodeLangs());
|
|
26
|
+
const [isShowTooltip, setIsShowTooltip] = useState(false);
|
|
27
|
+
const onHiddenLangsList = useCallback(e => {
|
|
38
28
|
if (!e.target.parentNode.className.includes('sdoc-search-langs')) {
|
|
39
29
|
setIsShowlangsList(false);
|
|
40
30
|
}
|
|
41
31
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
32
|
}, []);
|
|
43
|
-
useEffect(
|
|
33
|
+
useEffect(() => {
|
|
44
34
|
setIsShowTooltip(true);
|
|
45
35
|
window.addEventListener('click', onHiddenLangsList);
|
|
46
|
-
return
|
|
36
|
+
return () => {
|
|
47
37
|
window.removeEventListener('click', onHiddenLangsList);
|
|
48
38
|
};
|
|
49
39
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
50
40
|
}, []);
|
|
51
|
-
|
|
41
|
+
const onShowLangs = useCallback(e => {
|
|
52
42
|
e.stopPropagation();
|
|
53
43
|
setIsShowlangsList(!isShowlangsList);
|
|
54
44
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
45
|
}, [isShowlangsList]);
|
|
56
|
-
|
|
46
|
+
const onAutoLineWrap = useCallback(() => {
|
|
57
47
|
if (white_space === 'normal') {
|
|
58
48
|
onChangeAutoLineWrap('nowrap');
|
|
59
49
|
} else {
|
|
@@ -61,36 +51,38 @@ var CodeBlockHoverMenu = function CodeBlockHoverMenu(_ref) {
|
|
|
61
51
|
}
|
|
62
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
53
|
}, [white_space]);
|
|
64
|
-
|
|
54
|
+
const onDelete = useCallback(() => {
|
|
65
55
|
onDeleteCodeBlock();
|
|
66
56
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
67
57
|
}, []);
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
const onSelectLang = useCallback(lang => {
|
|
59
|
+
const {
|
|
60
|
+
text
|
|
61
|
+
} = lang;
|
|
70
62
|
setSelectedLanguageText(text);
|
|
71
63
|
onChangeLanguage(lang);
|
|
72
64
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
65
|
}, []);
|
|
74
|
-
useEffect(
|
|
66
|
+
useEffect(() => {
|
|
75
67
|
// Compatible with legacy code
|
|
76
|
-
|
|
68
|
+
let selectedLanguage = language;
|
|
77
69
|
if (language === 'text') {
|
|
78
70
|
selectedLanguage = 'plaintext';
|
|
79
71
|
}
|
|
80
|
-
|
|
72
|
+
const selectedLanguageOption = getSelectedLangOption(selectedLanguage);
|
|
81
73
|
setSelectedLanguageText(selectedLanguageOption.text);
|
|
82
74
|
}, [language]);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
genCodeLangs().forEach(
|
|
75
|
+
const onChange = useCallback(e => {
|
|
76
|
+
const filterData = [];
|
|
77
|
+
const restData = [];
|
|
78
|
+
genCodeLangs().forEach(item => {
|
|
87
79
|
if (item.value.startsWith(e.currentTarget.value.toLowerCase())) {
|
|
88
80
|
filterData.push(item);
|
|
89
81
|
} else {
|
|
90
82
|
restData.push(item);
|
|
91
83
|
}
|
|
92
84
|
});
|
|
93
|
-
setLangsData([
|
|
85
|
+
setLangsData([...filterData, ...restData]);
|
|
94
86
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
95
87
|
}, []);
|
|
96
88
|
return /*#__PURE__*/React.createElement(ElementPopover, null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -160,12 +152,12 @@ var CodeBlockHoverMenu = function CodeBlockHoverMenu(_ref) {
|
|
|
160
152
|
onChange: onChange
|
|
161
153
|
})), /*#__PURE__*/React.createElement("ul", {
|
|
162
154
|
className: "langs-list-ul"
|
|
163
|
-
}, langsData.map(
|
|
155
|
+
}, langsData.map(item => {
|
|
164
156
|
return /*#__PURE__*/React.createElement("li", {
|
|
165
157
|
className: "langs-list-li ".concat(selectedLanguageText === item.text ? 'active' : ''),
|
|
166
158
|
id: item.value,
|
|
167
159
|
key: item.value,
|
|
168
|
-
onClick:
|
|
160
|
+
onClick: () => {
|
|
169
161
|
onSelectLang(item);
|
|
170
162
|
}
|
|
171
163
|
}, item.text, /*#__PURE__*/React.createElement("span", {
|
|
@@ -2,7 +2,7 @@ import { CODE_BLOCK } from '../../constants';
|
|
|
2
2
|
import CodeBlockMenu from './menu';
|
|
3
3
|
import withCodeBlock from './plugin';
|
|
4
4
|
import { renderCodeBlock, renderCodeLine } from './render-elem';
|
|
5
|
-
|
|
5
|
+
const CodeBlockPlugin = {
|
|
6
6
|
type: CODE_BLOCK,
|
|
7
7
|
nodeType: 'element',
|
|
8
8
|
editorMenus: [CodeBlockMenu],
|
|
@@ -3,13 +3,15 @@ import { focusEditor } from '../../../core';
|
|
|
3
3
|
import { MENUS_CONFIG_MAP, ELEMENT_TYPE, INSERT_POSITION } from '../../../constants';
|
|
4
4
|
import { isMenuDisabled, changeToCodeBlock } from '../helpers';
|
|
5
5
|
import DropdownMenuItem from '../../../commons/dropdown-menu-item';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
const CodeBlockMenu = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
editor,
|
|
9
|
+
readonly,
|
|
10
|
+
toggle
|
|
11
|
+
} = _ref;
|
|
12
|
+
const disabled = isMenuDisabled(editor, readonly);
|
|
13
|
+
const menuConfig = MENUS_CONFIG_MAP[ELEMENT_TYPE.CODE_BLOCK];
|
|
14
|
+
const insertCodeBlock = useCallback(() => {
|
|
13
15
|
changeToCodeBlock(editor, 'plaintext', INSERT_POSITION.CURRENT);
|
|
14
16
|
toggle && toggle();
|
|
15
17
|
focusEditor(editor);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
1
|
import { BLOCKQUOTE } from '../../constants';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
2
|
+
class Blockquote {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.type = options.type || BLOCKQUOTE;
|
|
5
|
+
this.children = options.children || [{
|
|
6
|
+
text: ''
|
|
7
|
+
}];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
11
10
|
export default Blockquote;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _toArray from "@babel/runtime/helpers/esm/toArray";
|
|
3
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
5
2
|
import slugid from 'slugid';
|
|
6
3
|
import isHotkey from 'is-hotkey';
|
|
@@ -8,55 +5,57 @@ import { Transforms, Node, Range, Editor } from '@seafile/slate';
|
|
|
8
5
|
import { getNodeType, isLastNode, getSelectedNodeByType, generateEmptyElement, isSelectionAtBlockStart } from '../../core';
|
|
9
6
|
import { deleteBackwardByLength } from './helpers';
|
|
10
7
|
import { CODE_BLOCK, PARAGRAPH, CODE_LINE, BLOCKQUOTE } from '../../constants';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
const withCodeBlock = editor => {
|
|
9
|
+
const {
|
|
10
|
+
normalizeNode,
|
|
11
|
+
insertFragment,
|
|
12
|
+
insertText,
|
|
13
|
+
insertBreak,
|
|
14
|
+
insertData,
|
|
15
|
+
deleteBackward
|
|
16
|
+
} = editor;
|
|
17
|
+
const newEditor = editor;
|
|
19
18
|
|
|
20
19
|
// If you enter two Spaces in quick succession, a period and a space appear (Default Settings for mac)
|
|
21
|
-
newEditor.insertText =
|
|
20
|
+
newEditor.insertText = data => {
|
|
22
21
|
if (data === '. ') {
|
|
23
22
|
return insertText(' ');
|
|
24
23
|
}
|
|
25
24
|
return insertText(data);
|
|
26
25
|
};
|
|
27
|
-
newEditor.deleteBackward =
|
|
28
|
-
|
|
26
|
+
newEditor.deleteBackward = unit => {
|
|
27
|
+
const node = getSelectedNodeByType(editor, CODE_BLOCK);
|
|
29
28
|
if (node) {
|
|
30
29
|
if (isSelectionAtBlockStart(editor)) return;
|
|
31
30
|
}
|
|
32
31
|
deleteBackward(unit);
|
|
33
32
|
};
|
|
34
|
-
newEditor.insertData =
|
|
33
|
+
newEditor.insertData = data => {
|
|
35
34
|
// Paste a single code block element somewhere other than a code block
|
|
36
35
|
if (data.types.includes('text/code-block') && !getSelectedNodeByType(editor, CODE_BLOCK)) {
|
|
37
|
-
|
|
36
|
+
const options = {};
|
|
38
37
|
// Paste into quote block
|
|
39
38
|
if (getSelectedNodeByType(newEditor, BLOCKQUOTE)) {
|
|
40
|
-
|
|
39
|
+
const path = Editor.path(newEditor, newEditor.selection);
|
|
41
40
|
options['at'] = [path[0]];
|
|
42
41
|
}
|
|
43
|
-
|
|
42
|
+
const codeBlockNode = JSON.parse(data.getData('text/code-block'));
|
|
44
43
|
return Transforms.insertNodes(newEditor, codeBlockNode, _objectSpread({}, options));
|
|
45
44
|
}
|
|
46
45
|
insertData(data);
|
|
47
46
|
};
|
|
48
|
-
newEditor.insertFragment =
|
|
47
|
+
newEditor.insertFragment = data => {
|
|
49
48
|
// Only selected code block content
|
|
50
49
|
if (data.length === 1 && data[0].type === CODE_BLOCK && !getSelectedNodeByType(editor, CODE_BLOCK)) {
|
|
51
|
-
data.forEach(
|
|
50
|
+
data.forEach((node, index) => {
|
|
52
51
|
if (node.type === CODE_BLOCK) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
const newBlock = node.children.map(line => {
|
|
53
|
+
const text = Node.string(line);
|
|
54
|
+
const p = generateEmptyElement(PARAGRAPH);
|
|
56
55
|
p.children[0].text = text;
|
|
57
56
|
return p;
|
|
58
57
|
});
|
|
59
|
-
data.splice
|
|
58
|
+
data.splice(index, 1, ...newBlock);
|
|
60
59
|
}
|
|
61
60
|
});
|
|
62
61
|
return insertFragment(data);
|
|
@@ -64,17 +63,15 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
64
63
|
// Paste into code block
|
|
65
64
|
if (getSelectedNodeByType(editor, CODE_BLOCK)) {
|
|
66
65
|
// Pasted data is code block split with code-line
|
|
67
|
-
data.forEach(
|
|
66
|
+
data.forEach((node, index) => {
|
|
68
67
|
if (node.type === CODE_BLOCK) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
data.splice.apply(data, [index, 1].concat(_toConsumableArray(codeLineArr)));
|
|
68
|
+
const codeLineArr = node.children.map(line => line);
|
|
69
|
+
data.splice(index, 1, ...codeLineArr);
|
|
73
70
|
}
|
|
74
71
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
const newData = data.map(node => {
|
|
73
|
+
const text = Node.string(node);
|
|
74
|
+
const codeLine = {
|
|
78
75
|
id: slugid.nice(),
|
|
79
76
|
type: CODE_LINE,
|
|
80
77
|
children: [{
|
|
@@ -86,12 +83,10 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
86
83
|
});
|
|
87
84
|
|
|
88
85
|
// current focus code-line string not empty
|
|
89
|
-
|
|
86
|
+
const string = Editor.string(newEditor, newEditor.selection.focus.path);
|
|
90
87
|
if (string.length !== 0 && Range.isCollapsed(newEditor.selection)) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
restNode = _newData.slice(1);
|
|
94
|
-
var text = Node.string(node);
|
|
88
|
+
const [node, ...restNode] = newData;
|
|
89
|
+
const text = Node.string(node);
|
|
95
90
|
insertText(text);
|
|
96
91
|
if (restNode.length !== 0) {
|
|
97
92
|
insertBreak();
|
|
@@ -108,11 +103,9 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
108
103
|
};
|
|
109
104
|
|
|
110
105
|
// Rewrite normalizeNode
|
|
111
|
-
newEditor.normalizeNode =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
path = _ref2[1];
|
|
115
|
-
var type = getNodeType(node);
|
|
106
|
+
newEditor.normalizeNode = _ref => {
|
|
107
|
+
let [node, path] = _ref;
|
|
108
|
+
const type = getNodeType(node);
|
|
116
109
|
if (type === CODE_LINE && path.length <= 1) {
|
|
117
110
|
Transforms.setNodes(newEditor, {
|
|
118
111
|
type: PARAGRAPH
|
|
@@ -130,9 +123,9 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
130
123
|
}
|
|
131
124
|
|
|
132
125
|
// code-block is the last node in the editor and needs to be followed by a p node
|
|
133
|
-
|
|
126
|
+
const isLast = isLastNode(newEditor, node);
|
|
134
127
|
if (isLast) {
|
|
135
|
-
|
|
128
|
+
const paragraph = generateEmptyElement(PARAGRAPH);
|
|
136
129
|
Transforms.insertNodes(newEditor, paragraph, {
|
|
137
130
|
at: [path[0] + 1]
|
|
138
131
|
});
|
|
@@ -148,12 +141,12 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
148
141
|
});
|
|
149
142
|
}
|
|
150
143
|
if (node.children.length > 1) {
|
|
151
|
-
node.children.forEach(
|
|
144
|
+
node.children.forEach((child, index) => {
|
|
152
145
|
if (child.type !== CODE_LINE) {
|
|
153
146
|
Transforms.setNodes(newEditor, {
|
|
154
147
|
type: CODE_LINE
|
|
155
148
|
}, {
|
|
156
|
-
at: [
|
|
149
|
+
at: [...path, index]
|
|
157
150
|
});
|
|
158
151
|
}
|
|
159
152
|
});
|
|
@@ -163,11 +156,11 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
163
156
|
// Perform default behavior
|
|
164
157
|
return normalizeNode([node, path]);
|
|
165
158
|
};
|
|
166
|
-
newEditor.codeBlockOnKeyDown =
|
|
159
|
+
newEditor.codeBlockOnKeyDown = event => {
|
|
167
160
|
if (isHotkey(['command+enter', 'ctrl+enter'], event)) {
|
|
168
161
|
if (newEditor.selection && !Range.isExpanded(newEditor.selection)) {
|
|
169
|
-
|
|
170
|
-
|
|
162
|
+
const path = Editor.path(newEditor, newEditor.selection);
|
|
163
|
+
const p = generateEmptyElement(PARAGRAPH);
|
|
171
164
|
Transforms.insertNodes(newEditor, p, {
|
|
172
165
|
at: [path[0] + 1]
|
|
173
166
|
});
|
|
@@ -178,14 +171,14 @@ var withCodeBlock = function withCodeBlock(editor) {
|
|
|
178
171
|
newEditor.insertText(' ');
|
|
179
172
|
}
|
|
180
173
|
if (isHotkey('shift+tab', event)) {
|
|
181
|
-
|
|
174
|
+
const range = {
|
|
182
175
|
anchor: {
|
|
183
176
|
offset: 0,
|
|
184
177
|
path: newEditor.selection.focus.path
|
|
185
178
|
},
|
|
186
179
|
focus: _objectSpread({}, newEditor.selection.focus)
|
|
187
180
|
};
|
|
188
|
-
|
|
181
|
+
const str = Editor.string(newEditor, range);
|
|
189
182
|
if (str.trim() === '') {
|
|
190
183
|
deleteBackwardByLength(newEditor, str.length);
|
|
191
184
|
}
|