@seafile/sdoc-editor 2.0.202 → 3.0.0

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.
@@ -159,7 +159,6 @@
159
159
 
160
160
  .sdoc-toggle-view .sdoc-tree-view,
161
161
  .sdoc-toggle-view .sdoc-list-view {
162
- color: #666666;
163
162
  min-width: 66px;
164
163
  width: fit-content;
165
164
  border-radius: 2px;
@@ -33,12 +33,6 @@
33
33
  flex: 1 1;
34
34
  margin-left: .25rem;
35
35
  overflow: hidden;
36
- white-space: nowrap;
37
- text-overflow: ellipsis;
38
- }
39
-
40
- .sdoc-file-wrapper:has(.sdoc-file-checked) .sdoc-item-content {
41
- padding-right: 32px;
42
36
  }
43
37
 
44
38
  .sdoc-item-name {
@@ -76,13 +76,6 @@
76
76
 
77
77
  .sdoc-files-tree .sdoc-file-info .sdoc-file-name {
78
78
  font-size: 14px;
79
- white-space: nowrap;
80
- overflow: hidden;
81
- text-overflow: ellipsis;
82
- }
83
-
84
- .sdoc-files-tree .sdoc-file-info:has(.sdoc-file-checked) .sdoc-file-name {
85
- padding-right: 32px;
86
79
  }
87
80
 
88
81
  .sdoc-files-tree .sdoc-folder-children {
@@ -293,7 +293,7 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
293
293
  type: _elementType.IMAGE,
294
294
  text: 'Image'
295
295
  }), _elementType.VIDEO, {
296
- id: '',
296
+ id: 'sdoc-side-menu-item-video',
297
297
  iconClass: 'sdocfont sdoc-video',
298
298
  type: _elementType.VIDEO,
299
299
  text: 'Video'
@@ -173,7 +173,7 @@ var AddLinkDialog = function AddLinkDialog(_ref) {
173
173
  return function () {
174
174
  return clearTimeout(timer);
175
175
  };
176
- }, [linked_id]);
176
+ }, []);
177
177
  (0, _react.useEffect)(function () {
178
178
  var genHtml = /*#__PURE__*/function () {
179
179
  var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee() {
@@ -252,7 +252,7 @@ var parseHtmlString = exports.parseHtmlString = function parseHtmlString(htmlStr
252
252
  var parser = new DOMParser();
253
253
  var doc = parser.parseFromString(htmlString, 'text/html');
254
254
  var resultHtml;
255
- if (targetType === 'img') {
255
+ if (targetType == 'img') {
256
256
  resultHtml = (0, _toConsumableArray2["default"])(doc.querySelectorAll('p:has(img)')).map(function (p) {
257
257
  return p.outerHTML;
258
258
  }).join('');
@@ -264,7 +264,6 @@ var parseHtmlString = exports.parseHtmlString = function parseHtmlString(htmlStr
264
264
  return resultHtml;
265
265
  };
266
266
  var isEmptyNode = exports.isEmptyNode = function isEmptyNode(node) {
267
- if (node.type === _constants.IMAGE_BLOCK) return false;
268
267
  var text = _slate.Node.string(node);
269
268
  return text.trim() === '';
270
269
  };
@@ -125,7 +125,6 @@ var insertVideo = exports.insertVideo = function insertVideo(editor, videoFiles,
125
125
  _slate.Transforms.insertNodes(editor, p, {
126
126
  at: [path[0] + 1]
127
127
  });
128
- (0, _core.focusEditor)(editor, [path[0] + 1, 2]);
129
128
  return;
130
129
  }
131
130
  var aboveNodeEntry = (0, _core.getAboveBlockNode)(editor);
@@ -58,7 +58,7 @@ var VideoMenu = function VideoMenu(_ref) {
58
58
  hideArrow: true,
59
59
  fade: false
60
60
  }, /*#__PURE__*/_react["default"].createElement("div", {
61
- className: "sdoc-insert-video-menu-popover-container sdoc-dropdown-menu-container 333"
61
+ className: "sdoc-insert-video-menu-popover-container sdoc-dropdown-menu-container"
62
62
  }, /*#__PURE__*/_react["default"].createElement("div", {
63
63
  className: "sdoc-dropdown-menu-item",
64
64
  onClick: openLocalVideoDialog
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
+ var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _reactI18next = require("react-i18next");
@@ -27,8 +27,9 @@ var _transforms = require("../../plugins/list/transforms");
27
27
  var _helper2 = require("../../plugins/multi-column/helper");
28
28
  var _helpers3 = require("../../plugins/table/helpers");
29
29
  var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
30
+ var _helpers4 = require("../../plugins/video/helpers");
30
31
  var _utils = require("../../utils");
31
- var _helpers4 = require("../side-toolbar/helpers");
32
+ var _helpers5 = require("../side-toolbar/helpers");
32
33
  var _const = require("./const");
33
34
  require("./style.css");
34
35
  var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
@@ -73,11 +74,28 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
73
74
  }
74
75
  eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
75
76
  type: _constants2.LOCAL_VIDEO,
76
- insertPosition: insertPosition,
77
- slateNode: slateNode
77
+ editor: editor
78
78
  });
79
79
  // eslint-disable-next-line react-hooks/exhaustive-deps
80
80
  }, [editor, insertPosition]);
81
+ var addVideoLink = (0, _react.useCallback)(function () {
82
+ callback && callback();
83
+ var eventBus = _eventBus["default"].getInstance();
84
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
85
+ type: _constants2.ELEMENT_TYPE.VIDEO_LINK,
86
+ editor: editor
87
+ });
88
+ // eslint-disable-next-line react-hooks/exhaustive-deps
89
+ }, [editor]);
90
+ var openSelectVideoFileDialog = (0, _react.useCallback)(function () {
91
+ callback && callback();
92
+ var eventBus = _eventBus["default"].getInstance();
93
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
94
+ type: _constants2.ELEMENT_TYPE.VIDEO,
95
+ insertVideo: _helpers4.insertVideo
96
+ });
97
+ // eslint-disable-next-line react-hooks/exhaustive-deps
98
+ }, []);
81
99
  var createTable = (0, _react.useCallback)(function (size) {
82
100
  callback && callback();
83
101
  var newInsertPosition = slateNode.type === _constants2.ELEMENT_TYPE.LIST_ITEM ? _constants2.INSERT_POSITION.AFTER : insertPosition;
@@ -112,7 +130,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
112
130
  }, [editor, insertPosition, slateNode]);
113
131
  var onInsert = (0, _react.useCallback)(function (type) {
114
132
  callback && callback();
115
- (0, _helpers4.insertElement)(editor, type, insertPosition);
133
+ (0, _helpers5.insertElement)(editor, type, insertPosition);
116
134
  // eslint-disable-next-line react-hooks/exhaustive-deps
117
135
  }, [editor, insertPosition, slateNode]);
118
136
  var onInsertCallout = (0, _react.useCallback)(function (type) {
@@ -125,7 +143,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
125
143
  }
126
144
  });
