@seafile/sdoc-editor 0.2.27 → 0.2.29-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/api/seafile-api.js +26 -0
  2. package/dist/assets/images/content-replaced.png +0 -0
  3. package/dist/basic-sdk/comment/hooks/use-comment-mount.js +7 -0
  4. package/dist/basic-sdk/editor/sdoc-editor.js +2 -3
  5. package/dist/basic-sdk/extension/constants/element-type.js +3 -2
  6. package/dist/basic-sdk/extension/constants/index.js +2 -2
  7. package/dist/basic-sdk/extension/plugins/html/helper.js +17 -16
  8. package/dist/basic-sdk/extension/plugins/html/rules/blockquote.js +0 -1
  9. package/dist/basic-sdk/extension/plugins/html/rules/check-list.js +0 -2
  10. package/dist/basic-sdk/extension/plugins/html/rules/code-block.js +0 -10
  11. package/dist/basic-sdk/extension/plugins/html/rules/header.js +0 -1
  12. package/dist/basic-sdk/extension/plugins/html/rules/image.js +0 -1
  13. package/dist/basic-sdk/extension/plugins/html/rules/link.js +0 -2
  14. package/dist/basic-sdk/extension/plugins/html/rules/list.js +3 -9
  15. package/dist/basic-sdk/extension/plugins/html/rules/paragraph.js +0 -1
  16. package/dist/basic-sdk/extension/plugins/html/rules/table.js +0 -3
  17. package/dist/basic-sdk/extension/plugins/html/rules/text.js +0 -7
  18. package/dist/basic-sdk/extension/plugins/list/helpers.js +0 -1
  19. package/dist/basic-sdk/extension/plugins/list/model.js +3 -3
  20. package/dist/basic-sdk/extension/plugins/list/plugin/insert-fragment-list.js +4 -4
  21. package/dist/basic-sdk/extension/plugins/list/plugin/normalize-list.js +2 -13
  22. package/dist/basic-sdk/extension/plugins/list/transforms/insert-list-item.js +13 -11
  23. package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items.js +2 -2
  24. package/dist/basic-sdk/extension/plugins/list/transforms/normalize-list-item.js +7 -7
  25. package/dist/basic-sdk/extension/plugins/list/transforms/toggle-list.js +16 -19
  26. package/dist/basic-sdk/extension/plugins/list/transforms/unwrap-list.js +5 -13
  27. package/dist/basic-sdk/extension/plugins/table/helpers.js +0 -1
  28. package/dist/basic-sdk/extension/render/custom-element.js +14 -14
  29. package/dist/basic-sdk/socket/socket-client.js +7 -0
  30. package/dist/basic-sdk/socket/socket-manager.js +3 -0
  31. package/dist/components/doc-operations/index.js +2 -1
  32. package/dist/components/doc-operations/notifications-operation/index.css +14 -0
  33. package/dist/components/doc-operations/notifications-operation/index.js +170 -0
  34. package/dist/components/doc-operations/notifications-operation/notifications-dialog/index.css +97 -0
  35. package/dist/components/doc-operations/notifications-operation/notifications-dialog/index.js +107 -0
  36. package/dist/components/doc-operations/notifications-operation/notifications-dialog/notification.js +25 -0
  37. package/dist/components/doc-operations/notifications-operation/notifications-popover/index.css +173 -0
  38. package/dist/components/doc-operations/notifications-operation/notifications-popover/index.js +78 -0
  39. package/dist/components/doc-operations/notifications-operation/notifications-popover/notification.js +54 -0
  40. package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +1 -2
  41. package/dist/components/doc-operations/tag-operation/tag-popover/index.css +1 -0
  42. package/dist/components/tip-dialog/index.css +44 -0
  43. package/dist/components/tip-dialog/index.js +51 -18
  44. package/dist/constants/index.js +2 -3
  45. package/dist/context.js +26 -0
  46. package/dist/layout/index.js +2 -1
  47. package/dist/layout/other.js +8 -0
  48. package/dist/model/index.js +2 -1
  49. package/dist/model/notification.js +21 -0
  50. package/dist/pages/published-revision-viewer.js +2 -2
  51. package/dist/pages/simple-editor.js +6 -6
  52. package/dist/utils/index.js +3 -33
  53. package/dist/utils/notification-utils.js +46 -0
  54. package/package.json +1 -1
  55. package/public/locales/cs/sdoc-editor.json +1 -1
  56. package/public/locales/de/sdoc-editor.json +1 -1
  57. package/public/locales/en/sdoc-editor.json +13 -3
  58. package/public/locales/es/sdoc-editor.json +1 -1
  59. package/public/locales/fr/sdoc-editor.json +1 -1
  60. package/public/locales/it/sdoc-editor.json +1 -1
  61. package/public/locales/ru/sdoc-editor.json +1 -1
  62. package/public/locales/zh_CN/sdoc-editor.json +4 -2
  63. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  64. package/public/media/sdoc-editor-font/iconfont.svg +2 -0
  65. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  66. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  67. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  68. package/public/media/sdoc-editor-font.css +4 -0
