@seafile/sdoc-editor 0.1.2 → 0.1.4
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/assets/css/textlink-hovermenu.css +51 -0
- package/dist/config.js +16 -0
- package/dist/editor.js +13 -20
- package/dist/{slate-extension → extension}/constants/index.js +4 -0
- package/dist/{slate-extension → extension}/core/queries/index.js +44 -15
- package/dist/{slate-extension → extension}/core/transforms/focus-editor.js +2 -2
- package/dist/extension/core/transforms/index.js +3 -0
- package/dist/{slate-extension → extension}/core/transforms/move-children.js +1 -1
- package/dist/extension/core/transforms/remove-node-children.js +24 -0
- package/dist/{slate-extension → extension}/core/utils/index.js +10 -0
- package/dist/{slate-extension → extension}/index.js +2 -2
- package/dist/{slate-extension → extension}/plugins/blockquote/helpers.js +1 -1
- package/dist/{slate-extension → extension}/plugins/blockquote/menu/index.js +1 -2
- package/dist/{slate-extension → extension}/plugins/blockquote/plugin.js +5 -9
- package/dist/extension/plugins/blockquote/render-elem.js +10 -0
- package/dist/{slate-extension → extension}/plugins/check-list/helpers.js +1 -1
- package/dist/{slate-extension → extension}/plugins/check-list/plugin.js +1 -1
- package/dist/{slate-extension → extension}/plugins/check-list/render-elem.js +5 -3
- package/dist/{slate-extension → extension}/plugins/header/helpers.js +1 -1
- package/dist/{slate-extension → extension}/plugins/header/plugin.js +4 -7
- package/dist/{slate-extension → extension}/plugins/header/render-elem.js +3 -1
- package/dist/extension/plugins/index.js +9 -0
- package/dist/extension/plugins/link/helpers.js +152 -0
- package/dist/extension/plugins/link/index.js +14 -0
- package/dist/extension/plugins/link/menu/add-link-dialog.js +146 -0
- package/dist/extension/plugins/link/menu/hover-link-dialog.js +49 -0
- package/dist/extension/plugins/link/menu/index.js +67 -0
- package/dist/extension/plugins/link/model.js +13 -0
- package/dist/extension/plugins/link/plugin.js +60 -0
- package/dist/extension/plugins/link/render-elem.js +114 -0
- package/dist/{slate-extension → extension}/plugins/list/helpers.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/menu/index.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/plugin/normalize-list.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/plugin/on-tab-handle.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/queries/index.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/render-elem.js +11 -4
- package/dist/{slate-extension → extension}/plugins/list/transforms/insert-list-item.js +17 -22
- package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-item-down.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-item-up.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-items-to-list.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-items.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/normalize-list-item.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/normalize-nested-list.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/toggle-list.js +1 -1
- package/dist/{slate-extension → extension}/plugins/list/transforms/unwrap-list.js +1 -1
- package/dist/{slate-extension → extension}/plugins/text-style/render-elem.js +3 -1
- package/dist/{slate-extension → extension}/render/render-element.js +14 -4
- package/dist/{slate-extension → extension}/toolbar/index.js +4 -1
- package/dist/index.js +2 -1
- package/dist/node-id/constants.js +18 -0
- package/dist/node-id/helpers.js +80 -0
- package/dist/node-id/index.js +11 -0
- package/dist/socket/helpers.js +258 -0
- package/dist/socket/index.js +3 -0
- package/dist/socket/socket-client.js +138 -0
- package/dist/socket/socket-manager.js +180 -0
- package/dist/socket/with-socket-io.js +18 -0
- package/dist/viewer.js +81 -0
- package/package.json +9 -6
- package/public/locales/en/seafile-editor.json +4 -1
- package/public/locales/zh-CN/seafile-editor.json +4 -1
- package/dist/slate-extension/core/transforms/index.js +0 -2
- package/dist/slate-extension/plugins/blockquote/render-elem.js +0 -7
- package/dist/slate-extension/plugins/index.js +0 -9
- package/dist/slate-extension/plugins/socket/index.js +0 -6
- package/dist/slate-extension/plugins/socket/plugin.js +0 -23
- package/dist/slate-extension/socket/socket-client.js +0 -94
- package/dist/slate-extension/socket/socket-manager.js +0 -63
- /package/dist/{slate-extension → extension}/core/index.js +0 -0
- /package/dist/{slate-extension → extension}/menu/index.js +0 -0
- /package/dist/{slate-extension → extension}/menu/menu-group.js +0 -0
- /package/dist/{slate-extension → extension}/menu/menu-item.js +0 -0
- /package/dist/{slate-extension → extension}/menu/menu.css +0 -0
- /package/dist/{slate-extension → extension}/plugins/blockquote/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/blockquote/model.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/check-list/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/check-list/menu/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/check-list/model.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/header/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/header/menu/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/model.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/plugin/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/plugin/insert-break-list.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/transforms/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/list/transforms/remove-first-list-item.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/text-style/index.js +0 -0
- /package/dist/{slate-extension → extension}/plugins/text-style/model.js +0 -0
- /package/dist/{slate-extension → extension}/render/render-leaf.js +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.seafile-ed-hovermenu {
|
|
2
|
+
width: 250px;
|
|
3
|
+
height: 40px;
|
|
4
|
+
display: flex;
|
|
5
|
+
position: absolute;
|
|
6
|
+
background-color: #fff;
|
|
7
|
+
border: 1px solid rgba(0, 40, 100, 0.12);
|
|
8
|
+
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
9
|
+
z-index: 1000;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.seafile-ed-hovermenu .seafile-ed-hovermenu-triangle {
|
|
13
|
+
width: 8px;
|
|
14
|
+
height: 8px;
|
|
15
|
+
transform: rotate(45deg);
|
|
16
|
+
background: #fff;
|
|
17
|
+
border-right: 1px solid rgba(0, 40, 100, 0.12);
|
|
18
|
+
border-bottom: 1px solid rgba(0, 40, 100, 0.12);
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: 34px;
|
|
21
|
+
right: 50%;
|
|
22
|
+
z-index: 1001;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.seafile-ed-hovermenu .seafile-ed-hovermenu-link {
|
|
26
|
+
height: 38px;
|
|
27
|
+
max-width: 170px;
|
|
28
|
+
padding: 6px 12px;
|
|
29
|
+
display: inline-block;
|
|
30
|
+
line-height: 28px;
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.seafile-ed-hovermenu .seafile-ed-hovermenu-btn {
|
|
36
|
+
background-color: #fff;
|
|
37
|
+
width: 35px;
|
|
38
|
+
font-weight: normal;
|
|
39
|
+
color: #999999;
|
|
40
|
+
line-height: 26px;
|
|
41
|
+
font-size: 16px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.seafile-ed-hovermenu .seafile-ed-hovermenu-btn, .seafile-ed-hovermenu .seafile-ed-hovermenu-btn:focus {
|
|
45
|
+
border: 0;
|
|
46
|
+
box-shadow: 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.seafile-ed-hovermenu-mouseclick {
|
|
50
|
+
background-color: #ddd;
|
|
51
|
+
}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var serverConfig = {
|
|
2
|
+
//serviceUrl: "http://127.0.0.1:8000",
|
|
3
|
+
serviceUrl: "http://192.168.1.100:8000",
|
|
4
|
+
username: "lj@11.com",
|
|
5
|
+
password: "11",
|
|
6
|
+
repoID: "79d1fa93-4b5f-4d6c-8fb5-ad3958e1fa47",
|
|
7
|
+
userInfo: {
|
|
8
|
+
username: 'lj@11.com',
|
|
9
|
+
name: 'lj-',
|
|
10
|
+
contact_email: 'lj@11.com'
|
|
11
|
+
},
|
|
12
|
+
filePath: '/xxx.md',
|
|
13
|
+
fileName: 'xxx.md',
|
|
14
|
+
dirPath: '/'
|
|
15
|
+
};
|
|
16
|
+
export { serverConfig };
|
package/dist/editor.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
3
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
5
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
6
5
|
import React from 'react';
|
|
7
|
-
import { Editable, Slate } from 'slate-react';
|
|
6
|
+
import { Editable, Slate } from '@seafile/slate-react';
|
|
8
7
|
import isHotkey from 'is-hotkey';
|
|
9
|
-
import editor, { renderLeaf as _renderLeaf, renderElement as _renderElement, Toolbar } from './
|
|
10
|
-
import SocketManager from './
|
|
8
|
+
import editor, { renderLeaf as _renderLeaf, renderElement as _renderElement, Toolbar } from './extension';
|
|
9
|
+
import { SocketManager, withSocketIO } from './socket';
|
|
10
|
+
import withNodeId from './node-id';
|
|
11
11
|
import './assets/css/sdoc-editor.css';
|
|
12
12
|
var SDocEditor = /*#__PURE__*/function (_React$Component) {
|
|
13
13
|
_inherits(SDocEditor, _React$Component);
|
|
@@ -16,12 +16,6 @@ var SDocEditor = /*#__PURE__*/function (_React$Component) {
|
|
|
16
16
|
var _this;
|
|
17
17
|
_classCallCheck(this, SDocEditor);
|
|
18
18
|
_this = _super.call(this, props);
|
|
19
|
-
_this.updateWithRemoteOperation = function (params) {
|
|
20
|
-
var operation = params.operation;
|
|
21
|
-
_this.editor.apply(_objectSpread(_objectSpread({}, operation), {}, {
|
|
22
|
-
is_remote: true
|
|
23
|
-
}));
|
|
24
|
-
};
|
|
25
19
|
_this.onChange = function (slateValue) {
|
|
26
20
|
var onValueChanged = _this.props.onValueChanged;
|
|
27
21
|
_this.setState({
|
|
@@ -34,8 +28,12 @@ var SDocEditor = /*#__PURE__*/function (_React$Component) {
|
|
|
34
28
|
slateValue: children,
|
|
35
29
|
isLoading: true
|
|
36
30
|
};
|
|
37
|
-
_this.editor = editor;
|
|
38
31
|
_this.socketManager = null;
|
|
32
|
+
if (!props.isOpenSocket) {
|
|
33
|
+
_this.editor = withNodeId(editor);
|
|
34
|
+
} else {
|
|
35
|
+
_this.editor = withSocketIO(withNodeId(editor));
|
|
36
|
+
}
|
|
39
37
|
return _this;
|
|
40
38
|
}
|
|
41
39
|
_createClass(SDocEditor, [{
|
|
@@ -46,21 +44,16 @@ var SDocEditor = /*#__PURE__*/function (_React$Component) {
|
|
|
46
44
|
document = _this$props.document,
|
|
47
45
|
config = _this$props.config;
|
|
48
46
|
if (isOpenSocket) {
|
|
49
|
-
this.socketManager = SocketManager.getInstance(document, config);
|
|
50
|
-
var eventBus = this.socketManager.eventBus;
|
|
51
|
-
this.unsubscribeReceiveOption = eventBus.subscribe('receive-operation', this.updateWithRemoteOperation);
|
|
47
|
+
this.socketManager = SocketManager.getInstance(this.editor, document, config);
|
|
52
48
|
}
|
|
53
49
|
}
|
|
54
|
-
}, {
|
|
55
|
-
key: "componentWillUnmount",
|
|
56
|
-
value: function componentWillUnmount() {
|
|
57
|
-
this.unsubscribeReceiveOption();
|
|
58
|
-
}
|
|
59
50
|
}, {
|
|
60
51
|
key: "render",
|
|
61
52
|
value: function render() {
|
|
62
53
|
var _this2 = this;
|
|
63
|
-
var
|
|
54
|
+
var _this$state = this.state,
|
|
55
|
+
slateValue = _this$state.slateValue,
|
|
56
|
+
isEditorBlur = _this$state.isEditorBlur;
|
|
64
57
|
return /*#__PURE__*/React.createElement("div", {
|
|
65
58
|
className: "sf-editor-container"
|
|
66
59
|
}, /*#__PURE__*/React.createElement(Toolbar, {
|
|
@@ -45,5 +45,9 @@ export var MENUS_CONFIG_MAP = (_MENUS_CONFIG_MAP = {}, _defineProperty(_MENUS_CO
|
|
|
45
45
|
id: CHECK_LIST,
|
|
46
46
|
iconClass: 'iconfont icon-check-square',
|
|
47
47
|
text: 'check_list_item'
|
|
48
|
+
}), _defineProperty(_MENUS_CONFIG_MAP, LINK, {
|
|
49
|
+
id: LINK,
|
|
50
|
+
iconClass: 'iconfont icon-link',
|
|
51
|
+
text: 'link'
|
|
48
52
|
}), _MENUS_CONFIG_MAP);
|
|
49
53
|
export var HEADER_TITLE_MAP = (_HEADER_TITLE_MAP = {}, _defineProperty(_HEADER_TITLE_MAP, HEADER1, 'header_1'), _defineProperty(_HEADER_TITLE_MAP, HEADER2, 'header_2'), _defineProperty(_HEADER_TITLE_MAP, HEADER3, 'header_3'), _defineProperty(_HEADER_TITLE_MAP, HEADER4, 'header_4'), _defineProperty(_HEADER_TITLE_MAP, HEADER5, 'header_5'), _defineProperty(_HEADER_TITLE_MAP, HEADER6, 'header_6'), _defineProperty(_HEADER_TITLE_MAP, PARAGRAPH, 'pargraph'), _HEADER_TITLE_MAP);
|
|
@@ -4,7 +4,7 @@ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIt
|
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
5
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
6
6
|
var _excluded = ["at"];
|
|
7
|
-
import { Editor, Text, Path, Span, Element, Node, Range } from 'slate';
|
|
7
|
+
import { Editor, Text, Path, Span, Element, Node, Range } from '@seafile/slate';
|
|
8
8
|
import { match } from '../utils';
|
|
9
9
|
|
|
10
10
|
// options
|
|
@@ -62,6 +62,14 @@ export var getSelectedNodeEntryByType = function getSelectedNodeEntryByType(edit
|
|
|
62
62
|
export var getNodeEntries = function getNodeEntries(editor, options) {
|
|
63
63
|
return Editor.nodes(editor, getQueryOptions(editor, options));
|
|
64
64
|
};
|
|
65
|
+
export var getEditorString = function getEditorString(editor, at, options) {
|
|
66
|
+
if (!at) return '';
|
|
67
|
+
try {
|
|
68
|
+
return Editor.string(editor, at, options);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
};
|
|
65
73
|
|
|
66
74
|
// children & child
|
|
67
75
|
export var getChildren = function getChildren(nodeEntry) {
|
|
@@ -124,6 +132,27 @@ export var isLastChild = function isLastChild(nodeEntry, childPath) {
|
|
|
124
132
|
var lastChildPath = getLastChildPath(nodeEntry);
|
|
125
133
|
return Path.equals(lastChildPath, childPath);
|
|
126
134
|
};
|
|
135
|
+
export var getSelectedElems = function getSelectedElems(editor) {
|
|
136
|
+
var elems = [];
|
|
137
|
+
var nodeEntries = Editor.nodes(editor, {
|
|
138
|
+
universal: true
|
|
139
|
+
});
|
|
140
|
+
var _iterator2 = _createForOfIteratorHelper(nodeEntries),
|
|
141
|
+
_step2;
|
|
142
|
+
try {
|
|
143
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
144
|
+
var nodeEntry = _step2.value;
|
|
145
|
+
var _nodeEntry3 = _slicedToArray(nodeEntry, 1),
|
|
146
|
+
node = _nodeEntry3[0];
|
|
147
|
+
if (Element.isElement(node)) elems.push(node);
|
|
148
|
+
}
|
|
149
|
+
} catch (err) {
|
|
150
|
+
_iterator2.e(err);
|
|
151
|
+
} finally {
|
|
152
|
+
_iterator2.f();
|
|
153
|
+
}
|
|
154
|
+
return elems;
|
|
155
|
+
};
|
|
127
156
|
|
|
128
157
|
// siblings
|
|
129
158
|
export var getNextSiblingNodes = function getNextSiblingNodes(ancestorEntry, path) {
|
|
@@ -197,21 +226,21 @@ export var findDescendant = function findDescendant(editor, options) {
|
|
|
197
226
|
return voids ? false : Editor.isVoid(editor, n);
|
|
198
227
|
}
|
|
199
228
|
});
|
|
200
|
-
var
|
|
201
|
-
|
|
229
|
+
var _iterator3 = _createForOfIteratorHelper(nodeEntries),
|
|
230
|
+
_step3;
|
|
202
231
|
try {
|
|
203
|
-
for (
|
|
204
|
-
var
|
|
205
|
-
node =
|
|
206
|
-
path =
|
|
232
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
233
|
+
var _step3$value = _slicedToArray(_step3.value, 2),
|
|
234
|
+
node = _step3$value[0],
|
|
235
|
+
path = _step3$value[1];
|
|
207
236
|
if (match(node, path, _match)) {
|
|
208
237
|
return [node, at.concat(path)];
|
|
209
238
|
}
|
|
210
239
|
}
|
|
211
240
|
} catch (err) {
|
|
212
|
-
|
|
241
|
+
_iterator3.e(err);
|
|
213
242
|
} finally {
|
|
214
|
-
|
|
243
|
+
_iterator3.f();
|
|
215
244
|
}
|
|
216
245
|
return undefined;
|
|
217
246
|
};
|
|
@@ -238,19 +267,19 @@ export var isBlockTextEmptyAfterSelection = function isBlockTextEmptyAfterSelect
|
|
|
238
267
|
var siblingNodes = getNextSiblingNodes(blockAbove, cursor.path);
|
|
239
268
|
if (siblingNodes.length) {
|
|
240
269
|
// 子节点包含 文本节点
|
|
241
|
-
var
|
|
242
|
-
|
|
270
|
+
var _iterator4 = _createForOfIteratorHelper(siblingNodes),
|
|
271
|
+
_step4;
|
|
243
272
|
try {
|
|
244
|
-
for (
|
|
245
|
-
var siblingNode =
|
|
273
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
274
|
+
var siblingNode = _step4.value;
|
|
246
275
|
if (Text.isText(siblingNode) && siblingNode.text) {
|
|
247
276
|
return false;
|
|
248
277
|
}
|
|
249
278
|
}
|
|
250
279
|
} catch (err) {
|
|
251
|
-
|
|
280
|
+
_iterator4.e(err);
|
|
252
281
|
} finally {
|
|
253
|
-
|
|
282
|
+
_iterator4.f();
|
|
254
283
|
}
|
|
255
284
|
} else {
|
|
256
285
|
return isEndPoint(editor, cursor, blockAbove[1]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Editor, Transforms } from 'slate';
|
|
2
|
-
import { ReactEditor } from 'slate-react';
|
|
1
|
+
import { Editor, Transforms } from '@seafile/slate';
|
|
2
|
+
import { ReactEditor } from '@seafile/slate-react';
|
|
3
3
|
export var focusEditor = function focusEditor(editor, target) {
|
|
4
4
|
if (target) {
|
|
5
5
|
Editor.withoutNormalizing(editor, function () {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import { Editor, Path, Transforms } from 'slate';
|
|
2
|
+
import { Editor, Path, Transforms } from '@seafile/slate';
|
|
3
3
|
import { getNode } from '../queries';
|
|
4
4
|
export var moveChildren = function moveChildren(editor, _ref) {
|
|
5
5
|
var at = _ref.at,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
4
|
+
import { Transforms, Node } from '@seafile/slate';
|
|
5
|
+
export var removeNodeChildren = function removeNodeChildren(editor, path, options) {
|
|
6
|
+
var nodeChildren = Node.children(editor, path, {
|
|
7
|
+
reverse: true
|
|
8
|
+
});
|
|
9
|
+
var _iterator = _createForOfIteratorHelper(nodeChildren),
|
|
10
|
+
_step;
|
|
11
|
+
try {
|
|
12
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13
|
+
var _step$value = _slicedToArray(_step.value, 2),
|
|
14
|
+
childPath = _step$value[1];
|
|
15
|
+
Transforms.removeNodes(editor, _objectSpread(_objectSpread({}, options), {}, {
|
|
16
|
+
at: childPath
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
} catch (err) {
|
|
20
|
+
_iterator.e(err);
|
|
21
|
+
} finally {
|
|
22
|
+
_iterator.f();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import slugid from 'slugid';
|
|
2
3
|
export var match = function match(node, path, predicate) {
|
|
3
4
|
if (!predicate) return true;
|
|
4
5
|
if (typeof predicate === 'object') {
|
|
@@ -14,4 +15,13 @@ export var match = function match(node, path, predicate) {
|
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
17
|
return predicate(node, path);
|
|
18
|
+
};
|
|
19
|
+
export var generateEmptyElement = function generateEmptyElement(type) {
|
|
20
|
+
return {
|
|
21
|
+
type: type,
|
|
22
|
+
children: [{
|
|
23
|
+
id: slugid.nice(),
|
|
24
|
+
text: ''
|
|
25
|
+
}]
|
|
26
|
+
};
|
|
17
27
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createEditor } from 'slate';
|
|
2
|
-
import { withReact } from 'slate-react';
|
|
1
|
+
import { createEditor } from '@seafile/slate';
|
|
2
|
+
import { withReact } from '@seafile/slate-react';
|
|
3
3
|
import Plugins from './plugins';
|
|
4
4
|
import renderElement from './render/render-element';
|
|
5
5
|
import renderLeaf from './render/render-leaf';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import { Editor, Transforms } from '@seafile/slate';
|
|
3
3
|
import { BLOCKQUOTE } from '../../constants';
|
|
4
4
|
import { getNodeType } from '../../core';
|
|
5
5
|
export var isMenuDisabled = function isMenuDisabled(editor) {
|
|
@@ -5,7 +5,7 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
|
5
5
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { BLOCKQUOTE, MENUS_CONFIG_MAP, PARAGRAPH } from '../../../constants';
|
|
8
|
-
import { MenuItem } from '../../../menu
|
|
8
|
+
import { MenuItem } from '../../../menu';
|
|
9
9
|
import { getBlockQuoteType, isMenuDisabled, setBlockQuoteType } from '../helpers';
|
|
10
10
|
var QuoteMenu = /*#__PURE__*/function (_React$Component) {
|
|
11
11
|
_inherits(QuoteMenu, _React$Component);
|
|
@@ -29,7 +29,6 @@ var QuoteMenu = /*#__PURE__*/function (_React$Component) {
|
|
|
29
29
|
var editor = _this.props.editor;
|
|
30
30
|
var active = _this.isActive(editor);
|
|
31
31
|
var newType = active ? PARAGRAPH : BLOCKQUOTE;
|
|
32
|
-
console.log(newType);
|
|
33
32
|
setBlockQuoteType(editor, newType);
|
|
34
33
|
};
|
|
35
34
|
return _this;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import { Editor, Element, Point, Transforms, Node } from 'slate';
|
|
3
|
-
import { ReactEditor } from 'slate-react';
|
|
4
|
-
import {
|
|
2
|
+
import { Editor, Element, Point, Transforms, Node } from '@seafile/slate';
|
|
3
|
+
import { ReactEditor } from '@seafile/slate-react';
|
|
4
|
+
import { generateEmptyElement } from '../../core';
|
|
5
|
+
import { BLOCKQUOTE, PARAGRAPH } from '../../constants';
|
|
5
6
|
var withBlockquote = function withBlockquote(editor) {
|
|
6
7
|
var insertBreak = editor.insertBreak,
|
|
7
8
|
insertText = editor.insertText;
|
|
@@ -29,12 +30,7 @@ var withBlockquote = function withBlockquote(editor) {
|
|
|
29
30
|
// 第一步:删除最后一个 \n
|
|
30
31
|
editor.deleteBackward('character');
|
|
31
32
|
// 第二步:插入一个 paragraph
|
|
32
|
-
var p =
|
|
33
|
-
type: 'paragraph',
|
|
34
|
-
children: [{
|
|
35
|
-
text: ''
|
|
36
|
-
}]
|
|
37
|
-
};
|
|
33
|
+
var p = generateEmptyElement(PARAGRAPH);
|
|
38
34
|
Transforms.insertNodes(newEditor, p, {
|
|
39
35
|
mode: 'highest'
|
|
40
36
|
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
var renderBlockquote = function renderBlockquote(props, editor) {
|
|
3
|
+
var attributes = props.attributes,
|
|
4
|
+
children = props.children,
|
|
5
|
+
element = props.element;
|
|
6
|
+
return /*#__PURE__*/React.createElement("blockquote", Object.assign({
|
|
7
|
+
"data-id": element.id
|
|
8
|
+
}, attributes), children);
|
|
9
|
+
};
|
|
10
|
+
export default renderBlockquote;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
3
|
-
import { Transforms, Editor, Element } from 'slate';
|
|
3
|
+
import { Transforms, Editor, Element } from '@seafile/slate';
|
|
4
4
|
import { CHECK_LIST_ITEM, PARAGRAPH } from '../../constants';
|
|
5
5
|
import { getSelectedNodeByType } from '../../core';
|
|
6
6
|
export var isMenuDisabled = function isMenuDisabled(editor) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Node, Range, Transforms } from 'slate';
|
|
1
|
+
import { Node, Range, Transforms } from '@seafile/slate';
|
|
2
2
|
import { CHECK_LIST_ITEM, PARAGRAPH } from '../../constants';
|
|
3
3
|
import { getSelectedNodeByType } from '../../core';
|
|
4
4
|
var withCheckList = function withCheckList(editor) {
|
|
@@ -3,8 +3,8 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
3
3
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import { Transforms } from 'slate';
|
|
7
|
-
import { ReactEditor } from 'slate-react';
|
|
6
|
+
import { Transforms } from '@seafile/slate';
|
|
7
|
+
import { ReactEditor } from '@seafile/slate-react';
|
|
8
8
|
var renderCheckList = function renderCheckList(props, editor) {
|
|
9
9
|
var attributes = props.attributes,
|
|
10
10
|
children = props.children,
|
|
@@ -48,7 +48,9 @@ var CheckListItem = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
48
48
|
var _ref = node || {},
|
|
49
49
|
_ref$checked = _ref.checked,
|
|
50
50
|
checked = _ref$checked === void 0 ? false : _ref$checked;
|
|
51
|
-
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
51
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
52
|
+
"data-id": node.id
|
|
53
|
+
}, attributes, {
|
|
52
54
|
style: style
|
|
53
55
|
}), /*#__PURE__*/React.createElement("span", {
|
|
54
56
|
contentEditable: false,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import { Editor, Transforms } from "slate";
|
|
2
|
+
import { Editor, Transforms } from "@seafile/slate";
|
|
3
3
|
import { getNodeType } from "../../core";
|
|
4
4
|
export var isMenuDisabled = function isMenuDisabled(editor) {
|
|
5
5
|
if (!editor.selection) return true;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import { Editor, Element, Transforms } from 'slate';
|
|
2
|
+
import { Editor, Element, Transforms } from '@seafile/slate';
|
|
3
|
+
import { PARAGRAPH } from '../../constants';
|
|
4
|
+
import { generateEmptyElement } from '../../core';
|
|
3
5
|
var isSelectionAtLineEnd = function isSelectionAtLineEnd(editor, path) {
|
|
4
6
|
var selection = editor.selection;
|
|
5
7
|
if (!selection) return false;
|
|
@@ -31,12 +33,7 @@ var withHeader = function withHeader(editor) {
|
|
|
31
33
|
|
|
32
34
|
// 如果在行末插入一个空 p,否则正常换行
|
|
33
35
|
if (isAtLineEnd) {
|
|
34
|
-
var p =
|
|
35
|
-
type: 'paragraph',
|
|
36
|
-
children: [{
|
|
37
|
-
text: ''
|
|
38
|
-
}]
|
|
39
|
-
};
|
|
36
|
+
var p = generateEmptyElement(PARAGRAPH);
|
|
40
37
|
Transforms.insertNodes(newEditor, p, {
|
|
41
38
|
mode: 'highest'
|
|
42
39
|
});
|
|
@@ -6,6 +6,8 @@ var renderHeader = function renderHeader(props, editor) {
|
|
|
6
6
|
var type = element.type;
|
|
7
7
|
var level = type.split('header')[1];
|
|
8
8
|
var Tag = "h".concat(level);
|
|
9
|
-
return /*#__PURE__*/React.createElement(Tag,
|
|
9
|
+
return /*#__PURE__*/React.createElement(Tag, Object.assign({
|
|
10
|
+
"data-id": element.id
|
|
11
|
+
}, attributes), children);
|
|
10
12
|
};
|
|
11
13
|
export default renderHeader;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import HeaderPlugin from './header';
|
|
2
|
+
import LinkPlugin from './link';
|
|
3
|
+
import BlockquotePlugin from './blockquote';
|
|
4
|
+
import ListPlugin from './list';
|
|
5
|
+
import CheckListPlugin from './check-list';
|
|
6
|
+
import TextPlugin from './text-style';
|
|
7
|
+
var Plugins = [HeaderPlugin, LinkPlugin, BlockquotePlugin, ListPlugin, CheckListPlugin, TextPlugin];
|
|
8
|
+
export default Plugins;
|
|
9
|
+
export { HeaderPlugin, LinkPlugin, BlockquotePlugin, ListPlugin, CheckListPlugin, TextPlugin };
|