@seafile/sdoc-editor 0.1.60 → 0.1.62
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 +52 -0
- package/dist/basic-sdk/assets/css/layout.css +32 -0
- package/dist/basic-sdk/comment/comment-context-provider.js +27 -0
- package/dist/basic-sdk/comment/comment-decorate.js +29 -0
- package/dist/basic-sdk/comment/comment-editor.js +73 -0
- package/dist/basic-sdk/comment/comment-item.js +93 -0
- package/dist/basic-sdk/comment/comment-list.js +128 -0
- package/dist/basic-sdk/comment/comment.js +64 -0
- package/dist/basic-sdk/comment/helper.js +44 -0
- package/dist/basic-sdk/comment/hooks/use-comment-context.js +11 -0
- package/dist/basic-sdk/comment/hooks/use-comment-mount.js +55 -0
- package/dist/basic-sdk/comment/index.js +12 -0
- package/dist/basic-sdk/comment/reducer/comment-reducer.js +82 -0
- package/dist/basic-sdk/comment/style.css +137 -0
- package/dist/basic-sdk/decorates/index.js +21 -0
- package/dist/basic-sdk/editor.js +23 -12
- package/dist/basic-sdk/extension/constants/index.js +8 -0
- package/dist/basic-sdk/extension/core/utils/index.js +7 -4
- package/dist/basic-sdk/extension/plugins/code-block/helpers.js +6 -3
- package/dist/basic-sdk/extension/plugins/code-block/render-elem.js +7 -2
- package/dist/basic-sdk/extension/plugins/table/constants/index.js +0 -2
- package/dist/basic-sdk/extension/plugins/table/helpers.js +13 -11
- package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +1 -0
- package/dist/basic-sdk/extension/plugins/table/render/table-root.js +15 -10
- package/dist/basic-sdk/extension/plugins/text-style/render-elem.js +15 -7
- package/dist/basic-sdk/extension/render/render-element.js +17 -2
- package/dist/basic-sdk/extension/toolbar/index.js +3 -16
- package/dist/basic-sdk/highlight-decorate/index.js +5 -11
- package/dist/basic-sdk/hooks/use-scroll-context.js +10 -0
- package/dist/basic-sdk/hooks/use-selection-element.js +20 -0
- package/dist/basic-sdk/hooks/use-selection-position.js +34 -0
- package/dist/basic-sdk/hooks/use-selection-update.js +18 -0
- package/dist/basic-sdk/utils/diff-text.js +255 -0
- package/dist/basic-sdk/utils/diff.js +229 -142
- package/dist/basic-sdk/utils/document-utils.js +18 -0
- package/dist/basic-sdk/viewer.js +48 -66
- package/dist/constants/index.js +2 -1
- package/dist/context.js +20 -0
- package/dist/pages/diff-viewer/diff-viewer.js +43 -114
- package/dist/pages/diff-viewer/history-version-viewer.js +6 -1
- package/package.json +2 -2
|
@@ -1,120 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
5
|
-
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
6
|
-
import React, { Component } from 'react';
|
|
7
|
-
import { Editable, Slate } from '@seafile/slate-react';
|
|
8
|
-
import editor, { renderLeaf, renderElement } from '../../basic-sdk/extension';
|
|
9
|
-
import withNodeId from '../../basic-sdk/node-id';
|
|
1
|
+
import React, { useCallback, useEffect } from 'react';
|
|
2
|
+
import { renderLeaf, renderElement } from '../../basic-sdk/extension';
|
|
10
3
|
import { getDiff } from '../../basic-sdk/utils/diff';
|
|
11
|
-
import { DIFF_TYPE, ELEMENT_TYPE } from '../../basic-sdk/extension/constants';
|
|
12
4
|
import context from '../../context';
|
|
5
|
+
import { ELEMENT_TYPE, ADDED_STYLE, DELETED_STYLE } from '../../basic-sdk/extension/constants';
|
|
6
|
+
import { SDocViewer } from '../../basic-sdk';
|
|
13
7
|
import '../../assets/css/diff-viewer.css';
|
|
14
|
-
var DiffViewer =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
37
|
-
className: "sdoc-diff sdoc-diff-added"
|
|
38
|
-
}, renderElement(_objectSpread(_objectSpread({}, props), {}, {
|
|
39
|
-
attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
|
|
40
|
-
className: 'sdoc-diff-added'
|
|
41
|
-
})
|
|
42
|
-
}), _this.editor));
|
|
43
|
-
}
|
|
44
|
-
if (diff_type === DIFF_TYPE.DELETE) {
|
|
45
|
-
if (type === ELEMENT_TYPE.LIST_ITEM) {
|
|
46
|
-
return renderElement(_objectSpread(_objectSpread({}, props), {}, {
|
|
47
|
-
attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
|
|
48
|
-
className: 'sdoc-diff-removed'
|
|
49
|
-
})
|
|
50
|
-
}), _this.editor);
|
|
51
|
-
}
|
|
52
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
53
|
-
className: "sdoc-diff sdoc-diff-removed"
|
|
54
|
-
}, renderElement(_objectSpread(_objectSpread({}, props), {}, {
|
|
55
|
-
attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
|
|
56
|
-
className: 'sdoc-diff-removed'
|
|
57
|
-
})
|
|
58
|
-
}), _this.editor));
|
|
59
|
-
}
|
|
60
|
-
if (diff_type === DIFF_TYPE.MODIFY) {
|
|
61
|
-
if (type === ELEMENT_TYPE.ORDERED_LIST || type === ELEMENT_TYPE.UNORDERED_LIST) {
|
|
62
|
-
return renderElement(_objectSpread(_objectSpread({}, props), {}, {
|
|
63
|
-
attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
|
|
64
|
-
className: 'sdoc-diff-modify'
|
|
65
|
-
})
|
|
66
|
-
}), _this.editor);
|
|
67
|
-
}
|
|
68
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
69
|
-
className: "sdoc-diff-modify"
|
|
70
|
-
}, renderElement(_objectSpread(_objectSpread({}, props), {}, {
|
|
71
|
-
attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
|
|
72
|
-
className: 'sdoc-diff-modify'
|
|
73
|
-
})
|
|
74
|
-
}), _this.editor));
|
|
75
|
-
}
|
|
76
|
-
return renderElement(props, _this.editor);
|
|
77
|
-
};
|
|
78
|
-
var currentContent = _props.currentContent,
|
|
79
|
-
lastContent = _props.lastContent;
|
|
80
|
-
_this.diff = currentContent ? getDiff(currentContent, lastContent) : {
|
|
81
|
-
value: [],
|
|
82
|
-
changes: []
|
|
83
|
-
};
|
|
84
|
-
_this.editor = withNodeId(editor);
|
|
85
|
-
context.initSettings();
|
|
86
|
-
return _this;
|
|
87
|
-
}
|
|
88
|
-
_createClass(DiffViewer, [{
|
|
89
|
-
key: "componentDidMount",
|
|
90
|
-
value: function componentDidMount() {
|
|
91
|
-
this.props.didMountCallback && this.props.didMountCallback(this.diff);
|
|
92
|
-
}
|
|
93
|
-
}, {
|
|
94
|
-
key: "render",
|
|
95
|
-
value: function render() {
|
|
8
|
+
var DiffViewer = function DiffViewer(_ref) {
|
|
9
|
+
var currentContent = _ref.currentContent,
|
|
10
|
+
lastContent = _ref.lastContent,
|
|
11
|
+
didMountCallback = _ref.didMountCallback;
|
|
12
|
+
var diff = currentContent ? getDiff(currentContent, lastContent) : {
|
|
13
|
+
value: [],
|
|
14
|
+
changes: []
|
|
15
|
+
};
|
|
16
|
+
context.initSettings();
|
|
17
|
+
useEffect(function () {
|
|
18
|
+
didMountCallback && didMountCallback(diff);
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21
|
+
}, []);
|
|
22
|
+
var customRenderLeaf = useCallback(function (props, editor) {
|
|
23
|
+
return renderLeaf(props, editor);
|
|
24
|
+
}, []);
|
|
25
|
+
var customRenderElement = useCallback(function (props, editor) {
|
|
26
|
+
var element = props.element;
|
|
27
|
+
var type = element.type;
|
|
28
|
+
if (type === ELEMENT_TYPE.IMAGE && (element.ADD || element.DELETE)) {
|
|
29
|
+
var style = element.ADD ? ADDED_STYLE : DELETED_STYLE;
|
|
96
30
|
return /*#__PURE__*/React.createElement("div", {
|
|
97
|
-
className: "
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
value: this.diff.value,
|
|
105
|
-
onChange: function onChange() {}
|
|
106
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
107
|
-
className: "article mx-auto"
|
|
108
|
-
}, /*#__PURE__*/React.createElement(Editable, {
|
|
109
|
-
readOnly: true,
|
|
110
|
-
placeholder: "",
|
|
111
|
-
renderElement: this.renderElement,
|
|
112
|
-
renderLeaf: this.renderLeaf,
|
|
113
|
-
onDOMBeforeInput: function onDOMBeforeInput() {},
|
|
114
|
-
onKeyDown: function onKeyDown() {}
|
|
115
|
-
}))))));
|
|
31
|
+
className: "p-1",
|
|
32
|
+
style: {
|
|
33
|
+
backgroundColor: style.background_color,
|
|
34
|
+
width: 'fit-content',
|
|
35
|
+
height: 'fit-content'
|
|
36
|
+
}
|
|
37
|
+
}, renderElement(props, editor));
|
|
116
38
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
39
|
+
return renderElement(props, editor);
|
|
40
|
+
}, []);
|
|
41
|
+
return /*#__PURE__*/React.createElement(SDocViewer, {
|
|
42
|
+
document: {
|
|
43
|
+
children: diff.value
|
|
44
|
+
},
|
|
45
|
+
renderLeaf: customRenderLeaf,
|
|
46
|
+
renderElement: customRenderElement
|
|
47
|
+
});
|
|
48
|
+
};
|
|
120
49
|
export default DiffViewer;
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { SDocViewer } from '../../basic-sdk';
|
|
3
4
|
import { generateDefaultDocContent } from '../../utils';
|
|
5
|
+
import { normalizeChildren } from '../../basic-sdk/utils/document-utils';
|
|
4
6
|
function HistoryVersionViewer(props) {
|
|
5
7
|
var document = props.document;
|
|
8
|
+
var validDocument = document || generateDefaultDocContent();
|
|
6
9
|
return /*#__PURE__*/React.createElement(SDocViewer, {
|
|
7
|
-
document:
|
|
10
|
+
document: _objectSpread(_objectSpread({}, validDocument), {}, {
|
|
11
|
+
children: normalizeChildren(validDocument.children)
|
|
12
|
+
})
|
|
8
13
|
});
|
|
9
14
|
}
|
|
10
15
|
export default HistoryVersionViewer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.62",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "This is a sdoc editor",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"resolve": "1.12.0",
|
|
117
117
|
"resolve-url-loader": "3.1.5",
|
|
118
118
|
"sass-loader": "7.2.0",
|
|
119
|
-
"seafile-js": "0.2.
|
|
119
|
+
"seafile-js": "0.2.202",
|
|
120
120
|
"semver": "6.3.0",
|
|
121
121
|
"style-loader": "^1.0.1",
|
|
122
122
|
"terser-webpack-plugin": "4.2.3",
|