@seafile/sdoc-editor 2.0.130 → 2.0.131-test-0.0.2

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 (51) hide show
  1. package/dist/assets/css/sdoc-editor-plugins.css +1 -0
  2. package/dist/comment/components/comment-item-collapse-wrapper.js +20 -22
  3. package/dist/comment/components/comment-item-content.js +9 -10
  4. package/dist/comment/components/comment-item-reply.js +9 -10
  5. package/dist/comment/components/comment-item-wrapper.js +56 -62
  6. package/dist/comment/components/comment-list.js +10 -11
  7. package/dist/comment/components/editor-comment.js +2 -1
  8. package/dist/comment/components/elements-comment-count/index.css +4 -0
  9. package/dist/comment/components/global-comment/global-comment-header.js +18 -19
  10. package/dist/comment/components/global-comment/index.css +1 -1
  11. package/dist/comment/components/global-comment/index.js +9 -10
  12. package/dist/comment/helper.js +27 -2
  13. package/dist/comment/hooks/comment-hooks/use-comment-mount.js +33 -35
  14. package/dist/comment/hooks/notification-hooks/use-notification-mount.js +17 -18
  15. package/dist/comment/provider/index.js +1 -0
  16. package/dist/constants/index.js +3 -1
  17. package/dist/editor/sdoc-comment-editor.js +19 -20
  18. package/dist/editor/wiki-editor.js +17 -3
  19. package/dist/extension/commons/file-insert-dialog/index.js +26 -27
  20. package/dist/extension/commons/insert-element-dialog/index.js +22 -3
  21. package/dist/extension/commons/select-file-dialog/helpers.js +5 -1
  22. package/dist/extension/commons/select-file-dialog/index.js +18 -2
  23. package/dist/extension/commons/select-file-dialog/local-files/index.css +2 -0
  24. package/dist/extension/commons/select-file-dialog/local-files/index.js +13 -14
  25. package/dist/extension/constants/element-type.js +2 -1
  26. package/dist/extension/constants/index.js +9 -3
  27. package/dist/extension/constants/menus-config.js +6 -2
  28. package/dist/extension/plugins/ai/ai-module/index.js +9 -10
  29. package/dist/extension/plugins/image/helpers.js +9 -10
  30. package/dist/extension/plugins/image/use-copy-image.js +35 -37
  31. package/dist/extension/plugins/image/use-upload-image.js +25 -27
  32. package/dist/extension/plugins/index.js +8 -1
  33. package/dist/extension/plugins/link/plugin.js +24 -25
  34. package/dist/extension/plugins/text-style/menu/index.js +1 -1
  35. package/dist/extension/plugins/whiteboard/helper.js +141 -0
  36. package/dist/extension/plugins/whiteboard/index.css +41 -0
  37. package/dist/extension/plugins/whiteboard/index.js +20 -0
  38. package/dist/extension/plugins/whiteboard/menu/index.js +59 -0
  39. package/dist/extension/plugins/whiteboard/plugin.js +53 -0
  40. package/dist/extension/plugins/whiteboard/render-elem.js +87 -0
  41. package/dist/extension/render/custom-element.js +6 -0
  42. package/dist/extension/toolbar/header-toolbar/insert-toolbar/index.js +2 -1
  43. package/dist/extension/toolbar/side-toolbar/helpers.js +1 -1
  44. package/dist/hooks/use-collaborators.js +3 -2
  45. package/dist/hooks/use-plugins.js +1 -0
  46. package/dist/hooks/use-selection-position.js +13 -2
  47. package/dist/index.js +7 -0
  48. package/dist/layout/article-container.js +1 -1
  49. package/dist/views/sdoc-wiki-viewer.js +1 -1
  50. package/package.json +2 -3
  51. package/LICENSE.txt +0 -13
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.onCreateWhiteboardFile = exports.isInsertWhiteboardMenuDisabled = exports.insertWhiteboard = exports.generateWhiteboardNode = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
+ var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
+ var _slate = require("@seafile/slate");
13
+ var _slugid = _interopRequireDefault(require("slugid"));
14
+ var _constants = require("../../../constants");
15
+ var _context2 = _interopRequireDefault(require("../../../context"));
16
+ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
17
+ var _constants2 = require("../../constants");
18
+ var _core = require("../../core");
19
+ var isInsertWhiteboardMenuDisabled = exports.isInsertWhiteboardMenuDisabled = function isInsertWhiteboardMenuDisabled(editor, readonly) {
20
+ if (readonly) return true;
21
+ var selection = editor.selection;
22
+ if (selection === null) return true;
23
+ if (!_slate.Range.isCollapsed(selection)) return true;
24
+ var _Editor$nodes = _slate.Editor.nodes(editor, {
25
+ match: function match(n) {
26
+ var type = (0, _core.getNodeType)(n);
27
+ if (!type && (0, _core.isTextNode)(n) && n.id) {
28
+ var parentNode = (0, _core.getParentNode)(editor.children, n.id);
29
+ type = (0, _core.getNodeType)(parentNode);
30
+ }
31
+ if (type === _constants2.CODE_BLOCK) return true;
32
+ if (type.startsWith('header')) return true;
33
+ if (type === _constants2.TITLE) return true;
34
+ if (type === _constants2.SUBTITLE) return true;
35
+ if (type === _constants2.LIST_ITEM) return true;
36
+ if (type === _constants2.CHECK_LIST_ITEM) return true;
37
+ if (type === _constants2.MULTI_COLUMN) return true;
38
+ if (type === _constants2.BLOCKQUOTE) return true;
39
+ if (type === _constants2.CALL_OUT) return true;
40
+ if (_slate.Editor.isVoid(editor, n)) return true;
41
+ return false;
42
+ },
43
+ universal: true
44
+ }),
45
+ _Editor$nodes2 = (0, _slicedToArray2["default"])(_Editor$nodes, 1),
46
+ match = _Editor$nodes2[0];
47
+ if (match) return true;
48
+ return false;
49
+ };
50
+ var generateWhiteboardNode = exports.generateWhiteboardNode = function generateWhiteboardNode(repoID) {
51
+ var filename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
52
+ var filePath = arguments.length > 2 ? arguments[2] : undefined;
53
+ var exdrawReadOnlyLink = arguments.length > 3 ? arguments[3] : undefined;
54
+ var whiteboardNode = {
55
+ id: _slugid["default"].nice(),
56
+ type: _constants2.WHITEBOARD,
57
+ repo_id: repoID,
58
+ title: filename,
59
+ file_path: filePath,
60
+ link: exdrawReadOnlyLink,
61
+ children: [{
62
+ id: _slugid["default"].nice(),
63
+ text: ''
64
+ }]
65
+ };
66
+ return whiteboardNode;
67
+ };
68
+ var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
69
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(editor, filename, filePath) {
70
+ var _editor$selection;
71
+ var repoID, eventBus, exdrawReadOnlyLink, whiteboardNode, path, position, nextPath, endOfFirstNode, range;
72
+ return (0, _regenerator2["default"])().w(function (_context) {
73
+ while (1) switch (_context.n) {
74
+ case 0:
75
+ if (!isInsertWhiteboardMenuDisabled(editor)) {
76
+ _context.n = 1;
77
+ break;
78
+ }
79
+ return _context.a(2);
80
+ case 1:
81
+ if (!(editor.selection == null)) {
82
+ _context.n = 2;
83
+ break;
84
+ }
85
+ return _context.a(2);
86
+ case 2:
87
+ repoID = _context2["default"].getSetting('repoID');
88
+ eventBus = _eventBus["default"].getInstance();
89
+ _context.n = 3;
90
+ return new Promise(function (resolve) {
91
+ eventBus.dispatch(_constants.INTERNAL_EVENT.GENERATE_EXDRAW_READ_ONLY_LINK, {
92
+ repoID: repoID,
93
+ filePath: filePath,
94
+ onSuccess: function onSuccess(link) {
95
+ resolve(link);
96
+ }
97
+ });
98
+ });
99
+ case 3:
100
+ exdrawReadOnlyLink = _context.v;
101
+ whiteboardNode = generateWhiteboardNode(repoID, filename, filePath, exdrawReadOnlyLink);
102
+ path = (_editor$selection = editor.selection) === null || _editor$selection === void 0 ? void 0 : _editor$selection.anchor.path;
103
+ position = 'after';
104
+ if (!(position === _constants2.INSERT_POSITION.AFTER)) {
105
+ _context.n = 4;
106
+ break;
107
+ }
108
+ _slate.Transforms.insertNodes(editor, whiteboardNode, {
109
+ at: [path[0] + 1]
110
+ });
111
+ nextPath = _slate.Path.next([path[0] + 1]);
112
+ if (!(0, _core.getNode)(editor, nextPath)) {
113
+ _slate.Transforms.insertNodes(editor, (0, _core.generateDefaultParagraph)(), {
114
+ at: nextPath
115
+ });
116
+ }
117
+ endOfFirstNode = _slate.Editor.start(editor, nextPath);
118
+ range = {
119
+ anchor: endOfFirstNode,
120
+ focus: endOfFirstNode
121
+ };
122
+ (0, _core.focusEditor)(editor, range);
123
+ return _context.a(2);
124
+ case 4:
125
+ return _context.a(2);
126
+ }
127
+ }, _callee);
128
+ }));
129
+ return function insertWhiteboard(_x, _x2, _x3) {
130
+ return _ref.apply(this, arguments);
131
+ };
132
+ }();
133
+ var onCreateWhiteboardFile = exports.onCreateWhiteboardFile = function onCreateWhiteboardFile(editor) {
134
+ var eventBus = _eventBus["default"].getInstance();
135
+ var external_props = {
136
+ insertWhiteboard: insertWhiteboard,
137
+ fileType: 'exdraw',
138
+ editor: editor
139
+ };
140
+ eventBus.dispatch(_constants.INTERNAL_EVENT.CREATE_WHITEBOARD_FILE, (0, _objectSpread2["default"])({}, external_props));
141
+ };
@@ -0,0 +1,41 @@
1
+ .sdoc-whiteboard-container {
2
+ position: relative;
3
+ width: 100%;
4
+ height: 300px;
5
+ border: 1px solid #ccc;
6
+ margin: 5px 0;
7
+ }
8
+
9
+ .sdoc-whiteboard-container.isSelected {
10
+ border: 2px solid rgb(0, 123, 255);
11
+ }
12
+
13
+ .sdoc-whiteboard-title {
14
+ font-size: 14px;
15
+ color: #333;
16
+ text-align: center;
17
+ margin: 5px;
18
+ width: 100%;
19
+ position: absolute;
20
+ top: 0;
21
+ left: 0%;
22
+ z-index: 3;
23
+ }
24
+
25
+ .sdoc-whiteboard-container .iframe-overlay {
26
+ position: absolute;
27
+ top: 0;
28
+ left: 0;
29
+ width: 100%;
30
+ height: 100%;
31
+ cursor: pointer;
32
+ z-index: 2;
33
+ }
34
+
35
+ .sdoc-whiteboard-container .sdoc-whiteboard-element {
36
+ width: 100%;
37
+ height: 100%;
38
+ border: none;
39
+ position: relative;
40
+ z-index: 1;
41
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _constants = require("../../constants");
9
+ var _menu = _interopRequireDefault(require("./menu"));
10
+ var _plugin = _interopRequireDefault(require("./plugin"));
11
+ var _renderElem = require("./render-elem");
12
+ require("./index.css");
13
+ var WhiteboardPlugin = {
14
+ type: _constants.WHITEBOARD,
15
+ nodeType: 'element',
16
+ editorMenus: [_menu["default"]],
17
+ editorPlugin: _plugin["default"],
18
+ renderElements: [_renderElem.renderWhiteboard]
19
+ };
20
+ var _default = exports["default"] = WhiteboardPlugin;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _reactstrap = require("reactstrap");
12
+ var _constants = require("../../../../constants");
13
+ var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
14
+ var _constants2 = require("../../../constants");
15
+ var _helper = require("../helper");
16
+ var WhiteboardMenu = function WhiteboardMenu(_ref) {
17
+ var editor = _ref.editor,
18
+ readonly = _ref.readonly,
19
+ toggle = _ref.toggle,
20
+ eventBus = _ref.eventBus;
21
+ var disabled = (0, _helper.isInsertWhiteboardMenuDisabled)(editor, readonly);
22
+ var menuConfig = _constants2.MENUS_CONFIG_MAP[_constants2.WHITEBOARD];
23
+ var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
24
+ t = _useTranslation.t;
25
+ var onCreateFile = function onCreateFile() {
26
+ (0, _helper.onCreateWhiteboardFile)(editor);
27
+ };
28
+ var openSelectWhiteboardFileDialog = (0, _react.useCallback)(function () {
29
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
30
+ type: _constants2.ELEMENT_TYPE.WHITEBOARD,
31
+ insertWhiteboard: _helper.insertWhiteboard
32
+ });
33
+ toggle && toggle();
34
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35
+ }, [toggle, eventBus]);
36
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
37
+ disabled: disabled,
38
+ menuConfig: menuConfig,
39
+ className: "pr-2"
40
+ }, !disabled && /*#__PURE__*/_react["default"].createElement("i", {
41
+ className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon"
42
+ })), !disabled && /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledPopover, {
43
+ target: menuConfig.id,
44
+ trigger: "hover",
45
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-whiteboard-menu-popover",
46
+ placement: "right-start",
47
+ hideArrow: true,
48
+ fade: false
49
+ }, /*#__PURE__*/_react["default"].createElement("div", {
50
+ className: "sdoc-insert-whiteboard-menu-popover-container sdoc-dropdown-menu-container"
51
+ }, /*#__PURE__*/_react["default"].createElement("div", {
52
+ className: "sdoc-dropdown-menu-item",
53
+ onClick: openSelectWhiteboardFileDialog
54
+ }, t('Select_Excalidraw_document')), /*#__PURE__*/_react["default"].createElement("div", {
55
+ className: "sdoc-dropdown-menu-item",
56
+ onClick: onCreateFile
57
+ }, t('Create_new_excalidraw')))));
58
+ };
59
+ var _default = exports["default"] = WhiteboardMenu;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _slate = require("@seafile/slate");
11
+ var _isHotkey = _interopRequireDefault(require("is-hotkey"));
12
+ var _constants = require("../../constants");
13
+ var _core = require("../../core");
14
+ var _helpers = require("../../toolbar/side-toolbar/helpers");
15
+ var withWhiteboard = function withWhiteboard(editor) {
16
+ var isVoid = editor.isVoid,
17
+ onHotKeyDown = editor.onHotKeyDown;
18
+ var newEditor = editor;
19
+
20
+ // Make whiteboard as void node
21
+ newEditor.isVoid = function (elem) {
22
+ var type = elem.type;
23
+ if (type === _constants.WHITEBOARD) {
24
+ return true;
25
+ }
26
+ return isVoid(elem);
27
+ };
28
+ newEditor.onHotKeyDown = function (event) {
29
+ var _ref = (0, _core.getSelectedNodeEntryByType)(editor, _constants.WHITEBOARD) || [],
30
+ _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
31
+ whiteboardNode = _ref2[0],
32
+ path = _ref2[1];
33
+ if (path) {
34
+ // Insert empty paragraph node after whiteboard when clicking 'enter' on selected whiteboard
35
+ if ((0, _isHotkey["default"])('enter', event)) {
36
+ event.preventDefault();
37
+ var emptyParagraph = (0, _core.generateEmptyElement)(_constants.PARAGRAPH);
38
+ _slate.Transforms.insertNodes(editor, emptyParagraph, {
39
+ at: _slate.Path.next(path)
40
+ });
41
+ var focusPoint = _slate.Editor.end(editor, _slate.Path.next(path));
42
+ (0, _core.focusEditor)(newEditor, focusPoint);
43
+ }
44
+ if ((0, _isHotkey["default"])('mod+c', event)) {
45
+ (0, _helpers.onCopyNode)(editor, whiteboardNode);
46
+ }
47
+ return true;
48
+ }
49
+ return onHotKeyDown && onHotKeyDown(event);
50
+ };
51
+ return newEditor;
52
+ };
53
+ var _default = exports["default"] = withWhiteboard;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.renderWhiteboard = renderWhiteboard;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _slateReact = require("@seafile/slate-react");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _constants = require("../../../constants");
13
+ var _context = _interopRequireDefault(require("../../../context"));
14
+ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
15
+ require("./index.css");
16
+ var Whiteboard = function Whiteboard(_ref) {
17
+ var editor = _ref.editor,
18
+ element = _ref.element;
19
+ var file_path = element.file_path,
20
+ repo_id = element.repo_id,
21
+ title = element.title,
22
+ link = element.link;
23
+ var whiteboardRef = (0, _react.useRef)();
24
+ var isSelected = (0, _slateReact.useSelected)();
25
+ (0, _react.useEffect)(function () {
26
+ var handleMessage = function handleMessage(event) {
27
+ var _event$data;
28
+ if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'checkSdocParent') {
29
+ var isSdocClass = whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.classList.contains('sdoc-whiteboard-element');
30
+ whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.contentWindow.postMessage({
31
+ type: 'checkSdocParentResult',
32
+ isInSdoc: isSdocClass
33
+ }, '*');
34
+ }
35
+ };
36
+ var handleWindowResize = function handleWindowResize() {
37
+ whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.contentWindow.postMessage({
38
+ type: 'resizeWindowWidth',
39
+ isResize: true
40
+ }, '*');
41
+ };
42
+ var eventBus = _eventBus["default"].getInstance();
43
+ var unsubscribeResizeArticle = eventBus.subscribe(_constants.INTERNAL_EVENT.RESIZE_ARTICLE, handleWindowResize);
44
+ window.addEventListener('message', handleMessage);
45
+ return function () {
46
+ window.removeEventListener('message', handleMessage);
47
+ unsubscribeResizeArticle();
48
+ };
49
+ }, []);
50
+ var handleDoubleClick = function handleDoubleClick(event) {
51
+ event.preventDefault();
52
+ var siteRoot = _context["default"].getSetting('siteRoot');
53
+ var url = "".concat(siteRoot, "lib/").concat(repo_id, "/file").concat(file_path);
54
+ window.open(url, '_blank');
55
+ return;
56
+ };
57
+ return /*#__PURE__*/_react["default"].createElement("div", {
58
+ className: (0, _classnames["default"])('sdoc-whiteboard-container', {
59
+ 'isSelected': isSelected
60
+ }),
61
+ onDoubleClick: handleDoubleClick,
62
+ scrolling: "no"
63
+ }, /*#__PURE__*/_react["default"].createElement("div", {
64
+ className: "sdoc-whiteboard-title"
65
+ }, title), /*#__PURE__*/_react["default"].createElement("iframe", {
66
+ className: "sdoc-whiteboard-element",
67
+ title: title,
68
+ src: link,
69
+ ref: whiteboardRef
70
+ }), /*#__PURE__*/_react["default"].createElement("div", {
71
+ className: "iframe-overlay",
72
+ onDoubleClick: handleDoubleClick
73
+ }));
74
+ };
75
+ function renderWhiteboard(props, editor) {
76
+ var element = props.element,
77
+ children = props.children,
78
+ attributes = props.attributes;
79
+ return /*#__PURE__*/_react["default"].createElement("div", Object.assign({}, attributes, {
80
+ contentEditable: "false",
81
+ suppressContentEditableWarning: true
82
+ }), children, /*#__PURE__*/_react["default"].createElement(Whiteboard, {
83
+ editor: editor,
84
+ element: element,
85
+ contentEditable: "false"
86
+ }));
87
+ }
@@ -229,6 +229,12 @@ var CustomRenderElement = function CustomRenderElement(props) {
229
229
  renderGroup = _GroupPlugin$renderEl[0];
230
230
  return renderGroup(props);
231
231
  }
