@seafile/sdoc-editor 2.0.156 → 2.0.158
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/comment/components/editor-comment.js +1 -0
- package/dist/extension/commons/file-link-preview/index.css +20 -38
- package/dist/extension/commons/file-link-preview/index.js +52 -18
- package/dist/extension/commons/select-file-dialog/index.js +1 -1
- package/dist/extension/plugins/callout/render-elem/callout-hover-menu/index.js +20 -2
- package/dist/extension/plugins/file-link/hover-menu/index.js +27 -5
- package/dist/extension/plugins/image/helpers.js +8 -0
- package/dist/extension/plugins/link/hover/index.js +22 -2
- package/dist/extension/plugins/sdoc-link/hover-menu/index.css +1 -1
- package/dist/extension/plugins/sdoc-link/hover-menu/index.js +34 -7
- package/dist/extension/plugins/sdoc-link/render/render-elem.js +27 -9
- package/dist/extension/plugins/video/helpers.js +9 -1
- package/dist/extension/plugins/video/menu/index.js +1 -1
- package/dist/extension/plugins/video/render-elem.js +2 -2
- package/dist/extension/plugins/whiteboard/menu/index.js +1 -1
- package/dist/socket/socket-client.js +2 -0
- package/package.json +2 -2
|
@@ -168,6 +168,7 @@ var EditorComment = function EditorComment(_ref) {
|
|
|
168
168
|
};
|
|
169
169
|
var handleClickCommentedText = function handleClickCommentedText(event) {
|
|
170
170
|
var parentDom = event.target.parentElement;
|
|
171
|
+
if (!parentDom) return;
|
|
171
172
|
if (typeof parentDom.className !== 'string') return;
|
|
172
173
|
if (parentDom !== null && parentDom !== void 0 && parentDom.className.split(/\s+/).some(function (cls) {
|
|
173
174
|
return cls.startsWith('sdoc_comment');
|
|
@@ -101,48 +101,30 @@
|
|
|
101
101
|
padding: 8px;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
.file-preview-panel-body .
|
|
105
|
-
|
|
106
|
-
font-size: calc(100vw / 794 * 14.7) !important;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-checkbox-input {
|
|
110
|
-
width: calc(100vw / 794 * 13) !important;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-code-block-pre {
|
|
114
|
-
font-size: calc(100vw / 794 * 13.3) !important;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-header-title {
|
|
118
|
-
font-size: calc(100vw / 794 * 33.7) !important;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-header-subtitle {
|
|
122
|
-
font-size: calc(100vw / 794 * 20) !important;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-header-1 {
|
|
126
|
-
font-size: calc(100vw / 794 * 26.7) !important;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-header-2 {
|
|
130
|
-
font-size: calc(100vw / 794 * 21.3) !important;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.file-preview-panel-body .file-preview-container:fullscreen .sdoc-header-3 {
|
|
134
|
-
font-size: calc(100vw / 794 * 18.7) !important;
|
|
104
|
+
.file-preview-panel-body .sdoc-article-container .sdoc-table-wrapper {
|
|
105
|
+
max-width: none !important;
|
|
135
106
|
}
|
|
136
107
|
|
|
137
|
-
.
|
|
138
|
-
|
|
108
|
+
.zoom-out-container {
|
|
109
|
+
position: fixed;
|
|
110
|
+
inset: 0;
|
|
111
|
+
background: rgba(0, 0, 0, 0.7);
|
|
112
|
+
display: flex;
|
|
113
|
+
justify-content: center;
|
|
114
|
+
align-items: center;
|
|
115
|
+
z-index: 9999;
|
|
139
116
|
}
|
|
140
117
|
|
|
141
|
-
.file-preview-
|
|
142
|
-
|
|
143
|
-
|
|
118
|
+
.file-preview-zoom-out-container {
|
|
119
|
+
pointer-events: auto;
|
|
120
|
+
background: #fff;
|
|
121
|
+
border-radius: 12px;
|
|
122
|
+
max-width: 80%;
|
|
123
|
+
max-height: 80%;
|
|
124
|
+
overflow: auto;
|
|
144
125
|
}
|
|
145
126
|
|
|
146
|
-
.file-preview-
|
|
147
|
-
|
|
127
|
+
.file-preview-zoom-out-container .article {
|
|
128
|
+
padding: 40px;
|
|
129
|
+
pointer-events: none;
|
|
148
130
|
}
|
|
@@ -10,6 +10,7 @@ var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/r
|
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
14
|
var _slate = require("@seafile/slate");
|
|
14
15
|
var _slateReact = require("@seafile/slate-react");
|
|
15
16
|
var _fileLoading = _interopRequireDefault(require("../../../components/file-loading"));
|
|
@@ -35,29 +36,27 @@ var FilePreviewWrapper = function FilePreviewWrapper(_ref) {
|
|
|
35
36
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
36
37
|
isReloading = _useState6[0],
|
|
37
38
|
setIsReloading = _useState6[1];
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
var _useState7 = (0, _react.useState)(false),
|
|
40
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
41
|
+
isShowZoomOut = _useState8[0],
|
|
42
|
+
setIsShowZoomOut = _useState8[1];
|
|
41
43
|
var _usePlugins = (0, _usePlugins2.usePlugins)(),
|
|
42
44
|
closePlugin = _usePlugins.closePlugin;
|
|
43
45
|
var filePreviewRef = (0, _react.useRef)();
|
|
46
|
+
var readonlyEditor = (0, _react.useMemo)(function () {
|
|
47
|
+
var editor = (0, _slateReact.withReact)((0, _slate.createEditor)());
|
|
48
|
+
editor.preview_docUuid = docUuid;
|
|
49
|
+
return editor;
|
|
50
|
+
}, [docUuid]);
|
|
44
51
|
var fileTypeIcon = (0, _helpers.parcelFileTypeIcon)(title);
|
|
45
|
-
var openFullscreen = function openFullscreen() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
filePreviewRef.current.requestFullscreen();
|
|
49
|
-
} else if (filePreviewRef.current.webkitRequestFullscreen) {
|
|
50
|
-
// Safari
|
|
51
|
-
filePreviewRef.current.webkitRequestFullscreen();
|
|
52
|
-
} else if (filePreviewRef.current.msRequestFullscreen) {
|
|
53
|
-
// IE11
|
|
54
|
-
filePreviewRef.current.msRequestFullscreen();
|
|
55
|
-
}
|
|
52
|
+
var openFullscreen = function openFullscreen(e) {
|
|
53
|
+
e.stopPropagation();
|
|
54
|
+
setIsShowZoomOut(true);
|
|
56
55
|
};
|
|
57
56
|
(0, _react.useEffect)(function () {
|
|
58
57
|
var fetchFileContent = /*#__PURE__*/function () {
|
|
59
58
|
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee() {
|
|
60
|
-
var token, tokenRes, result, _t;
|
|
59
|
+
var token, tokenRes, result, fileContentElements, _t;
|
|
61
60
|
return (0, _regenerator2["default"])().w(function (_context) {
|
|
62
61
|
while (1) switch (_context.p = _context.n) {
|
|
63
62
|
case 0:
|
|
@@ -78,8 +77,9 @@ var FilePreviewWrapper = function FilePreviewWrapper(_ref) {
|
|
|
78
77
|
return _context2["default"].getFileContentByDocUuidAndAccessToken(docUuid, token);
|
|
79
78
|
case 3:
|
|
80
79
|
result = _context.v;
|
|
80
|
+
fileContentElements = result.data.elements;
|
|
81
81
|
setIsReloading(false);
|
|
82
|
-
setFileContent(
|
|
82
|
+
setFileContent(fileContentElements);
|
|
83
83
|
setComponent(function () {
|
|
84
84
|
return _readonlyArticle["default"];
|
|
85
85
|
});
|
|
@@ -105,7 +105,20 @@ var FilePreviewWrapper = function FilePreviewWrapper(_ref) {
|
|
|
105
105
|
fetchFileContent();
|
|
106
106
|
}
|
|
107
107
|
}, [docUuid]);
|
|
108
|
-
|
|
108
|
+
(0, _react.useEffect)(function () {
|
|
109
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
110
|
+
if (e.key === 'Escape') {
|
|
111
|
+
setIsShowZoomOut(false);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
if (isShowZoomOut) {
|
|
115
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
116
|
+
}
|
|
117
|
+
return function () {
|
|
118
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
119
|
+
};
|
|
120
|
+
}, [isShowZoomOut, setIsShowZoomOut]);
|
|
121
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
109
122
|
className: "sdoc-file-preview-drawer"
|
|
110
123
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
124
|
className: "file-preview-panel-wrapper"
|
|
@@ -154,6 +167,27 @@ var FilePreviewWrapper = function FilePreviewWrapper(_ref) {
|
|
|
154
167
|
key: docUuid,
|
|
155
168
|
editor: readonlyEditor,
|
|
156
169
|
slateValue: fileContent
|
|
157
|
-
}))))))
|
|
170
|
+
})))))), isShowZoomOut && Component && (/*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement("div", {
|
|
171
|
+
className: "zoom-out-container",
|
|
172
|
+
onClick: function onClick() {
|
|
173
|
+
return setIsShowZoomOut(false);
|
|
174
|
+
}
|
|
175
|
+
}, /*#__PURE__*/_react["default"].createElement(_useScrollContext.ScrollContext.Provider, {
|
|
176
|
+
value: {
|
|
177
|
+
scrollRef: {
|
|
178
|
+
current: null
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
182
|
+
className: "file-preview-zoom-out-container",
|
|
183
|
+
ref: filePreviewRef,
|
|
184
|
+
onClick: function onClick(e) {
|
|
185
|
+
return e.stopPropagation();
|
|
186
|
+
}
|
|
187
|
+
}, /*#__PURE__*/_react["default"].createElement(Component, {
|
|
188
|
+
key: docUuid,
|
|
189
|
+
editor: readonlyEditor,
|
|
190
|
+
slateValue: fileContent
|
|
191
|
+
})))), document.body)));
|
|
158
192
|
};
|
|
159
193
|
var _default = exports["default"] = FilePreviewWrapper;
|
|
@@ -55,7 +55,7 @@ var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
|
55
55
|
modalTitle = 'Select_video_file';
|
|
56
56
|
break;
|
|
57
57
|
case _constants.ELEMENT_TYPE.WHITEBOARD:
|
|
58
|
-
modalTitle = '
|
|
58
|
+
modalTitle = 'Link_Excalidraw_file';
|
|
59
59
|
break;
|
|
60
60
|
default:
|
|
61
61
|
break;
|
|
@@ -10,6 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _reactI18next = require("react-i18next");
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
|
|
13
14
|
var _commons = require("../../../../commons");
|
|
14
15
|
var _helper = require("../../helper");
|
|
15
16
|
var _calloutColorSelector = _interopRequireDefault(require("../callout-color-selector"));
|
|
@@ -29,6 +30,13 @@ function CalloutHoverMenu(_ref) {
|
|
|
29
30
|
setIsShowIcon = _useState4[1];
|
|
30
31
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
31
32
|
t = _useTranslation.t;
|
|
33
|
+
var _useState5 = (0, _react.useState)(false),
|
|
34
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
35
|
+
isShowTooltip = _useState6[0],
|
|
36
|
+
setIsShowTooltip = _useState6[1];
|
|
37
|
+
(0, _react.useEffect)(function () {
|
|
38
|
+
setIsShowTooltip(true);
|
|
39
|
+
}, []);
|
|
32
40
|
var onColorSelectorToggle = (0, _react.useCallback)(function (event) {
|
|
33
41
|
event.stopPropagation();
|
|
34
42
|
if (!isShowColorSelector) {
|
|
@@ -62,22 +70,32 @@ function CalloutHoverMenu(_ref) {
|
|
|
62
70
|
className: "sdoc-callout-hover-menu",
|
|
63
71
|
style: popoverPosition
|
|
64
72
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
73
|
+
id: "select_callout_color",
|
|
65
74
|
className: firstItemClass,
|
|
66
75
|
onClick: onColorSelectorToggle
|
|
67
76
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
68
77
|
className: "sdocfont sdoc-callout-color mr-1"
|
|
69
78
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
70
79
|
className: "sdocfont sdoc-drop-down"
|
|
71
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
80
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
81
|
+
target: "select_callout_color",
|
|
82
|
+
placement: "top",
|
|
83
|
+
fade: true
|
|
84
|
+
}, t('Background_color')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
72
85
|
className: "callout-menu-divider"
|
|
73
86
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
87
|
+
id: "select_callout_icon",
|
|
74
88
|
className: secondItemClass,
|
|
75
89
|
onClick: onIconToggle
|
|
76
90
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
77
91
|
className: "sdocfont sdoc-callout-icon mr-1"
|
|
78
92
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
79
93
|
className: "sdocfont sdoc-drop-down"
|
|
80
|
-
})),
|
|
94
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
95
|
+
target: "select_callout_icon",
|
|
96
|
+
placement: "top",
|
|
97
|
+
fade: true
|
|
98
|
+
}, t('Icon')), isShowColorSelector && /*#__PURE__*/_react["default"].createElement(_calloutColorSelector["default"], {
|
|
81
99
|
editor: editor,
|
|
82
100
|
element: element,
|
|
83
101
|
onCloseSelector: onCloseSelector
|
|
@@ -13,6 +13,7 @@ var _slate = require("@seafile/slate");
|
|
|
13
13
|
var _slateReact = require("@seafile/slate-react");
|
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
16
|
+
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
16
17
|
var _commons = require("../../../commons");
|
|
17
18
|
var _constants = require("../../../constants");
|
|
18
19
|
var _core = require("../../../core");
|
|
@@ -31,6 +32,13 @@ var FileLinkHoverMenu = function FileLinkHoverMenu(_ref) {
|
|
|
31
32
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
32
33
|
isShowDisplayStylePopover = _useState2[0],
|
|
33
34
|
setIsShowDisplayStylePopover = _useState2[1];
|
|
35
|
+
var _useState3 = (0, _react.useState)(false),
|
|
36
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
37
|
+
isShowTooltip = _useState4[0],
|
|
38
|
+
setIsShowTooltip = _useState4[1];
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
setIsShowTooltip(true);
|
|
41
|
+
}, []);
|
|
34
42
|
var onCopy = (0, _react.useCallback)(function (e) {
|
|
35
43
|
e.stopPropagation();
|
|
36
44
|
(0, _helpers.onCopyFileLinkNode)(editor, element);
|
|
@@ -82,29 +90,43 @@ var FileLinkHoverMenu = function FileLinkHoverMenu(_ref) {
|
|
|
82
90
|
}, t('Open_link')))), !readOnly && /*#__PURE__*/_react["default"].createElement("span", {
|
|
83
91
|
className: "op-group-item"
|
|
84
92
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
93
|
+
id: "copy_link",
|
|
85
94
|
role: "button",
|
|
86
95
|
className: "op-item",
|
|
87
96
|
onClick: onCopy
|
|
88
97
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
89
98
|
className: "sdocfont sdoc-copy icon-font"
|
|
90
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
99
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
100
|
+
target: "copy_link",
|
|
101
|
+
placement: "top",
|
|
102
|
+
fade: true
|
|
103
|
+
}, t('Copy')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
104
|
+
id: "select_style",
|
|
91
105
|
role: "button",
|
|
92
106
|
className: (0, _classnames["default"])('op-item', {
|
|
93
107
|
'link-style-icon-active': isShowDisplayStylePopover
|
|
94
108
|
}),
|
|
95
|
-
onClick: onShowProver
|
|
96
|
-
id: id
|
|
109
|
+
onClick: onShowProver
|
|
97
110
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
98
111
|
className: (0, _classnames["default"])('icon-font mr-1', _constants2.FILE_LINK_TYPE_CONFIG[selectedType].icon)
|
|
99
112
|
}), /*#__PURE__*/_react["default"].createElement("i", {
|
|
100
113
|
className: "sdocfont sdoc-drop-down icon-font"
|
|
101
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
114
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
115
|
+
target: "select_style",
|
|
116
|
+
placement: "top",
|
|
117
|
+
fade: true
|
|
118
|
+
}, t('Select_style')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
119
|
+
id: "delete_link",
|
|
102
120
|
role: "button",
|
|
103
121
|
className: "op-item",
|
|
104
122
|
onClick: onUnwrapFileLinkNode
|
|
105
123
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
106
124
|
className: "sdocfont sdoc-unlink icon-font"
|
|
107
|
-
}))
|
|
125
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
126
|
+
target: "delete_link",
|
|
127
|
+
placement: "top",
|
|
128
|
+
fade: true
|
|
129
|
+
}, t('Remove_link')))), isShowDisplayStylePopover && /*#__PURE__*/_react["default"].createElement("div", {
|
|
108
130
|
className: "sdoc-file-display-style-popover sdoc-dropdown-menu"
|
|
109
131
|
}, newFileLinkTypes.map(function (fileLinkType) {
|
|
110
132
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -180,6 +180,14 @@ var getImageURL = exports.getImageURL = function getImageURL(data, editor) {
|
|
|
180
180
|
if (isImageUrlIsFromCopy(url)) return url;
|
|
181
181
|
var serviceUrl = _context2["default"].getSetting('serviceUrl');
|
|
182
182
|
var assetsUrl = _context2["default"].getSetting('assetsUrl');
|
|
183
|
+
|
|
184
|
+
// If in sdoc link preview
|
|
185
|
+
var docUuid = editor.preview_docUuid;
|
|
186
|
+
if (docUuid) {
|
|
187
|
+
var baseUrl = assetsUrl.split('/');
|
|
188
|
+
baseUrl[baseUrl.length - 1] = docUuid;
|
|
189
|
+
assetsUrl = baseUrl.join('/');
|
|
190
|
+
}
|
|
183
191
|
return (0, _urlJoin["default"])(serviceUrl, assetsUrl, url);
|
|
184
192
|
};
|
|
185
193
|
var hasSdocImages = exports.hasSdocImages = function hasSdocImages(originSdocUuid, fragmentData) {
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
8
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
var _reactDom = require("react-dom");
|
|
10
12
|
var _reactI18next = require("react-i18next");
|
|
11
13
|
var _slateReact = require("@seafile/slate-react");
|
|
14
|
+
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
12
15
|
var _helpers = require("../helpers");
|
|
13
16
|
require("./index.css");
|
|
14
17
|
var LinkHover = function LinkHover(_ref) {
|
|
@@ -20,6 +23,13 @@ var LinkHover = function LinkHover(_ref) {
|
|
|
20
23
|
var readOnly = (0, _slateReact.useReadOnly)();
|
|
21
24
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
22
25
|
t = _useTranslation.t;
|
|
26
|
+
var _useState = (0, _react.useState)(false),
|
|
27
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
28
|
+
isShowTooltip = _useState2[0],
|
|
29
|
+
setIsShowTooltip = _useState2[1];
|
|
30
|
+
(0, _react.useEffect)(function () {
|
|
31
|
+
setIsShowTooltip(true);
|
|
32
|
+
}, []);
|
|
23
33
|
var onMouseDown = (0, _react.useCallback)(function (event) {
|
|
24
34
|
event.stopPropagation();
|
|
25
35
|
if (!(0, _helpers.isWeChat)()) {
|
|
@@ -41,17 +51,27 @@ var LinkHover = function LinkHover(_ref) {
|
|
|
41
51
|
}, t('Open_link')), !readOnly && /*#__PURE__*/_react["default"].createElement("div", {
|
|
42
52
|
className: "link-op-icons d-flex"
|
|
43
53
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
54
|
+
id: "edit-link",
|
|
44
55
|
role: "button",
|
|
45
56
|
className: "link-op-icon",
|
|
46
57
|
onClick: onEditLink
|
|
47
58
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
48
59
|
className: "sdocfont sdoc-rename"
|
|
49
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
60
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
61
|
+
target: "edit-link",
|
|
62
|
+
placement: "top",
|
|
63
|
+
fade: true
|
|
64
|
+
}, t('Edit_link')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
65
|
+
id: "delete-link",
|
|
50
66
|
role: "button",
|
|
51
67
|
className: "link-op-icon",
|
|
52
68
|
onClick: onDeleteLink
|
|
53
69
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
54
70
|
className: "sdocfont sdoc-unlink"
|
|
55
|
-
}))
|
|
71
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
72
|
+
target: "delete-link",
|
|
73
|
+
placement: "top",
|
|
74
|
+
fade: true
|
|
75
|
+
}, t('Remove_link')))), document.body));
|
|
56
76
|
};
|
|
57
77
|
var _default = exports["default"] = LinkHover;
|
|
@@ -13,9 +13,9 @@ var _slate = require("@seafile/slate");
|
|
|
13
13
|
var _slateReact = require("@seafile/slate-react");
|
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
16
|
+
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
16
17
|
var _constants = require("../../../../constants");
|
|
17
18
|
var _usePlugins2 = require("../../../../hooks/use-plugins");
|
|
18
|
-
var _outline = require("../../../../outline");
|
|
19
19
|
var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
|
|
20
20
|
var _commons = require("../../../commons");
|
|
21
21
|
var _constants2 = require("../constants");
|
|
@@ -36,6 +36,13 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
|
|
|
36
36
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
37
37
|
isShowDisplayStylePopover = _useState2[0],
|
|
38
38
|
setIsShowDisplayStylePopover = _useState2[1];
|
|
39
|
+
var _useState3 = (0, _react.useState)(false),
|
|
40
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
41
|
+
isShowTooltip = _useState4[0],
|
|
42
|
+
setIsShowTooltip = _useState4[1];
|
|
43
|
+
(0, _react.useEffect)(function () {
|
|
44
|
+
setIsShowTooltip(true);
|
|
45
|
+
}, []);
|
|
39
46
|
var onCopy = (0, _react.useCallback)(function (e) {
|
|
40
47
|
e.stopPropagation();
|
|
41
48
|
(0, _helpers.onCopySdocLinkNode)(editor, element);
|
|
@@ -47,6 +54,7 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
|
|
|
47
54
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
55
|
}, []);
|
|
49
56
|
var onShowProver = (0, _react.useCallback)(function (e) {
|
|
57
|
+
e.stopPropagation();
|
|
50
58
|
setIsShowDisplayStylePopover(true);
|
|
51
59
|
}, []);
|
|
52
60
|
var onSelect = (0, _react.useCallback)(function (event, value) {
|
|
@@ -102,29 +110,44 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
|
|
|
102
110
|
}, t('Open_link')))), !readOnly && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
103
111
|
className: "op-group-item"
|
|
104
112
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
113
|
+
id: "sdoc_link_copy",
|
|
105
114
|
role: "button",
|
|
106
115
|
className: "op-item",
|
|
107
116
|
onClick: onCopy
|
|
108
117
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
109
118
|
className: "sdocfont sdoc-copy icon-font"
|
|
110
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
119
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
120
|
+
target: "sdoc_link_copy",
|
|
121
|
+
placement: "top",
|
|
122
|
+
fade: true
|
|
123
|
+
}, t('Copy')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
124
|
+
id: "display_sdoc_link",
|
|
111
125
|
role: "button",
|
|
112
126
|
className: "op-item ".concat(isShowDisplayStylePopover ? 'link-style-icon-active' : ''),
|
|
113
|
-
onClick: onShowProver
|
|
114
|
-
id: id
|
|
127
|
+
onClick: onShowProver
|
|
115
128
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
116
129
|
className: (0, _classnames["default"])('icon-font mr-1', _constants2.SDOC_LINK_TYPE_CONFIG[selectedType].icon)
|
|
117
130
|
}), /*#__PURE__*/_react["default"].createElement("i", {
|
|
118
131
|
className: "sdocfont sdoc-drop-down icon-font"
|
|
119
|
-
}))
|
|
132
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
133
|
+
target: "display_sdoc_link",
|
|
134
|
+
placement: "top",
|
|
135
|
+
fade: true
|
|
136
|
+
}, t('Select_style'))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
120
137
|
className: "op-group-item"
|
|
121
138
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
139
|
+
id: "delete_sdoc_link",
|
|
122
140
|
role: "button",
|
|
123
141
|
className: 'op-item',
|
|
124
142
|
onClick: onUnwrapFileLinkNode
|
|
125
143
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
126
144
|
className: "sdocfont sdoc-unlink icon-font"
|
|
127
|
-
})), /*#__PURE__*/_react["default"].createElement("
|
|
145
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
146
|
+
target: "delete_sdoc_link",
|
|
147
|
+
placement: "top",
|
|
148
|
+
fade: true
|
|
149
|
+
}, t('Remove_link')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
150
|
+
id: "sdoc_link_preview",
|
|
128
151
|
role: "button",
|
|
129
152
|
className: "op-item",
|
|
130
153
|
onClick: function onClick() {
|
|
@@ -132,7 +155,11 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
|
|
|
132
155
|
}
|
|
133
156
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
134
157
|
className: "sdocfont eye icon-font"
|
|
135
|
-
}))
|
|
158
|
+
})), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
159
|
+
target: "sdoc_link_preview",
|
|
160
|
+
placement: "top",
|
|
161
|
+
fade: true
|
|
162
|
+
}, t('Preview'))))), isShowDisplayStylePopover && /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
163
|
className: "sdoc-file-display-style-popover sdoc-dropdown-menu"
|
|
137
164
|
}, newSdocFileTypes.map(function (sdocLinkType) {
|
|
138
165
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -13,12 +13,15 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _slate = require("@seafile/slate");
|
|
14
14
|
var _slateReact = require("@seafile/slate-react");
|
|
15
15
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
|
+
var _constants = require("../../../../constants");
|
|
17
|
+
var _usePlugins2 = require("../../../../hooks/use-plugins");
|
|
16
18
|
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
17
|
-
var
|
|
19
|
+
var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
|
|
20
|
+
var _constants2 = require("../../../constants");
|
|
18
21
|
var _elementType = require("../../../constants/element-type");
|
|
19
22
|
var _core = require("../../../core");
|
|
20
23
|
var _helpers = require("../../wiki-link/helpers");
|
|
21
|
-
var
|
|
24
|
+
var _constants3 = require("../constants");
|
|
22
25
|
var _helpers2 = require("../helpers");
|
|
23
26
|
var _hoverMenu = _interopRequireDefault(require("../hover-menu"));
|
|
24
27
|
require("./render-elem.css");
|
|
@@ -41,6 +44,8 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
41
44
|
setMenuPosition = _useState4[1];
|
|
42
45
|
var readOnly = (0, _slateReact.useReadOnly)();
|
|
43
46
|
var isSelected = (0, _slateReact.useSelected)();
|
|
47
|
+
var _usePlugins = (0, _usePlugins2.usePlugins)(),
|
|
48
|
+
updateDisplayPlugin = _usePlugins.updateDisplayPlugin;
|
|
44
49
|
var registerEventHandle = (0, _react.useCallback)(function () {
|
|
45
50
|
document.addEventListener('click', onHideInsertHoverMenu);
|
|
46
51
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -120,8 +125,21 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
120
125
|
return;
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
|
-
if (isShowInsertHoverMenu) {
|
|
128
|
+
if (isShowInsertHoverMenu && element.type === _elementType.SDOC_LINK) {
|
|
124
129
|
e.stopPropagation();
|
|
130
|
+
updateDisplayPlugin('sdoc-file-preview', true);
|
|
131
|
+
var doc_uuid = element.doc_uuid,
|
|
132
|
+
title = element.title,
|
|
133
|
+
type = element.type;
|
|
134
|
+
var eventBus = _eventBus["default"].getInstance();
|
|
135
|
+
eventBus.dispatch(_constants.INTERNAL_EVENT.TRANSFER_PREVIEW_FILE_ID, {
|
|
136
|
+
doc_uuid: doc_uuid,
|
|
137
|
+
title: title,
|
|
138
|
+
type: type
|
|
139
|
+
});
|
|
140
|
+
setTimeout(function () {
|
|
141
|
+
onHideInsertHoverMenu();
|
|
142
|
+
}, 0);
|
|
125
143
|
}
|
|
126
144
|
var path = _slateReact.ReactEditor.findPath(editor, element);
|
|
127
145
|
var focusPoint = _slate.Editor.end(editor, path);
|
|
@@ -145,9 +163,9 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
145
163
|
}, []);
|
|
146
164
|
var style = {};
|
|
147
165
|
if (element.add) {
|
|
148
|
-
style = (0, _objectSpread2["default"])({},
|
|
166
|
+
style = (0, _objectSpread2["default"])({}, _constants2.ADDED_STYLE);
|
|
149
167
|
} else if (element["delete"]) {
|
|
150
|
-
style = (0, _objectSpread2["default"])({},
|
|
168
|
+
style = (0, _objectSpread2["default"])({}, _constants2.DELETED_STYLE);
|
|
151
169
|
}
|
|
152
170
|
if (style.computed_background_color) {
|
|
153
171
|
style['backgroundColor'] = style.computed_background_color;
|
|
@@ -158,12 +176,12 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
158
176
|
return /*#__PURE__*/_react["default"].createElement("span", Object.assign({}, attributes, {
|
|
159
177
|
"data-id": element.id,
|
|
160
178
|
contentEditable: false,
|
|
161
|
-
className: "sdoc-file-render ".concat(isSelected ? 'sdoc-file-link-selected' : '', " ").concat(element.display_type ===
|
|
179
|
+
className: "sdoc-file-render ".concat(isSelected ? 'sdoc-file-link-selected' : '', " ").concat(element.display_type === _constants3.SDOC_LINK_TYPE.CARD_LINK ? 'sdoc-file-card-link' : ''),
|
|
162
180
|
onClick: onClickFile,
|
|
163
|
-
style: element.display_type ===
|
|
181
|
+
style: element.display_type === _constants3.SDOC_LINK_TYPE.CARD_LINK ? style : {}
|
|
164
182
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
165
183
|
ref: sdocFileRef
|
|
166
|
-
}, [
|
|
184
|
+
}, [_constants3.SDOC_LINK_TYPE.ICON_LINK, _constants3.SDOC_LINK_TYPE.CARD_LINK].includes(element.display_type) && /*#__PURE__*/_react["default"].createElement("span", {
|
|
167
185
|
className: "sdoc-file-link-icon",
|
|
168
186
|
style: style
|
|
169
187
|
}, element.type !== _elementType.WIKI_LINK && /*#__PURE__*/_react["default"].createElement("img", {
|
|
@@ -176,7 +194,7 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
176
194
|
className: "sf3-font sf3-font-file"
|
|
177
195
|
})))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
178
196
|
className: (0, _classnames["default"])('sdoc-file-text-link', {
|
|
179
|
-
'sdoc-no-file-link-icon': ![
|
|
197
|
+
'sdoc-no-file-link-icon': ![_constants3.SDOC_LINK_TYPE.ICON_LINK, _constants3.SDOC_LINK_TYPE.CARD_LINK].includes(element.display_type)
|
|
180
198
|
}),
|
|
181
199
|
style: style
|
|
182
200
|
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
@@ -171,11 +171,19 @@ var insertVideo = exports.insertVideo = function insertVideo(editor, videoFiles,
|
|
|
171
171
|
}
|
|
172
172
|
(0, _core.focusEditor)(editor, videoEndSelection);
|
|
173
173
|
};
|
|
174
|
-
var getVideoURL = exports.getVideoURL = function getVideoURL(data) {
|
|
174
|
+
var getVideoURL = exports.getVideoURL = function getVideoURL(data, editor) {
|
|
175
175
|
var url = data.src;
|
|
176
176
|
if (url && url.startsWith('http')) return url;
|
|
177
177
|
var serviceUrl = _context["default"].getSetting('serviceUrl');
|
|
178
178
|
var assetsUrl = _context["default"].getSetting('assetsUrl');
|
|
179
|
+
|
|
180
|
+
// If in sdoc link preview
|
|
181
|
+
var docUuid = editor.preview_docUuid;
|
|
182
|
+
if (docUuid) {
|
|
183
|
+
var baseUrl = assetsUrl.split('/');
|
|
184
|
+
baseUrl[baseUrl.length - 1] = docUuid;
|
|
185
|
+
assetsUrl = baseUrl.join('/');
|
|
186
|
+
}
|
|
179
187
|
return (0, _urlJoin["default"])(serviceUrl, assetsUrl, url);
|
|
180
188
|
};
|
|
181
189
|
var formatFileSize = exports.formatFileSize = function formatFileSize(size) {
|
|
@@ -68,6 +68,6 @@ var VideoMenu = function VideoMenu(_ref) {
|
|
|
68
68
|
}, t('Add_video_link')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
69
69
|
className: "sdoc-dropdown-menu-item",
|
|
70
70
|
onClick: openSelectVideoFileDialog
|
|
71
|
-
}, t('
|
|
71
|
+
}, t('Link_video_file')))));
|
|
72
72
|
};
|
|
73
73
|
var _default = exports["default"] = VideoMenu;
|
|
@@ -104,7 +104,7 @@ var Video = function Video(_ref) {
|
|
|
104
104
|
}, !isEmbeddableLink && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("video", {
|
|
105
105
|
className: "sdoc-video-element",
|
|
106
106
|
ref: videoRef,
|
|
107
|
-
src: (0, _helpers.getVideoURL)(data),
|
|
107
|
+
src: (0, _helpers.getVideoURL)(data, editor),
|
|
108
108
|
controls: true,
|
|
109
109
|
controlsList: readonly && 'nofullscreen',
|
|
110
110
|
onClick: onClickVideo,
|
|
@@ -126,7 +126,7 @@ var Video = function Video(_ref) {
|
|
|
126
126
|
title: data.src,
|
|
127
127
|
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
128
128
|
allowFullScreen: true,
|
|
129
|
-
src: (0, _helpers.getVideoURL)(data),
|
|
129
|
+
src: (0, _helpers.getVideoURL)(data, editor),
|
|
130
130
|
onLoad: handleVideoLoad,
|
|
131
131
|
style: {
|
|
132
132
|
width: '100%',
|
|
@@ -51,7 +51,7 @@ var WhiteboardMenu = function WhiteboardMenu(_ref) {
|
|
|
51
51
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
52
52
|
className: "sdoc-dropdown-menu-item",
|
|
53
53
|
onClick: openSelectWhiteboardFileDialog
|
|
54
|
-
}, t('
|
|
54
|
+
}, t('Link_Excalidraw_file')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
55
55
|
className: "sdoc-dropdown-menu-item",
|
|
56
56
|
onClick: onCreateFile
|
|
57
57
|
}, t('New_Excalidraw_file')))));
|
|
@@ -64,6 +64,8 @@ var SocketClient = /*#__PURE__*/(0, _createClass2["default"])(function SocketCli
|
|
|
64
64
|
});
|
|
65
65
|
(0, _defineProperty2["default"])(this, "onDisconnected", function (data) {
|
|
66
66
|
if (data === 'ping timeout') {
|
|
67
|
+
var time = new Date().toLocaleString();
|
|
68
|
+
(0, _debug.clientDebug)('Current time is: %s', time);
|
|
67
69
|
(0, _debug.clientDebug)('Disconnected due to ping timeout, trying to reconnect...');
|
|
68
70
|
_this.socket.connect(function (err) {
|
|
69
71
|
if (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.158",
|
|
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": "e4be651720eddbc08ae7d0f06ede189ec389d42d"
|
|
75
75
|
}
|