@seafile/sdoc-editor 3.0.1 → 3.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 (33) hide show
  1. package/dist/api/seafile-api.js +20 -0
  2. package/dist/context.js +14 -0
  3. package/dist/editor/sdoc-editor.js +3 -0
  4. package/dist/editor/wiki-editor.js +4 -1
  5. package/dist/extension/commons/insert-element-dialog/index.js +26 -13
  6. package/dist/extension/constants/element-type.js +2 -1
  7. package/dist/extension/constants/font.js +1 -2
  8. package/dist/extension/constants/index.js +8 -0
  9. package/dist/extension/constants/menus-config.js +8 -3
  10. package/dist/extension/plugins/file-view/helpers.js +77 -0
  11. package/dist/extension/plugins/file-view/index.js +17 -0
  12. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +16 -0
  13. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +96 -0
  14. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +156 -0
  15. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/lib.png +0 -0
  16. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +49 -0
  17. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +53 -0
  18. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +37 -0
  19. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +241 -0
  20. package/dist/extension/plugins/file-view/insert-view-dialog/index.js +232 -0
  21. package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +41 -0
  22. package/dist/extension/plugins/file-view/plugin.js +71 -0
  23. package/dist/extension/plugins/file-view/render-elem/index.css +53 -0
  24. package/dist/extension/plugins/file-view/render-elem/index.js +103 -0
  25. package/dist/extension/plugins/html/plugin.js +2 -3
  26. package/dist/extension/plugins/image/use-copy-image.js +2 -2
  27. package/dist/extension/plugins/index.js +9 -2
  28. package/dist/extension/plugins/quick-insert/render-elem.js +1 -0
  29. package/dist/extension/render/custom-element.js +6 -0
  30. package/dist/extension/toolbar/insert-element-toolbar/index.js +16 -1
  31. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +16 -2
  32. package/dist/node-id/index.js +3 -0
  33. package/package.json +2 -2
@@ -311,6 +311,26 @@ var SeafileAPI = /*#__PURE__*/function () {
311
311
  var url = '/api/v2.1/seadoc/search-metadata-records/' + docUuid + '/?search_type=' + fileType;
312
312
  return this.req.get(url);
313
313
  }
314
+ }, {
315
+ key: "insertWikiView",
316
+ value: function insertWikiView(wikiId, docUuid, data) {
317
+ var url = "/api/v2.1/wiki2/".concat(wikiId, "/views/");
318
+ var form = new FormData();
319
+ form.append('file_uuid', docUuid);
320
+ form.append('name', data.view_name);
321
+ form.append('type', data.view_type);
322
+ form.append('link_repo_id', data.link_repo_id);
323
+ return this.req.post(url, form);
324
+ }
325
+ }, {
326
+ key: "duplicateWikiView",
327
+ value: function duplicateWikiView(wikiId, docUuid, viewId) {
328
+ var url = "/api/v2.1/wiki2/".concat(wikiId, "/duplicate-view/");
329
+ var form = new FormData();
330
+ form.append('file_uuid', docUuid);
331
+ form.append('view_id', viewId);
332
+ return this.req.post(url, form);
333
+ }
314
334
  }]);
315
335
  }();
316
336
  var _default = exports["default"] = SeafileAPI;
package/dist/context.js CHANGED
@@ -390,6 +390,20 @@ var Context = /*#__PURE__*/function () {
390
390
  var docUuid = this.getDocUuid();
391
391
  return this.api.getFileMetadataInfo(docUuid, fileType);
392
392
  }
393
+ }, {
394
+ key: "insertWikiView",
395
+ value: function insertWikiView(data) {
396
+ var wikiId = this.getSetting('wikiId');
397
+ var docUuid = this.getSetting('docUuid');
398
+ return this.api.insertWikiView(wikiId, docUuid, data);
399
+ }
400
+ }, {
401
+ key: "duplicateWikiView",
402
+ value: function duplicateWikiView(viewId) {
403
+ var wikiId = this.getSetting('wikiId');
404
+ var docUuid = this.getSetting('docUuid');
405
+ return this.api.duplicateWikiView(wikiId, docUuid, viewId);
406
+ }
393
407
  }]);
