@seafile/seafile-editor 1.0.72 → 1.0.74
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/core/queries/index.js +35 -2
- package/dist/extension/plugins/check-list/plugin.js +25 -6
- package/dist/extension/plugins/header/plugin.js +6 -0
- package/dist/extension/plugins/list/plugin/insert-fragment-list.js +2 -4
- package/dist/extension/plugins/paragraph/plugin.js +22 -0
- package/package.json +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeAcrossBlocks = exports.isLastNode = exports.isLastChild = exports.isFirstNode = exports.isFirstChild = exports.isEndPoint = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getSelectedNodeEntryByTypes = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getParentNode = exports.getNodes = exports.getNodeType = exports.getNodeEntries = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getEditorString = exports.getDeepInlineChildren = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
|
|
7
|
+
exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeAcrossBlocks = exports.isLastNode = exports.isLastChild = exports.isFirstNode = exports.isFirstChild = exports.isEndPoint = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getSelectedNodeEntryByTypes = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getParentNode = exports.getNodes = exports.getNodeType = exports.getNodeEntries = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getInlineNodes = exports.getEditorString = exports.getDeepInlineChildren = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
|
|
7
8
|
var _slate = require("slate");
|
|
8
9
|
var _slateReact = require("slate-react");
|
|
10
|
+
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
11
|
var _utils = require("../utils");
|
|
12
|
+
var _elementTypes = require("../../constants/element-types");
|
|
10
13
|
// options
|
|
11
14
|
const getQueryOptions = (editor, options) => {
|
|
12
15
|
const {
|
|
@@ -443,4 +446,34 @@ const isTextNode = node => {
|
|
|
443
446
|
if (!node) return false;
|
|
444
447
|
if (Reflect.has(node, 'children')) return false;
|
|
445
448
|
};
|
|
446
|
-
exports.isTextNode = isTextNode;
|
|
449
|
+
exports.isTextNode = isTextNode;
|
|
450
|
+
const getInlineNodes = node => {
|
|
451
|
+
if (!node.type) return [node];
|
|
452
|
+
// image
|
|
453
|
+
if (node.type === _elementTypes.IMAGE) return [node];
|
|
454
|
+
// link
|
|
455
|
+
if (node.type === _elementTypes.LINK) return [node];
|
|
456
|
+
// column
|
|
457
|
+
if (node.type === _elementTypes.COLUMN) return [node];
|
|
458
|
+
const {
|
|
459
|
+
children
|
|
460
|
+
} = node;
|
|
461
|
+
const defaultNode = {
|
|
462
|
+
id: _slugid.default.nice(),
|
|
463
|
+
text: ''
|
|
464
|
+
};
|
|
465
|
+
if (!children) return [defaultNode];
|
|
466
|
+
const result = children.map(item => {
|
|
467
|
+
// text
|
|
468
|
+
if (!item.type) return item;
|
|
469
|
+
// image
|
|
470
|
+
if (item.type === _elementTypes.IMAGE) return item;
|
|
471
|
+
// link
|
|
472
|
+
if (item.type === _elementTypes.LINK) return item;
|
|
473
|
+
// column
|
|
474
|
+
if (item.type === _elementTypes.COLUMN) return item;
|
|
475
|
+
return getInlineNodes(node);
|
|
476
|
+
});
|
|
477
|
+
return result.flat();
|
|
478
|
+
};
|
|
479
|
+
exports.getInlineNodes = getInlineNodes;
|
|
@@ -8,6 +8,7 @@ var _slate = require("slate");
|
|
|
8
8
|
var _core = require("../../core");
|
|
9
9
|
var _elementTypes = require("../../constants/element-types");
|
|
10
10
|
var _helper = require("../paragraph/helper");
|
|
11
|
+
var _constants = require("../../constants");
|
|
11
12
|
const withCheckList = editor => {
|
|
12
13
|
const {
|
|
13
14
|
insertBreak,
|
|
@@ -40,12 +41,9 @@ const withCheckList = editor => {
|
|
|
40
41
|
} = newEditor;
|
|
41
42
|
if (selection && _slate.Range.isCollapsed(selection)) {
|
|
42
43
|
const selectedCheckListNode = (0, _core.getSelectedNodeByType)(newEditor, _elementTypes.CHECK_LIST_ITEM);
|
|
43
|
-
if (selectedCheckListNode) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
(0, _helper.transformToParagraph)(newEditor);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
44
|
+
if (selectedCheckListNode && (0, _core.isSelectionAtBlockStart)(editor)) {
|
|
45
|
+
(0, _helper.transformToParagraph)(newEditor);
|
|
46
|
+
return;
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
49
|
deleteBackward(unit);
|
|
@@ -59,6 +57,27 @@ const withCheckList = editor => {
|
|
|
59
57
|
});
|
|
60
58
|
if (!checkListEntry) return insertFragment(fragment);
|
|
61
59
|
const firstChild = fragment[0];
|
|
60
|
+
if (fragment.length === 1 && _constants.LIST_TYPE_ARRAY.includes(firstChild.type)) {
|
|
61
|
+
// insert text
|
|
62
|
+
if (firstChild.children.length === 1) {
|
|
63
|
+
const text = _slate.Node.string(fragment[0]);
|
|
64
|
+
(0, _slate.insertText)(text);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// insert list at current path
|
|
69
|
+
if ((0, _core.isSelectionAtBlockStart)(editor)) {
|
|
70
|
+
_slate.Transforms.insertNodes(newEditor, fragment);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// insert list at next path
|
|
75
|
+
const nextPath = _slate.Path.next(checkListEntry[1]);
|
|
76
|
+
_slate.Transforms.insertNodes(newEditor, fragment, {
|
|
77
|
+
at: nextPath
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
62
81
|
if (fragment.length === 1 && firstChild.type === _elementTypes.TABLE) {
|
|
63
82
|
const nextPath = _slate.Path.next(checkListEntry[1]);
|
|
64
83
|
_slate.Transforms.insertNodes(newEditor, fragment, {
|
|
@@ -102,6 +102,12 @@ const withHeader = editor => {
|
|
|
102
102
|
insertText(text);
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
|
+
|
|
106
|
+
// insert list at current path
|
|
107
|
+
if ((0, _core.isSelectionAtBlockStart)(editor)) {
|
|
108
|
+
_slate.Transforms.insertNodes(newEditor, fragment);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
105
111
|
const nextPath = _slate.Path.next(headerEntry[1]);
|
|
106
112
|
_slate.Transforms.insertNodes(newEditor, fragment, {
|
|
107
113
|
at: nextPath
|
|
@@ -51,16 +51,14 @@ const trimList = listRoot => {
|
|
|
51
51
|
};
|
|
52
52
|
const wrapNodeIntoListItem = node => {
|
|
53
53
|
if (node.type === _elementTypes.LIST_ITEM) return node;
|
|
54
|
+
const children = (0, _core.getInlineNodes)(node);
|
|
54
55
|
return {
|
|
55
56
|
id: _slugid.default.nice(),
|
|
56
57
|
type: _elementTypes.LIST_ITEM,
|
|
57
58
|
children: [{
|
|
58
59
|
id: _slugid.default.nice(),
|
|
59
60
|
type: _elementTypes.PARAGRAPH,
|
|
60
|
-
children
|
|
61
|
-
id: _slugid.default.nice(),
|
|
62
|
-
text: _slate.Node.string(node)
|
|
63
|
-
}]
|
|
61
|
+
children
|
|
64
62
|
}]
|
|
65
63
|
};
|
|
66
64
|
};
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _slate = require("slate");
|
|
8
8
|
var _core = require("../../core");
|
|
9
9
|
var _elementTypes = require("../../constants/element-types");
|
|
10
|
+
var _constants = require("../../constants");
|
|
10
11
|
const isSelectionAtLineEnd = (editor, path) => {
|
|
11
12
|
const {
|
|
12
13
|
selection
|
|
@@ -98,6 +99,27 @@ const withParagraph = editor => {
|
|
|
98
99
|
});
|
|
99
100
|
if (!paragraphEntry) return insertFragment(fragment);
|
|
100
101
|
const firstChild = fragment[0];
|
|
102
|
+
if (fragment.length === 1 && _constants.LIST_TYPE_ARRAY.includes(firstChild.type)) {
|
|
103
|
+
// insert text
|
|
104
|
+
if (firstChild.children.length === 1) {
|
|
105
|
+
const text = _slate.Node.string(fragment[0]);
|
|
106
|
+
(0, _slate.insertText)(text);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// insert list at current path
|
|
111
|
+
if ((0, _core.isSelectionAtBlockStart)(editor)) {
|
|
112
|
+
_slate.Transforms.insertNodes(newEditor, fragment);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// insert list at next path
|
|
117
|
+
const nextPath = _slate.Path.next(paragraphEntry[1]);
|
|
118
|
+
_slate.Transforms.insertNodes(newEditor, fragment, {
|
|
119
|
+
at: nextPath
|
|
120
|
+
});
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
101
123
|
if (fragment.length === 1 && firstChild.type === _elementTypes.TABLE) {
|
|
102
124
|
const hasVoidNode = paragraphEntry[0].children.some(item => _slate.Editor.isVoid(newEditor, item));
|
|
103
125
|
if (_slate.Node.string(paragraphEntry[0]).length === 0 && !hasVoidNode) {
|