@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.
Files changed (89) hide show
  1. package/dist/assets/css/textlink-hovermenu.css +51 -0
  2. package/dist/config.js +16 -0
  3. package/dist/editor.js +13 -20
  4. package/dist/{slate-extension → extension}/constants/index.js +4 -0
  5. package/dist/{slate-extension → extension}/core/queries/index.js +44 -15
  6. package/dist/{slate-extension → extension}/core/transforms/focus-editor.js +2 -2
  7. package/dist/extension/core/transforms/index.js +3 -0
  8. package/dist/{slate-extension → extension}/core/transforms/move-children.js +1 -1
  9. package/dist/extension/core/transforms/remove-node-children.js +24 -0
  10. package/dist/{slate-extension → extension}/core/utils/index.js +10 -0
  11. package/dist/{slate-extension → extension}/index.js +2 -2
  12. package/dist/{slate-extension → extension}/plugins/blockquote/helpers.js +1 -1
  13. package/dist/{slate-extension → extension}/plugins/blockquote/menu/index.js +1 -2
  14. package/dist/{slate-extension → extension}/plugins/blockquote/plugin.js +5 -9
  15. package/dist/extension/plugins/blockquote/render-elem.js +10 -0
  16. package/dist/{slate-extension → extension}/plugins/check-list/helpers.js +1 -1
  17. package/dist/{slate-extension → extension}/plugins/check-list/plugin.js +1 -1
  18. package/dist/{slate-extension → extension}/plugins/check-list/render-elem.js +5 -3
  19. package/dist/{slate-extension → extension}/plugins/header/helpers.js +1 -1
  20. package/dist/{slate-extension → extension}/plugins/header/plugin.js +4 -7
  21. package/dist/{slate-extension → extension}/plugins/header/render-elem.js +3 -1
  22. package/dist/extension/plugins/index.js +9 -0
  23. package/dist/extension/plugins/link/helpers.js +152 -0
  24. package/dist/extension/plugins/link/index.js +14 -0
  25. package/dist/extension/plugins/link/menu/add-link-dialog.js +146 -0
  26. package/dist/extension/plugins/link/menu/hover-link-dialog.js +49 -0
  27. package/dist/extension/plugins/link/menu/index.js +67 -0
  28. package/dist/extension/plugins/link/model.js +13 -0
  29. package/dist/extension/plugins/link/plugin.js +60 -0
  30. package/dist/extension/plugins/link/render-elem.js +114 -0
  31. package/dist/{slate-extension → extension}/plugins/list/helpers.js +1 -1
  32. package/dist/{slate-extension → extension}/plugins/list/menu/index.js +1 -1
  33. package/dist/{slate-extension → extension}/plugins/list/plugin/normalize-list.js +1 -1
  34. package/dist/{slate-extension → extension}/plugins/list/plugin/on-tab-handle.js +1 -1
  35. package/dist/{slate-extension → extension}/plugins/list/queries/index.js +1 -1
  36. package/dist/{slate-extension → extension}/plugins/list/render-elem.js +11 -4
  37. package/dist/{slate-extension → extension}/plugins/list/transforms/insert-list-item.js +17 -22
  38. package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-item-down.js +1 -1
  39. package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-item-up.js +1 -1
  40. package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-items-to-list.js +1 -1
  41. package/dist/{slate-extension → extension}/plugins/list/transforms/move-list-items.js +1 -1
  42. package/dist/{slate-extension → extension}/plugins/list/transforms/normalize-list-item.js +1 -1
  43. package/dist/{slate-extension → extension}/plugins/list/transforms/normalize-nested-list.js +1 -1
  44. package/dist/{slate-extension → extension}/plugins/list/transforms/toggle-list.js +1 -1
  45. package/dist/{slate-extension → extension}/plugins/list/transforms/unwrap-list.js +1 -1
  46. package/dist/{slate-extension → extension}/plugins/text-style/render-elem.js +3 -1
  47. package/dist/{slate-extension → extension}/render/render-element.js +14 -4
  48. package/dist/{slate-extension → extension}/toolbar/index.js +4 -1
  49. package/dist/index.js +2 -1
  50. package/dist/node-id/constants.js +18 -0
  51. package/dist/node-id/helpers.js +80 -0
  52. package/dist/node-id/index.js +11 -0
  53. package/dist/socket/helpers.js +258 -0
  54. package/dist/socket/index.js +3 -0
  55. package/dist/socket/socket-client.js +138 -0
  56. package/dist/socket/socket-manager.js +180 -0
  57. package/dist/socket/with-socket-io.js +18 -0
  58. package/dist/viewer.js +81 -0
  59. package/package.json +9 -6
  60. package/public/locales/en/seafile-editor.json +4 -1
  61. package/public/locales/zh-CN/seafile-editor.json +4 -1
  62. package/dist/slate-extension/core/transforms/index.js +0 -2
  63. package/dist/slate-extension/plugins/blockquote/render-elem.js +0 -7
  64. package/dist/slate-extension/plugins/index.js +0 -9
  65. package/dist/slate-extension/plugins/socket/index.js +0 -6
  66. package/dist/slate-extension/plugins/socket/plugin.js +0 -23
  67. package/dist/slate-extension/socket/socket-client.js +0 -94
  68. package/dist/slate-extension/socket/socket-manager.js +0 -63
  69. /package/dist/{slate-extension → extension}/core/index.js +0 -0
  70. /package/dist/{slate-extension → extension}/menu/index.js +0 -0
  71. /package/dist/{slate-extension → extension}/menu/menu-group.js +0 -0
  72. /package/dist/{slate-extension → extension}/menu/menu-item.js +0 -0
  73. /package/dist/{slate-extension → extension}/menu/menu.css +0 -0
  74. /package/dist/{slate-extension → extension}/plugins/blockquote/index.js +0 -0
  75. /package/dist/{slate-extension → extension}/plugins/blockquote/model.js +0 -0
  76. /package/dist/{slate-extension → extension}/plugins/check-list/index.js +0 -0
  77. /package/dist/{slate-extension → extension}/plugins/check-list/menu/index.js +0 -0
  78. /package/dist/{slate-extension → extension}/plugins/check-list/model.js +0 -0
  79. /package/dist/{slate-extension → extension}/plugins/header/index.js +0 -0
  80. /package/dist/{slate-extension → extension}/plugins/header/menu/index.js +0 -0
  81. /package/dist/{slate-extension → extension}/plugins/list/index.js +0 -0
  82. /package/dist/{slate-extension → extension}/plugins/list/model.js +0 -0
  83. /package/dist/{slate-extension → extension}/plugins/list/plugin/index.js +0 -0
  84. /package/dist/{slate-extension → extension}/plugins/list/plugin/insert-break-list.js +0 -0
  85. /package/dist/{slate-extension → extension}/plugins/list/transforms/index.js +0 -0
  86. /package/dist/{slate-extension → extension}/plugins/list/transforms/remove-first-list-item.js +0 -0
  87. /package/dist/{slate-extension → extension}/plugins/text-style/index.js +0 -0
  88. /package/dist/{slate-extension → extension}/plugins/text-style/model.js +0 -0
  89. /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 './slate-extension';
