@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
- if (whiteboardRef.current.requestFullscreen) {
128
- // Chrome
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$querySelect;
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
- rect = commentedDom.getBoundingClientRect();
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$querySelect = document.querySelectorAll("[data-id=\"".concat(selectedElementIds[0], "\"]"))[0]) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
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.176",
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": "af682c37664669ad91b127c27821758bd1d61a30"
74
+ "gitHead": "471a56e253db6798199eee066673bc59a9f6172b"
75
75
  }