@seafile/sdoc-editor 2.0.72 → 2.0.74

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 (141) hide show
  1. package/dist/basic-sdk/comment/components/comment-all-participants/index.js +1 -1
  2. package/dist/basic-sdk/comment/components/comment-all-participants/participant-avatar.js +1 -1
  3. package/dist/basic-sdk/comment/components/comment-context-menu/menu-item.js +1 -1
  4. package/dist/basic-sdk/comment/components/comment-editor.js +9 -10
  5. package/dist/basic-sdk/comment/components/comment-item-collapse-wrapper.js +1 -1
  6. package/dist/basic-sdk/comment/components/comment-item-content.js +2 -2
  7. package/dist/basic-sdk/comment/components/comment-item-reply.js +1 -1
  8. package/dist/basic-sdk/comment/components/comment-operation/index.js +3 -2
  9. package/dist/basic-sdk/comment/components/comment-participants-editor/index.js +1 -1
  10. package/dist/basic-sdk/comment/components/editor-comment.js +0 -1
  11. package/dist/basic-sdk/comment/components/global-comment/global-comment-header.js +2 -2
  12. package/dist/basic-sdk/comment/provider/participants-content-provider.js +6 -6
  13. package/dist/basic-sdk/comment/reducer/notification-reducer.js +3 -2
  14. package/dist/basic-sdk/comment/utils/index.js +1 -1
  15. package/dist/{components/common-loading → basic-sdk/components/file-loading}/index.css +12 -9
  16. package/dist/{components/common-loading → basic-sdk/components/file-loading}/index.js +3 -3
  17. package/dist/basic-sdk/constants/index.js +12 -3
  18. package/dist/{constants → basic-sdk/constants}/key-codes.js +7 -2
  19. package/dist/basic-sdk/editor/editable-article.js +1 -1
  20. package/dist/basic-sdk/editor/sdoc-comment-editor.js +4 -4
  21. package/dist/basic-sdk/editor/sdoc-editor.js +11 -11
  22. package/dist/basic-sdk/editor/wiki-editor.js +8 -8
  23. package/dist/basic-sdk/extension/commons/color-menu/index.js +1 -1
  24. package/dist/basic-sdk/extension/commons/file-insert-dialog/index.js +1 -1
  25. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +36 -37
  26. package/dist/basic-sdk/extension/commons/menu/menu-item.js +1 -1
  27. package/dist/basic-sdk/extension/commons/search-list/index.js +2 -3
  28. package/dist/basic-sdk/extension/commons/select-file-dialog/index.js +3 -3
  29. package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +3 -3
  30. package/dist/basic-sdk/extension/plugins/ai/ai-menu/menu-item.js +1 -1
  31. package/dist/basic-sdk/extension/plugins/ai/ai-module/helpers.js +46 -2
  32. package/dist/basic-sdk/extension/plugins/ai/ai-module/index.js +37 -26
  33. package/dist/basic-sdk/extension/plugins/ai/ai-module/style.css +18 -6
  34. package/dist/basic-sdk/extension/plugins/ai/ai-module/tip-dialog.js +13 -5
  35. package/dist/basic-sdk/extension/plugins/callout/menu/index.js +1 -1
  36. package/dist/basic-sdk/extension/plugins/code-block/hover-menu/index.js +1 -1
  37. package/dist/basic-sdk/extension/plugins/file-link/hover-menu/index.js +1 -1
  38. package/dist/basic-sdk/extension/plugins/font/helpers.js +2 -2
  39. package/dist/basic-sdk/extension/plugins/font/menu/font-family/index.js +1 -1
  40. package/dist/basic-sdk/extension/plugins/font/menu/font-size/font-size-scale.js +1 -1
  41. package/dist/basic-sdk/extension/plugins/font/menu/font-size/index.js +1 -1
  42. package/dist/basic-sdk/extension/plugins/header/menu/index.js +3 -3
  43. package/dist/basic-sdk/extension/plugins/header/plugin.js +2 -2
  44. package/dist/basic-sdk/extension/plugins/image/base64-to-unit8array.js +21 -0
  45. package/dist/basic-sdk/extension/plugins/image/copy-image-error-svg/index.js +64 -0
  46. package/dist/basic-sdk/extension/plugins/image/helpers.js +3 -3
  47. package/dist/basic-sdk/extension/plugins/image/hover-menu/index.js +1 -1
  48. package/dist/basic-sdk/extension/plugins/image/plugin.js +3 -3
  49. package/dist/basic-sdk/extension/plugins/image/render-elem.js +1 -1
  50. package/dist/basic-sdk/extension/plugins/image/use-upload-image.js +1 -1
  51. package/dist/basic-sdk/extension/plugins/link/dialog/add-link-dialog/index.js +11 -4
  52. package/dist/basic-sdk/extension/plugins/link/menu/index.js +2 -2
  53. package/dist/basic-sdk/extension/plugins/mention/helper.js +58 -2
  54. package/dist/basic-sdk/extension/plugins/mention/plugin.js +3 -4
  55. package/dist/basic-sdk/extension/plugins/mention/render-elem/participant-popover.js +24 -26
  56. package/dist/basic-sdk/extension/plugins/quick-insert/plugin/index.js +1 -1
  57. package/dist/basic-sdk/extension/plugins/sdoc-link/hover-menu/index.js +1 -1
  58. package/dist/basic-sdk/extension/plugins/table/dialogs/custom-table-size-dialog/index.js +11 -3
  59. package/dist/basic-sdk/extension/plugins/table/dialogs/split-cell-setting-dialog.js +11 -4
  60. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +3 -3
  61. package/dist/basic-sdk/extension/plugins/table/popover/table-template/index.js +5 -5
  62. package/dist/basic-sdk/extension/plugins/text-align/menu/index.js +1 -1
  63. package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +1 -1
  64. package/dist/basic-sdk/extension/plugins/video/dialog/add-video-link-dialog/index.js +11 -4
  65. package/dist/basic-sdk/extension/toolbar/comment-editor-toolbar/post-comment/index.js +1 -1
  66. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +1 -5
  67. package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu.js +1 -1
  68. package/dist/basic-sdk/index.js +66 -0
  69. package/dist/basic-sdk/layout/editor-container.js +2 -2
  70. package/dist/basic-sdk/layout/editor-content.js +1 -1
  71. package/dist/basic-sdk/outline/index.js +1 -1
  72. package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/code-block.js +1 -1
  73. package/dist/{slate-convert → basic-sdk/slate-convert}/md-to-slate/index.js +1 -1
  74. package/dist/{slate-convert → basic-sdk/slate-convert}/md-to-slate/transform.js +2 -2
  75. package/dist/basic-sdk/utils/common-utils.js +24 -2
  76. package/dist/basic-sdk/utils/diff.js +1 -1
  77. package/dist/basic-sdk/utils/document-utils.js +14 -3
  78. package/dist/basic-sdk/utils/is-punctuation-mark.js +50 -0
  79. package/dist/basic-sdk/views/published-revision-diff-viewer.js +3 -3
  80. package/dist/basic-sdk/views/revision-diff-viewer.js +3 -3
  81. package/dist/basic-sdk/views/sdoc-viewer.js +2 -2
  82. package/dist/components/doc-operations/collaborators-operation/index.js +1 -2
  83. package/dist/components/doc-operations/index.js +2 -2
  84. package/dist/components/doc-operations/more-operations.js +3 -5
  85. package/dist/components/doc-operations/plugins-operations.js +3 -3
  86. package/dist/components/doc-operations/presentation-operation/index.js +1 -3
  87. package/dist/components/doc-operations/revision-operations/changes-count/index.js +3 -4
  88. package/dist/components/doc-operations/revision-operations/index.js +10 -11
  89. package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +2 -4
  90. package/dist/components/doc-operations/revision-operations/revisions/index.js +1 -2
  91. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +6 -7
  92. package/dist/components/doc-operations/revision-operations/view-changes/index.js +2 -2
  93. package/dist/components/doc-operations/share-operation/index.js +1 -3
  94. package/dist/components/tip-dialog/index.js +3 -3
  95. package/dist/components/tip-message/index.js +12 -13
  96. package/dist/constants/index.js +1 -10
  97. package/dist/pages/published-revision-viewer.js +2 -5
  98. package/dist/pages/simple-editor.js +1 -2
  99. package/dist/pages/simple-viewer.js +3 -5
  100. package/dist/plugin-module/editor/plugin-editor.js +1 -2
  101. package/dist/plugin-module/gloable-ui/insert-element-dialog.js +1 -2
  102. package/dist/plugin-module/layout/editor-container.js +2 -2
  103. package/dist/plugin-module/plugins/chart/hover-menu/index.js +3 -4
  104. package/dist/plugin-module/plugins/seatable-column/render-elem.js +2 -3
  105. package/dist/plugin-module/plugins/seatable-tables/op-menu/index.js +5 -5
  106. package/dist/plugin-module/plugins/seatable-tables/render-element/seatable-table.js +2 -2
  107. package/dist/utils/index.js +2 -64
  108. package/package.json +1 -1
  109. package/dist/utils/format-sdoc-content.js +0 -16
  110. /package/dist/{android → basic-sdk/android}/constants.js +0 -0
  111. /package/dist/{android → basic-sdk/android}/js-bridge.js +0 -0
  112. /package/dist/{android → basic-sdk/android}/outline-module.js +0 -0
  113. /package/dist/{components → basic-sdk/components}/loading/index.js +0 -0
  114. /package/dist/{components → basic-sdk/components}/loading/style.css +0 -0
  115. /package/dist/{components → basic-sdk/components}/toast/alert.js +0 -0
  116. /package/dist/{components → basic-sdk/components}/toast/index.css +0 -0
  117. /package/dist/{components → basic-sdk/components}/toast/index.js +0 -0
  118. /package/dist/{components → basic-sdk/components}/toast/toast.js +0 -0
  119. /package/dist/{components → basic-sdk/components}/toast/toastManager.js +0 -0
  120. /package/dist/{components → basic-sdk/components}/toast/toaster.js +0 -0
  121. /package/dist/{components → basic-sdk/components}/tooltip/index.css +0 -0
  122. /package/dist/{components → basic-sdk/components}/tooltip/index.js +0 -0
  123. /package/dist/{utils → basic-sdk/extension/plugins/image}/image-cache.js +0 -0
  124. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/constants.js +0 -0
  125. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/helper.js +0 -0
  126. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/index.js +0 -0
  127. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/blockquote.js +0 -0
  128. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/check-list.js +0 -0
  129. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/header.js +0 -0
  130. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/image.js +0 -0
  131. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/index.js +0 -0
  132. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/link.js +0 -0
  133. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/list.js +0 -0
  134. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/paragraph.js +0 -0
  135. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/table.js +0 -0
  136. /package/dist/{slate-convert → basic-sdk/slate-convert}/html-to-slate/rules/text.js +0 -0
  137. /package/dist/{slate-convert → basic-sdk/slate-convert}/index.js +0 -0
  138. /package/dist/{slate-convert → basic-sdk/slate-convert}/md-to-html/index.js +0 -0
  139. /package/dist/{slate-convert → basic-sdk/slate-convert}/md-to-html/sanitize-schema.js +0 -0
  140. /package/dist/{slate-convert → basic-sdk/slate-convert}/slate-to-md/index.js +0 -0
  141. /package/dist/{slate-convert → basic-sdk/slate-convert}/slate-to-md/transform.js +0 -0
