@seafile/seafile-editor 2.0.34 → 2.0.36-beta

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.
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "BrowserTip", {
10
10
  return _browserTip.default;
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "LinkVerifiedDialog", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _linkVerifiedDialog.default;
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "LongTextModal", {
14
20
  enumerable: true,
15
21
  get: function () {
@@ -24,4 +30,5 @@ Object.defineProperty(exports, "ModalHeader", {
24
30
  });
25
31
  var _longtextModal = _interopRequireDefault(require("./longtext-modal"));
26
32
  var _browserTip = _interopRequireDefault(require("./browser-tip"));
27
- var _modalHeader = _interopRequireDefault(require("./modal-header"));
33
+ var _modalHeader = _interopRequireDefault(require("./modal-header"));
34
+ var _linkVerifiedDialog = _interopRequireDefault(require("./link-verified-dialog"));
@@ -0,0 +1,8 @@
1
+ .sf-link-verified-dialog .sf-tip-default {
2
+ color: #666;
3
+ font-size: 14px;
4
+ }
5
+
6
+ .sf-link-verified-dialog .sf-verify-link {
7
+ word-break: break-all;
8
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactstrap = require("reactstrap");
11
+ var _reactI18next = require("react-i18next");
12
+ var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
13
+ var _modalHeader = _interopRequireDefault(require("../modal-header"));
14
+ var _constants = require("../../constants");
15
+ require("./index.css");
16
+ /* eslint-disable react-hooks/rules-of-hooks */
17
+
18
+ const LinkVerifiedDialog = _ref => {
19
+ let {
20
+ onToggle,
21
+ link
22
+ } = _ref;
23
+ const {
24
+ t
25
+ } = (0, _reactI18next.useTranslation)(_constants.TRANSLATE_NAMESPACE);
26
+ const copyLink = (0, _react.useCallback)(() => {
27
+ (0, _copyToClipboard.default)(link);
28
+ onToggle && onToggle();
29
+ }, [link, onToggle]);
30
+ const openLink = (0, _react.useCallback)(() => {
31
+ window.open(link);
32
+ onToggle && onToggle();
33
+ }, [link, onToggle]);
34
+ const {
35
+ host,
36
+ protocol,
37
+ pathname
38
+ } = new URL(link);
39
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
40
+ isOpen: true,
41
+ toggle: onToggle,
42
+ className: "sf-link-verified-dialog",
43
+ zIndex: 1071
44
+ }, /*#__PURE__*/_react.default.createElement(_modalHeader.default, {
45
+ toggle: onToggle
46
+ }, /*#__PURE__*/_react.default.createElement("span", {
47
+ className: "mr-2"
48
+ }, t('This_link_is_not_verified'))), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement("p", {
49
+ className: "sf-tip-default mb-5"
50
+ }, t('This_link_is_not_verified_tip')), /*#__PURE__*/_react.default.createElement("div", {
51
+ className: "sf-verify-link"
52
+ }, /*#__PURE__*/_react.default.createElement("span", {
53
+ className: "sf-tip-default"
54
+ }, protocol + '//'), /*#__PURE__*/_react.default.createElement("span", null, host), /*#__PURE__*/_react.default.createElement("span", {
55
+ className: "sf-tip-default"
56
+ }, pathname))), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
57
+ onClick: copyLink,
58
+ className: "m-0 mr-2"
59
+ }, t('Copy_link')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
60
+ color: "primary",
61
+ className: "m-0",
62
+ onClick: openLink
63
+ }, t('Open_link'))));
64
+ };
65
+ var _default = exports.default = LinkVerifiedDialog;
@@ -16,10 +16,10 @@ function ModalHeader(_ref) {
16
16
  let close = null;
17
17
  if (toggle) {
18
18
  close = /*#__PURE__*/_react.default.createElement("span", {
19
- class: "sf-editor-close-icon",
19
+ className: "sf-editor-close-icon",
20
20
  onClick: toggle
21
21
  }, /*#__PURE__*/_react.default.createElement("i", {
22
- class: "iconfont icon-x",
22
+ className: "iconfont icon-x",
23
23
  "aria-hidden": "true"
24
24
  }));
25
25
  }
@@ -21,7 +21,8 @@ function SlateViewer(_ref) {
21
21
  value,
22
22
  isShowOutline,
23
23
  scrollRef: externalScrollRef,
24
- onLinkClick
24
+ onLinkClick,
25
+ ...params
25
26
  } = _ref;
26
27
  const scrollRef = (0, _react.useRef)(null);
27
28
  const {
@@ -69,7 +70,10 @@ function SlateViewer(_ref) {
69
70
  }, /*#__PURE__*/_react.default.createElement(_extension.SetNodeToDecorations, null), /*#__PURE__*/_react.default.createElement(_slateReact.Editable, {
70
71
  readOnly: true,
71
72
  decorate: decorate,
72
- renderElement: _extension.renderElement,
73
+ renderElement: props => (0, _extension.renderElement)({
74
+ ...params,
75
+ ...props
76
+ }),
73
77
  renderLeaf: _extension.renderLeaf
74
78
  }))))))));
