@seafile/sdoc-editor 2.0.166 → 2.0.167
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.
|
@@ -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.setHeaderType = exports.isSelectionInHeader = exports.
|
|
7
|
+
exports.setHeaderType = exports.isSelectionInHeader = exports.isMenuDisabled = exports.isHasImage = exports.getHeaderType = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
9
|
var _slate = require("@seafile/slate");
|
|
10
10
|
var _constants = require("../../constants");
|
|
@@ -72,21 +72,9 @@ var setHeaderType = exports.setHeaderType = function setHeaderType(editor, type)
|
|
|
72
72
|
type: type
|
|
73
73
|
});
|
|
74
74
|
};
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
path = _selection$anchor.path,
|
|
81
|
-
offset = _selection$anchor.offset;
|
|
82
|
-
var _path$slice = path.slice(-1),
|
|
83
|
-
_path$slice2 = (0, _slicedToArray2["default"])(_path$slice, 1),
|
|
84
|
-
nodeIndex = _path$slice2[0];
|
|
85
|
-
if (nodeIndex + 1 > children.length) return false;
|
|
86
|
-
var beforeText = children[nodeIndex].text ? children[nodeIndex].text : '';
|
|
87
|
-
if (beforeText.length === 0) return false;
|
|
88
|
-
if (beforeText.length !== offset) return false;
|
|
89
|
-
var nextNode = children[nodeIndex + 1];
|
|
90
|
-
if (nextNode.type === 'image' && _slate.Node.string(headerNode).length === offset) return true;
|
|
91
|
-
return false;
|
|
75
|
+
var isHasImage = exports.isHasImage = function isHasImage(node) {
|
|
76
|
+
return node.children.some(function (item) {
|
|
77
|
+
if (item.type === 'image') return true;
|
|
78
|
+
return false;
|
|
79
|
+
});
|
|
92
80
|
};
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
8
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
10
|
var _slate = require("@seafile/slate");
|
|
10
11
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
@@ -24,7 +25,8 @@ var withHeader = function withHeader(editor) {
|
|
|
24
25
|
var insertBreak = editor.insertBreak,
|
|
25
26
|
insertFragment = editor.insertFragment,
|
|
26
27
|
insertText = editor.insertText,
|
|
27
|
-
deleteBackward = editor.deleteBackward
|
|
28
|
+
deleteBackward = editor.deleteBackward,
|
|
29
|
+
normalizeNode = editor.normalizeNode;
|
|
28
30
|
var newEditor = editor;
|
|
29
31
|
|
|
30
32
|
// Utility function to check if selection is inside multi-column node
|
|
@@ -57,10 +59,10 @@ var withHeader = function withHeader(editor) {
|
|
|
57
59
|
if ((0, _core.isCursorAtBlockStart)(newEditor)) {
|
|
58
60
|
var _match = (0, _slicedToArray2["default"])(match, 2),
|
|
59
61
|
currentNode = _match[0],
|
|
60
|
-
|
|
62
|
+
path = _match[1];
|
|
61
63
|
var newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
62
64
|
_slate.Transforms.insertNodes(editor, newNode, {
|
|
63
|
-
at:
|
|
65
|
+
at: path
|
|
64
66
|
});
|
|
65
67
|
return;
|
|
66
68
|
}
|
|
@@ -68,25 +70,12 @@ var withHeader = function withHeader(editor) {
|
|
|
68
70
|
var nextNode = _slate.Editor.next(editor, {
|
|
69
71
|
at: match[1]
|
|
70
72
|
});
|
|
71
|
-
var _match2 = (0, _slicedToArray2["default"])(match, 2),
|
|
72
|
-
headerNode = _match2[0],
|
|
73
|
-
path = _match2[1];
|
|
74
|
-
if ((0, _helpers2.isNextChildIsImage)(editor, headerNode)) {
|
|
75
|
-
insertBreak();
|
|
76
|
-
var nextPath = _slate.Path.next(path);
|
|
77
|
-
_slate.Transforms.setNodes(editor, {
|
|
78
|
-
type: _constants.PARAGRAPH
|
|
79
|
-
}, {
|
|
80
|
-
at: nextPath
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
73
|
if (isAtLineEnd && nextNode && editor.children.length === 2) {
|
|
85
74
|
var _nextNode = (0, _slicedToArray2["default"])(nextNode, 2),
|
|
86
75
|
node = _nextNode[0],
|
|
87
|
-
|
|
76
|
+
_path = _nextNode[1];
|
|
88
77
|
if (node && node.children[0].text === '') {
|
|
89
|
-
_slate.Transforms.select(editor,
|
|
78
|
+
_slate.Transforms.select(editor, _path);
|
|
90
79
|
return;
|
|
91
80
|
}
|
|
92
81
|
}
|
|
@@ -151,6 +140,40 @@ var withHeader = function withHeader(editor) {
|
|
|
151
140
|
(0, _helpers2.setHeaderType)(newEditor, headerType);
|
|
152
141
|
return true;
|
|
153
142
|
};
|
|
143
|
+
newEditor.normalizeNode = function (_ref) {
|
|
144
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
145
|
+
node = _ref2[0],
|
|
146
|
+
path = _ref2[1];
|
|
147
|
+
var type = (0, _core.getNodeType)(node);
|
|
148
|
+
if (_constants.HEADERS.includes(type) && (0, _helpers2.isHasImage)(node)) {
|
|
149
|
+
var imagePaths = [];
|
|
150
|
+
var imageNodes = [];
|
|
151
|
+
node.children.forEach(function (item, index) {
|
|
152
|
+
if (item.type === 'image') {
|
|
153
|
+
var imgPath = [].concat((0, _toConsumableArray2["default"])(path), [index]);
|
|
154
|
+
imagePaths.push(imgPath);
|
|
155
|
+
imageNodes.push(item);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
if (imagePaths.length > 0) {
|
|
159
|
+
_slate.Editor.withoutNormalizing(editor, function () {
|
|
160
|
+
imagePaths.reverse().forEach(function (path) {
|
|
161
|
+
_slate.Transforms.removeNodes(editor, {
|
|
162
|
+
at: path
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
var p = (0, _core.generateDefaultParagraph)();
|
|
166
|
+
p.children = imageNodes;
|
|
167
|
+
var newPath = _slate.Path.next(path);
|
|
168
|
+
_slate.Transforms.insertNodes(editor, p, {
|
|
169
|
+
at: newPath
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return normalizeNode([node, path]);
|
|
176
|
+
};
|
|
154
177
|
return newEditor;
|
|
155
178
|
};
|
|
156
179
|
var _default = exports["default"] = withHeader;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.167",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "3aeaf24f2dc672bc32a6dc6d962542adb53a6f73"
|
|
75
75
|
}
|