127
145
  } else if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
128
- (0, _helpers4.insertElement)(editor, type, insertPosition);
146
+ (0, _helpers5.insertElement)(editor, type, insertPosition);
129
147
  (0, _helper.wrapCallout)(editor);
130
148
  }
131
149
  }, [callback, editor, insertPosition]);
@@ -185,26 +203,49 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
185
203
  (0, _helper2.insertMultiColumn)(editor, editor.selection, newInsertPosition, type);
186
204
  }, [callback, editor, insertPosition, slateNode]);
187
205
  var dropDownItems = (0, _react.useMemo)(function () {
188
- var items = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.IMAGE, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
206
+ var items = (0, _objectSpread4["default"])((0, _objectSpread4["default"])((0, _defineProperty2["default"])({}, _constants2.IMAGE, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
189
207
  isHidden: !quickInsertMenuSearchMap[_constants2.IMAGE],
190
208
  disabled: isDisableImage,
191
209
  key: "sdoc-insert-menu-image",
192
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.IMAGE]),
210
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.IMAGE]),
193
211
  onClick: onInsertImageToggle
194
- })), _constants2.VIDEO, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
212
+ })), editor.editorType !== _constants.DOCUMENT_PLUGIN_EDITOR && (0, _defineProperty2["default"])({}, _constants2.VIDEO,
213
+ /*#__PURE__*/
214
+ // eslint-disable-next-line react/jsx-indent
215
+ _react["default"].createElement(_dropdownMenuItem["default"], {
195
216
  isHidden: !quickInsertMenuSearchMap[_constants2.VIDEO],
196
217
  disabled: isDisableVideo,
197
218
  key: "sdoc-insert-menu-video",
198
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.VIDEO]),
219
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.VIDEO]),
220
+ className: "pr-2"
221
+ }, /*#__PURE__*/_react["default"].createElement("i", {
222
+ className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon"
223
+ }), /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledPopover, {
224
+ target: "sdoc-side-menu-item-video",
225
+ trigger: "hover",
226
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-video-menu-popover",
227
+ placement: "left-start",
228
+ hideArrow: true,
229
+ fade: false
230
+ }, /*#__PURE__*/_react["default"].createElement("div", {
231
+ className: "sdoc-insert-video-menu-popover-container sdoc-dropdown-menu-container"
232
+ }, /*#__PURE__*/_react["default"].createElement("div", {
233
+ className: "sdoc-dropdown-menu-item",
199
234
  onClick: onInsertVideoToggle
200
- })), _constants2.TABLE,
235
+ }, t('Upload_local_video')), /*#__PURE__*/_react["default"].createElement("div", {
236
+ className: "sdoc-dropdown-menu-item",
237
+ onClick: addVideoLink
238
+ }, t('Add_video_link')), editor.editorType !== _constants.WIKI_EDITOR && /*#__PURE__*/_react["default"].createElement("div", {
239
+ className: "sdoc-dropdown-menu-item",
240
+ onClick: openSelectVideoFileDialog
241
+ }, t('Link_video_file'))))))), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.TABLE,
201
242
  /*#__PURE__*/
