@seafile/seafile-editor 3.0.39 → 3.0.40-beta
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/containers/outline/index.js +5 -1
- package/dist/containers/outline/style.css +7 -1
- package/dist/editors/slate-viewer/index.js +3 -1
- package/dist/extension/commons/tooltip/index.css +2 -1
- package/dist/extension/plugins/header/menu/index.js +5 -0
- package/dist/extension/plugins/image/render-element/index.js +14 -5
- package/dist/extension/toolbar/header-toolbar/insert-toolbar/index.js +1 -1
- package/dist/pages/markdown-view.js +2 -0
- package/package.json +1 -1
- package/public/locales/en/seafile-editor.json +1 -0
- package/public/locales/zh-CN/seafile-editor.json +4 -0
- package/public/locales/zh_CN/seafile-editor.json +1 -0
|
@@ -14,6 +14,7 @@ var _useScrollContext = require("../../hooks/use-scroll-context");
|
|
|
14
14
|
var _constants = require("../../constants");
|
|
15
15
|
var _eventBus = _interopRequireDefault(require("../../utils/event-bus"));
|
|
16
16
|
var _eventTypes = require("../../constants/event-types");
|
|
17
|
+
var _tooltip = _interopRequireDefault(require("../../extension/commons/tooltip"));
|
|
17
18
|
require("./style.css");
|
|
18
19
|
const getOutlineSetting = () => {
|
|
19
20
|
const currentValue = localStorage.getItem('sf-editor');
|
|
@@ -95,9 +96,12 @@ const Outline = _ref => {
|
|
|
95
96
|
}, /*#__PURE__*/_react.default.createElement("h2", {
|
|
96
97
|
className: "sf-editor-outline-header_title"
|
|
97
98
|
}, t('Outline')), /*#__PURE__*/_react.default.createElement("span", {
|
|
99
|
+
id: "sf-editor-outline-header-close",
|
|
98
100
|
className: "sf-editor-outline-header_close mdfont md-sm-close",
|
|
99
101
|
onClick: toggleShow
|
|
100
|
-
})
|
|
102
|
+
}), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
103
|
+
target: "sf-editor-outline-header-close"
|
|
104
|
+
}, t('Close'))), headerList.length === 0 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
101
105
|
className: "empty-container"
|
|
102
106
|
}, t('No_outline')) : /*#__PURE__*/_react.default.createElement("div", {
|
|
103
107
|
className: "sf-editor-outline-list-container"
|
|
@@ -41,10 +41,16 @@
|
|
|
41
41
|
.sf-editor-outline-header_close {
|
|
42
42
|
cursor: pointer;
|
|
43
43
|
font-size: 14px;
|
|
44
|
+
width: 24px;
|
|
45
|
+
height: 24px;
|
|
46
|
+
line-height: 24px;
|
|
47
|
+
text-align: center;
|
|
48
|
+
color: #666;
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
.sf-editor-outline-header_close:hover {
|
|
47
|
-
color: #
|
|
52
|
+
background-color: #EFEFEF;
|
|
53
|
+
border-radius: 2px;
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
.sf-editor-outline-list-container {
|
|
@@ -24,7 +24,8 @@ function SlateViewer(_ref) {
|
|
|
24
24
|
isShowOutline,
|
|
25
25
|
scrollRef: externalScrollRef,
|
|
26
26
|
onLinkClick,
|
|
27
|
-
options
|
|
27
|
+
options,
|
|
28
|
+
server
|
|
28
29
|
} = _ref;
|
|
29
30
|
const scrollRef = (0, _react.useRef)(null);
|
|
30
31
|
const {
|
|
@@ -76,6 +77,7 @@ function SlateViewer(_ref) {
|
|
|
76
77
|
readOnly: true,
|
|
77
78
|
decorate: decorate,
|
|
78
79
|
renderElement: props => (0, _extension.renderElement)((0, _objectSpread2.default)({
|
|
80
|
+
server,
|
|
79
81
|
options
|
|
80
82
|
}, props)),
|
|
81
83
|
renderLeaf: _extension.renderLeaf
|
|
@@ -26,6 +26,7 @@ const HeaderMenu = _ref => {
|
|
|
26
26
|
} = _ref;
|
|
27
27
|
const [isShowHeaderPopover, setIsShowHeaderPopover] = (0, _react.useState)(false);
|
|
28
28
|
const headerPopoverRef = (0, _react.useRef)();
|
|
29
|
+
const headerToggleRef = (0, _react.useRef)();
|
|
29
30
|
const {
|
|
30
31
|
t
|
|
31
32
|
} = (0, _reactI18next.useTranslation)(_constants2.TRANSLATE_NAMESPACE);
|
|
@@ -43,6 +44,9 @@ const HeaderMenu = _ref => {
|
|
|
43
44
|
const menu = headerPopoverRef.current;
|
|
44
45
|
const clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;
|
|
45
46
|
if (clickIsInMenu) return;
|
|
47
|
+
|
|
48
|
+
// in header toggle
|
|
49
|
+
if (headerToggleRef && headerPopoverRef.contains(e.target)) return;
|
|
46
50
|
setIsShowHeaderPopover(false);
|
|
47
51
|
unregisterEventHandler();
|
|
48
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -78,6 +82,7 @@ const HeaderMenu = _ref => {
|
|
|
78
82
|
'header-toggle-disabled': isDisabled
|
|
79
83
|
})
|
|
80
84
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
+
ref: headerToggleRef,
|
|
81
86
|
className: (0, _classnames.default)('sf-header-toggle', {
|
|
82
87
|
'header-toggle-disabled': isDisabled,
|
|
83
88
|
'header-popover-showed': isShowHeaderPopover
|
|
@@ -18,11 +18,12 @@ require("./style.css");
|
|
|
18
18
|
/* eslint-disable react-hooks/rules-of-hooks */
|
|
19
19
|
|
|
20
20
|
const renderImage = (_ref, editor) => {
|
|
21
|
-
var _element$data, _element$
|
|
21
|
+
var _element$data, _element$data3;
|
|
22
22
|
let {
|
|
23
23
|
attributes,
|
|
24
24
|
children,
|
|
25
|
-
element
|
|
25
|
+
element,
|
|
26
|
+
server
|
|
26
27
|
} = _ref;
|
|
27
28
|
const [isLoadingImage, setIsLoadingImage] = (0, _react.useState)(element === null || element === void 0 ? void 0 : (_element$data = element.data) === null || _element$data === void 0 ? void 0 : _element$data.init);
|
|
28
29
|
const [isError, setIsError] = (0, _react.useState)(false);
|
|
@@ -38,6 +39,14 @@ const renderImage = (_ref, editor) => {
|
|
|
38
39
|
const imgRef = (0, _react.useRef)(null);
|
|
39
40
|
const resizerRef = (0, _react.useRef)();
|
|
40
41
|
const isSelected = (0, _slateReact.useSelected)();
|
|
42
|
+
const imageSrc = (0, _react.useMemo)(() => {
|
|
43
|
+
var _element$data2;
|
|
44
|
+
let src = element === null || element === void 0 ? void 0 : (_element$data2 = element.data) === null || _element$data2 === void 0 ? void 0 : _element$data2.src;
|
|
45
|
+
if (server && src.startsWith('/')) {
|
|
46
|
+
src = (server.endsWith('/') ? server.slice(0, -1) : server) + src;
|
|
47
|
+
}
|
|
48
|
+
return src;
|
|
49
|
+
}, [server, element]);
|
|
41
50
|
(0, _react.useEffect)(() => {
|
|
42
51
|
const {
|
|
43
52
|
data = {}
|
|
@@ -112,8 +121,8 @@ const renderImage = (_ref, editor) => {
|
|
|
112
121
|
'selected': isSelected,
|
|
113
122
|
'error': isError
|
|
114
123
|
}),
|
|
115
|
-
alt: (element === null || element === void 0 ? void 0 : (_element$
|
|
116
|
-
src:
|
|
124
|
+
alt: (element === null || element === void 0 ? void 0 : (_element$data3 = element.data) === null || _element$data3 === void 0 ? void 0 : _element$data3.alt) || ' ' + t('Image_loading_failed'),
|
|
125
|
+
src: imageSrc,
|
|
117
126
|
width: element === null || element === void 0 ? void 0 : element.data.width,
|
|
118
127
|
height: element === null || element === void 0 ? void 0 : element.data.height
|
|
119
128
|
}), isSelected && !isLoadingImage && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -130,7 +139,7 @@ const renderImage = (_ref, editor) => {
|
|
|
130
139
|
}))), isResizing && /*#__PURE__*/_react.default.createElement("span", {
|
|
131
140
|
className: "image-size-info-tooltip"
|
|
132
141
|
}, "".concat(t('Width'), ":").concat(imgSizeInfo.width, " ").concat(t('Height'), ":").concat(imgSizeInfo.height)), isFullScreening && /*#__PURE__*/_react.default.createElement(_imagePreviewer.default, {
|
|
133
|
-
imgUrl:
|
|
142
|
+
imgUrl: imageSrc,
|
|
134
143
|
toggleImagePreviewer: toggleImagePreviewer
|
|
135
144
|
}), children);
|
|
136
145
|
};
|
|
@@ -82,7 +82,7 @@ const InsertToolbar = _ref => {
|
|
|
82
82
|
className: "sf-menu-with-dropdown-triangle"
|
|
83
83
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
84
84
|
className: caretIconClass
|
|
85
|
-
}))), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
85
|
+
}))), !isShowMenu && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
86
86
|
target: insertToolbarId
|
|
87
87
|
}, t('Insert')), !disabled && /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledPopover, {
|
|
88
88
|
target: insertToolbarId,
|
|
@@ -32,6 +32,7 @@ function MarkdownViewer(_ref) {
|
|
|
32
32
|
let {
|
|
33
33
|
isFetching,
|
|
34
34
|
isShowLoading = true,
|
|
35
|
+
server,
|
|
35
36
|
value,
|
|
36
37
|
mathJaxSource,
|
|
37
38
|
isShowOutline,
|
|
@@ -62,6 +63,7 @@ function MarkdownViewer(_ref) {
|
|
|
62
63
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
64
|
}, [isFetching, value, isShowLoading]);
|
|
64
65
|
const props = {
|
|
66
|
+
server,
|
|
65
67
|
options,
|
|
66
68
|
isSupportFormula: !!mathJaxSource,
|
|
67
69
|
value: richValue,
|
package/package.json
CHANGED
|
@@ -236,7 +236,11 @@
|
|
|
236
236
|
"Underline": "下划线",
|
|
237
237
|
"Row_number": "行数",
|
|
238
238
|
"Column_number": "列数",
|
|
239
|
+
"This_link_is_not_verified": "此链接未经验证",
|
|
240
|
+
"This_link_is_not_verified_tip": "在继续之前,请确保你信任此链接。如果你不信任该URL,请不要打开链接以访问该网站。",
|
|
241
|
+
"Copy_link": "复制链接",
|
|
239
242
|
"Zoom_in": "放大",
|
|
240
243
|
"Zoom_out": "缩小",
|
|
244
|
+
"Divider": "分隔线",
|
|
241
245
|
"Close": "关闭"
|
|
242
246
|
}
|