394
408
  }();
395
409
  var context = new Context();
@@ -21,6 +21,7 @@ var _constants = require("../constants");
21
21
  var _context = _interopRequireDefault(require("../context"));
22
22
  var _extension = require("../extension");
23
23
  var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
24
+ var _constants2 = require("../extension/constants");
24
25
  var _core = require("../extension/core");
25
26
  var _helpers = require("../extension/plugins/ai/ai-module/helpers");
26
27
  var _useColorContext = require("../hooks/use-color-context");
@@ -29,6 +30,7 @@ var _nodeId = _interopRequireDefault(require("../node-id"));
29
30
  var _socket = require("../socket");
30
31
  var _commonUtils = require("../utils/common-utils");
31
32
  var _eventBus = _interopRequireDefault(require("../utils/event-bus"));
33
+ var _localStorageUtils = _interopRequireDefault(require("../utils/local-storage-utils"));
32
34
  var _readonlyArticle = _interopRequireDefault(require("../views/readonly-article"));
33
35
  var _editableArticle = _interopRequireDefault(require("./editable-article"));
34
36
  var SdocEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -77,6 +79,7 @@ var SdocEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
77
79
  validEditor.readonly = false;
78
80
  return function () {
79
81
  validEditor.selection = null;
82
+ _localStorageUtils["default"].removeItem(_constants2.RECENT_COPY_CONTENT);
80
83
  };
81
84
 
82
85
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -18,6 +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 _constants2 = require("../extension/constants");
21
22
  var _helpers = require("../extension/plugins/ai/ai-module/helpers");
22
23
  var _useColorContext = require("../hooks/use-color-context");
23
24
  var _useScrollContext = require("../hooks/use-scroll-context");
@@ -27,6 +28,7 @@ var _wikiOutline = _interopRequireDefault(require("../outline/wiki-outline"));
27
28
  var _socket = require("../socket");
28
29
  var _commonUtils = require("../utils/common-utils");
29
30
  var _eventBus = _interopRequireDefault(require("../utils/event-bus"));
31
+ var _localStorageUtils = _interopRequireDefault(require("../utils/local-storage-utils"));
30
32
  var _readonlyArticle = _interopRequireDefault(require("../views/readonly-article"));
31
33
  var _editableArticle = _interopRequireDefault(require("./editable-article"));
32
34
  var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -66,10 +68,11 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
66
68
  validEditor.readonly = false;
67
69
  return function () {
68
70
  validEditor.selection = null;
71
+ _localStorageUtils["default"].removeItem(_constants2.RECENT_COPY_CONTENT);
69
72
  };
70
-
71
73
  // eslint-disable-next-line react-hooks/exhaustive-deps
72
74
  }, []);
75
+
73
76
  // useMount: init socket connection