202
243
  // eslint-disable-next-line react/jsx-indent
203
244
  _react["default"].createElement(_dropdownMenuItem["default"], {
204
245
  isHidden: !quickInsertMenuSearchMap[_constants2.TABLE],
205
246
  disabled: isDisableTable,
206
247
  key: "sdoc-insert-menu-table",
207
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TABLE]),
248
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TABLE]),
208
249
  className: "pr-2"
209
250
  }, /*#__PURE__*/_react["default"].createElement("i", {
210
251
  className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon"
@@ -221,75 +262,75 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
221
262
  }))), _constants2.LINK, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
222
263
  isHidden: !quickInsertMenuSearchMap[_constants2.LINK],
223
264
  key: "sdoc-insert-menu-link",
224
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.LINK]),
265
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.LINK]),
225
266
  onClick: openLinkDialog
226
267
  })), _constants2.CODE_BLOCK, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
227
268
  isHidden: !quickInsertMenuSearchMap[_constants2.CODE_BLOCK],
228
269
  disabled: isDisableCodeBlock,
229
270
  key: "sdoc-insert-menu-code-block",
230
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CODE_BLOCK]),
271
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CODE_BLOCK]),
231
272
  onClick: onInsertCodeBlock
232
273
  })), _constants2.CALL_OUT, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
233
274
  isHidden: !quickInsertMenuSearchMap[_constants2.CALL_OUT],
234
275
  disabled: isDisableCallout,
235
276
  key: "sdoc-insert-menu-callout",
