@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.
- package/dist/assets/css/sdoc-editor-plugins.css +1 -0
- package/dist/comment/components/comment-item-collapse-wrapper.js +20 -22
- package/dist/comment/components/comment-item-content.js +9 -10
- package/dist/comment/components/comment-item-reply.js +9 -10
- package/dist/comment/components/comment-item-wrapper.js +56 -62
- package/dist/comment/components/comment-list.js +10 -11
- package/dist/comment/components/editor-comment.js +2 -1
- package/dist/comment/components/elements-comment-count/index.css +4 -0
- package/dist/comment/components/global-comment/global-comment-header.js +18 -19
- package/dist/comment/components/global-comment/index.css +1 -1
- package/dist/comment/components/global-comment/index.js +9 -10
- package/dist/comment/helper.js +27 -2
- package/dist/comment/hooks/comment-hooks/use-comment-mount.js +33 -35
- package/dist/comment/hooks/notification-hooks/use-notification-mount.js +17 -18
- package/dist/comment/provider/index.js +1 -0
- package/dist/constants/index.js +3 -1
- package/dist/editor/sdoc-comment-editor.js +19 -20
- package/dist/editor/wiki-editor.js +17 -3
- package/dist/extension/commons/file-insert-dialog/index.js +26 -27
- package/dist/extension/commons/insert-element-dialog/index.js +22 -3
- package/dist/extension/commons/select-file-dialog/helpers.js +5 -1
- package/dist/extension/commons/select-file-dialog/index.js +18 -2
- package/dist/extension/commons/select-file-dialog/local-files/index.css +2 -0
- package/dist/extension/commons/select-file-dialog/local-files/index.js +13 -14
- package/dist/extension/constants/element-type.js +2 -1
- package/dist/extension/constants/index.js +9 -3
- package/dist/extension/constants/menus-config.js +6 -2
- package/dist/extension/plugins/ai/ai-module/index.js +9 -10
- package/dist/extension/plugins/image/helpers.js +9 -10
- package/dist/extension/plugins/image/use-copy-image.js +35 -37
- package/dist/extension/plugins/image/use-upload-image.js +25 -27
- package/dist/extension/plugins/index.js +8 -1
- package/dist/extension/plugins/link/plugin.js +24 -25
- package/dist/extension/plugins/text-style/menu/index.js +1 -1
- package/dist/extension/plugins/whiteboard/helper.js +141 -0
- package/dist/extension/plugins/whiteboard/index.css +41 -0
- package/dist/extension/plugins/whiteboard/index.js +20 -0
- package/dist/extension/plugins/whiteboard/menu/index.js +59 -0
- package/dist/extension/plugins/whiteboard/plugin.js +53 -0
- package/dist/extension/plugins/whiteboard/render-elem.js +87 -0
- package/dist/extension/render/custom-element.js +6 -0
- package/dist/extension/toolbar/header-toolbar/insert-toolbar/index.js +2 -1
- package/dist/extension/toolbar/side-toolbar/helpers.js +1 -1
- package/dist/hooks/use-collaborators.js +3 -2
- package/dist/hooks/use-plugins.js +1 -0
- package/dist/hooks/use-selection-position.js +13 -2
- package/dist/index.js +7 -0
- package/dist/layout/article-container.js +1 -1
- package/dist/views/sdoc-wiki-viewer.js +1 -1
- package/package.json +2 -3
- package/LICENSE.txt +0 -13
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;
|
|
@@ -5,76 +5,74 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useCommentsMount = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
10
10
|
var _react = require("react");
|
|
11
11
|
var _constants = require("../../../constants");
|
|
12
12
|
var _context3 = _interopRequireDefault(require("../../../context"));
|
|
13
13
|
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
14
14
|
var useCommentsMount = exports.useCommentsMount = function useCommentsMount(dispatch) {
|
|
15
|
-
var request = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/(0,
|
|
16
|
-
var res, comments;
|
|
17
|
-
return (0,
|
|
18
|
-
while (1) switch (_context.
|
|
15
|
+
var request = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee() {
|
|
16
|
+
var res, comments, _t;
|
|
17
|
+
return (0, _regenerator2["default"])().w(function (_context) {
|
|
18
|
+
while (1) switch (_context.p = _context.n) {
|
|
19
19
|
case 0:
|
|
20
20
|
dispatch({
|
|
21
21
|
type: 'FETCHING_STATE'
|
|
22
22
|
});
|
|
23
|
-
_context.
|
|
24
|
-
_context.
|
|
23
|
+
_context.p = 1;
|
|
24
|
+
_context.n = 2;
|
|
25
25
|
return _context3["default"].listComments();
|
|
26
|
-
case
|
|
27
|
-
res = _context.
|
|
26
|
+
case 2:
|
|
27
|
+
res = _context.v;
|
|
28
28
|
comments = res.data.comments;
|
|
29
29
|
dispatch({
|
|
30
30
|
type: 'RECEIVE_STATE',
|
|
31
31
|
payload: comments
|
|
32
32
|
});
|
|
33
|
-
_context.
|
|
33
|
+
_context.n = 4;
|
|
34
34
|
break;
|
|
35
|
-
case
|
|
36
|
-
_context.
|
|
37
|
-
|
|
38
|
-
console.log(
|
|
35
|
+
case 3:
|
|
36
|
+
_context.p = 3;
|
|
37
|
+
_t = _context.v;
|
|
38
|
+
console.log(_t);
|
|
39
39
|
dispatch({
|
|
40
40
|
type: 'FETCHING_ERROR'
|
|
41
41
|
});
|
|
42
|
-
case
|
|
43
|
-
|
|
44
|
-
return _context.stop();
|
|
42
|
+
case 4:
|
|
43
|
+
return _context.a(2);
|
|
45
44
|
}
|
|
46
|
-
}, _callee, null, [[1,
|
|
45
|
+
}, _callee, null, [[1, 3]]);
|
|
47
46
|
})), []);
|
|
48
|
-
var reRequest = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/(0,
|
|
49
|
-
var res, comments;
|
|
50
|
-
return (0,
|
|
51
|
-
while (1) switch (_context2.
|
|
47
|
+
var reRequest = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee2() {
|
|
48
|
+
var res, comments, _t2;
|
|
49
|
+
return (0, _regenerator2["default"])().w(function (_context2) {
|
|
50
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
52
51
|
case 0:
|
|
53
52
|
dispatch({
|
|
54
53
|
type: 'REFETCHING_STATE'
|
|
55
54
|
});
|
|
56
|
-
_context2.
|
|
57
|
-
_context2.
|
|
55
|
+
_context2.p = 1;
|
|
56
|
+
_context2.n = 2;
|
|
58
57
|
return _context3["default"].listComments();
|
|
59
|
-
case
|
|
60
|
-
res = _context2.
|
|
58
|
+
case 2:
|
|
59
|
+
res = _context2.v;
|
|
61
60
|
comments = res.data.comments;
|
|
62
61
|
dispatch({
|
|
63
62
|
type: 'RECEIVE_STATE',
|
|
64
63
|
payload: comments
|
|
65
64
|
});
|
|
66
|
-
_context2.
|
|
65
|
+
_context2.n = 4;
|
|
67
66
|
break;
|
|
68
|
-
case
|
|
69
|
-
_context2.
|
|
70
|
-
|
|
71
|
-
console.log(
|
|
67
|
+
case 3:
|
|
68
|
+
_context2.p = 3;
|
|
69
|
+
_t2 = _context2.v;
|
|
70
|
+
console.log(_t2);
|
|
72
71
|
// dispatch({type: 'FETCHING_ERROR'});
|
|
73
|
-
case
|
|
74
|
-
|
|
75
|
-
return _context2.stop();
|
|
72
|
+
case 4:
|
|
73
|
+
return _context2.a(2);
|
|
76
74
|
}
|
|
77
|
-
}, _callee2, null, [[1,
|
|
75
|
+
}, _callee2, null, [[1, 3]]);
|
|
78
76
|
})), []);
|
|
79
77
|
(0, _react.useEffect)(function () {
|
|
80
78
|
request();
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useNotificationsMount = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
10
10
|
var _react = require("react");
|
|
11
11
|
var _reactI18next = require("react-i18next");
|
|
@@ -40,41 +40,40 @@ var useNotificationsMount = exports.useNotificationsMount = function useNotifica
|
|
|
40
40
|
(0, _utils.createNotify)(title, options);
|
|
41
41
|
}, [collaborators, t]);
|
|
42
42
|
var request = (0, _react.useCallback)(/*#__PURE__*/function () {
|
|
43
|
-
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0,
|
|
44
|
-
var eventBus, res, notifications;
|
|
45
|
-
return (0,
|
|
46
|
-
while (1) switch (_context.
|
|
43
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(notification) {
|
|
44
|
+
var eventBus, res, notifications, _t;
|
|
45
|
+
return (0, _regenerator2["default"])().w(function (_context) {
|
|
46
|
+
while (1) switch (_context.p = _context.n) {
|
|
47
47
|
case 0:
|
|
48
48
|
popupBrowserCommentNotification(notification);
|
|
49
49
|
eventBus = _eventBus["default"].getInstance();
|
|
50
50
|
dispatch({
|
|
51
51
|
type: _constants2.DOC_NOTIFICATION_REDUCER_TYPE.FETCHING
|
|
52
52
|
});
|
|
53
|
-
_context.
|
|
54
|
-
_context.
|
|
53
|
+
_context.p = 1;
|
|
54
|
+
_context.n = 2;
|
|
55
55
|
return _context2["default"].listUnseenNotifications();
|
|
56
|
-
case
|
|
57
|
-
res = _context.
|
|
56
|
+
case 2:
|
|
57
|
+
res = _context.v;
|
|
58
58
|
notifications = res.data.notifications;
|
|
59
59
|
dispatch({
|
|
60
60
|
type: _constants2.DOC_NOTIFICATION_REDUCER_TYPE.FETCHED,
|
|
61
61
|
payload: notifications
|
|
62
62
|
});
|
|
63
63
|
eventBus.dispatch(_constants.INTERNAL_EVENT.UNSEEN_NOTIFICATIONS_COUNT, notifications === null || notifications === void 0 ? void 0 : notifications.length);
|
|
64
|
-
_context.
|
|
64
|
+
_context.n = 4;
|
|
65
65
|
break;
|
|
66
|
-
case
|
|
67
|
-
_context.
|
|
68
|
-
|
|
69
|
-
console.log(
|
|
66
|
+
case 3:
|
|
67
|
+
_context.p = 3;
|
|
68
|
+
_t = _context.v;
|
|
69
|
+
console.log(_t);
|
|
70
70
|
dispatch({
|
|
71
71
|
type: _constants2.DOC_NOTIFICATION_REDUCER_TYPE.FETCH_ERROR
|
|
72
72
|
});
|
|
73
|
-
case
|
|
74
|
-
|
|
75
|
-
return _context.stop();
|
|
73
|
+
case 4:
|
|
74
|
+
return _context.a(2);
|
|
76
75
|
}
|
|
77
|
-
}, _callee, null, [[
|
|
76
|
+
}, _callee, null, [[1, 3]]);
|
|
78
77
|
}));
|
|
79
78
|
return function (_x) {
|
|
80
79
|
return _ref.apply(this, arguments);
|
|
@@ -12,6 +12,7 @@ var _participantsContentProvider = _interopRequireDefault(require("./participant
|
|
|
12
12
|
var Provider = function Provider(_ref) {
|
|
13
13
|
var children = _ref.children,
|
|
14
14
|
editor = _ref.editor;
|
|
15
|
+
console.log(1, children);
|
|
15
16
|
return /*#__PURE__*/_react["default"].createElement(_notificationContextProvider["default"], {
|
|
16
17
|
editor: editor
|
|
17
18
|
}, /*#__PURE__*/_react["default"].createElement(_commentContextProvider["default"], {
|
package/dist/constants/index.js
CHANGED
|
@@ -74,7 +74,9 @@ var INTERNAL_EVENT = exports.INTERNAL_EVENT = {
|
|
|
74
74
|
TOGGLE_PRESENTATION_MODE: 'toggle_presentation_mode',
|
|
75
75
|
CREATE_SDOC_FILE: 'create_sdoc_file',
|
|
76
76
|
CREATE_WIKI_PAGE: 'create_wiki_page',
|
|
77
|
-
IMAGE_COLUMN_TOGGLE: 'Image_column_toggle'
|
|
77
|
+
IMAGE_COLUMN_TOGGLE: 'Image_column_toggle',
|
|
78
|
+
CREATE_WHITEBOARD_FILE: 'create_whiteboard_file',
|
|
79
|
+
GENERATE_EXDRAW_READ_ONLY_LINK: 'generate_exdraw_read_only_link'
|
|
78
80
|
};
|
|
79
81
|
var PAGE_EDIT_AREA_WIDTH = exports.PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
|
80
82
|
var COMMENT_EDITOR_EDIT_AREA_WIDTH = exports.COMMENT_EDITOR_EDIT_AREA_WIDTH = 364;
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
11
|
-
var
|
|
11
|
+
var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regenerator"));
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
13
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -69,36 +69,35 @@ var SdocCommentEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref)
|
|
|
69
69
|
if (Object.keys(notificationsInfo.notifications_map || {}).length === 0) return;
|
|
70
70
|
if (!commentEditorContainerRef.current.closest('.global-comment-input-wrapper')) return;
|
|
71
71
|
var clearAllNotification = /*#__PURE__*/function () {
|
|
72
|
-
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0,
|
|
73
|
-
var res, notifications, eventBus, errorMessage;
|
|
74
|
-
return (0,
|
|
75
|
-
while (1) switch (_context.
|
|
72
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee() {
|
|
73
|
+
var res, notifications, eventBus, errorMessage, _t;
|
|
74
|
+
return (0, _regenerator2["default"])().w(function (_context) {
|
|
75
|
+
while (1) switch (_context.p = _context.n) {
|
|
76
76
|
case 0:
|
|
77
|
-
_context.
|
|
78
|
-
_context.
|
|
77
|
+
_context.p = 0;
|
|
78
|
+
_context.n = 1;
|
|
79
79
|
return _context2["default"].readAllNotifications();
|
|
80
|
-
case
|
|
81
|
-
_context.
|
|
80
|
+
case 1:
|
|
81
|
+
_context.n = 2;
|
|
82
82
|
return _context2["default"].listUnseenNotifications();
|
|
83
|
-
case
|
|
84
|
-
res = _context.
|
|
83
|
+
case 2:
|
|
84
|
+
res = _context.v;
|
|
85
85
|
notifications = res.data.notifications;
|
|
86
86
|
eventBus = _eventBus["default"].getInstance();
|
|
87
87
|
eventBus.dispatch(_constants.INTERNAL_EVENT.UNSEEN_NOTIFICATIONS_COUNT, notifications === null || notifications === void 0 ? void 0 : notifications.length);
|
|
88
88
|
eventBus.dispatch(_constants.INTERNAL_EVENT.NEW_NOTIFICATION);
|
|
89
89
|
eventBus.dispatch(_constants.INTERNAL_EVENT.CLEAR_NOTIFICATION);
|
|
90
|
-
_context.
|
|
90
|
+
_context.n = 4;
|
|
91
91
|
break;
|
|
92
|
-
case
|
|
93
|
-
_context.
|
|
94
|
-
|
|
95
|
-
errorMessage = (0, _commonUtils.getErrorMsg)(
|
|
92
|
+
case 3:
|
|
93
|
+
_context.p = 3;
|
|
94
|
+
_t = _context.v;
|
|
95
|
+
errorMessage = (0, _commonUtils.getErrorMsg)(_t);
|
|
96
96
|
_toast["default"].danger(t(errorMessage));
|
|
97
|
-
case
|
|
98
|
-
|
|
99
|
-
return _context.stop();
|
|
97
|
+
case 4:
|
|
98
|
+
return _context.a(2);
|
|
100
99
|
}
|
|
101
|
-
}, _callee, null, [[0,
|
|
100
|
+
}, _callee, null, [[0, 3]]);
|
|
102
101
|
}));
|
|
103
102
|
return function clearAllNotification() {
|
|
104
103
|
return _ref2.apply(this, arguments);
|
|
@@ -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"], {
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
|
-
var
|
|
10
|
+
var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regenerator"));
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -166,58 +166,57 @@ var FileLinkInsertDialog = function FileLinkInsertDialog(_ref) {
|
|
|
166
166
|
|
|
167
167
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
168
168
|
var onSearch = (0, _react.useCallback)((0, _debounce["default"])(/*#__PURE__*/function () {
|
|
169
|
-
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0,
|
|
170
|
-
var _res$data, res, newFiles;
|
|
171
|
-
return (0,
|
|
172
|
-
while (1) switch (_context.
|
|
169
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(searchText) {
|
|
170
|
+
var _res$data, res, newFiles, _t;
|
|
171
|
+
return (0, _regenerator2["default"])().w(function (_context) {
|
|
172
|
+
while (1) switch (_context.p = _context.n) {
|
|
173
173
|
case 0:
|
|
174
174
|
if (!(searchText.trim().length === 0)) {
|
|
175
|
-
_context.
|
|
175
|
+
_context.n = 1;
|
|
176
176
|
break;
|
|
177
177
|
}
|
|
178
178
|
setHeader(t('Recent_visited'));
|
|
179
179
|
setHiddenMoreMenu(true);
|
|
180
180
|
setNewFileName('');
|
|
181
181
|
getHistoryFiles();
|
|
182
|
-
return _context.
|
|
183
|
-
case
|
|
182
|
+
return _context.a(2);
|
|
183
|
+
case 1:
|
|
184
184
|
setNewFileName(searchText);
|
|
185
185
|
|
|
186
186
|
// Cannot be found if the search is less than three characters.
|
|
187
187
|
if (!((0, _commonUtils.isEnglish)(searchText.trim()) && searchText.length < 3)) {
|
|
188
|
-
_context.
|
|
188
|
+
_context.n = 2;
|
|
189
189
|
break;
|
|
190
190
|
}
|
|
191
191
|
setFiles([]);
|
|
192
192
|
setHeader(t('Enter_more_character_start_search'));
|
|
193
|
-
return _context.
|
|
194
|
-
case
|
|
195
|
-
_context.
|
|
196
|
-
_context.
|
|
193
|
+
return _context.a(2);
|
|
194
|
+
case 2:
|
|
195
|
+
_context.p = 2;
|
|
196
|
+
_context.n = 3;
|
|
197
197
|
return _context2["default"].getSearchFilesByFilename(searchText, 1, 10, 'sdoc');
|
|
198
|
-
case
|
|
199
|
-
res = _context.
|
|
198
|
+
case 3:
|
|
199
|
+
res = _context.v;
|
|
200
200
|
if (!(res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && _res$data.results)) {
|
|
201
|
-
_context.
|
|
201
|
+
_context.n = 4;
|
|
202
202
|
break;
|
|
203
203
|
}
|
|
204
204
|
newFiles = res.data.results;
|
|
205
205
|
setHeader(t(newFiles.length === 0 ? 'No_results' : 'Link_to_file'));
|
|
206
206
|
setHiddenMoreMenu(true);
|
|
207
207
|
setFiles(newFiles);
|
|
208
|
-
return _context.
|
|
209
|
-
case
|
|
210
|
-
_context.
|
|
208
|
+
return _context.a(2);
|
|
209
|
+
case 4:
|
|
210
|
+
_context.n = 6;
|
|
211
211
|
break;
|
|
212
|
-
case
|
|
213
|
-
_context.
|
|
214
|
-
|
|
215
|
-
_toast["default"].danger(
|
|
216
|
-
case
|
|
217
|
-
|
|
218
|
-
return _context.stop();
|
|
212
|
+
case 5:
|
|
213
|
+
_context.p = 5;
|
|
214
|
+
_t = _context.v;
|
|
215
|
+
_toast["default"].danger(_t.message);
|
|
216
|
+
case 6:
|
|
217
|
+
return _context.a(2);
|
|
219
218
|
}
|
|
220
|
-
}, _callee, null, [[
|
|
219
|
+
}, _callee, null, [[2, 5]]);
|
|
221
220
|
}));
|
|
222
221
|
return function (_x) {
|
|
223
222
|
return _ref2.apply(this, arguments);
|
|
@@ -64,10 +64,14 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
64
64
|
_useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
|
|
65
65
|
handleSubmit = _useState16[0],
|
|
66
66
|
setHandleSubmit = _useState16[1];
|
|
67
|
-
var _useState17 = (0, _react.useState)(
|
|
67
|
+
var _useState17 = (0, _react.useState)(null),
|
|
68
68
|
_useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
insertWhiteboardFile = _useState18[0],
|
|
70
|
+
setInsertWhiteboardFile = _useState18[1];
|
|
71
|
+
var _useState19 = (0, _react.useState)({}),
|
|
72
|
+
_useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
|
|
73
|
+
data = _useState20[0],
|
|
74
|
+
setData = _useState20[1];
|
|
71
75
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
72
76
|
t = _useTranslation.t;
|
|
73
77
|
var uploadLocalImageInputRef = (0, _react.useRef)();
|
|
@@ -121,6 +125,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
121
125
|
insertFileLinkCallback = _ref2.insertFileLinkCallback,
|
|
122
126
|
insertSdocFileLinkCallback = _ref2.insertSdocFileLinkCallback,
|
|
123
127
|
insertVideo = _ref2.insertVideo,
|
|
128
|
+
insertWhiteboard = _ref2.insertWhiteboard,
|
|
124
129
|
paramEditor = _ref2.editor,
|
|
125
130
|
linkTitle = _ref2.linkTitle,
|
|
126
131
|
handleSubmit = _ref2.handleSubmit,
|
|
@@ -133,6 +138,9 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
133
138
|
insertSdocFileLinkCallback: insertSdocFileLinkCallback,
|
|
134
139
|
insertFileLinkCallback: insertFileLinkCallback
|
|
135
140
|
});
|
|
141
|
+
setInsertWhiteboardFile({
|
|
142
|
+
insertWhiteboard: insertWhiteboard
|
|
143
|
+
});
|
|
136
144
|
setInsertVideoCallback({
|
|
137
145
|
insertVideo: insertVideo
|
|
138
146
|
});
|
|
@@ -159,6 +167,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
159
167
|
setDialogType('');
|
|
160
168
|
setInsertLinkCallback(null);
|
|
161
169
|
setInsertVideoCallback(null);
|
|
170
|
+
setInsertWhiteboardFile(null);
|
|
162
171
|
setValidEditor(null);
|
|
163
172
|
setLinkTitle('');
|
|
164
173
|
setData('');
|
|
@@ -206,6 +215,16 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
206
215
|
};
|
|
207
216
|
return /*#__PURE__*/_react["default"].createElement(_index5["default"], fileLinkProps);
|
|
208
217
|
}
|
|
218
|
+
case _constants2.ELEMENT_TYPE.WHITEBOARD:
|
|
219
|
+
{
|
|
220
|
+
var whiteboardProps = {
|
|
221
|
+
editor: validEditor,
|
|
222
|
+
dialogType: dialogType,
|
|
223
|
+
insertWhiteboardFile: insertWhiteboardFile,
|
|
224
|
+
closeDialog: closeDialog
|
|
225
|
+
};
|
|
226
|
+
return /*#__PURE__*/_react["default"].createElement(_index5["default"], whiteboardProps);
|
|
227
|
+
}
|
|
209
228
|
case _constants2.ELEMENT_TYPE.VIDEO:
|
|
210
229
|
{
|
|
211
230
|
var videoProps = {
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.parcelFileTypeIcon = exports.getSdocFileIcon = exports.getFileTypeIcon = exports.addDataToTree = void 0;
|
|
7
|
+
exports.whiteboardFileIcon = exports.parcelFileTypeIcon = exports.getSdocFileIcon = exports.getFileTypeIcon = exports.addDataToTree = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
9
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
10
10
|
var _constants = require("../../constants");
|
|
@@ -29,6 +29,10 @@ var getSdocFileIcon = exports.getSdocFileIcon = function getSdocFileIcon() {
|
|
|
29
29
|
var server = _context["default"].getSetting('serviceUrl');
|
|
30
30
|
return "".concat(server, "/media/img/file/256/sdoc.png");
|
|
31
31
|
};
|
|
32
|
+
var whiteboardFileIcon = exports.whiteboardFileIcon = function whiteboardFileIcon() {
|
|
33
|
+
var server = _context["default"].getSetting('serviceUrl');
|
|
34
|
+
return "".concat(server, "/media/img/file/256/draw.png");
|
|
35
|
+
};
|
|
32
36
|
var getFileTypeIcon = exports.getFileTypeIcon = function getFileTypeIcon(fileType) {
|
|
33
37
|
var imgResource = ['css', 'draw', 'excel', 'md', 'music', 'pdf', 'pic', 'ppt', 'psd', 'sdoc', 'txt', 'video', 'zip', 'word'];
|
|
34
38
|
if (imgResource.includes(fileType)) {
|
|
@@ -23,7 +23,8 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
23
23
|
dialogType = _ref.dialogType,
|
|
24
24
|
closeDialog = _ref.closeDialog,
|
|
25
25
|
insertLinkCallback = _ref.insertLinkCallback,
|
|
26
|
-
insertVideoCallback = _ref.insertVideoCallback
|
|
26
|
+
insertVideoCallback = _ref.insertVideoCallback,
|
|
27
|
+
insertWhiteboardFile = _ref.insertWhiteboardFile;
|
|
27
28
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
28
29
|
t = _useTranslation.t;
|
|
29
30
|
var _useState = (0, _react.useState)(null),
|
|
@@ -53,6 +54,9 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
53
54
|
case _constants.ELEMENT_TYPE.VIDEO:
|
|
54
55
|
modalTitle = 'Select_video_file';
|
|
55
56
|
break;
|
|
57
|
+
case _constants.ELEMENT_TYPE.WHITEBOARD:
|
|
58
|
+
modalTitle = 'Select_Excalidraw_document';
|
|
59
|
+
break;
|
|
56
60
|
default:
|
|
57
61
|
break;
|
|
58
62
|
}
|
|
@@ -65,6 +69,8 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
65
69
|
insertSdocFileLinkCallback = _ref2.insertSdocFileLinkCallback;
|
|
66
70
|
var _ref3 = insertVideoCallback || {},
|
|
67
71
|
insertVideo = _ref3.insertVideo;
|
|
72
|
+
var _ref4 = insertWhiteboardFile || {},
|
|
73
|
+
insertWhiteboard = _ref4.insertWhiteboard;
|
|
68
74
|
switch (dialogType) {
|
|
69
75
|
case _constants.ELEMENT_TYPE.FILE_LINK:
|
|
70
76
|
insertFileLinkCallback && insertFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
|
|
@@ -82,10 +88,13 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
82
88
|
name: fileInfo.name
|
|
83
89
|
}], [encodedUrl]);
|
|
84
90
|
break;
|
|
91
|
+
case _constants.ELEMENT_TYPE.WHITEBOARD:
|
|
92
|
+
insertWhiteboard && insertWhiteboard(editor, fileInfo.name, fileInfo.path);
|
|
93
|
+
break;
|
|
85
94
|
default:
|
|
86
95
|
break;
|
|
87
96
|
}
|
|
88
|
-
}, [insertLinkCallback, insertVideoCallback, dialogType, editor]);
|
|
97
|
+
}, [insertLinkCallback, insertVideoCallback, insertWhiteboardFile, dialogType, editor]);
|
|
89
98
|
var onSubmit = (0, _react.useCallback)(function () {
|
|
90
99
|
if (!currentSelectedFile) return;
|
|
91
100
|
var file_uuid = currentSelectedFile.file_uuid;
|
|
@@ -98,6 +107,13 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
98
107
|
return;
|
|
99
108
|
}
|
|
100
109
|
|
|
110
|
+
// Insert whiteboard file in sdoc
|
|
111
|
+
if (dialogType === _constants.ELEMENT_TYPE.WHITEBOARD) {
|
|
112
|
+
insertFile(fileInfo);
|
|
113
|
+
closeDialog();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
101
117
|
// File has no id
|
|
102
118
|
if (!file_uuid || file_uuid === '') {
|
|
103
119
|
_context["default"].getSdocLocalFileId(currentSelectedFile.path).then(function (res) {
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
left: 0;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
.sdoc-file-icon-container .whiteboard-file-img,
|
|
39
40
|
.sdoc-file-icon-container .video-file-img,
|
|
40
41
|
.sdoc-file-icon-container .sdoc-file-img {
|
|
41
42
|
position: absolute;
|
|
@@ -96,6 +97,7 @@
|
|
|
96
97
|
white-space: nowrap;
|
|
97
98
|
}
|
|
98
99
|
|
|
100
|
+
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-info .sdoc-file-icon-container .whiteboard-file-img,
|
|
99
101
|
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-info .sdoc-file-icon-container .sdoc-file-img {
|
|
100
102
|
width: 36px;
|
|
101
103
|
height: 36px;
|