@@ -1,11 +1,9 @@
1
- import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
1
  import DateUtils from './date-utils';
3
2
  import LocalStorage from './local-storage-utils';
4
3
  import context from '../context';
5
- import { REVISION_FIRST_LOAD_KEY, REVISION_FIRST_LOAD_VALUE } from '../constants';
6
- import toaster from '../components/toast';
7
4
  import getEventTransfer from './get-event-transfer';
8
5
  import * as Hotkey from './hotkey';
6
+ import { createNotify } from './notification-utils';
9
7
  export var getDirPath = function getDirPath(path) {
10
8
  var dir = path.slice(0, path.lastIndexOf('/'));
11
9
  if (dir === '') {
@@ -51,39 +49,11 @@ export var isMac = function isMac() {
51
49
  return platform === 'Mac68K' || platform === 'MacPPC' || platform === 'Macintosh' || platform === 'MacIntel';
52
50
  };
53
51
  export var isMobile = typeof window !== 'undefined' && (window.innerWidth < 768 || navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null);
54
- export var resetWebTitleAndURL = function resetWebTitleAndURL(t) {
52
+ export var resetWebTitle = function resetWebTitle(t) {
55
53
  var isSdocRevision = context.getSetting('isSdocRevision');
56
54
  var originFilename = context.getSetting('originFilename');
57
55
  if (!isSdocRevision) return;
58
56
  window.document.getElementsByTagName('title')[0].innerText = "".concat(t('Revision'), " - ").concat(originFilename);
59
-
60
- // show revision created success info
61
- var url = new URL(window.location.href);
62
- var searchParams = new URLSearchParams(url.search);
63
- if (!searchParams.has(REVISION_FIRST_LOAD_KEY)) return;
64
- var firstLoadValue = searchParams.get(REVISION_FIRST_LOAD_KEY);
65
- if (firstLoadValue === REVISION_FIRST_LOAD_VALUE) {
66
- var revisionId = context.getSetting('revisionId');
67
- toaster.success(t('Revision_created', {
68
- id: revisionId
69
- }));
70
- searchParams.delete(REVISION_FIRST_LOAD_KEY);
71
- }
72
- var newParamsString = '';
73
- var _iterator = _createForOfIteratorHelper(searchParams.entries()),
74
- _step;
75
- try {
76
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
77
- var item = _step.value;
78
- newParamsString = newParamsString + "&".concat(item[0], "=").concat(item[1]);
79
- }
80
- } catch (err) {
81
- _iterator.e(err);
82
- } finally {
83
- _iterator.f();
84
- }
85
- var newURL = "".concat(url.origin).concat(url.pathname).concat(newParamsString ? '/?' + newParamsString : '');
86
- window.history.replaceState(null, null, newURL);
87
57
  };
88
58
  export var getSelectionCoords = function getSelectionCoords() {
89
59
  var doc = window.document;
@@ -140,4 +110,4 @@ export var getSelectionCoords = function getSelectionCoords() {
140
110
  y: y
141
111
  };
142
112
  };
143
- export { DateUtils, LocalStorage, getEventTransfer, Hotkey };
113
+ export { DateUtils, LocalStorage, getEventTransfer, Hotkey, createNotify };
@@ -0,0 +1,46 @@
1
+ import dayjs from 'dayjs';
2
+ import relativeTime from 'dayjs/plugin/relativeTime';
3
+ import context from '../context';
4
+ dayjs.extend(relativeTime);
5
+ var PERMISSION_GRANTED = 'granted';
6
+ var notify = function notify($title, $options) {
7
+ var notification = new Notification($title, $options);
8
+
9
+ //auto clear notifications
10
+ var timer = setTimeout(notification.close.bind(notification), 5000);
11
+ notification.onshow = function (event) {
12
+ var _context$getSetting = context.getSetting('mediaUrl'),
13
+ mediaUrl = _context$getSetting.mediaUrl;
14
+ var newAudioElement = document.createElement('audio');
15
+ newAudioElement.setAttribute('src', "".concat(mediaUrl, "audio/classic.mp3"));
16
+ newAudioElement.setAttribute('autoplay', 'autoplay');
17
+ newAudioElement.setAttribute('id', 'seatable-audio');
18
+ var audioElement = document.getElementById('seatable-audio');
19
+ if (audioElement) {
20
+ document.body.removeChild(audioElement);
21
+ }
22
+ document.body.appendChild(newAudioElement);
23
+ };
24
+ notification.onclose = function () {
25
+ clearTimeout(timer);
26
+ };
27
+ notification.onclick = function () {
28
+ notification.close();
29
+ };
30
+ };
31
+ var createNotify = function createNotify(title, options) {
32
+ // Let's check if the browser supports notifications
33
+ if (!('Notification' in window)) {
34
+ return false;
35
+ }
36
+ if (Notification.permission === PERMISSION_GRANTED) {
37
+ notify(title, options);
38
+ } else {
39
+ Notification.requestPermission(function (res) {
40
+ if (res === PERMISSION_GRANTED) {
41
+ notify(title, options);
42
+ }
43
+ });
44
+ }
45
+ };
46
+ export { createNotify };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "0.2.27",
3
+ "version": "0.2.29beta",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
@@ -378,13 +378,12 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
385
385
  "Has_conflict_before_view_changes_tip": "There are conflicts in the document. Please resolve the conflict before viewing the changes!",
386
386
  "Has_been_removed_tip": "Document has been removed, please view other documents.",
387
- "Revision_created": "Revision {{id}} created",
388
387
  "Checking": "Checking...",
389
388
  "Publishing": "Publishing...",
390
389
  "Inline": "Inline",
@@ -408,5 +407,16 @@
408
407
  "Add_option": "Create a new tag",
409
408
  "Find_an_option": "Search tags",
410
409
  "Copy_link_of_section": "Copy link of section",
411
- "revision": "revision"
410
+ "revision": "revision",
411
+ "xxx_added_a_new_comment": "{{author}} added a new comment",
412
+ "xxx_added_a_reply": "{{author}} added a reply",
413
+ "Added_a_new_comment": "Added a new comment",
414
+ "Added_a_reply": "Added a reply",
415
+ "All_notifications": "All notifications",
416
+ "No_notification": "No notification",
417
+ "Mark_all_as_read": "Mark all as read",
418
+ "Delete_all_notifications": "Delete all notifications",
419
+ "View_all_notifications": "View all notifications",
420
+ "Notification": "Notification",
421
+ "Update_date": "Update date"
412
422
  }
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Keep both modification",
379
379
  "Tip": "Tip",
380
380
  "Rebase_delete_no_change_revision_tip": "Revision has not made any change compared to original document. Do you want to delete this revision?",
381
- "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "There are conflicts in the document, please resolve it before publishing!",
384
384
  "Merge_tip": "There are conflicts in the documents. Do you want to merge them?",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "Сохранить обе модификации",
379
379
  "Tip": "Совет",
380
380
  "Rebase_delete_no_change_revision_tip": "Редакция не внесла никаких изменений по сравнению с исходным документом. Вы хотите удалить эту редакцию?",
381
- "Has_been_replaced_tip": "Содержимое документа было заменено. Обновите страницу.",
381
+ "Has_been_replaced_tip": "Document content has been replaced. Please refresh the page",
382
382
  "Has_been_published_tip": "Revision published",
383
383
  "Has_conflict_before_publish_tip": "В документе есть конфликты, разрешите их перед публикацией!",
384
384
  "Merge_tip": "В документах есть конфликты. Вы хотите объединить их?",
@@ -378,7 +378,7 @@
378
378
  "Keep_both_modification": "保留两者更改",
379
379
  "Tip": "提示",
380
380
  "Rebase_delete_no_change_revision_tip": "修订改没有更改,是否删除修订稿?",
381
- "Has_been_replaced_tip": "文档内容已经被替换,请刷新页面。",
381
+ "Has_been_replaced_tip": "文档内容已经被替换,请刷新页面",
382
382
  "Has_been_published_tip": "修订稿已发布",
383
383
  "Has_conflict_before_publish_tip": "文档有冲突,请解决冲突后再发布!",
384
384
  "Merge_tip": "文档有冲突,是否合并?",
@@ -408,5 +408,7 @@
408
408
  "Add_option": "新建标签",
409
409
  "Find_an_option": "查找标签",
410
410
  "Copy_link_of_section": "拷贝章节的链接",
411
- "revision": "修订稿"
411
+ "revision": "修订稿",
412
+ "xxx_added_a_new_comment": "{{author}}添加了一条新评论",
413
+ "xxx_added_a_reply": "{{author}}添加了一条回复"
412
414
  }