236
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CALL_OUT]),
277
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CALL_OUT]),
237
278
  onClick: function onClick() {
238
279
  return onInsertCallout(_constants2.PARAGRAPH);
239
280
  }
240
281
  })), _constants2.UNORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
241
282
  isHidden: !quickInsertMenuSearchMap[_constants2.UNORDERED_LIST],
242
283
  key: "sdoc-insert-menu-unorder-list",
243
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.UNORDERED_LIST]),
284
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.UNORDERED_LIST]),
244
285
  onClick: function onClick() {
245
286
  onInsertList(_constants2.ELEMENT_TYPE.UNORDERED_LIST);
246
287
  }
247
288
  })), _constants2.ORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
248
289
  isHidden: !quickInsertMenuSearchMap[_constants2.ORDERED_LIST],
249
290
  key: "sdoc-insert-menu-order-list",
250
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.ORDERED_LIST]),
291
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.ORDERED_LIST]),
251
292
  onClick: function onClick() {
252
293
  onInsertList(_constants2.ELEMENT_TYPE.ORDERED_LIST);
253
294
  }
254
295
  })), _constants2.CHECK_LIST_ITEM, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
255
296
  isHidden: !quickInsertMenuSearchMap[_constants2.CHECK_LIST_ITEM],
256
297
  key: "sdoc-insert-menu-check-list",
257
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
298
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
258
299
  onClick: onInsertCheckList
259
300
  })), _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
260
301
  isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
261
302
  disabled: isEmptyNode,
262
303
  key: "sdoc-insert-menu-paragraph",
263
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]),
304
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]),
264
305
  onClick: function onClick() {
265
306
  return onInsert(_constants2.ELEMENT_TYPE.PARAGRAPH);
266
307
  }
267
- }));
308
+ })));
268
309
  if (_commonUtils.isMobile) {
269
310
  items = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.UNORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
270
311
  isHidden: !quickInsertMenuSearchMap[_constants2.UNORDERED_LIST],
271
312
  key: "sdoc-insert-menu-unorder-list",
272
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.UNORDERED_LIST]),
313
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.UNORDERED_LIST]),
273
314
  onClick: function onClick() {
274
315
  onInsertList(_constants2.ELEMENT_TYPE.UNORDERED_LIST);
275
316
  }
276
317
  })), _constants2.ORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
277
318
  isHidden: !quickInsertMenuSearchMap[_constants2.ORDERED_LIST],
278
319
  key: "sdoc-insert-menu-order-list",
279
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.ORDERED_LIST]),
320
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.ORDERED_LIST]),
280
321
  onClick: function onClick() {
281
322
  onInsertList(_constants2.ELEMENT_TYPE.ORDERED_LIST);
282
323
  }
283
324
  })), _constants2.CHECK_LIST_ITEM, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
284
325
  isHidden: !quickInsertMenuSearchMap[_constants2.CHECK_LIST_ITEM],
285
326
  key: "sdoc-insert-menu-check-list",
286
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
327
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
287
328
  onClick: onInsertCheckList
288
329
  })), _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
289
330
  isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
290
331
  disabled: isEmptyNode,
291
332
  key: "sdoc-insert-menu-paragraph",
292
- menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]),
333
+ menuConfig: (0, _objectSpread4["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]),
293
334
  onClick: function onClick() {
294
335
  return onInsert(_constants2.ELEMENT_TYPE.PARAGRAPH);
295
336
  }
@@ -417,7 +458,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
417
458
  }, [clearSelectStyle, currentSelectIndex, downDownWrapperRef, onHandleInputFocus]);
418
459
  var onChange = (0, _react.useCallback)(function (e) {
419
460
  if (!downDownWrapperRef.current.isInputtingChinese) {
420
- var newMenuSearchMap = (0, _helpers4.getSearchedOperations)(_constants2.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP, true, e, t, editor);
461
+ var newMenuSearchMap = (0, _helpers5.getSearchedOperations)(_constants2.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP, true, e, t, editor);
421
462
  setQuickInsertMenuSearchMap(newMenuSearchMap);
422
463
  }
423
464
  }, [editor, t]);
