@seafile/seafile-editor 1.0.2 → 1.0.4

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 (172) hide show
  1. package/dist/constants/event-types.js +2 -8
  2. package/dist/constants/hot-keys.js +1 -7
  3. package/dist/containers/article-info/index.js +24 -34
  4. package/dist/containers/custom/get-event-transfer.js +10 -16
  5. package/dist/containers/custom/set-event-transfer.js +10 -16
  6. package/dist/containers/hotkeys-helper/classify-hotkeys.js +20 -25
  7. package/dist/containers/hotkeys-helper/index.js +32 -35
  8. package/dist/containers/loading/index.js +11 -32
  9. package/dist/containers/outline/index.js +41 -51
  10. package/dist/containers/outline/outline-item.js +15 -21
  11. package/dist/editors/plain-markdown-editor/code-mirror.js +51 -75
  12. package/dist/editors/plain-markdown-editor/index.js +90 -107
  13. package/dist/editors/simple-slate-editor /index.js +43 -57
  14. package/dist/editors/simple-slate-editor /with-props-editor.js +4 -10
  15. package/dist/editors/slate-editor/editor-help/index.js +24 -37
  16. package/dist/editors/slate-editor/index.js +50 -64
  17. package/dist/editors/slate-editor/with-props-editor.js +4 -10
  18. package/dist/editors/slate-viewer/index.js +25 -31
  19. package/dist/extension/commons/element-popover/index.js +30 -55
  20. package/dist/extension/commons/index.js +3 -26
  21. package/dist/extension/commons/menu/index.js +4 -21
  22. package/dist/extension/commons/menu/menu-drop-down.js +50 -63
  23. package/dist/extension/commons/menu/menu-group.js +4 -11
  24. package/dist/extension/commons/menu/menu-item.js +25 -30
  25. package/dist/extension/commons/tooltip/index.js +14 -19
  26. package/dist/extension/constants/element-types.js +22 -28
  27. package/dist/extension/constants/index.js +15 -37
  28. package/dist/extension/constants/keyboard.js +3 -9
  29. package/dist/extension/constants/menus-config.js +118 -105
  30. package/dist/extension/core/index.js +3 -38
  31. package/dist/extension/core/queries/index.js +209 -304
  32. package/dist/extension/core/transforms/focus-editor.js +7 -13
  33. package/dist/extension/core/transforms/index.js +4 -49
  34. package/dist/extension/core/transforms/move-children.js +18 -25
  35. package/dist/extension/core/transforms/remove-node-children.js +8 -27
  36. package/dist/extension/core/transforms/replace-node-children.js +14 -19
  37. package/dist/extension/core/utils/index.js +36 -44
  38. package/dist/extension/editor.js +8 -15
  39. package/dist/extension/index.js +7 -48
  40. package/dist/extension/plugins/blockquote/helpers.js +38 -57
  41. package/dist/extension/plugins/blockquote/index.js +8 -15
  42. package/dist/extension/plugins/blockquote/menu/index.js +20 -25
  43. package/dist/extension/plugins/blockquote/plugin.js +35 -41
  44. package/dist/extension/plugins/blockquote/render-elem.js +9 -14
  45. package/dist/extension/plugins/check-list/helper.js +14 -24
  46. package/dist/extension/plugins/check-list/index.js +10 -17
  47. package/dist/extension/plugins/check-list/menu/index.js +21 -29
  48. package/dist/extension/plugins/check-list/plugin.js +24 -26
  49. package/dist/extension/plugins/check-list/render-elem.js +22 -28
  50. package/dist/extension/plugins/clear-format/helpers.js +25 -47
  51. package/dist/extension/plugins/clear-format/menu/index.js +22 -29
  52. package/dist/extension/plugins/code-block/helpers.js +74 -126
  53. package/dist/extension/plugins/code-block/index.js +10 -18
  54. package/dist/extension/plugins/code-block/menu/index.js +20 -27
  55. package/dist/extension/plugins/code-block/plugin.js +123 -144
  56. package/dist/extension/plugins/code-block/render-elem/constant.js +15 -11
  57. package/dist/extension/plugins/code-block/render-elem/index.js +30 -39
  58. package/dist/extension/plugins/code-block/render-elem/language-selector.js +19 -27
  59. package/dist/extension/plugins/formula/helper.js +39 -45
  60. package/dist/extension/plugins/formula/index.js +10 -17
  61. package/dist/extension/plugins/formula/menu/formula-modal.js +37 -52
  62. package/dist/extension/plugins/formula/menu/index.js +34 -50
  63. package/dist/extension/plugins/formula/plugin.js +12 -14
  64. package/dist/extension/plugins/formula/render-elem.js +27 -33
  65. package/dist/extension/plugins/header/helper.js +35 -48
  66. package/dist/extension/plugins/header/index.js +10 -17
  67. package/dist/extension/plugins/header/menu/index.js +52 -66
  68. package/dist/extension/plugins/header/plugin.js +72 -83
  69. package/dist/extension/plugins/header/render-elem.js +15 -20
  70. package/dist/extension/plugins/image/helper.js +28 -37
  71. package/dist/extension/plugins/image/index.js +10 -17
  72. package/dist/extension/plugins/image/menu/image-menu-dialog.js +31 -42
  73. package/dist/extension/plugins/image/menu/image-menu-popover.js +35 -67
  74. package/dist/extension/plugins/image/menu/index.js +24 -34
  75. package/dist/extension/plugins/image/plugin.js +18 -18
  76. package/dist/extension/plugins/image/render-element/image-previewer.js +32 -42
  77. package/dist/extension/plugins/image/render-element/index.js +58 -74
  78. package/dist/extension/plugins/index.js +18 -94
  79. package/dist/extension/plugins/link/helper.js +102 -139
  80. package/dist/extension/plugins/link/index.js +10 -17
  81. package/dist/extension/plugins/link/menu/index.js +46 -62
  82. package/dist/extension/plugins/link/menu/link-modal.js +67 -87
  83. package/dist/extension/plugins/link/plugin.js +52 -56
  84. package/dist/extension/plugins/link/render-elem/index.js +39 -54
  85. package/dist/extension/plugins/link/render-elem/link-popover.js +38 -42
  86. package/dist/extension/plugins/list/constant.js +2 -8
  87. package/dist/extension/plugins/list/helpers.js +40 -54
  88. package/dist/extension/plugins/list/index.js +10 -17
  89. package/dist/extension/plugins/list/menu/index.js +23 -33
  90. package/dist/extension/plugins/list/plugin/index.js +28 -31
  91. package/dist/extension/plugins/list/plugin/insert-break-list.js +9 -15
  92. package/dist/extension/plugins/list/plugin/insert-fragment-list.js +86 -109
  93. package/dist/extension/plugins/list/plugin/normalize-list.js +31 -42
  94. package/dist/extension/plugins/list/plugin/on-tab-handle.js +35 -34
  95. package/dist/extension/plugins/list/queries/index.js +22 -30
  96. package/dist/extension/plugins/list/render-elem/index.js +27 -27
  97. package/dist/extension/plugins/list/transforms/index.js +11 -75
  98. package/dist/extension/plugins/list/transforms/insert-list-item.js +38 -47
  99. package/dist/extension/plugins/list/transforms/move-list-item-down.js +22 -32
  100. package/dist/extension/plugins/list/transforms/move-list-item-up.js +45 -56
  101. package/dist/extension/plugins/list/transforms/move-list-items-to-list.js +25 -31
  102. package/dist/extension/plugins/list/transforms/move-list-items.js +37 -44
  103. package/dist/extension/plugins/list/transforms/normalize-list-item.js +57 -81
  104. package/dist/extension/plugins/list/transforms/normalize-nested-list.js +17 -26
  105. package/dist/extension/plugins/list/transforms/remove-first-list-item.js +12 -19
  106. package/dist/extension/plugins/list/transforms/transforms-to-list.js +60 -84
  107. package/dist/extension/plugins/list/transforms/unwrap-list.js +20 -29
  108. package/dist/extension/plugins/node-id/constants.js +9 -15
  109. package/dist/extension/plugins/node-id/helpers.js +33 -35
  110. package/dist/extension/plugins/node-id/index.js +4 -11
  111. package/dist/extension/plugins/node-id/with-node-id.js +18 -26
  112. package/dist/extension/plugins/paragraph/helper.js +7 -13
  113. package/dist/extension/plugins/paragraph/index.js +8 -15
  114. package/dist/extension/plugins/paragraph/plugin.js +25 -27
  115. package/dist/extension/plugins/paragraph/render-elem.js +9 -14
  116. package/dist/extension/plugins/table/constant.js +3 -9
  117. package/dist/extension/plugins/table/helper.js +133 -154
  118. package/dist/extension/plugins/table/index.js +11 -19
  119. package/dist/extension/plugins/table/menu/index.js +26 -38
  120. package/dist/extension/plugins/table/menu/table-operator.js +62 -77
  121. package/dist/extension/plugins/table/menu/table-size-selector.js +41 -62
  122. package/dist/extension/plugins/table/model.js +39 -41
  123. package/dist/extension/plugins/table/plugin.js +95 -102
  124. package/dist/extension/plugins/table/render-elem/context-menu.js +42 -65
  125. package/dist/extension/plugins/table/render-elem/index.js +85 -93
  126. package/dist/extension/plugins/table/table-operations.js +101 -118
  127. package/dist/extension/plugins/text-style/helpers.js +18 -28
  128. package/dist/extension/plugins/text-style/index.js +8 -15
  129. package/dist/extension/plugins/text-style/menu/index.js +19 -25
  130. package/dist/extension/plugins/text-style/plugin.js +16 -21
  131. package/dist/extension/plugins/text-style/render-elem.js +28 -33
  132. package/dist/extension/render/render-element.js +26 -47
  133. package/dist/extension/render/render-leaf.js +9 -18
  134. package/dist/extension/toolbar/header-toolbar/index.js +66 -84
  135. package/dist/extension/toolbar/index.js +2 -13
  136. package/dist/extension/toolbar/user-help/shortcut-dialog.js +108 -131
  137. package/dist/hooks/use-mathjax.js +9 -20
  138. package/dist/hooks/use-scroll-context.js +7 -12
  139. package/dist/hooks/use-selection-update.js +9 -21
  140. package/dist/index.js +9 -80
  141. package/dist/pages/markdown-editor.js +30 -43
  142. package/dist/pages/markdown-view.js +25 -37
  143. package/dist/pages/rich-markdown-editor.js +54 -67
  144. package/dist/pages/simple-editor.js +29 -42
  145. package/dist/slate-convert/html-to-slate/constants.js +26 -32
  146. package/dist/slate-convert/html-to-slate/helper.js +1 -7
  147. package/dist/slate-convert/html-to-slate/index.js +44 -51
  148. package/dist/slate-convert/html-to-slate/rules/blockquote.js +10 -15
  149. package/dist/slate-convert/html-to-slate/rules/check-list.js +10 -15
  150. package/dist/slate-convert/html-to-slate/rules/code-block.js +40 -51
  151. package/dist/slate-convert/html-to-slate/rules/header.js +11 -16
  152. package/dist/slate-convert/html-to-slate/rules/image.js +10 -15
  153. package/dist/slate-convert/html-to-slate/rules/index.js +11 -18
  154. package/dist/slate-convert/html-to-slate/rules/link.js +11 -16
  155. package/dist/slate-convert/html-to-slate/rules/list.js +21 -26
  156. package/dist/slate-convert/html-to-slate/rules/paragraph.js +10 -15
  157. package/dist/slate-convert/html-to-slate/rules/table.js +14 -19
  158. package/dist/slate-convert/html-to-slate/rules/text.js +14 -19
  159. package/dist/slate-convert/index.js +8 -34
  160. package/dist/slate-convert/md-to-html/index.js +26 -31
  161. package/dist/slate-convert/md-to-html/sanitize-schema.js +5 -12
  162. package/dist/slate-convert/md-to-slate/index.js +17 -23
  163. package/dist/slate-convert/md-to-slate/transform.js +183 -175
  164. package/dist/slate-convert/slate-to-md/index.js +14 -20
  165. package/dist/slate-convert/slate-to-md/transform.js +76 -87
  166. package/dist/utils/common.js +8 -15
  167. package/dist/utils/deserialize-html.js +118 -166
  168. package/dist/utils/dom-utils.js +18 -22
  169. package/dist/utils/event-bus.js +27 -47
  170. package/dist/utils/event-handler.js +29 -38
  171. package/dist/utils/object-utils.js +39 -62
  172. package/package.json +5 -4