10
- import SocketManager from './slate-extension/socket/socket-manager';
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 slateValue = this.state.slateValue;
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 _iterator2 = _createForOfIteratorHelper(nodeEntries),
201
- _step2;
229
+ var _iterator3 = _createForOfIteratorHelper(nodeEntries),
230
+ _step3;
202
231
  try {
203
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
204
- var _step2$value = _slicedToArray(_step2.value, 2),
205
- node = _step2$value[0],
206
- path = _step2$value[1];
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
- _iterator2.e(err);
241
+ _iterator3.e(err);
213
242
  } finally {
214
- _iterator2.f();
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 _iterator3 = _createForOfIteratorHelper(siblingNodes),
242
- _step3;
270
+ var _iterator4 = _createForOfIteratorHelper(siblingNodes),
271
+ _step4;
243
272
  try {
244
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
245
- var siblingNode = _step3.value;
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
- _iterator3.e(err);
280
+ _iterator4.e(err);
252
281
  } finally {
253
- _iterator3.f();
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 () {
@@ -0,0 +1,3 @@
1
+ export * from './move-children';
2
+ export * from './remove-node-children';
3
+ export * from './focus-editor';
@@ -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 { BLOCKQUOTE } from '../../constants';
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({}, attributes, {
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, attributes, children);
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 };