@@ -8,29 +8,28 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
- var _constants = require("../../../../basic-sdk/constants");
12
- var _index = _interopRequireDefault(require("../../../../components/toast/index.js"));
13
- var _context = _interopRequireDefault(require("../../../../context.js"));
14
- var _constants2 = require("../../../constants");
11
+ var _constants = require("../../../constants");
12
+ var _context = _interopRequireDefault(require("../../../../context"));
13
+ var _toast = _interopRequireDefault(require("../../../components/toast"));
15
14
  var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
16
- var _constants3 = require("../../constants");
17
- var _index2 = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
15
+ var _constants2 = require("../../constants");
16
+ var _index = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
18
17
  var _helpers = require("../../plugins/image/helpers");
19
18
  var _addLinkDialog = _interopRequireDefault(require("../../plugins/link/dialog/add-link-dialog"));
20
19
  var _dialogs = require("../../plugins/table/dialogs");
21
- var _index3 = require("../../plugins/video/constants/index.js");
22
- var _index4 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
20
+ var _index2 = require("../../plugins/video/constants/index.js");
21
+ var _index3 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
23
22
  var _helpers2 = require("../../plugins/video/helpers");
24
- var _index5 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
25
- var _index6 = _interopRequireDefault(require("../select-file-dialog/index.js"));
26
- var _index7 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
23
+ var _index4 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
24
+ var _index5 = _interopRequireDefault(require("../select-file-dialog/index.js"));
25
+ var _index6 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
27
26
  const InsertElementDialog = _ref => {
28
27
  let {
29
28
  editor
30
29
  } = _ref;
31
30
  const [dialogType, setDialogType] = (0, _react.useState)('');
32
31
  const [element, setElement] = (0, _react.useState)('');
33
- const [insertPosition, setInsertPosition] = (0, _react.useState)(_constants3.INSERT_POSITION.CURRENT);
32
+ const [insertPosition, setInsertPosition] = (0, _react.useState)(_constants2.INSERT_POSITION.CURRENT);
34
33
  const [slateNode, setSlateNode] = (0, _react.useState)(null);
35
34
  const [insertLinkCallback, setInsertLinkCallback] = (0, _react.useState)(null);
36
35
  const [insertVideoCallback, setInsertVideoCallback] = (0, _react.useState)(null);
@@ -53,7 +52,7 @@ const InsertElementDialog = _ref => {
53
52
  }, [validEditor, uploadLocalImageInputRef, insertPosition, slateNode]);
