@seafile/sdoc-editor 3.0.200 → 3.0.201
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/editor/editable-article.js +11 -2
- package/dist/extension/plugins/header/helpers.js +79 -1
- package/dist/extension/plugins/header/plugin.js +58 -7
- package/dist/extension/plugins/header/render-elem.css +49 -0
- package/dist/extension/plugins/header/render-elem.js +37 -2
- package/dist/extension/render/custom-element.js +11 -0
- package/dist/extension/toolbar/quick-insert-toolbar/index.js +4 -27
- package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +8 -7
- package/package.json +2 -2
|
@@ -20,7 +20,8 @@ var _decorates = require("../decorates");
|
|
|
20
20
|
var _extension = require("../extension");
|
|
21
21
|
var _constants2 = require("../extension/constants");
|
|
22
22
|
var _core = require("../extension/core");
|
|
23
|
-
var _helpers = require("../extension/plugins/
|
|
23
|
+
var _helpers = require("../extension/plugins/header/helpers");
|
|
24
|
+
var _helpers2 = require("../extension/plugins/table/helpers");
|
|
24
25
|
var _highlight = require("../highlight");
|
|
25
26
|
var _useForceUpdate = _interopRequireDefault(require("../hooks/use-force-update"));
|
|
26
27
|
var _useScrollContext = require("../hooks/use-scroll-context");
|
|
@@ -56,7 +57,7 @@ var EditableArticle = function EditableArticle(_ref) {
|
|
|
56
57
|
}, []);
|
|
57
58
|
var onMouseDown = (0, _react.useCallback)(function (event) {
|
|
58
59
|
if (event.button === 0) {
|
|
59
|
-
var isPreventReset = (0,
|
|
60
|
+
var isPreventReset = (0, _helpers2.isPreventResetTableSelectedRange)(event);
|
|
60
61
|
if (!isPreventReset) {
|
|
61
62
|
editor.reSetTableSelectedRange();
|
|
62
63
|
var eventBus = _eventBus["default"].getInstance();
|
|
@@ -207,6 +208,10 @@ var EditableArticle = function EditableArticle(_ref) {
|
|
|
207
208
|
unit: 'offset',
|
|
208
209
|
reverse: true
|
|
209
210
|
});
|
|
211
|
+
var hiddenMovePoint = editor.selection ? (0, _helpers.getSkippedHiddenHeaderMovePoint)(editor, editor.selection.focus, true) : null;
|
|
212
|
+
if (hiddenMovePoint) {
|
|
213
|
+
_slate.Transforms.select(editor, hiddenMovePoint);
|
|
214
|
+
}
|
|
210
215
|
if (!(0, _core.isSelectionAtBlockStart)(editor)) return;
|
|
211
216
|
}
|
|
212
217
|
if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {
|
|
@@ -227,6 +232,10 @@ var EditableArticle = function EditableArticle(_ref) {
|
|
|
227
232
|
_slate.Transforms.move(editor, {
|
|
228
233
|
unit: 'offset'
|
|
229
234
|
});
|
|
235
|
+
var _hiddenMovePoint = editor.selection ? (0, _helpers.getSkippedHiddenHeaderMovePoint)(editor, editor.selection.focus) : null;
|
|
236
|
+
if (_hiddenMovePoint) {
|
|
237
|
+
_slate.Transforms.select(editor, _hiddenMovePoint);
|
|
238
|
+
}
|
|
230
239
|
if (!(0, _core.isSelectionAtBlockEnd)(editor)) return;
|
|
231
240
|
}
|
|
232
241
|
if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {
|
|
@@ -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.isMenuDisabled = exports.isHasImage = exports.getHeaderType = void 0;
|
|
7
|
+
exports.setHeaderType = exports.isSelectionInHeader = exports.isMenuDisabled = exports.isHasImage = exports.isElementHiddenByCollapsedHeader = exports.getSkippedHiddenHeaderMovePoint = exports.getHeaderType = exports.getHeaderLevel = exports.getCollapsedHeaderSectionEndIndex = 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");
|
|
@@ -73,6 +73,84 @@ var setHeaderType = exports.setHeaderType = function setHeaderType(editor, type)
|
|
|
73
73
|
type: type
|
|
74
74
|
});
|
|
75
75
|
};
|
|
76
|
+
var getHeaderLevel = exports.getHeaderLevel = function getHeaderLevel(type) {
|
|
77
|
+
if (!_constants.HEADERS.includes(type)) return null;
|
|
78
|
+
return Number(type.replace(_constants.HEADER, ''));
|
|
79
|
+
};
|
|
80
|
+
var getSectionEndIndex = function getSectionEndIndex(siblings, startIndex, level) {
|
|
81
|
+
var endIndex = siblings.length;
|
|
82
|
+
for (var index = startIndex + 1; index < siblings.length; index++) {
|
|
83
|
+
var _siblings$index;
|
|
84
|
+
var siblingLevel = getHeaderLevel((_siblings$index = siblings[index]) === null || _siblings$index === void 0 ? void 0 : _siblings$index.type);
|
|
85
|
+
if (siblingLevel !== null && siblingLevel <= level) {
|
|
86
|
+
endIndex = index;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return endIndex;
|
|
91
|
+
};
|
|
92
|
+
var getCollapsedHeaderSectionEndIndex = exports.getCollapsedHeaderSectionEndIndex = function getCollapsedHeaderSectionEndIndex(editor, element, defaultPath) {
|
|
93
|
+
var path = (0, _core.findPath)(editor, element, defaultPath);
|
|
94
|
+
if (!path || path.length !== 1) return null;
|
|
95
|
+
var currentIndex = path[path.length - 1];
|
|
96
|
+
var parentPath = _slate.Path.parent(path);
|
|
97
|
+
var siblings = parentPath.length === 0 ? editor.children : _slate.Node.get(editor, parentPath).children;
|
|
98
|
+
var level = getHeaderLevel(element.type);
|
|
99
|
+
if (level === null) return null;
|
|
100
|
+
return getSectionEndIndex(siblings, currentIndex, level);
|
|
101
|
+
};
|
|
102
|
+
var isElementHiddenByCollapsedHeader = exports.isElementHiddenByCollapsedHeader = function isElementHiddenByCollapsedHeader(editor, element, defaultPath) {
|
|
103
|
+
var path = (0, _core.findPath)(editor, element, defaultPath);
|
|
104
|
+
if (!path || path.length !== 1) return false;
|
|
105
|
+
var currentIndex = path[path.length - 1];
|
|
106
|
+
var parentPath = _slate.Path.parent(path);
|
|
107
|
+
var siblings = parentPath.length === 0 ? editor.children : _slate.Node.get(editor, parentPath).children;
|
|
108
|
+
for (var index = currentIndex - 1; index >= 0; index--) {
|
|
109
|
+
var sibling = siblings[index];
|
|
110
|
+
if (!_slate.Element.isElement(sibling) || !sibling.collapsed) continue;
|
|
111
|
+
var siblingLevel = getHeaderLevel(sibling.type);
|
|
112
|
+
if (siblingLevel === null) continue;
|
|
113
|
+
var endIndex = getSectionEndIndex(siblings, index, siblingLevel);
|
|
114
|
+
if (currentIndex < endIndex) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
};
|
|
120
|
+
var getSkippedHiddenHeaderMovePoint = exports.getSkippedHiddenHeaderMovePoint = function getSkippedHiddenHeaderMovePoint(editor, point) {
|
|
121
|
+
var reverse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
122
|
+
var topLevelBlockEntry = _slate.Editor.above(editor, {
|
|
123
|
+
at: point,
|
|
124
|
+
match: function match(n) {
|
|
125
|
+
return _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n);
|
|
126
|
+
},
|
|
127
|
+
mode: 'highest'
|
|
128
|
+
});
|
|
129
|
+
if (!topLevelBlockEntry) return null;
|
|
130
|
+
var _topLevelBlockEntry = (0, _slicedToArray2["default"])(topLevelBlockEntry, 2),
|
|
131
|
+
topLevelBlock = _topLevelBlockEntry[0],
|
|
132
|
+
topLevelPath = _topLevelBlockEntry[1];
|
|
133
|
+
if (topLevelPath.length !== 1) return null;
|
|
134
|
+
var step = reverse ? -1 : 1;
|
|
135
|
+
var isCurrentHidden = isElementHiddenByCollapsedHeader(editor, topLevelBlock, topLevelPath);
|
|
136
|
+
var isAtBoundary = reverse ? _slate.Editor.isStart(editor, point, topLevelPath) : _slate.Editor.isEnd(editor, point, topLevelPath);
|
|
137
|
+
var startIndex = topLevelPath[0] + step;
|
|
138
|
+
var skippedHiddenBlock = isCurrentHidden;
|
|
139
|
+
if (!isCurrentHidden) {
|
|
140
|
+
if (!isAtBoundary) return null;
|
|
141
|
+
}
|
|
142
|
+
for (var index = startIndex; index >= 0 && index < editor.children.length; index += step) {
|
|
143
|
+
var sibling = editor.children[index];
|
|
144
|
+
if (!_slate.Element.isElement(sibling)) continue;
|
|
145
|
+
if (isElementHiddenByCollapsedHeader(editor, sibling, [index])) {
|
|
146
|
+
skippedHiddenBlock = true;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (!skippedHiddenBlock) return null;
|
|
150
|
+
return reverse ? _slate.Editor.end(editor, [index]) : _slate.Editor.start(editor, [index]);
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
};
|
|
76
154
|
var isHasImage = exports.isHasImage = function isHasImage(node) {
|
|
77
155
|
return node.children.some(function (item) {
|
|
78
156
|
if (item.type === 'image') return true;
|
|
@@ -38,6 +38,11 @@ var withHeader = function withHeader(editor) {
|
|
|
38
38
|
|
|
39
39
|
// Rewrite insertBreak - insert paragraph when carriage return at the end of header
|
|
40
40
|
newEditor.insertBreak = function () {
|
|
41
|
+
var selection = newEditor.selection;
|
|
42
|
+
if (!selection) {
|
|
43
|
+
insertBreak();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
41
46
|
var _Editor$nodes = _slate.Editor.nodes(newEditor, {
|
|
42
47
|
match: function match(n) {
|
|
43
48
|
if (!_slate.Element.isElement(n)) return false;
|
|
@@ -56,19 +61,65 @@ var withHeader = function withHeader(editor) {
|
|
|
56
61
|
insertBreak();
|
|
57
62
|
return;
|
|
58
63
|
}
|
|
64
|
+
var _match = (0, _slicedToArray2["default"])(match, 2),
|
|
65
|
+
currentNode = _match[0],
|
|
66
|
+
path = _match[1];
|
|
67
|
+
var isCollapsedHeader = !!currentNode.collapsed;
|
|
68
|
+
var startPoint = _slate.Editor.start(newEditor, path);
|
|
69
|
+
var endPoint = _slate.Editor.end(newEditor, path);
|
|
70
|
+
if (isCollapsedHeader) {
|
|
71
|
+
var cursorPoint = selection.anchor;
|
|
72
|
+
var isAtHeaderStart = _slate.Point.equals(cursorPoint, startPoint);
|
|
73
|
+
var isAtHeaderEnd = _slate.Point.equals(cursorPoint, endPoint);
|
|
74
|
+
if (isAtHeaderStart) {
|
|
75
|
+
var newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
76
|
+
_slate.Transforms.insertNodes(newEditor, newNode, {
|
|
77
|
+
at: path
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (isAtHeaderEnd) {
|
|
82
|
+
_slate.Editor.withoutNormalizing(newEditor, function () {
|
|
83
|
+
var sectionEndIndex = (0, _helpers2.getCollapsedHeaderSectionEndIndex)(newEditor, currentNode, path);
|
|
84
|
+
var insertPath = sectionEndIndex === null ? _slate.Path.next(path) : [sectionEndIndex];
|
|
85
|
+
var newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
86
|
+
_slate.Transforms.insertNodes(newEditor, newNode, {
|
|
87
|
+
at: insertPath
|
|
88
|
+
});
|
|
89
|
+
_slate.Transforms.select(newEditor, _slate.Editor.start(newEditor, insertPath));
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
_slate.Editor.withoutNormalizing(newEditor, function () {
|
|
94
|
+
var sectionEndIndex = (0, _helpers2.getCollapsedHeaderSectionEndIndex)(newEditor, currentNode, path);
|
|
95
|
+
var afterRange = {
|
|
96
|
+
anchor: cursorPoint,
|
|
97
|
+
focus: endPoint
|
|
98
|
+
};
|
|
99
|
+
var afterText = _slate.Editor.string(newEditor, afterRange);
|
|
100
|
+
_slate.Transforms["delete"](newEditor, {
|
|
101
|
+
at: afterRange
|
|
102
|
+
});
|
|
103
|
+
var newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
104
|
+
newNode.children[0].text = afterText;
|
|
105
|
+
var insertPath = sectionEndIndex === null ? _slate.Path.next(path) : [sectionEndIndex];
|
|
106
|
+
_slate.Transforms.insertNodes(newEditor, newNode, {
|
|
107
|
+
at: insertPath
|
|
108
|
+
});
|
|
109
|
+
_slate.Transforms.select(newEditor, _slate.Editor.start(newEditor, insertPath));
|
|
110
|
+
});
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
59
113
|
if ((0, _core.isCursorAtBlockStart)(newEditor)) {
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
path = _match[1];
|
|
63
|
-
var newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
64
|
-
_slate.Transforms.insertNodes(editor, newNode, {
|
|
114
|
+
var _newNode = (0, _core.generateEmptyElement)(currentNode.type);
|
|
115
|
+
_slate.Transforms.insertNodes(editor, _newNode, {
|
|
65
116
|
at: path
|
|
66
117
|
});
|
|
67
118
|
return;
|
|
68
119
|
}
|
|
69
|
-
var isAtLineEnd = isSelectionAtLineEnd(editor,
|
|
120
|
+
var isAtLineEnd = isSelectionAtLineEnd(editor, path);
|
|
70
121
|
var nextNode = _slate.Editor.next(editor, {
|
|
71
|
-
at:
|
|
122
|
+
at: path
|
|
72
123
|
});
|
|
73
124
|
if (isAtLineEnd && nextNode && editor.children.length === 2) {
|
|
74
125
|
var _nextNode = (0, _slicedToArray2["default"])(nextNode, 2),
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.sdoc-header-row {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sdoc-header-collapse-prefix {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
position: absolute;
|
|
10
|
+
right: 100%;
|
|
11
|
+
top: 50%;
|
|
12
|
+
width: 16px;
|
|
13
|
+
height: 16px;
|
|
14
|
+
margin-right: 6px;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
transform: translateY(-50%);
|
|
17
|
+
opacity: 0;
|
|
18
|
+
pointer-events: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.sdoc-header-collapse-prefix:hover {
|
|
22
|
+
background-color: rgba(42, 28, 0, .07);
|
|
23
|
+
border-radius: 2px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.sdoc-header-collapse-prefix-visible {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
pointer-events: auto;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.sdoc-header-collapse-prefix .sdocfont {
|
|
32
|
+
width: 16px;
|
|
33
|
+
height: 16px;
|
|
34
|
+
font-size: 16px;
|
|
35
|
+
scale: calc(0.5);
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
color: #212529;
|
|
40
|
+
opacity: 0.5;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sdoc-header-collapse-prefix-collapsed {
|
|
44
|
+
transform: translateY(-50%) rotate(90deg);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.sdoc-header-content {
|
|
48
|
+
min-width: 0;
|
|
49
|
+
}
|
|
@@ -8,9 +8,12 @@ exports.renderTitle = exports.renderSubtitle = exports.renderHeader = void 0;
|
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _slate = require("@seafile/slate");
|
|
11
|
+
var _slateReact = require("@seafile/slate-react");
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
13
|
var _constants = require("../../constants");
|
|
12
14
|
var _helper = require("../paragraph/helper");
|
|
13
15
|
var _placeholder = _interopRequireDefault(require("./placeholder"));
|
|
16
|
+
require("./render-elem.css");
|
|
14
17
|
var renderTitle = exports.renderTitle = function renderTitle(props, editor) {
|
|
15
18
|
var element = props.element,
|
|
16
19
|
attributes = props.attributes,
|
|
@@ -49,6 +52,16 @@ var renderHeader = exports.renderHeader = function renderHeader(props, editor) {
|
|
|
49
52
|
isComposing = props.isComposing;
|
|
50
53
|
var type = element.type;
|
|
51
54
|
var level = type.split('header')[1];
|
|
55
|
+
var collapsed = !!element.collapsed;
|
|
56
|
+
var currentPath = _slateReact.ReactEditor.findPath(editor, element);
|
|
57
|
+
var activeHeaderEntry = editor.selection ? _slate.Editor.above(editor, {
|
|
58
|
+
at: editor.selection,
|
|
59
|
+
match: function match(node, path) {
|
|
60
|
+
return _slate.Element.isElement(node) && node.id === element.id && path.length === currentPath.length;
|
|
61
|
+
},
|
|
62
|
+
mode: 'lowest'
|
|
63
|
+
}) : null;
|
|
64
|
+
var isActiveHeader = !!activeHeaderEntry;
|
|
52
65
|
var style = (0, _objectSpread2["default"])({
|
|
53
66
|
textAlign: element.align,
|
|
54
67
|
fontSize: "".concat(_constants.SDOC_FONT_SIZE[element.type], "pt")
|
|
@@ -59,6 +72,15 @@ var renderHeader = exports.renderHeader = function renderHeader(props, editor) {
|
|
|
59
72
|
if ((0, _helper.isEmptyNode)(element) && _slate.Node.string(element) === '' && !isComposing) {
|
|
60
73
|
isShowPlaceHolder = true;
|
|
61
74
|
}
|
|
75
|
+
var onToggleCollapsed = function onToggleCollapsed(event) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
event.stopPropagation();
|
|
78
|
+
_slate.Transforms.setNodes(editor, {
|
|
79
|
+
collapsed: !collapsed
|
|
80
|
+
}, {
|
|
81
|
+
at: currentPath
|
|
82
|
+
});
|
|
83
|
+
};
|
|
62
84
|
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
63
85
|
"data-id": element.id,
|
|
64
86
|
id: element.id // used for click left outline item, page scroll this element
|
|
@@ -67,8 +89,21 @@ var renderHeader = exports.renderHeader = function renderHeader(props, editor) {
|
|
|
67
89
|
style: (0, _objectSpread2["default"])({
|
|
68
90
|
position: isShowPlaceHolder ? 'relative' : ''
|
|
69
91
|
}, style)
|
|
70
|
-
}),
|
|
92
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
93
|
+
className: "sdoc-header-row"
|
|
94
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
95
|
+
className: (0, _classnames["default"])('sdoc-header-collapse-prefix', {
|
|
96
|
+
'sdoc-header-collapse-prefix-visible': isActiveHeader,
|
|
97
|
+
'sdoc-header-collapse-prefix-collapsed': collapsed
|
|
98
|
+
}),
|
|
99
|
+
contentEditable: false,
|
|
100
|
+
onMouseDown: onToggleCollapsed
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
102
|
+
className: (0, _classnames["default"])('sdocfont', collapsed ? 'sdoc-big-caret-up' : 'sdoc-big-drop-down')
|
|
103
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
104
|
+
className: "sdoc-header-content"
|
|
105
|
+
}, isShowPlaceHolder && /*#__PURE__*/_react["default"].createElement(_placeholder["default"], {
|
|
71
106
|
title: 'Header',
|
|
72
107
|
top: 0
|
|
73
|
-
}), children);
|
|
108
|
+
}), children)));
|
|
74
109
|
};
|
|
@@ -7,12 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
11
|
var _slateReact = require("@seafile/slate-react");
|
|
11
12
|
var _constants = require("../../constants");
|
|
12
13
|
var _constants2 = require("../constants");
|
|
13
14
|
var _elementType = require("../constants/element-type");
|
|
14
15
|
var _core = require("../core");
|
|
15
16
|
var _plugins = require("../plugins");
|
|
17
|
+
var _helpers = require("../plugins/header/helpers");
|
|
16
18
|
var _helper = require("./helper");
|
|
17
19
|
var CustomRenderElement = function CustomRenderElement(props) {
|
|
18
20
|
var editor = (0, _slateReact.useSlateStatic)();
|
|
@@ -29,6 +31,15 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
29
31
|
|
|
30
32
|
// Sets the data-root attribute to true for certain elements
|
|
31
33
|
(0, _helper.setDataRoot)(element, attributes);
|
|
34
|
+
if ((0, _helpers.isElementHiddenByCollapsedHeader)(editor, element)) {
|
|
35
|
+
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
36
|
+
"data-id": element.id
|
|
37
|
+
}, attributes, {
|
|
38
|
+
style: {
|
|
39
|
+
display: 'none'
|
|
40
|
+
}
|
|
41
|
+
}), props.children);
|
|
42
|
+
}
|
|
32
43
|
switch (element.type) {
|
|
33
44
|
case _constants2.PARAGRAPH:
|
|
34
45
|
{
|
|
@@ -33,13 +33,14 @@ var _transforms = require("../../plugins/list/transforms");
|
|
|
33
33
|
var _helper2 = require("../../plugins/multi-column/helper");
|
|
34
34
|
var _helpers5 = require("../../plugins/table/helpers");
|
|
35
35
|
var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
|
|
36
|
-
var _helper3 = require("../../plugins/toggle-header/helper");
|
|
37
36
|
var _helpers6 = require("../../plugins/video/helpers");
|
|
38
37
|
var _utils = require("../../utils");
|
|
39
38
|
var _linkedRepoPopover = _interopRequireDefault(require("../linked-repo-popover"));
|
|
40
39
|
var _helpers7 = require("../side-toolbar/helpers");
|
|
41
40
|
var _const = require("./const");
|
|
42
41
|
require("./style.css");
|
|
42
|
+
// import { insertToggleHeader } from '../../plugins/toggle-header/helper';
|
|
43
|
+
|
|
43
44
|
var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
44
45
|
var _ref$insertPosition = _ref.insertPosition,
|
|
45
46
|
insertPosition = _ref$insertPosition === void 0 ? _constants2.INSERT_POSITION.CURRENT : _ref$insertPosition,
|
|
@@ -188,11 +189,6 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
188
189
|
(0, _helpers7.insertElement)(editor, type, insertPosition);
|
|
189
190
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
190
191
|
}, [editor, insertPosition, slateNode]);
|
|
191
|
-
var onInsertToggleHeader = (0, _react.useCallback)(function (type) {
|
|
192
|
-
callback && callback();
|
|
193
|
-
(0, _helper3.insertToggleHeader)(editor, type, insertPosition);
|
|
194
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
195
|
-
}, [editor, insertPosition, slateNode]);
|
|
196
192
|
var onInsertCallout = (0, _react.useCallback)(function (type) {
|
|
197
193
|
callback && callback();
|
|
198
194
|
if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
|
|
@@ -275,14 +271,6 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
275
271
|
});
|
|
276
272
|
return !!callout;
|
|
277
273
|
}, [editor]);
|
|
278
|
-
var isDisableToggleHeader = (0, _react.useMemo)(function () {
|
|
279
|
-
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
280
|
-
match: function match(n) {
|
|
281
|
-
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), [_constants2.ELEMENT_TYPE.MULTI_COLUMN]).includes(n.type);
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
return !!callout;
|
|
285
|
-
}, [editor]);
|
|
286
274
|
var createMultiColumn = (0, _react.useCallback)(function (type) {
|
|
287
275
|
callback && callback();
|
|
288
276
|
var newInsertPosition = slateNode.type === _constants2.ELEMENT_TYPE.LIST_ITEM ? _constants2.INSERT_POSITION.AFTER : insertPosition;
|
|
@@ -310,7 +298,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
310
298
|
});
|
|
311
299
|
}, [callback, editor, insertPosition, slateNode]);
|
|
312
300
|
var dropDownItems = (0, _react.useMemo)(function () {
|
|
313
|
-
var items = (0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0,
|
|
301
|
+
var items = (0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _objectSpread7["default"])((0, _defineProperty2["default"])({}, _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
314
302
|
isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
|
|
315
303
|
disabled: isEmptyNode,
|
|
316
304
|
key: "sdoc-insert-menu-paragraph",
|
|
@@ -329,17 +317,6 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
329
317
|
}
|
|
330
318
|
});
|
|
331
319
|
return acc;
|
|
332
|
-
}, {})), _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TOGGLE_HEADER].reduce(function (acc, item) {
|
|
333
|
-
acc[item.id] = /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
334
|
-
isHidden: !quickInsertMenuSearchMap[item.type],
|
|
335
|
-
key: item.id,
|
|
336
|
-
menuConfig: item,
|
|
337
|
-
disabled: isDisableToggleHeader,
|
|
338
|
-
onClick: function onClick() {
|
|
339
|
-
return onInsertToggleHeader(item.type);
|
|
340
|
-
}
|
|
341
|
-
});
|
|
342
|
-
return acc;
|
|
343
320
|
}, {})), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.UNORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
344
321
|
isHidden: !quickInsertMenuSearchMap[_constants2.UNORDERED_LIST],
|
|
345
322
|
key: "sdoc-insert-menu-unorder-list",
|
|
@@ -510,7 +487,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
510
487
|
});
|
|
511
488
|
return items;
|
|
512
489
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
513
|
-
}, [quickInsertMenuSearchMap, isDisableImage, onInsertImageToggle, isDisableVideo, isDisableMultiColumn, onInsertVideoToggle, isDisableTable, editor, createTable, callback, handleClosePopover, openLinkDialog, openSelectFileDialog, addEmbedLinkDialog, onInsertCodeBlock, isDisableCallout,
|
|
490
|
+
}, [quickInsertMenuSearchMap, isDisableImage, onInsertImageToggle, isDisableVideo, isDisableMultiColumn, onInsertVideoToggle, isDisableTable, editor, createTable, callback, handleClosePopover, openLinkDialog, openSelectFileDialog, addEmbedLinkDialog, onInsertCodeBlock, isDisableCallout, onInsertCheckList, isEmptyNode, onInsertCallout, onInsertList, onInsert, createMultiColumn, isDisableHeader, hasLinkedRepos]);
|
|
514
491
|
var getSelectItemDom = function getSelectItemDom(selectIndex) {
|
|
515
492
|
var dropDownItemWrapper = downDownWrapperRef.current;
|
|
516
493
|
var searchedDropDownItemWrapper = [];
|
|
@@ -29,10 +29,11 @@ var _transforms = require("../../plugins/list/transforms");
|
|
|
29
29
|
var _helper2 = require("../../plugins/multi-column/helper");
|
|
30
30
|
var _helpers5 = require("../../plugins/table/helpers");
|
|
31
31
|
var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
|
|
32
|
-
var _helper3 = require("../../plugins/toggle-header/helper");
|
|
33
32
|
var _helpers6 = require("../../plugins/video/helpers");
|
|
34
33
|
var _linkedRepoPopover = _interopRequireDefault(require("../linked-repo-popover"));
|
|
35
34
|
var _helpers7 = require("./helpers");
|
|
35
|
+
// import { insertToggleHeader } from '../../plugins/toggle-header/helper';
|
|
36
|
+
|
|
36
37
|
var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
37
38
|
var _ref$insertPosition = _ref.insertPosition,
|
|
38
39
|
insertPosition = _ref$insertPosition === void 0 ? _constants2.INSERT_POSITION.CURRENT : _ref$insertPosition,
|
|
@@ -136,11 +137,11 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
136
137
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
138
|
}, [editor, insertPosition, slateNode]);
|
|
138
139
|
var onInsert = (0, _react.useCallback)(function (type) {
|
|
139
|
-
//
|
|
140
|
-
if (
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
140
|
+
// Temporarily disable creating toggle-header from insert menu.
|
|
141
|
+
// if (TOGGLE_TITLE_TYPES.includes(type)) {
|
|
142
|
+
// insertToggleHeader(editor, type, insertPosition);
|
|
143
|
+
// return;
|
|
144
|
+
// }
|
|
144
145
|
(0, _helpers7.insertElement)(editor, type, insertPosition);
|
|
145
146
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
146
147
|
}, [editor, insertPosition, slateNode]);
|
|
@@ -187,7 +188,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
187
188
|
});
|
|
188
189
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
189
190
|
}, [editor, insertPosition]);
|
|
190
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, [_constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]].concat((0, _toConsumableArray2["default"])(_constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.HEADER])
|
|
191
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, [_constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.PARAGRAPH]].concat((0, _toConsumableArray2["default"])(_constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.HEADER])).map(function (item) {
|
|
191
192
|
return /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
192
193
|
isHidden: !insertMenuSearchMap[item.type],
|
|
193
194
|
disabled: isNodeEmpty && item.type === _constants2.PARAGRAPH,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.201",
|
|
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": "7184ca781dadfd5d7df36b9de81852efb46265d8"
|
|
76
76
|
}
|