@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.
@@ -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: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
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: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
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 = !activeCommentGroup ? t('Enter_comment_shift_enter_for_new_line_Enter_to_send') : t('Enter_reply_shift_Enter_for_new_line_Enter_to_send');
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("../wiki-file-insert-dialog/index.js"));
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(_index7["default"], {
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
+ }