@seafile/sdoc-editor 2.0.23 → 2.0.25-alph-0.0.1

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 (58) hide show
  1. package/dist/api/seafile-api.js +4 -1
  2. package/dist/basic-sdk/assets/css/dropdown-menu.css +1 -1
  3. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
  4. package/dist/basic-sdk/extension/constants/element-type.js +2 -1
  5. package/dist/basic-sdk/extension/constants/index.js +8 -2
  6. package/dist/basic-sdk/extension/constants/menus-config.js +5 -0
  7. package/dist/basic-sdk/extension/plugins/ai/ai-module/index.js +48 -24
  8. package/dist/basic-sdk/extension/plugins/ai/ai-module/style.css +8 -0
  9. package/dist/basic-sdk/extension/plugins/index.js +7 -0
  10. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +414 -0
  11. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +76 -0
  12. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +209 -0
  13. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
  14. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
  15. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +125 -0
  16. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +144 -0
  17. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +161 -0
  18. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +47 -0
  19. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +98 -0
  20. package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
  21. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
  22. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +46 -0
  23. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +62 -0
  24. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
  25. package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
  26. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +124 -0
  27. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +160 -0
  28. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
  29. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
  30. package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/index.js +7 -2
  31. package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +1 -0
  32. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +2 -0
  33. package/dist/basic-sdk/extension/render/custom-element.js +5 -0
  34. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +3 -2
  35. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +1 -1
  36. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +2 -1
  37. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +2 -1
  38. package/dist/constants/index.js +1 -0
  39. package/dist/context.js +2 -2
  40. package/dist/pages/document-plugin-editor.js +2 -1
  41. package/package.json +1 -1
  42. package/public/locales/cs/sdoc-editor.json +7 -1
  43. package/public/locales/de/sdoc-editor.json +66 -60
  44. package/public/locales/en/sdoc-editor.json +10 -2
  45. package/public/locales/es/sdoc-editor.json +7 -1
  46. package/public/locales/es_AR/sdoc-editor.json +7 -1
  47. package/public/locales/es_MX/sdoc-editor.json +7 -1
  48. package/public/locales/fr/sdoc-editor.json +240 -234
  49. package/public/locales/it/sdoc-editor.json +7 -1
  50. package/public/locales/ru/sdoc-editor.json +8 -2
  51. package/public/locales/zh_CN/sdoc-editor.json +7 -2
  52. package/public/media/sdoc-editor-font/iconfont.css +15 -14
  53. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  54. package/public/media/sdoc-editor-font/iconfont.svg +3 -1
  55. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  56. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  57. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  58. package/public/media/sdoc-editor-font.css +11 -7
@@ -205,11 +205,14 @@ class SeafileAPI {
205
205
  form.append('file_uuid', docUuid);
206
206
  return this.req.post(url, form);
207
207
  }
208
- writingAssistant(docUuid, text, type) {
208
+ writingAssistant(docUuid, text, type, custom_prompt) {
209
209
  const url = '/api/v2.1/ai/writing-assistant/';
210
210
  let form = new FormData();
211
211
  form.append('text', text);
212
212
  form.append('writing_type', type);
213
+ if (custom_prompt) {
214
+ form.append('custom_prompt', custom_prompt);
215
+ }
213
216
  form.append('file_uuid', docUuid);
214
217
  return this.req.post(url, form);
215
218
  }
@@ -125,7 +125,7 @@
125
125
  }
126
126
 
127
127
  .sdoc-sub-dropdown-menu .sdoc-insert-element-table-size-wrapper {
128
- left: 227px !important;
128
+ /* left: 227px !important; */
129
129
  }
130
130
 
