@seafile/comment-editor 0.0.18 → 0.0.20-beta.1
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/_i18n/index.js +5 -1
- package/dist/basic-sdk/assets/css/dropdown-menu.css +2 -3
- package/dist/basic-sdk/editor/comment-editor.css +1 -1
- package/dist/basic-sdk/extension/plugins/image/dialogs/image-previewer.js +16 -2
- package/dist/basic-sdk/extension/plugins/image/hover-menu/index.css +5 -5
- package/dist/basic-sdk/extension/plugins/image/hover-menu/index.js +8 -8
- package/dist/basic-sdk/extension/plugins/link/hover/index.css +3 -3
- package/dist/basic-sdk/slate-convert/md-to-html/index.js +11 -3
- package/dist/index.js +6 -0
- package/dist/pages/seafile-comment-editor.js +5 -9
- package/package.json +2 -3
- package/public/locales/en/comment-editor.json +3 -1
- package/public/locales/zh-CN/comment-editor.json +641 -0
- package/public/locales/zh_CN/comment-editor.json +3 -1
- package/public/media/sdoc-editor-font/iconfont.css +206 -334
- package/public/media/sdoc-editor-font/iconfont.eot +0 -0
- package/public/media/sdoc-editor-font/iconfont.svg +103 -167
- package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
- package/public/media/sdoc-editor-font/iconfont.woff +0 -0
- package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
- package/public/media/sdoc-editor-font.css +209 -335
package/dist/_i18n/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var _reactI18next = require("react-i18next");
|
|
|
9
9
|
var _i18next = _interopRequireDefault(require("i18next"));
|
|
10
10
|
var _i18nextBrowserLanguagedetector = _interopRequireDefault(require("i18next-browser-languagedetector"));
|
|
11
11
|
var _i18nextHttpBackend = _interopRequireDefault(require("i18next-http-backend"));
|
|
12
|
+
// 1
|
|
12
13
|
const getI18n = settings => {
|
|
13
14
|
let lang = 'en';
|
|
14
15
|
let loadPath = '/public/locales/{{ lng }}/{{ ns }}.json';
|
|
@@ -22,6 +23,7 @@ const getI18n = settings => {
|
|
|
22
23
|
}
|
|
23
24
|
if (propsLang) {
|
|
24
25
|
lang = propsLang === 'zh-cn' ? 'zh-CN' : lang;
|
|
26
|
+
lang = propsLang === 'zh' ? 'zh-CN' : lang;
|
|
25
27
|
}
|
|
26
28
|
}
|
|
27
29
|
_i18next.default.use(_i18nextHttpBackend.default).use(_i18nextBrowserLanguagedetector.default).use(_reactI18next.initReactI18next).init({
|
|
@@ -39,8 +41,10 @@ const getI18n = settings => {
|
|
|
39
41
|
interpolation: {
|
|
40
42
|
escapeValue: false // not needed for react!!
|
|
41
43
|
},
|
|
44
|
+
load: 'currentOnly',
|
|
42
45
|
react: {
|
|
43
|
-
wait: true
|
|
46
|
+
wait: true,
|
|
47
|
+
useSuspense: false
|
|
44
48
|
}
|
|
45
49
|
});
|
|
46
50
|
return _i18next.default;
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
.sdoc-dropdown-menu .sdoc-dropdown-menu-item .sdocfont {
|
|
87
|
-
font-size:
|
|
88
|
-
line-height:
|
|
87
|
+
font-size: 14px;
|
|
88
|
+
line-height: 14px;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
.sdoc-dropdown-menu .sdoc-dropdown-menu-item .sdoc-dropdown-item-content {
|
|
@@ -97,7 +97,6 @@
|
|
|
97
97
|
|
|
98
98
|
.sdoc-dropdown-menu .sdoc-dropdown-item-content .sdoc-dropdown-item-content-icon {
|
|
99
99
|
margin-right: 10px;
|
|
100
|
-
vertical-align: 1px;
|
|
101
100
|
}
|
|
102
101
|
|
|
103
102
|
.sdoc-dropdown-menu .sdoc-dropdown-item-right-icon {
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
10
11
|
var _reactImageLightbox = _interopRequireDefault(require("@seafile/react-image-lightbox"));
|
|
11
12
|
var _helpers = require("../helpers");
|
|
12
13
|
require("@seafile/react-image-lightbox/style.css");
|
|
@@ -38,6 +39,11 @@ class ImagePreviewer extends _react.default.Component {
|
|
|
38
39
|
imageIndex: (prevState.imageIndex + 1) % this.images.length
|
|
39
40
|
}));
|
|
40
41
|
});
|
|
42
|
+
(0, _defineProperty2.default)(this, "setImageIndex", index => {
|
|
43
|
+
this.setState({
|
|
44
|
+
imageIndex: index
|
|
45
|
+
});
|
|
46
|
+
});
|
|
41
47
|
const {
|
|
42
48
|
editor,
|
|
43
49
|
imageUrl
|
|
@@ -51,6 +57,9 @@ class ImagePreviewer extends _react.default.Component {
|
|
|
51
57
|
const {
|
|
52
58
|
imageIndex
|
|
53
59
|
} = this.state;
|
|
60
|
+
const {
|
|
61
|
+
t
|
|
62
|
+
} = this.props;
|
|
54
63
|
const imageItemsLength = this.images.length;
|
|
55
64
|
const mainSrc = this.images[imageIndex] || '';
|
|
56
65
|
let imageTitle = '';
|
|
@@ -68,6 +77,9 @@ class ImagePreviewer extends _react.default.Component {
|
|
|
68
77
|
className: "flex-shrink-0"
|
|
69
78
|
}, "(", imageIndex + 1, "/", this.images.length, ")"));
|
|
70
79
|
return /*#__PURE__*/_react.default.createElement(_reactImageLightbox.default, {
|
|
80
|
+
imageItems: this.images,
|
|
81
|
+
currentIndex: imageIndex,
|
|
82
|
+
setImageIndex: index => this.setImageIndex(index),
|
|
71
83
|
wrapperClassName: "sf-editor-image-previewer",
|
|
72
84
|
imageTitle: imageTitleEl,
|
|
73
85
|
mainSrc: mainSrc,
|
|
@@ -79,8 +91,10 @@ class ImagePreviewer extends _react.default.Component {
|
|
|
79
91
|
onMoveNextRequest: this.moveToNextImage,
|
|
80
92
|
reactModalProps: {
|
|
81
93
|
shouldReturnFocusAfterClose: false
|
|
82
|
-
}
|
|
94
|
+
},
|
|
95
|
+
zoomInTip: t('Zoom_in'),
|
|
96
|
+
zoomOutTip: t('Zoom_out')
|
|
83
97
|
});
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
|
-
var _default = exports.default = ImagePreviewer;
|
|
100
|
+
var _default = exports.default = (0, _reactI18next.withTranslation)('comment-editor')(ImagePreviewer);
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
.sdoc-image-hover-menu-container .hover-menu-container .op-item {
|
|
29
29
|
position: relative;
|
|
30
30
|
font-size: 12px;
|
|
31
|
-
color: #
|
|
31
|
+
color: #444444;
|
|
32
32
|
padding: 0 5px;
|
|
33
33
|
border-radius: 2px;
|
|
34
34
|
min-width: 24px;
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.sdoc-image-hover-menu-container .hover-menu-container .op-item:hover {
|
|
42
|
-
color: #
|
|
42
|
+
color: #444444;
|
|
43
43
|
text-decoration: none;
|
|
44
44
|
background: #f1f1f1;
|
|
45
45
|
}
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
background: #f1f1f1;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
.sdoc-image-hover-menu-container .hover-menu-container .
|
|
52
|
-
font-size:
|
|
53
|
-
color: #
|
|
51
|
+
.sdoc-image-hover-menu-container .hover-menu-container .sdocfont {
|
|
52
|
+
font-size: 14px;
|
|
53
|
+
color: #444;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.sdoc-image-hover-menu-container .sdoc-image-popover {
|
|
@@ -180,7 +180,7 @@ const ImageHoverMenu = _ref => {
|
|
|
180
180
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
181
181
|
className: "mr-1"
|
|
182
182
|
}, t(type === _constants.IMAGE_BLOCK ? 'Block' : 'Inline')), /*#__PURE__*/_react.default.createElement("i", {
|
|
183
|
-
className: "sdocfont sdoc-drop-down
|
|
183
|
+
className: "sdocfont sdoc-drop-down"
|
|
184
184
|
}))), !readonly && /*#__PURE__*/_react.default.createElement("span", {
|
|
185
185
|
className: "op-group-item"
|
|
186
186
|
}, type === _constants.IMAGE_BLOCK && /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -192,9 +192,9 @@ const ImageHoverMenu = _ref => {
|
|
|
192
192
|
onShowProver(e, 'alignPopover');
|
|
193
193
|
}
|
|
194
194
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
195
|
-
className: (0, _classnames.default)(`sdocfont sdoc-align-${align || 'left'}
|
|
195
|
+
className: (0, _classnames.default)(`sdocfont sdoc-align-${align || 'left'} mr-1`)
|
|
196
196
|
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
197
|
-
className: "sdocfont sdoc-drop-down
|
|
197
|
+
className: "sdocfont sdoc-drop-down "
|
|
198
198
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
199
199
|
id: "sdoc_image_border",
|
|
200
200
|
role: "button",
|
|
@@ -205,9 +205,9 @@ const ImageHoverMenu = _ref => {
|
|
|
205
205
|
onShowProver(e, 'borderPopover');
|
|
206
206
|
}
|
|
207
207
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
208
|
-
className: "sdocfont sdoc-image
|
|
208
|
+
className: "sdocfont sdoc-image mr-1"
|
|
209
209
|
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
210
|
-
className: "sdocfont sdoc-drop-down
|
|
210
|
+
className: "sdocfont sdoc-drop-down "
|
|
211
211
|
}), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
212
212
|
target: "sdoc_image_border",
|
|
213
213
|
placement: "top",
|
|
@@ -222,7 +222,7 @@ const ImageHoverMenu = _ref => {
|
|
|
222
222
|
'show_caption': !show_caption
|
|
223
223
|
})
|
|
224
224
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
225
|
-
className: "sdocfont sdoc-
|
|
225
|
+
className: "sdocfont sdoc-caption mr-1"
|
|
226
226
|
}), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
227
227
|
target: "sdoc_image_caption",
|
|
228
228
|
placement: "top",
|
|
@@ -238,7 +238,7 @@ const ImageHoverMenu = _ref => {
|
|
|
238
238
|
setIsShowImagePreview(!isShowImagePreview);
|
|
239
239
|
}
|
|
240
240
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
241
|
-
className: "sdocfont sdoc-fullscreen
|
|
241
|
+
className: "sdocfont sdoc-fullscreen "
|
|
242
242
|
}), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
243
243
|
target: "sdoc_image_full_screen_mode",
|
|
244
244
|
placement: "top",
|
|
@@ -271,7 +271,7 @@ const ImageHoverMenu = _ref => {
|
|
|
271
271
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
272
272
|
className: "sdoc-dropdown-item-content"
|
|
273
273
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
274
|
-
className: (0, _classnames.default)(item.iconClass
|
|
274
|
+
className: (0, _classnames.default)(item.iconClass)
|
|
275
275
|
})), align === item.type && /*#__PURE__*/_react.default.createElement("i", {
|
|
276
276
|
className: "sdocfont sdoc-check-mark sdoc-dropdown-item-right-icon"
|
|
277
277
|
}));
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
.link-op-menu-link {
|
|
27
27
|
font-size: 12px;
|
|
28
|
-
color: #
|
|
28
|
+
color: #444444;
|
|
29
29
|
padding: 0 5px;
|
|
30
30
|
border-radius: 2px;
|
|
31
31
|
line-height: 20px;
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.link-op-menu-link:hover {
|
|
36
|
-
color: #
|
|
36
|
+
color: #444444;
|
|
37
37
|
text-decoration: none;
|
|
38
38
|
background: #f1f1f1;
|
|
39
39
|
}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.link-op-icon .sdocfont {
|
|
56
|
-
font-size:
|
|
56
|
+
font-size: 14px;
|
|
57
57
|
color: #444;
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -12,20 +12,28 @@ var _rehypeSanitize = _interopRequireDefault(require("rehype-sanitize"));
|
|
|
12
12
|
var _rehypeSlug = _interopRequireDefault(require("rehype-slug"));
|
|
13
13
|
var _rehypeStringify = _interopRequireDefault(require("rehype-stringify"));
|
|
14
14
|
var _remarkBreaks = _interopRequireDefault(require("remark-breaks"));
|
|
15
|
-
var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
|
|
16
15
|
var _remarkMath = _interopRequireDefault(require("remark-math"));
|
|
17
16
|
var _remarkParse = _interopRequireDefault(require("remark-parse"));
|
|
18
17
|
var _remarkRehype = _interopRequireDefault(require("remark-rehype"));
|
|
19
18
|
var _unified = require("unified");
|
|
19
|
+
var _unistUtilVisit = require("unist-util-visit");
|
|
20
20
|
var _sanitizeSchema = _interopRequireDefault(require("./sanitize-schema"));
|
|
21
|
+
function remarkEscapeHtml() {
|
|
22
|
+
return tree => {
|
|
23
|
+
(0, _unistUtilVisit.visit)(tree, 'html', node => {
|
|
24
|
+
node.type = 'text';
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
21
29
|
// mdString -> mdast -> html ast -> html
|
|
22
30
|
const processor = (0, _unified.unified)()
|
|
23
31
|
// Handles markdown basic syntax
|
|
24
32
|
// https://github.com/remarkjs/remark/tree/main
|
|
25
|
-
.use(_remarkParse.default)
|
|
33
|
+
.use(_remarkParse.default).use(remarkEscapeHtml)
|
|
26
34
|
// Handle markdown extension syntax
|
|
27
35
|
// https://github.com/remarkjs/remark-gfm
|
|
28
|
-
.use(
|
|
36
|
+
// .use(gfm)
|
|
29
37
|
// https://github.com/remarkjs/remark-math
|
|
30
38
|
.use(_remarkMath.default)
|
|
31
39
|
// https://github.com/remarkjs/remark-breaks
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,12 @@ Object.defineProperty(exports, "SeafileCommentEditor", {
|
|
|
22
22
|
return _seafileCommentEditor.default;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "commentProcessor", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _basicSdk.processor;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
25
31
|
var _basicSdk = require("./basic-sdk");
|
|
26
32
|
var _constants = require("./constants");
|
|
27
33
|
var _seafileCommentEditor = _interopRequireDefault(require("./pages/seafile-comment-editor"));
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _reactI18next = require("react-i18next");
|
|
11
9
|
var _basicSdk = require("../basic-sdk");
|
|
12
|
-
|
|
10
|
+
// import getI18n from '../_i18n';
|
|
11
|
+
|
|
13
12
|
const SeafileCommentEditor = _ref => {
|
|
14
13
|
let {
|
|
15
14
|
// Provider
|
|
@@ -36,15 +35,12 @@ const SeafileCommentEditor = _ref => {
|
|
|
36
35
|
settings,
|
|
37
36
|
api
|
|
38
37
|
} = _ref;
|
|
39
|
-
const [i18n, setI18n] = (0, _react.useState)(null);
|
|
40
38
|
(0, _react.useEffect)(() => {
|
|
41
39
|
_basicSdk.context.init(settings, api);
|
|
42
|
-
setI18n((0, _i18n.default)(settings));
|
|
43
40
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
41
|
}, []);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}, /*#__PURE__*/_react.default.createElement(_react.Suspense, null, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
|
|
42
|
+
console.log('comment editor --1');
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
|
|
48
44
|
type: type,
|
|
49
45
|
className: className,
|
|
50
46
|
pluginName: pluginName,
|
|
@@ -62,6 +58,6 @@ const SeafileCommentEditor = _ref => {
|
|
|
62
58
|
hiddenComment: hiddenComment,
|
|
63
59
|
hiddenUserInfo: hiddenUserInfo,
|
|
64
60
|
closePanel: closePanel
|
|
65
|
-
}))
|
|
61
|
+
}));
|
|
66
62
|
};
|
|
67
63
|
var _default = exports.default = SeafileCommentEditor;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/comment-editor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "This is a comment editor",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@seafile/react-image-lightbox": "
|
|
8
|
+
"@seafile/react-image-lightbox": "^5.0.4",
|
|
9
9
|
"@seafile/slate": "0.91.8",
|
|
10
10
|
"@seafile/slate-history": "0.86.2",
|
|
11
11
|
"@seafile/slate-hyperscript": "0.81.7",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"classnames": "2.3.2",
|
|
15
15
|
"copy-to-clipboard": "^3.3.3",
|
|
16
16
|
"deep-copy": "1.4.2",
|
|
17
|
-
"dtable-ui-component": "^6.0.15",
|
|
18
17
|
"is-hotkey": "0.2.0",
|
|
19
18
|
"is-url": "^1.2.4",
|
|
20
19
|
"react-transition-group": "4.4.5",
|