@seafile/seafile-editor 1.0.45 → 1.0.47
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/plugins/header/menu/index.js +1 -2
- package/dist/extension/plugins/html/index.js +13 -0
- package/dist/extension/plugins/html/plugin.js +50 -0
- package/dist/extension/plugins/index.js +8 -1
- package/dist/extension/plugins/link/plugin.js +5 -5
- package/dist/extension/plugins/list/menu/index.js +1 -3
- package/dist/extension/plugins/table/helper.js +1 -1
- package/dist/extension/plugins/table/menu/style.css +2 -2
- package/package.json +1 -1
|
@@ -28,8 +28,7 @@ const HeaderMenu = _ref => {
|
|
|
28
28
|
t
|
|
29
29
|
} = (0, _reactI18next.useTranslation)(_constants2.TRANSLATE_NAMESPACE);
|
|
30
30
|
const currentHeaderType = (0, _helper.getHeaderType)(editor);
|
|
31
|
-
|
|
32
|
-
const isDisabled = (0, _react.useMemo)(() => (0, _helper.isMenuDisabled)(editor, readonly), [editor.selection, readonly]);
|
|
31
|
+
const isDisabled = (0, _helper.isMenuDisabled)(editor, readonly);
|
|
33
32
|
const onHideHeaderMenu = (0, _react.useCallback)(e => {
|
|
34
33
|
setIsShowHeaderPopover(false);
|
|
35
34
|
unregisterEventHandler();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _plugin = _interopRequireDefault(require("./plugin"));
|
|
9
|
+
const HtmlPlugin = {
|
|
10
|
+
type: 'html',
|
|
11
|
+
editorPlugin: _plugin.default
|
|
12
|
+
};
|
|
13
|
+
var _default = exports.default = HtmlPlugin;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
+
var _slateConvert = require("../../../slate-convert");
|
|
10
|
+
var _core = require("../../core");
|
|
11
|
+
var _elementTypes = require("../../constants/element-types");
|
|
12
|
+
const withHtml = editor => {
|
|
13
|
+
const {
|
|
14
|
+
insertData
|
|
15
|
+
} = editor;
|
|
16
|
+
const newEditor = editor;
|
|
17
|
+
newEditor.insertData = data => {
|
|
18
|
+
if (!newEditor.insertFragmentData(data)) {
|
|
19
|
+
// Other document paste content into code block
|
|
20
|
+
if (!data.types.includes('text/code-block') && (0, _core.getSelectedNodeByType)(editor, _elementTypes.CODE_BLOCK)) {
|
|
21
|
+
const plaintext = data.getData('text/plain') || '';
|
|
22
|
+
if (plaintext) {
|
|
23
|
+
let fragmentData = [];
|
|
24
|
+
plaintext.split('\n').forEach(item => {
|
|
25
|
+
const codeLine = {
|
|
26
|
+
id: _slugid.default.nice(),
|
|
27
|
+
type: _elementTypes.CODE_LINE,
|
|
28
|
+
children: [{
|
|
29
|
+
text: item,
|
|
30
|
+
id: _slugid.default.nice()
|
|
31
|
+
}]
|
|
32
|
+
};
|
|
33
|
+
fragmentData.push(codeLine);
|
|
34
|
+
});
|
|
35
|
+
newEditor.insertFragment(fragmentData);
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const htmlContent = data.getData('text/html') || '';
|
|
40
|
+
if (htmlContent) {
|
|
41
|
+
const content = (0, _slateConvert.deserializeHtml)(htmlContent);
|
|
42
|
+
editor.insertFragment(content);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
insertData(data);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return newEditor;
|
|
49
|
+
};
|
|
50
|
+
var _default = exports.default = withHtml;
|
|
@@ -40,6 +40,12 @@ Object.defineProperty(exports, "HeaderPlugin", {
|
|
|
40
40
|
return _header.default;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
Object.defineProperty(exports, "HtmlPlugin", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _html.default;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
43
49
|
Object.defineProperty(exports, "ImagePlugin", {
|
|
44
50
|
enumerable: true,
|
|
45
51
|
get: function () {
|
|
@@ -103,7 +109,8 @@ var _table = _interopRequireDefault(require("./table"));
|
|
|
103
109
|
var _formula = _interopRequireDefault(require("./formula"));
|
|
104
110
|
var _column = _interopRequireDefault(require("./column"));
|
|
105
111
|
var _markdown = _interopRequireDefault(require("./markdown"));
|
|
106
|
-
|
|
112
|
+
var _html = _interopRequireDefault(require("./html"));
|
|
113
|
+
const Plugins = [_paragraph.default, _textStyle.default, _header.default, _image.default, _link.default, _codeBlock.default, _checkList.default, _list.default, _table.default, _blockquote.default, _formula.default, _markdown.default, _html.default, _column.default,
|
|
107
114
|
// put at the end
|
|
108
115
|
_nodeId.default];
|
|
109
116
|
var _default = exports.default = Plugins;
|
|
@@ -73,12 +73,12 @@ const withLink = editor => {
|
|
|
73
73
|
const isDeletingLinkNode = (0, _helper.isLinkType)(editor);
|
|
74
74
|
if (isDeletingLinkNode) {
|
|
75
75
|
const linkNodeInfo = (0, _helper.getLinkInfo)(editor);
|
|
76
|
-
const next = _slate.Editor.next(editor);
|
|
77
|
-
const nextPath = _slate.Path.next(linkNodeInfo.path);
|
|
78
|
-
const nextNode = _slate.Editor.node(editor, nextPath);
|
|
79
|
-
(0, _focusEditor.focusEditor)(editor, next[1]);
|
|
80
|
-
_slate.Transforms.select(editor, nextNode[1]);
|
|
81
76
|
if (linkNodeInfo && linkNodeInfo.linkTitle.length === 1) {
|
|
77
|
+
const next = _slate.Editor.next(editor);
|
|
78
|
+
const nextPath = _slate.Path.next(linkNodeInfo.path);
|
|
79
|
+
const nextNode = _slate.Editor.node(editor, nextPath);
|
|
80
|
+
(0, _focusEditor.focusEditor)(editor, next[1]);
|
|
81
|
+
_slate.Transforms.select(editor, nextNode[1]);
|
|
82
82
|
_slate.Transforms.delete(newEditor, {
|
|
83
83
|
at: linkNodeInfo.path
|
|
84
84
|
});
|
|
@@ -22,8 +22,6 @@ const ListMenu = _ref => {
|
|
|
22
22
|
className
|
|
23
23
|
} = _ref;
|
|
24
24
|
const isActive = (0, _helpers.getActiveListType)(editor, type) === type;
|
|
25
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
-
const isDisabled = (0, _react.useMemo)(() => (0, _helpers.isMenuDisabled)(editor, readonly), [editor.selection, readonly]);
|
|
27
25
|
|
|
28
26
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
27
|
const menuConfig = (0, _react.useMemo)(() => _constants.MENUS_CONFIG_MAP[type], []);
|
|
@@ -36,7 +34,7 @@ const ListMenu = _ref => {
|
|
|
36
34
|
return /*#__PURE__*/_react.default.createElement(_menuItem.default, Object.assign({
|
|
37
35
|
isRichEditor: isRichEditor,
|
|
38
36
|
isActive: isActive,
|
|
39
|
-
disabled:
|
|
37
|
+
disabled: (0, _helpers.isMenuDisabled)(editor, readonly),
|
|
40
38
|
className: className,
|
|
41
39
|
onMouseDown: onMouseDown
|
|
42
40
|
}, menuConfig));
|
|
@@ -16,7 +16,7 @@ const isDisabled = (editor, readonly) => {
|
|
|
16
16
|
selection
|
|
17
17
|
} = editor;
|
|
18
18
|
if (readonly || !selection) return true;
|
|
19
|
-
const disableTypes = [_elementTypes.TABLE, _elementTypes.TABLE_ROW, _elementTypes.TABLE_CELL, _elementTypes.FORMULA, _elementTypes.CODE_BLOCK, _elementTypes.COLUMN, _elementTypes.BLOCKQUOTE];
|
|
19
|
+
const disableTypes = [_elementTypes.TABLE, _elementTypes.TABLE_ROW, _elementTypes.TABLE_CELL, _elementTypes.FORMULA, _elementTypes.CODE_BLOCK, _elementTypes.COLUMN, _elementTypes.BLOCKQUOTE, _elementTypes.UNORDERED_LIST, _elementTypes.ORDERED_LIST, _elementTypes.LIST_ITEM];
|
|
20
20
|
const [nodeEntry] = _slate.Editor.nodes(editor, {
|
|
21
21
|
match: n => disableTypes.includes(n.type),
|
|
22
22
|
mode: 'highest'
|