@seafile/sdoc-editor 2.0.176 → 2.0.177
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.
|
@@ -39,3 +39,22 @@
|
|
|
39
39
|
position: relative;
|
|
40
40
|
z-index: 1;
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
.whiteboard-zoom-out-container {
|
|
44
|
+
position: fixed;
|
|
45
|
+
inset: 0;
|
|
46
|
+
background: rgba(0, 0, 0, 0.7);
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
align-items: center;
|
|
50
|
+
z-index: 9999;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.whiteboard-zoom-out-container .sdoc-whiteboard-element-full-screen {
|
|
54
|
+
pointer-events: auto;
|
|
55
|
+
background: #fff;
|
|
56
|
+
border-radius: 12px;
|
|
57
|
+
width: 80%;
|
|
58
|
+
height: 80%;
|
|
59
|
+
overflow: auto;
|
|
60
|
+
}
|
|
@@ -9,6 +9,7 @@ exports.renderWhiteboard = renderWhiteboard;
|
|
|
9
9
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
13
|
var _slate = require("@seafile/slate");
|
|
13
14
|
var _slateReact = require("@seafile/slate-react");
|
|
14
15
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -38,14 +39,20 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
38
39
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
39
40
|
menuPosition = _useState2[0],
|
|
40
41
|
setMenuPosition = _useState2[1];
|
|
42
|
+
var _useState3 = (0, _react.useState)(false),
|
|
43
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
44
|
+
isShowZoomOut = _useState4[0],
|
|
45
|
+
setIsShowZoomOut = _useState4[1];
|
|
41
46
|
(0, _react.useEffect)(function () {
|
|
42
47
|
var handleMessage = function handleMessage(event) {
|
|
43
48
|
var _event$data;
|
|
44
49
|
if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'checkSdocParent') {
|
|
45
50
|
var isSdocClass = whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.classList.contains('sdoc-whiteboard-element');
|
|
51
|
+
var isWhiteboardFullScreen = whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.classList.contains('sdoc-whiteboard-element-full-screen');
|
|
46
52
|
whiteboardRef === null || whiteboardRef === void 0 ? void 0 : whiteboardRef.current.contentWindow.postMessage({
|
|
47
53
|
type: 'checkSdocParentResult',
|
|
48
|
-
isInSdoc: isSdocClass
|
|
54
|
+
isInSdoc: isSdocClass,
|
|
55
|
+
isFullScreen: isWhiteboardFullScreen
|
|
49
56
|
}, '*');
|
|
50
57
|
}
|
|
51
58
|
};
|
|
@@ -123,18 +130,23 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
123
130
|
setMenuPosition(_menuPosition);
|
|
124
131
|
}
|
|
125
132
|
}, [editor, isSelected, readOnly]);
|
|
126
|
-
var openFullscreen = function openFullscreen() {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
whiteboardRef.current.requestFullscreen();
|
|
130
|
-
} else if (whiteboardRef.current.webkitRequestFullscreen) {
|
|
131
|
-
// Safari
|
|
132
|
-
whiteboardRef.current.webkitRequestFullscreen();
|
|
133
|
-
} else if (whiteboardRef.current.msRequestFullscreen) {
|
|
134
|
-
// IE11
|
|
135
|
-
whiteboardRef.current.msRequestFullscreen();
|
|
136
|
-
}
|
|
133
|
+
var openFullscreen = function openFullscreen(e) {
|
|
134
|
+
e.stopPropagation();
|
|
135
|
+
setIsShowZoomOut(true);
|
|
137
136
|
};
|
|
137
|
+
(0, _react.useEffect)(function () {
|
|
138
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
139
|
+
if (e.key === 'Escape') {
|
|
140
|
+
setIsShowZoomOut(false);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
if (isShowZoomOut) {
|
|
144
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
145
|
+
}
|
|
146
|
+
return function () {
|
|
147
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
148
|
+
};
|
|
149
|
+
}, [isShowZoomOut, setIsShowZoomOut]);
|
|
138
150
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
139
151
|
className: (0, _classnames["default"])('sdoc-whiteboard-container', {
|
|
140
152
|
'isSelected': isSelected
|
|
@@ -152,12 +164,21 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
152
164
|
className: "iframe-overlay",
|
|
153
165
|
onDoubleClick: handleDoubleClick,
|
|
154
166
|
onClick: handleOnClick
|
|
155
|
-
})), isSelected && !readOnly && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
|
|
167
|
+
})), isSelected && !readOnly && !isShowZoomOut && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
|
|
156
168
|
menuPosition: menuPosition,
|
|
157
169
|
onOpen: handleDoubleClick,
|
|
158
170
|
openFullscreen: openFullscreen,
|
|
159
171
|
onDeleteWhiteboard: onDeleteWhiteboard
|
|
160
|
-
})
|
|
172
|
+
}), isShowZoomOut && (/*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement("div", {
|
|
173
|
+
className: "whiteboard-zoom-out-container",
|
|
174
|
+
onClick: function onClick() {
|
|
175
|
+
return setIsShowZoomOut(false);
|
|
176
|
+
}
|
|
177
|
+
}, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
178
|
+
className: "sdoc-whiteboard-element-full-screen",
|
|
179
|
+
src: link,
|
|
180
|
+
ref: whiteboardRef
|
|
181
|
+
})), document.body)));
|
|
161
182
|
};
|
|
162
183
|
function renderWhiteboard(props, editor) {
|
|
163
184
|
var element = props.element,
|
|
@@ -8,7 +8,7 @@ var _helper = require("../comment/helper");
|
|
|
8
8
|
var _constants = require("../constants");
|
|
9
9
|
var _useScrollContext = require("./use-scroll-context");
|
|
10
10
|
var useCommentListPosition = exports.useCommentListPosition = function useCommentListPosition(selectedElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment, editor) {
|
|
11
|
-
var _document$
|
|
11
|
+
var _document$querySelect2;
|
|
12
12
|
var headerHeight = 100;
|
|
13
13
|
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
14
14
|
var _ref = scrollRef.current || {},
|
|
@@ -17,7 +17,9 @@ var useCommentListPosition = exports.useCommentListPosition = function useCommen
|
|
|
17
17
|
if (isContextComment || isClickedContextComment) {
|
|
18
18
|
var rect;
|
|
19
19
|
if (isContextComment) {
|
|
20
|
-
|
|
20
|
+
var _document$querySelect;
|
|
21
|
+
var commentedDomId = commentedDom.getAttribute('data-id');
|
|
22
|
+
rect = (_document$querySelect = document.querySelector("[data-id=\"".concat(commentedDomId, "\"]"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
// rect is the last commented context dom
|
|
@@ -65,7 +67,7 @@ var useCommentListPosition = exports.useCommentListPosition = function useCommen
|
|
|
65
67
|
y: topPara
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
|
-
var selectionPosition = (_document$
|
|
70
|
+
var selectionPosition = (_document$querySelect2 = document.querySelectorAll("[data-id=\"".concat(selectedElementIds[0], "\"]"))[0]) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect();
|
|
69
71
|
// Boundary check
|
|
70
72
|
if (!selectionPosition) closeComment();
|
|
71
73
|
if (selectionPosition && selectionPosition.y !== 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.177",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "471a56e253db6798199eee066673bc59a9f6172b"
|
|
75
75
|
}
|