@seafile/sdoc-editor 3.0.62 → 3.0.64
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/commons/file-link-preview/index.css +1 -1
- package/dist/extension/plugins/check-list/plugin.js +3 -2
- package/dist/extension/plugins/file-link/render-elem.js +10 -2
- package/dist/extension/plugins/image/hover-menu/index.css +1 -0
- package/dist/extension/plugins/image/hover-menu/index.js +4 -3
- package/dist/extension/plugins/link/helpers.js +9 -1
- package/dist/extension/plugins/link/plugin.js +39 -28
- package/dist/extension/plugins/paragraph/plugin.js +3 -2
- package/dist/extension/plugins/sdoc-link/render/render-elem.js +11 -0
- package/dist/utils/event-handler.js +128 -108
- package/package.json +2 -2
|
@@ -79,8 +79,9 @@ var withCheckList = function withCheckList(editor) {
|
|
|
79
79
|
var selectedTodo = (0, _core.getSelectedNodeByType)(editor, _constants.CHECK_LIST_ITEM);
|
|
80
80
|
var onlyOneListItem = data.length === 1 && (0, _helpers.isSingleListItem)(data[0]);
|
|
81
81
|
if (selectedTodo && onlyOneListItem) {
|
|
82
|
-
var
|
|
83
|
-
|
|
82
|
+
var listItem = data[0].children[0];
|
|
83
|
+
var paragraphNodes = listItem.children;
|
|
84
|
+
editor.insertFragment(paragraphNodes);
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
86
87
|
insertFragment(data);
|
|
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _slateReact = require("@seafile/slate-react");
|
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
16
|
+
var _commonUtils = require("../../../utils/common-utils");
|
|
16
17
|
var _helpers = require("../../commons/select-file-dialog/helpers");
|
|
17
18
|
var _constants = require("../../constants");
|
|
18
19
|
var _constants2 = require("./constants");
|
|
@@ -109,6 +110,11 @@ var FileLink = function FileLink(_ref) {
|
|
|
109
110
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
110
111
|
}, [isShowInsertHoverMenu]);
|
|
111
112
|
var onClickFile = (0, _react.useCallback)(function (e) {
|
|
113
|
+
var isModClick = (0, _commonUtils.isMac)() ? e.metaKey : e.ctrlKey;
|
|
114
|
+
if (isModClick && element.doc_uuid) {
|
|
115
|
+
window.open((0, _helpers2.getUrl)(element.doc_uuid), '_blank', 'noreferrer');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
112
118
|
if (readOnly) {
|
|
113
119
|
window.open((0, _helpers2.getUrl)(element.doc_uuid));
|
|
114
120
|
return;
|
|
@@ -116,8 +122,10 @@ var FileLink = function FileLink(_ref) {
|
|
|
116
122
|
if (isShowInsertHoverMenu) {
|
|
117
123
|
e.stopPropagation();
|
|
118
124
|
}
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
if (!isShowInsertHoverMenu) {
|
|
126
|
+
setPosition(e.currentTarget);
|
|
127
|
+
setIsShowInsertHoverMenu(true);
|
|
128
|
+
}
|
|
121
129
|
setTimeout(function () {
|
|
122
130
|
registerEventHandle();
|
|
123
131
|
}, 0);
|
|
@@ -168,7 +168,7 @@ var ImageHoverMenu = function ImageHoverMenu(_ref) {
|
|
|
168
168
|
var isBlockChild = [_constants.TABLE, _constants.BLOCKQUOTE, _constants.CALL_OUT, _constants.MULTI_COLUMN].includes(type);
|
|
169
169
|
if (!isBlockChild) return null;
|
|
170
170
|
return {
|
|
171
|
-
left: '
|
|
171
|
+
left: '8px'
|
|
172
172
|
};
|
|
173
173
|
}, [type]);
|
|
174
174
|
return /*#__PURE__*/_react["default"].createElement(_commons.ElementPopover, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -207,8 +207,9 @@ var ImageHoverMenu = function ImageHoverMenu(_ref) {
|
|
|
207
207
|
})), /*#__PURE__*/_react["default"].createElement("span", {
|
|
208
208
|
id: "sdoc_image_border",
|
|
209
209
|
role: "button",
|
|
210
|
-
className: (0, _classnames["default"])('op-item',
|
|
211
|
-
'active': popoverState.borderPopover
|
|
210
|
+
className: (0, _classnames["default"])('op-item', {
|
|
211
|
+
'active': popoverState.borderPopover,
|
|
212
|
+
'ml-1': ![_constants.TABLE, _constants.BLOCKQUOTE, _constants.CALL_OUT, _constants.MULTI_COLUMN].includes(type)
|
|
212
213
|
}),
|
|
213
214
|
onClick: function onClick(e) {
|
|
214
215
|
onShowProver(e, 'borderPopover');
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.upsertLinkText = exports.updateLink = exports.unWrapLinkNode = exports.parseHtmlString = exports.isWeChat = exports.isSdocFile = exports.isNodeInCurrentView = exports.isMenuDisabled = exports.isLinkToolBarActive = exports.isExdrawFile = exports.isEmptyNode = exports.insertLink = exports.getMenuPosition = exports.getLinkType = exports.genLinkNode = exports.checkLink = void 0;
|
|
7
|
+
exports.upsertLinkText = exports.updateLink = exports.unWrapLinkNode = exports.parseHtmlString = exports.isWeChat = exports.isSdocFile = exports.isNodeInCurrentView = exports.isMenuDisabled = exports.isLinkToolBarActive = exports.isExdrawFile = exports.isEmptyNode = exports.isCommonFile = exports.insertLink = exports.getMenuPosition = exports.getLinkType = exports.genLinkNode = exports.checkLink = void 0;
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
@@ -214,6 +214,14 @@ var isExdrawFile = exports.isExdrawFile = function isExdrawFile(res, url) {
|
|
|
214
214
|
file_ext = _ref4.file_ext;
|
|
215
215
|
return !is_dir && file_ext === 'exdraw';
|
|
216
216
|
};
|
|
217
|
+
var isCommonFile = exports.isCommonFile = function isCommonFile(res, url) {
|
|
218
|
+
var files_info = res.data.files_info;
|
|
219
|
+
var fileInfo = files_info[url];
|
|
220
|
+
var _ref5 = fileInfo || {},
|
|
221
|
+
is_dir = _ref5.is_dir,
|
|
222
|
+
file_ext = _ref5.file_ext;
|
|
223
|
+
return fileInfo && !is_dir && !['sdoc', 'exdraw', 'video'].includes(file_ext);
|
|
224
|
+
};
|
|
217
225
|
var isWeChat = exports.isWeChat = function isWeChat() {
|
|
218
226
|
var ua = window.navigator.userAgent.toLowerCase();
|
|
219
227
|
var isWeChat = ua.match(/MicroMessenger/i) === 'micromessenger';
|
|
@@ -19,9 +19,10 @@ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
|
19
19
|
var _constants2 = require("../../constants");
|
|
20
20
|
var _core = require("../../core");
|
|
21
21
|
var _utils = require("../../utils");
|
|
22
|
-
var _helpers = require("../
|
|
22
|
+
var _helpers = require("../file-link/helpers");
|
|
23
|
+
var _helpers2 = require("../sdoc-link/helpers");
|
|
23
24
|
var _helper = require("../whiteboard/helper");
|
|
24
|
-
var
|
|
25
|
+
var _helpers3 = require("./helpers");
|
|
25
26
|
var withLink = function withLink(editor) {
|
|
26
27
|
var normalizeNode = editor.normalizeNode,
|
|
27
28
|
isInline = editor.isInline,
|
|
@@ -41,18 +42,18 @@ var withLink = function withLink(editor) {
|
|
|
41
42
|
};
|
|
42
43
|
newEditor.insertData = /*#__PURE__*/function () {
|
|
43
44
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(data) {
|
|
44
|
-
var text, res, fileName, fileUuid, _fileName, fileParentPath, filePath, url, linkedNodeId, title, params, link, _link, _link2, _Editor$next, _Editor$next2, focusPath, focusPoint, _t;
|
|
45
|
+
var text, res, fileName, fileUuid, _fileName, fileParentPath, filePath, _fileName2, _fileUuid, url, linkedNodeId, title, params, link, _link, _link2, _Editor$next, _Editor$next2, focusPath, focusPoint, _t;
|
|
45
46
|
return (0, _regenerator2["default"])().w(function (_context) {
|
|
46
47
|
while (1) switch (_context.p = _context.n) {
|
|
47
48
|
case 0:
|
|
48
49
|
// Paste link content
|
|
49
50
|
text = data.getData('text/plain'); // Internal link, insert sdoc file link
|
|
50
51
|
if (!((0, _isUrl["default"])(text) && !(0, _utils.isImage)(text))) {
|
|
51
|
-
_context.n =
|
|
52
|
+
_context.n = 12;
|
|
52
53
|
break;
|
|
53
54
|
}
|
|
54
55
|
if (!(0, _utils.isSameDomain)(text, _context2["default"].getSetting('serviceUrl'))) {
|
|
55
|
-
_context.n =
|
|
56
|
+
_context.n = 10;
|
|
56
57
|
break;
|
|
57
58
|
}
|
|
58
59
|
_context.p = 1;
|
|
@@ -60,17 +61,17 @@ var withLink = function withLink(editor) {
|
|
|
60
61
|
return _context2["default"].getLinkFilesInfo([text]);
|
|
61
62
|
case 2:
|
|
62
63
|
res = _context.v;
|
|
63
|
-
if (!(0,
|
|
64
|
+
if (!(0, _helpers3.isSdocFile)(res, text)) {
|
|
64
65
|
_context.n = 3;
|
|
65
66
|
break;
|
|
66
67
|
}
|
|
67
68
|
fileName = res.data.files_info[text].name;
|
|
68
69
|
fileUuid = res.data.files_info[text].file_uuid;
|
|
69
|
-
(0,
|
|
70
|
-
_context.n =
|
|
70
|
+
(0, _helpers2.insertSdocFileLink)(editor, fileName, fileUuid);
|
|
71
|
+
_context.n = 7;
|
|
71
72
|
break;
|
|
72
73
|
case 3:
|
|
73
|
-
if (!(0,
|
|
74
|
+
if (!(0, _helpers3.isExdrawFile)(res, text)) {
|
|
74
75
|
_context.n = 4;
|
|
75
76
|
break;
|
|
76
77
|
}
|
|
@@ -78,52 +79,62 @@ var withLink = function withLink(editor) {
|
|
|
78
79
|
fileParentPath = res.data.files_info[text].parent_path;
|
|
79
80
|
filePath = fileParentPath + '/' + _fileName;
|
|
80
81
|
(0, _helper.insertWhiteboard)(editor, _fileName, filePath);
|
|
81
|
-
_context.n =
|
|
82
|
+
_context.n = 7;
|
|
82
83
|
break;
|
|
83
84
|
case 4:
|
|
85
|
+
if (!(0, _helpers3.isCommonFile)(res, text)) {
|
|
86
|
+
_context.n = 5;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
_fileName2 = res.data.files_info[text].name;
|
|
90
|
+
_fileUuid = res.data.files_info[text].file_uuid;
|
|
91
|
+
(0, _helpers.insertFileLink)(editor, _fileName2, _fileUuid);
|
|
92
|
+
_context.n = 7;
|
|
93
|
+
break;
|
|
94
|
+
case 5:
|
|
84
95
|
url = new URL(text);
|
|
85
96
|
linkedNodeId = url.hash.replace(/^#/, '');
|
|
86
97
|
if (!(editor.selection && !_slate.Range.isCollapsed(editor.selection))) {
|
|
87
|
-
_context.n =
|
|
98
|
+
_context.n = 6;
|
|
88
99
|
break;
|
|
89
100
|
}
|
|
90
101
|
title = (0, _core.getEditorString)(editor, editor.selection);
|
|
91
|
-
(0,
|
|
102
|
+
(0, _helpers3.insertLink)(editor, title, text, _constants2.INSERT_POSITION.CURRENT, null, linkedNodeId);
|
|
92
103
|
return _context.a(2);
|
|
93
|
-
case
|
|
104
|
+
case 6:
|
|
94
105
|
params = new URLSearchParams(url.search);
|
|
95
106
|
if (params.get('from') === 'copy-block') {
|
|
96
|
-
link = (0,
|
|
107
|
+
link = (0, _helpers3.genLinkNode)(text, text, linkedNodeId);
|
|
97
108
|
} else {
|
|
98
|
-
link = (0,
|
|
109
|
+
link = (0, _helpers3.genLinkNode)(text, text);
|
|
99
110
|
}
|
|
100
111
|
_slate.Transforms.insertNodes(newEditor, link);
|
|
101
|
-
case 6:
|
|
102
|
-
_context.n = 8;
|
|
103
|
-
break;
|
|
104
112
|
case 7:
|
|
105
|
-
_context.
|
|
113
|
+
_context.n = 9;
|
|
114
|
+
break;
|
|
115
|
+
case 8:
|
|
116
|
+
_context.p = 8;
|
|
106
117
|
_t = _context.v;
|
|
107
|
-
_link = (0,
|
|
118
|
+
_link = (0, _helpers3.genLinkNode)(text, text);
|
|
108
119
|
_slate.Transforms.insertNodes(newEditor, _link);
|
|
109
|
-
case 8:
|
|
110
|
-
_context.n = 10;
|
|
111
|
-
break;
|
|
112
120
|
case 9:
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
_context.n = 11;
|
|
122
|
+
break;
|
|
115
123
|
case 10:
|
|
124
|
+
_link2 = (0, _helpers3.genLinkNode)(text, text);
|
|
125
|
+
_slate.Transforms.insertNodes(newEditor, _link2);
|
|
126
|
+
case 11:
|
|
116
127
|
// Void merging text from link
|
|
117
128
|
_Editor$next = _slate.Editor.next(newEditor), _Editor$next2 = (0, _slicedToArray2["default"])(_Editor$next, 2), focusPath = _Editor$next2[1];
|
|
118
129
|
focusPoint = _slate.Editor.start(newEditor, focusPath);
|
|
119
130
|
_slate.Transforms.select(newEditor, focusPoint);
|
|
120
131
|
return _context.a(2);
|
|
121
|
-
case 11:
|
|
122
|
-
insertData(data);
|
|
123
132
|
case 12:
|
|
133
|
+
insertData(data);
|
|
134
|
+
case 13:
|
|
124
135
|
return _context.a(2);
|
|
125
136
|
}
|
|
126
|
-
}, _callee, null, [[1,
|
|
137
|
+
}, _callee, null, [[1, 8]]);
|
|
127
138
|
}));
|
|
128
139
|
return function (_x) {
|
|
129
140
|
return _ref.apply(this, arguments);
|
|
@@ -151,8 +151,9 @@ var withParagraph = function withParagraph(editor) {
|
|
|
151
151
|
var paragraphBlock = (0, _core.getSelectedNodeByType)(editor, _constants.PARAGRAPH);
|
|
152
152
|
var onlyOneListItem = data.length === 1 && (0, _helpers.isSingleListItem)(data[0]);
|
|
153
153
|
if (paragraphBlock && onlyOneListItem) {
|
|
154
|
-
var
|
|
155
|
-
|
|
154
|
+
var listItem = data[0].children[0];
|
|
155
|
+
var paragraphNodes = listItem.children;
|
|
156
|
+
editor.insertFragment(paragraphNodes);
|
|
156
157
|
return;
|
|
157
158
|
}
|
|
158
159
|
insertFragment(data);
|
|
@@ -16,6 +16,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
16
16
|
var _constants = require("../../../../constants");
|
|
17
17
|
var _usePlugins2 = require("../../../../hooks/use-plugins");
|
|
18
18
|
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
19
|
+
var _commonUtils = require("../../../../utils/common-utils");
|
|
19
20
|
var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
|
|
20
21
|
var _constants2 = require("../../../constants");
|
|
21
22
|
var _elementType = require("../../../constants/element-type");
|
|
@@ -116,6 +117,16 @@ var SdocFileLink = function SdocFileLink(_ref) {
|
|
|
116
117
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
117
118
|
}, [isShowInsertHoverMenu]);
|
|
118
119
|
var onClickFile = (0, _react.useCallback)(function (e) {
|
|
120
|
+
var isModClick = (0, _commonUtils.isMac)() ? e.metaKey : e.ctrlKey;
|
|
121
|
+
if (isModClick) {
|
|
122
|
+
if (element.type === _elementType.WIKI_LINK) {
|
|
123
|
+
window.open((0, _helpers.getWikiUrl)(element.wiki_repo_id, element.page_id, readOnly), '_blank', 'noreferrer');
|
|
124
|
+
return;
|
|
125
|
+
} else {
|
|
126
|
+
window.open((0, _helpers2.getUrl)(element.doc_uuid), '_blank', 'noreferrer');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
119
130
|
if (readOnly) {
|
|
120
131
|
if (element.type === _elementType.WIKI_LINK) {
|
|
121
132
|
window.open((0, _helpers.getWikiUrl)(element.wiki_repo_id, element.page_id, readOnly));
|
|
@@ -5,125 +5,145 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
9
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
11
|
+
var _slate = require("@seafile/slate");
|
|
11
12
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
12
13
|
var _constants = require("../constants");
|
|
13
14
|
var _constants2 = require("../extension/constants");
|
|
14
15
|
var _queries = require("../extension/core/queries/");
|
|
15
|
-
var
|
|
16
|
+
var _eventBus3 = _interopRequireDefault(require("../utils/event-bus"));
|
|
16
17
|
var _documentUtils = require("./document-utils");
|
|
17
|
-
var EventProxy = /*#__PURE__*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
var EventProxy = /*#__PURE__*/function () {
|
|
19
|
+
function EventProxy(_editor) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
(0, _classCallCheck2["default"])(this, EventProxy);
|
|
22
|
+
(0, _defineProperty2["default"])(this, "onKeyDown", function (event) {
|
|
23
|
+
var editor = _this.editor;
|
|
24
|
+
if (editor.onHotKeyDown) {
|
|
25
|
+
var isHandled = editor.onHotKeyDown(event);
|
|
26
|
+
if (isHandled) return;
|
|
27
|
+
}
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
// Focus page title in wiki editor
|
|
30
|
+
if (_this.editor.editorType === _constants.WIKI_EDITOR && ((0, _isHotkey["default"])('left', event) || (0, _isHotkey["default"])('up', event)) && _this.isAtEditorStart()) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
var eventBus = _eventBus3["default"].getInstance();
|
|
33
|
+
eventBus.dispatch('wiki_editor_focus_page_title');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
// bold
|
|
38
|
+
if ((0, _isHotkey["default"])('mod+b', event)) {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
editor.toggleTextBold();
|
|
41
|
+
}
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if ((0, _isHotkey["default"])('opt+,', event)) {
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
editor.reduceFontSize();
|
|
47
|
-
}
|
|
43
|
+
// italic
|
|
44
|
+
if ((0, _isHotkey["default"])('mod+i', event)) {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
editor.toggleTextItalic();
|
|
47
|
+
}
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
// font scale
|
|
50
|
+
if ((0, _isHotkey["default"])('opt+.', event)) {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
editor.increaseFontSize();
|
|
53
|
+
}
|
|
54
|
+
if ((0, _isHotkey["default"])('opt+,', event)) {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
editor.reduceFontSize();
|
|
57
|
+
}
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (history.redos.length === 0) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
editor.redo();
|
|
62
|
-
}
|
|
59
|
+
// disable the default 'save page'
|
|
60
|
+
if ((0, _isHotkey["default"])('mod+s', event)) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
}
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
64
|
+
// redo
|
|
65
|
+
if ((0, _isHotkey["default"])('mod+y', event)) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
var history = editor.history;
|
|
68
|
+
if (history.redos.length === 0) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
editor.redo();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// undo
|
|
75
|
+
if ((0, _isHotkey["default"])('mod+z', event)) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
var _history = editor.history;
|
|
78
|
+
if (_history.undos.length === 0) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
editor.undo();
|
|
82
|
+
}
|
|
83
|
+
if ((0, _isHotkey["default"])('tab', event) || (0, _isHotkey["default"])('shift+tab', event)) {
|
|
84
|
+
editor.handleTab && editor.handleTab(event);
|
|
85
|
+
}
|
|
86
|
+
if ((0, _isHotkey["default"])('mod+p', event)) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
var _eventBus = _eventBus3["default"].getInstance();
|
|
89
|
+
_eventBus.dispatch(_constants.INTERNAL_EVENT.ON_PRINT);
|
|
90
|
+
}
|
|
91
|
+
var node = (0, _queries.getSelectedNodeByType)(editor, _constants2.ELEMENT_TYPE.TABLE);
|
|
92
|
+
if (node) {
|
|
93
|
+
_this.editor.tableOnKeyDown(event);
|
|
94
|
+
}
|
|
95
|
+
var imageNode = (0, _queries.getSelectedNodeByType)(editor, _constants2.ELEMENT_TYPE.IMAGE);
|
|
96
|
+
if (imageNode) {
|
|
97
|
+
_this.editor.imageOnKeyDown(event);
|
|
98
|
+
}
|
|
99
|
+
if ((0, _queries.getSelectedNodeByType)(editor, _constants2.ELEMENT_TYPE.CODE_BLOCK)) {
|
|
100
|
+
_this.editor.codeBlockOnKeyDown(event);
|
|
101
|
+
var _eventBus2 = _eventBus3["default"].getInstance();
|
|
102
|
+
_eventBus2.dispatch(_constants.INTERNAL_EVENT.HIDDEN_CODE_BLOCK_HOVER_MENU);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
(0, _defineProperty2["default"])(this, "onCopy", function (event) {
|
|
106
|
+
if (_this.editor.onCopy) _this.editor.onCopy(event);
|
|
107
|
+
(0, _documentUtils.setOriginSdocKey)(event);
|
|
108
|
+
});
|
|
109
|
+
(0, _defineProperty2["default"])(this, "onCut", function (event) {
|
|
110
|
+
(0, _documentUtils.setOriginSdocKey)(event);
|
|
111
|
+
if (_this.editor.cut) {
|
|
112
|
+
_this.editor.cut(event);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
(0, _defineProperty2["default"])(this, "onPaste", function (event) {});
|
|
116
|
+
(0, _defineProperty2["default"])(this, "onCompositionStart", function (event) {
|
|
117
|
+
var editor = _this.editor;
|
|
118
|
+
if (editor.onCompositionStart) {
|
|
119
|
+
var isHandled = editor.onCompositionStart(event);
|
|
120
|
+
if (isHandled) return;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
(0, _defineProperty2["default"])(this, "onCompositionUpdate", function (event) {
|
|
124
|
+
var editor = _this.editor;
|
|
125
|
+
if (editor.onCompositionUpdate) {
|
|
126
|
+
var isHandled = editor.onCompositionUpdate(event);
|
|
127
|
+
if (isHandled) return;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
(0, _defineProperty2["default"])(this, "onCompositionEnd", function (event) {
|
|
131
|
+
var editor = _this.editor;
|
|
132
|
+
if (editor.onCompositionEnd) {
|
|
133
|
+
var isHandled = editor.onCompositionEnd(event);
|
|
134
|
+
if (isHandled) return;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
this.editor = _editor;
|
|
138
|
+
}
|
|
139
|
+
return (0, _createClass2["default"])(EventProxy, [{
|
|
140
|
+
key: "isAtEditorStart",
|
|
141
|
+
value: function isAtEditorStart() {
|
|
142
|
+
var selection = this.editor.selection;
|
|
143
|
+
if (!selection || !_slate.Range.isCollapsed(selection)) return false;
|
|
144
|
+
var start = _slate.Editor.start(this.editor, []);
|
|
145
|
+
return _slate.Point.equals(selection.anchor, start);
|
|
146
|
+
}
|
|
147
|
+
}]);
|
|
148
|
+
}();
|
|
129
149
|
var _default = exports["default"] = EventProxy;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.64",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "717aa50d4dac9eeff1723107dca13a53956f01b7"
|
|
76
76
|
}
|