74
77
  (0, _react.useEffect)(function () {
75
78
  if (propsEditor) return;
@@ -15,15 +15,16 @@ var _context = _interopRequireDefault(require("../../../context"));
15
15
  var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
16
16
  var _constants2 = require("../../constants");
17
17
  var _index = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
18
+ var _index2 = _interopRequireDefault(require("../../plugins/file-view/insert-view-dialog/index.js"));
18
19
  var _helpers = require("../../plugins/image/helpers");
19
20
  var _addLinkDialog = _interopRequireDefault(require("../../plugins/link/dialog/add-link-dialog"));
20
21
  var _dialogs = require("../../plugins/table/dialogs");
21
- var _index2 = require("../../plugins/video/constants/index.js");
22
- var _index3 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
22
+ var _index3 = require("../../plugins/video/constants/index.js");
23
+ var _index4 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
23
24
  var _helpers2 = require("../../plugins/video/helpers");
24
- var _index4 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
25
- var _index5 = _interopRequireDefault(require("../select-file-dialog/index.js"));
26
- var _index6 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
25
+ var _index5 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
26
+ var _index6 = _interopRequireDefault(require("../select-file-dialog/index.js"));
27
+ var _index7 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
27
28
  var InsertElementDialog = function InsertElementDialog(_ref) {
28
29
  var editor = _ref.editor;
29
30
  var _useState = (0, _react.useState)(''),
@@ -95,7 +96,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
95
96
  var onVideoFileChanged = (0, _react.useCallback)(function (event) {
96
97
  var files = event.target.files;
97
98
  // Show warning for 3s and no further insertion if video file is more than 5MB
98
- if (files[0].size > _index2.VIDEO_MAX_SIZE_5MB) {
99
+ if (files[0].size > _index3.VIDEO_MAX_SIZE_5MB) {
99
100
  handleDisplayAlert();
100
101
  event.target.value = null;
101
102
  return;
@@ -203,7 +204,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
203
204
  insertLinkCallback: insertLinkCallback,
204
205
  closeDialog: closeDialog
205
206
  };
206
- return /*#__PURE__*/_react["default"].createElement(_index5["default"], sdocLinkProps);
207
+ return /*#__PURE__*/_react["default"].createElement(_index6["default"], sdocLinkProps);
207
208
  }
208
209
  case _constants2.ELEMENT_TYPE.FILE_LINK:
209
210
  {
@@ -213,7 +214,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
213
214
  insertLinkCallback: insertLinkCallback,
214
215
  closeDialog: closeDialog
215
216
  };
216
- return /*#__PURE__*/_react["default"].createElement(_index5["default"], fileLinkProps);
217
+ return /*#__PURE__*/_react["default"].createElement(_index6["default"], fileLinkProps);
217
218
  }
218
219
  case _constants2.ELEMENT_TYPE.WHITEBOARD:
219
220
  {
@@ -223,7 +224,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
223
224
  insertWhiteboardFile: insertWhiteboardFile,
224
225
  closeDialog: closeDialog
225
226
  };
226
- return /*#__PURE__*/_react["default"].createElement(_index5["default"], whiteboardProps);
227
+ return /*#__PURE__*/_react["default"].createElement(_index6["default"], whiteboardProps);
227
228
  }
228
229
  case _constants2.ELEMENT_TYPE.VIDEO:
229
230
  {
@@ -233,11 +234,23 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
233
234
  insertVideoCallback: insertVideoCallback,
234
235
  closeDialog: closeDialog
235
236
  };
236
- return /*#__PURE__*/_react["default"].createElement(_index5["default"], videoProps);
237
+ return /*#__PURE__*/_react["default"].createElement(_index6["default"], videoProps);
237
238
  }
238
239
  case _constants2.ELEMENT_TYPE.VIDEO_LINK:
239
240
  {
240
- return /*#__PURE__*/_react["default"].createElement(_index3["default"], props);
241
+ return /*#__PURE__*/_react["default"].createElement(_index4["default"], props);
242
+ }
243
+ case _constants2.ELEMENT_TYPE.FILE_VIEW:
244
+ {
245
+ var _props = {
246
+ editor: validEditor,
247
+ element: element,
248
+ slateNode: slateNode,
249
+ insertPosition: insertPosition,
250
+ dialogType: dialogType,
251
+ closeDialog: closeDialog
252
+ };
253
+ return /*#__PURE__*/_react["default"].createElement(_index2["default"], _props);
241
254
  }
242
255
  case _constants2.LOCAL_IMAGE:
243
256
  {
@@ -273,13 +286,13 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
273
286
  case _constants2.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
274
287
  {
275
288
  if (editor.editorType === _constants.WIKI_EDITOR) {
276
- return /*#__PURE__*/_react["default"].createElement(_index6["default"], {
289
+ return /*#__PURE__*/_react["default"].createElement(_index7["default"], {
277
290
  element: slateNode,
278
291
  editor: editor,
279
292
  closeDialog: closeDialog
280
293
  });
281
294
  }
282
- return /*#__PURE__*/_react["default"].createElement(_index4["default"], {
295
+ return /*#__PURE__*/_react["default"].createElement(_index5["default"], {
283
296
  element: slateNode,
284
297
  editor: editor,
285
298
  closeDialog: closeDialog
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WIKI_LINK = exports.WHITEBOARD = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
6
+ exports.WIKI_LINK = exports.WHITEBOARD = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_VIEW = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
7
7
  var BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
8
8
  var TITLE = exports.TITLE = 'title';
9
9
  var SUBTITLE = exports.SUBTITLE = 'subtitle';
@@ -44,6 +44,7 @@ var FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK_INSET_INPUT_TEMP = 'file_link
44
44
  var QUICK_INSERT = exports.QUICK_INSERT = 'quick_insert';
45
45
  var VIDEO_LINK = exports.VIDEO_LINK = 'video_link';
46
46
  var WHITEBOARD = exports.WHITEBOARD = 'whiteboard';
47
+ var FILE_VIEW = exports.FILE_VIEW = 'file_view';
47
48
  var ASK_AI = exports.ASK_AI = 'ask_ai';
48
49
 
49
50
  // font
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SDOC_FONT_SIZE = exports.RECENT_USED_FONTS_KEY = exports.RECENT_PASTE_HTML_CONTENT = exports.GOOGLE_FONT_CLASS = exports.FONT_SIZE = exports.FONT = exports.DEFAULT_FONT = void 0;
8
+ exports.SDOC_FONT_SIZE = exports.RECENT_USED_FONTS_KEY = exports.GOOGLE_FONT_CLASS = exports.FONT_SIZE = exports.FONT = exports.DEFAULT_FONT = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
10
  var ELEMENT_TYPE = _interopRequireWildcard(require("./element-type"));
11
11
  // font family
@@ -88,7 +88,6 @@ var FONT_SIZE = exports.FONT_SIZE = [{
88
88
  var GOOGLE_FONT_CLASS = exports.GOOGLE_FONT_CLASS = 'sdoc-google-font';
89
89
  var DEFAULT_FONT = exports.DEFAULT_FONT = 'default_font';
90
90
  var RECENT_USED_FONTS_KEY = exports.RECENT_USED_FONTS_KEY = 'sdoc-recent-used-fonts';
91
- var RECENT_PASTE_HTML_CONTENT = exports.RECENT_PASTE_HTML_CONTENT = 'sdoc-recent-paste-html-content';
92
91
  var FONT = exports.FONT = [
93
92
  // { name: '\u5fae\u8f6f\u96c5\u9ed1', fontFamilyName: { mac: 'Microsoft YaHei', windows: '\u5fae\u8f6f\u96c5\u9ed1' }, supportFontWeight: FONT_WEIGHT_100_400_700, isSystemOwn: true, usuallyFontFamilyName: SANS_SERIF }, // 微软雅黑
94
93
  // { name: '\u5b8b\u4f53', fontFamilyName: { mac: 'SimSun', windows: '\u5b8b\u4f53' }, supportFontWeight: FONT_WEIGHT_100_400_700_800, isSystemOwn: true, usuallyFontFamilyName: SERIF }, // 宋体
@@ -129,6 +129,12 @@ Object.defineProperty(exports, "FILE_LINK_INSET_INPUT_TEMP", {
129
129
  }
130
130
  });
131
131
  exports.FILE_TYPE = void 0;
132
+ Object.defineProperty(exports, "FILE_VIEW", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _elementType.FILE_VIEW;
136
+ }
137
+ });
132
138
  Object.defineProperty(exports, "FONT", {
133
139
  enumerable: true,
134
140
  get: function get() {
@@ -290,6 +296,7 @@ Object.defineProperty(exports, "QUICK_INSERT", {
290
296
  return _elementType.QUICK_INSERT;
291
297
  }
292
298
  });
299
+ exports.RECENT_COPY_CONTENT = void 0;
293
300
  Object.defineProperty(exports, "RECENT_USED_FONTS_KEY", {
294
301
  enumerable: true,
295
302
  get: function get() {
@@ -509,6 +516,7 @@ var HEADER_TAG = exports.HEADER_TAG = {
509
516
  var HEADER_TITLE_MAP = exports.HEADER_TITLE_MAP = (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"])({}, _elementType.TITLE, 'Title'), _elementType.SUBTITLE, 'Subtitle'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.HEADER5, 'Header_five'), _elementType.HEADER6, 'Header_six'), _elementType.PARAGRAPH, 'Paragraph');
510
517
  var TRANSPARENT = exports.TRANSPARENT = 'transparent';
511
518
  var CLIPBOARD_FORMAT_KEY = exports.CLIPBOARD_FORMAT_KEY = 'x-slate-fragment';
519
+ var RECENT_COPY_CONTENT = exports.RECENT_COPY_CONTENT = 'sdoc-recent-copy-content';
512
520
  var TABLE_DRAG_KEY = exports.TABLE_DRAG_KEY = 'drag-table/json';
513
521
  var CLIPBOARD_ORIGIN_SDOC_KEY = exports.CLIPBOARD_ORIGIN_SDOC_KEY = 'origin-sdoc-uuid';
514
522
  var INSERT_FILE_DISPLAY_TYPE = exports.INSERT_FILE_DISPLAY_TYPE = ['text_link', 'icon_link', 'card_link'];
@@ -336,7 +336,7 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
336
336
  iconClass: 'sdocfont sdoc-text',
337
337
  type: _elementType.PARAGRAPH,
338
338
  text: 'Paragraph'
339
- }), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_CO, _elementType.HEADER, [{
339
+ }), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_CO, _elementType.HEADER, [{
340
340
  id: _elementType.HEADER1,
341
341
  iconClass: 'sdocfont sdoc-header1',
342
342
  type: _elementType.HEADER1,
@@ -376,9 +376,14 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
376
376
  iconClass: 'sdocfont sdoc-quote1',
377
377
  type: _elementType.BLOCKQUOTE,
378
378
  text: 'Quote'
379
+ }), _elementType.FILE_VIEW, {
380
+ id: _elementType.FILE_VIEW,
381
+ iconClass: 'sdocfont sdoc-file-view',
382
+ type: _elementType.FILE_VIEW,
383
+ text: 'File_view'
379
384
  }));
380
- var SIDE_INSERT_MENUS_SEARCH_MAP = exports.SIDE_INSERT_MENUS_SEARCH_MAP = (_SIDE_INSERT_MENUS_SE = {}, (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"])(_SIDE_INSERT_MENUS_SE, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'));
381
- var SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = exports.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = (_SIDE_QUICK_INSERT_ME = {}, (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"])(_SIDE_QUICK_INSERT_ME, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'));
385
+ var SIDE_INSERT_MENUS_SEARCH_MAP = exports.SIDE_INSERT_MENUS_SEARCH_MAP = (_SIDE_INSERT_MENUS_SE = {}, (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"])(_SIDE_INSERT_MENUS_SE, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (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"])(_SIDE_INSERT_MENUS_SE, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.FILE_VIEW, 'File_view'));
386
+ var SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = exports.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = (_SIDE_QUICK_INSERT_ME = {}, (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"])(_SIDE_QUICK_INSERT_ME, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (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"])(_SIDE_QUICK_INSERT_ME, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.FILE_VIEW, 'File_view'));
382
387
 
383
388
  // Other operations menu config
384
389
  var SIDE_OTHER_OPERATIONS_MENUS_SEARCH_MAP = exports.SIDE_OTHER_OPERATIONS_MENUS_SEARCH_MAP = {
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.updateFileView = exports.insertFileView = exports.getWikiSettings = exports.getFileUrl = exports.getAccessibleRepos = exports.genFileViewNode = void 0;
8
+ var _slate = require("@seafile/slate");
9
+ var _slateReact = require("@seafile/slate-react");
10
+ var _slugid = _interopRequireDefault(require("slugid"));
11
+ var _context = _interopRequireDefault(require("../../../context"));
12
+ var _constants = require("../../constants");
13
+ var _core = require("../../core");
14
+ var getFileUrl = exports.getFileUrl = function getFileUrl(element) {
15
+ var serviceUrl = _context["default"].getSetting('serviceUrl');
16
+ var data = element.data;
17
+ var wiki_id = data.wiki_id,
18
+ view_id = data.view_id;
19
+ return "".concat(serviceUrl, "/wiki/").concat(wiki_id, "/repo-views/").concat(view_id, "/");
20
+ };
21
+ var getWikiSettings = exports.getWikiSettings = function getWikiSettings() {
22
+ var wikiId = _context["default"].getSetting('wikiId');
23
+ var WIKI_SETTING_INTO_KEY = "seafile_wiki_".concat(wikiId, "_settings_info");
24
+ var settings = window.localStorage.getItem(WIKI_SETTING_INTO_KEY);
25
+ return JSON.parse(settings);
26
+ };
27
+ var getAccessibleRepos = exports.getAccessibleRepos = function getAccessibleRepos() {
28
+ var wikiId = _context["default"].getSetting('wikiId');
29
+ var WIKI_REPO_INFO_KEY = "seafile_wiki_".concat(wikiId, "_repos_info");
30
+ var repos = window.localStorage.getItem(WIKI_REPO_INFO_KEY);
31
+ return JSON.parse(repos);
32
+ };
33
+ var genFileViewNode = exports.genFileViewNode = function genFileViewNode(data) {
34
+ return {
35
+ id: _slugid["default"].nice(),
36
+ type: _constants.FILE_VIEW,
37
+ data: data,
38
+ children: [{
39
+ id: _slugid["default"].nice(),
40
+ text: ''
41
+ }]
42
+ };
43
+ };
44
+ var insertFileView = exports.insertFileView = function insertFileView(data, editor, position, slateNode) {
45
+ if (!data) return;
46
+ if (!data.view_name || !data.view_type || !data.link_repo_id) return;
47
+ var fileViewNode = genFileViewNode(data);
48
+ if (position === _constants.INSERT_POSITION.AFTER) {
49
+ var path = _slate.Editor.path(editor, editor.selection);
50
+ _slate.Transforms.insertNodes(editor, fileViewNode, {
51
+ at: [path[0] + 1]
52
+ });
53
+ var nextPath = _slate.Path.next([path[0] + 1]);
54
+ if (!(0, _core.getNode)(editor, nextPath)) {
55
+ _slate.Transforms.insertNodes(editor, (0, _core.generateDefaultParagraph)(), {
56
+ at: nextPath
57
+ });
58
+ }
59
+ var endOfFirstNode = _slate.Editor.start(editor, nextPath);
60
+ var range = {
61
+ anchor: endOfFirstNode,
62
+ focus: endOfFirstNode
63
+ };
64
+ (0, _core.focusEditor)(editor, range);
65
+ return;
66
+ }
67
+ _slate.Transforms.insertNodes(editor, fileViewNode);
68
+ return;
69
+ };
70
+ var updateFileView = exports.updateFileView = function updateFileView(newData, editor, element) {
71
+ var nodePath = _slateReact.ReactEditor.findPath(editor, element);
72
+ _slate.Transforms.setNodes(editor, {
73
+ data: newData
74
+ }, {
75
+ at: nodePath
76
+ });
77
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _constants = require("../../constants");
9
+ var _plugin = _interopRequireDefault(require("./plugin"));
10
+ var _renderElem = require("./render-elem");
11
+ var FileViewPlugin = {
12
+ type: _constants.FILE_VIEW,
13
+ nodeType: 'element',
14
+ editorPlugin: _plugin["default"],
15
+ renderElements: [_renderElem.renderFileView]
16
+ };
17
+ var _default = exports["default"] = FileViewPlugin;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var KeyCodes = {
8
+ Tab: 9,
9
+ Escape: 27,
10
+ Esc: 27,
11
+ LeftArrow: 37,
12
+ UpArrow: 38,
13
+ RightArrow: 39,
14
+ DownArrow: 40
15
+ };
16
+ var _default = exports["default"] = KeyCodes;
@@ -0,0 +1,96 @@
1
+ .sdoc-select.group-select {
2
+ position: relative;
3
+ }
4
+
5
+ .sdoc-select.group-select.custom-select {
6
+ display: flex;
7
+ padding: 5px 10px;
8
+ border-radius: 3px;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ max-width: 900px;
12
+ user-select: none;
13
+ text-align: left;
14
+ border-color: 1px solid rgba(0, 40, 100, 0.12);
15
+ height: auto;
16
+ min-height: 38px;
17
+ cursor: pointer;
18
+ }
19
+
20
+ .sdoc-select.group-select.custom-select:focus,
21
+ .sdoc-select.group-select.custom-select.focus {
22
+ border-color: #1991eb !important;
23
+ box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25);
24
+ }
25
+
26
+ .sdoc-select.group-select.custom-select.disabled:focus,
27
+ .sdoc-select.group-select.custom-select.focus.disabled,
28
+ .sdoc-select.group-select.custom-select.disabled:hover {
29
+ border-color: rgba(0, 40, 100, 0.12) !important;
30
+ box-shadow: unset;
31
+ cursor: default;
32
+ }
33
+
34
+ .sdoc-select.group-select .sf3-font-down {
35
+ display: inline-block;
36
+ color: #999;
37
+ transform: translateY(2px);
38
+ transition: all 0.1s;
39
+ font-size: 14px !important;
40
+ }
41
+
42
+ .sdoc-select.group-select .sf3-font-down:hover {
43
+ color: #666;
44
+ }
45
+
46
+ .sdoc-select.group-select .selected-option {
47
+ display: flex;
48
+ flex: 1;
49
+ overflow: hidden;
50
+ flex-wrap: nowrap;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ background: #fff;
54
+ }
55
+
56
+ .sdoc-select.group-select.selector-collaborator .option-group .option-group-content {
57
+ padding: 10px;
58
+ }
59
+
60
+ .sdoc-select.group-select.custom-select.selector-collaborator .option-group .option-group-content {
61
+ padding: 10px 0;
62
+ }
63
+
64
+ .sdoc-select.group-select.custom-select.selector-collaborator .option {
65
+ padding: 5px 0 5px 10px !important;
66
+ line-height: 20px;
67
+ }
68
+
69
+ .sdoc-select.group-select .select-placeholder {
70
+ line-height: 1;
71
+ font-size: 14px;
72
+ white-space: nowrap;
73
+ }
74
+
75
+ .sdoc-select.group-select .selected-option-show {
76
+ display: flex;
77
+ flex-wrap: wrap;
78
+ gap: 4px;
79
+ }
80
+
81
+ .sdoc-select.group-select .selected-option-show .selected-option-item {
82
+ display: flex;
83
+ align-items: center;
84
+ background-color: #fff;
85
+ border-radius: 0px;
86
+ }
87
+
88
+ .sdoc-select.group-select .selected-option-show .selected-option-item .selected-option-item-name {
89
+ font-size: 13px;
90
+ color: #212529;
91
+ }
92
+
93
+ .sdoc-select.group-select .selected-option-show .selected-option-item .sf2-icon-close {
94
+ cursor: pointer;
95
+ color: rgb(103, 103, 103);
96
+ }