@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.
Files changed (41) hide show
  1. package/dist/api/sdoc-server-api.js +52 -0
  2. package/dist/basic-sdk/assets/css/layout.css +32 -0
  3. package/dist/basic-sdk/comment/comment-context-provider.js +27 -0
  4. package/dist/basic-sdk/comment/comment-decorate.js +29 -0
  5. package/dist/basic-sdk/comment/comment-editor.js +73 -0
  6. package/dist/basic-sdk/comment/comment-item.js +93 -0
  7. package/dist/basic-sdk/comment/comment-list.js +128 -0
  8. package/dist/basic-sdk/comment/comment.js +64 -0
  9. package/dist/basic-sdk/comment/helper.js +44 -0
  10. package/dist/basic-sdk/comment/hooks/use-comment-context.js +11 -0
  11. package/dist/basic-sdk/comment/hooks/use-comment-mount.js +55 -0
  12. package/dist/basic-sdk/comment/index.js +12 -0
  13. package/dist/basic-sdk/comment/reducer/comment-reducer.js +82 -0
  14. package/dist/basic-sdk/comment/style.css +137 -0
  15. package/dist/basic-sdk/decorates/index.js +21 -0
  16. package/dist/basic-sdk/editor.js +23 -12
  17. package/dist/basic-sdk/extension/constants/index.js +8 -0
  18. package/dist/basic-sdk/extension/core/utils/index.js +7 -4
  19. package/dist/basic-sdk/extension/plugins/code-block/helpers.js +6 -3
  20. package/dist/basic-sdk/extension/plugins/code-block/render-elem.js +7 -2
  21. package/dist/basic-sdk/extension/plugins/table/constants/index.js +0 -2
  22. package/dist/basic-sdk/extension/plugins/table/helpers.js +13 -11
  23. package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +1 -0
  24. package/dist/basic-sdk/extension/plugins/table/render/table-root.js +15 -10
  25. package/dist/basic-sdk/extension/plugins/text-style/render-elem.js +15 -7
  26. package/dist/basic-sdk/extension/render/render-element.js +17 -2
  27. package/dist/basic-sdk/extension/toolbar/index.js +3 -16
  28. package/dist/basic-sdk/highlight-decorate/index.js +5 -11
  29. package/dist/basic-sdk/hooks/use-scroll-context.js +10 -0
  30. package/dist/basic-sdk/hooks/use-selection-element.js +20 -0
  31. package/dist/basic-sdk/hooks/use-selection-position.js +34 -0
  32. package/dist/basic-sdk/hooks/use-selection-update.js +18 -0
  33. package/dist/basic-sdk/utils/diff-text.js +255 -0
  34. package/dist/basic-sdk/utils/diff.js +229 -142
  35. package/dist/basic-sdk/utils/document-utils.js +18 -0
  36. package/dist/basic-sdk/viewer.js +48 -66
  37. package/dist/constants/index.js +2 -1
  38. package/dist/context.js +20 -0
  39. package/dist/pages/diff-viewer/diff-viewer.js +43 -114
  40. package/dist/pages/diff-viewer/history-version-viewer.js +6 -1
  41. package/package.json +2 -2
@@ -1,120 +1,49 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
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 = /*#__PURE__*/function (_Component) {
15
- _inherits(DiffViewer, _Component);
16
- var _super = _createSuper(DiffViewer);
17
- function DiffViewer(_props) {
18
- var _this;
19
- _classCallCheck(this, DiffViewer);
20
- _this = _super.call(this, _props);
21
- _this.renderLeaf = function (props) {
22
- return renderLeaf(props, _this.editor);
23
- };
24
- _this.renderElement = function (props) {
25
- var element = props.element;
26
- var diff_type = element.diff_type,
27
- type = element.type;
28
- if (diff_type === DIFF_TYPE.ADD) {
29
- if (type === ELEMENT_TYPE.LIST_ITEM) {
30
- return renderElement(_objectSpread(_objectSpread({}, props), {}, {
31
- attributes: _objectSpread(_objectSpread({}, props.attributes), {}, {
32
- className: 'sdoc-diff-added'
33
- })
34
- }), _this.editor);
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: "sdoc-editor-container"
98
- }, /*#__PURE__*/React.createElement("div", {
99
- className: "sdoc-editor-content"
100
- }, /*#__PURE__*/React.createElement("div", {
101
- className: "flex-fill o-auto"
102
- }, /*#__PURE__*/React.createElement(Slate, {
103
- editor: this.editor,
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
- return DiffViewer;
119
- }(Component);
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: document || generateDefaultDocContent()
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.60",
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.190",
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",