@seafile/seafile-editor 1.0.114 → 1.0.115
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.
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _slate = require("slate");
|
|
11
|
+
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
12
|
+
var _eventTypes = require("../../../constants/event-types");
|
|
13
|
+
var _constants = require("../../constants");
|
|
14
|
+
var _linkModal = _interopRequireDefault(require("../../plugins/link/menu/link-modal"));
|
|
15
|
+
const InsertElementDialog = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
editor
|
|
18
|
+
} = _ref;
|
|
19
|
+
const [dialogType, setDialogType] = (0, _react.useState)('');
|
|
20
|
+
const [isOpenLinkModal, setIsOpenLinkModal] = (0, _react.useState)(false);
|
|
21
|
+
const [linkInfo, setLinkInfo] = (0, _react.useState)({
|
|
22
|
+
linkTitle: '',
|
|
23
|
+
linkUrl: ''
|
|
24
|
+
});
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
const eventBus = _eventBus.default.getInstance();
|
|
27
|
+
const toggleDialogSubscribe = eventBus.subscribe(_eventTypes.INTERNAL_EVENTS.INSERT_ELEMENT, toggleDialog);
|
|
28
|
+
return () => {
|
|
29
|
+
toggleDialogSubscribe();
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
const toggleDialog = (0, _react.useCallback)(_ref2 => {
|
|
33
|
+
let {
|
|
34
|
+
type
|
|
35
|
+
} = _ref2;
|
|
36
|
+
setDialogType(type);
|
|
37
|
+
setIsOpenLinkModal(true);
|
|
38
|
+
if (editor.selection) {
|
|
39
|
+
const selectedText = _slate.Editor.string(editor, editor.selection);
|
|
40
|
+
setLinkInfo({
|
|
41
|
+
...linkInfo,
|
|
42
|
+
linkTitle: selectedText
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}, [editor, setIsOpenLinkModal, setLinkInfo, setDialogType]);
|
|
46
|
+
const onCloseModal = (0, _react.useCallback)(() => {
|
|
47
|
+
setIsOpenLinkModal(false);
|
|
48
|
+
setLinkInfo({
|
|
49
|
+
linkTitle: '',
|
|
50
|
+
linkUrl: ''
|
|
51
|
+
});
|
|
52
|
+
}, []);
|
|
53
|
+
if (_constants.ELementTypes.LINK === dialogType) {
|
|
54
|
+
return isOpenLinkModal && /*#__PURE__*/_react.default.createElement(_linkModal.default, {
|
|
55
|
+
onCloseModal: onCloseModal,
|
|
56
|
+
editor: editor,
|
|
57
|
+
linkTitle: linkInfo.linkTitle,
|
|
58
|
+
linkUrl: linkInfo.linkUrl
|
|
59
|
+
});
|
|
60
|
+
} else {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var _default = exports.default = InsertElementDialog;
|
|
@@ -10,9 +10,13 @@ var _slugid = _interopRequireDefault(require("slugid"));
|
|
|
10
10
|
var _queries = require("../../core/queries");
|
|
11
11
|
var _helper = require("./helper");
|
|
12
12
|
var _elementTypes = require("../../constants/element-types");
|
|
13
|
+
var _constants = require("../../constants");
|
|
14
|
+
var _eventTypes = require("../../../constants/event-types");
|
|
13
15
|
var _common = require("../../../utils/common");
|
|
14
16
|
var _focusEditor = require("../../core/transforms/focus-editor");
|
|
15
17
|
var _helper2 = require("../image/helper");
|
|
18
|
+
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
19
|
+
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
16
20
|
const withLink = editor => {
|
|
17
21
|
const {
|
|
18
22
|
isInline,
|
|
@@ -20,7 +24,8 @@ const withLink = editor => {
|
|
|
20
24
|
deleteBackward,
|
|
21
25
|
insertText,
|
|
22
26
|
normalizeNode,
|
|
23
|
-
insertData
|
|
27
|
+
insertData,
|
|
28
|
+
onHotKeyDown
|
|
24
29
|
} = editor;
|
|
25
30
|
const newEditor = editor;
|
|
26
31
|
|
|
@@ -107,6 +112,43 @@ const withLink = editor => {
|
|
|
107
112
|
return deleteBackward(unit);
|
|
108
113
|
};
|
|
109
114
|
|
|
115
|
+
// Add 'mod+k' shortcut Key
|
|
116
|
+
newEditor.onHotKeyDown = e => {
|
|
117
|
+
if ((0, _isHotkey.default)('mod+k', e)) {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
const {
|
|
120
|
+
selection
|
|
121
|
+
} = newEditor;
|
|
122
|
+
const isCollapsed = _slate.Range.isCollapsed(selection);
|
|
123
|
+
const eventBus = _eventBus.default.getInstance();
|
|
124
|
+
if (isCollapsed) {
|
|
125
|
+
eventBus.dispatch(_eventTypes.INTERNAL_EVENTS.INSERT_ELEMENT, {
|
|
126
|
+
type: _constants.ELementTypes.LINK,
|
|
127
|
+
editor
|
|
128
|
+
});
|
|
129
|
+
} else {
|
|
130
|
+
const [firstSelectedNode, ...restNodes] = (0, _queries.getSelectedElems)(newEditor);
|
|
131
|
+
if (!firstSelectedNode) return; // If not select any node, return
|
|
132
|
+
// If firstNode has child nods, recursively check if every child node contains a text node
|
|
133
|
+
const hasTextNode = node => {
|
|
134
|
+
if (_slate.Text.isText(node)) return true;
|
|
135
|
+
if (node.children && node.children.length > 0) {
|
|
136
|
+
return node.children.some(hasTextNode);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const isSelectTextNodes = hasTextNode(firstSelectedNode);
|
|
140
|
+
if (!isSelectTextNodes) return;
|
|
141
|
+
const linkTitle = window.getSelection().toString();
|
|
142
|
+
eventBus.dispatch(_eventTypes.INTERNAL_EVENTS.INSERT_ELEMENT, {
|
|
143
|
+
type: _constants.ELementTypes.LINK,
|
|
144
|
+
editor: newEditor,
|
|
145
|
+
linkTitle: linkTitle
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return onHotKeyDown && onHotKeyDown(e);
|
|
150
|
+
};
|
|
151
|
+
|
|
110
152
|
// Rewrite normalizeNode
|
|
111
153
|
newEditor.normalizeNode = _ref => {
|
|
112
154
|
let [node, path] = _ref;
|
|
@@ -29,6 +29,7 @@ var _menu10 = _interopRequireDefault(require("../../plugins/formula/menu"));
|
|
|
29
29
|
var _menu11 = _interopRequireDefault(require("../../plugins/clear-format/menu"));
|
|
30
30
|
var _shortcutDialog = _interopRequireDefault(require("../user-help/shortcut-dialog"));
|
|
31
31
|
var _menu12 = _interopRequireDefault(require("../../plugins/column/menu"));
|
|
32
|
+
var _insertElementDialog = _interopRequireDefault(require("../../commons/insert-element-dialog"));
|
|
32
33
|
require("./style.css");
|
|
33
34
|
const Toolbar = _ref => {
|
|
34
35
|
let {
|
|
@@ -103,6 +104,8 @@ const Toolbar = _ref => {
|
|
|
103
104
|
})), isShowHelpModal && /*#__PURE__*/_react.default.createElement(_shortcutDialog.default, {
|
|
104
105
|
isRichEditor: isRichEditor,
|
|
105
106
|
toggleShortcutDialog: onHelpIconToggle
|
|
107
|
+
}), /*#__PURE__*/_react.default.createElement(_insertElementDialog.default, {
|
|
108
|
+
editor: editor
|
|
106
109
|
}));
|
|
107
110
|
};
|
|
108
111
|
Toolbar.defaultProps = {
|
|
@@ -13,7 +13,7 @@ var _getPreviewContent = _interopRequireDefault(require("../../utils/get-preview
|
|
|
13
13
|
var _getBrowserInfo = _interopRequireDefault(require("../../utils/get-browser-Info"));
|
|
14
14
|
var _components = require("../../components");
|
|
15
15
|
var _markdownPreview = _interopRequireDefault(require("../markdown-preview"));
|
|
16
|
-
require("
|
|
16
|
+
require("./style.css");
|
|
17
17
|
function LongTextEditorDialog(_ref) {
|
|
18
18
|
let {
|
|
19
19
|
lang,
|
|
@@ -25,7 +25,6 @@ function LongTextEditorDialog(_ref) {
|
|
|
25
25
|
isCheckBrowser = false,
|
|
26
26
|
mathJaxSource,
|
|
27
27
|
className,
|
|
28
|
-
containerClass,
|
|
29
28
|
editorApi,
|
|
30
29
|
onSaveEditorValue,
|
|
31
30
|
onEditorValueChanged,
|
|
@@ -156,7 +155,7 @@ function LongTextEditorDialog(_ref) {
|
|
|
156
155
|
containerClass: className
|
|
157
156
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
158
157
|
style: dialogStyle,
|
|
159
|
-
className:
|
|
158
|
+
className: "longtext-dialog-container"
|
|
160
159
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
161
160
|
className: headerClass
|
|
162
161
|
}, /*#__PURE__*/_react.default.createElement("div", {
|