@@ -10,6 +10,7 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactI18next = require("react-i18next");
13
+ var _reactstrap = require("reactstrap");
13
14
  var _slate = require("@seafile/slate");
14
15
  var _slateReact = require("@seafile/slate-react");
15
16
  var _constants = require("../../../constants");
@@ -23,7 +24,8 @@ var _transforms = require("../../plugins/list/transforms");
23
24
  var _helper2 = require("../../plugins/multi-column/helper");
24
25
  var _helpers3 = require("../../plugins/table/helpers");
25
26
  var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
26
- var _helpers4 = require("./helpers");
27
+ var _helpers4 = require("../../plugins/video/helpers");
28
+ var _helpers5 = require("./helpers");
27
29
  var InsertBlockMenu = function InsertBlockMenu(_ref) {
28
30
  var _ref$insertPosition = _ref.insertPosition,
29
31
  insertPosition = _ref$insertPosition === void 0 ? _constants2.INSERT_POSITION.CURRENT : _ref$insertPosition,
@@ -48,17 +50,42 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
48
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
49
51
  }, [editor, insertPosition]);
50
52
  var onInsertVideoToggle = (0, _react.useCallback)(function () {
51
- var eventBus = _eventBus["default"].getInstance();
52
- if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
53
+ if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
53
54
  _slate.Transforms.select(editor, editor.selection.focus);
54
55
  }
56
+ var eventBus = _eventBus["default"].getInstance();
55
57
  eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
56
58
  type: _constants2.LOCAL_VIDEO,
59
+ editor: editor,
60
+ insertPosition: insertPosition
61
+ });
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, [editor, insertPosition]);
64
+ var addVideoLink = (0, _react.useCallback)(function () {
65
+ if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
66
+ (0, _helpers5.insertElement)(editor, _constants2.PARAGRAPH, insertPosition);
67
+ }
68
+ var eventBus = _eventBus["default"].getInstance();
69
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
70
+ type: _constants2.ELEMENT_TYPE.VIDEO_LINK,
71
+ editor: editor,
72
+ insertPosition: insertPosition
73
+ });
74
+ // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ }, [insertPosition, editor]);
76
+ var openSelectVideoFileDialog = (0, _react.useCallback)(function () {
77
+ if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
78
+ (0, _helpers5.insertElement)(editor, _constants2.PARAGRAPH, insertPosition);
79
+ }
80
+ var eventBus = _eventBus["default"].getInstance();
81
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
82
+ type: _constants2.ELEMENT_TYPE.VIDEO,
83
+ insertVideo: _helpers4.insertVideo,
57
84
  insertPosition: insertPosition,
58
85
  slateNode: slateNode
59
86
  });
60
87
  // eslint-disable-next-line react-hooks/exhaustive-deps
61
- }, [editor, insertPosition]);
88
+ }, [insertPosition, slateNode]);
62
89
  var createTable = (0, _react.useCallback)(function (size) {
63
90
  var newInsertPosition = slateNode.type === _constants2.ELEMENT_TYPE.LIST_ITEM ? _constants2.INSERT_POSITION.AFTER : insertPosition;
64
91
  (0, _helpers3.insertTable)(editor, size, editor.selection, newInsertPosition);
@@ -66,6 +93,9 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
66
93
  // eslint-disable-next-line react-hooks/exhaustive-deps
67
94
  }, [editor, insertPosition, slateNode]);
68
95
  var openLinkDialog = (0, _react.useCallback)(function () {
96
+ if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
97
+ _slate.Transforms.select(editor, editor.selection.focus);
98
+ }
69
99
  var eventBus = _eventBus["default"].getInstance();
70
100
  eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
71
101
  type: _constants2.ELEMENT_TYPE.LINK,
@@ -74,7 +104,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
74
104
  });
