@seafile/sdoc-editor 1.0.212-alph-2.1.0 → 1.0.213
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 +0 -4
- package/dist/basic-sdk/assets/css/sdoc-editor-plugins.css +0 -55
- package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +0 -2
- package/dist/basic-sdk/extension/plugins/image/constants/index.js +2 -3
- package/dist/basic-sdk/extension/plugins/image/helpers.js +2 -21
- package/dist/basic-sdk/extension/plugins/image/render-elem.js +16 -86
- package/package.json +1 -1
- package/public/locales/cs/sdoc-editor.json +1 -3
- package/public/locales/de/sdoc-editor.json +1 -3
- package/public/locales/en/sdoc-editor.json +1 -3
- package/public/locales/es/sdoc-editor.json +1 -3
- package/public/locales/es_AR/sdoc-editor.json +1 -3
- package/public/locales/es_MX/sdoc-editor.json +1 -3
- package/public/locales/fr/sdoc-editor.json +1 -3
- package/public/locales/it/sdoc-editor.json +1 -3
- package/public/locales/ru/sdoc-editor.json +1 -3
- package/public/locales/zh_CN/sdoc-editor.json +1 -3
package/dist/api/seafile-api.js
CHANGED
|
@@ -40,17 +40,13 @@ class SeafileAPI {
|
|
|
40
40
|
uploadSdocImage(docUuid, imageFiles) {
|
|
41
41
|
const url = '/api/v2.1/seadoc/upload-image/' + docUuid + '/';
|
|
42
42
|
const form = new FormData();
|
|
43
|
-
console.log(form, imageFiles);
|
|
44
43
|
for (const fileItem of imageFiles) {
|
|
45
|
-
console.log(imageFiles, fileItem);
|
|
46
44
|
if (fileItem.type.startsWith('image/')) {
|
|
47
45
|
const fileName = this.getImageFileNameWithUuid(fileItem);
|
|
48
46
|
const file = new File([fileItem], fileName, {
|
|
49
47
|
type: fileItem.type
|
|
50
48
|
});
|
|
51
|
-
console.log(1, file);
|
|
52
49
|
form.append('file', file);
|
|
53
|
-
console.log(form);
|
|
54
50
|
}
|
|
55
51
|
}
|
|
56
52
|
return this.req.post(url, form);
|
|
@@ -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;
|
|
@@ -44,9 +44,7 @@ const InsertElementDialog = _ref => {
|
|
|
44
44
|
const uploadLocalVideoInputRef = (0, _react.useRef)();
|
|
45
45
|
const onFileChanged = (0, _react.useCallback)(event => {
|
|
46
46
|
const files = event.target.files;
|
|
47
|
-
console.log(1, files);
|
|
48
47
|
_context.default.uploadLocalImage(files).then(fileUrl => {
|
|
49
|
-
console.log(2, fileUrl);
|
|
50
48
|
(0, _helpers.insertImage)(validEditor, fileUrl, validEditor.selection, insertPosition);
|
|
51
49
|
if (uploadLocalImageInputRef.current) {
|
|
52
50
|
uploadLocalImageInputRef.current.value = '';
|
|
@@ -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.IMAGE_DISPLAY_TYPE = exports.IMAGE_BORDER_TYPE = void 0;
|
|
8
8
|
var _blackBorder = _interopRequireDefault(require("../../../../assets/images/black-border.png"));
|
|
9
9
|
var _greyBorder = _interopRequireDefault(require("../../../../assets/images/grey-border.png"));
|
|
10
10
|
var _noBorder = _interopRequireDefault(require("../../../../assets/images/no-border.png"));
|
|
@@ -27,5 +27,4 @@ const IMAGE_BORDER_TYPE = exports.IMAGE_BORDER_TYPE = [{
|
|
|
27
27
|
type: 'black',
|
|
28
28
|
imgUrl: _blackBorder.default,
|
|
29
29
|
value: '2px solid #41464A'
|
|
30
|
-
}];
|
|
31
|
-
const SVG_WIDTH = exports.SVG_WIDTH = 360;
|
|
30
|
+
}];
|
|
@@ -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.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 =
|
|
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,25 +133,11 @@ const updateImage = (editor, data) => {
|
|
|
133
133
|
});
|
|
134
134
|
};
|
|
135
135
|
exports.updateImage = updateImage;
|
|
136
|
-
const downloadImage = async url => {
|
|
137
|
-
const response = await fetch(url);
|
|
138
|
-
const blob = await response.blob();
|
|
139
|
-
const file = new File([blob], 'downloaded_image', {
|
|
140
|
-
type: blob.type
|
|
141
|
-
});
|
|
142
|
-
// console.log(file, context.uploadLocalImage(file));
|
|
143
|
-
console.log(10);
|
|
144
|
-
const fileUrl = await _context.default.uploadLocalImage([file]);
|
|
145
|
-
console.log(fileUrl);
|
|
146
|
-
return fileUrl;
|
|
147
|
-
};
|
|
148
|
-
exports.downloadImage = downloadImage;
|
|
149
136
|
const getImageURL = (data, editor) => {
|
|
150
137
|
const {
|
|
151
138
|
src: url,
|
|
152
139
|
column_key
|
|
153
140
|
} = data;
|
|
154
|
-
console.log('data', data);
|
|
155
141
|
if (column_key) {
|
|
156
142
|
const column = (0, _helpers.getColumnByKey)(editor.columns || [], column_key);
|
|
157
143
|
const {
|
|
@@ -167,12 +153,7 @@ const getImageURL = (data, editor) => {
|
|
|
167
153
|
return imgUrl;
|
|
168
154
|
}
|
|
169
155
|
}
|
|
170
|
-
if (url && url.startsWith('http'))
|
|
171
|
-
// return url;
|
|
172
|
-
console.log(6, url);
|
|
173
|
-
// debugger;
|
|
174
|
-
return Promise.resolve().then(() => downloadImage(url));
|
|
175
|
-
}
|
|
156
|
+
if (url && url.startsWith('http')) return url;
|
|
176
157
|
const serviceUrl = _context.default.getSetting('serviceUrl');
|
|
177
158
|
const assetsUrl = _context.default.getSetting('assetsUrl');
|
|
178
159
|
return (0, _urlJoin.default)(serviceUrl, assetsUrl, url);
|
|
@@ -20,8 +20,9 @@ var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
|
20
20
|
var _constants2 = require("./constants");
|
|
21
21
|
var _constants3 = require("../../constants");
|
|
22
22
|
var _constants4 = require("../../../../constants");
|
|
23
|
+
var _imagePlaceholder = _interopRequireDefault(require("../../../assets/images/image-placeholder.png"));
|
|
23
24
|
const Image = _ref => {
|
|
24
|
-
var _imageRef$current, _imageRef$current2
|
|
25
|
+
var _imageRef$current, _imageRef$current2;
|
|
25
26
|
let {
|
|
26
27
|
element,
|
|
27
28
|
editor,
|
|
@@ -56,8 +57,6 @@ const Image = _ref => {
|
|
|
56
57
|
const [isShowImageHoverMenu, setIsShowImageHoverMenu] = (0, _react.useState)(false);
|
|
57
58
|
const [menuPosition, setMenuPosition] = (0, _react.useState)({});
|
|
58
59
|
const [caption, setCaption] = (0, _react.useState)((data === null || data === void 0 ? void 0 : data.caption) || '');
|
|
59
|
-
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
60
|
-
const svgWidth = movingWidth || element.data.width || _constants2.SVG_WIDTH;
|
|
61
60
|
const registerEvent = (0, _react.useCallback)(eventList => {
|
|
62
61
|
eventList.forEach(element => {
|
|
63
62
|
document.addEventListener(element.eventName, element.event);
|
|
@@ -72,17 +71,12 @@ const Image = _ref => {
|
|
|
72
71
|
var _resizerRef$current;
|
|
73
72
|
event.preventDefault();
|
|
74
73
|
event.stopPropagation();
|
|
75
|
-
if (!imageRef.current) return;
|
|
76
74
|
const changeX = event.clientX - ((_resizerRef$current = resizerRef.current) === null || _resizerRef$current === void 0 ? void 0 : _resizerRef$current.getBoundingClientRect().left) - 5;
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
imageRef.current.width = newWidth;
|
|
83
|
-
}
|
|
84
|
-
setMovingWidth(newWidth);
|
|
85
|
-
}, [isShowImagePlaceholder]);
|
|
75
|
+
const imageWidth = imageRef.current.width + changeX;
|
|
76
|
+
if (imageWidth < 20) return;
|
|
77
|
+
imageRef.current.width = imageWidth;
|
|
78
|
+
setMovingWidth(imageWidth);
|
|
79
|
+
}, []);
|
|
86
80
|
const onResizeEnd = (0, _react.useCallback)(event => {
|
|
87
81
|
event.preventDefault();
|
|
88
82
|
event.stopPropagation();
|
|
@@ -95,7 +89,7 @@ const Image = _ref => {
|
|
|
95
89
|
}]);
|
|
96
90
|
const newData = {
|
|
97
91
|
...element.data,
|
|
98
|
-
width:
|
|
92
|
+
width: imageRef.current.width
|
|
99
93
|
};
|
|
100
94
|
(0, _helpers.updateImage)(editor, newData);
|
|
101
95
|
|
|
@@ -200,7 +194,6 @@ const Image = _ref => {
|
|
|
200
194
|
const reloadImage = (0, _react.useCallback)(() => {
|
|
201
195
|
if (imageRef.current) {
|
|
202
196
|
imageRef.current['src'] = (0, _helpers.getImageURL)(data, editor);
|
|
203
|
-
console.log((0, _helpers.getImageURL)(data, editor));
|
|
204
197
|
setIsShowImagePlaceholder(false);
|
|
205
198
|
}
|
|
206
199
|
}, [data, editor]);
|
|
@@ -209,7 +202,6 @@ const Image = _ref => {
|
|
|
209
202
|
if (data.src.startsWith('data:image/jpeg;base64')) {
|
|
210
203
|
return (0, _helpers.handleBase64Image)(editor, path, data);
|
|
211
204
|
}
|
|
212
|
-
setIsLoading(false);
|
|
213
205
|
setIsShowImagePlaceholder(true);
|
|
214
206
|
// External network images do not reload after failure to load
|
|
215
207
|
if (!data.src.startsWith('http')) {
|
|
@@ -232,22 +224,7 @@ const Image = _ref => {
|
|
|
232
224
|
});
|
|
233
225
|
}
|
|
234
226
|
}, [data, editor, element]);
|
|
235
|
-
(
|
|
236
|
-
if (imageRef.current) {
|
|
237
|
-
imageRef.current.onload = () => setIsLoading(false);
|
|
238
|
-
imageRef.current.onerror = onImageLoadError;
|
|
239
|
-
}
|
|
240
|
-
}, [element.data]);
|
|
241
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
242
|
-
className: "sdoc-image-process-container",
|
|
243
|
-
style: {
|
|
244
|
-
display: isLoading ? 'inline-block' : 'none'
|
|
245
|
-
}
|
|
246
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
247
|
-
className: "loading-spinner"
|
|
248
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
249
|
-
className: "spinner"
|
|
250
|
-
})), children), 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({
|
|
251
228
|
className: (0, _classnames.default)('sdoc-image-wrapper', className)
|
|
252
229
|
}, attributes, {
|
|
253
230
|
style: {
|
|
@@ -256,60 +233,13 @@ const Image = _ref => {
|
|
|
256
233
|
onMouseOver: e => (0, _helpers.selectImageWhenSelectPartial)(e, editor, element, isSelected),
|
|
257
234
|
contentEditable: "false",
|
|
258
235
|
suppressContentEditableWarning: true
|
|
259
|
-
}), /*#__PURE__*/_react.default.createElement("
|
|
260
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
261
|
-
viewBox: `0 0 ${svgWidth} ${svgWidth}`,
|
|
262
|
-
preserveAspectRatio: "xMinYMin meet",
|
|
263
|
-
className: (0, _classnames.default)('sdoc-image-placeholder-wrapper', {
|
|
264
|
-
'image-selected': isSelected
|
|
265
|
-
}),
|
|
236
|
+
}), /*#__PURE__*/_react.default.createElement("img", {
|
|
266
237
|
ref: imageRef,
|
|
238
|
+
src: _imagePlaceholder.default,
|
|
267
239
|
style: getImageStyle(),
|
|
268
|
-
draggable: false
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
height: "100%",
|
|
272
|
-
fill: "#f0f0f0"
|
|
273
|
-
}), /*#__PURE__*/_react.default.createElement("g", {
|
|
274
|
-
className: "sdoc-image-content-wrapper",
|
|
275
|
-
transform: `translate(${svgWidth / 2}, ${svgWidth / 2}) scale(${svgWidth / _constants2.SVG_WIDTH})`
|
|
276
|
-
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
277
|
-
className: "sdoc-image-title",
|
|
278
|
-
transform: "translate(0, 0)"
|
|
279
|
-
}, /*#__PURE__*/_react.default.createElement("foreignObject", {
|
|
280
|
-
x: "-85",
|
|
281
|
-
y: "-16",
|
|
282
|
-
width: "20",
|
|
283
|
-
height: "28"
|
|
284
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
285
|
-
className: "sdocfont sdoc-exclamation-circle"
|
|
286
|
-
})), /*#__PURE__*/_react.default.createElement("text", {
|
|
287
|
-
className: "sdoc-image-tip-title",
|
|
288
|
-
transform: "translate(-55, 4)",
|
|
289
|
-
fontSize: "20",
|
|
290
|
-
fill: "red",
|
|
291
|
-
fontFamily: "Arial, sans-serif"
|
|
292
|
-
}, t('Image_copy_error'))), /*#__PURE__*/_react.default.createElement("text", {
|
|
293
|
-
className: "sdoc-image-tip-content",
|
|
294
|
-
transform: "translate(0, 35)",
|
|
295
|
-
fontSize: "12",
|
|
296
|
-
textAnchor: "middle",
|
|
297
|
-
fill: "black",
|
|
298
|
-
fontFamily: "Arial, sans-serif"
|
|
299
|
-
}, t('Image_cannot_be_copied_Please_download_the_source_image')), /*#__PURE__*/_react.default.createElement("text", {
|
|
300
|
-
className: "sdoc-image-tip-content",
|
|
301
|
-
transform: "translate(0, 55)",
|
|
302
|
-
fontSize: "12",
|
|
303
|
-
textAnchor: "middle",
|
|
304
|
-
fill: "black",
|
|
305
|
-
fontFamily: "Arial, sans-serif"
|
|
306
|
-
}, t('And_select_insert_-_image_to_upload')))), isSelected && /*#__PURE__*/_react.default.createElement("span", {
|
|
307
|
-
className: "image-resizer",
|
|
308
|
-
ref: resizerRef,
|
|
309
|
-
onMouseDown: onResizeStart
|
|
310
|
-
}), isResizing && /*#__PURE__*/_react.default.createElement("span", {
|
|
311
|
-
className: "image-size"
|
|
312
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, t('Width'), ':', parseInt(movingWidth || ((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.clientWidth))), /*#__PURE__*/_react.default.createElement("span", null, "\xA0\xA0"), /*#__PURE__*/_react.default.createElement("span", null, t('Height'), ':', imageRef.current.clientHeight)), children), !isShowImagePlaceholder && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
240
|
+
draggable: false,
|
|
241
|
+
alt: ""
|
|
242
|
+
}), children), !isShowImagePlaceholder && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
|
|
313
243
|
"data-id": element.id,
|
|
314
244
|
className: (0, _classnames.default)('sdoc-image-wrapper', className)
|
|
315
245
|
}, attributes, {
|
|
@@ -342,12 +272,12 @@ const Image = _ref => {
|
|
|
342
272
|
onMouseDown: onResizeStart
|
|
343
273
|
}), isResizing && /*#__PURE__*/_react.default.createElement("span", {
|
|
344
274
|
className: "image-size"
|
|
345
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, t('Width'), ':', parseInt(movingWidth || ((_imageRef$
|
|
275
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, t('Width'), ':', parseInt(movingWidth || ((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.clientWidth))), /*#__PURE__*/_react.default.createElement("span", null, "\xA0\xA0"), /*#__PURE__*/_react.default.createElement("span", null, t('Height'), ':', imageRef.current.clientHeight))), nodeEntry[0].type === _constants3.IMAGE_BLOCK && show_caption && /*#__PURE__*/_react.default.createElement("input", {
|
|
346
276
|
id: "sdoc-image-caption-input",
|
|
347
277
|
ref: imageCaptionInputRef,
|
|
348
278
|
className: "sdoc-image-caption-input-wrapper",
|
|
349
279
|
style: {
|
|
350
|
-
width: (data === null || data === void 0 ? void 0 : data.width) || ((_imageRef$
|
|
280
|
+
width: (data === null || data === void 0 ? void 0 : data.width) || ((_imageRef$current2 = imageRef.current) === null || _imageRef$current2 === void 0 ? void 0 : _imageRef$current2.clientWidth)
|
|
351
281
|
},
|
|
352
282
|
placeholder: t('Caption'),
|
|
353
283
|
autoComplete: "off",
|
package/package.json
CHANGED
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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": "Image cannot be copied. Please download the source image,",
|
|
615
|
-
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload."
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "Support Youtube, Tencent, Bilibili and more"
|
|
616
614
|
}
|
|
@@ -610,7 +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": "后点击工具栏「插入」- 「照片」上传"
|
|
613
|
+
"Support_Youtube_Tencent_Bilibili_and_more": "支持Youtube,腾讯视频,B站及其他平台"
|
|
616
614
|
}
|