75
79
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.UNORDERED_LIST = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
6
+ exports.UNORDERED_LIST = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK_REFERENCE = exports.LINK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.DEFINITION = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
7
7
  const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
8
8
  const HEADER = exports.HEADER = 'header';
9
9
  // each header type should be start with HEADER, all of justices should based on HEADER
@@ -26,4 +26,6 @@ const TABLE_CELL = exports.TABLE_CELL = 'table_cell';
26
26
  const IMAGE = exports.IMAGE = 'image';
27
27
  const LINK = exports.LINK = 'link';
28
28
  const FORMULA = exports.FORMULA = 'formula';
29
- const COLUMN = exports.COLUMN = 'column';
29
+ const COLUMN = exports.COLUMN = 'column';
30
+ const LINK_REFERENCE = exports.LINK_REFERENCE = 'link-reference';
31
+ const DEFINITION = exports.DEFINITION = 'definition';
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeAcrossBlocks = exports.isLastNode = exports.isLastChild = exports.isFirstNode = exports.isFirstChild = exports.isEndPoint = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getSelectedNodeEntryByTypes = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getParentNode = exports.getNodes = exports.getNodeType = exports.getNodePathById = exports.getNodeEntries = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getInlineNodes = exports.getEditorString = exports.getDeepInlineChildren = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
7
+ exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeAcrossBlocks = exports.isLastNode = exports.isLastChild = exports.isFirstNode = exports.isFirstChild = exports.isEndPoint = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getSelectedNodeEntryByTypes = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getParentNode = exports.getNodesByType = exports.getNodes = exports.getNodeType = exports.getNodePathById = exports.getNodeEntries = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getInlineNodes = exports.getEditorString = exports.getDeepInlineChildren = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
8
8
  var _slate = require("slate");
9
9
  var _slateReact = require("slate-react");
10
10
  var _slugid = _interopRequireDefault(require("slugid"));
@@ -46,6 +46,22 @@ const getNode = (editor, path) => {
46
46
  return node;
47
47
  };
48
48
  exports.getNode = getNode;
49
+ const getNodesByType = function () {
50
+ let target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
51
+ let type = arguments.length > 1 ? arguments[1] : undefined;
52
+ let nodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
53
+ Array.isArray(target) && target.forEach(n => {
54
+ if (n.type === type) {
55
+ nodes.push(n);
56
+ } else {
57
+ if (Array.isArray(n.children) && n.children.length > 0) {
58
+ getNodesByType(n, type, nodes);
59
+ }
60
+ }
61
+ });
62
+ return nodes;
63
+ };
64
+ exports.getNodesByType = getNodesByType;
49
65
  const getNodeType = node => {
50
66
  return _slate.Element.isElement(node) ? node.type : '';
51
67
  };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _elementTypes = require("../../constants/element-types");