232
+ case _elementType.WHITEBOARD:
233
+ {
234
+ var _WhiteboardPlugin$ren = (0, _slicedToArray2["default"])(_plugins.WhiteboardPlugin.renderElements, 1),
235
+ renderWhiteboard = _WhiteboardPlugin$ren[0];
236
+ return renderWhiteboard((0, _objectSpread2["default"])({}, props), editor);
237
+ }
232
238
  default:
233
239
  {
234
240
  var _ParagraphPlugin$rend3 = (0, _slicedToArray2["default"])(_plugins.ParagraphPlugin.renderElements, 1),
@@ -20,6 +20,7 @@ var _menu4 = _interopRequireDefault(require("../../../plugins/link/menu"));
20
20
  var _menu5 = _interopRequireDefault(require("../../../plugins/sdoc-link/menu"));
21
21
  var _tableMenu = _interopRequireDefault(require("../../../plugins/table/menu/table-menu"));
22
22
  var _menu6 = _interopRequireDefault(require("../../../plugins/video/menu"));
23
+ var _menu7 = _interopRequireDefault(require("../../../plugins/whiteboard/menu"));
23
24
  require("./index.css");
24
25
  var InsertToolbar = function InsertToolbar(_ref) {
25
26
  var _ref$isRichEditor = _ref.isRichEditor,
@@ -101,7 +102,7 @@ var InsertToolbar = function InsertToolbar(_ref) {
101
102
  style: {
102
103
  maxHeight: window.innerHeight - bottom - 100
103
104
  }
104
- }, /*#__PURE__*/_react["default"].createElement(_menu3["default"], props), /*#__PURE__*/_react["default"].createElement(_tableMenu["default"], props), /*#__PURE__*/_react["default"].createElement(_menu6["default"], props), /*#__PURE__*/_react["default"].createElement(_menu4["default"], props), /*#__PURE__*/_react["default"].createElement(_menu["default"], props), /*#__PURE__*/_react["default"].createElement("div", {
105
+ }, /*#__PURE__*/_react["default"].createElement(_menu3["default"], props), /*#__PURE__*/_react["default"].createElement(_tableMenu["default"], props), /*#__PURE__*/_react["default"].createElement(_menu6["default"], props), /*#__PURE__*/_react["default"].createElement(_menu7["default"], props), /*#__PURE__*/_react["default"].createElement(_menu4["default"], props), /*#__PURE__*/_react["default"].createElement(_menu["default"], props), /*#__PURE__*/_react["default"].createElement("div", {
105
106
  className: "sdoc-dropdown-menu-divider"
106
107
  }), /*#__PURE__*/_react["default"].createElement(_menu5["default"], props), /*#__PURE__*/_react["default"].createElement(_menu2["default"], props))));