@@ -1,64 +1,48 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _slateReact = require("slate-react");
13
- var _reactI18next = require("react-i18next");
14
- var _classnames = _interopRequireDefault(require("classnames"));
15
- var _helper = require("../helper");
16
- var _imagePreviewer = _interopRequireDefault(require("./image-previewer"));
17
- require("./style.css");
18
1
  /* eslint-disable react-hooks/rules-of-hooks */
19
-
20
- var renderImage = function renderImage(_ref, editor) {
2
+ import React, { useCallback, useRef, useState } from 'react';
3
+ import { useSelected } from 'slate-react';
4
+ import { useTranslation } from 'react-i18next';
5
+ import classNames from 'classnames';
6
+ import { updateImage } from '../helper';
7
+ import ImagePreviewer from './image-previewer';
8
+ import './style.css';
9
+ const renderImage = (_ref, editor) => {
21
10
  var _element$data, _element$data2, _element$data3;
22
- var attributes = _ref.attributes,
23
- children = _ref.children,
24
- element = _ref.element;
25
- var _useState = (0, _react.useState)(false),
26
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
27
- isResizing = _useState2[0],
28
- setIsResizing = _useState2[1];
29
- var _useState3 = (0, _react.useState)(false),
30
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
31
- isFullScreening = _useState4[0],
32
- setIsFullScreening = _useState4[1];
33
- var _useState5 = (0, _react.useState)({
34
- height: 0,
35
- width: 0
36
- }),
37
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
38
- imgSizeInfo = _useState6[0],
39
- setImgSizeInfo = _useState6[1];
40
- var _useTranslation = (0, _reactI18next.useTranslation)(),
41
- t = _useTranslation.t;
42
- var imgRef = (0, _react.useRef)(null);
43
- var resizerRef = (0, _react.useRef)();
44
- var isSelected = (0, _slateReact.useSelected)();
45
- var handleStartResize = function handleStartResize(event) {
11
+ let {
12
+ attributes,
13
+ children,
14
+ element
15
+ } = _ref;
16
+ const [isResizing, setIsResizing] = useState(false);
17
+ const [isFullScreening, setIsFullScreening] = useState(false);
18
+ const [imgSizeInfo, setImgSizeInfo] = useState({
19
+ height: 0,
20
+ width: 0
21
+ });
22
+ const {
23
+ t
24
+ } = useTranslation();
25
+ const imgRef = useRef(null);
26
+ const resizerRef = useRef();
27
+ const isSelected = useSelected();
28
+ const handleStartResize = event => {
46
29
  event.stopPropagation();
47
- var _imgRef$current = imgRef.current,
48
- height = _imgRef$current.clientHeight,
49
- width = _imgRef$current.clientWidth;
30
+ const {
31
+ clientHeight: height,
32
+ clientWidth: width
33
+ } = imgRef.current;
50
34
  setIsResizing(true);
51
35
  setImgSizeInfo({
52
- width: width,
53
- height: height
36
+ width,
37
+ height
54
38
  });
55
- var handleMouseMove = function handleMouseMove(event) {
39
+ const handleMouseMove = event => {
56
40
  event.preventDefault();
57
41
  event.stopPropagation();
58
- var img = imgRef.current;
59
- var resizer = resizerRef.current;
60
- var changeX = event.clientX - resizer.getBoundingClientRect().left - 5;
61
- var imageWidth = img.width + changeX;
42
+ const img = imgRef.current;
43
+ const resizer = resizerRef.current;
44
+ const changeX = event.clientX - resizer.getBoundingClientRect().left - 5;
45
+ const imageWidth = img.width + changeX;
62
46
  if (imageWidth < 20) return;
63
47
  img.width = imageWidth;
64
48
  setImgSizeInfo({
@@ -66,57 +50,57 @@ var renderImage = function renderImage(_ref, editor) {
66
50
  width: img.clientWidth
67
51
  });
68
52
  };
69
- var handleMouseUp = function handleMouseUp() {
53
+ const handleMouseUp = () => {
70
54
  document.removeEventListener('mousemove', handleMouseMove);
71
55
  if (!isResizing) {
72
56
  setIsResizing(false);
73
- var _imgRef$current2 = imgRef.current,
74
- _height = _imgRef$current2.clientHeight,
75
- _width = _imgRef$current2.clientWidth;
76
- (0, _helper.updateImage)(editor, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, element.data), {}, {
77
- width: _width,
78
- height: _height
79
- }));
57
+ const {
58
+ clientHeight: height,
59
+ clientWidth: width
60
+ } = imgRef.current;
61
+ updateImage(editor, {
62
+ ...element.data,
63
+ width,
64
+ height
65
+ });
80
66
  }
81
67
  document.removeEventListener('mouseup', handleMouseUp);
82
68
  };
83
69
  document.addEventListener('mousemove', handleMouseMove);
84
70
  document.addEventListener('mouseup', handleMouseUp);
85
71
  };
86
- var toggleImagePreviewer = function toggleImagePreviewer(event) {
72
+ const toggleImagePreviewer = event => {
87
73
  event.preventDefault();
88
74
  setIsFullScreening(false);
89
75
  };
90
- return /*#__PURE__*/_react.default.createElement("span", Object.assign({}, attributes, {
76
+ return /*#__PURE__*/React.createElement("span", Object.assign({}, attributes, {
91
77
  contentEditable: false,
92
78
  className: "sf-image-wrapper"
93
- }), /*#__PURE__*/_react.default.createElement("img", {
79
+ }), /*#__PURE__*/React.createElement("img", {
94
80
  ref: imgRef,
95
- className: (0, _classnames.default)('sf-image', {
81
+ className: classNames('sf-image', {
96
82
  'selected': isSelected
97
83
  }),
98
84
  alt: element === null || element === void 0 ? void 0 : (_element$data = element.data) === null || _element$data === void 0 ? void 0 : _element$data.alt,
99
85
  src: element === null || element === void 0 ? void 0 : (_element$data2 = element.data) === null || _element$data2 === void 0 ? void 0 : _element$data2.src,
100
86
  width: element === null || element === void 0 ? void 0 : element.data.width,
101
87
  height: element === null || element === void 0 ? void 0 : element.data.height
102
- }), isSelected && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
88
+ }), isSelected && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
103
89
  ref: resizerRef,
104
90
  className: "resizer",
105
91
  onMouseDown: handleStartResize
106
- }), /*#__PURE__*/_react.default.createElement("span", {
92
+ }), /*#__PURE__*/React.createElement("span", {
107
93
  className: "full-screen",
108
94
  contentEditable: false,
109
- onClick: function onClick() {
110
- return setIsFullScreening(true);
111
- }
112
- }, /*#__PURE__*/_react.default.createElement("i", {
95
+ onClick: () => setIsFullScreening(true)
96
+ }, /*#__PURE__*/React.createElement("i", {
113
97
  className: 'iconfont icon-fullscreen',
114
98
  title: t('Full_screen')
115
- }))), isResizing && /*#__PURE__*/_react.default.createElement("span", {
99
+ }))), isResizing && /*#__PURE__*/React.createElement("span", {
116
100
  className: "image-size-info-tooltip"
117
- }, "".concat(t('Width'), ":").concat(imgSizeInfo.width, " ").concat(t('Height'), ":").concat(imgSizeInfo.height)), isFullScreening && /*#__PURE__*/_react.default.createElement(_imagePreviewer.default, {
101
+ }, "".concat(t('Width'), ":").concat(imgSizeInfo.width, " ").concat(t('Height'), ":").concat(imgSizeInfo.height)), isFullScreening && /*#__PURE__*/React.createElement(ImagePreviewer, {
118
102
  imgUrl: element === null || element === void 0 ? void 0 : (_element$data3 = element.data) === null || _element$data3 === void 0 ? void 0 : _element$data3.src,
119
103
  toggleImagePreviewer: toggleImagePreviewer
120
104
  }), children);
121
105
  };
122
- var _default = exports.default = renderImage;
106
+ export default renderImage;
@@ -1,95 +1,19 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "BlockquotePlugin", {
8
- enumerable: true,
9
- get: function get() {
10
- return _blockquote.default;
11
- }
12
- });
13
- Object.defineProperty(exports, "CheckListPlugin", {
14
- enumerable: true,
15
- get: function get() {
16
- return _checkList.default;
17
- }
18
- });
19
- Object.defineProperty(exports, "CodeBlockPlugin", {
20
- enumerable: true,
21
- get: function get() {
22
- return _codeBlock.default;
23
- }
24
- });
25
- Object.defineProperty(exports, "FormulaPlugin", {
26
- enumerable: true,
27
- get: function get() {
28
- return _formula.default;
29
- }
30
- });
31
- Object.defineProperty(exports, "HeaderPlugin", {
32
- enumerable: true,
33
- get: function get() {
34
- return _header.default;
35
- }
36
- });
37
- Object.defineProperty(exports, "ImagePlugin", {
38
- enumerable: true,
39
- get: function get() {
40
- return _image.default;
41
- }
42
- });
43
- Object.defineProperty(exports, "LinkPlugin", {
44
- enumerable: true,
45
- get: function get() {
46
- return _link.default;
47
- }
48
- });
49
- Object.defineProperty(exports, "ListPlugin", {
50
- enumerable: true,
51
- get: function get() {
52
- return _list.default;
53
- }
54
- });
55
- Object.defineProperty(exports, "NodeIdPlugin", {
56
- enumerable: true,
57
- get: function get() {
58
- return _nodeId.default;
59
- }
60
- });
61
- Object.defineProperty(exports, "ParagraphPlugin", {
62
- enumerable: true,
63
- get: function get() {
64
- return _paragraph.default;
65
- }
66
- });
67
- Object.defineProperty(exports, "TablePlugin", {
68
- enumerable: true,
69
- get: function get() {
70
- return _table.default;
71
- }
72
- });
73
- Object.defineProperty(exports, "TextPlugin", {
74
- enumerable: true,
75
- get: function get() {
76
- return _textStyle.default;
77
- }
78
- });
79
- exports.default = void 0;
80
- var _blockquote = _interopRequireDefault(require("./blockquote"));
81
- var _paragraph = _interopRequireDefault(require("./paragraph"));
82
- var _textStyle = _interopRequireDefault(require("./text-style"));
83
- var _header = _interopRequireDefault(require("./header"));
84
- var _image = _interopRequireDefault(require("./image"));
85
- var _nodeId = _interopRequireDefault(require("./node-id"));
86
- var _link = _interopRequireDefault(require("./link"));
87
- var _codeBlock = _interopRequireDefault(require("./code-block"));
88
- var _checkList = _interopRequireDefault(require("./check-list"));
89
- var _list = _interopRequireDefault(require("./list"));
90
- var _table = _interopRequireDefault(require("./table"));
91
- var _formula = _interopRequireDefault(require("./formula"));
92
- var Plugins = [_blockquote.default, _paragraph.default, _textStyle.default, _header.default, _image.default, _link.default, _codeBlock.default, _checkList.default, _list.default, _table.default, _formula.default,
1
+ import BlockquotePlugin from './blockquote';
2
+ import ParagraphPlugin from './paragraph';
3
+ import TextPlugin from './text-style';
4
+ import HeaderPlugin from './header';
5
+ import ImagePlugin from './image';
6
+ import NodeIdPlugin from './node-id';
7
+ import LinkPlugin from './link';
8
+ import CodeBlockPlugin from './code-block';
9
+ import CheckListPlugin from './check-list';
10
+ import ListPlugin from './list';
11
+ import TablePlugin from './table';
12
+ import FormulaPlugin from './formula';
13
+ const Plugins = [BlockquotePlugin, ParagraphPlugin, TextPlugin, HeaderPlugin, ImagePlugin, LinkPlugin, CodeBlockPlugin, CheckListPlugin, ListPlugin, TablePlugin, FormulaPlugin,
93
14
  // put at the end
94
- _nodeId.default];
95
- var _default = exports.default = Plugins;
15
+ NodeIdPlugin];
16
+ export default Plugins;
17
+ export { BlockquotePlugin, ParagraphPlugin, TextPlugin, HeaderPlugin, ImagePlugin, LinkPlugin, CodeBlockPlugin, CheckListPlugin, ListPlugin, TablePlugin, FormulaPlugin,
18
+ // put at the end
19
+ NodeIdPlugin };
@@ -1,57 +1,45 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.upsertLinkText = exports.updateLink = exports.unWrapLinkNode = exports.isMenuDisabled = exports.isLinkType = exports.insertLink = exports.getLinkInfo = exports.generateLinkNode = void 0;
8
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
- var _slate = require("slate");
13
- var _slugid = _interopRequireDefault(require("slugid"));
14
- var _queries = require("../../core/queries");
15
- var _focusEditor = require("../../core/transforms/focus-editor");
16
- var _constants = require("../../constants");
17
- var _utils = require("../../core/utils");
18
- var _replaceNodeChildren = require("../../core/transforms/replace-node-children");
19
- var _ref3;
20
- var isMenuDisabled = exports.isMenuDisabled = function isMenuDisabled(editor) {
21
- var readonly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1
+ import { Editor, Path, Range, Transforms } from 'slate';
2
+ import slugid from 'slugid';
3
+ import { findPath, getAboveNode, getEditorString, getNodeType, getSelectedElems } from '../../core/queries';
4
+ import { focusEditor } from '../../core/transforms/focus-editor';
5
+ import { ELementTypes, INSERT_POSITION } from '../../constants';
6
+ import { generateDefaultText, generateEmptyElement } from '../../core/utils';
7
+ import { replaceNodeChildren } from '../../core/transforms/replace-node-children';
8
+ export const isMenuDisabled = function (editor) {
9
+ let readonly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
22
10
  if (readonly) return true;
23
- var selection = editor.selection;
11
+ const {
12
+ selection
13
+ } = editor;
24
14
  if (!selection) return false;
25
- var selectedElems = (0, _queries.getSelectedElems)(editor);
15
+ const selectedElems = getSelectedElems(editor);
26
16
  // Check if the selected element is illegal
27
- var isSelectedIllegalElement = selectedElems.some(function (elem) {
28
- var type = elem.type;
17
+ const isSelectedIllegalElement = selectedElems.some(elem => {
18
+ const {
19
+ type
20
+ } = elem;
29
21
  if (editor.isVoid(elem)) return true;
30
- if ([_constants.ELementTypes.CODE_BLOCK, _constants.ELementTypes.CODE_LINE].includes(type)) return true;
22
+ if ([ELementTypes.CODE_BLOCK, ELementTypes.CODE_LINE].includes(type)) return true;
31
23
  return false;
32
24
  });
33
25
  if (isSelectedIllegalElement) return true;
34
26
  return false;
35
27
  };
36
- var isLinkType = exports.isLinkType = function isLinkType(editor) {
37
- var _Editor$nodes = _slate.Editor.nodes(editor, {
38
- match: function match(n) {
39
- return (0, _queries.getNodeType)(n) === _constants.ELementTypes.LINK;
40
- },
41
- universal: true
42
- }),
43
- _Editor$nodes2 = (0, _slicedToArray2.default)(_Editor$nodes, 1),
44
- match = _Editor$nodes2[0];
28
+ export const isLinkType = editor => {
29
+ const [match] = Editor.nodes(editor, {
30
+ match: n => getNodeType(n) === ELementTypes.LINK,
31
+ universal: true
32
+ });
45
33
  return !!match;
46
34
  };
47
- var generateLinkNode = exports.generateLinkNode = function generateLinkNode(url, title) {
48
- var linkNode = {
49
- type: _constants.ELementTypes.LINK,
35
+ export const generateLinkNode = (url, title) => {
36
+ const linkNode = {
37
+ type: ELementTypes.LINK,
50
38
  url: url,
51
39
  title: title,
52
- id: _slugid.default.nice(),
40
+ id: slugid.nice(),
53
41
  children: [{
54
- id: _slugid.default.nice(),
42
+ id: slugid.nice(),
55
43
  text: title || ''
56
44
  }]
57
45
  };
@@ -66,103 +54,101 @@ var generateLinkNode = exports.generateLinkNode = function generateLinkNode(url,
66
54
  * @param {InsertPosition} props.insertPosition
67
55
  * @param {Object | undefined} props.slateNode
68
56
  */
69
- var insertLink = exports.insertLink = function insertLink(props) {
70
- var editor = props.editor,
71
- url = props.url,
72
- title = props.title,
73
- _props$insertPosition = props.insertPosition,
74
- insertPosition = _props$insertPosition === void 0 ? _constants.INSERT_POSITION.CURRENT : _props$insertPosition,
75
- slateNode = props.slateNode;
76
- var selection = editor.selection;
77
- if (insertPosition === _constants.INSERT_POSITION.CURRENT && isMenuDisabled(editor)) return;
57
+ export const insertLink = props => {
58
+ const {
59
+ editor,
60
+ url,
61
+ title,
62
+ insertPosition = INSERT_POSITION.CURRENT,
63
+ slateNode
64
+ } = props;
65
+ const {
66
+ selection
67
+ } = editor;
68
+ if (insertPosition === INSERT_POSITION.CURRENT && isMenuDisabled(editor)) return;
78
69
  // We had validated in modal,here we do it again for safety
79
70
  if (!title || !url) return;
80
71
  if (!selection) return;
81
- var linkNode = generateLinkNode(url, title);
82
- if (insertPosition === _constants.INSERT_POSITION.AFTER) {
83
- var path = _slate.Editor.path(editor, selection);
84
- if (slateNode && (slateNode === null || slateNode === void 0 ? void 0 : slateNode.type) === _constants.ELementTypes.LIST_ITEM) {
85
- path = (0, _queries.findPath)(editor, slateNode, []);
86
- var nextPath = _slate.Path.next(path);
87
- _slate.Editor.insertNodes(editor, linkNode, {
72
+ const linkNode = generateLinkNode(url, title);
73
+ if (insertPosition === INSERT_POSITION.AFTER) {
74
+ let path = Editor.path(editor, selection);
75
+ if (slateNode && (slateNode === null || slateNode === void 0 ? void 0 : slateNode.type) === ELementTypes.LIST_ITEM) {
76
+ path = findPath(editor, slateNode, []);
77
+ const nextPath = Path.next(path);
78
+ Editor.insertNodes(editor, linkNode, {
88
79
  at: nextPath
89
80
  });
90
81
  return;
91
82
  }
92
- var linkNodeWrapper = (0, _utils.generateEmptyElement)(_constants.ELementTypes.PARAGRAPH);
83
+ const linkNodeWrapper = generateEmptyElement(ELementTypes.PARAGRAPH);
93
84
  // LinkNode should be wrapped by p and within text nodes in order to be editable
94
- linkNodeWrapper.children.push(linkNode, (0, _utils.generateDefaultText)());
95
- _slate.Transforms.insertNodes(editor, linkNodeWrapper, {
85
+ linkNodeWrapper.children.push(linkNode, generateDefaultText());
86
+ Transforms.insertNodes(editor, linkNodeWrapper, {
96
87
  at: [path[0] + 1]
97
88
  });
98
- (0, _focusEditor.focusEditor)(editor);
89
+ focusEditor(editor);
99
90
  return;
100
91
  }
101
- var isCollapsed = _slate.Range.isCollapsed(selection);
92
+ const isCollapsed = Range.isCollapsed(selection);
102
93
  if (isCollapsed) {
103
94
  // If selection is collapsed, we insert a space and then insert link node that help operation easier
104
95
  editor.insertText(' ');
105
- _slate.Editor.insertFragment(editor, [linkNode]);
96
+ Editor.insertFragment(editor, [linkNode]);
106
97
  // Using insertText directly causes the added Spaces to be added to the linked text, as in the issue above, so replaced by insertFragment
107
- _slate.Editor.insertFragment(editor, [{
108
- id: _slugid.default.nice(),
98
+ Editor.insertFragment(editor, [{
99
+ id: slugid.nice(),
109
100
  text: ' '
110
101
  }]);
111
- (0, _focusEditor.focusEditor)(editor);
102
+ focusEditor(editor);
112
103
  return;
113
104
  } else {
114
- var selectedText = _slate.Editor.string(editor, selection); // Selected text
105
+ const selectedText = Editor.string(editor, selection); // Selected text
115
106
  if (selectedText !== title) {
116
107
  // Replace the selected text with the link node if the selected text is different from the entered text
117
108
  editor.deleteFragment();
118
- _slate.Transforms.insertNodes(editor, linkNode);
109
+ Transforms.insertNodes(editor, linkNode);
119
110
  } else {
120
111
  // Wrap the selected text with the link node if the selected text is the same as the entered text
121
- _slate.Transforms.wrapNodes(editor, linkNode, {
112
+ Transforms.wrapNodes(editor, linkNode, {
122
113
  split: true,
123
114
  at: selection
124
115
  });
125
- _slate.Transforms.collapse(editor, {
116
+ Transforms.collapse(editor, {
126
117
  edge: 'end'
127
118
  });
128
119
  }
129
120
  }
130
- (0, _focusEditor.focusEditor)(editor);
121
+ focusEditor(editor);
131
122
  };
132
- var getLinkInfo = exports.getLinkInfo = function getLinkInfo(editor) {
133
- var isLinkNode = isLinkType(editor);
123
+ export const getLinkInfo = editor => {
124
+ const isLinkNode = isLinkType(editor);
134
125
  if (!isLinkNode) return null;
135
- var _Editor$nodes3 = _slate.Editor.nodes(editor, {
136
- match: function match(n) {
137
- return (0, _queries.getNodeType)(n) === _constants.ELementTypes.LINK;
138
- },
139
- universal: true
140
- }),
141
- _Editor$nodes4 = (0, _slicedToArray2.default)(_Editor$nodes3, 1),
142
- match = _Editor$nodes4[0];
126
+ const [match] = Editor.nodes(editor, {
127
+ match: n => getNodeType(n) === ELementTypes.LINK,
128
+ universal: true
129
+ });
143
130
  if (!match) return null;
144
- var _match = (0, _slicedToArray2.default)(match, 2),
145
- node = _match[0],
146
- path = _match[1];
147
- var showedText = (0, _queries.getEditorString)(editor, path);
131
+ const [node, path] = match;
132
+ const showedText = getEditorString(editor, path);
148
133
  return {
149
134
  linkUrl: node.url,
150
135
  linkTitle: showedText || node.title,
151
136
  path: path
152
137
  };
153
138
  };
154
- var updateLink = exports.updateLink = function updateLink(editor, newUrl, newText) {
155
- var linkAbove = (0, _queries.getAboveNode)(editor, {
139
+ export const updateLink = (editor, newUrl, newText) => {
140
+ const linkAbove = getAboveNode(editor, {
156
141
  match: {
157
- type: _constants.ELementTypes.LINK
142
+ type: ELementTypes.LINK
158
143
  }
159
144
  });
160
145
  if (!linkAbove) return;
161
- var _ref = linkAbove[0] || {},
162
- oldUrl = _ref.href,
163
- oldText = _ref.title;
146
+ const {
147
+ href: oldUrl,
148
+ title: oldText
149
+ } = linkAbove[0] || {};
164
150
  if (oldUrl !== newUrl || oldText !== newText) {
165
- _slate.Transforms.setNodes(editor, {
151
+ Transforms.setNodes(editor, {
166
152
  url: newUrl,
167
153
  title: newText
168
154
  }, {
@@ -173,63 +159,40 @@ var updateLink = exports.updateLink = function updateLink(editor, newUrl, newTex
173
159
  text: newText
174
160
  });
175
161
  };
176
- var upsertLinkText = exports.upsertLinkText = function upsertLinkText(editor, _ref2) {
177
- var text = _ref2.text;
178
- var newLink = (0, _queries.getAboveNode)(editor, {
162
+ export const upsertLinkText = (editor, _ref) => {
163
+ let {
164
+ text
165
+ } = _ref;
166
+ const newLink = getAboveNode(editor, {
179
167
  match: {
180
- type: _constants.ELementTypes.LINK
168
+ type: ELementTypes.LINK
181
169
  }
182
170
  });
183
171
  if (!newLink) return;
184
- var _newLink = (0, _slicedToArray2.default)(newLink, 2),
185
- newLInkNode = _newLink[0],
186
- newLinkPath = _newLink[1];
187
- if (text && text.length && text !== (0, _queries.getEditorString)(editor, newLinkPath)) {
188
- var firstText = newLInkNode.children[0];
189
- (0, _replaceNodeChildren.replaceNodeChildren)(editor, {
172
+ const [newLInkNode, newLinkPath] = newLink;
173
+ if (text && text.length && text !== getEditorString(editor, newLinkPath)) {
174
+ const firstText = newLInkNode.children[0];
175
+ replaceNodeChildren(editor, {
190
176
  at: newLinkPath,
191
- nodes: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, firstText), {}, {
192
- text: text
193
- }),
177
+ nodes: {
178
+ ...firstText,
179
+ text
180
+ },
194
181
  insertOptions: {
195
182
  select: true
196
183
  }
197
184
  });
198
185
  }
199
186
  };
200
- var unWrapLinkNode = exports.unWrapLinkNode = function unWrapLinkNode(_x) {
201
- return (_ref3 = _ref3 || (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(editor) {
202
- var _Editor$nodes5, _Editor$nodes6, linkNode;
203
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
204
- while (1) switch (_context.prev = _context.next) {
205
- case 0:
206
- if (!(editor.selection == null)) {
207
- _context.next = 2;
208
- break;
209
- }
210
- return _context.abrupt("return");
211
- case 2:
212
- _Editor$nodes5 = _slate.Editor.nodes(editor, {
213
- match: function match(n) {
214
- return (0, _queries.getNodeType)(n) === _constants.ELementTypes.LINK;
215
- },
216
- universal: true
217
- }), _Editor$nodes6 = (0, _slicedToArray2.default)(_Editor$nodes5, 1), linkNode = _Editor$nodes6[0]; // Check selection is link node
218
- if (!(!linkNode || !linkNode[0])) {
219
- _context.next = 5;
220
- break;
221
- }
222
- return _context.abrupt("return");
223
- case 5:
224
- _slate.Transforms.unwrapNodes(editor, {
225
- match: function match(n) {
226
- return (0, _queries.getNodeType)(n) === _constants.ELementTypes.LINK;
227
- }
228
- });
229
- case 6:
230
- case "end":
231
- return _context.stop();
232
- }
233
- }, _callee);
234
- }))).apply(this, arguments);
187
+ export const unWrapLinkNode = async editor => {
188
+ if (editor.selection == null) return;
189
+ const [linkNode] = Editor.nodes(editor, {
190
+ match: n => getNodeType(n) === ELementTypes.LINK,
191
+ universal: true
192
+ });
193
+ // Check selection is link node
194
+ if (!linkNode || !linkNode[0]) return;
195
+ Transforms.unwrapNodes(editor, {
196
+ match: n => getNodeType(n) === ELementTypes.LINK
197
+ });
235
198
  };
@@ -1,19 +1,12 @@
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 _menu = _interopRequireDefault(require("./menu"));
10
- var _plugin = _interopRequireDefault(require("./plugin"));
11
- var _renderElem = _interopRequireDefault(require("./render-elem"));
12
- var LinkPlugin = {
13
- type: _elementTypes.LINK,
1
+ import { LINK } from '../../constants/element-types';
2
+ import LinkMenu from './menu';
3
+ import withLink from './plugin';
4
+ import renderLink from './render-elem';
5
+ const LinkPlugin = {
6
+ type: LINK,
14
7
  nodeType: 'element',
15
- editorMenus: [_menu.default],
16
- editorPlugin: _plugin.default,
17
- renderElements: [_renderElem.default]
8
+ editorMenus: [LinkMenu],
9
+ editorPlugin: withLink,
10
+ renderElements: [renderLink]
18
11
  };
19
- var _default = exports.default = LinkPlugin;
12
+ export default LinkPlugin;