9
+ var _renderElem = _interopRequireDefault(require("./render-elem"));
10
+ const DefinitionPlugin = {
11
+ type: _elementTypes.DEFINITION,
12
+ nodeType: 'element',
13
+ renderElements: [_renderElem.default]
14
+ };
15
+ var _default = exports.default = DefinitionPlugin;
@@ -0,0 +1,4 @@
1
+ .sf-virtual-definition {
2
+ margin-top: 0 !important;
3
+ margin-bottom: 0 !important;
4
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _components = require("../../../../components");
10
+ require("./index.css");
11
+ /* eslint-disable react-hooks/rules-of-hooks */
12
+
13
+ const renderDefinition = (_ref, editor) => {
14
+ let {
15
+ attributes,
16
+ children,
17
+ element,
18
+ option
19
+ } = _ref;
20
+ const [isShowConfirmDialog, setIsShowConfirmDialog] = (0, _react.useState)(false);
21
+ const {
22
+ render
23
+ } = option || {};
24
+ const onHrefClick = (0, _react.useCallback)(event => {
25
+ event.preventDefault();
26
+ if (element.url.startsWith(window.location.origin)) {
27
+ window.open(element.url);
28
+ return;
29
+ }
30
+ setIsShowConfirmDialog(true);
31
+ }, [element.url]);
32
+ const onToggle = (0, _react.useCallback)(() => {
33
+ setIsShowConfirmDialog(!isShowConfirmDialog);
34
+ }, [isShowConfirmDialog]);
35
+ if ( /*#__PURE__*/(0, _react.isValidElement)(render)) {
36
+ return /*#__PURE__*/(0, _react.cloneElement)(render, {
37
+ element,
38
+ onClick: onHrefClick,
39
+ attributes,
40
+ editor
41
+ });
42
+ }
43
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", Object.assign({
44
+ "data-url": element.url,
45
+ "data-id": element.id,
46
+ className: "sf-virtual-definition"
47
+ }, attributes), /*#__PURE__*/_react.default.createElement("span", null, element.identifier + '. '), /*#__PURE__*/_react.default.createElement("a", {
48
+ href: element.url,
49
+ "data-url": element.url,
50
+ onClick: onHrefClick
51
+ }, children)), isShowConfirmDialog && /*#__PURE__*/_react.default.createElement(_components.LinkVerifiedDialog, {
52
+ link: element.url,
53
+ onToggle: onToggle
54
+ }));
55
+ };
56
+ var _default = exports.default = renderDefinition;
@@ -28,6 +28,12 @@ Object.defineProperty(exports, "ColumnPlugin", {
28
28
  return _column.default;
29
29
  }
30
30
  });