@@ -14,6 +14,8 @@
14
14
  />
15
15
  <missing-glyph />
16
16
 
17
+ <glyph glyph-name="sdoc-notification" unicode="&#58970;" d="M931.2 80c-3.2 80-44.8 150.4-105.6 198.4V496c0 124.8-89.6 233.6-208 256v6.4C617.6 816 572.8 864 515.2 864S409.6 816 409.6 758.4v-6.4c-118.4-25.6-208-131.2-208-256v-217.6C137.6 233.6 99.2 160 96 80h835.2zM492.8-96h25.6c67.2 0 124.8 51.2 134.4 118.4H377.6c9.6-67.2 64-118.4 134.4-118.4h-19.2z" horiz-adv-x="1024" />
18
+
17
19
  <glyph glyph-name="sdoc-add" unicode="&#58968;" d="M512-128C227.2-128 0 99.2 0 384S227.2 896 512 896s512-227.2 512-512-227.2-512-512-512z m-51.2 563.2H291.2c-19.2 0-35.2-12.8-35.2-35.2v-35.2c0-19.2 12.8-35.2 35.2-35.2h169.6V160c0-19.2 12.8-35.2 35.2-35.2h35.2c19.2 0 35.2 12.8 35.2 35.2v169.6H736c19.2 0 35.2 12.8 35.2 35.2v35.2c0 19.2-12.8 35.2-35.2 35.2h-169.6V604.8c0 19.2-12.8 35.2-35.2 35.2h-35.2c-19.2 0-35.2-12.8-35.2-35.2v-169.6z" horiz-adv-x="1024" />
