@seafile/sdoc-editor 1.0.219 → 2.0.0
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/basic-sdk/assets/css/sdoc-editor-plugins.css +0 -55
- package/dist/basic-sdk/extension/plugins/image/helpers.js +1 -19
- package/dist/basic-sdk/extension/plugins/image/render-elem.js +2 -88
- package/dist/basic-sdk/extension/toolbar/header-toolbar/index.js +1 -4
- package/dist/basic-sdk/views/readonly-article.js +1 -4
- package/dist/basic-sdk/views/sdoc-viewer.js +3 -8
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +4 -3
- package/dist/components/tooltip/index.js +9 -8
- package/package.json +6 -7
- package/public/locales/cs/sdoc-editor.json +1 -4
- package/public/locales/de/sdoc-editor.json +1 -4
- package/public/locales/en/sdoc-editor.json +1 -4
- package/public/locales/es/sdoc-editor.json +1 -4
- package/public/locales/es_AR/sdoc-editor.json +1 -4
- package/public/locales/es_MX/sdoc-editor.json +1 -4
- package/public/locales/fr/sdoc-editor.json +1 -4
- package/public/locales/it/sdoc-editor.json +1 -4
- package/public/locales/ru/sdoc-editor.json +1 -4
- package/public/locales/zh_CN/sdoc-editor.json +1 -4
- package/dist/components/copy-image-error-svg/index.js +0 -64
|
@@ -62,61 +62,6 @@
|
|
|
62
62
|
caret-color: transparent;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
.sdoc-editor__article .sdoc-image-wrapper .sdoc-image-placeholder-wrapper {
|
|
66
|
-
width: 100%;
|
|
67
|
-
aspect-ratio: 1;
|
|
68
|
-
background-color: #f0f0f0;
|
|
69
|
-
border: 1px solid #ccc;
|
|
70
|
-
padding: 0 3%;
|
|
71
|
-
max-width: 100%;
|
|
72
|
-
user-select: all;
|
|
73
|
-
pointer-events: all;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.sdoc-editor__article .sdoc-image-wrapper .sdoc-image-tip-content,
|
|
77
|
-
.sdoc-editor__article .sdoc-image-wrapper .sdoc-image-title {
|
|
78
|
-
user-select: none;
|
|
79
|
-
pointer-events: none;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.sdoc-editor__article .sdoc-image-title .sdoc-exclamation-circle {
|
|
83
|
-
font-size: 18px;
|
|
84
|
-
align-items: center;
|
|
85
|
-
justify-content: center;
|
|
86
|
-
color: red;
|
|
87
|
-
display: flex;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.sdoc-editor__article .sdoc-image-title .sdoc-image-tip-title {
|
|
91
|
-
color: red;
|
|
92
|
-
font-size: 18px;
|
|
93
|
-
user-select: none;
|
|
94
|
-
pointer-events: none;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.sdoc-editor__article .sdoc-image-process-container {
|
|
98
|
-
width: 40px;
|
|
99
|
-
height: 40px;
|
|
100
|
-
display: flex;
|
|
101
|
-
align-items: center;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.sdoc-editor__article .sdoc-image-process-container .loading-spinner {
|
|
105
|
-
border: 5px solid #d8d8d8;
|
|
106
|
-
border-top: 5px solid #939393;
|
|
107
|
-
border-radius: 50%;
|
|
108
|
-
width: 30px;
|
|
109
|
-
height: 30px;
|
|
110
|
-
animation: spin 1s linear infinite;
|
|
111
|
-
user-select: none;
|
|
112
|
-
pointer-events: none;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
@keyframes spin {
|
|
116
|
-
0% { transform: rotate(0deg); }
|
|
117
|
-
100% { transform: rotate(360deg); }
|
|
118
|
-
}
|
|
119
|
-
|
|
120
65
|
.sdoc-editor__article .sdoc-image-inner {
|
|
121
66
|
position: relative;
|
|
122
67
|
display: inline-block;
|
|
@@ -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.
|
|
7
|
+
exports.updateImage = exports.selectImageWhenSelectPartial = exports.resetCursor = exports.queryCopyMoveProgressView = exports.isInsertImageMenuDisabled = exports.insertImageFiles = exports.insertImage = exports.hasSdocImages = exports.handleBase64Image = exports.getSingleImageFromFragment = exports.getImageURL = exports.getImageData = exports.generateImageNode = void 0;
|
|
8
8
|
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
9
9
|
var _slate = require("@seafile/slate");
|
|
10
10
|
var _slateReact = require("@seafile/slate-react");
|
|
@@ -133,24 +133,6 @@ const updateImage = (editor, data) => {
|
|
|
133
133
|
});
|
|
134
134
|
};
|
|
135
135
|
exports.updateImage = updateImage;
|
|
136
|
-
const updateImageNode = (editor, originalUrl, newUrl) => {
|
|
137
|
-
_slate.Editor.nodes(editor, {
|
|
138
|
-
match: n => n.type === _constants2.IMAGE && n.data.src === originalUrl,
|
|
139
|
-
at: []
|
|
140
|
-
}).forEach(_ref => {
|
|
141
|
-
let [node, path] = _ref;
|
|
142
|
-
const newData = {
|
|
143
|
-
...node.data,
|
|
144
|
-
src: newUrl
|
|
145
|
-
};
|
|
146
|
-
_slate.Transforms.setNodes(editor, {
|
|
147
|
-
data: newData
|
|
148
|
-
}, {
|
|
149
|
-
at: path
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
exports.updateImageNode = updateImageNode;
|
|
154
136
|
const getImageURL = (data, editor) => {
|
|
155
137
|
const {
|
|
156
138
|
src: url,
|
|
@@ -21,8 +21,6 @@ var _constants2 = require("./constants");
|
|
|
21
21
|
var _constants3 = require("../../constants");
|
|
22
22
|
var _constants4 = require("../../../../constants");
|
|
23
23
|
var _imagePlaceholder = _interopRequireDefault(require("../../../assets/images/image-placeholder.png"));
|
|
24
|
-
var _context = _interopRequireDefault(require("../../../../context"));
|
|
25
|
-
var _copyImageErrorSvg = _interopRequireDefault(require("../../../../components/copy-image-error-svg"));
|
|
26
24
|
const Image = _ref => {
|
|
27
25
|
var _imageRef$current, _imageRef$current2;
|
|
28
26
|
let {
|
|
@@ -52,7 +50,6 @@ const Image = _ref => {
|
|
|
52
50
|
const imageRef = (0, _react.useRef)(null);
|
|
53
51
|
const resizerRef = (0, _react.useRef)(null);
|
|
54
52
|
const imageCaptionInputRef = (0, _react.useRef)(null);
|
|
55
|
-
const isLoadingRef = (0, _react.useRef)(false);
|
|
56
53
|
const scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
57
54
|
const [movingWidth, setMovingWidth] = (0, _react.useState)(null);
|
|
58
55
|
const [isResizing, setIsResizing] = (0, _react.useState)(false);
|
|
@@ -60,8 +57,6 @@ const Image = _ref => {
|
|
|
60
57
|
const [isShowImageHoverMenu, setIsShowImageHoverMenu] = (0, _react.useState)(false);
|
|
61
58
|
const [menuPosition, setMenuPosition] = (0, _react.useState)({});
|
|
62
59
|
const [caption, setCaption] = (0, _react.useState)((data === null || data === void 0 ? void 0 : data.caption) || '');
|
|
63
|
-
const [isLoading, setIsLoading] = (0, _react.useState)(false);
|
|
64
|
-
const [isCopyError, setIsCopyError] = (0, _react.useState)(false);
|
|
65
60
|
const registerEvent = (0, _react.useCallback)(eventList => {
|
|
66
61
|
eventList.forEach(element => {
|
|
67
62
|
document.addEventListener(element.eventName, element.event);
|
|
@@ -207,15 +202,6 @@ const Image = _ref => {
|
|
|
207
202
|
if (data.src.startsWith('data:image/jpeg;base64')) {
|
|
208
203
|
return (0, _helpers.handleBase64Image)(editor, path, data);
|
|
209
204
|
}
|
|
210
|
-
|
|
211
|
-
// Check whether copying images is wrong
|
|
212
|
-
if (data.src.startsWith('attachment') || data.src.endsWith('_copy_error')) {
|
|
213
|
-
if (!isCopyError) {
|
|
214
|
-
setIsCopyError(true);
|
|
215
|
-
}
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
if (isLoadingRef.current) return;
|
|
219
205
|
setIsShowImagePlaceholder(true);
|
|
220
206
|
// External network images do not reload after failure to load
|
|
221
207
|
if (!data.src.startsWith('http')) {
|
|
@@ -238,66 +224,7 @@ const Image = _ref => {
|
|
|
238
224
|
});
|
|
239
225
|
}
|
|
240
226
|
}, [data, editor, element]);
|
|
241
|
-
(
|
|
242
|
-
isLoadingRef.current = isLoading;
|
|
243
|
-
if (data.src.endsWith('_copy_error') && !isCopyError) {
|
|
244
|
-
setIsCopyError(true);
|
|
245
|
-
}
|
|
246
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
247
|
-
}, [isLoading, data.src]);
|
|
248
|
-
(0, _react.useEffect)(() => {
|
|
249
|
-
const {
|
|
250
|
-
src: url
|
|
251
|
-
} = data;
|
|
252
|
-
if (url && !url.startsWith('http')) return;
|
|
253
|
-
if (url && url.endsWith('_copy_error')) {
|
|
254
|
-
setIsCopyError(true);
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
// Return if copying image from local server
|
|
258
|
-
const serviceUrl = _context.default.getSetting('serviceUrl');
|
|
259
|
-
if (url && url.startsWith(serviceUrl)) return;
|
|
260
|
-
if (url && url.startsWith('http')) {
|
|
261
|
-
setIsLoading(true);
|
|
262
|
-
const downloadAndUploadImages = async url => {
|
|
263
|
-
try {
|
|
264
|
-
const response = await fetch(url);
|
|
265
|
-
if (response.ok) {
|
|
266
|
-
const blob = await response.blob();
|
|
267
|
-
const file = new File([blob], 'downloaded_image.png', {
|
|
268
|
-
type: blob.type
|
|
269
|
-
});
|
|
270
|
-
const imageUrl = await _context.default.uploadLocalImage([file]);
|
|
271
|
-
if (imageUrl && imageUrl[0]) {
|
|
272
|
-
(0, _helpers.updateImageNode)(editor, url, imageUrl[0]);
|
|
273
|
-
}
|
|
274
|
-
} else {
|
|
275
|
-
console.error(response.status);
|
|
276
|
-
const newUrl = url + '_copy_error';
|
|
277
|
-
(0, _helpers.updateImageNode)(editor, url, newUrl);
|
|
278
|
-
}
|
|
279
|
-
} catch (error) {
|
|
280
|
-
console.error(error);
|
|
281
|
-
const newUrl = url + '_copy_error';
|
|
282
|
-
(0, _helpers.updateImageNode)(editor, url, newUrl);
|
|
283
|
-
} finally {
|
|
284
|
-
setIsLoading(false);
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
downloadAndUploadImages(url);
|
|
288
|
-
}
|
|
289
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
290
|
-
}, []);
|
|
291
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLoading && /*#__PURE__*/_react.default.createElement("div", {
|
|
292
|
-
className: "sdoc-image-process-container",
|
|
293
|
-
style: {
|
|
294
|
-
display: 'inline-block'
|
|
295
|
-
}
|
|
296
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
297
|
-
className: "loading-spinner"
|
|
298
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
299
|
-
className: "spinner"
|
|
300
|
-
}))), isShowImagePlaceholder && /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
227
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isShowImagePlaceholder && /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
301
228
|
className: (0, _classnames.default)('sdoc-image-wrapper', className)
|
|
302
229
|
}, attributes, {
|
|
303
230
|
style: {
|
|
@@ -312,20 +239,7 @@ const Image = _ref => {
|
|
|
312
239
|
style: getImageStyle(),
|
|
313
240
|
draggable: false,
|
|
314
241
|
alt: ""
|
|
315
|
-
}), children),
|
|
316
|
-
className: (0, _classnames.default)('sdoc-image-wrapper', className)
|
|
317
|
-
}, attributes, {
|
|
318
|
-
style: {
|
|
319
|
-
...style
|
|
320
|
-
},
|
|
321
|
-
onMouseOver: e => (0, _helpers.selectImageWhenSelectPartial)(e, editor, element, isSelected),
|
|
322
|
-
contentEditable: "false",
|
|
323
|
-
suppressContentEditableWarning: true
|
|
324
|
-
}), /*#__PURE__*/_react.default.createElement(_copyImageErrorSvg.default, {
|
|
325
|
-
t: t,
|
|
326
|
-
isSelected: isSelected,
|
|
327
|
-
imageRef: imageRef
|
|
328
|
-
}), children), !isShowImagePlaceholder && !isCopyError && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
242
|
+
}), children), !isShowImagePlaceholder && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
329
243
|
"data-id": element.id,
|
|
330
244
|
className: (0, _classnames.default)('sdoc-image-wrapper', className)
|
|
331
245
|
}, attributes, {
|
|
@@ -25,7 +25,7 @@ var _core = require("../../core");
|
|
|
25
25
|
const HeaderToolbar = _ref => {
|
|
26
26
|
let {
|
|
27
27
|
editor,
|
|
28
|
-
readonly
|
|
28
|
+
readonly = false
|
|
29
29
|
} = _ref;
|
|
30
30
|
(0, _useSelectionUpdate.default)();
|
|
31
31
|
const isSelectTableCell = (0, _core.getSelectedNodeByType)(editor, _constants.TABLE_CELL);
|
|
@@ -78,7 +78,4 @@ const HeaderToolbar = _ref => {
|
|
|
78
78
|
readonly: readonly
|
|
79
79
|
})));
|
|
80
80
|
};
|
|
81
|
-
HeaderToolbar.defaultProps = {
|
|
82
|
-
readonly: false
|
|
83
|
-
};
|
|
84
81
|
var _default = exports.default = HeaderToolbar;
|
|
@@ -17,7 +17,7 @@ const ReadOnlyArticle = _ref => {
|
|
|
17
17
|
let {
|
|
18
18
|
editor,
|
|
19
19
|
slateValue,
|
|
20
|
-
showComment
|
|
20
|
+
showComment = false
|
|
21
21
|
} = _ref;
|
|
22
22
|
const decorate = (0, _decorates.usePipDecorate)(editor);
|
|
23
23
|
return /*#__PURE__*/_react.default.createElement(_slateReact.Slate, {
|
|
@@ -37,7 +37,4 @@ const ReadOnlyArticle = _ref => {
|
|
|
37
37
|
type: "editor"
|
|
38
38
|
})));
|
|
39
39
|
};
|
|
40
|
-
ReadOnlyArticle.defaultProps = {
|
|
41
|
-
showComment: false
|
|
42
|
-
};
|
|
43
40
|
var _default = exports.default = ReadOnlyArticle;
|
|
@@ -22,9 +22,9 @@ const SDocViewer = _ref => {
|
|
|
22
22
|
let {
|
|
23
23
|
editor,
|
|
24
24
|
document,
|
|
25
|
-
showToolbar,
|
|
26
|
-
showOutline,
|
|
27
|
-
showComment,
|
|
25
|
+
showToolbar = false,
|
|
26
|
+
showOutline = false,
|
|
27
|
+
showComment = false,
|
|
28
28
|
plugins = []
|
|
29
29
|
} = _ref;
|
|
30
30
|
if (!_context.default.api) {
|
|
@@ -65,9 +65,4 @@ const SDocViewer = _ref => {
|
|
|
65
65
|
slateValue: slateValue
|
|
66
66
|
}))))));
|
|
67
67
|
};
|
|
68
|
-
SDocViewer.defaultProps = {
|
|
69
|
-
showToolbar: false,
|
|
70
|
-
showOutline: false,
|
|
71
|
-
showComment: false
|
|
72
|
-
};
|
|
73
68
|
var _default = exports.default = SDocViewer;
|
|
@@ -45,11 +45,12 @@ const RevisionOperation = _ref => {
|
|
|
45
45
|
hideArrow: true,
|
|
46
46
|
toggle: toggle,
|
|
47
47
|
fade: false,
|
|
48
|
-
modifiers: {
|
|
49
|
-
|
|
48
|
+
modifiers: [{
|
|
49
|
+
name: 'preventOverflow',
|
|
50
|
+
options: {
|
|
50
51
|
boundariesElement: document.body
|
|
51
52
|
}
|
|
52
|
-
},
|
|
53
|
+
}],
|
|
53
54
|
ref: popoverRef
|
|
54
55
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
55
56
|
className: "sdoc-dropdown-menu-container"
|
|
@@ -14,20 +14,21 @@ const Tooltip = _ref => {
|
|
|
14
14
|
target,
|
|
15
15
|
children,
|
|
16
16
|
className,
|
|
17
|
-
modifiers,
|
|
17
|
+
modifiers = [],
|
|
18
18
|
placement = 'bottom',
|
|
19
19
|
fade = false,
|
|
20
20
|
delay = 0
|
|
21
21
|
} = _ref;
|
|
22
|
+
const hasBoundary = modifiers.find(item => item.name === 'preventOverflow');
|
|
23
|
+
const newModifiers = hasBoundary ? modifiers : [...modifiers, {
|
|
24
|
+
name: 'preventOverflow',
|
|
25
|
+
options: {
|
|
26
|
+
boundary: window.document.body
|
|
27
|
+
}
|
|
28
|
+
}];
|
|
22
29
|
const props = {
|
|
23
30
|
popperClassName: (0, _classnames.default)('sdoc-tooltip', className),
|
|
24
|
-
modifiers:
|
|
25
|
-
...modifiers,
|
|
26
|
-
preventOverflow: {
|
|
27
|
-
boundariesElement: window.document.body,
|
|
28
|
-
...(modifiers === null || modifiers === void 0 ? void 0 : modifiers.preventOverflow)
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
+
modifiers: newModifiers,
|
|
31
32
|
placement,
|
|
32
33
|
target,
|
|
33
34
|
fade,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "This is a sdoc editor",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"randomcolor": "0.6.2",
|
|
26
26
|
"react-color": "2.19.3",
|
|
27
27
|
"react-cookies": "0.1.1",
|
|
28
|
-
"reactstrap": "
|
|
28
|
+
"reactstrap": "9.2.3",
|
|
29
29
|
"rehype-format": "5.0.0",
|
|
30
30
|
"rehype-mathjax": "5.0.0",
|
|
31
31
|
"rehype-raw": "7.0.0",
|
|
@@ -80,7 +80,6 @@
|
|
|
80
80
|
"@babel/plugin-transform-modules-commonjs": "7.24.8",
|
|
81
81
|
"@babel/plugin-transform-private-methods": "7.23.3",
|
|
82
82
|
"@babel/runtime": "^7.10.2",
|
|
83
|
-
"@gatsbyjs/reach-router": "^1.3.9",
|
|
84
83
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
|
|
85
84
|
"@svgr/webpack": "8.1.0",
|
|
86
85
|
"babel-loader": "9.1.3",
|
|
@@ -100,7 +99,6 @@
|
|
|
100
99
|
"css-minimizer-webpack-plugin": "5.0.1",
|
|
101
100
|
"dotenv": "^10.0.0",
|
|
102
101
|
"dotenv-expand": "^5.1.0",
|
|
103
|
-
"dtable-sdk": "5.0.5",
|
|
104
102
|
"dtable-utils": "5.0.1",
|
|
105
103
|
"ejs": "3.1.10",
|
|
106
104
|
"eslint": "^8.3.0",
|
|
@@ -132,13 +130,14 @@
|
|
|
132
130
|
"prettier": "3.1.0",
|
|
133
131
|
"prop-types": "15.8.1",
|
|
134
132
|
"raf": "3.4.0",
|
|
135
|
-
"react": "
|
|
133
|
+
"react": "18.3.1",
|
|
136
134
|
"react-app-polyfill": "^3.0.0",
|
|
137
135
|
"react-dev-utils": "^12.0.1",
|
|
138
|
-
"react-dom": "
|
|
139
|
-
"react-hot-loader": "4.13.1",
|
|
136
|
+
"react-dom": "18.3.1",
|
|
140
137
|
"react-i18next": "12.1.4",
|
|
141
138
|
"react-refresh": "^0.11.0",
|
|
139
|
+
"react-router": "7.1.3",
|
|
140
|
+
"react-router-dom": "7.1.3",
|
|
142
141
|
"release-it": "17.3.0",
|
|
143
142
|
"resolve": "^1.20.0",
|
|
144
143
|
"resolve-url-loader": "^4.0.0",
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Videolink hinzufügen",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Add video link",
|
|
611
611
|
"Link_Seafile_video_file": "Link Seafile video file",
|
|
612
612
|
"Select_video_file": "Select video file",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "Добавить ссылку на видео",
|
|
611
611
|
"Link_Seafile_video_file": "Ссылка на видео файл Seafile",
|
|
612
612
|
"Select_video_file": "Выбрать видео файл",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "Изображение не может быть скопировано. Скачайте исходное изображение,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "и выбрать 「вставить」 - 「изображение」 для загрузки.",
|
|
616
|
-
"Image_copy_error": "Image copy error"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
617
614
|
}
|
|
@@ -610,8 +610,5 @@
|
|
|
610
610
|
"Add_video_link": "添加视频链接",
|
|
611
611
|
"Link_Seafile_video_file": "链接Seafile视频文件",
|
|
612
612
|
"Select_video_file": "选择视频文件",
|
|
613
|
-
"Support_Youtube_Tencent_Bilibili_and_more": "支持Youtube,腾讯视频,B站及其他平台"
|
|
614
|
-
"Image_cannot_be_copied_Please_download_the_source_image": "此照片不支持复制,请下载原图",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "后点击工具栏「插入」- 「照片」上传",
|
|
616
|
-
"Image_copy_error": "图片复制错误"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "支持Youtube,腾讯视频,B站及其他平台"
|
|
617
614
|
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
const Svg = _ref => {
|
|
11
|
-
let {
|
|
12
|
-
t,
|
|
13
|
-
isSelected,
|
|
14
|
-
imageRef
|
|
15
|
-
} = _ref;
|
|
16
|
-
return /*#__PURE__*/_react.default.createElement("svg", {
|
|
17
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
18
|
-
viewBox: "0 0 360 360",
|
|
19
|
-
preserveAspectRatio: "xMinYMin meet",
|
|
20
|
-
className: (0, _classnames.default)('sdoc-image-placeholder-wrapper', {
|
|
21
|
-
'image-selected': isSelected
|
|
22
|
-
}),
|
|
23
|
-
ref: imageRef,
|
|
24
|
-
draggable: false
|
|
25
|
-
}, /*#__PURE__*/_react.default.createElement("rect", {
|
|
26
|
-
width: "100%",
|
|
27
|
-
height: "100%",
|
|
28
|
-
fill: "#f0f0f0"
|
|
29
|
-
}), /*#__PURE__*/_react.default.createElement("g", {
|
|
30
|
-
className: "sdoc-image-content-wrapper",
|
|
31
|
-
transform: "translate(180, 180) scale(1)"
|
|
32
|
-
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
33
|
-
className: "sdoc-image-title",
|
|
34
|
-
transform: "translate(0, 0)"
|
|
35
|
-
}, /*#__PURE__*/_react.default.createElement("foreignObject", {
|
|
36
|
-
x: "-85",
|
|
37
|
-
y: "-16",
|
|
38
|
-
width: "20",
|
|
39
|
-
height: "28"
|
|
40
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
-
className: "sdocfont sdoc-exclamation-circle"
|
|
42
|
-
})), /*#__PURE__*/_react.default.createElement("text", {
|
|
43
|
-
className: "sdoc-image-tip-title",
|
|
44
|
-
transform: "translate(-55, 4)",
|
|
45
|
-
fontSize: "20",
|
|
46
|
-
fill: "red",
|
|
47
|
-
fontFamily: "Arial, sans-serif"
|
|
48
|
-
}, t('Image_copy_error'))), /*#__PURE__*/_react.default.createElement("text", {
|
|
49
|
-
className: "sdoc-image-tip-content",
|
|
50
|
-
transform: "translate(0, 35)",
|
|
51
|
-
fontSize: "12",
|
|
52
|
-
textAnchor: "middle",
|
|
53
|
-
fill: "black",
|
|
54
|
-
fontFamily: "Arial, sans-serif"
|
|
55
|
-
}, t('Image_cannot_be_copied_Please_download_the_source_image')), /*#__PURE__*/_react.default.createElement("text", {
|
|
56
|
-
className: "sdoc-image-tip-content",
|
|
57
|
-
transform: "translate(0, 55)",
|
|
58
|
-
fontSize: "12",
|
|
59
|
-
textAnchor: "middle",
|
|
60
|
-
fill: "black",
|
|
61
|
-
fontFamily: "Arial, sans-serif"
|
|
62
|
-
}, t('And_select_insert_-_image_to_upload'))));
|
|
63
|
-
};
|
|
64
|
-
var _default = exports.default = Svg;
|