31
+ Object.defineProperty(exports, "DefinitionPlugin", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _definition.default;
35
+ }
36
+ });
31
37
  Object.defineProperty(exports, "FormulaPlugin", {
32
38
  enumerable: true,
33
39
  get: function () {
@@ -58,6 +64,12 @@ Object.defineProperty(exports, "LinkPlugin", {
58
64
  return _link.default;
59
65
  }
60
66
  });
67
+ Object.defineProperty(exports, "LinkReferencePlugin", {
68
+ enumerable: true,
69
+ get: function () {
70
+ return _linkReference.default;
71
+ }
72
+ });
61
73
  Object.defineProperty(exports, "ListPlugin", {
62
74
  enumerable: true,
63
75
  get: function () {
@@ -110,7 +122,9 @@ var _formula = _interopRequireDefault(require("./formula"));
110
122
  var _column = _interopRequireDefault(require("./column"));
111
123
  var _markdown = _interopRequireDefault(require("./markdown"));
112
124
  var _html = _interopRequireDefault(require("./html"));
125
+ var _linkReference = _interopRequireDefault(require("./link-reference"));
126
+ var _definition = _interopRequireDefault(require("./definition"));
113
127
  const Plugins = [_paragraph.default, _textStyle.default, _header.default, _image.default, _checkList.default, _list.default, _codeBlock.default, _table.default, _blockquote.default, _link.default, _formula.default, _markdown.default, _html.default, _column.default,
114
128
  // put at the end
115
- _nodeId.default];
129
+ _nodeId.default, _linkReference.default, _definition.default];
116
130
  var _default = exports.default = Plugins;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _elementTypes = require("../../constants/element-types");
9
+ var _renderElem = _interopRequireDefault(require("./render-elem"));
10
+ const LinkReferencePlugin = {
11
+ type: _elementTypes.LINK_REFERENCE,
12
+ nodeType: 'element',
13
+ // editorMenus: [],
14
+ // editorPlugin: withLink,
15
+ renderElements: [_renderElem.default]
16
+ };
17
+ var _default = exports.default = LinkReferencePlugin;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _core = require("../../../core");
10
+ var _elementTypes = require("../../../constants/element-types");
11
+ require("./index.css");
12
+ /* eslint-disable react-hooks/rules-of-hooks */
13
+
14
+ const renderLinkReference = (_ref, editor) => {
15
+ let {
16
+ attributes,
17
+ children,
18
+ element,
19
+ option
20
+ } = _ref;
21
+ const {
22
+ render
23
+ } = option || {};
24
+ const onClick = (0, _react.useCallback)(() => {
25
+ const doms = (0, _core.getNodesByType)(editor.children, _elementTypes.DEFINITION);
26
+ const dom = doms.find(d => d.identifier === element.identifier);
27
+ if (!dom) return;
28
+ const selector = `[data-id="${dom.id}"]`;
29
+ const definitionDom = document.querySelector(selector);
30
+ if (!definitionDom) return;
31
+ definitionDom.scrollIntoView({
32
+ behavior: 'smooth',
33
+ block: 'center'
34
+ });
35
+ }, [element, editor]);
36
+ if (render && /*#__PURE__*/(0, _react.isValidElement)(render)) {
37
+ return /*#__PURE__*/(0, _react.cloneElement)(render, {
38
+ element,
39
+ onClick,
40
+ attributes,
41
+ editor
42
+ });
43
+ }
44
+ return /*#__PURE__*/_react.default.createElement("sup", Object.assign({
45
+ onClick: onClick,
46
+ className: "sf-virtual-link-reference",
47
+ "data-id": element.id
48
+ }, attributes, {
49
+ title: element.label
50
+ }), `[${element.identifier}]`);
51
+ };
52
+ var _default = exports.default = renderLinkReference;
@@ -10,10 +10,18 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _slateReact = require("slate-react");
11
11
  var ElementType = _interopRequireWildcard(require("../constants/element-types"));
12
12
  var _plugins = require("../plugins");
13
- const SlateElement = props => {
14
- const {
13
+ const SlateElement = _ref => {
14
+ let {
15
+ element,
16
+ options,
17
+ ...params
18
+ } = _ref;
19
+ const option = options ? options[element.type] : null;
20
+ const props = {
21
+ ...params,
22
+ option,
15
23
  element
16
- } = props;
24
+ };
17
25
  const editor = (0, _slateReact.useSlateStatic)();
18
26
  switch (element.type) {
19
27
  case ElementType.BLOCKQUOTE:
@@ -41,6 +49,16 @@ const SlateElement = props => {
41
49
  const [renderLink] = _plugins.LinkPlugin.renderElements;
42
50
  return renderLink(props, editor);
43
51
  }
52
+ case ElementType.LINK_REFERENCE:
53
+ {
54
+ const [renderLinkReferencePlugin] = _plugins.LinkReferencePlugin.renderElements;
55
+ return renderLinkReferencePlugin(props, editor);
56
+ }
57
+ case ElementType.DEFINITION:
58
+ {
59
+ const [renderDefinition] = _plugins.DefinitionPlugin.renderElements;
60
+ return renderDefinition(props, editor);
61
+ }
44
62
  case ElementType.CODE_BLOCK:
45
63
  {
46
64
  const [renderCodeBlock] = _plugins.CodeBlockPlugin.renderElements;
@@ -19,7 +19,8 @@ function MarkdownViewer(_ref) {
19
19
  isShowOutline,
20
20
  scrollRef,
21
21
  onLinkClick,
22
- beforeRenderCallback
22
+ beforeRenderCallback,
23
+ ...params
23
24
  } = _ref;
24
25
  const [richValue, setRichValue] = (0, _react.useState)([]);
25
26
  const [isLoading, setIsLoading] = (0, _react.useState)(true);
@@ -39,6 +40,7 @@ function MarkdownViewer(_ref) {
39
40
  // eslint-disable-next-line react-hooks/exhaustive-deps
40
41
  }, [isFetching, value]);
41
42
  const props = {
43
+ ...params,
42
44
  isSupportFormula: !!mathJaxSource,
43
45
  value: richValue,
44
46
  isShowOutline: isShowOutline,
@@ -46,6 +48,16 @@ function MarkdownViewer(_ref) {
46
48
  onLinkClick: onLinkClick
47
49
  };
48
50
  if (isFetching || isLoading || isLoadingMathJax) {
51
+ const {
52
+ options
53
+ } = params;
54
+ const loadingOption = (options === null || options === void 0 ? void 0 : options.loading) || {};
55
+ const {
56
+ render
57
+ } = loadingOption || {};
58
+ if (render && /*#__PURE__*/(0, _react.isValidElement)(render)) {
59
+ return /*#__PURE__*/(0, _react.cloneElement)(render);
60
+ }
49
61
  return /*#__PURE__*/_react.default.createElement(_loading.default, null);
50
62
  }
51
63
  return /*#__PURE__*/_react.default.createElement(_slateViewer.default, props);
@@ -12,7 +12,9 @@ const PARAGRAPH_TAGS = ['DIV', 'P'];
12
12
  const listRule = (element, parseChild) => {
13
13
  const {
14
14
  nodeName,
15
- childNodes
15
+ childNodes,
16
+ firstChild,
17
+ parentElement
16
18
  } = element;
17
19
  if (nodeName === 'UL') {
18
20
  return {
@@ -28,14 +30,14 @@ const listRule = (element, parseChild) => {
28
30
  children: parseChild(childNodes)
29
31
  };
30
32
  }
31
- if (nodeName === 'LI' && PARAGRAPH_TAGS.includes(element.firstChild.nodeName)) {
33
+ if (nodeName === 'LI' && firstChild && PARAGRAPH_TAGS.includes(firstChild.nodeName)) {
32
34
  return {
33
35
  id: _slugid.default.nice(),
34
36
  type: _constants.LIST_ITEM,
35
37
  children: parseChild(childNodes)
36
38
  };
37
39
  }
38
- if (nodeName === 'LI' && !PARAGRAPH_TAGS.includes(element.firstChild.nodeName)) {
40
+ if (nodeName === 'LI' && firstChild && !PARAGRAPH_TAGS.includes(firstChild.nodeName)) {
39
41
  return {
40
42
  id: _slugid.default.nice(),
41
43
  type: _constants.LIST_ITEM,
@@ -46,7 +48,7 @@ const listRule = (element, parseChild) => {
46
48
  }]
47
49
  };
48
50
  }
49
- if (PARAGRAPH_TAGS.includes(nodeName) && element.parentElement.nodeName === 'LI') {
51
+ if (PARAGRAPH_TAGS.includes(nodeName) && parentElement && parentElement.nodeName === 'LI') {
50
52
  if (Array.from(childNodes).length === 0) {
51
53
  return {
52
54
  id: _slugid.default.nice(),
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.transformUnorderedList = exports.transformTableRow = exports.transformTableCell = exports.transformTable = exports.transformParagraph = exports.transformOrderedList = exports.transformMath = exports.transformListItem = exports.transformListContent = exports.transformList = exports.transformHtml = exports.transformHr = exports.transformHeader = exports.transformCodeLine = exports.transformCodeBlock = exports.transformCheckListItem = exports.transformCheckList = exports.transformBlockquote = exports.transformBlockHtml = exports.formatMdToSlate = void 0;
7
+ exports.transformUnorderedList = exports.transformTableRow = exports.transformTableCell = exports.transformTable = exports.transformParagraph = exports.transformOrderedList = exports.transformMath = exports.transformListItem = exports.transformListContent = exports.transformList = exports.transformHtml = exports.transformHr = exports.transformHeader = exports.transformDefinition = exports.transformCodeLine = exports.transformCodeBlock = exports.transformCheckListItem = exports.transformCheckList = exports.transformBlockquote = exports.transformBlockHtml = exports.formatMdToSlate = void 0;
8
8
  var _slugid = _interopRequireDefault(require("slugid"));
9
9
  var _core = require("../../extension/core");
10
10
  var _elementTypes = require("../../extension/constants/element-types");
@@ -99,6 +99,21 @@ const applyMarkForInlineItem = function (result, item) {
99
99
  textNode = {};
100
100
  return;
101
101
  }
102
+ if (type === 'linkReference') {
103
+ var _item$children$;
104
+ textNode['type'] = _elementTypes.LINK_REFERENCE;
105
+ textNode['identifier'] = item.identifier;
106
+ textNode['referenceType'] = item.referenceType;
107
+ textNode['label'] = (_item$children$ = item.children[0]) === null || _item$children$ === void 0 ? void 0 : _item$children$.value;
108
+ textNode['children'] = [{
109
+ id: textNode.id,
110
+ text: ''
111
+ }];
112
+ result.push({
113
+ ...textNode
114
+ });
115
+ return;
116
+ }
102
117
  const attr_key = INLINE_KEY_MAP[type];
103
118
  if (!Array.isArray(children) || children.length === 0 || !attr_key) {
104
119
  textNode['text'] = value || '';
@@ -351,6 +366,20 @@ const transformCodeBlock = node => {
351
366
  };
352
367
  };
353
368
  exports.transformCodeBlock = transformCodeBlock;
369
+ const transformDefinition = node => {
370
+ return {
371
+ id: _slugid.default.nice(),
372
+ type: _elementTypes.DEFINITION,
373
+ identifier: node.identifier,
374
+ url: node === null || node === void 0 ? void 0 : node.url,
375
+ title: node === null || node === void 0 ? void 0 : node.title,
376
+ children: [{
377
+ id: _slugid.default.nice(),
378
+ text: node === null || node === void 0 ? void 0 : node.title
379
+ }]
380
+ };
381
+ };
382
+ exports.transformDefinition = transformDefinition;
354
383
  const transformHr = node => {
355
384
  return {
356
385
  id: _slugid.default.nice(),
@@ -430,7 +459,8 @@ const elementHandlers = {
430
459
  'code': transformCodeBlock,
431
460
  'thematicBreak': transformHr,
432
461
  'math': transformMath,
433
- 'html': transformBlockHtml
462
+ 'html': transformBlockHtml,
463
+ 'definition': transformDefinition
434
464
  };
435
465
  const formatMdToSlate = children => {
436
466
  const validChildren = children.filter(child => elementHandlers[child.type]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-editor",
3
- "version": "2.0.34",
3
+ "version": "2.0.36beta",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -87,6 +87,7 @@
87
87
  "dependencies": {
88
88
  "@seafile/react-image-lightbox": "4.0.2",
89
89
  "classnames": "2.3.2",
90
+ "copy-to-clipboard": "3.3.1",
90
91
  "deep-copy": "1.4.2",
91
92
  "deepmerge": "4.3.1",
92
93
  "is-url": "^1.2.4",
@@ -235,5 +235,8 @@
235
235
  "Horizontal_align": "Horizontal align",
236
236
  "Underline": "Underline",
237
237
  "Row_number": "Row number",
238
- "Column_number": "Column number"
238
+ "Column_number": "Column number",
239
+ "This_link_is_not_verified": "This link is not verified",
240
+ "This_link_is_not_verified_tip": "Before continuing, please ensure you trust this link. If you do not trust the URL, do not open the link to access the site.",
241
+ "Copy_link": "Copy link"
239
242
  }