54
53
  const handleDisplayAlert = (0, _react.useCallback)(() => {
55
54
  setTimeout(() => {
56
- _index.default.warning(`${t('The_current_version_does_not_support_>5MB_video_file')}`, {
55
+ _toast.default.warning(`${t('The_current_version_does_not_support_>5MB_video_file')}`, {
57
56
  duration: 3
58
57
  });
59
58
  }, 0);
@@ -62,7 +61,7 @@ const InsertElementDialog = _ref => {
62
61
  const onVideoFileChanged = (0, _react.useCallback)(event => {
63
62
  const files = event.target.files;
64
63
  // Show warning for 3s and no further insertion if video file is more than 5MB
65
- if (files[0].size > _index3.VIDEO_MAX_SIZE_5MB) {
64
+ if (files[0].size > _index2.VIDEO_MAX_SIZE_5MB) {
66
65
  handleDisplayAlert();
67
66
  event.target.value = null;
68
67
  return;
@@ -77,7 +76,7 @@ const InsertElementDialog = _ref => {
77
76
  }, [validEditor, uploadLocalImageInputRef, insertPosition, slateNode]);
78
77
  (0, _react.useEffect)(() => {
79
78
  const eventBus = _eventBus.default.getInstance();
80
- const toggleDialogSubscribe = eventBus.subscribe(_constants2.INTERNAL_EVENT.INSERT_ELEMENT, toggleDialog);
79
+ const toggleDialogSubscribe = eventBus.subscribe(_constants.INTERNAL_EVENT.INSERT_ELEMENT, toggleDialog);
81
80
  return () => {
82
81
  toggleDialogSubscribe();
83
82
  };
@@ -87,7 +86,7 @@ const InsertElementDialog = _ref => {
87
86
  let {
88
87
  type,
89
88
  element,
90
- insertPosition = _constants3.INSERT_POSITION.CURRENT,
89
+ insertPosition = _constants2.INSERT_POSITION.CURRENT,
91
90
  slateNode,
92
91
  insertFileLinkCallback,
93
92
  insertSdocFileLinkCallback,
@@ -114,19 +113,19 @@ const InsertElementDialog = _ref => {
114
113
  // Apply for comment editor, as it has a different editor instance
115
114
  setValidEditor(paramEditor || editor);
116
115
  setData(data);
117
- if (type === _constants3.LOCAL_IMAGE) {
116
+ if (type === _constants2.LOCAL_IMAGE) {
118
117
  setTimeout(() => {
119
118
  uploadLocalImageInputRef.current && uploadLocalImageInputRef.current.click();
120
119
  }, 0);
121
120
  }
122
- if (type === _constants3.LOCAL_VIDEO) {
121
+ if (type === _constants2.LOCAL_VIDEO) {
123
122
  setTimeout(() => {
124
123
  uploadLocalVideoInputRef.current && uploadLocalVideoInputRef.current.click();
125
124
  }, 0);
126
125
  }
127
126
  }, [editor]);
128
127
  const closeDialog = (0, _react.useCallback)(() => {
129
- setInsertPosition(_constants3.INSERT_POSITION.CURRENT);
128
+ setInsertPosition(_constants2.INSERT_POSITION.CURRENT);
130
129
  setSlateNode(null);
131
130
  setElement('');
132
131
  setDialogType('');
@@ -147,19 +146,19 @@ const InsertElementDialog = _ref => {
147
146
  data
148
147
  };
149
148
  switch (dialogType) {
150
- case _constants3.ELEMENT_TYPE.TABLE:
149
+ case _constants2.ELEMENT_TYPE.TABLE:
151
150
  {
152
151
  return /*#__PURE__*/_react.default.createElement(_dialogs.CustomTableSizeDialog, props);
153
152
  }
154
- case _constants3.ELEMENT_TYPE.TABLE_CELL:
153
+ case _constants2.ELEMENT_TYPE.TABLE_CELL:
155
154
  {
156
155
  return /*#__PURE__*/_react.default.createElement(_dialogs.SplitCellSettingDialog, props);
157
156
  }
158
- case _constants3.ELEMENT_TYPE.LINK:
157
+ case _constants2.ELEMENT_TYPE.LINK:
159
158
  {
160
159
  return /*#__PURE__*/_react.default.createElement(_addLinkDialog.default, props);
161
160
  }
162
- case _constants3.ELEMENT_TYPE.SDOC_LINK:
161
+ case _constants2.ELEMENT_TYPE.SDOC_LINK:
163
162
  {
164
163
  const sdocLinkProps = {
165
164
  editor: validEditor,
@@ -167,9 +166,9 @@ const InsertElementDialog = _ref => {
167
166
  insertLinkCallback,
168
167
  closeDialog
169
168
  };
170
- return /*#__PURE__*/_react.default.createElement(_index6.default, sdocLinkProps);
169
+ return /*#__PURE__*/_react.default.createElement(_index5.default, sdocLinkProps);
171
170
  }
172
- case _constants3.ELEMENT_TYPE.FILE_LINK:
171
+ case _constants2.ELEMENT_TYPE.FILE_LINK:
173
172
  {
174
173
  const fileLinkProps = {
175
174
  editor: validEditor,
@@ -177,9 +176,9 @@ const InsertElementDialog = _ref => {
177
176
  insertLinkCallback,
178
177
  closeDialog
179
178
  };
180
- return /*#__PURE__*/_react.default.createElement(_index6.default, fileLinkProps);
179
+ return /*#__PURE__*/_react.default.createElement(_index5.default, fileLinkProps);
181
180
  }
182
- case _constants3.ELEMENT_TYPE.VIDEO:
181
+ case _constants2.ELEMENT_TYPE.VIDEO:
183
182
  {
184
183
  const videoProps = {
185
184
  editor: validEditor,
@@ -187,13 +186,13 @@ const InsertElementDialog = _ref => {
187
186
  insertVideoCallback,
188
187
  closeDialog
189
188
  };
190
- return /*#__PURE__*/_react.default.createElement(_index6.default, videoProps);
189
+ return /*#__PURE__*/_react.default.createElement(_index5.default, videoProps);
191
190
  }
192
- case _constants3.ELEMENT_TYPE.VIDEO_LINK:
191
+ case _constants2.ELEMENT_TYPE.VIDEO_LINK:
193
192
  {
194
- return /*#__PURE__*/_react.default.createElement(_index4.default, props);
193
+ return /*#__PURE__*/_react.default.createElement(_index3.default, props);
195
194
  }
196
- case _constants3.LOCAL_IMAGE:
195
+ case _constants2.LOCAL_IMAGE:
197
196
  {
198
197
  return /*#__PURE__*/_react.default.createElement("input", {
199
198
  onClick: e => e.stopPropagation(),
@@ -207,7 +206,7 @@ const InsertElementDialog = _ref => {
207
206
  onChange: onFileChanged
208
207
  });
209
208
  }
210
- case _constants3.LOCAL_VIDEO:
209
+ case _constants2.LOCAL_VIDEO:
211
210
  {
212
211
  return /*#__PURE__*/_react.default.createElement("input", {
213
212
  onClick: e => e.stopPropagation(),
@@ -220,24 +219,24 @@ const InsertElementDialog = _ref => {
220
219
  onChange: onVideoFileChanged
221
220
  });
222
221
  }
223
- case _constants3.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
222
+ case _constants2.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
224
223
  {
225
224
  if (editor.editorType === _constants.WIKI_EDITOR) {
226
- return /*#__PURE__*/_react.default.createElement(_index7.default, {
225
+ return /*#__PURE__*/_react.default.createElement(_index6.default, {
227
226
  element: slateNode,
228
227
  editor: editor,
229
228
  closeDialog: closeDialog
230
229
  });
231
230
  }
232
- return /*#__PURE__*/_react.default.createElement(_index5.default, {
231
+ return /*#__PURE__*/_react.default.createElement(_index4.default, {
233
232
  element: slateNode,
234
233
  editor: editor,
235
234
  closeDialog: closeDialog
236
235
  });
237
236
  }
238
- case _constants3.ELEMENT_TYPE.ASK_AI:
237
+ case _constants2.ELEMENT_TYPE.ASK_AI:
239
238
  {
240
- return /*#__PURE__*/_react.default.createElement(_index2.default, {
239
+ return /*#__PURE__*/_react.default.createElement(_index.default, {
241
240
  element: slateNode,
242
241
  editor: editor,
243
242
  closeModule: closeDialog
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
- var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
12
+ var _tooltip = _interopRequireDefault(require("../../../components/tooltip"));
13
13
  var _constants = require("../../constants");
14
14
  const MenuItem = _ref => {
15
15
  let {
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
@@ -9,7 +8,7 @@ exports.default = SearchList;
9
8
  var _react = _interopRequireWildcard(require("react"));
10
9
  var _reactI18next = require("react-i18next");
11
10
  var _reactstrap = require("reactstrap");
12
- var _keyCodes = _interopRequireDefault(require("../../../../constants/key-codes"));
11
+ var _constants = require("../../../constants");
13
12
  require("./index.css");
14
13
  function SearchList(_ref) {
15
14
  let {
@@ -86,7 +85,7 @@ function SearchList(_ref) {
86
85
  DownArrow,
87
86
  Enter,
88
87
  Esc
89
- } = _keyCodes.default;
88
+ } = _constants.KeyCodes;
90
89
  const {
91
90
  keyCode
92
91
  } = e;
@@ -10,9 +10,9 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _reactstrap = require("reactstrap");
12
12
  var _isHotkey = _interopRequireDefault(require("is-hotkey"));
13
- var _toast = _interopRequireDefault(require("../../../../components/toast"));
14
13
  var _context = _interopRequireDefault(require("../../../../context"));
15
- var _utils = require("../../../../utils/");
14
+ var _toast = _interopRequireDefault(require("../../../components/toast"));
15
+ var _commonUtils = require("../../../utils/common-utils");
16
16
  var _constants = require("../../constants");
17
17
  var _localFiles = _interopRequireDefault(require("./local-files"));
18
18
  require("./index.css");
@@ -105,7 +105,7 @@ const SelectSdocFileDialog = _ref => {
105
105
  insertFile(fileInfo);
106
106
  closeDialog();
107
107
  }).catch(error => {
108
- const errorMessage = (0, _utils.getErrorMsg)(error);
108
+ const errorMessage = (0, _commonUtils.getErrorMsg)(error);
109
109
  _toast.default.danger(errorMessage);
110
110
  });
111
111
  return;
@@ -10,9 +10,9 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _slugid = _interopRequireDefault(require("slugid"));
13
- var _toast = _interopRequireDefault(require("../../../../../components/toast"));
14
13
  var _context = _interopRequireDefault(require("../../../../../context"));
15
- var _utils = require("../../../../../utils/");
14
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
15
+ var _commonUtils = require("../../../../utils/common-utils");
16
16
  var _helpers = require("../helpers");
17
17
  require("./index.css");
18
18
  const LocalFiles = _ref => {
@@ -64,7 +64,7 @@ const LocalFiles = _ref => {
64
64
  setTreeData(res.data);
65
65
  }).catch(error => {
66
66
  toggle();
67
- const errorMessage = (0, _utils.getErrorMsg)(error);
67
+ const errorMessage = (0, _commonUtils.getErrorMsg)(error);
68
68
  _toast.default.danger(errorMessage);
69
69
  });
70
70
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
- var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
12
+ var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
13
13
  var _aiIcon = _interopRequireDefault(require("../ai-icon"));
14
14
  const MenuItem = _ref => {
15
15
  let {
@@ -3,8 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.removeMarks = void 0;
6
+ exports.removeMarks = exports.markdownTableRenderer = exports.insertHtmlTransferredNodes = void 0;
7
7
  var _slate = require("@seafile/slate");
8
+ var _constants = require("../../../constants");
9
+ var _core = require("../../../core");
8
10
  const removeMarks = editor => {
9
11
  const {
10
12
  selection
@@ -23,4 +25,46 @@ const removeMarks = editor => {
23
25
  _slate.Transforms.deselect(editor);
24
26
  }
25
27
  };
26
- exports.removeMarks = removeMarks;
28
+ exports.removeMarks = removeMarks;
29
+ const markdownTableRenderer = searchResult => {
30
+ if (!searchResult) return '';
31
+ return /*#__PURE__*/React.createElement("div", {
32
+ className: "md-rendered-html",
33
+ dangerouslySetInnerHTML: {
34
+ __html: searchResult
35
+ }
36
+ });
37
+ };
38
+ exports.markdownTableRenderer = markdownTableRenderer;
39
+ const insertHtmlTransferredNodes = (slateNodeList, nextPath, editor) => {
40
+ slateNodeList.forEach(childNode => {
41
+ // Insert paragraph nodes
42
+ if (childNode.type === _constants.PARAGRAPH) {
43
+ if (childNode.children.length > 1) {
44
+ childNode.children.forEach((textNode, index) => {
45
+ if (!textNode.text.trim()) return;
46
+ const p = (0, _core.generateEmptyElement)(_constants.PARAGRAPH);
47
+ p.children.push(textNode);
48
+ _slate.Transforms.insertNodes(editor, p, {
49
+ at: nextPath
50
+ });
51
+ nextPath = _slate.Path.next(nextPath);
52
+ });
53
+ } else {
54
+ _slate.Transforms.insertNodes(editor, childNode, {
55
+ at: nextPath
56
+ });
57
+ nextPath = _slate.Path.next(nextPath);
58
+ }
59
+ }
60
+
61
+ // Insert non-paragraph nodes
62
+ if (childNode.type !== _constants.PARAGRAPH) {
63
+ _slate.Transforms.insertNodes(editor, childNode, {
64
+ at: nextPath
65
+ });
66
+ nextPath = _slate.Path.next(nextPath);
67
+ }
68
+ });
69
+ };
70
+ exports.insertHtmlTransferredNodes = insertHtmlTransferredNodes;
@@ -12,8 +12,10 @@ var _slate = require("@seafile/slate");
12
12
  var _slateReact = require("@seafile/slate-react");
13
13
  var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
14
14
  var _isHotkey = _interopRequireDefault(require("is-hotkey"));
15
- var _toast = _interopRequireDefault(require("../../../../../components/toast"));
16
15
  var _context = _interopRequireDefault(require("../../../../../context"));
16
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
17
+ var _mdToHtml = _interopRequireDefault(require("../../../../slate-convert/md-to-html"));
18
+ var _mdToSlate = _interopRequireDefault(require("../../../../slate-convert/md-to-slate"));
17
19
  var _commons = require("../../../commons");
18
20
  var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
19
21
  var _constants = require("../../../constants");
@@ -217,6 +219,11 @@ function AIModule(_ref) {
217
219
  if (value === searchValue) return;
218
220
  setSearchValue(value);
219
221
  }, [searchValue]);
222
+ const transferHtml = async mdString => {
223
+ const htmlString = await _mdToHtml.default.process(mdString);
224
+ const formatHtml = String(htmlString).trim();
225
+ setSearchResult(formatHtml);
226
+ };
220
227
  const onEnter = (0, _react.useCallback)(event => {
221
228
  if (!searchValue) return;
222
229
  setOpType(_constants2.OPERATION_TYPES.DEFAULT);
@@ -228,10 +235,10 @@ function AIModule(_ref) {
228
235
  return;
229
236
  }
230
237
  _context.default.writingAssistant(defaultContent, 'ask', custom_prompt).then(res => {
231
- const {
238
+ let {
232
239
  content
233
240
  } = res.data;
234
- setSearchResult(content);
241
+ transferHtml(content);
235
242
  setIsGenerating(false);
236
243
  setSearchValue('');
237
244
  setOldSearchValue(searchValue);
@@ -265,7 +272,7 @@ function AIModule(_ref) {
265
272
  const {
266
273
  content
267
274
  } = res.data;
268
- setSearchResult(content);
275
+ transferHtml(content);
269
276
  setIsGenerating(false);
270
277
  }).catch(err => {
271
278
  setIsGenerating(false);
@@ -284,7 +291,7 @@ function AIModule(_ref) {
284
291
  const {
285
292
  content
286
293
  } = res.data;
287
- setSearchResult(content);
294
+ transferHtml(content);
288
295
  setIsGenerating(false);
289
296
  }).catch(err => {
290
297
  setIsGenerating(false);
@@ -303,7 +310,7 @@ function AIModule(_ref) {
303
310
  const {
304
311
  content
305
312
  } = res.data;
306
- setSearchResult(content);
313
+ transferHtml(content);
307
314
  setIsGenerating(false);
308
315
  }).catch(err => {
309
316
  setIsGenerating(false);
@@ -322,7 +329,7 @@ function AIModule(_ref) {
322
329
  const {
323
330
  content
324
331
  } = res.data;
325
- setSearchResult(content);
332
+ transferHtml(content);
326
333
  setIsGenerating(false);
327
334
  }).catch(err => {
328
335
  setIsGenerating(false);
@@ -341,7 +348,7 @@ function AIModule(_ref) {
341
348
  const {
342
349
  content
343
350
  } = res.data;
344
- setSearchResult(content);
351
+ transferHtml(content);
345
352
  setIsGenerating(false);
346
353
  }).catch(err => {
347
354
  setIsGenerating(false);
@@ -362,7 +369,7 @@ function AIModule(_ref) {
362
369
  const {
363
370
  translation
364
371
  } = res.data;
365
- setSearchResult(translation);
372
+ transferHtml(translation);
366
373
  setIsGenerating(false);
367
374
  }).catch(err => {
368
375
  setIsGenerating(false);
@@ -392,19 +399,13 @@ function AIModule(_ref) {
392
399
  nextPath = _slate.Path.next(path);
393
400
  }
394
401
 
395
- // Prevent '\\n' from being pre-wrapped
396
- const tempResult = searchResult.replace(/\\n/g, '\v');
397
- const paragraphs = tempResult.split('\n').map(line => line.replace(/\v/g, '\\n')).filter(line => line.trim() !== '');
398
- const p = (0, _core.generateEmptyElement)(_constants.PARAGRAPH);
399
- paragraphs.forEach((line, index) => {
400
- p.children[0].text = line;
401
- _slate.Transforms.insertNodes(editor, p, {
402
- at: nextPath
403
- });
404
- if (index < paragraphs.length - 1) {
405
- nextPath = _slate.Path.next(nextPath);
406
- }
407
- });
402
+ // Transfer markdown search result to slate
403
+ // If codeMd,keep all; otherwise,delete \n and empty area
404
+ const optimizedSearchResult = searchResult.replace(/<pre[\s\S]*?<\/pre>|>\s+</g, match => {
405
+ return match.startsWith('<pre') ? match : '><';
406
+ }).trim();
407
+ const slateNodeList = (0, _mdToSlate.default)(optimizedSearchResult);
408
+ (0, _helpers.insertHtmlTransferredNodes)(slateNodeList, nextPath, editor);
408
409
  onCloseClick();
409
410
  focusToEndPath(nextPath);
410
411
  }, [editor, element, focusToEndPath, onCloseClick, searchResult]);
@@ -440,7 +441,19 @@ function AIModule(_ref) {
440
441
  if (!element) {
441
442
  editor.deleteFragment();
442
443
  if (searchResult) {
443
- editor.insertText(searchResult);
444
+ const optimizedSearchResult = searchResult.replace(/<pre[\s\S]*?<\/pre>|>\s+</g, match => {
445
+ return match.startsWith('<pre') ? match : '><';
446
+ }).trim();
447
+ const slateNodeList = (0, _mdToSlate.default)(optimizedSearchResult);
448
+ // Insert selection as text if result node is one paragraph nodes; otherwise, insert below
449
+ if (slateNodeList.length === 1 && slateNodeList[0].type === _constants.PARAGRAPH && slateNodeList[0].children.length <= 1) {
450
+ const text = slateNodeList[0].children[0].text;
451
+ editor.insertText(text);
452
+ } else {
453
+ const topBlockNode = (0, _core.getTopLevelBlockNode)(editor);
454
+ const nextPath = _slate.Path.next(topBlockNode[1]);
455
+ (0, _helpers.insertHtmlTransferredNodes)(slateNodeList, nextPath, editor);
456
+ }
444
457
  }
445
458
  onCloseClick();
446
459
  const end = _slate.Range.end(editor.selection);
@@ -542,9 +555,7 @@ function AIModule(_ref) {
542
555
  className: "sdoc-ai-result"
543
556
  }, /*#__PURE__*/_react.default.createElement("div", {
544
557
  className: "sdoc-ai-result-content"
545
- }, isGenerating ? t('Processing_message') : searchResult.split('\n').map((paragraph, index) => /*#__PURE__*/_react.default.createElement("p", {
546
- key: index
547
- }, paragraph)))), /*#__PURE__*/_react.default.createElement("div", {
558
+ }, isGenerating ? t('Processing_message') : (0, _helpers.markdownTableRenderer)(searchResult))), /*#__PURE__*/_react.default.createElement("div", {
548
559
  className: "sdoc-ai-search"
549
560
  }, /*#__PURE__*/_react.default.createElement(_aiIcon.default, null), /*#__PURE__*/_react.default.createElement("input", {
550
561
  placeholder: t('Ask_AI_anything'),
@@ -90,12 +90,6 @@
90
90
  overflow-y: auto;
91
91
  }
92
92
 
93
- .sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-content p {
94
- line-height: 1.6;
95
- padding: 5px 0;
96
- margin-bottom: 0 !important;
97
- }
98
-
99
93
  .sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-header {
100
94
  display: flex;
101
95
  justify-content: space-between;
@@ -134,3 +128,21 @@
134
128
  box-shadow: 0 0 10px #ccc;
135
129
  background-color: #fff;
136
130
  }
131
+
132
+ .md-rendered-html table {
133
+ border-collapse: collapse;
134
+ border: 1px solid #ccc;
135
+ }
136
+
137
+ .md-rendered-html th,
138
+ .md-rendered-html tr,
139
+ .md-rendered-html td {
140
+ padding: 6px;
141
+ border: 1px solid #ccc;
142
+ }
143
+
144
+ .md-rendered-html p {
145
+ padding-bottom: 5px;
146
+ line-height: 1.6;
147
+ margin-bottom: 0 !important;
148
+ }
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = TipDialog;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _reactI18next = require("react-i18next");
10
10
  var _reactstrap = require("reactstrap");
11
- var _modalHeader = _interopRequireDefault(require("../../../../../components/modal-header"));
12
11
  function TipDialog(_ref) {
13
12
  let {
14
13
  closeDialog,
@@ -17,11 +16,20 @@ function TipDialog(_ref) {
17
16
  const {
18
17
  t
19
18
  } = (0, _reactI18next.useTranslation)('sdoc-editor');
19
+ const close = (0, _react.useMemo)(() => {
20
+ return /*#__PURE__*/_react.default.createElement("span", {
21
+ className: "sdoc-add-link-close-icon",
22
+ onClick: closeDialog
23
+ }, /*#__PURE__*/_react.default.createElement("i", {
24
+ className: "sdocfont sdoc-sm-close",
25
+ "aria-hidden": "true"
26
+ }));
27
+ }, [closeDialog]);
20
28
  return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
21
29
  isOpen: true,
22
30
  toggle: closeDialog
23
- }, /*#__PURE__*/_react.default.createElement(_modalHeader.default, {
24
- toggle: closeDialog
31
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.ModalHeader, {
32
+ close: close
25
33
  }, t('Tip')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, t('AI_tip_content')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
26
34
  color: "secondary",
27
35
  className: "mr-2",
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
- var _toast = _interopRequireDefault(require("../../../../../components/toast"));
11
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
12
12
  var _constants = require("../../../../constants");
13
13
  var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
14
14
  var _commons = require("../../../commons");
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _reactstrap = require("reactstrap");
12
- var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
12
+ var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
13
13
  var _commons = require("../../../commons/");
14
14
  var _helpers = require("../helpers");
15
15
  var _prismjs = require("../prismjs");
@@ -11,7 +11,7 @@ var _reactI18next = require("react-i18next");
11
11
  var _slate = require("@seafile/slate");
12
12
  var _slateReact = require("@seafile/slate-react");
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
- var _toast = _interopRequireDefault(require("../../../../../components/toast"));
14
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
15
15
  var _commons = require("../../../commons");
16
16
  var _constants = require("../../../constants");
17
17
  var _core = require("../../../core");
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.setFontSize = exports.setFont = exports.scaleFontSize = exports.loadFont = exports.isMenuDisabled = exports.hasFontLoaded = exports.getFontSize = exports.getFont = exports.generatorFontFamily = void 0;
8
8
  var _slate = require("@seafile/slate");
9
9
  var _context = _interopRequireDefault(require("../../../../context"));
10
- var _utils = require("../../../../utils");
10
+ var _commonUtils = require("../../../utils/common-utils");
11
11
  var _constants = require("../../constants");
12
12
  var _core = require("../../core");
13
13
  const isMenuDisabled = (editor, readonly) => {
@@ -167,7 +167,7 @@ const generatorFontFamily = (fontName, fontWeight) => {
167
167
  fontFamilyName
168
168
  } = fontObject;
169
169
  loadFont(fontObject, fontWeight);
170
- const validFontName = fontFamilyName && (0, _utils.isMac)() ? fontFamilyName['mac'] : fontName;
170
+ const validFontName = fontFamilyName && (0, _commonUtils.isMac)() ? fontFamilyName['mac'] : fontName;
171
171
  return `${validFontName}, ${lang === 'zh-cn' ? '\u5b8b\u4f53' : 'Arial'}, ${usuallyFontFamilyName || 'sans-serif'}`;
172
172
  };
173
173
  exports.generatorFontFamily = generatorFontFamily;
@@ -10,8 +10,8 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _reactstrap = require("reactstrap");
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _tooltip = _interopRequireDefault(require("../../../../../../components/tooltip"));
14
13
  var _context = _interopRequireDefault(require("../../../../../../context"));
14
+ var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
15
15
  var _localStorageUtils = _interopRequireDefault(require("../../../../../utils/local-storage-utils"));
16
16
  var _objectUtils = _interopRequireDefault(require("../../../../../utils/object-utils"));
17
17
  var _constants = require("../../../../constants");
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _tooltip = _interopRequireDefault(require("../../../../../../components/tooltip"));
10
+ var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
11
11
  const FontSizeScale = _ref => {
12
12
  let {
13
13
  isRichEditor = true,
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactI18next = require("react-i18next");
11
11
  var _reactstrap = require("reactstrap");
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _tooltip = _interopRequireDefault(require("../../../../../../components/tooltip"));
13
+ var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
14
14
  var _constants = require("../../../../constants");
15
15
  var _helpers = require("../../helpers");
16
16
  require("./index.css");