@seafile/sdoc-editor 3.0.165 → 3.0.167
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 +22 -0
- package/dist/comment/components/comment-image-previewer.js +2 -1
- package/dist/comment/components/comment-list.js +2 -2
- package/dist/comment/components/global-comment/index.js +1 -1
- package/dist/context.js +32 -0
- package/dist/extension/commons/insert-element-dialog/index.js +13 -2
- package/dist/extension/commons/select-lib-file-dialog/helpers.js +59 -0
- package/dist/extension/commons/select-lib-file-dialog/index.css +127 -0
- package/dist/extension/commons/select-lib-file-dialog/index.js +143 -0
- package/dist/extension/commons/select-lib-file-dialog/tree-view/index.css +129 -0
- package/dist/extension/commons/select-lib-file-dialog/tree-view/index.js +221 -0
- package/dist/extension/constants/element-type.js +2 -1
- package/dist/extension/constants/menus-config.js +8 -3
- package/dist/extension/plugins/file-link/menu/index.js +3 -0
- package/dist/extension/plugins/image/dialogs/image-previewer.js +2 -1
- package/dist/extension/plugins/quick-insert/render-elem.js +6 -1
- package/dist/extension/render/render-comment-editor-element.js +2 -3
- package/dist/extension/toolbar/insert-element-toolbar/index.js +51 -32
- package/dist/extension/toolbar/linked-repo-popover/link-repo-list.js +1 -10
- package/package.json +2 -2
package/dist/api/seafile-api.js
CHANGED
|
@@ -340,6 +340,28 @@ var SeafileAPI = /*#__PURE__*/function () {
|
|
|
340
340
|
|
|
341
341
|
return this.req.post(url, form);
|
|
342
342
|
}
|
|
343
|
+
}, {
|
|
344
|
+
key: "listLinkedRepoDir",
|
|
345
|
+
value: function listLinkedRepoDir(docUuid, wikiId, linkedRepoId, dirPath) {
|
|
346
|
+
var url = "/api/v2.1/wiki2/".concat(wikiId, "/linked-repos/").concat(linkedRepoId, "/dir/");
|
|
347
|
+
return this.req.get(url, {
|
|
348
|
+
params: {
|
|
349
|
+
p: dirPath,
|
|
350
|
+
file_uuid: docUuid
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}, {
|
|
355
|
+
key: "getLinkedRepoFileId",
|
|
356
|
+
value: function getLinkedRepoFileId(docUuid, wikiId, linkedRepoId, p) {
|
|
357
|
+
var url = "/api/v2.1/wiki2/".concat(wikiId, "/linked-repos/").concat(linkedRepoId, "/file-uuid/");
|
|
358
|
+
return this.req.get(url, {
|
|
359
|
+
params: {
|
|
360
|
+
p: p,
|
|
361
|
+
file_uuid: docUuid
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
}
|
|
343
365
|
}]);
|
|
344
366
|
}();
|
|
345
367
|
var _default = exports["default"] = SeafileAPI;
|
|
@@ -38,7 +38,8 @@ function CommentImagePreviewer(props) {
|
|
|
38
38
|
shouldReturnFocusAfterClose: false
|
|
39
39
|
},
|
|
40
40
|
zoomInTip: t('Zoom_in'),
|
|
41
|
-
zoomOutTip: t('Zoom_out')
|
|
41
|
+
zoomOutTip: t('Zoom_out'),
|
|
42
|
+
closeTip: t('Close')
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
var _default = exports["default"] = CommentImagePreviewer;
|
|
@@ -234,7 +234,7 @@ var CommentList = function CommentList(_ref) {
|
|
|
234
234
|
settings: (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, _context2["default"].getSettings()), {}, {
|
|
235
235
|
mediaUrl: _context2["default"].getSetting('mediaUrl') + 'comment-editor/'
|
|
236
236
|
}),
|
|
237
|
-
placeholder: '
|
|
237
|
+
placeholder: 'shift_enter_for_new_line_Enter_to_send',
|
|
238
238
|
addParticipants: addParticipants,
|
|
239
239
|
participants: participants,
|
|
240
240
|
collaborators: collaborators,
|
|
@@ -281,7 +281,7 @@ var CommentList = function CommentList(_ref) {
|
|
|
281
281
|
settings: (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, _context2["default"].getSettings()), {}, {
|
|
282
282
|
mediaUrl: _context2["default"].getSetting('mediaUrl') + 'comment-editor/'
|
|
283
283
|
}),
|
|
284
|
-
placeholder: '
|
|
284
|
+
placeholder: 'shift_enter_for_new_line_Enter_to_send',
|
|
285
285
|
addParticipants: addParticipants,
|
|
286
286
|
participants: participants,
|
|
287
287
|
collaborators: collaborators,
|
|
@@ -172,7 +172,7 @@ var GlobalComment = function GlobalComment(_ref) {
|
|
|
172
172
|
setActiveCommentGroup(null);
|
|
173
173
|
}
|
|
174
174
|
}, [commentList, deleteUnseenNotifications]);
|
|
175
|
-
var commentEditorPlaceholder =
|
|
175
|
+
var commentEditorPlaceholder = t('shift_enter_for_new_line_Enter_to_send');
|
|
176
176
|
(0, _react.useEffect)(function () {
|
|
177
177
|
if (!contentRef.current) return;
|
|
178
178
|
if (showEditor) {
|
package/dist/context.js
CHANGED
|
@@ -54,6 +54,24 @@ var Context = /*#__PURE__*/function () {
|
|
|
54
54
|
}
|
|
55
55
|
return _this.settings['repos'];
|
|
56
56
|
});
|
|
57
|
+
(0, _defineProperty2["default"])(this, "getLinkedRepos", function () {
|
|
58
|
+
var repos = _this.getWikiRepos() || [];
|
|
59
|
+
var wikiSettings = _this.getWikiSettings() || {};
|
|
60
|
+
var linkedRepos = wikiSettings.linked_repos || [];
|
|
61
|
+
if (!Array.isArray(repos) || !Array.isArray(linkedRepos) || linkedRepos.length === 0) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
var linkedMap = linkedRepos.reduce(function (ret, id) {
|
|
65
|
+
ret[id] = true;
|
|
66
|
+
return ret;
|
|
67
|
+
}, {});
|
|
68
|
+
return repos.filter(function (item) {
|
|
69
|
+
return linkedMap[item.repo_id];
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
(0, _defineProperty2["default"])(this, "hasLinkedRepos", function () {
|
|
73
|
+
return _this.getLinkedRepos().length > 0;
|
|
74
|
+
});
|
|
57
75
|
(0, _defineProperty2["default"])(this, "uploadLocalImage", function (imageFiles) {
|
|
58
76
|
var docUuid = _this.getSetting('docUuid');
|
|
59
77
|
return _this.api.uploadSdocImage(docUuid, imageFiles).then(function (res) {
|
|
@@ -463,6 +481,20 @@ var Context = /*#__PURE__*/function () {
|
|
|
463
481
|
var wikiId = this.getSetting('wikiId');
|
|
464
482
|
return this.api.modifyView(wikiId, fileViewId, viewData);
|
|
465
483
|
}
|
|
484
|
+
}, {
|
|
485
|
+
key: "listLinkedRepoDir",
|
|
486
|
+
value: function listLinkedRepoDir(repoID, nodePath) {
|
|
487
|
+
var wikiId = this.getSetting('wikiId');
|
|
488
|
+
var docUuid = this.getSetting('docUuid');
|
|
489
|
+
return this.api.listLinkedRepoDir(docUuid, wikiId, repoID, nodePath);
|
|
490
|
+
}
|
|
491
|
+
}, {
|
|
492
|
+
key: "getLinkedRepoFileId",
|
|
493
|
+
value: function getLinkedRepoFileId(repoID, nodePath) {
|
|
494
|
+
var wikiId = this.getSetting('wikiId');
|
|
495
|
+
var docUuid = this.getSetting('docUuid');
|
|
496
|
+
return this.api.getLinkedRepoFileId(docUuid, wikiId, repoID, nodePath);
|
|
497
|
+
}
|
|
466
498
|
}]);
|
|
467
499
|
}();
|
|
468
500
|
var context = new Context();
|
|
@@ -25,7 +25,8 @@ var _index4 = _interopRequireDefault(require("../../plugins/video/dialog/add-vid
|
|
|
25
25
|
var _helpers2 = require("../../plugins/video/helpers");
|
|
26
26
|
var _index5 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
|
|
27
27
|
var _index6 = _interopRequireDefault(require("../select-file-dialog/index.js"));
|
|
28
|
-
var _index7 = _interopRequireDefault(require("../
|
|
28
|
+
var _index7 = _interopRequireDefault(require("../select-lib-file-dialog/index.js"));
|
|
29
|
+
var _index8 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
|
|
29
30
|
var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
30
31
|
var editor = _ref.editor;
|
|
31
32
|
var _useState = (0, _react.useState)(''),
|
|
@@ -258,6 +259,16 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
258
259
|
};
|
|
259
260
|
return /*#__PURE__*/_react["default"].createElement(_index6["default"], fileLinkProps);
|
|
260
261
|
}
|
|
262
|
+
case _constants2.ELEMENT_TYPE.FILE:
|
|
263
|
+
{
|
|
264
|
+
var _fileLinkProps = {
|
|
265
|
+
editor: validEditor,
|
|
266
|
+
dialogType: dialogType,
|
|
267
|
+
insertLinkCallback: insertLinkCallback,
|
|
268
|
+
closeDialog: closeDialog
|
|
269
|
+
};
|
|
270
|
+
return /*#__PURE__*/_react["default"].createElement(_index7["default"], _fileLinkProps);
|
|
271
|
+
}
|
|
261
272
|
case _constants2.ELEMENT_TYPE.WHITEBOARD:
|
|
262
273
|
{
|
|
263
274
|
var whiteboardProps = {
|
|
@@ -324,7 +335,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
324
335
|
case _constants2.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
|
|
325
336
|
{
|
|
326
337
|
if (editor.editorType === _constants.WIKI_EDITOR) {
|
|
327
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
338
|
+
return /*#__PURE__*/_react["default"].createElement(_index8["default"], {
|
|
328
339
|
element: slateNode,
|
|
329
340
|
editor: editor,
|
|
330
341
|
closeDialog: closeDialog
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.whiteboardFileIcon = exports.parcelFileTypeIcon = exports.getSdocFileIcon = exports.getFileTypeIcon = exports.addDataToTree = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
|
+
var _context = _interopRequireDefault(require("../../../context"));
|
|
10
|
+
var _constants = require("../../constants");
|
|
11
|
+
var _addDataToTree = exports.addDataToTree = function addDataToTree(treeData, indexId, childrenData, path) {
|
|
12
|
+
for (var i = 0; i < treeData.length; i++) {
|
|
13
|
+
var _treeData$i;
|
|
14
|
+
if (treeData[i].indexId === indexId) {
|
|
15
|
+
treeData[i].children = childrenData;
|
|
16
|
+
treeData[i].children.forEach(function (child) {
|
|
17
|
+
child.path = path + "/".concat(child.name);
|
|
18
|
+
});
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
if ((_treeData$i = treeData[i]) !== null && _treeData$i !== void 0 && _treeData$i.children) {
|
|
22
|
+
var _treeData$i2;
|
|
23
|
+
_addDataToTree((_treeData$i2 = treeData[i]) === null || _treeData$i2 === void 0 ? void 0 : _treeData$i2.children, indexId, childrenData, path);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return treeData;
|
|
27
|
+
};
|
|
28
|
+
var getSdocFileIcon = exports.getSdocFileIcon = function getSdocFileIcon() {
|
|
29
|
+
var server = _context["default"].getSetting('serviceUrl');
|
|
30
|
+
return "".concat(server, "/media/img/file/256/sdoc.png");
|
|
31
|
+
};
|
|
32
|
+
var whiteboardFileIcon = exports.whiteboardFileIcon = function whiteboardFileIcon() {
|
|
33
|
+
var server = _context["default"].getSetting('serviceUrl');
|
|
34
|
+
return "".concat(server, "/media/img/file/256/draw.png");
|
|
35
|
+
};
|
|
36
|
+
var getFileTypeIcon = exports.getFileTypeIcon = function getFileTypeIcon(fileType) {
|
|
37
|
+
var imgResource = ['css', 'draw', 'excel', 'md', 'music', 'pdf', 'pic', 'ppt', 'psd', 'sdoc', 'txt', 'video', 'zip', 'word'];
|
|
38
|
+
if (imgResource.includes(fileType)) {
|
|
39
|
+
var server = _context["default"].getSetting('serviceUrl');
|
|
40
|
+
return "".concat(server, "/media/img/file/256/").concat(fileType, ".png");
|
|
41
|
+
} else {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var parcelFileTypeIcon = exports.parcelFileTypeIcon = function parcelFileTypeIcon(fileName) {
|
|
46
|
+
var _Object$entries$find;
|
|
47
|
+
if (!fileName) return '';
|
|
48
|
+
var newFileType = fileName.split('.').pop();
|
|
49
|
+
var fileExtType = (_Object$entries$find = Object.entries(_constants.FILEEXT_TYPE).find(function (_ref) {
|
|
50
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
51
|
+
extensions = _ref2[1];
|
|
52
|
+
return extensions.some(function (ext) {
|
|
53
|
+
return ext.toLowerCase() === newFileType.toLowerCase();
|
|
54
|
+
});
|
|
55
|
+
})) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0];
|
|
56
|
+
var fileTypeResult = fileExtType ? _constants.FILEEXT_TYPE_MAP[fileExtType] : newFileType;
|
|
57
|
+
var fileTypeIcon = getFileTypeIcon(fileTypeResult);
|
|
58
|
+
return fileTypeIcon;
|
|
59
|
+
};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
.sdoc-file-select-dialog {
|
|
2
|
+
max-width: 700px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sdoc-file-select-dialog .sdoc-file-select-modal {
|
|
6
|
+
width: 700px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.sdoc-file-select-dialog .highlight-bg-color {
|
|
10
|
+
background-color: #FF8000;
|
|
11
|
+
border-color: #FF8000;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.sdoc-file-select-dialog .modal-header-container {
|
|
15
|
+
display: flex;
|
|
16
|
+
position: relative;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
align-items: center;
|
|
19
|
+
width: 100%;
|
|
20
|
+
height: 57px;
|
|
21
|
+
padding: 16px;
|
|
22
|
+
border-bottom: 1px solid #e9ecef;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.sdoc-file-select-dialog .modal-title-container {
|
|
26
|
+
flex: 0 1 auto;
|
|
27
|
+
white-space: nowrap;
|
|
28
|
+
position: relative;
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
margin: auto 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.sdoc-close-dialog {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
width: 28px;
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sdoc-file-select-dialog .modal-header-container .sdoc-sm-close {
|
|
44
|
+
font-size: 16px;
|
|
45
|
+
color: #666666;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.sdoc-file-select-dialog .modal-header-container .sdoc-sm-close:hover {
|
|
49
|
+
background-color: #EFEFEF;
|
|
50
|
+
border-radius: 3px;
|
|
51
|
+
height: 28px;
|
|
52
|
+
width: 28px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.sdoc-file-select-dialog .sdoc-file-select__side-panel {
|
|
56
|
+
padding: 1rem;
|
|
57
|
+
line-height: 24px;
|
|
58
|
+
text-overflow: ellipsis;
|
|
59
|
+
white-space: nowrap;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-item {
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
position: relative;
|
|
66
|
+
height: 32px;
|
|
67
|
+
padding: 0 10px 0 14px;
|
|
68
|
+
cursor: default;
|
|
69
|
+
transition: background-color 0.3s ease, font-weight 0.3s ease;
|
|
70
|
+
border: none;
|
|
71
|
+
border-radius: 3px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-item:hover {
|
|
75
|
+
background-color: var(--bs-nav-hover-bg, #f5f5f5);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-item.active {
|
|
79
|
+
background-color: var(--bs-nav-active-bg, #f3f3f3);
|
|
80
|
+
font-weight: 500;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-item.active::before {
|
|
84
|
+
content: '';
|
|
85
|
+
display: block;
|
|
86
|
+
position: absolute;
|
|
87
|
+
top: 4px;
|
|
88
|
+
left: 0;
|
|
89
|
+
width: 4px;
|
|
90
|
+
height: 24px;
|
|
91
|
+
background-color: #ff9800;
|
|
92
|
+
border-radius: 2px;
|
|
93
|
+
z-index: 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-item .lib-icon {
|
|
97
|
+
flex-shrink: 0;
|
|
98
|
+
margin-right: 8px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.sdoc-file-select-dialog .sdoc-file-select__repo-name {
|
|
102
|
+
overflow: hidden;
|
|
103
|
+
text-overflow: ellipsis;
|
|
104
|
+
white-space: nowrap;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.sdoc-file-select__main-panel .sdoc-file-select-footer {
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: flex-end;
|
|
111
|
+
padding: 1rem;
|
|
112
|
+
border-top: 1px solid #e9ecef;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@media (max-width: 768px) {
|
|
116
|
+
.sdoc-file-select-dialog .sdoc-file-select__side-panel,
|
|
117
|
+
.sdoc-file-select-dialog .sdoc-file-select__main-panel {
|
|
118
|
+
max-width: 100% !important;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.sdoc-file-select-dialog .sdoc-file-select__side-panel {
|
|
122
|
+
border-right: none !important;
|
|
123
|
+
border-bottom: 1px solid #e9ecef;
|
|
124
|
+
overflow-x: auto;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _reactI18next = require("react-i18next");
|
|
13
|
+
var _reactstrap = require("reactstrap");
|
|
14
|
+
var _lib = _interopRequireDefault(require("../../../assets/images/lib.png"));
|
|
15
|
+
var _toast = _interopRequireDefault(require("../../../components/toast"));
|
|
16
|
+
var _context = _interopRequireDefault(require("../../../context"));
|
|
17
|
+
var _commonUtils = require("../../../utils/common-utils");
|
|
18
|
+
var _treeView = _interopRequireDefault(require("./tree-view"));
|
|
19
|
+
require("./index.css");
|
|
20
|
+
var SelectLibFileDialog = function SelectLibFileDialog(_ref) {
|
|
21
|
+
var _enableRepos$;
|
|
22
|
+
var editor = _ref.editor,
|
|
23
|
+
dialogType = _ref.dialogType,
|
|
24
|
+
closeDialog = _ref.closeDialog,
|
|
25
|
+
insertLinkCallback = _ref.insertLinkCallback;
|
|
26
|
+
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
27
|
+
t = _useTranslation.t;
|
|
28
|
+
var _useState = (0, _react.useState)(null),
|
|
29
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
30
|
+
currentSelectedFile = _useState2[0],
|
|
31
|
+
setCurrentSelectedFile = _useState2[1];
|
|
32
|
+
var enableRepos = (0, _react.useMemo)(function () {
|
|
33
|
+
return _context["default"].getLinkedRepos();
|
|
34
|
+
}, []);
|
|
35
|
+
var _useState3 = (0, _react.useState)(((_enableRepos$ = enableRepos[0]) === null || _enableRepos$ === void 0 ? void 0 : _enableRepos$.repo_id) || ''),
|
|
36
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
37
|
+
currentRepoId = _useState4[0],
|
|
38
|
+
setCurrentRepoId = _useState4[1];
|
|
39
|
+
var onSelectedFile = (0, _react.useCallback)(function (fileInfo) {
|
|
40
|
+
setCurrentSelectedFile(fileInfo);
|
|
41
|
+
}, []);
|
|
42
|
+
var onSelectRepo = (0, _react.useCallback)(function (repoId) {
|
|
43
|
+
if (repoId === currentRepoId) return;
|
|
44
|
+
setCurrentRepoId(repoId);
|
|
45
|
+
setCurrentSelectedFile(null);
|
|
46
|
+
}, [currentRepoId]);
|
|
47
|
+
var insertFile = (0, _react.useCallback)(function (fileInfo) {
|
|
48
|
+
var _ref2 = insertLinkCallback || {},
|
|
49
|
+
insertFileLinkCallback = _ref2.insertFileLinkCallback;
|
|
50
|
+
insertFileLinkCallback && insertFileLinkCallback(editor, fileInfo.name, fileInfo.file_uuid);
|
|
51
|
+
}, [insertLinkCallback, editor]);
|
|
52
|
+
var onSubmit = (0, _react.useCallback)(function () {
|
|
53
|
+
if (!currentSelectedFile) return;
|
|
54
|
+
var file_uuid = currentSelectedFile.file_uuid;
|
|
55
|
+
var fileInfo = (0, _objectSpread2["default"])({}, currentSelectedFile);
|
|
56
|
+
|
|
57
|
+
// File has no id
|
|
58
|
+
if (!file_uuid || file_uuid === '') {
|
|
59
|
+
_context["default"].getLinkedRepoFileId(currentRepoId, currentSelectedFile.path).then(function (res) {
|
|
60
|
+
if (res.status === 200) {
|
|
61
|
+
fileInfo = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, currentSelectedFile), {}, {
|
|
62
|
+
file_uuid: res.data.file_uuid
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
insertFile(fileInfo);
|
|
66
|
+
closeDialog();
|
|
67
|
+
})["catch"](function (error) {
|
|
68
|
+
var errorMessage = (0, _commonUtils.getErrorMsg)(error);
|
|
69
|
+
_toast["default"].danger(errorMessage);
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
insertFile(fileInfo);
|
|
74
|
+
closeDialog();
|
|
75
|
+
}, [closeDialog, currentRepoId, currentSelectedFile, insertFile]);
|
|
76
|
+
return /*#__PURE__*/_react["default"].createElement(_reactstrap.Modal, {
|
|
77
|
+
isOpen: true,
|
|
78
|
+
autoFocus: true,
|
|
79
|
+
zIndex: 1071,
|
|
80
|
+
returnFocusAfterClose: false,
|
|
81
|
+
className: "sdoc-file-select-dialog",
|
|
82
|
+
contentClassName: "sdoc-file-select-modal",
|
|
83
|
+
toggle: closeDialog
|
|
84
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
85
|
+
className: "modal-header-container"
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement("h5", {
|
|
87
|
+
className: "modal-title-container"
|
|
88
|
+
}, t('Select_file')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
89
|
+
className: "modal-operation-container"
|
|
90
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
91
|
+
className: "sdocfont sdoc-sm-close sdoc-close-dialog",
|
|
92
|
+
onClick: closeDialog
|
|
93
|
+
}))), /*#__PURE__*/_react["default"].createElement(_reactstrap.ModalBody, {
|
|
94
|
+
className: "p-0"
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
+
className: "sdoc-file-select-container row"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
98
|
+
className: "sdoc-file-select__side-panel border-end col-12 col-md-3"
|
|
99
|
+
}, enableRepos.map(function (repo) {
|
|
100
|
+
var isActive = repo.repo_id === currentRepoId;
|
|
101
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
102
|
+
key: repo.repo_id,
|
|
103
|
+
className: "sdoc-file-select__repo-item ".concat(isActive ? 'active' : ''),
|
|
104
|
+
title: repo.repo_name,
|
|
105
|
+
role: "button",
|
|
106
|
+
tabIndex: 0,
|
|
107
|
+
onClick: function onClick() {
|
|
108
|
+
return onSelectRepo(repo.repo_id);
|
|
109
|
+
},
|
|
110
|
+
onKeyDown: function onKeyDown(event) {
|
|
111
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
onSelectRepo(repo.repo_id);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
117
|
+
className: "lib-icon",
|
|
118
|
+
src: _lib["default"],
|
|
119
|
+
width: "20",
|
|
120
|
+
alt: ""
|
|
121
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
122
|
+
className: "sdoc-file-select__repo-name"
|
|
123
|
+
}, repo.repo_name));
|
|
124
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
|
+
className: "sdoc-file-select__main-panel col-12 col-md-9"
|
|
126
|
+
}, currentRepoId && /*#__PURE__*/_react["default"].createElement(_treeView["default"], {
|
|
127
|
+
repoID: currentRepoId,
|
|
128
|
+
onSelectedFile: onSelectedFile,
|
|
129
|
+
toggle: closeDialog
|
|
130
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
131
|
+
className: "sdoc-file-select-footer"
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
|
|
133
|
+
color: "secondary",
|
|
134
|
+
className: "mr-2",
|
|
135
|
+
onClick: closeDialog
|
|
136
|
+
}, t('Cancel')), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
|
|
137
|
+
color: "primary",
|
|
138
|
+
className: "highlight-bg-color",
|
|
139
|
+
disabled: !currentSelectedFile,
|
|
140
|
+
onClick: onSubmit
|
|
141
|
+
}, t('Submit')))))));
|
|
142
|
+
};
|
|
143
|
+
var _default = exports["default"] = SelectLibFileDialog;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
.sdoc-files-tree {
|
|
2
|
+
flex: 1;
|
|
3
|
+
padding: 8px 16px;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 400px;
|
|
6
|
+
overflow-y: auto;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.sdoc-files-tree .sdoc-file-info {
|
|
12
|
+
border-radius: 2px;
|
|
13
|
+
height: 32px;
|
|
14
|
+
line-height: 32px;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
text-overflow: ellipsis;
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
position: relative;
|
|
19
|
+
padding-left: 2.8rem;
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sdoc-files-tree .sdoc-file-info:hover {
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
background-color: #f5f5f5;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-icon-container {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
width: 2.8rem;
|
|
33
|
+
height: 100%;
|
|
34
|
+
padding-left: 1.5rem;
|
|
35
|
+
position: absolute;
|
|
36
|
+
left: 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.sdoc-file-icon-container .whiteboard-file-img,
|
|
40
|
+
.sdoc-file-icon-container .video-file-img,
|
|
41
|
+
.sdoc-file-icon-container .sdoc-file-img {
|
|
42
|
+
position: absolute;
|
|
43
|
+
width: 21.6px;
|
|
44
|
+
right: 1px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.sdoc-files-tree .sdoc-file-checked {
|
|
48
|
+
position: absolute;
|
|
49
|
+
right: 10px;
|
|
50
|
+
color: #666;
|
|
51
|
+
font-size: 14px;
|
|
52
|
+
font-weight: 400;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-icon {
|
|
56
|
+
color: #666;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.sdoc-files-tree .sdoc-file-info.active {
|
|
60
|
+
background-color: #f5f5f5;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.sdoc-files-tree .sdoc-file-icon-toggle {
|
|
64
|
+
height: 1.5rem;
|
|
65
|
+
width: 1.5rem;
|
|
66
|
+
line-height: 1.5rem !important;
|
|
67
|
+
font-size: 12px !important;
|
|
68
|
+
text-align: center;
|
|
69
|
+
position: absolute;
|
|
70
|
+
left: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.sdoc-files-tree .sdoc-file-info.expanded .sdoc-file-icon-toggle {
|
|
74
|
+
transform: rotate(90deg);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-name {
|
|
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
|
+
}
|
|
87
|
+
|
|
88
|
+
.sdoc-files-tree .sdoc-folder-children {
|
|
89
|
+
padding-left: 20px;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.sdoc-files-tree .sdoc-folder-children-empty {
|
|
93
|
+
color: #999;
|
|
94
|
+
padding: 4px 20px;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-search-folder-name {
|
|
98
|
+
font-size: 14px;
|
|
99
|
+
color: #7d7d7d;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-info {
|
|
103
|
+
height: 59px;
|
|
104
|
+
padding: 10px 50px;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
border-radius: 2px;
|
|
108
|
+
overflow: hidden;
|
|
109
|
+
text-overflow: ellipsis;
|
|
110
|
+
white-space: nowrap;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-info .sdoc-file-icon-container .whiteboard-file-img,
|
|
114
|
+
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-info .sdoc-file-icon-container .sdoc-file-img {
|
|
115
|
+
width: 36px;
|
|
116
|
+
height: 36px;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.sdoc-folder-container.sdoc-folder-search-results .sdoc-file-name,
|
|
120
|
+
.sdoc-search-folder-name {
|
|
121
|
+
height: 19.5px;
|
|
122
|
+
display: flex;
|
|
123
|
+
align-items: center;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.sdoc-files-tree .sdoc-file-search-no-result {
|
|
127
|
+
display: flex;
|
|
128
|
+
justify-content: center;
|
|
129
|
+
}
|