@seafile/seafile-editor 3.0.30-wjk.1 → 3.0.31
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.
|
@@ -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.lazyLoadImage = exports.isMenuDisabled = exports.insertSeafileImage = exports.insertImage = exports.handleUpdateFile = exports.
|
|
7
|
+
exports.updateImage = exports.lazyLoadImage = exports.isMenuDisabled = exports.insertSeafileImage = exports.insertImage = exports.handleUpdateFile = exports.getImagesUrlList = void 0;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
9
|
var _slate = require("slate");
|
|
10
10
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
@@ -91,33 +91,6 @@ const getImagesUrlList = nodes => {
|
|
|
91
91
|
return list;
|
|
92
92
|
};
|
|
93
93
|
exports.getImagesUrlList = getImagesUrlList;
|
|
94
|
-
const getNewImagesUrlList = function () {
|
|
95
|
-
let lists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
96
|
-
if (!Array.isArray(lists)) {
|
|
97
|
-
return [];
|
|
98
|
-
}
|
|
99
|
-
return lists.map(src => {
|
|
100
|
-
if (!src) {
|
|
101
|
-
return {
|
|
102
|
-
name: '',
|
|
103
|
-
thumbnail: ''
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
let name = '';
|
|
107
|
-
try {
|
|
108
|
-
name = decodeURIComponent(src.slice(src.lastIndexOf('/') + 1));
|
|
109
|
-
} catch (error) {
|
|
110
|
-
// eslint-disable-next-line no-console
|
|
111
|
-
console.log(error);
|
|
112
|
-
name = src.slice(src.lastIndexOf('/') + 1) || src;
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
name: name || '',
|
|
116
|
-
thumbnail: src
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
};
|
|
120
|
-
exports.getNewImagesUrlList = getNewImagesUrlList;
|
|
121
94
|
const handleUpdateFile = async (editor, file, insertPosition) => {
|
|
122
95
|
var _editor$api;
|
|
123
96
|
if (editor !== null && editor !== void 0 && (_editor$api = editor.api) !== null && _editor$api !== void 0 && _editor$api.uploadLocalImage) {
|
|
@@ -14,21 +14,40 @@ var _reactI18next = require("react-i18next");
|
|
|
14
14
|
var _constants = require("../../../../constants");
|
|
15
15
|
require("@seafile/react-image-lightbox/style.css");
|
|
16
16
|
require("./style.css");
|
|
17
|
+
const formatImageInfos = images => {
|
|
18
|
+
const formatImages = images.map(src => {
|
|
19
|
+
let name = '';
|
|
20
|
+
try {
|
|
21
|
+
name = src ? decodeURI(src.slice(src.lastIndexOf('/') + 1)).split(/[??]/)[0] : '';
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.log('error', error);
|
|
24
|
+
name = '';
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
name: name,
|
|
28
|
+
thumbnail: src
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
return formatImages;
|
|
32
|
+
};
|
|
17
33
|
const ImagePreviewer = _ref => {
|
|
18
34
|
let {
|
|
19
35
|
imgUrl,
|
|
20
36
|
toggleImagePreviewer
|
|
21
37
|
} = _ref;
|
|
22
38
|
const editor = (0, _slateReact.useSlateStatic)();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const images = (0, _helper.getNewImagesUrlList)(defaultImages);
|
|
26
|
-
console.log('images', images);
|
|
39
|
+
const originImages = (0, _helper.getImagesUrlList)(editor.children);
|
|
40
|
+
const images = formatImageInfos(originImages);
|
|
27
41
|
const {
|
|
28
42
|
t
|
|
29
43
|
} = (0, _reactI18next.useTranslation)(_constants.TRANSLATE_NAMESPACE);
|
|
30
|
-
const [imageIndex, setImageIndex] = (0, _react.useState)(images.findIndex(item => item === imgUrl));
|
|
31
|
-
const
|
|
44
|
+
const [imageIndex, setImageIndex] = (0, _react.useState)(Math.max(0, images.findIndex(item => item.thumbnail === imgUrl)));
|
|
45
|
+
const imagesLength = images.length;
|
|
46
|
+
const imageItem = images[imageIndex];
|
|
47
|
+
const imageName = imageItem ? imageItem.name : '';
|
|
48
|
+
const mainSrc = imageItem ? imageItem.thumbnail : {};
|
|
49
|
+
const nextImg = images[(imageIndex + 1) % images.length];
|
|
50
|
+
const prevImg = images[(imageIndex + images.length - 1) % images.length];
|
|
32
51
|
const moveToPrevImage = () => {
|
|
33
52
|
const currentImageIndex = (imageIndex + images.length - 1) % images.length;
|
|
34
53
|
setImageIndex(currentImageIndex);
|
|
@@ -42,15 +61,11 @@ const ImagePreviewer = _ref => {
|
|
|
42
61
|
currentIndex: imageIndex,
|
|
43
62
|
setImageIndex: setImageIndex,
|
|
44
63
|
wrapperClassName: "sf-editor-image-previewer",
|
|
45
|
-
imageTitle:
|
|
46
|
-
mainSrc: mainSrc,
|
|
47
|
-
imageIndex: imageIndex,
|
|
48
|
-
images: images
|
|
49
|
-
}),
|
|
64
|
+
imageTitle: "".concat(imageName, " (").concat(imageIndex + 1, "/").concat(imagesLength, ")"),
|
|
50
65
|
mainSrc: mainSrc,
|
|
51
66
|
toolbarButtons: [],
|
|
52
|
-
nextSrc:
|
|
53
|
-
prevSrc:
|
|
67
|
+
nextSrc: nextImg.thumbnail || nextImg.src,
|
|
68
|
+
prevSrc: prevImg.thumbnail || prevImg.src,
|
|
54
69
|
onCloseRequest: toggleImagePreviewer,
|
|
55
70
|
reactModalProps: {
|
|
56
71
|
shouldReturnFocusAfterClose: true,
|
|
@@ -59,35 +74,8 @@ const ImagePreviewer = _ref => {
|
|
|
59
74
|
onMovePrevRequest: moveToPrevImage,
|
|
60
75
|
onMoveNextRequest: moveToNextImage,
|
|
61
76
|
imagePadding: 70,
|
|
62
|
-
reactModalStyle: {
|
|
63
|
-
overlay: {
|
|
64
|
-
zIndex: 1071
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
77
|
zoomInTip: t('Zoom_in'),
|
|
68
78
|
zoomOutTip: t('Zoom_out')
|
|
69
79
|
});
|
|
70
80
|
};
|
|
71
|
-
var _default = exports.default = ImagePreviewer;
|
|
72
|
-
const ImageTitleElement = props => {
|
|
73
|
-
const {
|
|
74
|
-
mainSrc,
|
|
75
|
-
imageIndex,
|
|
76
|
-
images
|
|
77
|
-
} = props;
|
|
78
|
-
const getImgTitle = () => {
|
|
79
|
-
try {
|
|
80
|
-
return mainSrc ? decodeURI(mainSrc.slice(mainSrc.lastIndexOf('/') + 1)) : '';
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.log('error', error);
|
|
83
|
-
return '';
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
87
|
-
className: "d-flex"
|
|
88
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
89
|
-
className: "text-truncate"
|
|
90
|
-
}, getImgTitle()), /*#__PURE__*/_react.default.createElement("span", {
|
|
91
|
-
className: "flex-shrink-0"
|
|
92
|
-
}, "(", imageIndex + 1, "/", images.length, ")")));
|
|
93
|
-
};
|
|
81
|
+
var _default = exports.default = ImagePreviewer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/seafile-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.31",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@seafile/react-image-lightbox": "^5.0.
|
|
88
|
+
"@seafile/react-image-lightbox": "^5.0.6",
|
|
89
89
|
"classnames": "2.3.2",
|
|
90
90
|
"copy-to-clipboard": "3.3.1",
|
|
91
91
|
"deep-copy": "1.4.2",
|