@seafile/sdoc-editor 3.0.113 → 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 +46 -10
- package/dist/extension/toolbar/side-toolbar/helpers.js +132 -19
- package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +9 -2
- 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"));
|
|
@@ -57,6 +59,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
57
59
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
58
60
|
quickInsertMenuSearchMap = _useState4[0],
|
|
59
61
|
setQuickInsertMenuSearchMap = _useState4[1];
|
|
62
|
+
var enableMetadataManagement = _context["default"].getSetting('enableMetadataManagement');
|
|
60
63
|
var onInsertImageToggle = (0, _react.useCallback)(function () {
|
|
61
64
|
callback && callback();
|
|
62
65
|
var eventBus = _eventBus["default"].getInstance();
|
|
@@ -160,6 +163,11 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
160
163
|
(0, _helpers6.insertElement)(editor, type, insertPosition);
|
|
161
164
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
162
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]);
|
|
163
171
|
var onInsertCallout = (0, _react.useCallback)(function (type) {
|
|
164
172
|
callback && callback();
|
|
165
173
|
if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
|
|
@@ -177,7 +185,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
177
185
|
var isDisableCallout = (0, _react.useMemo)(function () {
|
|
178
186
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
179
187
|
match: function match(n) {
|
|
180
|
-
return
|
|
188
|
+
return [].concat((0, _toConsumableArray2["default"])(_constants2.TOGGLE_TITLE_TYPES), [_constants2.ELEMENT_TYPE.CALL_OUT]).includes(n.type);
|
|
181
189
|
}
|
|
182
190
|
});
|
|
183
191
|
return !!callout;
|
|
@@ -187,7 +195,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
187
195
|
var isDisableFormula = (0, _react.useMemo)(function () {
|
|
188
196
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
189
197
|
match: function match(n) {
|
|
190
|
-
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);
|
|
191
199
|
}
|
|
192
200
|
});
|
|
193
201
|
return !!callout;
|
|
@@ -197,7 +205,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
197
205
|
var isDisableImage = (0, _react.useMemo)(function () {
|
|
198
206
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
199
207
|
match: function match(n) {
|
|
200
|
-
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);
|
|
201
209
|
}
|
|
202
210
|
});
|
|
203
211
|
return !!callout;
|
|
@@ -205,7 +213,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
205
213
|
var isDisableVideo = (0, _react.useMemo)(function () {
|
|
206
214
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
207
215
|
match: function match(n) {
|
|
208
|
-
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);
|
|
209
217
|
}
|
|
210
218
|
});
|
|
211
219
|
return !!callout;
|
|
@@ -213,7 +221,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
213
221
|
var isDisableTable = (0, _react.useMemo)(function () {
|
|
214
222
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
215
223
|
match: function match(n) {
|
|
216
|
-
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);
|
|
217
225
|
}
|
|
218
226
|
});
|
|
219
227
|
return !!callout;
|
|
@@ -221,7 +229,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
221
229
|
var isDisableMultiColumn = (0, _react.useMemo)(function () {
|
|
222
230
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
223
231
|
match: function match(n) {
|
|
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].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);
|
|
225
233
|
}
|
|
226
234
|
});
|
|
227
235
|
return !!callout;
|
|
@@ -229,7 +237,23 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
229
237
|
var isDisableCodeBlock = (0, _react.useMemo)(function () {
|
|
230
238
|
var callout = (0, _core.getAboveBlockNode)(editor, {
|
|
231
239
|
match: function match(n) {
|
|
232
|
-
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);
|
|
233
257
|
}
|
|
234
258
|
});
|
|
235
259
|
return !!callout;
|
|
@@ -261,7 +285,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
261
285
|
});
|
|
262
286
|
}, [callback, editor, insertPosition, slateNode]);
|
|
263
287
|
var dropDownItems = (0, _react.useMemo)(function () {
|
|
264
|
-
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"], {
|
|
265
289
|
isHidden: !quickInsertMenuSearchMap[_constants2.PARAGRAPH],
|
|
266
290
|
disabled: isEmptyNode,
|
|
267
291
|
key: "sdoc-insert-menu-paragraph",
|
|
@@ -274,11 +298,23 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
274
298
|
isHidden: !quickInsertMenuSearchMap[item.type],
|
|
275
299
|
key: item.id,
|
|
276
300
|
menuConfig: item,
|
|
301
|
+
disabled: isDisableHeader,
|
|
277
302
|
onClick: function onClick() {
|
|
278
303
|
return onInsert(item.type);
|
|
279
304
|
}
|
|
280
305
|
});
|
|
281
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;
|
|
282
318
|
}, {})), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.UNORDERED_LIST, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
283
319
|
isHidden: !quickInsertMenuSearchMap[_constants2.UNORDERED_LIST],
|
|
284
320
|
key: "sdoc-insert-menu-unorder-list",
|
|
@@ -298,7 +334,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
298
334
|
key: "sdoc-insert-menu-check-list",
|
|
299
335
|
menuConfig: (0, _objectSpread6["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
|
|
300
336
|
onClick: onInsertCheckList
|
|
301
|
-
})), editor.editorType === _constants.WIKI_EDITOR && (0, _defineProperty2["default"])({}, _constants2.FILE_VIEW,
|
|
337
|
+
})), editor.editorType === _constants.WIKI_EDITOR && enableMetadataManagement && (0, _defineProperty2["default"])({}, _constants2.FILE_VIEW,
|
|
302
338
|
/*#__PURE__*/
|
|
303
339
|
// eslint-disable-next-line react/jsx-indent
|
|
304
340
|
_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
@@ -436,7 +472,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
436
472
|
});
|
|
437
473
|
return items;
|
|
438
474
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
439
|
-
}, [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]);
|
|
440
476
|
var getSelectItemDom = function getSelectItemDom(selectIndex) {
|
|
441
477
|
var dropDownItemWrapper = downDownWrapperRef.current;
|
|
442
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");
|
|
@@ -41,6 +42,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
41
42
|
var editor = (0, _slateReact.useSlateStatic)();
|
|
42
43
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
43
44
|
t = _useTranslation.t;
|
|
45
|
+
var enableMetadataManagement = _context["default"].getSetting('enableMetadataManagement');
|
|
44
46
|
var onInsertImageToggle = (0, _react.useCallback)(function () {
|
|
45
47
|
var eventBus = _eventBus["default"].getInstance();
|
|
46
48
|
if (insertPosition === _constants2.INSERT_POSITION.CURRENT) {
|
|
@@ -132,6 +134,11 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
132
134
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
133
135
|
}, [editor, insertPosition, slateNode]);
|
|
134
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
|
+
}
|
|
135
142
|
(0, _helpers6.insertElement)(editor, type, insertPosition);
|
|
136
143
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
144
|
}, [editor, insertPosition, slateNode]);
|
|
@@ -167,7 +174,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
167
174
|
_toast["default"].danger(errorMessage);
|
|
168
175
|
});
|
|
169
176
|
}, [editor, insertPosition, slateNode]);
|
|
170
|
-
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) {
|
|
171
178
|
return /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
172
179
|
isHidden: !insertMenuSearchMap[item.type],
|
|
173
180
|
disabled: isNodeEmpty && item.type === _constants2.PARAGRAPH,
|
|
@@ -193,7 +200,7 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
193
200
|
isHidden: !insertMenuSearchMap[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM],
|
|
194
201
|
menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.CHECK_LIST_ITEM]),
|
|
195
202
|
onClick: onInsertCheckList
|
|
196
|
-
}), editor.editorType === _constants.WIKI_EDITOR && /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
203
|
+
}), editor.editorType === _constants.WIKI_EDITOR && enableMetadataManagement && /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
197
204
|
isHidden: !insertMenuSearchMap[_constants2.ELEMENT_TYPE.FILE_VIEW],
|
|
198
205
|
key: "sdoc-insert-menu-file-view",
|
|
199
206
|
menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.FILE_VIEW]),
|