75
105
 
76
106
  // eslint-disable-next-line react-hooks/exhaustive-deps
77
- }, [insertPosition]);
107
+ }, [insertPosition, editor]);
78
108
 
79
109
  // const onInsertChart = useCallback(() => {
80
110
  // const newInsertPosition = slateNode.type === ELEMENT_TYPE.LIST_ITEM ? INSERT_POSITION.AFTER : insertPosition;
@@ -97,14 +127,14 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
97
127
  // eslint-disable-next-line react-hooks/exhaustive-deps
98
128
  }, [editor, insertPosition, slateNode]);
99
129
  var onInsert = (0, _react.useCallback)(function (type) {
100
- (0, _helpers4.insertElement)(editor, type, insertPosition);
130
+ (0, _helpers5.insertElement)(editor, type, insertPosition);
101
131
  // eslint-disable-next-line react-hooks/exhaustive-deps
102
132
  }, [editor, insertPosition, slateNode]);
103
133
  var onInsertCallout = (0, _react.useCallback)(function (type) {
104
134
  if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
105
135
  (0, _helper.wrapCallout)(editor);
106
136
  } else if (insertPosition === _constants2.INSERT_POSITION.AFTER) {
107
- (0, _helpers4.insertElement)(editor, type, insertPosition);
137
+ (0, _helpers5.insertElement)(editor, type, insertPosition);
108
138
  (0, _helper.wrapCallout)(editor);
109
139
  }
110
140
  }, [editor, insertPosition]);
@@ -144,10 +174,31 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
144
174
  onClick: onInsertImageToggle
145
175
  }), editor.editorType !== _constants.DOCUMENT_PLUGIN_EDITOR && /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
146
176
  isHidden: !insertMenuSearchMap[_constants2.ELEMENT_TYPE.VIDEO],
147
- disabled: (0, _helpers4.isInMultiColumnNode)(editor, slateNode),
177
+ key: "sdoc-insert-menu-video",
178
+ disabled: (0, _helpers5.isInMultiColumnNode)(editor, slateNode),
148
179
  menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.VIDEO]),
180
+ className: "pr-2"
181
+ }, /*#__PURE__*/_react["default"].createElement("i", {
182
+ className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon"
183
+ }), /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledPopover, {
184
+ target: "sdoc-side-menu-item-video",
185
+ trigger: "hover",
186
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-video-menu-popover",
187
+ placement: "right-start",
188
+ hideArrow: true,
189
+ fade: false
190
+ }, /*#__PURE__*/_react["default"].createElement("div", {
191
+ className: "sdoc-insert-video-menu-popover-container sdoc-dropdown-menu-container"
192
+ }, /*#__PURE__*/_react["default"].createElement("div", {
193
+ className: "sdoc-dropdown-menu-item",
149
194
  onClick: onInsertVideoToggle
150
- }), /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
195
+ }, t('Upload_local_video')), /*#__PURE__*/_react["default"].createElement("div", {
196
+ className: "sdoc-dropdown-menu-item",
197
+ onClick: addVideoLink
198
+ }, t('Add_video_link')), editor.editorType !== _constants.WIKI_EDITOR && /*#__PURE__*/_react["default"].createElement("div", {
199
+ className: "sdoc-dropdown-menu-item",
200
+ onClick: openSelectVideoFileDialog
201
+ }, t('Link_video_file'))))), /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
151
202
  isHidden: !insertMenuSearchMap[_constants2.ELEMENT_TYPE.TABLE],
152
203
  key: "sdoc-insert-menu-table",
153
204
  menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TABLE]),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.202",
3
+ "version": "3.0.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "a0f7311114597313bfe8367fc8725a8e1c2f8e89"
74
+ "gitHead": "bb8d81d4df2885fa2558ae327b02d9ebf12ae093"
75
75
  }