@seafile/sdoc-editor 3.0.222 → 3.0.224
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/api/seafile-api.js +0 -29
- package/dist/context.js +0 -53
- package/dist/extension/constants/element-type.js +1 -2
- package/dist/extension/constants/index.js +2 -8
- package/dist/extension/constants/menus-config.js +3 -8
- package/dist/extension/plugins/index.js +2 -9
- package/dist/extension/render/custom-element.js +0 -6
- package/dist/extension/toolbar/quick-insert-toolbar/index.js +30 -77
- package/dist/extension/toolbar/side-toolbar/helpers.js +1 -1
- package/dist/extension/toolbar/side-toolbar/index.js +2 -2
- package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +12 -46
- package/package.json +2 -3
- package/dist/extension/plugins/file-view/helpers.js +0 -77
- package/dist/extension/plugins/file-view/index.js +0 -17
- package/dist/extension/plugins/file-view/plugin.js +0 -71
- package/dist/extension/plugins/file-view/rename/index.css +0 -25
- package/dist/extension/plugins/file-view/rename/index.js +0 -113
- package/dist/extension/plugins/file-view/render-elem/index.css +0 -52
- package/dist/extension/plugins/file-view/render-elem/index.js +0 -172
- package/dist/extension/toolbar/linked-repo-popover/index.js +0 -37
- package/dist/extension/toolbar/linked-repo-popover/link-repo-list.css +0 -61
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.renderFileView = void 0;
|
|
9
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _reactI18next = require("react-i18next");
|
|
13
|
-
var _sdocFileView = require("@seafile/sdoc-file-view");
|
|
14
|
-
var _slateReact = require("@seafile/slate-react");
|
|
15
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
|
-
var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
17
|
-
var _context = _interopRequireDefault(require("../../../../context"));
|
|
18
|
-
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
19
|
-
var _commonUtils = require("../../../../utils/common-utils");
|
|
20
|
-
var _localStorageUtils = _interopRequireDefault(require("../../../../utils/local-storage-utils"));
|
|
21
|
-
var _constants = require("../../../constants");
|
|
22
|
-
var _helpers = require("../helpers");
|
|
23
|
-
require("./index.css");
|
|
24
|
-
var FileViewPlugin = function FileViewPlugin(_ref) {
|
|
25
|
-
var element = _ref.element,
|
|
26
|
-
children = _ref.children,
|
|
27
|
-
attributes = _ref.attributes;
|
|
28
|
-
var data = element.data;
|
|
29
|
-
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
30
|
-
var editor = (0, _slateReact.useSlateStatic)();
|
|
31
|
-
var isSelected = (0, _slateReact.useSelected)();
|
|
32
|
-
var readOnly = (0, _slateReact.useReadOnly)();
|
|
33
|
-
var wrapperRef = (0, _react.useRef)(null);
|
|
34
|
-
var resizerRef = (0, _react.useRef)(null);
|
|
35
|
-
var _useState = (0, _react.useState)(false),
|
|
36
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
37
|
-
isResizing = _useState2[0],
|
|
38
|
-
setIsResizing = _useState2[1];
|
|
39
|
-
var _useState3 = (0, _react.useState)(null),
|
|
40
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
41
|
-
movingSize = _useState4[0],
|
|
42
|
-
setMovingSize = _useState4[1];
|
|
43
|
-
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
44
|
-
t = _useTranslation.t;
|
|
45
|
-
var databaseRef = (0, _react.useRef)(null);
|
|
46
|
-
var viewSettings = (0, _react.useMemo)(function () {
|
|
47
|
-
var settings = _context["default"].getFileViewSetting();
|
|
48
|
-
var viewSettings = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, settings), {}, {
|
|
49
|
-
view_data: {
|
|
50
|
-
wiki_id: data.wiki_id,
|
|
51
|
-
file_view_id: data.file_view_id
|
|
52
|
-
// height: data.height,
|
|
53
|
-
// width: data.width,
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
return viewSettings;
|
|
57
|
-
}, [data.file_view_id, data.wiki_id]);
|
|
58
|
-
(0, _react.useEffect)(function () {
|
|
59
|
-
var copyContent = _localStorageUtils["default"].getItem(_constants.RECENT_COPY_CONTENT);
|
|
60
|
-
var wikiId = _context["default"].getSetting('wikiId');
|
|
61
|
-
if (wikiId !== data.wiki_id) return;
|
|
62
|
-
if (!copyContent) return;
|
|
63
|
-
var stringContent = JSON.stringify(copyContent);
|
|
64
|
-
if (stringContent.indexOf(data.wiki_id) > -1 && stringContent.indexOf(data.file_view_id) > -1) {
|
|
65
|
-
_context["default"].duplicateFileView(data.file_view_id).then(function (res) {
|
|
66
|
-
var fileView = res.data.file_view;
|
|
67
|
-
var newData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
|
|
68
|
-
file_view_id: fileView.id
|
|
69
|
-
});
|
|
70
|
-
(0, _helpers.updateFileView)(newData, editor, element);
|
|
71
|
-
})["catch"](function (error) {
|
|
72
|
-
var errorMessage = (0, _commonUtils.getErrorMsg)(error);
|
|
73
|
-
_toast["default"].danger(errorMessage);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
77
|
-
}, []);
|
|
78
|
-
var registerEvent = (0, _react.useCallback)(function (eventList) {
|
|
79
|
-
eventList.forEach(function (element) {
|
|
80
|
-
document.addEventListener(element.eventName, element.event);
|
|
81
|
-
});
|
|
82
|
-
}, []);
|
|
83
|
-
var unregisterEvent = (0, _react.useCallback)(function (eventList) {
|
|
84
|
-
eventList.forEach(function (element) {
|
|
85
|
-
document.removeEventListener(element.eventName, element.event);
|
|
86
|
-
});
|
|
87
|
-
}, []);
|
|
88
|
-
var onMouseMove = (0, _react.useCallback)(function (event) {
|
|
89
|
-
event.preventDefault();
|
|
90
|
-
event.stopPropagation();
|
|
91
|
-
var wrapperElement = wrapperRef.current;
|
|
92
|
-
var _wrapperElement$getBo = wrapperElement.getBoundingClientRect(),
|
|
93
|
-
left = _wrapperElement$getBo.left,
|
|
94
|
-
right = _wrapperElement$getBo.right,
|
|
95
|
-
top = _wrapperElement$getBo.top,
|
|
96
|
-
bottom = _wrapperElement$getBo.bottom;
|
|
97
|
-
var size = (0, _helpers.calculateSize)(event, {
|
|
98
|
-
left: left,
|
|
99
|
-
right: right,
|
|
100
|
-
top: top,
|
|
101
|
-
bottom: bottom
|
|
102
|
-
});
|
|
103
|
-
var style = wrapperElement.style;
|
|
104
|
-
// style.width = size.width + 'px';
|
|
105
|
-
style.height = size.height + 'px';
|
|
106
|
-
var _databaseRef$current$ = databaseRef.current.getFileBaseElement(),
|
|
107
|
-
databaseStyle = _databaseRef$current$.style;
|
|
108
|
-
// databaseStyle.width = (size.width - 4) + 'px';
|
|
109
|
-
databaseStyle.height = size.height - 4 + 'px';
|
|
110
|
-
setMovingSize(size);
|
|
111
|
-
}, []);
|
|
112
|
-
var onResizeEnd = (0, _react.useCallback)(function (event) {
|
|
113
|
-
event.preventDefault();
|
|
114
|
-
event.stopPropagation();
|
|
115
|
-
unregisterEvent([{
|
|
116
|
-
'eventName': 'mousemove',
|
|
117
|
-
'event': onMouseMove
|
|
118
|
-
}, {
|
|
119
|
-
'eventName': 'mouseup',
|
|
120
|
-
'event': onResizeEnd
|
|
121
|
-
}]);
|
|
122
|
-
var style = wrapperRef.current.style;
|
|
123
|
-
var newData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, element.data), {}, {
|
|
124
|
-
// width: parseFloat(style.width),
|
|
125
|
-
height: parseFloat(style.height)
|
|
126
|
-
});
|
|
127
|
-
(0, _helpers.updateFileView)(newData, editor, element);
|
|
128
|
-
// Reset hover menu position
|
|
129
|
-
setTimeout(function () {
|
|
130
|
-
setIsResizing(false);
|
|
131
|
-
}, 100);
|
|
132
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
133
|
-
}, [editor, element.data, wrapperRef.current]);
|
|
134
|
-
var onResizeStart = (0, _react.useCallback)(function (event) {
|
|
135
|
-
event.preventDefault();
|
|
136
|
-
event.stopPropagation();
|
|
137
|
-
setIsResizing(true);
|
|
138
|
-
registerEvent([{
|
|
139
|
-
'eventName': 'mousemove',
|
|
140
|
-
'event': onMouseMove
|
|
141
|
-
}, {
|
|
142
|
-
'eventName': 'mouseup',
|
|
143
|
-
'event': onResizeEnd
|
|
144
|
-
}]);
|
|
145
|
-
}, [onMouseMove, onResizeEnd, registerEvent]);
|
|
146
|
-
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
147
|
-
"data-id": element.id
|
|
148
|
-
}, attributes, {
|
|
149
|
-
className: "sdoc-file-view-container",
|
|
150
|
-
contentEditable: "false",
|
|
151
|
-
suppressContentEditableWarning: true
|
|
152
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
153
|
-
className: (0, _classnames["default"])('sdoc-file-view-content', {
|
|
154
|
-
'is-selected': isSelected
|
|
155
|
-
}),
|
|
156
|
-
ref: wrapperRef
|
|
157
|
-
}, /*#__PURE__*/_react["default"].createElement(_sdocFileView.FileView, {
|
|
158
|
-
readOnly: readOnly,
|
|
159
|
-
settings: viewSettings,
|
|
160
|
-
ref: databaseRef,
|
|
161
|
-
scrollRef: scrollRef
|
|
162
|
-
}), !readOnly && isSelected && /*#__PURE__*/_react["default"].createElement("span", {
|
|
163
|
-
className: "file-view-resizer",
|
|
164
|
-
ref: resizerRef,
|
|
165
|
-
onMouseDown: onResizeStart
|
|
166
|
-
}), isResizing && movingSize && /*#__PURE__*/_react["default"].createElement("span", {
|
|
167
|
-
className: "image-size"
|
|
168
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, t('Height'), ':', parseInt(movingSize.height)))), children);
|
|
169
|
-
};
|
|
170
|
-
var renderFileView = exports.renderFileView = function renderFileView(props) {
|
|
171
|
-
return /*#__PURE__*/_react["default"].createElement(FileViewPlugin, props);
|
|
172
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = LinkRepoPopover;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _reactstrap = require("reactstrap");
|
|
12
|
-
var _utils = require("../../utils");
|
|
13
|
-
var _linkRepoList = _interopRequireDefault(require("./link-repo-list"));
|
|
14
|
-
function LinkRepoPopover(_ref) {
|
|
15
|
-
var onRepoClick = _ref.onRepoClick;
|
|
16
|
-
var _useState = (0, _react.useState)('right-start'),
|
|
17
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
18
|
-
placement = _useState2[0],
|
|
19
|
-
setPlacement = _useState2[1];
|
|
20
|
-
(0, _react.useEffect)(function () {
|
|
21
|
-
var element = document.getElementById('sdoc-side-menu-item-file-view');
|
|
22
|
-
if ((0, _utils.isOverflowPortByDirection)(element, 'bottom')) {
|
|
23
|
-
setPlacement('right');
|
|
24
|
-
}
|
|
25
|
-
}, []);
|
|
26
|
-
return /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledPopover, {
|
|
27
|
-
target: "sdoc-side-menu-item-file-view",
|
|
28
|
-
trigger: "hover",
|
|
29
|
-
className: "sdoc-sub-dropdown-menu sdoc-insert-menu-file-view-popover",
|
|
30
|
-
popperClassName: "sdoc-popover-box-shadow",
|
|
31
|
-
placement: placement,
|
|
32
|
-
hideArrow: true,
|
|
33
|
-
fade: false
|
|
34
|
-
}, /*#__PURE__*/_react["default"].createElement(_linkRepoList["default"], {
|
|
35
|
-
onRepoClick: onRepoClick
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
.sdoc-insert-menu-file-view-popover .popover {
|
|
2
|
-
max-width: 300px;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper {
|
|
6
|
-
/* position: absolute; */
|
|
7
|
-
left: -8px;
|
|
8
|
-
background-color: #fff;
|
|
9
|
-
max-height: 370px;
|
|
10
|
-
max-width: 298px;
|
|
11
|
-
border-radius: 8px;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-tip {
|
|
15
|
-
height: 24px;
|
|
16
|
-
line-height: 24px;
|
|
17
|
-
padding-left: 8px;
|
|
18
|
-
color: #666;
|
|
19
|
-
font-size: 14px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-divider {
|
|
23
|
-
border-top: 1px solid #eee;
|
|
24
|
-
margin: 4px 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-content-wrapper {
|
|
28
|
-
max-height: 300px;
|
|
29
|
-
overflow-y: auto;
|
|
30
|
-
padding-bottom: 8px;
|
|
31
|
-
border-bottom: 1px solid #e9ecef;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-dropdown-menu-item .lib-icon {
|
|
35
|
-
margin-right: 10px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-dropdown-menu-item .item-text {
|
|
39
|
-
flex: 1;
|
|
40
|
-
min-width: 0;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
text-overflow: ellipsis;
|
|
43
|
-
white-space: nowrap;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar {
|
|
47
|
-
min-height: 32px;
|
|
48
|
-
padding: 3px 12px;
|
|
49
|
-
margin-top: 8px;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar .sdocfont {
|
|
53
|
-
color: #666;
|
|
54
|
-
margin-right: 10px;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.sdoc-dropdown-menu.sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar:hover {
|
|
58
|
-
background-color: rgba(0, 0, 0, 0.04);
|
|
59
|
-
border-radius: 4px;
|
|
60
|
-
cursor: pointer;
|
|
61
|
-
}
|