@seafile/sdoc-editor 1.0.109 → 1.0.111-alpha1

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.
@@ -96,7 +96,8 @@ const FileLink = _ref => {
96
96
  unregisterEventHandle();
97
97
  // eslint-disable-next-line react-hooks/exhaustive-deps
98
98
  }, []);
99
- const onUnwrapFileLinkNode = (0, _react.useCallback)(() => {
99
+ const onUnwrapFileLinkNode = (0, _react.useCallback)(event => {
100
+ event.stopPropagation();
100
101
  (0, _helpers.unwrapLinkNode)(editor, element);
101
102
  // eslint-disable-next-line react-hooks/exhaustive-deps
102
103
  }, []);
@@ -24,7 +24,8 @@ const withHeader = editor => {
24
24
  const {
25
25
  insertBreak,
26
26
  insertFragment,
27
- insertText
27
+ insertText,
28
+ deleteBackward
28
29
  } = editor;
29
30
  const newEditor = editor;
30
31
 
@@ -83,6 +84,23 @@ const withHeader = editor => {
83
84
  }
84
85
  return insertFragment(data);
85
86
  };
87
+ newEditor.deleteBackward = unit => {
88
+ const {
89
+ selection
90
+ } = newEditor;
91
+ if (selection === null) {
92
+ deleteBackward(unit);
93
+ return;
94
+ }
95
+ const headerNode = (0, _core.getSelectedNodeByTypes)(editor, _constants.HEADERS);
96
+ if (headerNode && (0, _core.isSelectionAtBlockStart)(editor) && _slate.Node.string(headerNode).length > 0) {
97
+ _slate.Transforms.setNodes(editor, {
98
+ type: _constants.PARAGRAPH
99
+ });
100
+ return;
101
+ }
102
+ deleteBackward(unit);
103
+ };
86
104
  newEditor.onHotKeyDown = event => {
87
105
  const HOT_KEYS = (0, _utils.isMac)() ? _keyboard.MAC_HOTKEYS_EVENT : _keyboard.WIN_HOTKEYS;
88
106
  const hotEntries = Object.entries(HOT_KEYS);
@@ -282,6 +282,7 @@ const Image = _ref => {
282
282
  placeholder: t('Caption'),
283
283
  autoComplete: "off",
284
284
  value: caption,
285
+ disabled: readOnly,
285
286
  onBlur: onSetCaption,
286
287
  onChange: e => {
287
288
  setCaption(e.target.value);
@@ -164,7 +164,7 @@ const upsertLinkText = (editor, _ref) => {
164
164
  }
165
165
  };
166
166
  exports.upsertLinkText = upsertLinkText;
167
- const unWrapLinkNode = async editor => {
167
+ const unWrapLinkNode = editor => {
168
168
  if (editor.selection == null) return;
169
169
  const [nodeEntry] = _slate.Editor.nodes(editor, {
170
170
  match: n => (0, _core.getNodeType)(n) === 'link',
@@ -67,7 +67,8 @@ class Link extends _react.default.Component {
67
67
  this.registerEventHandle();
68
68
  }, 0);
69
69
  });
70
- (0, _defineProperty2.default)(this, "deleteLink", () => {
70
+ (0, _defineProperty2.default)(this, "deleteLink", event => {
71
+ event.stopPropagation();
71
72
  const {
72
73
  editor
73
74
  } = this.props;
@@ -102,7 +102,8 @@ const SdocFileLink = _ref => {
102
102
  unregisterEventHandle();
103
103
  // eslint-disable-next-line react-hooks/exhaustive-deps
104
104
  }, []);
105
- const onUnwrapFileLinkNode = (0, _react.useCallback)(() => {
105
+ const onUnwrapFileLinkNode = (0, _react.useCallback)(event => {
106
+ event.stopPropagation();
106
107
  (0, _helpers.unwrapLinkNode)(editor, element);
107
108
  // eslint-disable-next-line react-hooks/exhaustive-deps
108
109
  }, []);
@@ -11,6 +11,7 @@ var _context = _interopRequireDefault(require("../../context"));
11
11
  var _diff = require("../utils/diff");
12
12
  var _sdocViewer = _interopRequireDefault(require("./sdoc-viewer"));
13
13
  var _loading = _interopRequireDefault(require("../../components/loading"));
14
+ var _formatSdocContent = require("../../utils/format-sdoc-content");
14
15
  require("../../assets/css/diff-viewer.css");
15
16
  const PublishedRevisionDiffViewer = _ref => {
16
17
  let {
@@ -34,7 +35,8 @@ const PublishedRevisionDiffViewer = _ref => {
34
35
  const {
35
36
  content: baseContentString
36
37
  } = res.data;
37
- const baseContent = JSON.parse(baseContentString);
38
+ let baseContent = JSON.parse(baseContentString);
39
+ baseContent = (0, _formatSdocContent.formatSdocContent)(baseContent);
38
40
  const diff = (0, _diff.getDiff)(revisionContent, baseContent);
39
41
  setDiff(diff);
40
42
  didMountCallback && didMountCallback(diff);
@@ -12,6 +12,7 @@ var _diff = require("../utils/diff");
12
12
  var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
13
13
  var _sdocViewer = _interopRequireDefault(require("./sdoc-viewer"));
14
14
  var _loading = _interopRequireDefault(require("../../components/loading"));
15
+ var _formatSdocContent = require("../../utils/format-sdoc-content");
15
16
  require("../../assets/css/diff-viewer.css");
16
17
  const RevisionDiffViewer = _ref => {
17
18
  let {
@@ -27,7 +28,8 @@ const RevisionDiffViewer = _ref => {
27
28
  const {
28
29
  content: originContentString
29
30
  } = res.data;
30
- const originContent = JSON.parse(originContentString);
31
+ let originContent = JSON.parse(originContentString);
32
+ originContent = (0, _formatSdocContent.formatSdocContent)(originContent);
31
33
  const diff = (0, _diff.getDiff)(revisionContent, originContent);
32
34
  setDiff(diff);
33
35
  didMountCallback && didMountCallback(diff);
@@ -16,6 +16,7 @@ var _context = _interopRequireDefault(require("../context"));
16
16
  var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
17
17
  var _basicSdk = require("../basic-sdk");
18
18
  var _utils = require("../utils");
19
+ var _formatSdocContent = require("../utils/format-sdoc-content");
19
20
  require("../assets/css/simple-editor.css");
20
21
  const PublishedRevisionViewer = () => {
21
22
  _context.default.initApi();
@@ -38,7 +39,8 @@ const PublishedRevisionViewer = () => {
38
39
  const {
39
40
  content: revisionContentString
40
41
  } = res.data;
41
- const document = JSON.parse(revisionContentString);
42
+ let document = JSON.parse(revisionContentString);
43
+ document = (0, _formatSdocContent.formatSdocContent)(document);
42
44
  setDocument(document);
43
45
  setIsFirstLoading(false);
44
46
  }).catch(error => {
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatSdocContent = void 0;
7
+ // patch: update children to elements
8
+ const formatSdocContent = content => {
9
+ return {
10
+ ...content,
11
+ ...(!content.elements && {
12
+ elements: content.children
13
+ })
14
+ };
15
+ };
16
+ exports.formatSdocContent = formatSdocContent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "1.0.109",
3
+ "version": "1.0.111-alpha1",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",