@seafile/sdoc-editor 2.0.134-alpha.4 → 2.0.135
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/LICENSE.txt +13 -0
- package/dist/comment/components/comment-item-content.js +7 -21
- package/dist/comment/components/comment-item-reply.js +8 -22
- package/dist/comment/components/comment-list.js +14 -43
- package/dist/comment/components/editor-comment.js +1 -1
- package/dist/comment/components/global-comment/global-comment-editor.js +10 -25
- package/dist/comment/components/global-comment/index.css +1 -1
- package/dist/comment/helper.js +27 -2
- package/dist/editor/wiki-editor.js +17 -3
- package/dist/extension/plugins/text-style/menu/index.js +1 -1
- package/dist/extension/plugins/whiteboard/hover-menu/index.css +50 -0
- package/dist/extension/plugins/whiteboard/hover-menu/index.js +71 -0
- package/dist/extension/plugins/whiteboard/render-elem.js +70 -3
- package/dist/hooks/use-plugins.js +5 -1
- package/dist/hooks/use-selection-position.js +13 -2
- package/dist/index.js +14 -0
- package/dist/layout/article-container.js +3 -3
- package/dist/right-panel/index.js +12 -0
- package/dist/utils/default-mode.js +2 -2
- package/package.json +4 -4
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
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.
|
|
@@ -13,14 +13,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
|
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _reactI18next = require("react-i18next");
|
|
15
15
|
var _reactstrap = require("reactstrap");
|
|
16
|
-
var _commentEditor = require("@seafile/comment-editor");
|
|
17
16
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
18
17
|
var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
|
|
19
18
|
var _context2 = _interopRequireDefault(require("../../context"));
|
|
20
|
-
var _useCollaborators2 = require("../../hooks/use-collaborators");
|
|
21
19
|
var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
|
|
22
20
|
var _notificationHooks = require("../hooks/notification-hooks");
|
|
23
|
-
var
|
|
21
|
+
var _commentEditor = _interopRequireDefault(require("./comment-editor"));
|
|
24
22
|
var _commentImagePreviewer = _interopRequireDefault(require("./comment-image-previewer"));
|
|
25
23
|
var CommentItemContent = function CommentItemContent(_ref) {
|
|
26
24
|
var isActive = _ref.isActive,
|
|
@@ -31,11 +29,6 @@ var CommentItemContent = function CommentItemContent(_ref) {
|
|
|
31
29
|
onDeleteComment = _ref.onDeleteComment,
|
|
32
30
|
t = _ref.t,
|
|
33
31
|
targetId = _ref.targetId;
|
|
34
|
-
var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
|
|
35
|
-
addParticipants = _useParticipantsConte.addParticipants,
|
|
36
|
-
participants = _useParticipantsConte.participants;
|
|
37
|
-
var _useCollaborators = (0, _useCollaborators2.useCollaborators)(),
|
|
38
|
-
collaborators = _useCollaborators.collaborators;
|
|
39
32
|
var _useState = (0, _react.useState)(false),
|
|
40
33
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
34
|
isDropdownOpen = _useState2[0],
|
|
@@ -126,18 +119,6 @@ var CommentItemContent = function CommentItemContent(_ref) {
|
|
|
126
119
|
setImageUrl(event.target.src);
|
|
127
120
|
}
|
|
128
121
|
}, []);
|
|
129
|
-
var commentEditorProps = {
|
|
130
|
-
className: 'pb-3',
|
|
131
|
-
addParticipants: addParticipants,
|
|
132
|
-
participants: participants,
|
|
133
|
-
collaborators: collaborators,
|
|
134
|
-
content: comment.comment,
|
|
135
|
-
insertContent: updateContent,
|
|
136
|
-
hiddenComment: setIsEditing,
|
|
137
|
-
api: {
|
|
138
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
122
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
123
|
className: "comment-item"
|
|
143
124
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -206,7 +187,12 @@ var CommentItemContent = function CommentItemContent(_ref) {
|
|
|
206
187
|
dangerouslySetInnerHTML: {
|
|
207
188
|
__html: editorContent
|
|
208
189
|
}
|
|
209
|
-
})), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
190
|
+
})), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
191
|
+
className: "pb-3",
|
|
192
|
+
content: comment.comment,
|
|
193
|
+
updateContent: updateContent,
|
|
194
|
+
setIsEditing: setIsEditing
|
|
195
|
+
}), imageUrl && /*#__PURE__*/_react["default"].createElement(_commentImagePreviewer["default"], {
|
|
210
196
|
imageUrl: imageUrl,
|
|
211
197
|
toggle: function toggle() {
|
|
212
198
|
return setImageUrl('');
|
|
@@ -12,13 +12,11 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _reactI18next = require("react-i18next");
|
|
14
14
|
var _reactstrap = require("reactstrap");
|
|
15
|
-
var _commentEditor = require("@seafile/comment-editor");
|
|
16
15
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
17
16
|
var _context2 = _interopRequireDefault(require("../../context"));
|
|
18
|
-
var _useCollaborators2 = require("../../hooks/use-collaborators");
|
|
19
17
|
var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
|
|
20
|
-
var _useParticipants = require("../hooks/use-participants");
|
|
21
18
|
var _commentDeletePopover = _interopRequireDefault(require("./comment-delete-popover"));
|
|
19
|
+
var _commentEditor = _interopRequireDefault(require("./comment-editor"));
|
|
22
20
|
var _commentImagePreviewer = _interopRequireDefault(require("./comment-image-previewer"));
|
|
23
21
|
var CommentItemReply = function CommentItemReply(_ref) {
|
|
24
22
|
var isActive = _ref.isActive,
|
|
@@ -27,11 +25,6 @@ var CommentItemReply = function CommentItemReply(_ref) {
|
|
|
27
25
|
deleteReply = _ref.deleteReply,
|
|
28
26
|
updateReply = _ref.updateReply,
|
|
29
27
|
t = _ref.t;
|
|
30
|
-
var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
|
|
31
|
-
addParticipants = _useParticipantsConte.addParticipants,
|
|
32
|
-
participants = _useParticipantsConte.participants;
|
|
33
|
-
var _useCollaborators = (0, _useCollaborators2.useCollaborators)(),
|
|
34
|
-
collaborators = _useCollaborators.collaborators;
|
|
35
28
|
var _useState = (0, _react.useState)(false),
|
|
36
29
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
37
30
|
isDropdownOpen = _useState2[0],
|
|
@@ -108,19 +101,6 @@ var CommentItemReply = function CommentItemReply(_ref) {
|
|
|
108
101
|
setImageUrl(event.target.src);
|
|
109
102
|
}
|
|
110
103
|
}, []);
|
|
111
|
-
var commentEditorProps = {
|
|
112
|
-
type: 'reply',
|
|
113
|
-
className: 'pb-3',
|
|
114
|
-
addParticipants: addParticipants,
|
|
115
|
-
participants: participants,
|
|
116
|
-
collaborators: collaborators,
|
|
117
|
-
content: editorContent,
|
|
118
|
-
insertContent: updateContent,
|
|
119
|
-
hiddenComment: setIsEditing,
|
|
120
|
-
api: {
|
|
121
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
104
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
105
|
className: "comment-item",
|
|
126
106
|
ref: itemRef
|
|
@@ -170,7 +150,13 @@ var CommentItemReply = function CommentItemReply(_ref) {
|
|
|
170
150
|
dangerouslySetInnerHTML: {
|
|
171
151
|
__html: editorContent
|
|
172
152
|
}
|
|
173
|
-
})), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
153
|
+
})), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
154
|
+
className: "pb-3",
|
|
155
|
+
type: "reply",
|
|
156
|
+
content: editorContent,
|
|
157
|
+
updateContent: updateContent,
|
|
158
|
+
setIsEditing: setIsEditing
|
|
159
|
+
}), isShowDeletePopover && isActive && /*#__PURE__*/_react["default"].createElement(_commentDeletePopover["default"], {
|
|
174
160
|
parentDom: itemRef.current,
|
|
175
161
|
type: "reply",
|
|
176
162
|
deleteConfirm: _deleteReply,
|
|
@@ -14,16 +14,14 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
|
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
var _reactI18next = require("react-i18next");
|
|
16
16
|
var _reactstrap = require("reactstrap");
|
|
17
|
-
var _commentEditor = require("@seafile/comment-editor");
|
|
18
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
18
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
20
19
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
21
20
|
var _context2 = _interopRequireDefault(require("../../context"));
|
|
22
|
-
var _useCollaborators2 = require("../../hooks/use-collaborators");
|
|
23
21
|
var _useSelectionPosition = require("../../hooks/use-selection-position");
|
|
24
22
|
var _helper = require("../helper");
|
|
25
23
|
var _useCommentContext2 = require("../hooks/comment-hooks/use-comment-context");
|
|
26
|
-
var
|
|
24
|
+
var _commentEditor = _interopRequireDefault(require("./comment-editor"));
|
|
27
25
|
var _commentItemWrapper = _interopRequireDefault(require("./comment-item-wrapper"));
|
|
28
26
|
require("./comment-list.css");
|
|
29
27
|
var CommentList = function CommentList(_ref) {
|
|
@@ -43,12 +41,7 @@ var CommentList = function CommentList(_ref) {
|
|
|
43
41
|
t = _ref.t;
|
|
44
42
|
var commentPopover = (0, _react.useRef)(null);
|
|
45
43
|
var commentDetailRef = (0, _react.useRef)(null);
|
|
46
|
-
var
|
|
47
|
-
addParticipants = _useParticipantsConte.addParticipants,
|
|
48
|
-
participants = _useParticipantsConte.participants;
|
|
49
|
-
var _useCollaborators = (0, _useCollaborators2.useCollaborators)(),
|
|
50
|
-
collaborators = _useCollaborators.collaborators;
|
|
51
|
-
var position = (0, _useSelectionPosition.useCommentListPosition)(activeElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment);
|
|
44
|
+
var position = (0, _useSelectionPosition.useCommentListPosition)(activeElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment, editor);
|
|
52
45
|
var _useCommentContext = (0, _useCommentContext2.useCommentContext)(),
|
|
53
46
|
dispatch = _useCommentContext.dispatch;
|
|
54
47
|
var _useState = (0, _react.useState)(false),
|
|
@@ -209,17 +202,12 @@ var CommentList = function CommentList(_ref) {
|
|
|
209
202
|
style: {
|
|
210
203
|
paddingTop: isEmptyComment ? '16px' : ''
|
|
211
204
|
}
|
|
212
|
-
}, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
213
|
-
addParticipants: addParticipants,
|
|
214
|
-
participants: participants,
|
|
215
|
-
collaborators: collaborators,
|
|
205
|
+
}, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
216
206
|
type: "comment",
|
|
217
207
|
insertContent: addNewComment,
|
|
218
208
|
hiddenComment: hiddenComment,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
222
|
-
}
|
|
209
|
+
isContextComment: isContextComment,
|
|
210
|
+
closeComment: closeComment
|
|
223
211
|
}), !isEmptyComment && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isActiveEditor && /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
|
|
224
212
|
value: inputContent !== null && inputContent !== void 0 && inputContent.trim() ? '.....' : '',
|
|
225
213
|
readOnly: true,
|
|
@@ -227,40 +215,29 @@ var CommentList = function CommentList(_ref) {
|
|
|
227
215
|
onFocus: function onFocus() {
|
|
228
216
|
setActiveCommentKey(index);
|
|
229
217
|
}
|
|
230
|
-
}), isActiveEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
218
|
+
}), isActiveEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
231
219
|
type: "reply",
|
|
232
220
|
placeholder: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
|
|
233
|
-
|
|
234
|
-
participants: participants,
|
|
235
|
-
collaborators: collaborators,
|
|
236
|
-
content: commentInputs[item.id] || '',
|
|
221
|
+
commentContent: commentInputs[item.id] || '',
|
|
237
222
|
insertContent: function insertContent(value) {
|
|
238
223
|
return handleReplySubmit(value, item.id);
|
|
239
224
|
},
|
|
240
225
|
onContentChange: function onContentChange(content) {
|
|
241
226
|
return handleInputChange(item.id, content);
|
|
242
227
|
},
|
|
243
|
-
hiddenComment: hiddenComment
|
|
244
|
-
api: {
|
|
245
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
246
|
-
}
|
|
228
|
+
hiddenComment: hiddenComment
|
|
247
229
|
}))));
|
|
248
230
|
}), Object.values(commentDetail).length === 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
249
231
|
className: "non-global-comment-input-wrapper",
|
|
250
232
|
style: {
|
|
251
233
|
paddingTop: isEmptyComment ? '16px' : ''
|
|
252
234
|
}
|
|
253
|
-
}, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
235
|
+
}, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
254
236
|
type: "comment",
|
|
255
|
-
addParticipants: addParticipants,
|
|
256
|
-
participants: participants,
|
|
257
|
-
collaborators: collaborators,
|
|
258
237
|
insertContent: addNewComment,
|
|
259
238
|
hiddenComment: hiddenComment,
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
263
|
-
}
|
|
239
|
+
isContextComment: isContextComment,
|
|
240
|
+
closeComment: closeComment
|
|
264
241
|
}), !isEmptyComment && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !showEditor && /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
|
|
265
242
|
value: inputContent !== null && inputContent !== void 0 && inputContent.trim() ? '.....' : '',
|
|
266
243
|
readOnly: true,
|
|
@@ -268,21 +245,15 @@ var CommentList = function CommentList(_ref) {
|
|
|
268
245
|
onFocus: function onFocus() {
|
|
269
246
|
setShowEditor(true);
|
|
270
247
|
}
|
|
271
|
-
}), showEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
248
|
+
}), showEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
272
249
|
type: "reply",
|
|
273
250
|
placeholder: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
|
|
274
|
-
|
|
275
|
-
participants: participants,
|
|
276
|
-
collaborators: collaborators,
|
|
277
|
-
content: inputContent,
|
|
251
|
+
commentContent: inputContent,
|
|
278
252
|
insertContent: replyComment,
|
|
279
253
|
onContentChange: function onContentChange(content) {
|
|
280
254
|
setInputContent(content);
|
|
281
255
|
},
|
|
282
|
-
hiddenComment: hiddenComment
|
|
283
|
-
api: {
|
|
284
|
-
uploadLocalImage: _context2["default"].uploadLocalImage
|
|
285
|
-
}
|
|
256
|
+
hiddenComment: hiddenComment
|
|
286
257
|
}))));
|
|
287
258
|
};
|
|
288
259
|
var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentList);
|
|
@@ -194,7 +194,7 @@ var EditorComment = function EditorComment(_ref) {
|
|
|
194
194
|
className: "comment-container-main"
|
|
195
195
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
196
196
|
className: (0, _classnames["default"])('comment-container-right', {
|
|
197
|
-
'
|
|
197
|
+
'is-context-comment': isContextComment
|
|
198
198
|
})
|
|
199
199
|
}, /*#__PURE__*/_react["default"].createElement(_elementsCommentCount["default"], {
|
|
200
200
|
elementCommentsMap: element_comments_map,
|
|
@@ -6,11 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _commentEditor = require("@seafile/comment-editor");
|
|
10
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
-
var
|
|
12
|
-
var _useCollaborators2 = require("../../../hooks/use-collaborators");
|
|
13
|
-
var _useParticipants = require("../../hooks/use-participants");
|
|
10
|
+
var _commentEditor = _interopRequireDefault(require("../comment-editor"));
|
|
14
11
|
var GlobalCommentEditor = function GlobalCommentEditor(_ref) {
|
|
15
12
|
var isScrollDisplayed = _ref.isScrollDisplayed,
|
|
16
13
|
globalCommentContent = _ref.globalCommentContent,
|
|
@@ -18,32 +15,20 @@ var GlobalCommentEditor = function GlobalCommentEditor(_ref) {
|
|
|
18
15
|
insertDocComment = _ref.insertDocComment,
|
|
19
16
|
hiddenCommentEditor = _ref.hiddenCommentEditor,
|
|
20
17
|
onContentChange = _ref.onContentChange;
|
|
21
|
-
var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
|
|
22
|
-
addParticipants = _useParticipantsConte.addParticipants,
|
|
23
|
-
participants = _useParticipantsConte.participants;
|
|
24
|
-
var _useCollaborators = (0, _useCollaborators2.useCollaborators)(),
|
|
25
|
-
collaborators = _useCollaborators.collaborators;
|
|
26
|
-
var commentEditorProps = {
|
|
27
|
-
type: type,
|
|
28
|
-
className: 'sdoc-doc-comment-editor',
|
|
29
|
-
hiddenUserInfo: true,
|
|
30
|
-
content: globalCommentContent,
|
|
31
|
-
insertContent: insertDocComment,
|
|
32
|
-
onContentChange: onContentChange,
|
|
33
|
-
hiddenComment: hiddenCommentEditor,
|
|
34
|
-
addParticipants: addParticipants,
|
|
35
|
-
collaborators: collaborators,
|
|
36
|
-
participants: participants,
|
|
37
|
-
api: {
|
|
38
|
-
uploadLocalImage: _context["default"].uploadLocalImage
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
18
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
42
19
|
className: (0, _classnames["default"])('sdoc-doc-comment-editor-container', 'sdoc-comment-list-container', {
|
|
43
20
|
'scrolled': isScrollDisplayed
|
|
44
21
|
})
|
|
45
22
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
46
23
|
className: "sdoc-doc-comment-editor-content"
|
|
47
|
-
}, /*#__PURE__*/_react["default"].createElement(_commentEditor
|
|
24
|
+
}, /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
|
|
25
|
+
type: type,
|
|
26
|
+
className: "sdoc-doc-comment-editor",
|
|
27
|
+
commentContent: globalCommentContent,
|
|
28
|
+
hiddenUserInfo: true,
|
|
29
|
+
insertContent: insertDocComment,
|
|
30
|
+
hiddenComment: hiddenCommentEditor,
|
|
31
|
+
onContentChange: onContentChange
|
|
32
|
+
})));
|
|
48
33
|
};
|
|
49
34
|
var _default = exports["default"] = GlobalCommentEditor;
|
|
@@ -321,6 +321,6 @@
|
|
|
321
321
|
font-weight: unset;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
|
-
.sdoc-comment-drawer .sdoc-comment-list-container .global-comment-item-detail-wrapper .comment-item:not(:last-child){
|
|
324
|
+
.sdoc-comment-drawer .sdoc-comment-list-container .global-comment-item-detail-wrapper .comment-item:not(:last-child) {
|
|
325
325
|
margin-bottom: 16px;
|
|
326
326
|
}
|
package/dist/comment/helper.js
CHANGED
|
@@ -4,13 +4,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useCursorPosition = exports.updateElementsAttrs = exports.updateCommentedElementsAttrs = exports.getSelectionRange = exports.getSelectedElemIds = exports.getPrimaryElementId = exports.getElementCommentCountTop = exports.getDomById = exports.getCursorPosition = exports.getCommentedTextsByElementId = exports.getAvatarUrl = void 0;
|
|
7
|
+
exports.useCursorPosition = exports.updateElementsAttrs = exports.updateCommentedElementsAttrs = exports.getSelectionRange = exports.getSelectedElemIds = exports.getPrimaryElementId = exports.getElementCommentCountTop = exports.getDomById = exports.getCursorPosition = exports.getCommentedTextsByElementId = exports.getAvatarUrl = exports.commentContainerWikiTransfer = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
10
10
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
12
|
var _slate = require("@seafile/slate");
|
|
13
13
|
var _slateReact = require("@seafile/slate-react");
|
|
14
|
+
var _constants = require("../constants");
|
|
14
15
|
var _context = _interopRequireDefault(require("../context"));
|
|
15
16
|
var _core = require("../extension/core");
|
|
16
17
|
var _useScrollContext = require("../hooks/use-scroll-context");
|
|
@@ -56,6 +57,24 @@ var getAvatarUrl = exports.getAvatarUrl = function getAvatarUrl() {
|
|
|
56
57
|
var avatarUrl = "".concat(server, "/media/avatars/default.png");
|
|
57
58
|
return avatarUrl;
|
|
58
59
|
};
|
|
60
|
+
var commentContainerWikiTransfer = exports.commentContainerWikiTransfer = function commentContainerWikiTransfer(result, value) {
|
|
61
|
+
var newResult;
|
|
62
|
+
var isWikiTitleIcon = document.querySelector('.wiki-page-icon-wrapper');
|
|
63
|
+
var isWikiTitleCover = document.getElementById('wiki-page-cover');
|
|
64
|
+
if (isWikiTitleIcon && !isWikiTitleCover) {
|
|
65
|
+
// 90 is icon height in wiki
|
|
66
|
+
newResult = result - value - 90;
|
|
67
|
+
} else if (!isWikiTitleIcon && isWikiTitleCover) {
|
|
68
|
+
// 203 is icon height in wiki
|
|
69
|
+
newResult = result - value - 203;
|
|
70
|
+
} else if (isWikiTitleIcon && isWikiTitleCover) {
|
|
71
|
+
// 205 is icon and cover height in wiki
|
|
72
|
+
newResult = result - value - 205;
|
|
73
|
+
} else {
|
|
74
|
+
newResult = result - value;
|
|
75
|
+
}
|
|
76
|
+
return newResult;
|
|
77
|
+
};
|
|
59
78
|
var getElementCommentCountTop = exports.getElementCommentCountTop = function getElementCommentCountTop(editor, element, scrollTop) {
|
|
60
79
|
var minY;
|
|
61
80
|
var children = element.children || [];
|
|
@@ -71,7 +90,13 @@ var getElementCommentCountTop = exports.getElementCommentCountTop = function get
|
|
|
71
90
|
if (!minY) minY = y;
|
|
72
91
|
minY = Math.min(minY, y);
|
|
73
92
|
});
|
|
74
|
-
|
|
93
|
+
var resultY;
|
|
94
|
+
resultY = minY - 93 + scrollTop; // 100: header height(56) + toolbar height(37)
|
|
95
|
+
if (editor.editorType === _constants.WIKI_EDITOR) {
|
|
96
|
+
// 55 is basic top title height in wiki
|
|
97
|
+
resultY = commentContainerWikiTransfer(resultY, 55);
|
|
98
|
+
}
|
|
99
|
+
return resultY;
|
|
75
100
|
};
|
|
76
101
|
var getSelectedElemIds = exports.getSelectedElemIds = function getSelectedElemIds(editor) {
|
|
77
102
|
var selection = editor.selection;
|
|
@@ -18,7 +18,7 @@ var _constants = require("../constants");
|
|
|
18
18
|
var _context = _interopRequireDefault(require("../context"));
|
|
19
19
|
var _extension = require("../extension");
|
|
20
20
|
var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
|
|
21
|
-
var
|
|
21
|
+
var _helpers = require("../extension/plugins/ai/ai-module/helpers");
|
|
22
22
|
var _useColorContext = require("../hooks/use-color-context");
|
|
23
23
|
var _useScrollContext = require("../hooks/use-scroll-context");
|
|
24
24
|
var _layout = require("../layout");
|
|
@@ -34,7 +34,9 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
34
34
|
document = _ref.document,
|
|
35
35
|
isReloading = _ref.isReloading,
|
|
36
36
|
isWikiReadOnly = _ref.isWikiReadOnly,
|
|
37
|
-
scrollRef = _ref.scrollRef
|
|
37
|
+
scrollRef = _ref.scrollRef,
|
|
38
|
+
showComment = _ref.showComment,
|
|
39
|
+
isShowRightPanel = _ref.isShowRightPanel;
|
|
38
40
|
var validEditor = (0, _react.useMemo)(function () {
|
|
39
41
|
if (propsEditor) return propsEditor;
|
|
40
42
|
var defaultEditor = (0, _extension.createDefaultEditor)();
|
|
@@ -90,6 +92,18 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
90
92
|
(0, _react.useEffect)(function () {
|
|
91
93
|
var eventBus = _eventBus["default"].getInstance();
|
|
92
94
|
eventBus.subscribe(_constants.INTERNAL_EVENT.REFRESH_DOCUMENT, onRefreshDocument);
|
|
95
|
+
|
|
96
|
+
// Remove Marks on special conditions like unexpected exit or refresh page using AI or context comment
|
|
97
|
+
var hasSpecialMark = !_slate.Editor.nodes(validEditor, {
|
|
98
|
+
at: [],
|
|
99
|
+
match: function match(n) {
|
|
100
|
+
return _slate.Text.isText(n) && (n.sdoc_ai === true || n.comment === true);
|
|
101
|
+
}
|
|
102
|
+
}).next().done;
|
|
103
|
+
if (hasSpecialMark) {
|
|
104
|
+
(0, _helpers.removeMarks)(validEditor);
|
|
105
|
+
}
|
|
106
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
107
|
}, [onRefreshDocument]);
|
|
94
108
|
|
|
95
109
|
// The parent component can call the method of this component through ref
|
|
@@ -162,7 +176,7 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
162
176
|
editor: validEditor,
|
|
163
177
|
slateValue: slateValue,
|
|
164
178
|
updateSlateValue: onValueChange,
|
|
165
|
-
showComment:
|
|
179
|
+
showComment: showComment
|
|
166
180
|
})), /*#__PURE__*/_react["default"].createElement(_wikiOutline["default"], {
|
|
167
181
|
doc: slateValue
|
|
168
182
|
}))))), /*#__PURE__*/_react["default"].createElement(_insertElementDialog["default"], {
|
|
@@ -156,7 +156,7 @@ var TextStyleMenuList = function TextStyleMenuList(_ref) {
|
|
|
156
156
|
tipMessage: t('Reduce_font_size')
|
|
157
157
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
158
158
|
className: "sdocfont sdoc-reduce-font-size"
|
|
159
|
-
}))), idPrefix && ![_constants.DOCUMENT_PLUGIN_EDITOR
|
|
159
|
+
}))), idPrefix && ![_constants.DOCUMENT_PLUGIN_EDITOR].includes(editor.editorType) && /*#__PURE__*/_react["default"].createElement(_commentContextMenu["default"], null), idPrefix && enableSeafileAI && /*#__PURE__*/_react["default"].createElement(_aiMenu.AIContextMenu, {
|
|
160
160
|
isRichEditor: isRichEditor
|
|
161
161
|
}));
|
|
162
162
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
.sdoc-whiteboard-hover-menu-container {
|
|
2
|
+
position: absolute;
|
|
3
|
+
height: 42px;
|
|
4
|
+
z-index: 101;
|
|
5
|
+
width: auto;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container {
|
|
9
|
+
height: 36px;
|
|
10
|
+
background-color: #fff;
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: flex-start;
|
|
13
|
+
align-items: center;
|
|
14
|
+
border-radius: 3px;
|
|
15
|
+
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
|
|
16
|
+
border: 1px solid #e8e8e8;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container>span {
|
|
20
|
+
padding: 0 8px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container>span:not(:last-of-type) {
|
|
24
|
+
padding: 0 8px;
|
|
25
|
+
border-right: 1px solid #e5e5e5;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container .op-item {
|
|
29
|
+
position: relative;
|
|
30
|
+
font-size: 12px;
|
|
31
|
+
color: #212529;
|
|
32
|
+
padding: 0 5px;
|
|
33
|
+
border-radius: 2px;
|
|
34
|
+
min-width: 24px;
|
|
35
|
+
height: 24px;
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container .op-item:hover {
|
|
42
|
+
color: #212529;
|
|
43
|
+
text-decoration: none;
|
|
44
|
+
background: #f1f1f1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.sdoc-whiteboard-hover-menu-container .hover-menu-container .icon-font {
|
|
48
|
+
font-size: 12px;
|
|
49
|
+
color: #999999;
|
|
50
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
13
|
+
var _commons = require("../../../commons");
|
|
14
|
+
require("./index.css");
|
|
15
|
+
var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
16
|
+
var menuPosition = _ref.menuPosition,
|
|
17
|
+
onOpen = _ref.onOpen,
|
|
18
|
+
openFullscreen = _ref.openFullscreen,
|
|
19
|
+
onDeleteWhiteboard = _ref.onDeleteWhiteboard;
|
|
20
|
+
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
21
|
+
t = _useTranslation.t;
|
|
22
|
+
var _useState = (0, _react.useState)(false),
|
|
23
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
24
|
+
showTooltip = _useState2[0],
|
|
25
|
+
setShowTooltip = _useState2[1];
|
|
26
|
+
(0, _react.useEffect)(function () {
|
|
27
|
+
setShowTooltip(true);
|
|
28
|
+
}, []);
|
|
29
|
+
return /*#__PURE__*/_react["default"].createElement(_commons.ElementPopover, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
30
|
+
className: "sdoc-whiteboard-hover-menu-container",
|
|
31
|
+
style: menuPosition
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
33
|
+
className: "hover-menu-container"
|
|
34
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
35
|
+
className: "op-group-item"
|
|
36
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
37
|
+
id: "sdoc_whiteboard_open",
|
|
38
|
+
role: "button",
|
|
39
|
+
className: "op-item",
|
|
40
|
+
onClick: onOpen
|
|
41
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
42
|
+
className: "mr-1"
|
|
43
|
+
}, t('Open')))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
44
|
+
className: "op-group-item"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
46
|
+
id: "sdoc_whiteboard_delete",
|
|
47
|
+
role: "button",
|
|
48
|
+
className: "op-item",
|
|
49
|
+
onClick: onDeleteWhiteboard
|
|
50
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
51
|
+
className: "sdocfont sdoc-delete icon-font"
|
|
52
|
+
}), showTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
53
|
+
target: "sdoc_whiteboard_delete",
|
|
54
|
+
placement: "top",
|
|
55
|
+
fade: true
|
|
56
|
+
}, t('Delete')))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
57
|
+
className: "op-group-item"
|
|
58
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
59
|
+
id: "sdoc_whiteboard_full_screen_mode",
|
|
60
|
+
role: "button",
|
|
61
|
+
className: "op-item",
|
|
62
|
+
onClick: openFullscreen
|
|
63
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
64
|
+
className: "sdocfont sdoc-fullscreen icon-font"
|
|
65
|
+
}), showTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
66
|
+
target: "sdoc_whiteboard_full_screen_mode",
|
|
67
|
+
placement: "top",
|
|
68
|
+
fade: true
|
|
69
|
+
}, t('Full_screen_mode')))))));
|
|
70
|
+
};
|
|
71
|
+
var _default = exports["default"] = WhiteboardHoverMenu;
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.renderWhiteboard = renderWhiteboard;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _slate = require("@seafile/slate");
|
|
10
12
|
var _slateReact = require("@seafile/slate-react");
|
|
11
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
14
|
var _constants = require("../../../constants");
|
|
13
15
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
16
|
+
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
14
17
|
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
18
|
+
var _core = require("../../core");
|
|
19
|
+
var _utils = require("../../utils");
|
|
20
|
+
var _hoverMenu = _interopRequireDefault(require("./hover-menu"));
|
|
15
21
|
require("./index.css");
|
|
16
22
|
var Whiteboard = function Whiteboard(_ref) {
|
|
17
23
|
var editor = _ref.editor,
|
|
@@ -21,7 +27,16 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
21
27
|
title = element.title,
|
|
22
28
|
link = element.link;
|
|
23
29
|
var whiteboardRef = (0, _react.useRef)();
|
|
30
|
+
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
24
31
|
var isSelected = (0, _slateReact.useSelected)();
|
|
32
|
+
var readOnly = (0, _slateReact.useReadOnly)();
|
|
33
|
+
var _useState = (0, _react.useState)({
|
|
34
|
+
top: '',
|
|
35
|
+
left: ''
|
|
36
|
+
}),
|
|
37
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
38
|
+
menuPosition = _useState2[0],
|
|
39
|
+
setMenuPosition = _useState2[1];
|
|
25
40
|
(0, _react.useEffect)(function () {
|
|
26
41
|
var handleMessage = function handleMessage(event) {
|
|
27
42
|
var _event$data;
|
|
@@ -47,6 +62,14 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
47
62
|
unsubscribeResizeArticle();
|
|
48
63
|
};
|
|
49
64
|
}, []);
|
|
65
|
+
var onDeleteWhiteboard = (0, _react.useCallback)(function () {
|
|
66
|
+
var path = _slateReact.ReactEditor.findPath(editor, element);
|
|
67
|
+
_slate.Transforms.removeNodes(editor, {
|
|
68
|
+
at: path
|
|
69
|
+
});
|
|
70
|
+
(0, _core.focusEditor)(editor);
|
|
71
|
+
_slate.Transforms.select(editor, editor.selection);
|
|
72
|
+
}, [editor, element]);
|
|
50
73
|
var handleDoubleClick = function handleDoubleClick(event) {
|
|
51
74
|
event.preventDefault();
|
|
52
75
|
var siteRoot = _context["default"].getSetting('siteRoot');
|
|
@@ -54,7 +77,45 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
54
77
|
window.open(url, '_blank');
|
|
55
78
|
return;
|
|
56
79
|
};
|
|
57
|
-
|
|
80
|
+
var handleScroll = (0, _react.useCallback)(function (e) {
|
|
81
|
+
if (readOnly) return;
|
|
82
|
+
if (!isSelected) return;
|
|
83
|
+
if (e.currentTarget.scrollTop) {
|
|
84
|
+
var _menuPosition = (0, _utils.getMenuPosition)(whiteboardRef.current, editor);
|
|
85
|
+
setMenuPosition(_menuPosition);
|
|
86
|
+
}
|
|
87
|
+
}, [editor, isSelected, readOnly]);
|
|
88
|
+
(0, _react.useEffect)(function () {
|
|
89
|
+
if (readOnly) return;
|
|
90
|
+
var observerRefValue = null;
|
|
91
|
+
if (scrollRef.current) {
|
|
92
|
+
scrollRef.current.addEventListener('scroll', handleScroll);
|
|
93
|
+
observerRefValue = scrollRef.current;
|
|
94
|
+
}
|
|
95
|
+
return function () {
|
|
96
|
+
observerRefValue.removeEventListener('scroll', handleScroll);
|
|
97
|
+
};
|
|
98
|
+
}, [handleScroll, readOnly, scrollRef]);
|
|
99
|
+
var handleOnClick = (0, _react.useCallback)(function () {
|
|
100
|
+
if (readOnly) return;
|
|
101
|
+
if (isSelected) {
|
|
102
|
+
var _menuPosition2 = (0, _utils.getMenuPosition)(whiteboardRef.current, editor);
|
|
103
|
+
setMenuPosition(_menuPosition2);
|
|
104
|
+
}
|
|
105
|
+
}, [editor, isSelected, readOnly]);
|
|
106
|
+
var openFullscreen = function openFullscreen() {
|
|
107
|
+
if (whiteboardRef.current.requestFullscreen) {
|
|
108
|
+
// Chrome
|
|
109
|
+
whiteboardRef.current.requestFullscreen();
|
|
110
|
+
} else if (whiteboardRef.current.webkitRequestFullscreen) {
|
|
111
|
+
// Safari
|
|
112
|
+
whiteboardRef.current.webkitRequestFullscreen();
|
|
113
|
+
} else if (whiteboardRef.current.msRequestFullscreen) {
|
|
114
|
+
// IE11
|
|
115
|
+
whiteboardRef.current.msRequestFullscreen();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
58
119
|
className: (0, _classnames["default"])('sdoc-whiteboard-container', {
|
|
59
120
|
'isSelected': isSelected
|
|
60
121
|
}),
|
|
@@ -69,7 +130,13 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
69
130
|
ref: whiteboardRef
|
|
70
131
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
71
132
|
className: "iframe-overlay",
|
|
72
|
-
onDoubleClick: handleDoubleClick
|
|
133
|
+
onDoubleClick: handleDoubleClick,
|
|
134
|
+
onClick: handleOnClick
|
|
135
|
+
})), isSelected && !readOnly && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
|
|
136
|
+
menuPosition: menuPosition,
|
|
137
|
+
onOpen: handleDoubleClick,
|
|
138
|
+
openFullscreen: openFullscreen,
|
|
139
|
+
onDeleteWhiteboard: onDeleteWhiteboard
|
|
73
140
|
}));
|
|
74
141
|
};
|
|
75
142
|
function renderWhiteboard(props, editor) {
|
|
@@ -15,13 +15,17 @@ var PluginsContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
|
15
15
|
var PluginsProvider = exports.PluginsProvider = function PluginsProvider(_ref) {
|
|
16
16
|
var showComment = _ref.showComment,
|
|
17
17
|
propsPlugins = _ref.plugins,
|
|
18
|
-
children = _ref.children
|
|
18
|
+
children = _ref.children,
|
|
19
|
+
setIsShowRightPanel = _ref.setIsShowRightPanel;
|
|
19
20
|
var _useState = (0, _react.useState)(''),
|
|
20
21
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
21
22
|
displayName = _useState2[0],
|
|
22
23
|
setDisplayName = _useState2[1];
|
|
23
24
|
var closePlugin = (0, _react.useCallback)(function () {
|
|
24
25
|
setDisplayName('');
|
|
26
|
+
// Deal with comment component in wiki
|
|
27
|
+
setIsShowRightPanel && setIsShowRightPanel(false);
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25
29
|
}, []);
|
|
26
30
|
var plugins = (0, _react.useMemo)(function () {
|
|
27
31
|
var allPlugins = propsPlugins;
|
|
@@ -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
|
|
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
|
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "CollaboratorsProvider", {
|
|
|
10
10
|
return _useCollaborators.CollaboratorsProvider;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
|
+
Object.defineProperty(exports, "CommentContextProvider", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _provider["default"];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
13
19
|
Object.defineProperty(exports, "DiffViewer", {
|
|
14
20
|
enumerable: true,
|
|
15
21
|
get: function get() {
|
|
@@ -88,6 +94,12 @@ Object.defineProperty(exports, "RevisionEditor", {
|
|
|
88
94
|
return _revisionEditor["default"];
|
|
89
95
|
}
|
|
90
96
|
});
|
|
97
|
+
Object.defineProperty(exports, "RightPanel", {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function get() {
|
|
100
|
+
return _index["default"];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
91
103
|
Object.defineProperty(exports, "SDocEditor", {
|
|
92
104
|
enumerable: true,
|
|
93
105
|
get: function get() {
|
|
@@ -244,6 +256,7 @@ Object.defineProperty(exports, "withSocketIO", {
|
|
|
244
256
|
return _socket.withSocketIO;
|
|
245
257
|
}
|
|
246
258
|
});
|
|
259
|
+
var _provider = _interopRequireDefault(require("./comment/provider"));
|
|
247
260
|
var _fileLoading = _interopRequireDefault(require("./components/file-loading"));
|
|
248
261
|
var _loading = _interopRequireDefault(require("./components/loading"));
|
|
249
262
|
var _toast = _interopRequireDefault(require("./components/toast"));
|
|
@@ -260,6 +273,7 @@ var _useCollaborators = require("./hooks/use-collaborators");
|
|
|
260
273
|
var _usePlugins = require("./hooks/use-plugins");
|
|
261
274
|
var _nodeId = _interopRequireDefault(require("./node-id"));
|
|
262
275
|
var _outline = _interopRequireDefault(require("./outline"));
|
|
276
|
+
var _index = _interopRequireDefault(require("./right-panel/index"));
|
|
263
277
|
var _slateConvert = require("./slate-convert");
|
|
264
278
|
var _socket = require("./socket");
|
|
265
279
|
var _commonUtils = require("./utils/common-utils");
|
|
@@ -17,7 +17,8 @@ var _fullWidthMode = require("../utils/full-width-mode");
|
|
|
17
17
|
var _localStorageUtils = _interopRequireDefault(require("../utils/local-storage-utils"));
|
|
18
18
|
function ArticleContainer(_ref) {
|
|
19
19
|
var editor = _ref.editor,
|
|
20
|
-
children = _ref.children
|
|
20
|
+
children = _ref.children,
|
|
21
|
+
isShowCommentPanelInWiki = _ref.isShowCommentPanelInWiki;
|
|
21
22
|
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
22
23
|
var articleRef = (0, _react.useRef)(null);
|
|
23
24
|
var _useState = (0, _react.useState)({}),
|
|
@@ -63,7 +64,6 @@ function ArticleContainer(_ref) {
|
|
|
63
64
|
};
|
|
64
65
|
}, [editor.editorType, handleWindowResize]);
|
|
65
66
|
(0, _react.useEffect)(function () {
|
|
66
|
-
if (editor.editorType === _constants.WIKI_EDITOR) return;
|
|
67
67
|
if (editor.editorType === _constants.DOCUMENT_PLUGIN_EDITOR) return;
|
|
68
68
|
handleWindowResize();
|
|
69
69
|
window.addEventListener('resize', handleWindowResize);
|
|
@@ -73,7 +73,7 @@ function ArticleContainer(_ref) {
|
|
|
73
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
74
|
}, []);
|
|
75
75
|
var articleStyle = editor.getArticleStyle && editor.getArticleStyle();
|
|
76
|
-
var articleContainerStyle = editor.getArticleStyle ? {
|
|
76
|
+
var articleContainerStyle = editor.editorType !== _constants.WIKI_EDITOR && editor.getArticleStyle ? {
|
|
77
77
|
width: articleStyle.width
|
|
78
78
|
} : containerStyle;
|
|
79
79
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -9,6 +9,8 @@ exports["default"] = void 0;
|
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _comment = _interopRequireDefault(require("../comment"));
|
|
13
|
+
var _commentOperation = _interopRequireDefault(require("../comment/components/comment-operation"));
|
|
12
14
|
var _constants = require("../constants");
|
|
13
15
|
var _usePlugins2 = require("../hooks/use-plugins");
|
|
14
16
|
var _eventBus = _interopRequireDefault(require("../utils/event-bus"));
|
|
@@ -27,6 +29,16 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
27
29
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
28
30
|
width = _useState2[0],
|
|
29
31
|
setWidth = _useState2[1];
|
|
32
|
+
if (editor.editorType === _constants.WIKI_EDITOR) {
|
|
33
|
+
plugins = [{
|
|
34
|
+
name: 'sdoc-comment',
|
|
35
|
+
icon: /*#__PURE__*/_react["default"].createElement(_commentOperation["default"], null),
|
|
36
|
+
resizable_width: true,
|
|
37
|
+
display_type: _constants.PLUGIN_DISPLAY_TYPE.RIGHT_PANEL,
|
|
38
|
+
component: _comment["default"]
|
|
39
|
+
}];
|
|
40
|
+
displayPluginName = 'sdoc-comment';
|
|
41
|
+
}
|
|
30
42
|
var panelWrapperStyle = (0, _react.useMemo)(function () {
|
|
31
43
|
if (!displayPluginName) return null;
|
|
32
44
|
var style = {
|
|
@@ -10,9 +10,9 @@ var _localStorageUtils = _interopRequireDefault(require("./local-storage-utils")
|
|
|
10
10
|
var getStyleByDefaultMode = exports.getStyleByDefaultMode = function getStyleByDefaultMode(scrollRef, editor) {
|
|
11
11
|
var sdocStorage = _localStorageUtils["default"].getItem(_constants.SDOC_STORAGE) || {};
|
|
12
12
|
var isShowOutline = sdocStorage.outlineOpen;
|
|
13
|
-
var containerStyle = {
|
|
13
|
+
var containerStyle = editor.editorType !== _constants.WIKI_EDITOR ? {
|
|
14
14
|
width: _constants.ARTICLE_DEFAULT_WIDTH
|
|
15
|
-
};
|
|
15
|
+
} : {};
|
|
16
16
|
|
|
17
17
|
// Has outline
|
|
18
18
|
if (isShowOutline && editor.editorType !== _constants.WIKI_EDITOR) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.135",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"description": "",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@seafile/comment-editor": "^0.0.1-alpha.79",
|
|
21
20
|
"@seafile/print-js": "1.6.6",
|
|
22
21
|
"@seafile/react-image-lightbox": "4.0.2",
|
|
23
22
|
"@seafile/slate": "0.91.8",
|
|
@@ -70,5 +69,6 @@
|
|
|
70
69
|
},
|
|
71
70
|
"publishConfig": {
|
|
72
71
|
"access": "public"
|
|
73
|
-
}
|
|
74
|
-
|
|
72
|
+
},
|
|
73
|
+
"gitHead": "1557e2e40dd8beaa1be653cdee381b75c9a8b9c5"
|
|
74
|
+
}
|