@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.
Files changed (31) hide show
  1. package/dist/extension/constants/element-type.js +7 -2
  2. package/dist/extension/constants/index.js +34 -2
  3. package/dist/extension/constants/menus-config.js +30 -15
  4. package/dist/extension/plugins/blockquote/helpers.js +5 -3
  5. package/dist/extension/plugins/callout/helper.js +12 -2
  6. package/dist/extension/plugins/check-list/helpers.js +1 -0
  7. package/dist/extension/plugins/code-block/helpers.js +14 -0
  8. package/dist/extension/plugins/formula/helper.js +31 -1
  9. package/dist/extension/plugins/formula/menu/index.js +3 -1
  10. package/dist/extension/plugins/header/helpers.js +1 -0
  11. package/dist/extension/plugins/image/helpers.js +1 -0
  12. package/dist/extension/plugins/index.js +8 -1
  13. package/dist/extension/plugins/list/helpers.js +2 -1
  14. package/dist/extension/plugins/multi-column/helper.js +11 -0
  15. package/dist/extension/plugins/paragraph/render-elem.js +2 -2
  16. package/dist/extension/plugins/quick-insert/plugin/index.js +2 -2
  17. package/dist/extension/plugins/quick-insert/render-elem.js +3 -1
  18. package/dist/extension/plugins/table/helpers.js +3 -1
  19. package/dist/extension/plugins/toggle-header/helper.js +189 -0
  20. package/dist/extension/plugins/toggle-header/index.js +17 -0
  21. package/dist/extension/plugins/toggle-header/placeholder.js +35 -0
  22. package/dist/extension/plugins/toggle-header/plugin.js +537 -0
  23. package/dist/extension/plugins/toggle-header/render-elem.css +45 -0
  24. package/dist/extension/plugins/toggle-header/render-elem.js +130 -0
  25. package/dist/extension/plugins/video/helpers.js +1 -0
  26. package/dist/extension/plugins/whiteboard/helper.js +18 -4
  27. package/dist/extension/render/custom-element.js +20 -0
  28. package/dist/extension/toolbar/insert-element-toolbar/index.js +46 -10
  29. package/dist/extension/toolbar/side-toolbar/helpers.js +132 -19
  30. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +9 -2
  31. 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 = 4;
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 4:
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 n.type === _constants2.ELEMENT_TYPE.CALL_OUT;
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 _path = (0, _core.findPath)(editor, element);
108
- var _ref3 = _slate.Editor.node(editor, [_path[0]]) || [],
109
- _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
110
- _targetNode = _ref4[0],
111
- targetPath = _ref4[1];
112
- if (_targetNode && [_constants2.ORDERED_LIST, _constants2.UNORDERED_LIST].includes(_targetNode === null || _targetNode === void 0 ? void 0 : _targetNode.type) && !(0, _core.isMultiLevelList)(_targetNode)) {
113
- (0, _helpers3.convertToCheck)(editor, _targetNode, targetPath);
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(_targetNode.type)) {
121
- if (_targetNode.type === _constants2.BLOCKQUOTE) {
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 _path2 = (0, _core.findPath)(editor, element);
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: [_path2[0] + 1]
266
+ at: [_path3[0] + 1]
164
267
  });
165
- var nodeIndex = _path2[0];
268
+ var nodeIndex = _path3[0];
166
269
  var highestNode = editor.children[nodeIndex];
167
- if (_path2.length > 1 && [_constants2.BLOCKQUOTE, _constants2.ORDERED_LIST, _constants2.UNORDERED_LIST, _constants2.CODE_BLOCK].includes(highestNode.type)) {
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: [_path2[0]],
170
- to: [_path2[0] + 1, 0, 0]
272
+ at: [_path3[0]],
273
+ to: [_path3[0] + 1, 0, 0]
171
274
  });
172
275
  } else {
173
276
  _slate.Transforms.moveNodes(editor, {
174
- at: _path2,
175
- to: [_path2[0] + 1, 0, 0]
277
+ at: _path3,
278
+ to: [_path3[0] + 1, 0, 0]
176
279
  });
177
280
  }
178
281
  _slate.Transforms.removeNodes(editor, {
179
- at: [_path2[0], 0, 1]
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]),