@seafile/sdoc-editor 3.0.73 → 3.0.75
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/extension/plugins/link/hover/index.js +5 -0
- package/dist/extension/plugins/link/render-elem.js +4 -0
- package/dist/extension/plugins/video/render-elem.js +1 -0
- package/dist/extension/plugins/whiteboard/hover-menu/index.js +8 -5
- package/dist/extension/plugins/whiteboard/index.css +9 -0
- package/dist/extension/plugins/whiteboard/render-elem.js +17 -3
- package/package.json +3 -3
|
@@ -12,6 +12,7 @@ var _reactDom = require("react-dom");
|
|
|
12
12
|
var _reactI18next = require("react-i18next");
|
|
13
13
|
var _slate = require("@seafile/slate");
|
|
14
14
|
var _slateReact = require("@seafile/slate-react");
|
|
15
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
15
16
|
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
16
17
|
var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
|
|
17
18
|
var _helpers = require("../helpers");
|
|
@@ -35,6 +36,10 @@ var LinkHover = function LinkHover(_ref) {
|
|
|
35
36
|
setIsShowTooltip(true);
|
|
36
37
|
}, []);
|
|
37
38
|
var onMouseDown = (0, _react.useCallback)(function (event) {
|
|
39
|
+
if (!(0, _isUrl["default"])(element.href)) {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
38
43
|
event.stopPropagation();
|
|
39
44
|
if (!(0, _helpers.isWeChat)()) {
|
|
40
45
|
window.open(element.href);
|
|
@@ -14,6 +14,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/es
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
var _slate = require("@seafile/slate");
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
17
18
|
var _constants = require("../../../constants");
|
|
18
19
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
19
20
|
var _commonUtils = require("../../../utils/common-utils");
|
|
@@ -148,6 +149,9 @@ var Link = /*#__PURE__*/function (_React$Component) {
|
|
|
148
149
|
isShowLinkMenu = _this$state.isShowLinkMenu,
|
|
149
150
|
menuPosition = _this$state.menuPosition;
|
|
150
151
|
var className = isShowLinkMenu ? 'seafile-ed-hovermenu-mouseclick' : null;
|
|
152
|
+
if (!(0, _isUrl["default"])(element.href)) {
|
|
153
|
+
return /*#__PURE__*/_react["default"].createElement("span", attributes, /*#__PURE__*/_react["default"].createElement("span", null, children));
|
|
154
|
+
}
|
|
151
155
|
if (readonly) {
|
|
152
156
|
var _element$children$;
|
|
153
157
|
return /*#__PURE__*/_react["default"].createElement("span", Object.assign({
|
|
@@ -192,6 +192,7 @@ var Video = function Video(_ref) {
|
|
|
192
192
|
scrollRef.current && scrollRef.current.addEventListener('scroll', onScroll);
|
|
193
193
|
observerRefValue = scrollRef.current;
|
|
194
194
|
resizeObserver = new ResizeObserver(function (entries) {
|
|
195
|
+
// eslint-disable-next-line no-unused-vars
|
|
195
196
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(entries),
|
|
196
197
|
_step;
|
|
197
198
|
try {
|
|
@@ -13,7 +13,8 @@ var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"))
|
|
|
13
13
|
var _commons = require("../../../commons");
|
|
14
14
|
require("./index.css");
|
|
15
15
|
var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
16
|
-
var
|
|
16
|
+
var isValidUrl = _ref.isValidUrl,
|
|
17
|
+
menuPosition = _ref.menuPosition,
|
|
17
18
|
onOpen = _ref.onOpen,
|
|
18
19
|
openFullscreen = _ref.openFullscreen,
|
|
19
20
|
onDeleteWhiteboard = _ref.onDeleteWhiteboard;
|
|
@@ -31,14 +32,16 @@ var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
|
31
32
|
style: menuPosition
|
|
32
33
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
33
34
|
className: "hover-menu-container"
|
|
34
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
35
|
+
}, isValidUrl && /*#__PURE__*/_react["default"].createElement("span", {
|
|
35
36
|
className: "op-group-item"
|
|
36
37
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
37
38
|
id: "sdoc_whiteboard_open",
|
|
38
39
|
role: "button",
|
|
39
40
|
className: "op-item",
|
|
40
41
|
onClick: onOpen
|
|
41
|
-
}, /*#__PURE__*/_react["default"].createElement("span",
|
|
42
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
43
|
+
className: "mr-1"
|
|
44
|
+
}, t('Open')))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
42
45
|
className: "op-group-item"
|
|
43
46
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
44
47
|
id: "sdoc_whiteboard_delete",
|
|
@@ -51,7 +54,7 @@ var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
|
51
54
|
target: "sdoc_whiteboard_delete",
|
|
52
55
|
placement: "top",
|
|
53
56
|
fade: true
|
|
54
|
-
}, t('Delete')))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
57
|
+
}, t('Delete')))), isValidUrl && /*#__PURE__*/_react["default"].createElement("span", {
|
|
55
58
|
className: "op-group-item"
|
|
56
59
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
57
60
|
id: "sdoc_whiteboard_full_screen_mode",
|
|
@@ -59,7 +62,7 @@ var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
|
59
62
|
className: "op-item",
|
|
60
63
|
onClick: openFullscreen
|
|
61
64
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
62
|
-
className: "sdocfont sdoc-fullscreen"
|
|
65
|
+
className: "sdocfont sdoc-fullscreen icon-font"
|
|
63
66
|
}), showTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
64
67
|
target: "sdoc_whiteboard_full_screen_mode",
|
|
65
68
|
placement: "top",
|
|
@@ -10,9 +10,11 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
|
+
var _reactI18next = require("react-i18next");
|
|
13
14
|
var _slate = require("@seafile/slate");
|
|
14
15
|
var _slateReact = require("@seafile/slate-react");
|
|
15
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
16
18
|
var _constants = require("../../../constants");
|
|
17
19
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
18
20
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
@@ -33,6 +35,8 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
33
35
|
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
34
36
|
var isSelected = (0, _slateReact.useSelected)();
|
|
35
37
|
var readOnly = (0, _slateReact.useReadOnly)();
|
|
38
|
+
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
39
|
+
t = _useTranslation.t;
|
|
36
40
|
var _useState = (0, _react.useState)({
|
|
37
41
|
top: '',
|
|
38
42
|
left: ''
|
|
@@ -44,7 +48,11 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
44
48
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
45
49
|
isShowZoomOut = _useState4[0],
|
|
46
50
|
setIsShowZoomOut = _useState4[1];
|
|
51
|
+
var isValidUrl = (0, _react.useMemo)(function () {
|
|
52
|
+
return (0, _isUrl["default"])(link);
|
|
53
|
+
}, [link]);
|
|
47
54
|
(0, _react.useEffect)(function () {
|
|
55
|
+
if (!isValidUrl) return;
|
|
48
56
|
var handleMessage = function handleMessage(event) {
|
|
49
57
|
var _event$data;
|
|
50
58
|
if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'checkSdocParent') {
|
|
@@ -86,7 +94,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
86
94
|
window.removeEventListener('message', handleMessage);
|
|
87
95
|
unsubscribeResizeArticle();
|
|
88
96
|
};
|
|
89
|
-
}, []);
|
|
97
|
+
}, [isValidUrl]);
|
|
90
98
|
var onDeleteWhiteboard = (0, _react.useCallback)(function () {
|
|
91
99
|
var path = _slateReact.ReactEditor.findPath(editor, element);
|
|
92
100
|
_slate.Transforms.removeNodes(editor, {
|
|
@@ -97,6 +105,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
97
105
|
}, [editor, element]);
|
|
98
106
|
var handleDoubleClick = function handleDoubleClick(event) {
|
|
99
107
|
event.preventDefault();
|
|
108
|
+
if (!isValidUrl) return;
|
|
100
109
|
var siteRoot = _context["default"].getSetting('siteRoot');
|
|
101
110
|
var url = "".concat(siteRoot, "lib/").concat(repo_id, "/file").concat(file_path);
|
|
102
111
|
window.open(url, '_blank');
|
|
@@ -116,6 +125,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
116
125
|
scrollRef.current.addEventListener('scroll', handleScroll);
|
|
117
126
|
observerRefValue = scrollRef.current;
|
|
118
127
|
resizeObserver = new ResizeObserver(function (entries) {
|
|
128
|
+
// eslint-disable-next-line no-unused-vars
|
|
119
129
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(entries),
|
|
120
130
|
_step;
|
|
121
131
|
try {
|
|
@@ -172,7 +182,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
172
182
|
scrolling: "no"
|
|
173
183
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
174
184
|
className: "sdoc-whiteboard-title"
|
|
175
|
-
}, title), /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
185
|
+
}, title), isValidUrl && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
176
186
|
className: "sdoc-whiteboard-element",
|
|
177
187
|
title: title,
|
|
178
188
|
src: link,
|
|
@@ -181,7 +191,11 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
181
191
|
className: "iframe-overlay",
|
|
182
192
|
onDoubleClick: handleDoubleClick,
|
|
183
193
|
onClick: handleOnClick
|
|
184
|
-
})),
|
|
194
|
+
})), !isValidUrl && /*#__PURE__*/_react["default"].createElement("div", {
|
|
195
|
+
ref: whiteboardRef,
|
|
196
|
+
className: "sdoc-whiteboard-tip"
|
|
197
|
+
}, t('Whiteboard_link_invalid_tip'))), isSelected && !readOnly && !isShowZoomOut && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
|
|
198
|
+
isValidUrl: isValidUrl,
|
|
185
199
|
menuPosition: menuPosition,
|
|
186
200
|
onOpen: handleDoubleClick,
|
|
187
201
|
openFullscreen: openFullscreen,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.75",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"description": "",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@seafile/comment-editor": "1.0.
|
|
20
|
+
"@seafile/comment-editor": "~1.0.15",
|
|
21
21
|
"@seafile/print-js": "1.6.6",
|
|
22
22
|
"@seafile/react-image-lightbox": "5.0.4",
|
|
23
23
|
"@seafile/seafile-database": "0.0.19",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "8d8c95e1ddd3d22992930f73c25bf7973aca4c2c"
|
|
76
76
|
}
|