@seafile/sdoc-editor 3.0.114 → 3.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.
- package/dist/extension/constants/element-type.js +7 -2
- package/dist/extension/constants/index.js +34 -2
- package/dist/extension/constants/menus-config.js +30 -15
- package/dist/extension/plugins/blockquote/helpers.js +5 -3
- package/dist/extension/plugins/callout/helper.js +12 -2
- package/dist/extension/plugins/check-list/helpers.js +1 -0
- package/dist/extension/plugins/code-block/helpers.js +14 -0
- package/dist/extension/plugins/formula/helper.js +31 -1
- package/dist/extension/plugins/formula/menu/index.js +3 -1
- package/dist/extension/plugins/header/helpers.js +1 -0
- package/dist/extension/plugins/image/helpers.js +1 -0
- package/dist/extension/plugins/index.js +8 -1
- package/dist/extension/plugins/list/helpers.js +2 -1
- package/dist/extension/plugins/multi-column/helper.js +11 -0
- package/dist/extension/plugins/paragraph/render-elem.js +2 -2
- package/dist/extension/plugins/quick-insert/plugin/index.js +2 -2
- package/dist/extension/plugins/quick-insert/render-elem.js +3 -1
- package/dist/extension/plugins/table/helpers.js +3 -1
- package/dist/extension/plugins/toggle-header/helper.js +189 -0
- package/dist/extension/plugins/toggle-header/index.js +17 -0
- package/dist/extension/plugins/toggle-header/placeholder.js +35 -0
- package/dist/extension/plugins/toggle-header/plugin.js +537 -0
- package/dist/extension/plugins/toggle-header/render-elem.css +45 -0
- package/dist/extension/plugins/toggle-header/render-elem.js +130 -0
- package/dist/extension/plugins/video/helpers.js +1 -0
- package/dist/extension/plugins/whiteboard/helper.js +18 -4
- package/dist/extension/render/custom-element.js +20 -0
- package/dist/extension/toolbar/insert-element-toolbar/index.js +44 -9
- package/dist/extension/toolbar/side-toolbar/helpers.js +132 -19
- package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +7 -1
- package/package.json +2 -2
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.renderToggleHeaderTitle = exports.renderToggleHeaderContent = exports.renderToggleHeader = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _slate = require("@seafile/slate");
|
|
13
|
+
var _slateReact = require("@seafile/slate-react");
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
var _constants = require("../../constants");
|
|
16
|
+
var _core = require("../../core");
|
|
17
|
+
var _helper = require("../paragraph/helper");
|
|
18
|
+
var _helper2 = require("./helper");
|
|
19
|
+
var _placeholder = _interopRequireDefault(require("./placeholder"));
|
|
20
|
+
require("./render-elem.css");
|
|
21
|
+
var renderToggleHeader = exports.renderToggleHeader = function renderToggleHeader(props, editor) {
|
|
22
|
+
var attributes = props.attributes,
|
|
23
|
+
children = props.children,
|
|
24
|
+
element = props.element;
|
|
25
|
+
var collapsed = !!element.collapsed;
|
|
26
|
+
var childNodes = _react["default"].Children.toArray(children);
|
|
27
|
+
var titleNode = childNodes[0] || null;
|
|
28
|
+
var contentNode = childNodes[1] || null;
|
|
29
|
+
var onToggleCollapsed = function onToggleCollapsed(event) {
|
|
30
|
+
event.preventDefault();
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
var path = _slateReact.ReactEditor.findPath(editor, element);
|
|
33
|
+
_slate.Editor.withoutNormalizing(editor, function () {
|
|
34
|
+
var _toggleNode$children;
|
|
35
|
+
var _Editor$node = _slate.Editor.node(editor, path),
|
|
36
|
+
_Editor$node2 = (0, _slicedToArray2["default"])(_Editor$node, 1),
|
|
37
|
+
toggleNode = _Editor$node2[0];
|
|
38
|
+
var contentNode = toggleNode === null || toggleNode === void 0 ? void 0 : (_toggleNode$children = toggleNode.children) === null || _toggleNode$children === void 0 ? void 0 : _toggleNode$children[1];
|
|
39
|
+
|
|
40
|
+
// Click toggle-header to expand
|
|
41
|
+
if (collapsed) {
|
|
42
|
+
if (!contentNode || contentNode.type !== _constants.TOGGLE_CONTENT) {
|
|
43
|
+
var content = (0, _core.generateEmptyElement)(_constants.TOGGLE_CONTENT);
|
|
44
|
+
content.children = Array.isArray(toggleNode.collapsed_body) && toggleNode.collapsed_body.length > 0 ? toggleNode.collapsed_body : [(0, _core.generateEmptyElement)(_constants.PARAGRAPH)];
|
|
45
|
+
_slate.Transforms.insertNodes(editor, content, {
|
|
46
|
+
at: [].concat((0, _toConsumableArray2["default"])(path), [1])
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
_slate.Transforms.setNodes(editor, {
|
|
50
|
+
collapsed: false,
|
|
51
|
+
collapsed_body: null
|
|
52
|
+
}, {
|
|
53
|
+
at: path
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Click toggle-header to collapse
|
|
59
|
+
var collapsedBody = (contentNode === null || contentNode === void 0 ? void 0 : contentNode.type) === _constants.TOGGLE_CONTENT ? contentNode.children || [] : [];
|
|
60
|
+
if ((contentNode === null || contentNode === void 0 ? void 0 : contentNode.type) === _constants.TOGGLE_CONTENT) {
|
|
61
|
+
_slate.Transforms.removeNodes(editor, {
|
|
62
|
+
at: [].concat((0, _toConsumableArray2["default"])(path), [1])
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
_slate.Transforms.setNodes(editor, {
|
|
66
|
+
collapsed: true,
|
|
67
|
+
collapsed_body: collapsedBody
|
|
68
|
+
}, {
|
|
69
|
+
at: path
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
74
|
+
"data-id": element.id,
|
|
75
|
+
id: element.id
|
|
76
|
+
}, attributes, {
|
|
77
|
+
className: (0, _classnames["default"])('sdoc-toggle-header-container', {
|
|
78
|
+
'sdoc-toggle-header-collapsed': collapsed
|
|
79
|
+
})
|
|
80
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
81
|
+
className: "sdoc-toggle-header-row"
|
|
82
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
83
|
+
className: "sdoc-toggle-header-prefix",
|
|
84
|
+
contentEditable: false,
|
|
85
|
+
onMouseDown: onToggleCollapsed
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
87
|
+
className: (0, _classnames["default"])('sdocfont', collapsed ? 'sdoc-big-caret-up' : 'sdoc-big-drop-down')
|
|
88
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
89
|
+
className: "sdoc-toggle-header-title-wrap"
|
|
90
|
+
}, titleNode)), !collapsed && /*#__PURE__*/_react["default"].createElement("div", {
|
|
91
|
+
className: "sdoc-toggle-header-content-wrap"
|
|
92
|
+
}, contentNode));
|
|
93
|
+
};
|
|
94
|
+
var renderToggleHeaderTitle = exports.renderToggleHeaderTitle = function renderToggleHeaderTitle(props) {
|
|
95
|
+
var attributes = props.attributes,
|
|
96
|
+
children = props.children,
|
|
97
|
+
element = props.element,
|
|
98
|
+
isComposing = props.isComposing;
|
|
99
|
+
var level = (0, _helper2.getLevel)(element);
|
|
100
|
+
var style = {
|
|
101
|
+
textAlign: element.align,
|
|
102
|
+
fontSize: "".concat(_constants.SDOC_FONT_SIZE["header".concat(level)], "pt")
|
|
103
|
+
};
|
|
104
|
+
var isShowPlaceHolder = false;
|
|
105
|
+
if ((0, _helper.isEmptyNode)(element) && _slate.Node.string(element) === '' && !isComposing) {
|
|
106
|
+
isShowPlaceHolder = true;
|
|
107
|
+
}
|
|
108
|
+
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
109
|
+
"data-id": element.id
|
|
110
|
+
}, attributes, {
|
|
111
|
+
className: (0, _classnames["default"])('sdoc-toggle-header-title', "sdoc-header-".concat(level)),
|
|
112
|
+
style: (0, _objectSpread2["default"])({
|
|
113
|
+
position: isShowPlaceHolder ? 'relative' : ''
|
|
114
|
+
}, style)
|
|
115
|
+
}), isShowPlaceHolder && /*#__PURE__*/_react["default"].createElement(_placeholder["default"], {
|
|
116
|
+
title: 'Header',
|
|
117
|
+
top: 0,
|
|
118
|
+
left: 0
|
|
119
|
+
}), children);
|
|
120
|
+
};
|
|
121
|
+
var renderToggleHeaderContent = exports.renderToggleHeaderContent = function renderToggleHeaderContent(props) {
|
|
122
|
+
var attributes = props.attributes,
|
|
123
|
+
children = props.children,
|
|
124
|
+
element = props.element;
|
|
125
|
+
return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
|
|
126
|
+
"data-id": element.id
|
|
127
|
+
}, attributes, {
|
|
128
|
+
className: "sdoc-toggle-header-content"
|
|
129
|
+
}), children);
|
|
130
|
+
};
|
|
@@ -27,6 +27,7 @@ var isInsertVideoMenuDisabled = exports.isInsertVideoMenuDisabled = function isI
|
|
|
27
27
|
var parentNode = (0, _core.getParentNode)(editor.children, n.id);
|
|
28
28
|
type = (0, _core.getNodeType)(parentNode);
|
|
29
29
|
}
|
|
30
|
+
if (_constants.TOGGLE_TITLE_TYPES.includes(type)) return true;
|
|
30
31
|
if (type === _constants.CODE_BLOCK) return true;
|
|
31
32
|
if (type.startsWith('header')) return true;
|
|
32
33
|
if (type === _constants.TITLE) return true;
|
|
@@ -10,6 +10,7 @@ var _regenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/r
|
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
12
|
var _slate = require("@seafile/slate");
|
|
13
|
+
var _slateReact = require("@seafile/slate-react");
|
|
13
14
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
14
15
|
var _constants = require("../../../constants");
|
|
15
16
|
var _context2 = _interopRequireDefault(require("../../../context"));
|
|
@@ -28,6 +29,7 @@ var isInsertWhiteboardMenuDisabled = exports.isInsertWhiteboardMenuDisabled = fu
|
|
|
28
29
|
var parentNode = (0, _core.getParentNode)(editor.children, n.id);
|
|
29
30
|
type = (0, _core.getNodeType)(parentNode);
|
|
30
31
|
}
|
|
32
|
+
if (_constants2.TOGGLE_TITLE_TYPES.includes(type)) return true;
|
|
31
33
|
if (type === _constants2.CODE_BLOCK) return true;
|
|
32
34
|
if (type.startsWith('header')) return true;
|
|
33
35
|
if (type === _constants2.TITLE) return true;
|
|
@@ -68,7 +70,7 @@ var generateWhiteboardNode = exports.generateWhiteboardNode = function generateW
|
|
|
68
70
|
var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
|
|
69
71
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(editor, filename, filePath, repoId) {
|
|
70
72
|
var _editor$selection;
|
|
71
|
-
var repoID, eventBus, exdrawReadOnlyLink, whiteboardNode, path, position, nextPath, endOfFirstNode, range;
|
|
73
|
+
var repoID, eventBus, exdrawReadOnlyLink, whiteboardNode, path, currentToggleContentEntry, position, nextPath, endOfFirstNode, range;
|
|
72
74
|
return (0, _regenerator2["default"])().w(function (_context) {
|
|
73
75
|
while (1) switch (_context.n) {
|
|
74
76
|
case 0:
|
|
@@ -102,10 +104,22 @@ var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
|
|
|
102
104
|
case 3:
|
|
103
105
|
exdrawReadOnlyLink = _context.v;
|
|
104
106
|
whiteboardNode = generateWhiteboardNode(repoID, filename, filePath, exdrawReadOnlyLink);
|
|
105
|
-
path = (_editor$selection = editor.selection) === null || _editor$selection === void 0 ? void 0 : _editor$selection.anchor.path;
|
|
107
|
+
path = (_editor$selection = editor.selection) === null || _editor$selection === void 0 ? void 0 : _editor$selection.anchor.path; // When inserting whiteboard in the toggle content, insert current
|
|
108
|
+
currentToggleContentEntry = (0, _core.getSelectedNodeEntryByType)(editor, _constants2.TOGGLE_CONTENT);
|
|
109
|
+
if (!currentToggleContentEntry) {
|
|
110
|
+
_context.n = 4;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
_slate.Transforms.insertNodes(editor, whiteboardNode, {
|
|
114
|
+
at: path.slice(0, -1)
|
|
115
|
+
});
|
|
116
|
+
_slate.Transforms.select(editor, _slate.Editor.start(editor, path));
|
|
117
|
+
_slateReact.ReactEditor.focus(editor);
|
|
118
|
+
return _context.a(2);
|
|
119
|
+
case 4:
|
|
106
120
|
position = 'after';
|
|
107
121
|
if (!(position === _constants2.INSERT_POSITION.AFTER)) {
|
|
108
|
-
_context.n =
|
|
122
|
+
_context.n = 5;
|
|
109
123
|
break;
|
|
110
124
|
}
|
|
111
125
|
_slate.Transforms.insertNodes(editor, whiteboardNode, {
|
|
@@ -124,7 +138,7 @@ var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
|
|
|
124
138
|
};
|
|
125
139
|
(0, _core.focusEditor)(editor, range);
|
|
126
140
|
return _context.a(2);
|
|
127
|
-
case
|
|
141
|
+
case 5:
|
|
128
142
|
return _context.a(2);
|
|
129
143
|
}
|
|
130
144
|
}, _callee);
|
|
@@ -72,6 +72,26 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
72
72
|
renderHeader = _HeaderPlugin$renderE3[2];
|
|
73
73
|
return renderHeader(props, editor);
|
|
74
74
|
}
|
|
75
|
+
case _elementType.TOGGLE_HEADER:
|
|
76
|
+
{
|
|
77
|
+
var _ToggleHeaderPlugin$r = (0, _slicedToArray2["default"])(_plugins.ToggleHeaderPlugin.renderElements, 1),
|
|
78
|
+
renderToggleHeader = _ToggleHeaderPlugin$r[0];
|
|
79
|
+
return renderToggleHeader(props, editor);
|
|
80
|
+
}
|
|
81
|
+
case _elementType.TOGGLE_HEADER1:
|
|
82
|
+
case _elementType.TOGGLE_HEADER2:
|
|
83
|
+
case _elementType.TOGGLE_HEADER3:
|
|
84
|
+
{
|
|
85
|
+
var _ToggleHeaderPlugin$r2 = (0, _slicedToArray2["default"])(_plugins.ToggleHeaderPlugin.renderElements, 2),
|
|
86
|
+
renderToggleHeaderTitle = _ToggleHeaderPlugin$r2[1];
|
|
87
|
+
return renderToggleHeaderTitle(props, editor);
|
|
88
|
+
}
|
|
89
|
+
case _elementType.TOGGLE_CONTENT:
|
|
90
|
+
{
|
|
91
|
+
var _ToggleHeaderPlugin$r3 = (0, _slicedToArray2["default"])(_plugins.ToggleHeaderPlugin.renderElements, 3),
|
|
92
|
+
renderToggleHeaderContent = _ToggleHeaderPlugin$r3[2];
|
|
93
|
+
return renderToggleHeaderContent(props, editor);
|
|
94
|
+
}
|
|
75
95
|
case _constants2.LINK:
|
|
76
96
|
{
|
|
77
97
|
var _LinkPlugin$renderEle = (0, _slicedToArray2["default"])(_plugins.LinkPlugin.renderElements, 1),
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
10
10
|
var _objectSpread6 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
11
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
14
|
var _reactI18next = require("react-i18next");
|
|
@@ -30,6 +31,7 @@ var _transforms = require("../../plugins/list/transforms");
|
|
|
30
31
|
var _helper2 = require("../../plugins/multi-column/helper");
|
|
31
32
|
var _helpers4 = require("../../plugins/table/helpers");
|
|
32
33
|
var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
|
|
34
|
+
var _helper3 = require("../../plugins/toggle-header/helper");
|
|
33
35
|
var _helpers5 = require("../../plugins/video/helpers");
|
|
34
36
|
var _utils = require("../../utils");
|
|
35
37
|
var _linkedRepoPopover = _interopRequireDefault(require("../linked-repo-popover"));
|
|
@@ -161,6 +163,11 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
161
163
|
(0, _helpers6.insertElement)(editor, type, insertPosition);
|
|
162
164
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
163
165
|
}, [editor, insertPosition, slateNode]);
|
|
166
|
+
var onInsertToggleHeader = (0, _react.useCallback)(function (type) {
|
|
167
|
+
callback && callback();
|
|
168
|
+
(0, _helper3.insertToggleHeader)(editor, type, insertPosition);
|
|
169
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
170
|
+
}, [editor, insertPosition, slateNode]);
|
|
164
171
|
var onInsertCallout = (0, _react.useCallback)(function (type) {
|
|
165
172
|
callback && callback();
|
|
166
173
|
if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
|
|
@@ -178,7 +185,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
178
185
|
var isDisableCallout = (0, _react.useMemo)(function () {
|
|
179
186
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
180
187
|
match: function match(n) {
|
|
181
|
-
return
|
|
188
|
+
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), [_constants2.ELEMENT_TYPE.CALL_OUT]).includes(n.type);
|
|
182
189
|
}
|
|
183
190
|
});
|
|
184
191
|
return !!callout;
|
|
@@ -188,7 +195,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
188
195
|
var isDisableFormula = (0, _react.useMemo)(function () {
|
|
189
196
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
190
197
|
match: function match(n) {
|
|
191
|
-
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].includes(n.type);
|
|
198
|
+
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES)).includes(n.type);
|
|
192
199
|
}
|
|
193
200
|
});
|
|
194
201
|
return !!callout;
|
|
@@ -198,7 +205,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
198
205
|
var isDisableImage = (0, _react.useMemo)(function () {
|
|
199
206
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
200
207
|
match: function match(n) {
|
|
201
|
-
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM].includes(n.type);
|
|
208
|
+
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES)).includes(n.type);
|
|
202
209
|
}
|
|
203
210
|
});
|
|
204
211
|
return !!callout;
|
|
@@ -206,7 +213,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
206
213
|
var isDisableVideo = (0, _react.useMemo)(function () {
|
|
207
214
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
208
215
|
match: function match(n) {
|
|
209
|
-
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN].includes(n.type);
|
|
216
|
+
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES)).includes(n.type);
|
|
210
217
|
}
|
|
211
218
|
});
|
|
212
219
|
return !!callout;
|
|
@@ -214,7 +221,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
214
221
|
var isDisableTable = (0, _react.useMemo)(function () {
|
|
215
222
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
216
223
|
match: function match(n) {
|
|
217
|
-
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].includes(n.type);
|
|
224
|
+
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES)).includes(n.type);
|
|
218
225
|
}
|
|
219
226
|
});
|
|
220
227
|
return !!callout;
|
|
@@ -222,7 +229,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
222
229
|
var isDisableMultiColumn = (0, _react.useMemo)(function () {
|
|
223
230
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
224
231
|
match: function match(n) {
|
|
225
|
-
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].includes(n.type);
|
|
232
|
+
return [_constants2.ELEMENT_TYPE.ORDERED_LIST, _constants2.ELEMENT_TYPE.UNORDERED_LIST, _constants2.ELEMENT_TYPE.CHECK_LIST_ITEM, _constants2.ELEMENT_TYPE.MULTI_COLUMN, _constants2.ELEMENT_TYPE.BLOCKQUOTE, _constants2.ELEMENT_TYPE.CALL_OUT].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES)).includes(n.type);
|
|
226
233
|
}
|
|
227
234
|
});
|
|
228
235
|
return !!callout;
|
|
@@ -230,7 +237,23 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
230
237
|
var isDisableCodeBlock = (0, _react.useMemo)(function () {
|
|
231
238
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
232
239
|
match: function match(n) {
|
|
233
|
-
return [_constants2.ELEMENT_TYPE.MULTI_COLUMN].includes(n.type);
|
|
240
|
+
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), [_constants2.ELEMENT_TYPE.MULTI_COLUMN]).includes(n.type);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
return !!callout;
|
|
244
|
+
}, [editor]);
|
|
245
|
+
var isDisableHeader = (0, _react.useMemo)(function () {
|
|
246
|
+
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
247
|
+
match: function match(n) {
|
|
248
|
+
return _constants2.TOGGLE_TITLE_TYPES.includes(n.type);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
return !!callout;
|
|
252
|
+
}, [editor]);
|
|
253
|
+
var isDisableToggleHeader = (0, _react.useMemo)(function () {
|
|
254
|
+
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
255
|
+
match: function match(n) {
|
|
256
|
+
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), [_constants2.ELEMENT_TYPE.MULTI_COLUMN]).includes(n.type);
|
|
234
257
|
}
|
|
235
258
|
});
|
|
236
259
|
return !!callout;
|
|
@@ -262,7 +285,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
262
285
|
});
|
|
263
286
|
}, [callback, editor, insertPosition, slateNode]);
|
|
264
287
|
var dropDownItems = (0, _react.useMemo)(function () {
|
|
265
|
-
var items = (0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _defineProperty2["default"])({}, _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
288
|
+
var items = (0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _defineProperty2["default"])({}, _constants2.PARAGRAPH, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
266
289
|
isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
|
|
267
290
|
disabled: isEmptyNode,
|
|
268
291
|
key: "sdoc-insert-menu-paragraph",
|
|
@@ -275,11 +298,23 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
275
298
|
isHidden: !quickInsertMenuSearchMap[item.type],
|
|
276
299
|
key: item.id,
|
|
277
300
|
menuConfig: item,
|
|
301
|
+
disabled: isDisableHeader,
|
|
278
302
|
onClick: function onClick() {
|
|
279
303
|
return onInsert(item.type);
|
|
280
304
|
}
|
|
281
305
|
});
|
|
282
306
|
return acc;
|
|
307
|
+
}, {})), _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TOGGLE_HEADER].reduce(function (acc, item) {
|
|
308
|
+
acc[item.id] = /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
309
|
+
isHidden: !quickInsertMenuSearchMap[item.type],
|
|
310
|
+
key: item.id,
|
|
311
|
+
menuConfig: item,
|
|
312
|
+
disabled: isDisableToggleHeader,
|
|
313
|
+
onClick: function onClick() {
|
|
314
|
+
return onInsertToggleHeader(item.type);
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
return acc;
|
|
283
318
|
}, {})), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.UNORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
284
319
|
isHidden: !quickInsertMenuSearchMap[_constants2.UNORDERED_LIST],
|
|
285
320
|
key: "sdoc-insert-menu-unorder-list",
|
|
@@ -437,7 +472,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
437
472
|
});
|
|
438
473
|
return items;
|
|
439
474
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
440
|
-
}, [quickInsertMenuSearchMap, isDisableImage, onInsertImageToggle, isDisableVideo, isDisableMultiColumn, onInsertVideoToggle, isDisableTable, editor, createTable, callback, handleClosePopover, openLinkDialog, onInsertCodeBlock, isDisableCallout, onInsertCheckList, isEmptyNode, onInsertCallout, onInsertList, onInsert, createMultiColumn]);
|
|
475
|
+
}, [quickInsertMenuSearchMap, isDisableImage, onInsertImageToggle, isDisableVideo, isDisableMultiColumn, onInsertVideoToggle, isDisableTable, editor, createTable, callback, handleClosePopover, openLinkDialog, onInsertCodeBlock, isDisableCallout, isDisableToggleHeader, onInsertCheckList, isEmptyNode, onInsertCallout, onInsertList, onInsert, createMultiColumn, isDisableHeader]);
|
|
441
476
|
var getSelectItemDom = function getSelectItemDom(selectIndex) {
|
|
442
477
|
var dropDownItemWrapper = downDownWrapperRef.current;
|
|
443
478
|
var searchedDropDownItemWrapper = [];
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.wrapIntoMultiColumn = exports.setSelection = exports.onWrapMultiListItemToNonListTypeTarget = exports.onWrapMultiListItem = exports.onWrapListItemFromMultiColumn = exports.onWrapListItem = exports.onSetNodeType = exports.onDeleteNode = exports.onCopyNode = exports.normalizeCopyData = exports.isNotSupportTransform = exports.isMultiColumn = exports.isListItem = exports.isList = exports.isInMultiColumnNode = exports.isBlockquote = exports.insertEmptyListNodeAtTarget = exports.insertElement = exports.getTransformMenusConfig = exports.getTopValue = exports.getSearchedOperations = exports.getNodeEntry = exports.getListNodeFromMultiColumn = exports.getListNode = exports.deleteNodesFromBack = exports.createDragPreviewContainer = exports.clearDragClass = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
8
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
11
|
var _slate = require("@seafile/slate");
|
|
@@ -25,6 +26,7 @@ var _model = require("../../plugins/list/model");
|
|
|
25
26
|
var _transforms = require("../../plugins/list/transforms");
|
|
26
27
|
var _helper2 = require("../../plugins/multi-column/helper");
|
|
27
28
|
var _constants3 = require("../../plugins/table/constants");
|
|
29
|
+
var _helper3 = require("../../plugins/toggle-header/helper");
|
|
28
30
|
var onSetNodeType = exports.onSetNodeType = function onSetNodeType(editor, element, type) {
|
|
29
31
|
var selection = editor.selection;
|
|
30
32
|
if (!type) return;
|
|
@@ -56,6 +58,71 @@ var onSetNodeType = exports.onSetNodeType = function onSetNodeType(editor, eleme
|
|
|
56
58
|
}
|
|
57
59
|
return;
|
|
58
60
|
}
|
|
61
|
+
if (_constants2.TOGGLE_TITLE_TYPES.includes(type)) {
|
|
62
|
+
var level = (0, _helper3.getLevelFromType)(type);
|
|
63
|
+
var currentToggleEntry = _slate.Editor.above(editor, {
|
|
64
|
+
at: selection,
|
|
65
|
+
match: function match(n) {
|
|
66
|
+
return _slate.Element.isElement(n) && n.type === _constants2.TOGGLE_HEADER;
|
|
67
|
+
},
|
|
68
|
+
mode: 'lowest'
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Convert existing toggle-header
|
|
72
|
+
if (currentToggleEntry) {
|
|
73
|
+
var _currentToggleEntry = (0, _slicedToArray2["default"])(currentToggleEntry, 2),
|
|
74
|
+
togglePath = _currentToggleEntry[1];
|
|
75
|
+
_slate.Editor.withoutNormalizing(editor, function () {
|
|
76
|
+
_slate.Transforms.setNodes(editor, {
|
|
77
|
+
level: level
|
|
78
|
+
}, {
|
|
79
|
+
at: togglePath
|
|
80
|
+
});
|
|
81
|
+
_slate.Transforms.setNodes(editor, {
|
|
82
|
+
type: type
|
|
83
|
+
}, {
|
|
84
|
+
at: [].concat((0, _toConsumableArray2["default"])(togglePath), [0])
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
(0, _core.focusEditor)(editor, _slate.Editor.start(editor, [].concat((0, _toConsumableArray2["default"])(togglePath), [0])));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Convert paragraph/header to toggle-header
|
|
92
|
+
var _path = (0, _core.findPath)(editor, element);
|
|
93
|
+
var _ref3 = _slate.Editor.node(editor, _path) || [],
|
|
94
|
+
_ref4 = (0, _slicedToArray2["default"])(_ref3, 1),
|
|
95
|
+
_targetNode = _ref4[0];
|
|
96
|
+
var titleChildren = _targetNode.children || [];
|
|
97
|
+
var titleNode = {
|
|
98
|
+
id: _slugid["default"].nice(),
|
|
99
|
+
type: type,
|
|
100
|
+
align: _targetNode.align,
|
|
101
|
+
children: titleChildren
|
|
102
|
+
};
|
|
103
|
+
var bodyNode = {
|
|
104
|
+
id: _slugid["default"].nice(),
|
|
105
|
+
type: _constants2.TOGGLE_CONTENT,
|
|
106
|
+
children: [(0, _core.generateEmptyElement)(_constants2.PARAGRAPH)]
|
|
107
|
+
};
|
|
108
|
+
var toggleNode = {
|
|
109
|
+
id: _slugid["default"].nice(),
|
|
110
|
+
type: _constants2.TOGGLE_HEADER,
|
|
111
|
+
level: level,
|
|
112
|
+
collapsed: false,
|
|
113
|
+
children: [titleNode, bodyNode]
|
|
114
|
+
};
|
|
115
|
+
_slate.Editor.withoutNormalizing(editor, function () {
|
|
116
|
+
_slate.Transforms.removeNodes(editor, {
|
|
117
|
+
at: _path
|
|
118
|
+
});
|
|
119
|
+
_slate.Transforms.insertNodes(editor, toggleNode, {
|
|
120
|
+
at: _path
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
(0, _core.focusEditor)(editor, _slate.Editor.start(editor, [].concat((0, _toConsumableArray2["default"])(_path), [0])));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
59
126
|
if ([_constants2.PARAGRAPH].concat((0, _toConsumableArray2["default"])(_constants2.HEADERS)).includes(type)) {
|
|
60
127
|
var _getTopLevelBlockNode;
|
|
61
128
|
// Transform list-item, blockquote, callout to paragraph or header
|
|
@@ -82,7 +149,7 @@ var onSetNodeType = exports.onSetNodeType = function onSetNodeType(editor, eleme
|
|
|
82
149
|
return;
|
|
83
150
|
}
|
|
84
151
|
} else {
|
|
85
|
-
// List-item, blockquote, callout is top node
|
|
152
|
+
// List-item, blockquote, callout, toggle-header is top node
|
|
86
153
|
if ([_constants2.ORDERED_LIST, _constants2.UNORDERED_LIST].includes(topNodeType)) {
|
|
87
154
|
(0, _transforms.toggleList)(editor, topNodeType);
|
|
88
155
|
if ((0, _toConsumableArray2["default"])(_constants2.HEADERS).includes(type)) {
|
|
@@ -101,24 +168,60 @@ var onSetNodeType = exports.onSetNodeType = function onSetNodeType(editor, eleme
|
|
|
101
168
|
(0, _helper.unwrapCallout)(editor);
|
|
102
169
|
return;
|
|
103
170
|
}
|
|
171
|
+
if ([_constants2.TOGGLE_HEADER].includes(topNodeType)) {
|
|
172
|
+
var _toggleNode$children, _toggleNode$children2;
|
|
173
|
+
var _currentToggleEntry2 = _slate.Editor.above(editor, {
|
|
174
|
+
at: selection,
|
|
175
|
+
match: function match(n) {
|
|
176
|
+
return _slate.Element.isElement(n) && n.type === _constants2.TOGGLE_HEADER;
|
|
177
|
+
},
|
|
178
|
+
mode: 'lowest'
|
|
179
|
+
});
|
|
180
|
+
if (!_currentToggleEntry2) return;
|
|
181
|
+
var _currentToggleEntry3 = (0, _slicedToArray2["default"])(_currentToggleEntry2, 2),
|
|
182
|
+
_toggleNode = _currentToggleEntry3[0],
|
|
183
|
+
_togglePath = _currentToggleEntry3[1];
|
|
184
|
+
var _titleNode = (_toggleNode$children = _toggleNode.children) === null || _toggleNode$children === void 0 ? void 0 : _toggleNode$children[0];
|
|
185
|
+
var _bodyNode = (_toggleNode$children2 = _toggleNode.children) === null || _toggleNode$children2 === void 0 ? void 0 : _toggleNode$children2[1];
|
|
186
|
+
var bodyChildren = (_bodyNode === null || _bodyNode === void 0 ? void 0 : _bodyNode.type) === _constants2.TOGGLE_CONTENT ? _bodyNode.children || [] : Array.isArray(_toggleNode.collapsed_body) ? _toggleNode.collapsed_body : [];
|
|
187
|
+
var hasBodyContent = bodyChildren.some(function (child) {
|
|
188
|
+
if (!_slate.Element.isElement(child)) return false;
|
|
189
|
+
if (child.type !== _constants2.PARAGRAPH) return true;
|
|
190
|
+
return _slate.Node.string(child) !== '';
|
|
191
|
+
});
|
|
192
|
+
var convertedTitleNode = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _titleNode), {}, {
|
|
193
|
+
type: type
|
|
194
|
+
});
|
|
195
|
+
var unwrapNodes = hasBodyContent ? [convertedTitleNode].concat((0, _toConsumableArray2["default"])(bodyChildren)) : [convertedTitleNode];
|
|
196
|
+
_slate.Editor.withoutNormalizing(editor, function () {
|
|
197
|
+
_slate.Transforms.removeNodes(editor, {
|
|
198
|
+
at: _togglePath
|
|
199
|
+
});
|
|
200
|
+
_slate.Transforms.insertNodes(editor, unwrapNodes, {
|
|
201
|
+
at: _togglePath
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
(0, _core.focusEditor)(editor, _slate.Editor.start(editor, _togglePath));
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
104
207
|
}
|
|
105
208
|
}
|
|
106
209
|
if (type === _constants2.CHECK_LIST_ITEM) {
|
|
107
|
-
var
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
targetPath =
|
|
112
|
-
if (
|
|
113
|
-
(0, _helpers3.convertToCheck)(editor,
|
|
210
|
+
var _path2 = (0, _core.findPath)(editor, element);
|
|
211
|
+
var _ref5 = _slate.Editor.node(editor, [_path2[0]]) || [],
|
|
212
|
+
_ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
|
|
213
|
+
_targetNode2 = _ref6[0],
|
|
214
|
+
targetPath = _ref6[1];
|
|
215
|
+
if (_targetNode2 && [_constants2.ORDERED_LIST, _constants2.UNORDERED_LIST].includes(_targetNode2 === null || _targetNode2 === void 0 ? void 0 : _targetNode2.type) && !(0, _core.isMultiLevelList)(_targetNode2)) {
|
|
216
|
+
(0, _helpers3.convertToCheck)(editor, _targetNode2, targetPath);
|
|
114
217
|
return;
|
|
115
218
|
}
|
|
116
219
|
var newType = element.type === _constants2.CHECK_LIST_ITEM ? _constants2.PARAGRAPH : _constants2.CHECK_LIST_ITEM;
|
|
117
220
|
_slate.Transforms.setNodes(editor, {
|
|
118
221
|
type: newType
|
|
119
222
|
});
|
|
120
|
-
if ([_constants2.MULTI_COLUMN, _constants2.BLOCKQUOTE].includes(
|
|
121
|
-
if (
|
|
223
|
+
if ([_constants2.MULTI_COLUMN, _constants2.BLOCKQUOTE].includes(_targetNode2.type)) {
|
|
224
|
+
if (_targetNode2.type === _constants2.BLOCKQUOTE) {
|
|
122
225
|
(0, _helpers2.setBlockQuoteType)(editor, true);
|
|
123
226
|
} else {
|
|
124
227
|
var _currentNodeInColumn2 = (0, _core.getNode)(editor, selection.anchor.path.slice(0, 3));
|
|
@@ -157,26 +260,26 @@ var onSetNodeType = exports.onSetNodeType = function onSetNodeType(editor, eleme
|
|
|
157
260
|
|
|
158
261
|
// Transform to multi_column and put content into first column
|
|
159
262
|
if (_constants2.MULTI_COLUMN_TYPE.includes(type)) {
|
|
160
|
-
var
|
|
263
|
+
var _path3 = (0, _core.findPath)(editor, element);
|
|
161
264
|
var multiColumnNode = (0, _helper2.generateEmptyMultiColumn)(editor, type);
|
|
162
265
|
_slate.Transforms.insertNodes(editor, multiColumnNode, {
|
|
163
|
-
at: [
|
|
266
|
+
at: [_path3[0] + 1]
|
|
164
267
|
});
|
|
165
|
-
var nodeIndex =
|
|
268
|
+
var nodeIndex = _path3[0];
|
|
166
269
|
var highestNode = editor.children[nodeIndex];
|
|
167
|
-
if (
|
|
270
|
+
if (_path3.length > 1 && [_constants2.BLOCKQUOTE, _constants2.ORDERED_LIST, _constants2.UNORDERED_LIST, _constants2.CODE_BLOCK].includes(highestNode.type)) {
|
|
168
271
|
_slate.Transforms.moveNodes(editor, {
|
|
169
|
-
at: [
|
|
170
|
-
to: [
|
|
272
|
+
at: [_path3[0]],
|
|
273
|
+
to: [_path3[0] + 1, 0, 0]
|
|
171
274
|
});
|
|
172
275
|
} else {
|
|
173
276
|
_slate.Transforms.moveNodes(editor, {
|
|
174
|
-
at:
|
|
175
|
-
to: [
|
|
277
|
+
at: _path3,
|
|
278
|
+
to: [_path3[0] + 1, 0, 0]
|
|
176
279
|
});
|
|
177
280
|
}
|
|
178
281
|
_slate.Transforms.removeNodes(editor, {
|
|
179
|
-
at: [
|
|
282
|
+
at: [_path3[0], 0, 1]
|
|
180
283
|
});
|
|
181
284
|
return;
|
|
182
285
|
}
|
|
@@ -382,6 +485,16 @@ var onWrapMultiListItemToNonListTypeTarget = exports.onWrapMultiListItemToNonLis
|
|
|
382
485
|
};
|
|
383
486
|
var getTransformMenusConfig = exports.getTransformMenusConfig = function getTransformMenusConfig(editor, slateNode) {
|
|
384
487
|
var newSideMenusConfig = _constants2.SIDE_TRANSFORM_MENUS_CONFIG;
|
|
488
|
+
if (_constants2.TOGGLE_HEADER === slateNode.type) {
|
|
489
|
+
return newSideMenusConfig = _constants2.SIDE_TRANSFORM_MENUS_CONFIG.filter(function (item) {
|
|
490
|
+
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), (0, _toConsumableArray2["default"])(_constants2.HEADERS), [_constants2.PARAGRAPH]).includes(item.type);
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
if (![_constants2.PARAGRAPH].concat((0, _toConsumableArray2["default"])(_constants2.HEADERS), [_constants2.TOGGLE_HEADER]).includes(slateNode.type)) {
|
|
494
|
+
return newSideMenusConfig = _constants2.SIDE_TRANSFORM_MENUS_CONFIG.filter(function (item) {
|
|
495
|
+
return !_constants2.TOGGLE_TITLE_TYPES.includes(item.type);
|
|
496
|
+
});
|
|
497
|
+
}
|
|
385
498
|
if ([_constants2.CALL_OUT].includes(slateNode.type)) {
|
|
386
499
|
return newSideMenusConfig = _constants2.SIDE_TRANSFORM_MENUS_CONFIG.filter(function (item) {
|
|
387
500
|
return [_constants2.PARAGRAPH].includes(item.type);
|
|
@@ -28,6 +28,7 @@ var _transforms = require("../../plugins/list/transforms");
|
|
|
28
28
|
var _helper2 = require("../../plugins/multi-column/helper");
|
|
29
29
|
var _helpers4 = require("../../plugins/table/helpers");
|
|
30
30
|
var _tableSizePopover = _interopRequireDefault(require("../../plugins/table/popover/table-size-popover"));
|
|
31
|
+
var _helper3 = require("../../plugins/toggle-header/helper");
|
|
31
32
|
var _helpers5 = require("../../plugins/video/helpers");
|
|
32
33
|
var _linkedRepoPopover = _interopRequireDefault(require("../linked-repo-popover"));
|
|
33
34
|
var _helpers6 = require("./helpers");
|
|
@@ -133,6 +134,11 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
133
134
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
134
135
|
}, [editor, insertPosition, slateNode]);
|
|
135
136
|
var onInsert = (0, _react.useCallback)(function (type) {
|
|
137
|
+
// Insert toggle header
|
|
138
|
+
if (_constants2.TOGGLE_TITLE_TYPES.includes(type)) {
|
|
139
|
+
(0, _helper3.insertToggleHeader)(editor, type, insertPosition);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
136
142
|
(0, _helpers6.insertElement)(editor, type, insertPosition);
|
|
137
143
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
138
144
|
}, [editor, insertPosition, slateNode]);
|
|
@@ -168,7 +174,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
168
174
|
_toast["default"].danger(errorMessage);
|
|
169
175
|
});
|
|
170
176
|
}, [editor, insertPosition, slateNode]);
|
|
171
|
-
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) {
|
|
177
|
+
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]), (0, _toConsumableArray2["default"])(_constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.TOGGLE_HEADER])).map(function (item) {
|
|
172
178
|
return /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
173
179
|
isHidden: !insertMenuSearchMap[item.type],
|
|
174
180
|
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.115",
|
|
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": "49c280cdc7d6958cd5ad0a125165bd79123d502b"
|
|
76
76
|
}
|