107
108
  };
@@ -249,7 +249,7 @@ var getTopValue = exports.getTopValue = function getTopValue(editor, dom, contai
249
249
  return top + offsetY - headerHeight;
250
250
  };
251
251
  var isNotSupportTransform = exports.isNotSupportTransform = function isNotSupportTransform(node) {
252
- if (node.type && [_constants2.CODE_BLOCK, _constants2.TABLE, _constants2.VIDEO].includes(node.type)) {
252
+ if (node.type && [_constants2.CODE_BLOCK, _constants2.TABLE, _constants2.VIDEO, _constants2.WHITEBOARD].includes(node.type)) {
253
253
  return true;
254
254
  }
255
255
  return false;
@@ -14,13 +14,14 @@ var CollaboratorsContext = /*#__PURE__*/_react["default"].createContext(null);
14
14
  var CollaboratorsProvider = exports.CollaboratorsProvider = function CollaboratorsProvider(_ref) {
15
15
  var propsCollaborators = _ref.collaborators,
16
16
  children = _ref.children;
17
- var isSdocRevision = _context["default"].getSetting('isSdocRevision');
18
- var isPublished = _context["default"].getSetting('isPublished');
17
+ var isSdocRevision = _context["default"].getSetting('isSdocRevision') || false;
18
+ var isPublished = _context["default"].getSetting('isPublished') || false;
19
19
  var _useState = (0, _react.useState)(propsCollaborators || []),
20
20
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
21
21
  collaborators = _useState2[0],
22
22
  setCollaborators = _useState2[1];
23
23
  (0, _react.useEffect)(function () {
24
+ console.log(1, isSdocRevision, isPublished);
24
25
  if (isSdocRevision && isPublished) return;
25
26
  if (propsCollaborators) return;
26
27
  _context["default"].listRelatedUsers().then(function (res) {
@@ -34,6 +34,7 @@ var PluginsProvider = exports.PluginsProvider = function PluginsProvider(_ref) {
34
34
  component: _comment["default"]
35
35
  });
36
36
  }
37
+ console.log(3, allPlugins);
37
38
  return allPlugins;
38
39
  }, [showComment, propsPlugins]);
39
40
  var updateDisplayPlugin = (0, _react.useCallback)(function (name) {
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useCommentListPosition = void 0;
7
+ var _helper = require("../comment/helper");
8
+ var _constants = require("../constants");
7
9
  var _useScrollContext = require("./use-scroll-context");
8
- var useCommentListPosition = exports.useCommentListPosition = function useCommentListPosition(selectedElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment) {
10
+ var useCommentListPosition = exports.useCommentListPosition = function useCommentListPosition(selectedElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment, editor) {
9
11
  var _document$querySelect;
10
12
  var headerHeight = 100;
11
13
  var scrollRef = (0, _useScrollContext.useScrollContext)();
@@ -51,7 +53,12 @@ var useCommentListPosition = exports.useCommentListPosition = function useCommen
51
53
  }
52
54
  }
53
55
  var editorArticleRight = document.getElementById('sdoc-editor-print-wrapper').getBoundingClientRect().right;
54
- var topPara = rect.bottom - headerHeight + 10 + scrollTop;
56
+ var topPara;
57
+ topPara = rect.bottom - headerHeight + 10 + scrollTop;
58
+ if (editor.editorType === _constants.WIKI_EDITOR) {
59
+ // 55 is basic top title height in wiki
60
+ topPara = (0, _helper.commentContainerWikiTransfer)(topPara, 55);
61
+ }
55
62
  var rightPara = editorArticleRight - rect.left - 300; // 300 is comment container's width
56
63
  return {
57
64
  right: rightPara,
@@ -63,6 +70,10 @@ var useCommentListPosition = exports.useCommentListPosition = function useCommen
63
70
  if (!selectionPosition) closeComment();
64
71
  if (selectionPosition && selectionPosition.y !== 0) {
65
72
  selectionPosition.y = selectionPosition.y - headerHeight + scrollTop;
73
+ if (editor.editorType === _constants.WIKI_EDITOR) {
74
+ // 47 is top nav bar height in wiki
75
+ selectionPosition.y = (0, _helper.commentContainerWikiTransfer)(selectionPosition.y, 47);
76
+ }
66
77
  }
67
78
  return {
68
79
  x: selectionPosition === null || selectionPosition === void 0 ? void 0 : selectionPosition.x,
package/dist/index.js CHANGED
@@ -88,6 +88,12 @@ Object.defineProperty(exports, "RevisionEditor", {
88
88
  return _revisionEditor["default"];
89
89
  }
90
90
  });
91
+ Object.defineProperty(exports, "RightPanel", {
92
+ enumerable: true,
93
+ get: function get() {
94
+ return _index["default"];
95
+ }
96
+ });
91
97
  Object.defineProperty(exports, "SDocEditor", {
92
98
  enumerable: true,
93
99
  get: function get() {
@@ -260,6 +266,7 @@ var _useCollaborators = require("./hooks/use-collaborators");
260
266
  var _usePlugins = require("./hooks/use-plugins");
261
267
  var _nodeId = _interopRequireDefault(require("./node-id"));
262
268
  var _outline = _interopRequireDefault(require("./outline"));
269
+ var _index = _interopRequireDefault(require("./right-panel/index"));
263
270
  var _slateConvert = require("./slate-convert");
264
271
  var _socket = require("./socket");
265
272
  var _commonUtils = require("./utils/common-utils");
@@ -63,7 +63,7 @@ function ArticleContainer(_ref) {
63
63
  };
64
64
  }, [editor.editorType, handleWindowResize]);
65
65
  (0, _react.useEffect)(function () {
66
- if (editor.editorType === _constants.WIKI_EDITOR) return;
66
+ // if (editor.editorType === WIKI_EDITOR) return;
67
67
  if (editor.editorType === _constants.DOCUMENT_PLUGIN_EDITOR) return;
68
68
  handleWindowResize();
69
69
  window.addEventListener('resize', handleWindowResize);
@@ -24,7 +24,7 @@ var SDocMdViewer = function SDocMdViewer(_ref) {
24
24
  showOutline = _ref$showOutline === void 0 ? false : _ref$showOutline,
25
25
  propsScrollRef = _ref.scrollRef;
26
26
  var validEditor = editor || (0, _nodeId["default"])((0, _extension.createDefaultEditor)());
27
- var slateValue = (document || (0, _documentUtils.generateDefaultDocContent)()).children;
27
+ var slateValue = (document || (0, _documentUtils.generateDefaultDocContent)()).elements;
28
28
  var scrollRef = (0, _react.useRef)(null);
29
29
  var currentScrollRef = propsScrollRef || scrollRef;
30
30
  return /*#__PURE__*/_react["default"].createElement(_layout.EditorContainer, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.130",
3
+ "version": "2.0.131-test-0.0.2",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -69,6 +69,5 @@
69
69
  },
70
70
  "publishConfig": {
71
71
  "access": "public"
72
- },
73
- "gitHead": "10b0c1c64b87fea3d83594109d061393c24d66a8"
72
+ }
74
73
  }
package/LICENSE.txt DELETED
@@ -1,13 +0,0 @@
1
- Copyright (c) 2025 Seafile Ltd.
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.