@seafile/sdoc-editor 1.0.195-test0.0.1 → 1.0.195-test0.0.3

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.
@@ -34,6 +34,7 @@ const InsertElementDialog = _ref => {
34
34
  const [insertLinkCallback, setInsertLinkCallback] = (0, _react.useState)(null);
35
35
  const [validEditor, setValidEditor] = (0, _react.useState)(editor);
36
36
  const [linkTitle, setLinkTitle] = (0, _react.useState)('');
37
+ const [insertWhiteboardFile, setInsertWhiteboardFile] = (0, _react.useState)(null);
37
38
  const [handleSubmit, setHandleSubmit] = (0, _react.useState)(() => void 0);
38
39
  const {
39
40
  t
@@ -90,6 +91,7 @@ const InsertElementDialog = _ref => {
90
91
  slateNode,
91
92
  insertFileLinkCallback,
92
93
  insertSdocFileLinkCallback,
94
+ insertWhiteboard,
93
95
  editor: paramEditor,
94
96
  linkTitle,
95
97
  // link shortcut wrapping link
@@ -103,6 +105,7 @@ const InsertElementDialog = _ref => {
103
105
  insertSdocFileLinkCallback,
104
106
  insertFileLinkCallback
105
107
  });
108
+ setInsertWhiteboardFile(insertWhiteboard);
106
109
  setLinkTitle(linkTitle);
107
110
  setHandleSubmit(handleSubmit);
108
111
  // Apply for comment editor, as it has a different editor instance
@@ -124,6 +127,7 @@ const InsertElementDialog = _ref => {
124
127
  setElement('');
125
128
  setDialogType('');
126
129
  setInsertLinkCallback(null);
130
+ setInsertWhiteboardFile(null);
127
131
  setValidEditor(null);
128
132
  setLinkTitle('');
129
133
  }, []);
@@ -169,6 +173,16 @@ const InsertElementDialog = _ref => {
169
173
  };
170
174
  return /*#__PURE__*/_react.default.createElement(_index.default, fileLinkProps);
171
175
  }
176
+ case _constants2.ELEMENT_TYPE.WHITEBOARD:
177
+ {
178
+ const whiteboardProps = {
179
+ editor: validEditor,
180
+ dialogType,
181
+ insertWhiteboardFile,
182
+ closeDialog
183
+ };
184
+ return /*#__PURE__*/_react.default.createElement(_index.default, whiteboardProps);
185
+ }
172
186
  case _constants2.LOCAL_IMAGE:
173
187
  {
174
188
  return /*#__PURE__*/_react.default.createElement("input", {
@@ -21,9 +21,9 @@ const SelectSdocFileDialog = _ref => {
21
21
  editor,
22
22
  dialogType,
23
23
  closeDialog,
24
- insertLinkCallback
24
+ insertLinkCallback,
25
+ insertWhiteboardFile
25
26
  } = _ref;
26
- const modalTitle = dialogType === _constants.ELEMENT_TYPE.FILE_LINK ? 'Select_file' : 'Select_sdoc_document';
27
27
  const {
28
28
  t
29
29
  } = (0, _reactI18next.useTranslation)();
@@ -31,6 +31,20 @@ const SelectSdocFileDialog = _ref => {
31
31
  const [temSearchContent, setTemSearchContent] = (0, _react.useState)('');
32
32
  const [searchContent, setSearchContent] = (0, _react.useState)('');
33
33
  const [isOpenSearch, setIsOpenSearch] = (0, _react.useState)(false);
34
+ let modalTitle;
35
+ switch (dialogType) {
36
+ case _constants.ELEMENT_TYPE.FILE_LINK:
37
+ modalTitle = 'Select_file';
38
+ break;
39
+ case _constants.ELEMENT_TYPE.SDOC_LINK:
40
+ modalTitle = 'Select_sdoc_document';
41
+ break;
42
+ case _constants.ELEMENT_TYPE.WHITEBOARD:
43
+ modalTitle = 'Select_whiteboard_document';
44
+ break;
45
+ default:
46
+ break;
47
+ }
34
48
  const onSelectedFile = (0, _react.useCallback)(fileInfo => {
35
49
  setCurrentSelectedFile(fileInfo);
36
50
  }, []);
@@ -44,7 +58,20 @@ const SelectSdocFileDialog = _ref => {
44
58
  } else {
45
59
  insertSdocFileLinkCallback && insertSdocFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
46
60
  }
47
- }, [insertLinkCallback, dialogType, editor]);
61
+ switch (dialogType) {
62
+ case _constants.ELEMENT_TYPE.FILE_LINK:
63
+ insertFileLinkCallback && insertFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
64
+ break;
65
+ case _constants.ELEMENT_TYPE.SDOC_LINK:
66
+ insertSdocFileLinkCallback && insertSdocFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
67
+ break;
68
+ case _constants.ELEMENT_TYPE.WHITEBOARD:
69
+ insertWhiteboardFile && insertWhiteboardFile(editor, fileInfo.name, fileInfo.file_uuid);
70
+ break;
71
+ default:
72
+ break;
73
+ }
74
+ }, [insertLinkCallback, insertWhiteboardFile, dialogType, editor]);
48
75
  const onSubmit = (0, _react.useCallback)(() => {
49
76
  if (!currentSelectedFile) return;
50
77
  const {
@@ -538,7 +538,8 @@ const LIST_ITEM_SUPPORTED_TRANSFORMATION = exports.LIST_ITEM_SUPPORTED_TRANSFORM
538
538
  const ADD_POSITION_OFFSET_TYPE = exports.ADD_POSITION_OFFSET_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.IMAGE_BLOCK];
539
539
  const FILE_TYPE = exports.FILE_TYPE = {
540
540
  [_elementType.FILE_LINK]: 'file',
541
- [_elementType.SDOC_LINK]: 'sdoc'
541
+ [_elementType.SDOC_LINK]: 'sdoc',
542
+ [_elementType.WHITEBOARD]: 'draw'
542
543
  };
543
544
  const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.WHITEBOARD, _elementType.SEATABLE_TABLE, _elementType.MULTI_COLUMN];
544
545
  const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP = {
@@ -0,0 +1,5 @@
1
+ .sdoc-whiteboard-container {
2
+ width: 670px;
3
+ height: auto;
4
+ border: 1px solid #ccc;
5
+ }
@@ -9,8 +9,7 @@ var _constants = require("../../constants");
9
9
  var _plugin = _interopRequireDefault(require("./plugin"));
10
10
  var _menu = _interopRequireDefault(require("./menu"));
11
11
  var _renderElem = require("./render-elem");
12
- // import './index.css';
13
-
12
+ require("./index.css");
14
13
  const WhiteboardPlugin = {
15
14
  type: _constants.WHITEBOARD,
16
15
  nodeType: 'element',
@@ -12,10 +12,13 @@ var _reactstrap = require("reactstrap");
12
12
  var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
13
13
  var _helpers = require("../helpers");
14
14
  var _constants = require("../../../constants");
15
+ var _constants2 = require("../../../../constants");
15
16
  const WhiteboardMenu = _ref => {
16
17
  let {
17
18
  editor,
18
- readonly
19
+ readonly,
20
+ eventBus,
21
+ toggle
19
22
  } = _ref;
20
23
  const disabled = (0, _helpers.isInsertWhiteboardMenuDisabled)(editor, readonly);
21
24
  const menuConfig = _constants.MENUS_CONFIG_MAP[_constants.WHITEBOARD];
@@ -25,6 +28,15 @@ const WhiteboardMenu = _ref => {
25
28
  const onCreateFile = () => {
26
29
  (0, _helpers.onCreateWhiteboardFile)(editor);
27
30
  };
31
+ const openSelectSdocFileDialog = (0, _react.useCallback)(() => {
32
+ eventBus.dispatch(_constants2.INTERNAL_EVENT.INSERT_ELEMENT, {
33
+ type: _constants.ELEMENT_TYPE.WHITEBOARD,
34
+ insertWhiteboard: _helpers.insertWhiteboard
35
+ });
36
+ toggle && toggle();
37
+
38
+ // eslint-disable-next-line react-hooks/exhaustive-deps
39
+ }, [toggle, eventBus]);
28
40
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
29
41
  disabled: disabled,
30
42
  menuConfig: menuConfig,
@@ -41,7 +53,8 @@ const WhiteboardMenu = _ref => {
41
53
  }, /*#__PURE__*/_react.default.createElement("div", {
42
54
  className: "sdoc-insert-whiteboard-menu-popover-container sdoc-dropdown-menu-container"
43
55
  }, /*#__PURE__*/_react.default.createElement("div", {
44
- className: "sdoc-dropdown-menu-item"
56
+ className: "sdoc-dropdown-menu-item",
57
+ onClick: openSelectSdocFileDialog
45
58
  }, t('Upload_local_whiteboard')), /*#__PURE__*/_react.default.createElement("div", {
46
59
  className: "sdoc-dropdown-menu-item",
47
60
  onClick: onCreateFile
@@ -1,16 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.renderWhiteboard = renderWhiteboard;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
11
+ var _constants = require("../../../../constants");
12
+ require("./index.css");
9
13
  const Whiteboard = _ref => {
10
14
  let {
11
15
  editor
12
16
  } = _ref;
13
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
17
+ // const whiteboardContainer = document.getElementById('sdoc-whiteboard-container');
18
+ const [tldraw, setTldraw] = (0, _react.useState)(null);
19
+ const renderWhiteboardEditor = Tldraw => {
20
+ console.log(4, Tldraw);
21
+ setTldraw( /*#__PURE__*/_react.default.createElement(Tldraw, null));
22
+ };
23
+ (0, _react.useEffect)(() => {
24
+ const eventBus = _eventBus.default.getInstance();
25
+ const unsubscribeWhiteboardEditor = eventBus.subscribe(_constants.EXTERNAL_EVENT.TLDRAW_EDITOR, renderWhiteboardEditor);
26
+ console.log(3, renderWhiteboardEditor);
27
+ return () => {
28
+ unsubscribeWhiteboardEditor();
29
+ };
30
+ }, []);
31
+ return /*#__PURE__*/_react.default.createElement("div", {
32
+ id: "sdoc-whiteboard-container"
33
+ }, tldraw);
14
34
  };
15
35
  function renderWhiteboard(props, editor) {
16
36
  return /*#__PURE__*/_react.default.createElement(Whiteboard, Object.assign({}, props, {
@@ -19,10 +19,10 @@ var _menu5 = _interopRequireDefault(require("../../../plugins/sdoc-link/menu"));
19
19
  var _menu6 = _interopRequireDefault(require("../../../plugins/file-link/menu"));
20
20
  var _menu7 = _interopRequireDefault(require("../../../plugins/seatable-column/menu"));
21
21
  var _menu8 = _interopRequireDefault(require("../../../plugins/seatable-tables/menu"));
22
+ var _menu9 = _interopRequireDefault(require("../../../plugins/whiteboard/menu"));
22
23
  var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
23
24
  var _constants = require("../../../../constants");
24
25
  require("./index.css");
25
- var _menu9 = _interopRequireDefault(require("../../../plugins/whiteboard/menu"));
26
26
  const InsertToolbar = _ref => {
27
27
  let {
28
28
  isRichEditor,
@@ -37,6 +37,7 @@ const EXTERNAL_EVENT = exports.EXTERNAL_EVENT = {
37
37
  CREATE_SDOC_FILE: 'create_sdoc_file',
38
38
  CREATE_WIKI_PAGE: 'create_wiki_page',
39
39
  CREATE_WHITEBOARD_FILE: 'create_whiteboard_file',
40
+ TLDRAW_EDITOR: 'tldraw_editor',
40
41
  // wiki
41
42
  INSERT_LINK: 'insert_link',
42
43
  // document
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "1.0.195-test0.0.1",
3
+ "version": "1.0.195-test0.0.3",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",