@seafile/sdoc-editor 3.0.85 → 3.0.87
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.
- package/dist/api/seafile-api.js +20 -21
- package/dist/constants/index.js +2 -1
- package/dist/context.js +25 -9
- package/dist/editor/sdoc-editor.js +3 -0
- package/dist/editor/wiki-editor.js +7 -2
- package/dist/extension/commons/insert-element-dialog/index.js +13 -26
- package/dist/extension/plugins/file-view/helpers.js +2 -14
- package/dist/extension/plugins/file-view/render-elem/index.js +15 -30
- package/dist/extension/toolbar/insert-element-toolbar/index.js +10 -9
- package/dist/extension/toolbar/linked-repo-popover/link-repo-list.css +40 -9
- package/dist/extension/toolbar/linked-repo-popover/link-repo-list.js +35 -68
- package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +11 -10
- package/package.json +3 -3
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +0 -16
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +0 -96
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +0 -156
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +0 -49
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +0 -53
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +0 -37
- package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +0 -241
- package/dist/extension/plugins/file-view/insert-view-dialog/index.js +0 -232
- package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +0 -41
- /package/dist/{extension/plugins/file-view/insert-view-dialog/dropdown-select → assets/images}/lib.png +0 -0
package/dist/api/seafile-api.js
CHANGED
|
@@ -312,35 +312,34 @@ var SeafileAPI = /*#__PURE__*/function () {
|
|
|
312
312
|
return this.req.get(url);
|
|
313
313
|
}
|
|
314
314
|
}, {
|
|
315
|
-
key: "
|
|
316
|
-
value: function
|
|
317
|
-
var url = "/api/v2.1/wiki2/".concat(wikiId, "/views/");
|
|
315
|
+
key: "insertFileView",
|
|
316
|
+
value: function insertFileView(docUuid, wikiId, data) {
|
|
317
|
+
var url = "/api/v2.1/wiki2/".concat(wikiId, "/file-views/");
|
|
318
318
|
var form = new FormData();
|
|
319
|
-
form.append('file_uuid', docUuid);
|
|
320
|
-
form.append('name', data.
|
|
321
|
-
form.append('
|
|
322
|
-
form.append('
|
|
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);
|
|
319
|
+
form.append('file_uuid', docUuid); // used for valid permission
|
|
320
|
+
form.append('name', data.name);
|
|
321
|
+
form.append('linked_repo_id', data.linked_repo_id);
|
|
322
|
+
form.append('type', data.type || 'table');
|
|
332
323
|
return this.req.post(url, form);
|
|
333
324
|
}
|
|
334
325
|
}, {
|
|
335
|
-
key: "
|
|
336
|
-
value: function
|
|
337
|
-
var url = '/api/v2.1/wiki2/' + wikiId + '/views/';
|
|
326
|
+
key: "modifyFileView",
|
|
327
|
+
value: function modifyFileView(wikiId, fileViewId, viewData) {
|
|
328
|
+
var url = '/api/v2.1/wiki2/' + wikiId + '/file-views/' + fileViewId + '/';
|
|
338
329
|
var data = {
|
|
339
|
-
|
|
340
|
-
view_data: viewData
|
|
330
|
+
viewData: viewData
|
|
341
331
|
};
|
|
342
332
|
return this.req.put(url, data);
|
|
343
333
|
}
|
|
334
|
+
}, {
|
|
335
|
+
key: "duplicateFileView",
|
|
336
|
+
value: function duplicateFileView(docUuid, wikiId, fileViewId) {
|
|
337
|
+
var url = "/api/v2.1/wiki2/".concat(wikiId, "/file-views/").concat(fileViewId, "/duplicate/");
|
|
338
|
+
var form = new FormData();
|
|
339
|
+
form.append('file_uuid', docUuid); // used for valid permission
|
|
340
|
+
|
|
341
|
+
return this.req.post(url, form);
|
|
342
|
+
}
|
|
344
343
|
}]);
|
|
345
344
|
}();
|
|
346
345
|
var _default = exports["default"] = SeafileAPI;
|
package/dist/constants/index.js
CHANGED
|
@@ -79,7 +79,8 @@ var INTERNAL_EVENT = exports.INTERNAL_EVENT = {
|
|
|
79
79
|
CREATE_WHITEBOARD_FILE: 'create_whiteboard_file',
|
|
80
80
|
GENERATE_EXDRAW_READ_ONLY_LINK: 'generate_exdraw_read_only_link',
|
|
81
81
|
TRANSFER_PREVIEW_FILE_ID: 'transfer_preview_file_id',
|
|
82
|
-
FILE_METADATA_COMPONENT: 'file_metadata_component'
|
|
82
|
+
FILE_METADATA_COMPONENT: 'file_metadata_component',
|
|
83
|
+
ADD_WIKI_LIBRARY_TOGGLE: 'add_wiki_library_click'
|
|
83
84
|
};
|
|
84
85
|
var PAGE_EDIT_AREA_WIDTH = exports.PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
|
85
86
|
var COMMENT_EDITOR_EDIT_AREA_WIDTH = exports.COMMENT_EDITOR_EDIT_AREA_WIDTH = 364;
|
package/dist/context.js
CHANGED
|
@@ -35,6 +35,22 @@ var Context = /*#__PURE__*/function () {
|
|
|
35
35
|
_this.settings['originFileURL'] = originFileURL;
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
|
+
(0, _defineProperty2["default"])(this, "getWikiSettings", function () {
|
|
39
|
+
// patch: Resolving the issue of repos wikiSettings consuming too much localstorage.
|
|
40
|
+
if (window.wiki && window.wiki.config) {
|
|
41
|
+
var wikiSettings = window.wiki.config.wikiSettings;
|
|
42
|
+
return wikiSettings;
|
|
43
|
+
}
|
|
44
|
+
return _this.settings['wikiSettings'];
|
|
45
|
+
});
|
|
46
|
+
(0, _defineProperty2["default"])(this, "getWikiRepos", function () {
|
|
47
|
+
// patch: Resolving the issue of repos wikiSettings consuming too much localstorage.
|
|
48
|
+
if (window.wiki && window.wiki.config) {
|
|
49
|
+
var repos = window.wiki.config.repos;
|
|
50
|
+
return repos;
|
|
51
|
+
}
|
|
52
|
+
return _this.settings['repos'];
|
|
53
|
+
});
|
|
38
54
|
(0, _defineProperty2["default"])(this, "uploadLocalImage", function (imageFiles) {
|
|
39
55
|
var docUuid = _this.getSetting('docUuid');
|
|
40
56
|
return _this.api.uploadSdocImage(docUuid, imageFiles).then(function (res) {
|
|
@@ -419,24 +435,24 @@ var Context = /*#__PURE__*/function () {
|
|
|
419
435
|
return this.api.getFileMetadataInfo(docUuid, fileType);
|
|
420
436
|
}
|
|
421
437
|
}, {
|
|
422
|
-
key: "
|
|
423
|
-
value: function
|
|
438
|
+
key: "insertFileView",
|
|
439
|
+
value: function insertFileView(data) {
|
|
424
440
|
var wikiId = this.getSetting('wikiId');
|
|
425
441
|
var docUuid = this.getSetting('docUuid');
|
|
426
|
-
return this.api.
|
|
442
|
+
return this.api.insertFileView(docUuid, wikiId, data);
|
|
427
443
|
}
|
|
428
444
|
}, {
|
|
429
|
-
key: "
|
|
430
|
-
value: function
|
|
445
|
+
key: "duplicateFileView",
|
|
446
|
+
value: function duplicateFileView(fileViewId) {
|
|
431
447
|
var wikiId = this.getSetting('wikiId');
|
|
432
448
|
var docUuid = this.getSetting('docUuid');
|
|
433
|
-
return this.api.
|
|
449
|
+
return this.api.duplicateFileView(docUuid, wikiId, fileViewId);
|
|
434
450
|
}
|
|
435
451
|
}, {
|
|
436
|
-
key: "
|
|
437
|
-
value: function
|
|
452
|
+
key: "modifyFileView",
|
|
453
|
+
value: function modifyFileView(viewId, fileViewId, viewData) {
|
|
438
454
|
var wikiId = this.getSetting('wikiId');
|
|
439
|
-
return this.api.modifyView(wikiId,
|
|
455
|
+
return this.api.modifyView(wikiId, fileViewId, viewData);
|
|
440
456
|
}
|
|
441
457
|
}]);
|
|
442
458
|
}();
|
|
@@ -93,6 +93,9 @@ var SdocEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
93
93
|
|
|
94
94
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
95
95
|
}, []);
|
|
96
|
+
(0, _react.useEffect)(function () {
|
|
97
|
+
_localStorageUtils["default"].removeItem(_constants2.RECENT_COPY_CONTENT);
|
|
98
|
+
}, []);
|
|
96
99
|
|
|
97
100
|
// useMount: init socket connection
|
|
98
101
|
(0, _react.useEffect)(function () {
|
|
@@ -20,6 +20,7 @@ var _extension = require("../extension");
|
|
|
20
20
|
var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
|
|
21
21
|
var _constants2 = require("../extension/constants");
|
|
22
22
|
var _helpers = require("../extension/plugins/ai/ai-module/helpers");
|
|
23
|
+
var _linkRepoList = _interopRequireDefault(require("../extension/toolbar/linked-repo-popover/link-repo-list"));
|
|
23
24
|
var _useColorContext = require("../hooks/use-color-context");
|
|
24
25
|
var _useMathjax = _interopRequireDefault(require("../hooks/use-mathjax"));
|
|
25
26
|
var _useScrollContext = require("../hooks/use-scroll-context");
|
|
@@ -73,10 +74,12 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
73
74
|
validEditor.readonly = false;
|
|
74
75
|
return function () {
|
|
75
76
|
validEditor.selection = null;
|
|
76
|
-
_localStorageUtils["default"].removeItem(_constants2.RECENT_COPY_CONTENT);
|
|
77
77
|
};
|
|
78
78
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
79
|
}, []);
|
|
80
|
+
(0, _react.useEffect)(function () {
|
|
81
|
+
_localStorageUtils["default"].removeItem(_constants2.RECENT_COPY_CONTENT);
|
|
82
|
+
}, []);
|
|
80
83
|
|
|
81
84
|
// useMount: init socket connection
|
|
82
85
|
(0, _react.useEffect)(function () {
|
|
@@ -187,7 +190,9 @@ var WikiEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
187
190
|
showComment: showComment
|
|
188
191
|
})), /*#__PURE__*/_react["default"].createElement(_wikiOutline["default"], {
|
|
189
192
|
doc: slateValue
|
|
190
|
-
})
|
|
193
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
194
|
+
className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-menu-file-view-popover"
|
|
195
|
+
}, /*#__PURE__*/_react["default"].createElement(_linkRepoList["default"], null)))))), /*#__PURE__*/_react["default"].createElement(_insertElementDialog["default"], {
|
|
191
196
|
editor: validEditor
|
|
192
197
|
}));
|
|
193
198
|
});
|
|
@@ -15,17 +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"));
|
|
19
18
|
var _formulaModal = _interopRequireDefault(require("../../plugins/formula/menu/formula-modal.js"));
|
|
20
19
|
var _helpers = require("../../plugins/image/helpers");
|
|
21
20
|
var _addLinkDialog = _interopRequireDefault(require("../../plugins/link/dialog/add-link-dialog"));
|
|
22
21
|
var _dialogs = require("../../plugins/table/dialogs");
|
|
23
|
-
var
|
|
24
|
-
var
|
|
22
|
+
var _index2 = require("../../plugins/video/constants/index.js");
|
|
23
|
+
var _index3 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
|
|
25
24
|
var _helpers2 = require("../../plugins/video/helpers");
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
25
|
+
var _index4 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
|
|
26
|
+
var _index5 = _interopRequireDefault(require("../select-file-dialog/index.js"));
|
|
27
|
+
var _index6 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
|
|
29
28
|
var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
30
29
|
var editor = _ref.editor;
|
|
31
30
|
var _useState = (0, _react.useState)(''),
|
|
@@ -101,7 +100,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
101
100
|
var onVideoFileChanged = (0, _react.useCallback)(function (event) {
|
|
102
101
|
var files = event.target.files;
|
|
103
102
|
// Show warning for 3s and no further insertion if video file is more than 5MB
|
|
104
|
-
if (files[0].size >
|
|
103
|
+
if (files[0].size > _index2.VIDEO_MAX_SIZE_5MB) {
|
|
105
104
|
handleDisplayAlert();
|
|
106
105
|
event.target.value = null;
|
|
107
106
|
return;
|
|
@@ -223,7 +222,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
223
222
|
insertLinkCallback: insertLinkCallback,
|
|
224
223
|
closeDialog: closeDialog
|
|
225
224
|
};
|
|
226
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
225
|
+
return /*#__PURE__*/_react["default"].createElement(_index5["default"], sdocLinkProps);
|
|
227
226
|
}
|
|
228
227
|
case _constants2.ELEMENT_TYPE.FILE_LINK:
|
|
229
228
|
{
|
|
@@ -233,7 +232,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
233
232
|
insertLinkCallback: insertLinkCallback,
|
|
234
233
|
closeDialog: closeDialog
|
|
235
234
|
};
|
|
236
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
235
|
+
return /*#__PURE__*/_react["default"].createElement(_index5["default"], fileLinkProps);
|
|
237
236
|
}
|
|
238
237
|
case _constants2.ELEMENT_TYPE.WHITEBOARD:
|
|
239
238
|
{
|
|
@@ -243,7 +242,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
243
242
|
insertWhiteboardFile: insertWhiteboardFile,
|
|
244
243
|
closeDialog: closeDialog
|
|
245
244
|
};
|
|
246
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
245
|
+
return /*#__PURE__*/_react["default"].createElement(_index5["default"], whiteboardProps);
|
|
247
246
|
}
|
|
248
247
|
case _constants2.ELEMENT_TYPE.VIDEO:
|
|
249
248
|
{
|
|
@@ -253,23 +252,11 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
253
252
|
insertVideoCallback: insertVideoCallback,
|
|
254
253
|
closeDialog: closeDialog
|
|
255
254
|
};
|
|
256
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
255
|
+
return /*#__PURE__*/_react["default"].createElement(_index5["default"], videoProps);
|
|
257
256
|
}
|
|
258
257
|
case _constants2.ELEMENT_TYPE.VIDEO_LINK:
|
|
259
258
|
{
|
|
260
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
261
|
-
}
|
|
262
|
-
case _constants2.ELEMENT_TYPE.FILE_VIEW:
|
|
263
|
-
{
|
|
264
|
-
var _props = {
|
|
265
|
-
editor: validEditor,
|
|
266
|
-
element: element,
|
|
267
|
-
slateNode: slateNode,
|
|
268
|
-
insertPosition: insertPosition,
|
|
269
|
-
dialogType: dialogType,
|
|
270
|
-
closeDialog: closeDialog
|
|
271
|
-
};
|
|
272
|
-
return /*#__PURE__*/_react["default"].createElement(_index2["default"], _props);
|
|
259
|
+
return /*#__PURE__*/_react["default"].createElement(_index3["default"], props);
|
|
273
260
|
}
|
|
274
261
|
case _constants2.ELEMENT_TYPE.FORMULA:
|
|
275
262
|
{
|
|
@@ -313,13 +300,13 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
313
300
|
case _constants2.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
|
|
314
301
|
{
|
|
315
302
|
if (editor.editorType === _constants.WIKI_EDITOR) {
|
|
316
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
303
|
+
return /*#__PURE__*/_react["default"].createElement(_index6["default"], {
|
|
317
304
|
element: slateNode,
|
|
318
305
|
editor: editor,
|
|
319
306
|
closeDialog: closeDialog
|
|
320
307
|
});
|
|
321
308
|
}
|
|
322
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
309
|
+
return /*#__PURE__*/_react["default"].createElement(_index4["default"], {
|
|
323
310
|
element: slateNode,
|
|
324
311
|
editor: editor,
|
|
325
312
|
closeDialog: closeDialog
|
|
@@ -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.updateFileView = exports.insertFileView = exports.
|
|
7
|
+
exports.updateFileView = exports.insertFileView = exports.getFileUrl = exports.genFileViewNode = exports.calculateSize = void 0;
|
|
8
8
|
var _slate = require("@seafile/slate");
|
|
9
9
|
var _slateReact = require("@seafile/slate-react");
|
|
10
10
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
@@ -18,18 +18,6 @@ var getFileUrl = exports.getFileUrl = function getFileUrl(element) {
|
|
|
18
18
|
view_id = data.view_id;
|
|
19
19
|
return "".concat(serviceUrl, "/wiki/").concat(wiki_id, "/repo-views/").concat(view_id, "/");
|
|
20
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
21
|
var genFileViewNode = exports.genFileViewNode = function genFileViewNode(data) {
|
|
34
22
|
return {
|
|
35
23
|
id: _slugid["default"].nice(),
|
|
@@ -43,7 +31,7 @@ var genFileViewNode = exports.genFileViewNode = function genFileViewNode(data) {
|
|
|
43
31
|
};
|
|
44
32
|
var insertFileView = exports.insertFileView = function insertFileView(data, editor, position, slateNode) {
|
|
45
33
|
if (!data) return;
|
|
46
|
-
if (!data.
|
|
34
|
+
if (!data.wiki_id || !data.file_view_id) return;
|
|
47
35
|
var fileViewNode = genFileViewNode(data);
|
|
48
36
|
if (position === _constants.INSERT_POSITION.AFTER) {
|
|
49
37
|
var path = _slate.Editor.path(editor, editor.selection);
|
|
@@ -15,17 +15,18 @@ var _slateReact = require("@seafile/slate-react");
|
|
|
15
15
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
16
|
var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
17
17
|
var _context = _interopRequireDefault(require("../../../../context"));
|
|
18
|
+
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
18
19
|
var _commonUtils = require("../../../../utils/common-utils");
|
|
19
20
|
var _localStorageUtils = _interopRequireDefault(require("../../../../utils/local-storage-utils"));
|
|
20
21
|
var _constants = require("../../../constants");
|
|
21
22
|
var _helpers = require("../helpers");
|
|
22
|
-
var _rename = _interopRequireDefault(require("../rename"));
|
|
23
23
|
require("./index.css");
|
|
24
|
-
var
|
|
24
|
+
var FileViewPlugin = function FileViewPlugin(_ref) {
|
|
25
25
|
var element = _ref.element,
|
|
26
26
|
children = _ref.children,
|
|
27
27
|
attributes = _ref.attributes;
|
|
28
28
|
var data = element.data;
|
|
29
|
+
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
29
30
|
var editor = (0, _slateReact.useSlateStatic)();
|
|
30
31
|
var isSelected = (0, _slateReact.useSelected)();
|
|
31
32
|
var _useReadOnly = (0, _slateReact.useReadOnly)(),
|
|
@@ -46,28 +47,26 @@ var FileView = function FileView(_ref) {
|
|
|
46
47
|
var viewSettings = (0, _react.useMemo)(function () {
|
|
47
48
|
var settings = _context["default"].getFileViewSetting();
|
|
48
49
|
var viewSettings = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, settings), {}, {
|
|
49
|
-
repoID: data.link_repo_id,
|
|
50
50
|
view_data: {
|
|
51
|
-
view_id: data.view_id,
|
|
52
51
|
wiki_id: data.wiki_id,
|
|
52
|
+
file_view_id: data.file_view_id,
|
|
53
53
|
height: data.height,
|
|
54
54
|
width: data.width
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
return viewSettings;
|
|
58
|
-
}, [data.
|
|
58
|
+
}, [data.file_view_id, data.height, data.width, data.wiki_id]);
|
|
59
59
|
(0, _react.useEffect)(function () {
|
|
60
60
|
var copyContent = _localStorageUtils["default"].getItem(_constants.RECENT_COPY_CONTENT);
|
|
61
61
|
var wikiId = _context["default"].getSetting('wikiId');
|
|
62
62
|
if (wikiId !== data.wiki_id) return;
|
|
63
63
|
if (!copyContent) return;
|
|
64
64
|
var stringContent = JSON.stringify(copyContent);
|
|
65
|
-
if (stringContent.indexOf(data.wiki_id) > -1 && stringContent.indexOf(data.
|
|
66
|
-
_context["default"].
|
|
67
|
-
var
|
|
65
|
+
if (stringContent.indexOf(data.wiki_id) > -1 && stringContent.indexOf(data.file_view_id) > -1) {
|
|
66
|
+
_context["default"].duplicateFileView(data.file_view_id).then(function (res) {
|
|
67
|
+
var fileView = res.data.file_view;
|
|
68
68
|
var newData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
|
|
69
|
-
|
|
70
|
-
view_name: view.name
|
|
69
|
+
file_view_id: fileView.id
|
|
71
70
|
});
|
|
72
71
|
(0, _helpers.updateFileView)(newData, editor, element);
|
|
73
72
|
})["catch"](function (error) {
|
|
@@ -105,7 +104,8 @@ var FileView = function FileView(_ref) {
|
|
|
105
104
|
var style = wrapperElement.style;
|
|
106
105
|
style.width = size.width + 'px';
|
|
107
106
|
style.height = size.height + 'px';
|
|
108
|
-
var
|
|
107
|
+
var _databaseRef$current$ = databaseRef.current.getFileBaseElement(),
|
|
108
|
+
databaseStyle = _databaseRef$current$.style;
|
|
109
109
|
databaseStyle.width = size.width - 4 + 'px';
|
|
110
110
|
databaseStyle.height = size.height - 4 + 'px';
|
|
111
111
|
setMovingSize(size);
|
|
@@ -155,16 +155,6 @@ var FileView = function FileView(_ref) {
|
|
|
155
155
|
}
|
|
156
156
|
return null;
|
|
157
157
|
}, [data]);
|
|
158
|
-
var onNameCancel = (0, _react.useCallback)(function () {}, []);
|
|
159
|
-
var onRename = (0, _react.useCallback)(function (newName) {
|
|
160
|
-
var newData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, element.data), {}, {
|
|
161
|
-
view_name: newName
|
|
162
|
-
});
|
|
163
|
-
(0, _helpers.updateFileView)(newData, editor, element);
|
|
164
|
-
|
|
165
|
-
// TODO:
|
|
166
|
-
// context.modifyView(data.view_id, { view_name: newName });
|
|
167
|
-
}, [editor, element]);
|
|
168
158
|
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
169
159
|
"data-id": element.id
|
|
170
160
|
}, attributes, {
|
|
@@ -172,20 +162,15 @@ var FileView = function FileView(_ref) {
|
|
|
172
162
|
contentEditable: "false",
|
|
173
163
|
suppressContentEditableWarning: true
|
|
174
164
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
175
|
-
className: "sdoc-file-view-title"
|
|
176
|
-
}, /*#__PURE__*/_react["default"].createElement(_rename["default"], {
|
|
177
|
-
name: data.view_name,
|
|
178
|
-
onRenameConfirm: onRename,
|
|
179
|
-
onRenameCancel: onNameCancel
|
|
180
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
181
165
|
className: (0, _classnames["default"])('sdoc-file-view-content', {
|
|
182
166
|
'is-selected': isSelected
|
|
183
167
|
}),
|
|
184
168
|
ref: wrapperRef,
|
|
185
169
|
style: style
|
|
186
|
-
}, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.
|
|
170
|
+
}, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.FileView, {
|
|
187
171
|
settings: viewSettings,
|
|
188
|
-
ref: databaseRef
|
|
172
|
+
ref: databaseRef,
|
|
173
|
+
scrollRef: scrollRef
|
|
189
174
|
}), !readOnly && isSelected && /*#__PURE__*/_react["default"].createElement("span", {
|
|
190
175
|
className: "file-view-resizer",
|
|
191
176
|
ref: resizerRef,
|
|
@@ -195,5 +180,5 @@ var FileView = function FileView(_ref) {
|
|
|
195
180
|
}, /*#__PURE__*/_react["default"].createElement("span", null, t('Width'), ':', parseInt(movingSize.width)), /*#__PURE__*/_react["default"].createElement("span", null, "\xA0\xA0"), /*#__PURE__*/_react["default"].createElement("span", null, t('Height'), ':', parseInt(movingSize.height)))), children);
|
|
196
181
|
};
|
|
197
182
|
var renderFileView = exports.renderFileView = function renderFileView(props) {
|
|
198
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
183
|
+
return /*#__PURE__*/_react["default"].createElement(FileViewPlugin, props);
|
|
199
184
|
};
|
|
@@ -244,21 +244,22 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
244
244
|
var wikiId = _context["default"].getSetting('wikiId');
|
|
245
245
|
var data = {
|
|
246
246
|
wiki_id: wikiId,
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
247
|
+
name: item.repo_name,
|
|
248
|
+
linked_repo_id: item.repo_id,
|
|
249
|
+
type: 'table'
|
|
250
250
|
};
|
|
251
|
-
_context["default"].
|
|
252
|
-
var
|
|
253
|
-
var viewData =
|
|
254
|
-
|
|
255
|
-
|
|
251
|
+
_context["default"].insertFileView(data).then(function (res) {
|
|
252
|
+
var fileView = res.data;
|
|
253
|
+
var viewData = {
|
|
254
|
+
wiki_id: wikiId,
|
|
255
|
+
file_view_id: fileView.id
|
|
256
|
+
};
|
|
256
257
|
(0, _helpers3.insertFileView)(viewData, editor, insertPosition, slateNode);
|
|
257
258
|
})["catch"](function (error) {
|
|
258
259
|
var errorMessage = (0, _commonUtils.getErrorMsg)(error);
|
|
259
260
|
_toast["default"].danger(errorMessage);
|
|
260
261
|
});
|
|
261
|
-
}, [callback, editor, insertPosition, slateNode
|
|
262
|
+
}, [callback, editor, insertPosition, slateNode]);
|
|
262
263
|
var dropDownItems = (0, _react.useMemo)(function () {
|
|
263
264
|
var items = (0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _defineProperty2["default"])({}, _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
264
265
|
isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
|
|
@@ -1,22 +1,53 @@
|
|
|
1
|
+
.sdoc-insert-menu-file-view-popover .popover {
|
|
2
|
+
max-width: 300px;
|
|
3
|
+
}
|
|
4
|
+
|
|
1
5
|
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper {
|
|
2
6
|
/* position: absolute; */
|
|
3
7
|
background-color: #ffff;
|
|
4
8
|
max-height: 370px;
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
padding: 0px !important;
|
|
10
|
+
width: 298px;
|
|
11
|
+
padding: 0px;
|
|
7
12
|
left: -8px;
|
|
8
13
|
}
|
|
9
14
|
|
|
10
|
-
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
font-size: 12px;
|
|
16
|
-
max-height: 30px;
|
|
15
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-tip {
|
|
16
|
+
margin-top: 8px;
|
|
17
|
+
min-height: 32px;
|
|
18
|
+
padding: 3px 12px;
|
|
19
|
+
color: #666;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-content-wrapper {
|
|
20
23
|
max-height: 300px;
|
|
21
24
|
overflow-y: auto;
|
|
25
|
+
padding-bottom: 8px;
|
|
26
|
+
border-bottom: 1px solid #e9ecef;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-dropdown-menu-item {
|
|
30
|
+
min-height: 32px;
|
|
31
|
+
padding: 3px 12px;
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-dropdown-menu-item .lib-icon {
|
|
37
|
+
margin-right: 10px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar {
|
|
41
|
+
min-height: 32px;
|
|
42
|
+
padding: 3px 12px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar .sdocfont {
|
|
46
|
+
color: #666;
|
|
47
|
+
margin-right: 10px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar:hover {
|
|
51
|
+
background: #f5f5f5;
|
|
52
|
+
cursor: pointer;
|
|
22
53
|
}
|
|
@@ -1,97 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _reactI18next = require("react-i18next");
|
|
12
|
-
var
|
|
13
|
-
var
|
|
11
|
+
var _lib = _interopRequireDefault(require("../../../assets/images/lib.png"));
|
|
12
|
+
var _constants = require("../../../constants");
|
|
13
|
+
var _context = _interopRequireDefault(require("../../../context"));
|
|
14
|
+
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
14
15
|
require("./link-repo-list.css");
|
|
15
|
-
var useStopPropagation = function useStopPropagation() {
|
|
16
|
-
var stopPropagation = function stopPropagation(e) {
|
|
17
|
-
var _e$nativeEvent$stopIm, _e$nativeEvent;
|
|
18
|
-
e.stopPropagation();
|
|
19
|
-
(_e$nativeEvent$stopIm = (_e$nativeEvent = e.nativeEvent).stopImmediatePropagation) === null || _e$nativeEvent$stopIm === void 0 ? void 0 : _e$nativeEvent$stopIm.call(_e$nativeEvent);
|
|
20
|
-
};
|
|
21
|
-
return {
|
|
22
|
-
onClick: stopPropagation,
|
|
23
|
-
onFocus: stopPropagation,
|
|
24
|
-
onKeyDown: stopPropagation,
|
|
25
|
-
onKeyUp: stopPropagation,
|
|
26
|
-
onKeyPress: stopPropagation,
|
|
27
|
-
onMouseDown: stopPropagation,
|
|
28
|
-
onTouchStart: stopPropagation
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
var useRepos = function useRepos() {
|
|
32
|
-
var wikiSettings = (0, _helpers.getWikiSettings)();
|
|
33
|
-
var accessibleRepos = (0, _helpers.getAccessibleRepos)();
|
|
34
|
-
var linkedRepoIds = wikiSettings.linked_repos;
|
|
35
|
-
var optionsMap = accessibleRepos.reduce(function (result, item) {
|
|
36
|
-
result[item.repo_id] = item;
|
|
37
|
-
return result;
|
|
38
|
-
}, {});
|
|
39
|
-
return linkedRepoIds.map(function (id) {
|
|
40
|
-
return optionsMap[id];
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
16
|
var LinkedRepoList = function LinkedRepoList(_ref) {
|
|
44
17
|
var onRepoClick = _ref.onRepoClick;
|
|
45
18
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
46
19
|
t = _useTranslation.t;
|
|
47
|
-
var isComposingRef = (0, _react.useRef)(null);
|
|
48
20
|
var repoRef = (0, _react.useRef)(null);
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
setTables(repos);
|
|
65
|
-
}
|
|
66
|
-
}, [repos]);
|
|
67
|
-
var onCompositionStart = (0, _react.useCallback)(function () {
|
|
68
|
-
isComposingRef.current = true;
|
|
21
|
+
var enableRepos = (0, _react.useMemo)(function () {
|
|
22
|
+
var repos = _context["default"].getWikiRepos();
|
|
23
|
+
var wikiSettings = _context["default"].getWikiSettings();
|
|
24
|
+
var linked_repos = wikiSettings.linked_repos;
|
|
25
|
+
var linkedMap = linked_repos.reduce(function (ret, id) {
|
|
26
|
+
ret[id] = true;
|
|
27
|
+
return ret;
|
|
28
|
+
}, {});
|
|
29
|
+
return repos.filter(function (item) {
|
|
30
|
+
return linkedMap[item.repo_id];
|
|
31
|
+
});
|
|
32
|
+
}, []);
|
|
33
|
+
var onAddLibraryClick = (0, _react.useCallback)(function () {
|
|
34
|
+
var eventBus = _eventBus["default"].getInstance();
|
|
35
|
+
eventBus.dispatch(_constants.INTERNAL_EVENT.ADD_WIKI_LIBRARY_TOGGLE);
|
|
69
36
|
}, []);
|
|
70
|
-
var onCompositionEnd = (0, _react.useCallback)(function (e) {
|
|
71
|
-
isComposingRef.current = false;
|
|
72
|
-
onChange(e);
|
|
73
|
-
}, [onChange]);
|
|
74
37
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
38
|
ref: repoRef,
|
|
76
39
|
className: "sdoc-dropdown-menu-container sdoc-linked-repo-list-wrapper"
|
|
77
40
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
78
|
-
className: "sdoc-linked-repo-list-
|
|
79
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
80
|
-
placeholder: t('Search_1'),
|
|
81
|
-
onChange: onChange,
|
|
82
|
-
autoFocus: true,
|
|
83
|
-
onCompositionStart: onCompositionStart,
|
|
84
|
-
onCompositionEnd: onCompositionEnd
|
|
85
|
-
}, inputEvents))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
41
|
+
className: "sdoc-linked-repo-list-tip"
|
|
42
|
+
}, t('Show_files_from_a_linked_library')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
86
43
|
className: "sdoc-linked-repo-list-content-wrapper"
|
|
87
|
-
},
|
|
44
|
+
}, enableRepos.map(function (item) {
|
|
88
45
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
89
46
|
key: item.repo_id,
|
|
90
47
|
className: "sdoc-dropdown-menu-item text-truncate d-block",
|
|
91
48
|
onClick: function onClick() {
|
|
92
49
|
return onRepoClick(item);
|
|
93
50
|
}
|
|
94
|
-
},
|
|
95
|
-
|
|
51
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
52
|
+
className: "lib-icon",
|
|
53
|
+
src: _lib["default"],
|
|
54
|
+
width: "20",
|
|
55
|
+
alt: ""
|
|
56
|
+
}), item.repo_name);
|
|
57
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
58
|
+
className: "sdoc-linked-repo-list-add-toolbar",
|
|
59
|
+
onClick: onAddLibraryClick
|
|
60
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
61
|
+
className: "sdocfont sdoc-append"
|
|
62
|
+
}), t('Add library')));
|
|
96
63
|
};
|
|
97
64
|
var _default = exports["default"] = LinkedRepoList;
|