131
131
  .mobile-login .sdoc-dropdown-menu {
@@ -24,6 +24,7 @@ var _index5 = require("../../plugins/video/constants/index.js");
24
24
  var _constants3 = require("../../../../basic-sdk/constants");
25
25
  var _index6 = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
26
26
  var _index7 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
27
+ var _index8 = _interopRequireDefault(require("../../plugins/seatable-row/dialog/add-seatable-row-dialog/index.js"));
27
28
  const InsertElementDialog = _ref => {
28
29
  let {
29
30
  editor
@@ -37,6 +38,7 @@ const InsertElementDialog = _ref => {
37
38
  const [validEditor, setValidEditor] = (0, _react.useState)(editor);
38
39
  const [linkTitle, setLinkTitle] = (0, _react.useState)('');
39
40
  const [handleSubmit, setHandleSubmit] = (0, _react.useState)(() => void 0);
41
+ const [data, setData] = (0, _react.useState)({});
40
42
  const {
41
43
  t
42
44
  } = (0, _reactI18next.useTranslation)('sdoc-editor');
@@ -96,7 +98,8 @@ const InsertElementDialog = _ref => {
96
98
  editor: paramEditor,
97
99
  linkTitle,
98
100
  // link shortcut wrapping link
99
- handleSubmit
101
+ handleSubmit,
102
+ data
100
103
  } = _ref2;
101
104
  setInsertPosition(insertPosition);
102
105
  setSlateNode(slateNode);
@@ -113,6 +116,7 @@ const InsertElementDialog = _ref => {
113
116
  setHandleSubmit(handleSubmit);
114
117
  // Apply for comment editor, as it has a different editor instance
115
118
  setValidEditor(paramEditor || editor);
119
+ setData(data);
116
120
  if (type === _constants2.LOCAL_IMAGE) {
117
121
  setTimeout(() => {
118
122
  uploadLocalImageInputRef.current && uploadLocalImageInputRef.current.click();
@@ -133,6 +137,7 @@ const InsertElementDialog = _ref => {
133
137
  setInsertVideoCallback(null);
134
138
  setValidEditor(null);
135
139
  setLinkTitle('');
140
+ setData('');
136
141
  }, []);
137
142
  const props = {
138
143
  insertPosition,
@@ -141,7 +146,8 @@ const InsertElementDialog = _ref => {
141
146
  element,
142
147
  closeDialog,
143
148
  linkTitle,
144
- handleSubmit
149
+ handleSubmit,
150
+ data
145
151
  };
146
152
  switch (dialogType) {
147
153
  case _constants2.ELEMENT_TYPE.TABLE:
@@ -240,6 +246,10 @@ const InsertElementDialog = _ref => {
240
246
  closeModule: closeDialog
241
247
  });
242
248
  }
249
+ case _constants2.ELEMENT_TYPE.SEATABLE_ROW:
250
+ {
251
+ return /*#__PURE__*/_react.default.createElement(_index8.default, props);
252
+ }
243
253
  default:
244
254
  {
245
255
  return null;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
6
+ exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_ROW = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
7
7
  const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
8
8
  const TITLE = exports.TITLE = 'title';
9
9
  const SUBTITLE = exports.SUBTITLE = 'subtitle';
@@ -44,6 +44,7 @@ const FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK_INSET_INPUT_TEMP = 'file_li
44
44
  const QUICK_INSERT = exports.QUICK_INSERT = 'quick_insert';
45
45
  const VIDEO_LINK = exports.VIDEO_LINK = 'video_link';
46
46
  const SEATABLE_COLUMN = exports.SEATABLE_COLUMN = 'seatable_column';
47
+ const SEATABLE_ROW = exports.SEATABLE_ROW = 'seatable_row';
47
48
  const SEATABLE_TABLE = exports.SEATABLE_TABLE = 'seatable_table';
48
49
  const ASK_AI = exports.ASK_AI = 'ask_ai';
49
50
 
@@ -344,6 +344,12 @@ Object.defineProperty(exports, "SEATABLE_COLUMN", {
344
344
  return _elementType.SEATABLE_COLUMN;
345
345
  }
346
346
  });
347
+ Object.defineProperty(exports, "SEATABLE_ROW", {
348
+ enumerable: true,
349
+ get: function () {
350
+ return _elementType.SEATABLE_ROW;
351
+ }
352
+ });
347
353
  Object.defineProperty(exports, "SEATABLE_TABLE", {
348
354
  enumerable: true,
349
355
  get: function () {
@@ -537,7 +543,7 @@ const FILE_TYPE = exports.FILE_TYPE = {
537
543
  [_elementType.SDOC_LINK]: 'sdoc',
538
544
  [_elementType.VIDEO]: 'video'
539
545
  };
540
- const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.MULTI_COLUMN];
546
+ const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.MULTI_COLUMN, _elementType.SEATABLE_ROW];
541
547
  const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP = {
542
548
  [_elementType.PARAGRAPH]: [_elementType.CALL_OUT],
543
549
  [_elementType.TITLE]: [_elementType.CALL_OUT],
@@ -555,4 +561,4 @@ const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP =
555
561
  [_elementType.HEADER6]: [_elementType.CALL_OUT],
556
562
  [_elementType.CALL_OUT]: [_elementType.CALL_OUT]
557
563
  };
558
- const ROOT_ELEMENT_TYPES = exports.ROOT_ELEMENT_TYPES = [_elementType.PARAGRAPH, _elementType.TITLE, _elementType.SUBTITLE, _elementType.CHECK_LIST_ITEM, _elementType.ORDERED_LIST, _elementType.UNORDERED_LIST, _elementType.BLOCKQUOTE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CALL_OUT, _elementType.TABLE, _elementType.CODE_BLOCK, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE];
564
+ const ROOT_ELEMENT_TYPES = exports.ROOT_ELEMENT_TYPES = [_elementType.PARAGRAPH, _elementType.TITLE, _elementType.SUBTITLE, _elementType.CHECK_LIST_ITEM, _elementType.ORDERED_LIST, _elementType.UNORDERED_LIST, _elementType.BLOCKQUOTE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CALL_OUT, _elementType.TABLE, _elementType.CODE_BLOCK, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.SEATABLE_ROW];
@@ -223,6 +223,11 @@ const MENUS_CONFIG_MAP = exports.MENUS_CONFIG_MAP = {
223
223
  iconClass: 'sdocfont sdoc-find-replace',
224
224
  text: 'Search_and_replace'
225
225
  },
226
+ [_elementType.SEATABLE_ROW]: {
227
+ id: `sdoc_${_elementType.SEATABLE_ROW}`,
228
+ iconClass: 'sdocfont sdoc-seatable-row',
229
+ text: 'SeaTable_row'
230
+ },
226
231
  [_elementType.SEATABLE_COLUMN]: {
227
232
  id: `sdoc_${_elementType.SEATABLE_COLUMN}`,
228
233
  iconClass: 'sdocfont sdoc-choose-column',
@@ -40,6 +40,7 @@ function AIModule(_ref) {
40
40
  const [opType, setOpType] = (0, _react.useState)('');
41
41
  const [selectedValue, setSelectedValue] = (0, _react.useState)('');
42
42
  const [searchValue, setSearchValue] = (0, _react.useState)('');
43
+ const [oldSearchValue, setOldSearchValue] = (0, _react.useState)('');
43
44
  const [isGenerating, setIsGenerating] = (0, _react.useState)(false);
44
45
  const [searchResult, setSearchResult] = (0, _react.useState)(null);
45
46
  const [currentLang, setCurrentLang] = (0, _react.useState)('en');
@@ -160,13 +161,10 @@ function AIModule(_ref) {
160
161
  }, [onDocumentClick]);
161
162
  const onScroll = (0, _react.useCallback)(event => {
162
163
  if (!element) {
163
- console.log(selectDom);
164
164
  const newRect = selectDom.getBoundingClientRect();
165
165
  const aboveNode = (0, _core.getAboveBlockNode)(editor);
166
166
  const slateDom = _slateReact.ReactEditor.toDOMNode(editor, aboveNode[0]);
167
167
  const slateRect = slateDom.getBoundingClientRect();
168
- console.log(newRect);
169
- console.log(slateRect);
170
168
  const el = aiRef.current;
171
169
  el.style.top = `${newRect.bottom + 8}px`; // top = Current top + Element height
172
170
  el.style.left = `${slateRect.left}px`;
@@ -203,20 +201,25 @@ function AIModule(_ref) {
203
201
  if (!searchValue) return;
204
202
  setOpType(_constants.OPERATION_TYPES.DEFAULT);
205
203
  setIsGenerating(true);
206
- const defaultContent = searchValue || selectedValue;
207
- if (!defaultContent) {
204
+ const defaultContent = selectedValue;
205
+ const custom_prompt = searchValue;
206
+ if (!custom_prompt) {
208
207
  _toast.default.danger(t('Processing_content_cannot_be_empty'));
209
208
  return;
210
209
  }
211
- _context.default.writingAssistant(defaultContent, 'ask').then(res => {
210
+ _context.default.writingAssistant(defaultContent, 'ask', custom_prompt).then(res => {
212
211
  const {
213
212
  content
214
213
  } = res.data;
215
214
  setSearchResult(content);
216
215
  setIsGenerating(false);
216
+ setSearchValue('');
217
+ setOldSearchValue(searchValue);
217
218
  }).catch(err => {
218
219
  setIsGenerating(false);
219
220
  _toast.default.danger('AI_error_message');
221
+ setSearchValue('');
222
+ setOldSearchValue(searchValue);
220
223
  });
221
224
  }, [searchValue, selectedValue, t]);
222
225
  const onKeyDown = (0, _react.useCallback)(event => {
@@ -233,7 +236,7 @@ function AIModule(_ref) {
233
236
  const onContinuationClick = (0, _react.useCallback)(() => {
234
237
  setOpType(_constants.OPERATION_TYPES.CONTINUATION);
235
238
  setIsGenerating(true);
236
- const defaultContent = searchValue || selectedValue;
239
+ const defaultContent = selectedValue;
237
240
  if (!defaultContent) {
238
241
  _toast.default.danger(t('Processing_content_cannot_be_empty'));
239
242
  return;
@@ -248,11 +251,11 @@ function AIModule(_ref) {
248
251
  setIsGenerating(false);
249
252
  _toast.default.danger('AI_error_message');
250
253
  });
251
- }, [searchValue, selectedValue, t]);
254
+ }, [selectedValue, t]);
252
255
  const onMoreDetailsClick = (0, _react.useCallback)(() => {
253
256
  setOpType(_constants.OPERATION_TYPES.MORE_DETAILS);
254
257
  setIsGenerating(true);
255
- const defaultContent = searchValue || selectedValue;
258
+ const defaultContent = selectedValue;
256
259
  if (!defaultContent) {
257
260
  _toast.default.danger(t('Processing_content_cannot_be_empty'));
258
261
  return;
@@ -267,11 +270,11 @@ function AIModule(_ref) {
267
270
  setIsGenerating(false);
268
271
  _toast.default.danger('AI_error_message');
269
272
  });
270
- }, [searchValue, selectedValue, t]);
273
+ }, [selectedValue, t]);
271
274
  const onMoreConciseClick = (0, _react.useCallback)(() => {
272
275
  setOpType(_constants.OPERATION_TYPES.MORE_CONCISE);
273
276
  setIsGenerating(true);
274
- const defaultContent = searchValue || selectedValue;
277
+ const defaultContent = selectedValue;
275
278
  if (!defaultContent) {
276
279
  _toast.default.danger(t('Processing_content_cannot_be_empty'));
277
280
  return;
@@ -286,11 +289,11 @@ function AIModule(_ref) {
286
289
  setIsGenerating(false);
287
290
  _toast.default.danger('AI_error_message');
288
291
  });
289
- }, [searchValue, selectedValue, t]);
292
+ }, [selectedValue, t]);
290
293
  const onMoreVividClick = (0, _react.useCallback)(() => {
291
294
  setOpType(_constants.OPERATION_TYPES.MORE_VIVID);
292
295
  setIsGenerating(true);
293
- const defaultContent = searchValue || selectedValue;
296
+ const defaultContent = selectedValue;
294
297
  if (!defaultContent) {
295
298
  _toast.default.danger(t('Processing_content_cannot_be_empty'));
296
299
  return;
@@ -305,9 +308,9 @@ function AIModule(_ref) {
305
308
  setIsGenerating(false);
306
309
  _toast.default.danger('Translation_error_message');
307
310
  });
308
- }, [searchValue, selectedValue, t]);
311
+ }, [selectedValue, t]);
309
312
  const onTranslateClick = (0, _react.useCallback)(lang => {
310
- const translateValue = searchValue ? searchValue : selectedValue;
313
+ let translateValue = selectedValue;
311
314
  if (!translateValue) {
312
315
  _toast.default.warning(t('The_translation_content_cannot_be_empty'));
313
316
  return;
@@ -316,17 +319,20 @@ function AIModule(_ref) {
316
319
  const translateLang = lang ? lang : currentLang;
317
320
  setCurrentLang(translateLang);
318
321
  setIsGenerating(true);
322
+ // translateValue = translateValue.replace(/\n/g, '<br>');
323
+ console.log(1, translateValue);
319
324
  _context.default.aiTranslate(translateValue, translateLang).then(res => {
320
325
  const {
321
326
  translation
322
327
  } = res.data;
328
+ console.log(3, translation);
323
329
  setSearchResult(translation);
324
330
  setIsGenerating(false);
325
331
  }).catch(err => {
326
332
  setIsGenerating(false);
327
333
  _toast.default.danger('Translation_error_message');
328
334
  });
329
- }, [currentLang, searchValue, selectedValue, t]);
335
+ }, [currentLang, selectedValue, t]);
330
336
  const focusToEndPath = (0, _react.useCallback)(path => {
331
337
  setTimeout(() => {
332
338
  const endOfLastNodePoint = _slate.Editor.end(editor, path);
@@ -349,15 +355,25 @@ function AIModule(_ref) {
349
355
  const path = _slateReact.ReactEditor.findPath(editor, element);
350
356
  nextPath = _slate.Path.next(path);
351
357
  }
358
+
359
+ // Prevent '\\n' from being pre-wrapped
360
+ console.log(1, searchResult);
361
+ const tempResult = searchResult.replace(/\\n/g, '\v');
362
+ const paragraphs = tempResult.split('\n').map(line => line.replace(/\v/g, '\\n')).filter(line => line.trim() !== '');
352
363
  const p = (0, _core.generateEmptyElement)(_constants2.PARAGRAPH);
353
- p.children[0].text = searchResult;
354
- _slate.Transforms.insertNodes(editor, p, {
355
- at: nextPath
364
+ paragraphs.forEach((line, index) => {
365
+ p.children[0].text = line;
366
+ _slate.Transforms.insertNodes(editor, p, {
367
+ at: nextPath
368
+ });
369
+ if (index < paragraphs.length - 1) {
370
+ nextPath = _slate.Path.next(nextPath);
371
+ }
356
372
  });
357
373
  onCloseClick();
358
374
  focusToEndPath(nextPath);
359
375
  }, [editor, element, focusToEndPath, onCloseClick, searchResult]);
360
- const onTryAgainClick = (0, _react.useCallback)(() => {
376
+ const onTryAgainClick = (0, _react.useCallback)(event => {
361
377
  switch (opType) {
362
378
  case _constants.OPERATION_TYPES.TRANSLATE:
363
379
  onTranslateClick();
@@ -374,10 +390,17 @@ function AIModule(_ref) {
374
390
  case _constants.OPERATION_TYPES.CONTINUATION:
375
391
  onContinuationClick();
376
392
  return;
393
+ case _constants.OPERATION_TYPES.DEFAULT:
394
+ event.stopPropagation();
395
+ event.nativeEvent.stopImmediatePropagation();
396
+ setSearchValue(oldSearchValue);
397
+ setSearchResult('');
398
+ setOldSearchValue('');
399
+ return;
377
400
  default:
378
401
  return;
379
402
  }
380
- }, [onContinuationClick, onMoreConciseClick, onMoreDetailsClick, onMoreVividClick, onTranslateClick, opType]);
403
+ }, [oldSearchValue, onContinuationClick, onMoreConciseClick, onMoreDetailsClick, onMoreVividClick, onTranslateClick, opType]);
381
404
  const onReplaceClick = (0, _react.useCallback)(() => {
382
405
  if (!element) {
383
406
  editor.deleteFragment();
@@ -410,7 +433,8 @@ function AIModule(_ref) {
410
433
  hasCloseButton: false,
411
434
  duration: 2
412
435
  });
413
- }, [searchResult, t]);
436
+ onCloseClick();
437
+ }, [onCloseClick, searchResult, t]);
414
438
  const onDeprecationClick = (0, _react.useCallback)(() => {
415
439
  onCloseClick();
416
440
  }, [onCloseClick]);
@@ -446,7 +470,7 @@ function AIModule(_ref) {
446
470
  }), /*#__PURE__*/_react.default.createElement("span", {
447
471
  className: `sdocfont sdoc-send-arrow ${!searchValue ? 'disable' : ''}`,
448
472
  onClick: onEnter
449
- }))), /*#__PURE__*/_react.default.createElement("div", {
473
+ }))), !searchValue && /*#__PURE__*/_react.default.createElement("div", {
450
474
  className: "sdoc-ai-operations sdoc-dropdown-menu"
451
475
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
452
476
  className: "op-type"
@@ -493,7 +517,7 @@ function AIModule(_ref) {
493
517
  }), /*#__PURE__*/_react.default.createElement("span", {
494
518
  className: `sdocfont sdoc-send-arrow ${!searchValue ? 'disable' : ''}`,
495
519
  onClick: onEnter
496
- }))), /*#__PURE__*/_react.default.createElement("div", {
520
+ }))), !searchValue && /*#__PURE__*/_react.default.createElement("div", {
497
521
  className: "sdoc-ai-operations sdoc-dropdown-menu"
498
522
  }, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
499
523
  menuConfig: _constants.OPERATION_MENUS_CONFIG.ADJUSTMENT,
@@ -83,6 +83,14 @@
83
83
  pointer-events: all;
84
84
  }
85
85
 
86
+ .sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-content {
87
+ white-space: pre-wrap;
88
+ line-height: 33px;
89
+ font-size: 11pt;
90
+ height:100%;
91
+ /* overflow-y: auto; */
92
+ }
93
+
86
94
  .sdoc-ai-module-container .sdoc-ai-result .sdoc-ai-result-header {
87
95
  display: flex;
88
96
  justify-content: space-between;
@@ -119,6 +119,12 @@ Object.defineProperty(exports, "SeaTableColumnPlugin", {
119
119
  return _seatableColumn.default;
120
120
  }
121
121
  });
122
+ Object.defineProperty(exports, "SeaTableRowPlugin", {
123
+ enumerable: true,
124
+ get: function () {
125
+ return _seatableRow.default;
126
+ }
127
+ });
122
128
  Object.defineProperty(exports, "SeaTableViewsPlugin", {
123
129
  enumerable: true,
124
130
  get: function () {
@@ -186,6 +192,7 @@ var _mention = _interopRequireDefault(require("./mention"));
186
192
  var _quickInsert = _interopRequireDefault(require("./quick-insert"));
187
193
  var _wikiLink = _interopRequireDefault(require("./wiki-link"));
188
194
  var _seatableColumn = _interopRequireDefault(require("./seatable-column"));
195
+ var _seatableRow = _interopRequireDefault(require("./seatable-row"));
189
196
  var _seatableTables = _interopRequireDefault(require("./seatable-tables"));
190
197
  var _group = _interopRequireDefault(require("./group"));
191
198
  const Plugins = [_markdown.default, _html.default, _header.default, _link.default, _blockquote.default, _list.default, _checkList.default, _codeBlock.default, _image.default, _video.default, _table.default, _multiColumn.default, _textStyle.default, _textAlign.default, _font.default, _sdocLink.default, _paragraph.default, _fileLink.default, _callout.default, _searchReplace.default, _quickInsert.default, _group.default];