@seafile/sdoc-editor 0.1.152 → 0.1.154-beta
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 +10 -0
- package/dist/api/seafile-api.js +17 -9
- package/dist/basic-sdk/constants/index.js +25 -1
- package/dist/basic-sdk/editor/common-editor.js +50 -0
- package/dist/basic-sdk/editor/index.css +29 -0
- package/dist/basic-sdk/editor/index.js +129 -0
- package/dist/basic-sdk/{slate-editor.js → editor/slate-editor.js} +21 -16
- package/dist/basic-sdk/extension/constants/diff-view.js +14 -0
- package/dist/basic-sdk/extension/constants/element-type.js +3 -23
- package/dist/basic-sdk/extension/constants/index.js +8 -229
- package/dist/basic-sdk/extension/constants/menus-config.js +234 -0
- package/dist/basic-sdk/extension/core/transforms/replace-node-children.js +26 -0
- package/dist/basic-sdk/extension/plugins/check-list/menu/index.js +2 -2
- package/dist/basic-sdk/extension/plugins/markdown/plugin.js +7 -7
- package/dist/basic-sdk/extension/plugins/table/constants/index.js +5 -1
- package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +2 -3
- package/dist/basic-sdk/extension/plugins/text-align/helpers.js +3 -3
- package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +4 -4
- package/dist/basic-sdk/extension/render/render-element.js +247 -1
- package/dist/basic-sdk/socket/helpers.js +2 -0
- package/dist/basic-sdk/socket/socket-client.js +45 -0
- package/dist/basic-sdk/socket/socket-manager.js +28 -2
- package/dist/basic-sdk/socket/with-socket-io.js +35 -12
- package/dist/basic-sdk/utils/diff.js +4 -3
- package/dist/basic-sdk/utils/rebase.js +228 -0
- package/dist/basic-sdk/views/diff-viewer.js +3 -1
- package/dist/basic-sdk/views/viewer.js +9 -12
- package/dist/components/doc-operations/index.js +4 -2
- package/dist/components/doc-operations/revision-operations/index.js +5 -2
- package/dist/components/doc-operations/revision-operations/publish-button.js +6 -13
- package/dist/components/tip-dialog/index.js +48 -0
- package/dist/components/tip-dialog/tip-content.js +47 -0
- package/dist/constants/index.js +23 -2
- package/dist/context.js +34 -9
- package/dist/pages/simple-editor.js +250 -83
- package/package.json +1 -1
- package/public/locales/en/sdoc-editor.json +11 -1
- package/public/locales/zh_CN/sdoc-editor.json +10 -1
- package/dist/basic-sdk/editor.js +0 -105
|
@@ -58,6 +58,16 @@ var SDocServerApi = /*#__PURE__*/function () {
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
+
|
|
62
|
+
// saveDocContentByRebase(content) {
|
|
63
|
+
// const { server, docUuid, accessToken } = this;
|
|
64
|
+
// const url = `${server}/api/v1/docs/${docUuid}/rebase/`;
|
|
65
|
+
|
|
66
|
+
// const formData = new FormData();
|
|
67
|
+
// formData.append('doc_content', JSON.stringify(content));
|
|
68
|
+
|
|
69
|
+
// return axios.post(url, formData, {headers: {Authorization: `Token ${accessToken}`}});
|
|
70
|
+
// }
|
|
61
71
|
}, {
|
|
62
72
|
key: "getCollaborators",
|
|
63
73
|
value: function getCollaborators() {
|
package/dist/api/seafile-api.js
CHANGED
|
@@ -46,12 +46,6 @@ var SeafileAPI = /*#__PURE__*/function () {
|
|
|
46
46
|
var url = '/api/v2.1/seadoc/download-image/' + docUuid + '/' + encodeURIComponent(imageName);
|
|
47
47
|
return this.req.get(url);
|
|
48
48
|
}
|
|
49
|
-
}, {
|
|
50
|
-
key: "sdocPublishRevision",
|
|
51
|
-
value: function sdocPublishRevision(docUuid) {
|
|
52
|
-
var url = '/api/v2.1/seadoc/publish-revision/' + docUuid + '/';
|
|
53
|
-
return this.req.post(url);
|
|
54
|
-
}
|
|
55
49
|
}, {
|
|
56
50
|
key: "startRevise",
|
|
57
51
|
value: function startRevise(repoID, fileUuid, path) {
|
|
@@ -63,9 +57,9 @@ var SeafileAPI = /*#__PURE__*/function () {
|
|
|
63
57
|
return this._sendPostRequest(url, form);
|
|
64
58
|
}
|
|
65
59
|
}, {
|
|
66
|
-
key: "
|
|
67
|
-
value: function
|
|
68
|
-
var url = '/api/v2.1/seadoc/
|
|
60
|
+
key: "getSeadocOriginFileDownloadLink",
|
|
61
|
+
value: function getSeadocOriginFileDownloadLink(docUuid) {
|
|
62
|
+
var url = '/api/v2.1/seadoc/origin-file-download-link/' + docUuid + '/';
|
|
69
63
|
return this.req.get(url);
|
|
70
64
|
}
|
|
71
65
|
}, {
|
|
@@ -81,6 +75,20 @@ var SeafileAPI = /*#__PURE__*/function () {
|
|
|
81
75
|
var url = 'api/v2.1/seadoc/revisions/' + docUuid + '/?page=' + page + '&per_page=' + perPage;
|
|
82
76
|
return this.req.get(url);
|
|
83
77
|
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "updateSdocRevision",
|
|
80
|
+
value: function updateSdocRevision(docUuid) {
|
|
81
|
+
var url = 'api/v2.1/seadoc/revision/' + docUuid + '/';
|
|
82
|
+
return this.req.put(url);
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "getFileHistoryVersion",
|
|
86
|
+
value: function getFileHistoryVersion(docUuid, fileVersion, docPath) {
|
|
87
|
+
var url = 'api/v2.1/seadoc/history-content/' + docUuid + '/?p=' + encodeURIComponent(docPath) + '&file_version=' + fileVersion;
|
|
88
|
+
return this.req.get(url);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// local files
|
|
84
92
|
}, {
|
|
85
93
|
key: "getSdocFiles",
|
|
86
94
|
value: function getSdocFiles(docUuid, p, type) {
|
|
@@ -6,4 +6,28 @@ export var INTERNAL_EVENT = {
|
|
|
6
6
|
INSERT_ELEMENT: 'insert_element',
|
|
7
7
|
OUTLINE_STATE_CHANGED: 'outline_state_changed'
|
|
8
8
|
};
|
|
9
|
-
export var PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
|
9
|
+
export var PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
|
10
|
+
|
|
11
|
+
export var MODIFY_TYPE = {
|
|
12
|
+
ADD: 'add',
|
|
13
|
+
DELETE: 'delete',
|
|
14
|
+
MODIFY: 'modify',
|
|
15
|
+
CHILDREN_MODIFY: 'children_modify'
|
|
16
|
+
};
|
|
17
|
+
export var REBASE_TYPE = {
|
|
18
|
+
MODIFY_MODIFY: 'modify_modify',
|
|
19
|
+
DELETE_MODIFY: 'delete_modify',
|
|
20
|
+
MODIFY_DELETE: 'modify_delete',
|
|
21
|
+
CHILDREN_MODIFY: 'children_modify'
|
|
22
|
+
};
|
|
23
|
+
export var REBASE_MARK_KEY = {
|
|
24
|
+
ORIGIN: 'origin',
|
|
25
|
+
REBASE_TYPE: 'rebase_type',
|
|
26
|
+
MODIFY_TYPE: 'modify_type',
|
|
27
|
+
OLD_ELEMENT: 'old_element'
|
|
28
|
+
};
|
|
29
|
+
export var REBASE_ORIGIN = {
|
|
30
|
+
OTHER: 'other',
|
|
31
|
+
MY: 'my'
|
|
32
|
+
};
|
|
33
|
+
export var REBASE_MARKS = [REBASE_MARK_KEY.ORIGIN, REBASE_MARK_KEY.REBASE_TYPE, REBASE_MARK_KEY.MODIFY_TYPE, REBASE_MARK_KEY.OLD_ELEMENT];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
import { Editor } from '@seafile/slate';
|
|
4
|
+
import { focusEditor } from '../extension/core';
|
|
5
|
+
import { EditorContainer, EditorContent } from '../layout';
|
|
6
|
+
import SlateEditor from './slate-editor';
|
|
7
|
+
import InsertElementDialog from '../extension/commons/insert-element-dialog';
|
|
8
|
+
var CommonEditor = function CommonEditor(_ref) {
|
|
9
|
+
var slateValue = _ref.slateValue,
|
|
10
|
+
updateSlateValue = _ref.updateSlateValue,
|
|
11
|
+
editor = _ref.editor,
|
|
12
|
+
renderElement = _ref.renderElement;
|
|
13
|
+
// useMount: focus editor
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
var timer = setTimeout(function () {
|
|
16
|
+
var _editor$children = _slicedToArray(editor.children, 1),
|
|
17
|
+
firstNode = _editor$children[0];
|
|
18
|
+
if (firstNode) {
|
|
19
|
+
var _firstNode$children = _slicedToArray(firstNode.children, 1),
|
|
20
|
+
firstNodeFirstChild = _firstNode$children[0];
|
|
21
|
+
if (firstNodeFirstChild) {
|
|
22
|
+
var endOfFirstNode = Editor.end(editor, [0, 0]);
|
|
23
|
+
var range = {
|
|
24
|
+
anchor: endOfFirstNode,
|
|
25
|
+
focus: endOfFirstNode
|
|
26
|
+
};
|
|
27
|
+
focusEditor(editor, range);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}, 300);
|
|
31
|
+
return function () {
|
|
32
|
+
clearTimeout(timer);
|
|
33
|
+
};
|
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
|
+
}, []);
|
|
36
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EditorContainer, {
|
|
37
|
+
editor: editor
|
|
38
|
+
}, /*#__PURE__*/React.createElement(EditorContent, {
|
|
39
|
+
docValue: slateValue,
|
|
40
|
+
showOutline: true
|
|
41
|
+
}, /*#__PURE__*/React.createElement(SlateEditor, {
|
|
42
|
+
editor: editor,
|
|
43
|
+
slateValue: slateValue,
|
|
44
|
+
setSlateValue: updateSlateValue,
|
|
45
|
+
renderElement: renderElement
|
|
46
|
+
}))), /*#__PURE__*/React.createElement(InsertElementDialog, {
|
|
47
|
+
editor: editor
|
|
48
|
+
}));
|
|
49
|
+
};
|
|
50
|
+
export default CommonEditor;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.sdoc-rebase-btn-group {
|
|
2
|
+
color: #aaa;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sdoc-rebase-btn-group .sdoc-rebase-btn {
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.sdoc-rebase-current-changes-start {
|
|
10
|
+
background-color: rgb(202, 232, 254);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sdoc-rebase-current-changes {
|
|
14
|
+
background-color: rgba(202, 232, 254, .8);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.sdoc-rebase-incoming-changes {
|
|
18
|
+
background-color: rgb(222, 232, 254);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.sdoc-rebase-incoming-changes > *:first-child,
|
|
22
|
+
.sdoc-rebase-current-changes > *:first-child {
|
|
23
|
+
margin: 0;
|
|
24
|
+
padding: 0.8em 0 0.8em 0.2em;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.sdoc-rebase-incoming-changes-end {
|
|
28
|
+
background-color: rgb(212, 212, 254);
|
|
29
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import React, { useMemo, useEffect, useState, useCallback, useImperativeHandle, forwardRef } from 'react';
|
|
4
|
+
import deepCopy from 'deep-copy';
|
|
5
|
+
import { createDefaultEditor, renderElement } from '../extension';
|
|
6
|
+
import { withSocketIO } from '../socket';
|
|
7
|
+
import withNodeId from '../node-id';
|
|
8
|
+
import { PAGE_EDIT_AREA_WIDTH } from '../constants';
|
|
9
|
+
import { MODE } from '../../constants';
|
|
10
|
+
import DiffViewer from '../views/diff-viewer';
|
|
11
|
+
import SDocEditor from './common-editor';
|
|
12
|
+
import CommonLoading from '../../components/common-loading';
|
|
13
|
+
import context from '../../context';
|
|
14
|
+
import './index.css';
|
|
15
|
+
var Editor = forwardRef(function (_ref, ref) {
|
|
16
|
+
var mode = _ref.mode,
|
|
17
|
+
document = _ref.document,
|
|
18
|
+
setDiffChanges = _ref.setDiffChanges;
|
|
19
|
+
var editor = useMemo(function () {
|
|
20
|
+
var defaultEditor = createDefaultEditor();
|
|
21
|
+
var editorConfig = context.getEditorConfig();
|
|
22
|
+
defaultEditor.mode = MODE.EDITOR;
|
|
23
|
+
var newEditor = withNodeId(withSocketIO(defaultEditor, {
|
|
24
|
+
document: document,
|
|
25
|
+
config: editorConfig
|
|
26
|
+
}));
|
|
27
|
+
var cursors = document.cursors;
|
|
28
|
+
newEditor.cursors = cursors || {};
|
|
29
|
+
newEditor.width = PAGE_EDIT_AREA_WIDTH; // default width
|
|
30
|
+
return newEditor;
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
+
}, []);
|
|
34
|
+
var _useState = useState(document.children),
|
|
35
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
+
slateValue = _useState2[0],
|
|
37
|
+
_setSlateValue = _useState2[1];
|
|
38
|
+
var _useState3 = useState(false),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
isLoading = _useState4[0],
|
|
41
|
+
_setLoading = _useState4[1];
|
|
42
|
+
var _useState5 = useState(null),
|
|
43
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
44
|
+
diffContent = _useState6[0],
|
|
45
|
+
_setDiffContent = _useState6[1];
|
|
46
|
+
var _useState7 = useState(null),
|
|
47
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
48
|
+
currentContent = _useState8[0],
|
|
49
|
+
setCurrentContent = _useState8[1];
|
|
50
|
+
|
|
51
|
+
// useMount: init socket connection
|
|
52
|
+
useEffect(function () {
|
|
53
|
+
editor.openConnection();
|
|
54
|
+
return function () {
|
|
55
|
+
editor.closeConnection();
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
+
}, []);
|
|
60
|
+
var updateSlateValue = useCallback(function (value) {
|
|
61
|
+
_setSlateValue(value);
|
|
62
|
+
|
|
63
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
64
|
+
}, []);
|
|
65
|
+
|
|
66
|
+
// The parent component can call the method of this component through ref
|
|
67
|
+
useImperativeHandle(ref, function () {
|
|
68
|
+
return {
|
|
69
|
+
// set value
|
|
70
|
+
setLoading: function setLoading(isLoading) {
|
|
71
|
+
_setLoading(isLoading);
|
|
72
|
+
},
|
|
73
|
+
setDiffContent: function setDiffContent(content) {
|
|
74
|
+
setCurrentContent(deepCopy(_objectSpread(_objectSpread({}, document), {}, {
|
|
75
|
+
children: slateValue
|
|
76
|
+
})));
|
|
77
|
+
_setDiffContent(content);
|
|
78
|
+
},
|
|
79
|
+
setEditorMode: function setEditorMode(mode) {
|
|
80
|
+
editor.cursors = {};
|
|
81
|
+
editor.selection = null;
|
|
82
|
+
if (mode === MODE.EDITOR) {
|
|
83
|
+
editor.operations = [];
|
|
84
|
+
}
|
|
85
|
+
editor.mode = mode;
|
|
86
|
+
},
|
|
87
|
+
setSlateValue: function setSlateValue(document) {
|
|
88
|
+
_setSlateValue(document.children);
|
|
89
|
+
},
|
|
90
|
+
// get value
|
|
91
|
+
getSlateValue: function getSlateValue() {
|
|
92
|
+
return deepCopy(_objectSpread(_objectSpread({}, document), {}, {
|
|
93
|
+
children: slateValue
|
|
94
|
+
}));
|
|
95
|
+
},
|
|
96
|
+
// send message
|
|
97
|
+
publishDocument: function publishDocument(originDocUuid, originDocName, isNeedUpdateOriginDoc, callback) {
|
|
98
|
+
editor.publishDocument(originDocUuid, originDocName, isNeedUpdateOriginDoc, callback);
|
|
99
|
+
},
|
|
100
|
+
replaceDocument: function replaceDocument(value, originFileVersion) {
|
|
101
|
+
editor.replaceDocument(value, originFileVersion);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
|
+
};
|
|
106
|
+
}, [document, editor, slateValue]);
|
|
107
|
+
if (isLoading) {
|
|
108
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
109
|
+
className: "h-100 w-100 d-flex align-items-center justify-content-center"
|
|
110
|
+
}, /*#__PURE__*/React.createElement(CommonLoading, null));
|
|
111
|
+
}
|
|
112
|
+
if (mode === MODE.DIFF_VIEWER) {
|
|
113
|
+
return /*#__PURE__*/React.createElement(DiffViewer, {
|
|
114
|
+
showToolbar: true,
|
|
115
|
+
showOutline: true,
|
|
116
|
+
editor: editor,
|
|
117
|
+
currentContent: currentContent,
|
|
118
|
+
lastContent: diffContent,
|
|
119
|
+
didMountCallback: setDiffChanges
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return /*#__PURE__*/React.createElement(SDocEditor, {
|
|
123
|
+
slateValue: slateValue,
|
|
124
|
+
editor: editor,
|
|
125
|
+
updateSlateValue: updateSlateValue,
|
|
126
|
+
renderElement: renderElement
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
export default Editor;
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, Fragment } from 'react';
|
|
2
2
|
import { Editable, ReactEditor, Slate } from '@seafile/slate-react';
|
|
3
|
-
import { renderLeaf, renderElement, ContextToolbar, SideToolbar } from '
|
|
4
|
-
import { getAboveBlockNode, getNextNode, getPrevNode, isSelectionAtBlockEnd, isSelectionAtBlockStart } from '
|
|
5
|
-
import EventProxy from '
|
|
6
|
-
import { useCursors } from '
|
|
7
|
-
import { INTERNAL_EVENT } from '
|
|
8
|
-
import { SetNodeToDecorations } from '
|
|
9
|
-
import CommentContextProvider from '
|
|
10
|
-
import CommentWrapper from '
|
|
11
|
-
import { usePipDecorate } from '
|
|
12
|
-
import { getCursorPosition, getDomHeight, getDomMarginTop } from '
|
|
13
|
-
import EventBus from '
|
|
14
|
-
import { ArticleContainer } from '
|
|
15
|
-
import { useScrollContext } from '
|
|
3
|
+
import { renderLeaf, renderElement, ContextToolbar, SideToolbar } from '../extension';
|
|
4
|
+
import { getAboveBlockNode, getNextNode, getPrevNode, isSelectionAtBlockEnd, isSelectionAtBlockStart } from '../extension/core';
|
|
5
|
+
import EventProxy from '../utils/event-handler';
|
|
6
|
+
import { useCursors } from '../cursor/use-cursors';
|
|
7
|
+
import { INTERNAL_EVENT } from '../constants';
|
|
8
|
+
import { SetNodeToDecorations } from '../highlight-decorate/setNodeToDecorations';
|
|
9
|
+
import CommentContextProvider from '../comment/comment-context-provider';
|
|
10
|
+
import CommentWrapper from '../comment';
|
|
11
|
+
import { usePipDecorate } from '../decorates';
|
|
12
|
+
import { getCursorPosition, getDomHeight, getDomMarginTop } from '../utils/dom-utils';
|
|
13
|
+
import EventBus from '../utils/event-bus';
|
|
14
|
+
import { ArticleContainer } from '../layout';
|
|
15
|
+
import { useScrollContext } from '../hooks/use-scroll-context';
|
|
16
16
|
var SlateEditor = function SlateEditor(_ref) {
|
|
17
17
|
var editor = _ref.editor,
|
|
18
18
|
setSlateValue = _ref.setSlateValue,
|
|
19
|
-
slateValue = _ref.slateValue
|
|
19
|
+
slateValue = _ref.slateValue,
|
|
20
|
+
customRenderElement = _ref.renderElement,
|
|
21
|
+
isShowComment = _ref.isShowComment;
|
|
20
22
|
var _useCursors = useCursors(editor),
|
|
21
23
|
cursors = _useCursors.cursors;
|
|
22
24
|
var decorate = usePipDecorate(editor);
|
|
@@ -138,12 +140,15 @@ var SlateEditor = function SlateEditor(_ref) {
|
|
|
138
140
|
editor: editor
|
|
139
141
|
}, /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(ContextToolbar, null), /*#__PURE__*/React.createElement(SetNodeToDecorations, null), /*#__PURE__*/React.createElement(Editable, {
|
|
140
142
|
cursors: cursors,
|
|
141
|
-
renderElement: renderElement,
|
|
143
|
+
renderElement: customRenderElement || renderElement,
|
|
142
144
|
renderLeaf: renderLeaf,
|
|
143
145
|
onKeyDown: onKeyDown,
|
|
144
146
|
onMouseDown: onMouseDown,
|
|
145
147
|
decorate: decorate,
|
|
146
148
|
onCut: eventProxy.onCut
|
|
147
|
-
})), /*#__PURE__*/React.createElement(SideToolbar, null), /*#__PURE__*/React.createElement(CommentContextProvider, null, /*#__PURE__*/React.createElement(CommentWrapper, null))));
|
|
149
|
+
})), /*#__PURE__*/React.createElement(SideToolbar, null), isShowComment && /*#__PURE__*/React.createElement(CommentContextProvider, null, /*#__PURE__*/React.createElement(CommentWrapper, null))));
|
|
150
|
+
};
|
|
151
|
+
SlateEditor.defaultProps = {
|
|
152
|
+
isShowComment: true
|
|
148
153
|
};
|
|
149
154
|
export default SlateEditor;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var DIFF_TYPE = {
|
|
2
|
+
ADD: 'add',
|
|
3
|
+
DELETE: 'delete',
|
|
4
|
+
MODIFY: 'modify',
|
|
5
|
+
COMMON: 'common'
|
|
6
|
+
};
|
|
7
|
+
export var DELETED_STYLE = {
|
|
8
|
+
computed_bg_color: '#ffeef0',
|
|
9
|
+
color: 'rgb(165, 32, 21)'
|
|
10
|
+
};
|
|
11
|
+
export var ADDED_STYLE = {
|
|
12
|
+
computed_bg_color: '#e6ffed',
|
|
13
|
+
color: 'rgb(137, 181, 66)'
|
|
14
|
+
};
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
export var BLOCKQUOTE = 'blockquote';
|
|
2
|
-
export var BOLD = 'bold';
|
|
3
|
-
export var ITALIC = 'italic';
|
|
4
|
-
export var UNDERLINE = 'underline';
|
|
5
|
-
export var STRIKETHROUGH = 'strikethrough';
|
|
6
|
-
export var SUPERSCRIPT = 'superscript';
|
|
7
|
-
export var SUBSCRIPT = 'subscript';
|
|
8
|
-
export var COLOR = 'color';
|
|
9
|
-
export var HIGHLIGHT_COLOR = 'highlight-color';
|
|
10
2
|
export var TITLE = 'title';
|
|
11
3
|
export var SUBTITLE = 'subtitle';
|
|
12
4
|
export var HEADER = 'header';
|
|
@@ -20,29 +12,17 @@ export var ORDERED_LIST = 'ordered_list';
|
|
|
20
12
|
export var UNORDERED_LIST = 'unordered_list'; // unordered_list can not work
|
|
21
13
|
export var LIST_ITEM = 'list-item';
|
|
22
14
|
export var LIST_LIC = 'list-lic'; // placeholder
|
|
23
|
-
export var CHECK_LIST = 'check-list';
|
|
24
15
|
export var CHECK_LIST_ITEM = 'check-list-item';
|
|
25
16
|
export var PARAGRAPH = 'paragraph';
|
|
26
|
-
export var LINK = 'link';
|
|
27
|
-
export var HTML = 'html';
|
|
28
17
|
export var CODE_BLOCK = 'code-block';
|
|
29
18
|
export var CODE_LINE = 'code-line';
|
|
30
|
-
export var IMAGE = 'image';
|
|
31
19
|
export var TABLE = 'table';
|
|
32
20
|
export var TABLE_ROW = 'table-row';
|
|
33
21
|
export var TABLE_CELL = 'table-cell';
|
|
34
|
-
export var
|
|
35
|
-
export var COLUMN = 'column';
|
|
36
|
-
export var TEXT_STYLE = 'text-style';
|
|
37
|
-
export var TEXT_STYLE_MORE = 'text-style-more';
|
|
38
|
-
export var BOLD_ITALIC = 'bold-italic';
|
|
39
|
-
export var TEXT_ALIGN = 'text-align';
|
|
40
|
-
export var ALIGN_LEFT = 'align-left';
|
|
41
|
-
export var ALIGN_RIGHT = 'align-right';
|
|
42
|
-
export var ALIGN_CENTER = 'align-center';
|
|
43
|
-
export var CLEAR_FORMAT = 'clear-format';
|
|
22
|
+
export var LINK = 'link';
|
|
44
23
|
export var SDOC_LINK = 'sdoc-link';
|
|
45
|
-
export var FILE_LINK = '
|
|
24
|
+
export var FILE_LINK = 'file_link';
|
|
25
|
+
export var IMAGE = 'image';
|
|
46
26
|
|
|
47
27
|
// font
|
|
48
28
|
export var FONT_SIZE = 'font-size';
|
|
@@ -1,240 +1,19 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
var
|
|
2
|
+
var _HEADER_TITLE_MAP;
|
|
3
3
|
// extension plugin
|
|
4
4
|
import * as ELEMENT_TYPE from './element-type';
|
|
5
|
-
import { BLOCKQUOTE,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export var UNDO = 'undo';
|
|
12
|
-
export var REDO = 'redo';
|
|
13
|
-
|
|
14
|
-
// remove
|
|
15
|
-
export var REMOVE_TABLE = 'remove_table';
|
|
16
|
-
export var BG_COLOR = 'bg_color';
|
|
17
|
-
|
|
18
|
-
// menus config
|
|
19
|
-
export var MENUS_CONFIG_MAP = (_MENUS_CONFIG_MAP = {}, _defineProperty(_MENUS_CONFIG_MAP, BLOCKQUOTE, {
|
|
20
|
-
id: "sdoc_".concat(BLOCKQUOTE),
|
|
21
|
-
iconClass: 'sdocfont sdoc-quote-left',
|
|
22
|
-
text: 'Quote'
|
|
23
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, ORDERED_LIST, {
|
|
24
|
-
id: ORDERED_LIST,
|
|
25
|
-
iconClass: 'sdocfont sdoc-list-ol',
|
|
26
|
-
text: 'Ordered_list'
|
|
27
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, UNORDERED_LIST, {
|
|
28
|
-
id: UNORDERED_LIST,
|
|
29
|
-
iconClass: 'sdocfont sdoc-list-ul',
|
|
30
|
-
text: 'Unordered_list'
|
|
31
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, CHECK_LIST, {
|
|
32
|
-
id: CHECK_LIST,
|
|
33
|
-
iconClass: 'sdocfont sdoc-check-square',
|
|
34
|
-
text: 'Check_list_item'
|
|
35
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, CODE_BLOCK, {
|
|
36
|
-
id: CODE_BLOCK,
|
|
37
|
-
iconClass: 'sdocfont sdoc-code-block',
|
|
38
|
-
text: 'Code_block'
|
|
39
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, LINK, {
|
|
40
|
-
id: "sdoc_".concat(LINK),
|
|
41
|
-
iconClass: 'sdocfont sdoc-link',
|
|
42
|
-
text: 'Insert_link'
|
|
43
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, IMAGE, {
|
|
44
|
-
id: "sdoc_".concat(IMAGE),
|
|
45
|
-
iconClass: 'sdocfont sdoc-image',
|
|
46
|
-
text: 'Insert_image'
|
|
47
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, TABLE, {
|
|
48
|
-
id: "sdoc_".concat(TABLE),
|
|
49
|
-
iconClass: 'sdocfont sdoc-table',
|
|
50
|
-
text: 'Insert_table'
|
|
51
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, REMOVE_TABLE, {
|
|
52
|
-
id: "sdoc_".concat(REMOVE_TABLE),
|
|
53
|
-
iconClass: 'sdocfont sdoc-delete-table',
|
|
54
|
-
text: 'Delete_table'
|
|
55
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, TEXT_STYLE, [{
|
|
56
|
-
id: ITALIC,
|
|
57
|
-
iconClass: 'sdocfont sdoc-italic',
|
|
58
|
-
text: 'Italic',
|
|
59
|
-
type: 'ITALIC'
|
|
60
|
-
}, {
|
|
61
|
-
id: BOLD,
|
|
62
|
-
iconClass: 'sdocfont sdoc-bold',
|
|
63
|
-
text: 'Bold',
|
|
64
|
-
type: 'BOLD'
|
|
65
|
-
}, {
|
|
66
|
-
id: UNDERLINE,
|
|
67
|
-
iconClass: 'sdocfont sdoc-underline',
|
|
68
|
-
text: 'Underline',
|
|
69
|
-
type: 'UNDERLINE'
|
|
70
|
-
}, {
|
|
71
|
-
id: "sdoc-".concat(HIGHLIGHT_COLOR),
|
|
72
|
-
iconClass: 'sdocfont sdoc-highlight-color',
|
|
73
|
-
text: 'Highlight_color',
|
|
74
|
-
type: HIGHLIGHT_COLOR,
|
|
75
|
-
isColor: true,
|
|
76
|
-
recentUsedColorsKey: RECENT_USED_HIGHLIGHT_COLORS_KEY,
|
|
77
|
-
defaultLastUsedColor: DEFAULT_LAST_USED_HIGHLIGHT_COLOR
|
|
78
|
-
}, {
|
|
79
|
-
id: "sdoc-font-".concat(COLOR),
|
|
80
|
-
iconClass: 'sdocfont sdoc-font-color',
|
|
81
|
-
text: 'Font_color',
|
|
82
|
-
type: COLOR,
|
|
83
|
-
defaultColor: DEFAULT_FONT_COLOR,
|
|
84
|
-
isColor: true,
|
|
85
|
-
recentUsedColorsKey: RECENT_USED_FONT_COLORS_KEY,
|
|
86
|
-
defaultLastUsedColor: DEFAULT_LAST_USED_FONT_COLOR
|
|
87
|
-
}]), _defineProperty(_MENUS_CONFIG_MAP, TEXT_STYLE_MORE, [
|
|
88
|
-
//
|
|
89
|
-
{
|
|
90
|
-
id: STRIKETHROUGH,
|
|
91
|
-
iconClass: 'sdocfont sdoc-strikethrough',
|
|
92
|
-
text: 'Strikethrough',
|
|
93
|
-
type: 'STRIKETHROUGH'
|
|
94
|
-
}, {
|
|
95
|
-
id: SUPERSCRIPT,
|
|
96
|
-
iconClass: 'sdocfont sdoc-subscripts',
|
|
97
|
-
text: 'Superscript',
|
|
98
|
-
type: 'SUPERSCRIPT'
|
|
99
|
-
}, {
|
|
100
|
-
id: SUBSCRIPT,
|
|
101
|
-
iconClass: 'sdocfont sdoc-subscripts',
|
|
102
|
-
text: 'Subscript',
|
|
103
|
-
type: 'SUBSCRIPT'
|
|
104
|
-
}]), _defineProperty(_MENUS_CONFIG_MAP, TEXT_ALIGN, [{
|
|
105
|
-
id: ALIGN_LEFT,
|
|
106
|
-
iconClass: 'sdocfont sdoc-align-left',
|
|
107
|
-
type: 'left'
|
|
108
|
-
}, {
|
|
109
|
-
id: ALIGN_CENTER,
|
|
110
|
-
iconClass: 'sdocfont sdoc-align-center',
|
|
111
|
-
type: 'center'
|
|
112
|
-
}, {
|
|
113
|
-
id: ALIGN_RIGHT,
|
|
114
|
-
iconClass: 'sdocfont sdoc-align-right',
|
|
115
|
-
type: 'right'
|
|
116
|
-
}]), _defineProperty(_MENUS_CONFIG_MAP, UNDO, {
|
|
117
|
-
id: UNDO,
|
|
118
|
-
iconClass: 'sdocfont sdoc-revoke',
|
|
119
|
-
text: 'Undo',
|
|
120
|
-
type: 'undo'
|
|
121
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, REDO, {
|
|
122
|
-
id: REDO,
|
|
123
|
-
iconClass: 'sdocfont sdoc-redo',
|
|
124
|
-
text: 'Redo',
|
|
125
|
-
type: 'redo'
|
|
126
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, BG_COLOR, {
|
|
127
|
-
id: "sdoc_".concat(BG_COLOR),
|
|
128
|
-
iconClass: 'sdocfont sdoc-bg-color',
|
|
129
|
-
text: 'Background_color'
|
|
130
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, CLEAR_FORMAT, {
|
|
131
|
-
id: "sdoc_".concat(CLEAR_FORMAT),
|
|
132
|
-
iconClass: 'sdocfont sdoc-format-clear',
|
|
133
|
-
text: 'Clear_format'
|
|
134
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, SDOC_LINK, {
|
|
135
|
-
id: "sdoc_".concat(SDOC_LINK),
|
|
136
|
-
iconClass: 'sdocfont sdoc-document',
|
|
137
|
-
text: 'Link_sdoc'
|
|
138
|
-
}), _defineProperty(_MENUS_CONFIG_MAP, FILE_LINK, {
|
|
139
|
-
id: "sdoc_".concat(FILE_LINK),
|
|
140
|
-
iconClass: 'sdocfont sdoc-link-file',
|
|
141
|
-
text: 'Link_file'
|
|
142
|
-
}), _MENUS_CONFIG_MAP);
|
|
5
|
+
import { BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM, LIST_LIC, CHECK_LIST_ITEM, CODE_BLOCK, CODE_LINE, TABLE, TABLE_CELL, TABLE_ROW, LINK, SDOC_LINK, FILE_LINK, IMAGE } from './element-type';
|
|
6
|
+
export { DEFAULT_COLORS, STANDARD_COLORS, DEFAULT_RECENT_USED_LIST, DEFAULT_FONT_COLOR, RECENT_USED_HIGHLIGHT_COLORS_KEY, RECENT_USED_FONT_COLORS_KEY, RECENT_USED_TABLE_CELL_BG_COLORS_KEY, DEFAULT_LAST_USED_FONT_COLOR, DEFAULT_LAST_USED_HIGHLIGHT_COLOR, DEFAULT_LAST_USED_TABLE_CELL_BG_COLOR } from './color';
|
|
7
|
+
export { FONT_SIZE, DEFAULT_FONT, FONT, GOOGLE_FONT_CLASS, RECENT_USED_FONTS_KEY, SDOC_FONT_SIZE } from './font';
|
|
8
|
+
export { DIFF_TYPE, ADDED_STYLE, DELETED_STYLE } from './diff-view';
|
|
9
|
+
export { KEYBOARD, MAC_HOTKEYS, WIN_HOTKEYS } from './keyboard';
|
|
10
|
+
export { UNDO, REDO, TEXT_STYLE, TEXT_STYLE_MAP, TEXT_STYLE_MORE, TEXT_ALIGN, REMOVE_TABLE, BG_COLOR, CLEAR_FORMAT, MENUS_CONFIG_MAP, SIDE_MENUS_CONFIG } from './menus-config';
|
|
143
11
|
export var HEADERS = [HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6];
|
|
144
12
|
export var HEADER_TITLE_MAP = (_HEADER_TITLE_MAP = {}, _defineProperty(_HEADER_TITLE_MAP, TITLE, 'Title'), _defineProperty(_HEADER_TITLE_MAP, SUBTITLE, 'Subtitle'), _defineProperty(_HEADER_TITLE_MAP, HEADER1, 'Header_one'), _defineProperty(_HEADER_TITLE_MAP, HEADER2, 'Header_two'), _defineProperty(_HEADER_TITLE_MAP, HEADER3, 'Header_three'), _defineProperty(_HEADER_TITLE_MAP, HEADER4, 'Header_four'), _defineProperty(_HEADER_TITLE_MAP, HEADER5, 'Header_five'), _defineProperty(_HEADER_TITLE_MAP, HEADER6, 'Header_six'), _defineProperty(_HEADER_TITLE_MAP, PARAGRAPH, 'Paragraph'), _HEADER_TITLE_MAP);
|
|
145
|
-
export var DIFF_TYPE = {
|
|
146
|
-
ADD: 'add',
|
|
147
|
-
DELETE: 'delete',
|
|
148
|
-
MODIFY: 'modify',
|
|
149
|
-
COMMON: 'common'
|
|
150
|
-
};
|
|
151
|
-
export var STYLE_KEY = {
|
|
152
|
-
TEXT_ALIGN: 'textAlign',
|
|
153
|
-
BG_COLOR: 'bg_color'
|
|
154
|
-
};
|
|
155
|
-
export var DELETED_STYLE = {
|
|
156
|
-
computed_bg_color: '#ffeef0',
|
|
157
|
-
color: 'rgb(165, 32, 21)'
|
|
158
|
-
};
|
|
159
|
-
export var ADDED_STYLE = {
|
|
160
|
-
computed_bg_color: '#e6ffed',
|
|
161
|
-
color: 'rgb(137, 181, 66)'
|
|
162
|
-
};
|
|
163
13
|
export var LIST_TYPE_ARRAY = ['unordered_list', 'ordered_list'];
|
|
164
14
|
export var TRANSPARENT = 'transparent';
|
|
165
15
|
export var CLIPBOARD_FORMAT_KEY = 'x-slate-fragment';
|
|
166
16
|
export var INSERT_FILE_DISPLAY_TYPE = ['text_link', 'icon_link', 'card_link'];
|
|
167
|
-
export var SIDE_MENUS_CONFIG = [{
|
|
168
|
-
id: PARAGRAPH,
|
|
169
|
-
iconClass: 'sdocfont sdoc-text',
|
|
170
|
-
type: PARAGRAPH,
|
|
171
|
-
text: 'Paragraph'
|
|
172
|
-
}, {
|
|
173
|
-
id: HEADER1,
|
|
174
|
-
iconClass: 'sdocfont sdoc-header1',
|
|
175
|
-
type: HEADER1,
|
|
176
|
-
text: 'Header_one'
|
|
177
|
-
}, {
|
|
178
|
-
id: HEADER2,
|
|
179
|
-
iconClass: 'sdocfont sdoc-header2',
|
|
180
|
-
type: HEADER2,
|
|
181
|
-
text: 'Header_two'
|
|
182
|
-
}, {
|
|
183
|
-
id: HEADER3,
|
|
184
|
-
iconClass: 'sdocfont sdoc-header3',
|
|
185
|
-
type: HEADER3,
|
|
186
|
-
text: 'Header_three'
|
|
187
|
-
}, {
|
|
188
|
-
id: HEADER4,
|
|
189
|
-
iconClass: 'sdocfont sdoc-header4',
|
|
190
|
-
type: HEADER4,
|
|
191
|
-
text: 'Header_four'
|
|
192
|
-
}, {
|
|
193
|
-
id: HEADER5,
|
|
194
|
-
iconClass: 'sdocfont sdoc-header5',
|
|
195
|
-
type: HEADER5,
|
|
196
|
-
text: 'Header_five'
|
|
197
|
-
}, {
|
|
198
|
-
id: HEADER6,
|
|
199
|
-
iconClass: 'sdocfont sdoc-header6',
|
|
200
|
-
type: HEADER6,
|
|
201
|
-
text: 'Header_six'
|
|
202
|
-
}, {
|
|
203
|
-
id: UNORDERED_LIST,
|
|
204
|
-
iconClass: 'sdocfont sdoc-list-ul',
|
|
205
|
-
type: UNORDERED_LIST,
|
|
206
|
-
text: 'Unordered_list'
|
|
207
|
-
}, {
|
|
208
|
-
id: ORDERED_LIST,
|
|
209
|
-
iconClass: 'sdocfont sdoc-list-ol',
|
|
210
|
-
type: ORDERED_LIST,
|
|
211
|
-
text: 'Ordered_list'
|
|
212
|
-
}, {
|
|
213
|
-
id: CHECK_LIST_ITEM,
|
|
214
|
-
iconClass: 'sdocfont sdoc-check-square',
|
|
215
|
-
type: CHECK_LIST_ITEM,
|
|
216
|
-
text: 'Check_list_item'
|
|
217
|
-
}, {
|
|
218
|
-
id: ALIGN_LEFT,
|
|
219
|
-
iconClass: 'sdocfont sdoc-align-left',
|
|
220
|
-
type: 'left',
|
|
221
|
-
text: 'Left'
|
|
222
|
-
}, {
|
|
223
|
-
id: ALIGN_CENTER,
|
|
224
|
-
iconClass: 'sdocfont sdoc-align-center',
|
|
225
|
-
type: 'center',
|
|
226
|
-
text: 'Center'
|
|
227
|
-
}, {
|
|
228
|
-
id: ALIGN_RIGHT,
|
|
229
|
-
iconClass: 'sdocfont sdoc-align-right',
|
|
230
|
-
type: 'right',
|
|
231
|
-
text: 'Right'
|
|
232
|
-
}, {
|
|
233
|
-
id: BLOCKQUOTE,
|
|
234
|
-
iconClass: 'sdocfont sdoc-quote1',
|
|
235
|
-
type: BLOCKQUOTE,
|
|
236
|
-
text: 'Quote'
|
|
237
|
-
}];
|
|
238
17
|
export var INSERT_POSITION = {
|
|
239
18
|
BEFORE: 'before',
|
|
240
19
|
CURRENT: 'current',
|
|
@@ -243,4 +22,4 @@ export var INSERT_POSITION = {
|
|
|
243
22
|
export var LOCAL_IMAGE = 'local-image';
|
|
244
23
|
export var LIST_ITEM_CORRELATION_TYPE = ['unordered_list', 'ordered_list', 'list-item'];
|
|
245
24
|
export var LIST_ITEM_SUPPORTED_TRANSFORMATION = ['unordered_list', 'ordered_list', 'left', 'center', 'right', 'blockquote'];
|
|
246
|
-
export {
|
|
25
|
+
export { ELEMENT_TYPE, BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM, LIST_LIC, CHECK_LIST_ITEM, CODE_BLOCK, CODE_LINE, TABLE, TABLE_CELL, TABLE_ROW, LINK, SDOC_LINK, FILE_LINK, IMAGE };
|