@seafile/sdoc-editor 1.0.206-test0.0.4 → 1.0.206-test0.0.6

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.
@@ -252,7 +252,7 @@ const FileLinkInsertDialog = _ref => {
252
252
  }
253
253
  }, /*#__PURE__*/_react.default.createElement("img", {
254
254
  className: "file-item-img",
255
- src: (0, _helpers2.sdocFileIcon)(),
255
+ src: (0, _helpers2.getSdocFileIcon)(),
256
256
  alt: ""
257
257
  }), /*#__PURE__*/_react.default.createElement("span", {
258
258
  className: "file-item-name"
@@ -32,6 +32,7 @@ const InsertElementDialog = _ref => {
32
32
  const [insertPosition, setInsertPosition] = (0, _react.useState)(_constants2.INSERT_POSITION.CURRENT);
33
33
  const [slateNode, setSlateNode] = (0, _react.useState)(null);
34
34
  const [insertLinkCallback, setInsertLinkCallback] = (0, _react.useState)(null);
35
+ const [insertVideoCallback, setInsertVideoCallback] = (0, _react.useState)(null);
35
36
  const [validEditor, setValidEditor] = (0, _react.useState)(editor);
36
37
  const [linkTitle, setLinkTitle] = (0, _react.useState)('');
37
38
  const [handleSubmit, setHandleSubmit] = (0, _react.useState)(() => void 0);
@@ -90,6 +91,7 @@ const InsertElementDialog = _ref => {
90
91
  slateNode,
91
92
  insertFileLinkCallback,
92
93
  insertSdocFileLinkCallback,
94
+ insertVideo,
93
95
  editor: paramEditor,
94
96
  linkTitle,
95
97
  // link shortcut wrapping link
@@ -103,6 +105,9 @@ const InsertElementDialog = _ref => {
103
105
  insertSdocFileLinkCallback,
104
106
  insertFileLinkCallback
105
107
  });
108
+ setInsertVideoCallback({
109
+ insertVideo
110
+ });
106
111
  setLinkTitle(linkTitle);
107
112
  setHandleSubmit(handleSubmit);
108
113
  // Apply for comment editor, as it has a different editor instance
@@ -124,6 +129,7 @@ const InsertElementDialog = _ref => {
124
129
  setElement('');
125
130
  setDialogType('');
126
131
  setInsertLinkCallback(null);
132
+ setInsertVideoCallback(null);
127
133
  setValidEditor(null);
128
134
  setLinkTitle('');
129
135
  }, []);
@@ -169,6 +175,16 @@ const InsertElementDialog = _ref => {
169
175
  };
170
176
  return /*#__PURE__*/_react.default.createElement(_index.default, fileLinkProps);
171
177
  }
178
+ case _constants2.ELEMENT_TYPE.VIDEO:
179
+ {
180
+ const videoProps = {
181
+ editor: validEditor,
182
+ dialogType,
183
+ insertVideoCallback,
184
+ closeDialog
185
+ };
186
+ return /*#__PURE__*/_react.default.createElement(_index.default, videoProps);
187
+ }
172
188
  case _constants2.LOCAL_IMAGE:
173
189
  {
174
190
  return /*#__PURE__*/_react.default.createElement("input", {
@@ -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.sdocFileIcon = exports.addDataToTree = void 0;
7
+ exports.getVideoFileIcon = exports.getSdocFileIcon = exports.addDataToTree = void 0;
8
8
  var _context = _interopRequireDefault(require("../../../../context"));
9
9
  const addDataToTree = (treeData, indexId, childrenData, path) => {
10
10
  for (let i = 0; i < treeData.length; i++) {
@@ -24,8 +24,13 @@ const addDataToTree = (treeData, indexId, childrenData, path) => {
24
24
  return treeData;
25
25
  };
26
26
  exports.addDataToTree = addDataToTree;
27
- const sdocFileIcon = () => {
27
+ const getSdocFileIcon = () => {
28
28
  const server = _context.default.getSetting('serviceUrl');
29
29
  return `${server}/media/img/file/256/sdoc.png`;
30
30
  };
31
- exports.sdocFileIcon = sdocFileIcon;
31
+ exports.getSdocFileIcon = getSdocFileIcon;
32
+ const getVideoFileIcon = () => {
33
+ const server = _context.default.getSetting('serviceUrl');
34
+ return `${server}/media/img/file/256/video.png`;
35
+ };
36
+ exports.getVideoFileIcon = getVideoFileIcon;
@@ -21,9 +21,9 @@ const SelectSdocFileDialog = _ref => {
21
21
  editor,
22
22
  dialogType,
23
23
  closeDialog,
24
- insertLinkCallback
24
+ insertLinkCallback,
25
+ insertVideoCallback
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)('sdoc-editor');
@@ -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.VIDEO:
43
+ modalTitle = 'Select_video';
44
+ break;
45
+ default:
46
+ break;
47
+ }
34
48
  const onSelectedFile = (0, _react.useCallback)(fileInfo => {
35
49
  setCurrentSelectedFile(fileInfo);
36
50
  }, []);
@@ -38,13 +52,24 @@ const SelectSdocFileDialog = _ref => {
38
52
  const {
39
53
  insertFileLinkCallback,
40
54
  insertSdocFileLinkCallback
41
- } = insertLinkCallback;
42
- if (dialogType === _constants.ELEMENT_TYPE.FILE_LINK) {
43
- insertFileLinkCallback && insertFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
44
- } else {
45
- insertSdocFileLinkCallback && insertSdocFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
55
+ } = insertLinkCallback || {};
56
+ const {
57
+ insertVideo
58
+ } = insertVideoCallback || {};
59
+ switch (dialogType) {
60
+ case _constants.ELEMENT_TYPE.FILE_LINK:
61
+ insertFileLinkCallback && insertFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
62
+ break;
63
+ case _constants.ELEMENT_TYPE.SDOC_LINK:
64
+ insertSdocFileLinkCallback && insertSdocFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
65
+ break;
66
+ case _constants.ELEMENT_TYPE.VIDEO:
67
+ // insertVideo && insertVideo(editor, fileInfo.name, fileInfo.path);
68
+ break;
69
+ default:
70
+ break;
46
71
  }
47
- }, [insertLinkCallback, dialogType, editor]);
72
+ }, [insertLinkCallback, insertVideoCallback, dialogType, editor]);
48
73
  const onSubmit = (0, _react.useCallback)(() => {
49
74
  if (!currentSelectedFile) return;
50
75
  const {
@@ -53,6 +78,15 @@ const SelectSdocFileDialog = _ref => {
53
78
  let fileInfo = {
54
79
  ...currentSelectedFile
55
80
  };
81
+
82
+ // Insert video element in sdoc
83
+ if (dialogType === _constants.ELEMENT_TYPE.VIDEO) {
84
+ console.log(1, fileInfo);
85
+ insertFile(fileInfo);
86
+ closeDialog();
87
+ return;
88
+ }
89
+
56
90
  // File has no id
57
91
  if (!file_uuid || file_uuid === '') {
58
92
  _context.default.getSdocLocalFileId(currentSelectedFile.path).then(res => {
@@ -36,6 +36,7 @@
36
36
  left: 0;
37
37
  }
38
38
 
39
+ .sdoc-file-icon-container .video-file-img,
39
40
  .sdoc-file-icon-container .sdoc-file-img {
40
41
  position: absolute;
41
42
  width: 21.6px;
@@ -155,7 +155,7 @@ const LocalFiles = _ref => {
155
155
  className: "sdoc-folder-children"
156
156
  }, ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) === 0 && /*#__PURE__*/_react.default.createElement("div", {
157
157
  className: "sdoc-folder-children-empty"
158
- }, `(${t('Empty')})`), ((_item$children2 = item.children) === null || _item$children2 === void 0 ? void 0 : _item$children2.length) > 0 && renderFileTree(item.children))), type === 'file' && /*#__PURE__*/_react.default.createElement("div", {
158
+ }, `(${t('Empty')})`), ((_item$children2 = item.children) === null || _item$children2 === void 0 ? void 0 : _item$children2.length) > 0 && renderFileTree(item.children))), ['file', 'video'].includes(type) && /*#__PURE__*/_react.default.createElement("div", {
159
159
  className: (0, _classnames.default)('sdoc-file-info', {
160
160
  'active': selected
161
161
  }),
@@ -170,7 +170,11 @@ const LocalFiles = _ref => {
170
170
  })
171
171
  }), fileType === 'sdoc' && /*#__PURE__*/_react.default.createElement("img", {
172
172
  className: "sdoc-file-img",
173
- src: (0, _helpers.sdocFileIcon)(),
173
+ src: (0, _helpers.getSdocFileIcon)(),
174
+ alt: ""
175
+ }), fileType === 'video' && /*#__PURE__*/_react.default.createElement("img", {
176
+ className: "video-file-img",
177
+ src: (0, _helpers.getVideoFileIcon)(),
174
178
  alt: ""
175
179
  })), /*#__PURE__*/_react.default.createElement("span", {
176
180
  className: "sdoc-file-name"
@@ -532,7 +532,8 @@ const LIST_ITEM_SUPPORTED_TRANSFORMATION = exports.LIST_ITEM_SUPPORTED_TRANSFORM
532
532
  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];
533
533
  const FILE_TYPE = exports.FILE_TYPE = {
534
534
  [_elementType.FILE_LINK]: 'file',
535
- [_elementType.SDOC_LINK]: 'sdoc'
535
+ [_elementType.SDOC_LINK]: 'sdoc',
536
+ [_elementType.VIDEO]: 'video'
536
537
  };
537
538
  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.SEATABLE_TABLE, _elementType.MULTI_COLUMN];
538
539
  const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP = {
@@ -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.unwrapLinkNode = exports.sdocFileIcon = exports.removeTempInput = exports.removeShortCutSymbol = exports.onCopySdocLinkNode = exports.isTriggeredByShortcut = exports.isMenuDisabled = exports.insertTextWhenRemoveFileNameCollector = exports.insertTempInput = exports.insertSdocFileLink = exports.getUrl = exports.getType = exports.getSdocLinkEntry = exports.getNewFileListData = exports.getFileSearchInputEntry = exports.getBeforeText = exports.generateSdocFileNode = void 0;
7
+ exports.unwrapLinkNode = exports.removeTempInput = exports.removeShortCutSymbol = exports.onCopySdocLinkNode = exports.isTriggeredByShortcut = exports.isMenuDisabled = exports.insertTextWhenRemoveFileNameCollector = exports.insertTempInput = exports.insertSdocFileLink = exports.getUrl = exports.getType = exports.getSdocLinkEntry = exports.getSdocFileIcon = exports.getNewFileListData = exports.getFileSearchInputEntry = exports.getBeforeText = exports.generateSdocFileNode = void 0;
8
8
  var _slateReact = require("@seafile/slate-react");
9
9
  var _slate = require("@seafile/slate");
10
10
  var _slugid = _interopRequireDefault(require("slugid"));
@@ -274,11 +274,11 @@ const insertTextWhenRemoveFileNameCollector = (editor, searchInputNode) => {
274
274
  removeTempInput(editor, searchInputNode);
275
275
  };
276
276
  exports.insertTextWhenRemoveFileNameCollector = insertTextWhenRemoveFileNameCollector;
277
- const sdocFileIcon = () => {
277
+ const getSdocFileIcon = () => {
278
278
  const server = _context.default.getSetting('serviceUrl');
279
279
  return `${server}/media/img/file/256/sdoc.png`;
280
280
  };
281
- exports.sdocFileIcon = sdocFileIcon;
281
+ exports.getSdocFileIcon = getSdocFileIcon;
282
282
  const getSdocLinkEntry = function (editor) {
283
283
  let at = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : editor.selection;
284
284
  const aboveNodeEntry = _slate.Editor.above(editor, {
@@ -147,7 +147,7 @@ const SdocFileLink = _ref => {
147
147
  style: style
148
148
  }, element.type !== _elementType.WIKI_LINK && /*#__PURE__*/_react.default.createElement("img", {
149
149
  className: "file-link-img",
150
- src: (0, _helpers.sdocFileIcon)(),
150
+ src: (0, _helpers.getSdocFileIcon)(),
151
151
  alt: ""
152
152
  }), element.type === _elementType.WIKI_LINK && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.createElement("span", null, icon), !icon && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isDir ? /*#__PURE__*/_react.default.createElement("span", {
153
153
  className: "sf3-font sf3-font-files2"
@@ -18,6 +18,7 @@ const VideoMenu = _ref => {
18
18
  let {
19
19
  editor,
20
20
  readonly,
21
+ toggle,
21
22
  eventBus
22
23
  } = _ref;
23
24
  const disabled = (0, _helpers.isInsertVideoMenuDisabled)(editor, readonly);
@@ -40,6 +41,14 @@ const VideoMenu = _ref => {
40
41
  ...external_props
41
42
  });
42
43
  }, [editor, eventBus]);
44
+ const openSelectVideoFileDialog = (0, _react.useCallback)(() => {
45
+ eventBus.dispatch(_constants2.INTERNAL_EVENT.INSERT_ELEMENT, {
46
+ type: _constants.ELEMENT_TYPE.VIDEO,
47
+ insertVideo: _helpers.insertVideo
48
+ });
49
+ toggle && toggle();
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, [toggle, eventBus]);
43
52
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
44
53
  disabled: disabled,
45
54
  menuConfig: menuConfig,
@@ -63,7 +72,7 @@ const VideoMenu = _ref => {
63
72
  onClick: addVideoLink
64
73
  }, t('Add_video_link')), /*#__PURE__*/_react.default.createElement("div", {
65
74
  className: "sdoc-dropdown-menu-item",
66
- onClick: openLocalVideoDialog
75
+ onClick: openSelectVideoFileDialog
67
76
  }, t('Link_to_Seafile_video_file')))));
68
77
  };
69
78
  var _default = exports.default = VideoMenu;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "1.0.206-test0.0.4",
3
+ "version": "1.0.206-test0.0.6",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",