@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
@@ -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
- return minY - 93 + scrollTop; // 100: header height(56) + toolbar height(37)
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 _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
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, _regeneratorRuntime2["default"])().mark(function _callee() {
16
- var res, comments;
17
- return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
18
- while (1) switch (_context.prev = _context.next) {
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.prev = 1;
24
- _context.next = 4;
23
+ _context.p = 1;
24
+ _context.n = 2;
25
25
  return _context3["default"].listComments();
26
- case 4:
27
- res = _context.sent;
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.next = 13;
33
+ _context.n = 4;
34
34
  break;
35
- case 9:
36
- _context.prev = 9;
37
- _context.t0 = _context["catch"](1);
38
- console.log(_context.t0);
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 13:
43
- case "end":
44
- return _context.stop();
42
+ case 4:
43
+ return _context.a(2);
45
44
  }
46
- }, _callee, null, [[1, 9]]);
45
+ }, _callee, null, [[1, 3]]);
47
46
  })), []);
48
- var reRequest = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
49
- var res, comments;
50
- return (0, _regeneratorRuntime2["default"])().wrap(function _callee2$(_context2) {
51
- while (1) switch (_context2.prev = _context2.next) {
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.prev = 1;
57
- _context2.next = 4;
55
+ _context2.p = 1;
56
+ _context2.n = 2;
58
57
  return _context3["default"].listComments();
59
- case 4:
60
- res = _context2.sent;
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.next = 12;
65
+ _context2.n = 4;
67
66
  break;
68
- case 9:
69
- _context2.prev = 9;
70
- _context2.t0 = _context2["catch"](1);
71
- console.log(_context2.t0);
67
+ case 3:
68
+ _context2.p = 3;
69
+ _t2 = _context2.v;
70
+ console.log(_t2);
72
71
  // dispatch({type: 'FETCHING_ERROR'});
73
- case 12:
74
- case "end":
75
- return _context2.stop();
72
+ case 4:
73
+ return _context2.a(2);
76
74
  }
77
- }, _callee2, null, [[1, 9]]);
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 _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
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, _regeneratorRuntime2["default"])().mark(function _callee(notification) {
44
- var eventBus, res, notifications;
45
- return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
46
- while (1) switch (_context.prev = _context.next) {
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.prev = 3;
54
- _context.next = 6;
53
+ _context.p = 1;
54
+ _context.n = 2;
55
55
  return _context2["default"].listUnseenNotifications();
56
- case 6:
57
- res = _context.sent;
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.next = 16;
64
+ _context.n = 4;
65
65
  break;
66
- case 12:
67
- _context.prev = 12;
68
- _context.t0 = _context["catch"](3);
69
- console.log(_context.t0);
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 16:
74
- case "end":
75
- return _context.stop();
73
+ case 4:
74
+ return _context.a(2);
76
75
  }
77
- }, _callee, null, [[3, 12]]);
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"], {
@@ -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 _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
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, _regeneratorRuntime2["default"])().mark(function _callee() {
73
- var res, notifications, eventBus, errorMessage;
74
- return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
75
- while (1) switch (_context.prev = _context.next) {
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.prev = 0;
78
- _context.next = 3;
77
+ _context.p = 0;
78
+ _context.n = 1;
79
79
  return _context2["default"].readAllNotifications();
80
- case 3:
81
- _context.next = 5;
80
+ case 1:
81
+ _context.n = 2;
82
82
  return _context2["default"].listUnseenNotifications();
83
- case 5:
84
- res = _context.sent;
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.next = 17;
90
+ _context.n = 4;
91
91
  break;
92
- case 13:
93
- _context.prev = 13;
94
- _context.t0 = _context["catch"](0);
95
- errorMessage = (0, _commonUtils.getErrorMsg)(_context.t0);
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 17:
98
- case "end":
99
- return _context.stop();
97
+ case 4:
98
+ return _context.a(2);
100
99
  }
101
- }, _callee, null, [[0, 13]]);
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 _core = require("../extension/core");
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: false
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 _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
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, _regeneratorRuntime2["default"])().mark(function _callee(searchText) {
170
- var _res$data, res, newFiles;
171
- return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
172
- while (1) switch (_context.prev = _context.next) {
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.next = 6;
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.abrupt("return");
183
- case 6:
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.next = 11;
188
+ _context.n = 2;
189
189
  break;
190
190
  }
191
191
  setFiles([]);
192
192
  setHeader(t('Enter_more_character_start_search'));
193
- return _context.abrupt("return");
194
- case 11:
195
- _context.prev = 11;
196
- _context.next = 14;
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 14:
199
- res = _context.sent;
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.next = 21;
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.abrupt("return");
209
- case 21:
210
- _context.next = 26;
208
+ return _context.a(2);
209
+ case 4:
210
+ _context.n = 6;
211
211
  break;
212
- case 23:
213
- _context.prev = 23;
214
- _context.t0 = _context["catch"](11);
215
- _toast["default"].danger(_context.t0.message);
216
- case 26:
217
- case "end":
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, [[11, 23]]);
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
- data = _useState18[0],
70
- setData = _useState18[1];
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;