18
20
 
19
21
  <glyph glyph-name="sdoc-tag" unicode="&#58969;" d="M521.353986 860.33363l466.979644-466.979644c22.389435-22.389435 35.183398-51.175851 35.183398-83.160758s-12.793963-60.771324-35.183398-83.160759l-323.047562-319.849071c-22.389435-22.389435-51.175851-35.183398-79.962268-35.183398-31.984907 0-60.771324 12.793963-83.160758 35.183398L35.183398 374.163042c-25.587926 25.587926-38.381889 60.771324-31.984907 95.954721l31.984907 291.062655c6.396981 54.374342 47.977361 95.954721 102.351703 102.351703l291.062654 31.984907c31.984907 3.198491 67.168305-9.595472 92.756231-35.183398zM444.590209 767.577399L159.924536 735.592492l-31.984908-281.467182L578.926819-0.060372l316.65058 313.45209L444.590209 767.577399z m12.793963-127.939628c57.572833-57.572833 57.572833-147.130573 0-204.703406-25.587926-25.587926-63.969814-41.580379-102.351703-41.580379-38.381889 0-73.565286 12.793963-102.351703 41.580379-57.572833 57.572833-57.572833 147.130573 0 204.703406 57.572833 57.572833 150.329063 57.572833 204.703406 0z m-102.351703-70.366796c-6.396981 0-15.992454-3.198491-22.389435-9.595472-12.793963-12.793963-12.793963-31.984907 0-44.77887 12.793963-12.793963 31.984907-12.793963 44.77887 0 12.793963 12.793963 12.793963 31.984907 0 44.77887-6.396981 6.396981-12.793963 9.595472-22.389435 9.595472z" horiz-adv-x="1024" />
@@ -16,6 +16,10 @@
16
16
  -moz-osx-font-smoothing: grayscale;
17
17
  }
18
18
 
19
+ .sdoc-notification:before {
20
+ content: "\e65a";
21
+ }
22
+
19
23
  .sdoc-add:before {
20
24
  content: "\e658";
21
25
  }