@seafile/sdoc-editor 0.3.6 → 0.3.7

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 (339) hide show
  1. package/dist/api/sdoc-server-api.js +165 -170
  2. package/dist/api/seafile-api.js +180 -246
  3. package/dist/basic-sdk/comment/comment-decorate.js +23 -30
  4. package/dist/basic-sdk/comment/components/comment-all-participants/index.js +18 -18
  5. package/dist/basic-sdk/comment/components/comment-all-participants/participant-avatar.js +13 -13
  6. package/dist/basic-sdk/comment/components/comment-delete-shadow.js +11 -9
  7. package/dist/basic-sdk/comment/components/comment-editor.js +37 -34
  8. package/dist/basic-sdk/comment/components/comment-input/comment-participant-item.js +16 -14
  9. package/dist/basic-sdk/comment/components/comment-input/index.js +110 -106
  10. package/dist/basic-sdk/comment/components/comment-item-content.js +29 -37
  11. package/dist/basic-sdk/comment/components/comment-item-reply.js +24 -33
  12. package/dist/basic-sdk/comment/components/comment-item-resolved-reply.js +5 -3
  13. package/dist/basic-sdk/comment/components/comment-item-wrapper.js +190 -285
  14. package/dist/basic-sdk/comment/components/comment-list.js +52 -72
  15. package/dist/basic-sdk/comment/components/comment-participants-editor/index.js +23 -30
  16. package/dist/basic-sdk/comment/components/comment-participants-editor/searched-collaborators.js +21 -19
  17. package/dist/basic-sdk/comment/components/comment-participants-editor/selected-participants.js +16 -14
  18. package/dist/basic-sdk/comment/components/editor-comment.js +23 -32
  19. package/dist/basic-sdk/comment/components/elements-comment-count/element-comment-count.js +18 -20
  20. package/dist/basic-sdk/comment/components/elements-comment-count/index.js +8 -8
  21. package/dist/basic-sdk/comment/components/global-comment/global-comment-body-header.js +23 -25
  22. package/dist/basic-sdk/comment/components/global-comment/global-comment-editor.js +9 -7
  23. package/dist/basic-sdk/comment/components/global-comment/global-comment-header.js +9 -6
  24. package/dist/basic-sdk/comment/components/global-comment/index.js +63 -86
  25. package/dist/basic-sdk/comment/constants/index.js +9 -9
  26. package/dist/basic-sdk/comment/helper.js +27 -26
  27. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-context.js +8 -7
  28. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-list.js +19 -30
  29. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-mount.js +41 -71
  30. package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-context.js +8 -7
  31. package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-mount.js +45 -64
  32. package/dist/basic-sdk/comment/hooks/use-participants.js +46 -53
  33. package/dist/basic-sdk/comment/index.js +22 -19
  34. package/dist/basic-sdk/comment/provider/comment-context-provider.js +9 -11
  35. package/dist/basic-sdk/comment/provider/index.js +4 -2
  36. package/dist/basic-sdk/comment/provider/notification-context-provider.js +9 -11
  37. package/dist/basic-sdk/comment/reducer/comment-reducer.js +151 -137
  38. package/dist/basic-sdk/comment/reducer/notification-reducer.js +20 -15
  39. package/dist/basic-sdk/comment/utils/index.js +180 -173
  40. package/dist/basic-sdk/comment/utils/notification-utils.js +15 -14
  41. package/dist/basic-sdk/constants/index.js +9 -9
  42. package/dist/basic-sdk/cursor/helper.js +13 -9
  43. package/dist/basic-sdk/cursor/use-cursors.js +9 -13
  44. package/dist/basic-sdk/decorates/index.js +8 -9
  45. package/dist/basic-sdk/editor/editable-article.js +63 -57
  46. package/dist/basic-sdk/editor/sdoc-editor.js +42 -47
  47. package/dist/basic-sdk/extension/commons/color-menu/color-item.js +6 -4
  48. package/dist/basic-sdk/extension/commons/color-menu/index.js +40 -50
  49. package/dist/basic-sdk/extension/commons/dropdown-menu-item/index.js +17 -16
  50. package/dist/basic-sdk/extension/commons/element-popover/index.js +27 -45
  51. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +46 -59
  52. package/dist/basic-sdk/extension/commons/menu/menu-group.js +7 -21
  53. package/dist/basic-sdk/extension/commons/menu/menu-item.js +17 -14
  54. package/dist/basic-sdk/extension/commons/more-dropdown/index.js +9 -7
  55. package/dist/basic-sdk/extension/commons/select-file-dialog/helpers.js +3 -3
  56. package/dist/basic-sdk/extension/commons/select-file-dialog/index.js +26 -23
  57. package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +49 -80
  58. package/dist/basic-sdk/extension/constants/color.js +10 -10
  59. package/dist/basic-sdk/extension/constants/diff-view.js +3 -3
  60. package/dist/basic-sdk/extension/constants/element-type.js +29 -29
  61. package/dist/basic-sdk/extension/constants/font.js +44 -37
  62. package/dist/basic-sdk/extension/constants/index.js +27 -16
  63. package/dist/basic-sdk/extension/constants/keyboard.js +4 -4
  64. package/dist/basic-sdk/extension/constants/menus-config.js +234 -203
  65. package/dist/basic-sdk/extension/core/queries/index.js +185 -285
  66. package/dist/basic-sdk/extension/core/transforms/focus-editor.js +2 -2
  67. package/dist/basic-sdk/extension/core/transforms/move-children.js +14 -14
  68. package/dist/basic-sdk/extension/core/transforms/remove-node-children.js +6 -18
  69. package/dist/basic-sdk/extension/core/transforms/replace-node.js +22 -19
  70. package/dist/basic-sdk/extension/core/transforms/update-parent-node.js +6 -8
  71. package/dist/basic-sdk/extension/core/utils/index.js +12 -12
  72. package/dist/basic-sdk/extension/index.js +6 -6
  73. package/dist/basic-sdk/extension/plugins/blockquote/helpers.js +39 -54
  74. package/dist/basic-sdk/extension/plugins/blockquote/index.js +1 -1
  75. package/dist/basic-sdk/extension/plugins/blockquote/menu/index.js +34 -44
  76. package/dist/basic-sdk/extension/plugins/blockquote/model.js +8 -9
  77. package/dist/basic-sdk/extension/plugins/blockquote/plugin.js +36 -37
  78. package/dist/basic-sdk/extension/plugins/blockquote/render-elem.js +7 -5
  79. package/dist/basic-sdk/extension/plugins/check-list/helpers.js +15 -25
  80. package/dist/basic-sdk/extension/plugins/check-list/index.js +1 -1
  81. package/dist/basic-sdk/extension/plugins/check-list/menu/index.js +35 -45
  82. package/dist/basic-sdk/extension/plugins/check-list/model.js +9 -10
  83. package/dist/basic-sdk/extension/plugins/check-list/plugin.js +16 -10
  84. package/dist/basic-sdk/extension/plugins/check-list/render-elem.js +42 -56
  85. package/dist/basic-sdk/extension/plugins/clear-format/helpers.js +21 -36
  86. package/dist/basic-sdk/extension/plugins/clear-format/menu/index.js +12 -10
  87. package/dist/basic-sdk/extension/plugins/code-block/helpers.js +40 -58
  88. package/dist/basic-sdk/extension/plugins/code-block/hover-menu/index.js +38 -46
  89. package/dist/basic-sdk/extension/plugins/code-block/index.js +1 -1
  90. package/dist/basic-sdk/extension/plugins/code-block/menu/index.js +9 -7
  91. package/dist/basic-sdk/extension/plugins/code-block/model.js +8 -9
  92. package/dist/basic-sdk/extension/plugins/code-block/plugin.js +44 -51
  93. package/dist/basic-sdk/extension/plugins/code-block/prismjs.js +27 -27
  94. package/dist/basic-sdk/extension/plugins/code-block/render-elem.js +62 -58
  95. package/dist/basic-sdk/extension/plugins/file-link/constants/index.js +16 -14
  96. package/dist/basic-sdk/extension/plugins/file-link/helpers.js +34 -36
  97. package/dist/basic-sdk/extension/plugins/file-link/hover-menu/index.js +19 -23
  98. package/dist/basic-sdk/extension/plugins/file-link/index.js +1 -1
  99. package/dist/basic-sdk/extension/plugins/file-link/menu/index.js +10 -8
  100. package/dist/basic-sdk/extension/plugins/file-link/plugin.js +17 -11
  101. package/dist/basic-sdk/extension/plugins/file-link/render-elem.js +34 -38
  102. package/dist/basic-sdk/extension/plugins/font/helpers.js +75 -78
  103. package/dist/basic-sdk/extension/plugins/font/index.js +1 -1
  104. package/dist/basic-sdk/extension/plugins/font/menu/font-family/font-item.js +14 -13
  105. package/dist/basic-sdk/extension/plugins/font/menu/font-family/index.js +38 -55
  106. package/dist/basic-sdk/extension/plugins/font/menu/font-size/font-size-scale.js +12 -10
  107. package/dist/basic-sdk/extension/plugins/font/menu/font-size/index.js +29 -31
  108. package/dist/basic-sdk/extension/plugins/font/menu/index.js +5 -3
  109. package/dist/basic-sdk/extension/plugins/font/plugin.js +4 -4
  110. package/dist/basic-sdk/extension/plugins/header/helpers.js +32 -38
  111. package/dist/basic-sdk/extension/plugins/header/index.js +1 -1
  112. package/dist/basic-sdk/extension/plugins/header/menu/index.js +101 -107
  113. package/dist/basic-sdk/extension/plugins/header/plugin.js +41 -44
  114. package/dist/basic-sdk/extension/plugins/header/render-elem.js +28 -20
  115. package/dist/basic-sdk/extension/plugins/html/helper.js +30 -28
  116. package/dist/basic-sdk/extension/plugins/html/index.js +1 -1
  117. package/dist/basic-sdk/extension/plugins/html/plugin.js +12 -10
  118. package/dist/basic-sdk/extension/plugins/html/rules/blockquote.js +5 -3
  119. package/dist/basic-sdk/extension/plugins/html/rules/check-list.js +4 -2
  120. package/dist/basic-sdk/extension/plugins/html/rules/code-block.js +20 -24
  121. package/dist/basic-sdk/extension/plugins/html/rules/header.js +7 -5
  122. package/dist/basic-sdk/extension/plugins/html/rules/image.js +4 -2
  123. package/dist/basic-sdk/extension/plugins/html/rules/index.js +1 -1
  124. package/dist/basic-sdk/extension/plugins/html/rules/link.js +5 -3
  125. package/dist/basic-sdk/extension/plugins/html/rules/list.js +6 -4
  126. package/dist/basic-sdk/extension/plugins/html/rules/paragraph.js +5 -3
  127. package/dist/basic-sdk/extension/plugins/html/rules/table.js +5 -3
  128. package/dist/basic-sdk/extension/plugins/html/rules/text.js +5 -3
  129. package/dist/basic-sdk/extension/plugins/image/constants/index.js +2 -2
  130. package/dist/basic-sdk/extension/plugins/image/dialogs/image-previewer.js +59 -75
  131. package/dist/basic-sdk/extension/plugins/image/helpers.js +74 -98
  132. package/dist/basic-sdk/extension/plugins/image/hover-menu/index.js +49 -62
  133. package/dist/basic-sdk/extension/plugins/image/index.js +1 -1
  134. package/dist/basic-sdk/extension/plugins/image/menu/index.js +12 -9
  135. package/dist/basic-sdk/extension/plugins/image/model.js +11 -12
  136. package/dist/basic-sdk/extension/plugins/image/plugin.js +43 -35
  137. package/dist/basic-sdk/extension/plugins/image/render-elem.js +73 -91
  138. package/dist/basic-sdk/extension/plugins/index.js +1 -1
  139. package/dist/basic-sdk/extension/plugins/link/dialog/add-link-dialog/index.js +30 -39
  140. package/dist/basic-sdk/extension/plugins/link/helpers.js +76 -100
  141. package/dist/basic-sdk/extension/plugins/link/hover/index.js +12 -9
  142. package/dist/basic-sdk/extension/plugins/link/index.js +1 -1
  143. package/dist/basic-sdk/extension/plugins/link/menu/index.js +10 -8
  144. package/dist/basic-sdk/extension/plugins/link/model.js +10 -11
  145. package/dist/basic-sdk/extension/plugins/link/plugin.js +28 -31
  146. package/dist/basic-sdk/extension/plugins/link/render-elem.js +66 -74
  147. package/dist/basic-sdk/extension/plugins/list/helpers.js +45 -57
  148. package/dist/basic-sdk/extension/plugins/list/index.js +1 -1
  149. package/dist/basic-sdk/extension/plugins/list/menu/index.js +37 -49
  150. package/dist/basic-sdk/extension/plugins/list/model.js +11 -12
  151. package/dist/basic-sdk/extension/plugins/list/plugin/index.js +16 -12
  152. package/dist/basic-sdk/extension/plugins/list/plugin/insert-break-list.js +4 -4
  153. package/dist/basic-sdk/extension/plugins/list/plugin/insert-fragment-list.js +54 -70
  154. package/dist/basic-sdk/extension/plugins/list/plugin/normalize-list.js +16 -20
  155. package/dist/basic-sdk/extension/plugins/list/plugin/on-tab-handle.js +19 -14
  156. package/dist/basic-sdk/extension/plugins/list/plugin/shortcut.js +20 -28
  157. package/dist/basic-sdk/extension/plugins/list/queries/index.js +16 -18
  158. package/dist/basic-sdk/extension/plugins/list/render-elem.js +23 -15
  159. package/dist/basic-sdk/extension/plugins/list/transforms/insert-list-item.js +20 -24
  160. package/dist/basic-sdk/extension/plugins/list/transforms/move-list-item-down.js +16 -19
  161. package/dist/basic-sdk/extension/plugins/list/transforms/move-list-item-up.js +31 -35
  162. package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items-to-list.js +18 -18
  163. package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items.js +23 -24
  164. package/dist/basic-sdk/extension/plugins/list/transforms/normalize-list-item.js +38 -55
  165. package/dist/basic-sdk/extension/plugins/list/transforms/normalize-nested-list.js +11 -13
  166. package/dist/basic-sdk/extension/plugins/list/transforms/remove-first-list-item.js +8 -8
  167. package/dist/basic-sdk/extension/plugins/list/transforms/toggle-list.js +42 -50
  168. package/dist/basic-sdk/extension/plugins/list/transforms/unwrap-list.js +11 -14
  169. package/dist/basic-sdk/extension/plugins/markdown/index.js +1 -1
  170. package/dist/basic-sdk/extension/plugins/markdown/plugin.js +59 -52
  171. package/dist/basic-sdk/extension/plugins/paragraph/index.js +1 -1
  172. package/dist/basic-sdk/extension/plugins/paragraph/render-elem.js +12 -10
  173. package/dist/basic-sdk/extension/plugins/sdoc-link/constants/index.js +16 -14
  174. package/dist/basic-sdk/extension/plugins/sdoc-link/helpers.js +66 -65
  175. package/dist/basic-sdk/extension/plugins/sdoc-link/hover-menu/index.js +19 -23
  176. package/dist/basic-sdk/extension/plugins/sdoc-link/index.js +1 -1
  177. package/dist/basic-sdk/extension/plugins/sdoc-link/menu/index.js +10 -8
  178. package/dist/basic-sdk/extension/plugins/sdoc-link/plugin.js +23 -15
  179. package/dist/basic-sdk/extension/plugins/sdoc-link/render-elem.js +35 -39
  180. package/dist/basic-sdk/extension/plugins/table/constants/index.js +16 -14
  181. package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.js +17 -24
  182. package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/number-input.js +9 -7
  183. package/dist/basic-sdk/extension/plugins/table/helpers.js +466 -440
  184. package/dist/basic-sdk/extension/plugins/table/index.js +1 -1
  185. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/cell-bg-color-menu.js +16 -13
  186. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/cell-text-align-menu.js +16 -18
  187. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/common-menu.js +58 -65
  188. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.js +7 -5
  189. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/remove-table-menu.js +11 -9
  190. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/table-column-menu.js +13 -14
  191. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/table-row-menu.js +13 -14
  192. package/dist/basic-sdk/extension/plugins/table/menu/table-context-menu/index.js +92 -105
  193. package/dist/basic-sdk/extension/plugins/table/menu/table-context-menu/insert-table-element.js +62 -66
  194. package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +9 -7
  195. package/dist/basic-sdk/extension/plugins/table/model.js +14 -15
  196. package/dist/basic-sdk/extension/plugins/table/plugin.js +130 -112
  197. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +31 -45
  198. package/dist/basic-sdk/extension/plugins/table/popover/table-template/index.js +12 -14
  199. package/dist/basic-sdk/extension/plugins/table/popover/table-template/sample-table.js +15 -19
  200. package/dist/basic-sdk/extension/plugins/table/render/hooks.js +25 -32
  201. package/dist/basic-sdk/extension/plugins/table/render/index.js +57 -67
  202. package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +42 -36
  203. package/dist/basic-sdk/extension/plugins/table/render/render-row.js +44 -49
  204. package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/first-column-left-resize-handler.js +36 -45
  205. package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/index.js +10 -8
  206. package/dist/basic-sdk/extension/plugins/table/render/resize-handlers/resize-handler.js +41 -50
  207. package/dist/basic-sdk/extension/plugins/table/render/table-header/columns-header/column-header.js +30 -29
  208. package/dist/basic-sdk/extension/plugins/table/render/table-header/columns-header/index.js +21 -33
  209. package/dist/basic-sdk/extension/plugins/table/render/table-header/index.js +17 -15
  210. package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-columns-header.js +7 -5
  211. package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-header/index.js +22 -32
  212. package/dist/basic-sdk/extension/plugins/table/render/table-header/rows-header/row-header.js +41 -43
  213. package/dist/basic-sdk/extension/plugins/table/render/table-root.js +16 -20
  214. package/dist/basic-sdk/extension/plugins/text-align/helpers.js +19 -24
  215. package/dist/basic-sdk/extension/plugins/text-align/index.js +1 -1
  216. package/dist/basic-sdk/extension/plugins/text-align/menu/index.js +20 -26
  217. package/dist/basic-sdk/extension/plugins/text-style/caret.js +9 -7
  218. package/dist/basic-sdk/extension/plugins/text-style/helpers.js +17 -24
  219. package/dist/basic-sdk/extension/plugins/text-style/index.js +1 -1
  220. package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +38 -37
  221. package/dist/basic-sdk/extension/plugins/text-style/plugin.js +6 -6
  222. package/dist/basic-sdk/extension/plugins/text-style/render-elem.js +14 -10
  223. package/dist/basic-sdk/extension/render/custom-element.js +30 -49
  224. package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/index.js +6 -4
  225. package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-delete-modify-decorate.js +13 -10
  226. package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-modify-delete-decorate.js +13 -10
  227. package/dist/basic-sdk/extension/render/element-decorate/rebase-decorate/rebase-modify-modify-decorate.js +21 -19
  228. package/dist/basic-sdk/extension/render/render-element.js +5 -3
  229. package/dist/basic-sdk/extension/render/render-leaf.js +4 -6
  230. package/dist/basic-sdk/extension/toolbar/context-toolbar/index.js +18 -16
  231. package/dist/basic-sdk/extension/toolbar/header-toolbar/index.js +5 -3
  232. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +29 -29
  233. package/dist/basic-sdk/extension/toolbar/header-toolbar/redo-undo.js +45 -53
  234. package/dist/basic-sdk/extension/toolbar/side-toolbar/event.js +8 -8
  235. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +45 -49
  236. package/dist/basic-sdk/extension/toolbar/side-toolbar/index.js +50 -72
  237. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-below-menu.js +5 -3
  238. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +25 -26
  239. package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu.js +24 -26
  240. package/dist/basic-sdk/extension/toolbar/side-toolbar/transform-menus.js +14 -16
  241. package/dist/basic-sdk/extension/utils/index.js +4 -4
  242. package/dist/basic-sdk/highlight/index.js +8 -13
  243. package/dist/basic-sdk/highlight/setNodeToDecorations.js +43 -73
  244. package/dist/basic-sdk/hooks/use-color-context.js +27 -35
  245. package/dist/basic-sdk/hooks/use-scroll-context.js +6 -4
  246. package/dist/basic-sdk/hooks/use-selection-element.js +5 -7
  247. package/dist/basic-sdk/hooks/use-selection-position.js +13 -15
  248. package/dist/basic-sdk/hooks/use-selection-update.js +6 -11
  249. package/dist/basic-sdk/layout/article-container.js +20 -23
  250. package/dist/basic-sdk/layout/editor-container.js +6 -4
  251. package/dist/basic-sdk/layout/editor-content.js +15 -15
  252. package/dist/basic-sdk/node-id/constants.js +9 -9
  253. package/dist/basic-sdk/node-id/helpers.js +44 -29
  254. package/dist/basic-sdk/node-id/index.js +13 -11
  255. package/dist/basic-sdk/outline/index.js +24 -27
  256. package/dist/basic-sdk/outline/outline-item.js +39 -44
  257. package/dist/basic-sdk/socket/helpers.js +99 -90
  258. package/dist/basic-sdk/socket/socket-client.js +175 -171
  259. package/dist/basic-sdk/socket/socket-manager.js +316 -297
  260. package/dist/basic-sdk/socket/with-socket-io.js +38 -30
  261. package/dist/basic-sdk/utils/debug.js +4 -4
  262. package/dist/basic-sdk/utils/diff-text.js +191 -193
  263. package/dist/basic-sdk/utils/diff.js +115 -106
  264. package/dist/basic-sdk/utils/document-utils.js +10 -13
  265. package/dist/basic-sdk/utils/dom-utils.js +18 -16
  266. package/dist/basic-sdk/utils/event-bus.js +26 -39
  267. package/dist/basic-sdk/utils/event-handler.js +81 -79
  268. package/dist/basic-sdk/utils/mouse-event.js +29 -27
  269. package/dist/basic-sdk/utils/object-utils.js +35 -53
  270. package/dist/basic-sdk/utils/rebase.js +101 -76
  271. package/dist/basic-sdk/views/published-revision-diff-viewer.js +19 -22
  272. package/dist/basic-sdk/views/readonly-article.js +7 -5
  273. package/dist/basic-sdk/views/revision-diff-viewer.js +15 -18
  274. package/dist/basic-sdk/views/sdoc-diff-viewer.js +8 -6
  275. package/dist/basic-sdk/views/sdoc-viewer.js +9 -7
  276. package/dist/components/common-loading/index.js +1 -1
  277. package/dist/components/doc-info/index.js +25 -23
  278. package/dist/components/doc-operations/collaborators-operation/collaborators-popover.js +36 -49
  279. package/dist/components/doc-operations/collaborators-operation/index.js +58 -76
  280. package/dist/components/doc-operations/comments-operation/index.js +7 -13
  281. package/dist/components/doc-operations/history-operation.js +5 -5
  282. package/dist/components/doc-operations/index.js +10 -9
  283. package/dist/components/doc-operations/more-operations.js +15 -21
  284. package/dist/components/doc-operations/revision-operations/changes-count/index.js +15 -16
  285. package/dist/components/doc-operations/revision-operations/index.js +65 -71
  286. package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +13 -17
  287. package/dist/components/doc-operations/revision-operations/publish-revision/index.js +8 -5
  288. package/dist/components/doc-operations/revision-operations/revisions/index.js +13 -19
  289. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +56 -87
  290. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +14 -16
  291. package/dist/components/doc-operations/revision-operations/view-changes/index.js +25 -32
  292. package/dist/components/doc-operations/share-operation/index.js +2 -2
  293. package/dist/components/doc-operations/tag-operation/constans.js +1 -1
  294. package/dist/components/doc-operations/tag-operation/file-tag-quick-view/index.js +26 -42
  295. package/dist/components/doc-operations/tag-operation/index.js +1 -1
  296. package/dist/components/doc-operations/tag-operation/tag-popover/index.js +95 -175
  297. package/dist/components/doc-operations/tag-operation/utils.js +2 -6
  298. package/dist/components/draft-dropdown/index.js +44 -53
  299. package/dist/components/loading/index.js +8 -22
  300. package/dist/components/modal-portal/index.js +15 -32
  301. package/dist/components/switch/index.js +8 -6
  302. package/dist/components/tip-dialog/index.js +21 -23
  303. package/dist/components/tip-message/index.js +93 -92
  304. package/dist/components/toast/alert.js +73 -88
  305. package/dist/components/toast/index.js +1 -1
  306. package/dist/components/toast/toast.js +76 -103
  307. package/dist/components/toast/toastManager.js +55 -89
  308. package/dist/components/toast/toaster.js +54 -56
  309. package/dist/components/tooltip/index.js +15 -16
  310. package/dist/constants/index.js +26 -6
  311. package/dist/constants/transfer-types.js +3 -3
  312. package/dist/context.js +242 -339
  313. package/dist/hooks/use-collaborators.js +18 -20
  314. package/dist/hooks/use-document.js +33 -45
  315. package/dist/layout/content.js +13 -26
  316. package/dist/layout/header.js +13 -26
  317. package/dist/layout/layout.js +11 -9
  318. package/dist/model/notification.js +10 -11
  319. package/dist/model/revision.js +27 -28
  320. package/dist/model/user.js +10 -11
  321. package/dist/pages/error-boundary.js +18 -36
  322. package/dist/pages/error-page.js +14 -26
  323. package/dist/pages/published-revision-viewer.js +23 -35
  324. package/dist/pages/simple-editor.js +39 -46
  325. package/dist/pages/simple-viewer.js +70 -104
  326. package/dist/utils/date-utils.js +67 -81
  327. package/dist/utils/get-event-transfer.js +13 -15
  328. package/dist/utils/hotkey.js +24 -24
  329. package/dist/utils/index.js +20 -20
  330. package/dist/utils/local-storage-utils.js +41 -58
  331. package/package.json +10 -10
  332. package/public/locales/cs/sdoc-editor.json +3 -1
  333. package/public/locales/de/sdoc-editor.json +3 -1
  334. package/public/locales/en/sdoc-editor.json +1 -0
  335. package/public/locales/es/sdoc-editor.json +3 -1
  336. package/public/locales/fr/sdoc-editor.json +3 -1
  337. package/public/locales/it/sdoc-editor.json +3 -1
  338. package/public/locales/ru/sdoc-editor.json +3 -1
  339. package/public/locales/zh_CN/sdoc-editor.json +1 -0
@@ -1,18 +1,17 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
5
2
  import { Editor, Transforms, Range, Path } from '@seafile/slate';
6
3
  import { ReactEditor } from '@seafile/slate-react';
7
4
  import slugid from 'slugid';
8
5
  import { CODE_BLOCK, CODE_LINE, ELEMENT_TYPE, INSERT_POSITION, LINK, LIST_ITEM, PARAGRAPH } from '../../constants';
9
6
  import { getNodeType, getSelectedElems, getAboveNode, getEditorString, replaceNodeChildren, generateEmptyElement } from '../../core';
10
- export var isMenuDisabled = function isMenuDisabled(editor, readonly) {
7
+ export const isMenuDisabled = (editor, readonly) => {
11
8
  if (readonly) return true;
12
9
  if (editor.selection == null) return true;
13
- var selectedElems = getSelectedElems(editor);
14
- var notMatch = selectedElems.some(function (elem) {
15
- var type = elem.type;
10
+ const selectedElems = getSelectedElems(editor);
11
+ const notMatch = selectedElems.some(elem => {
12
+ const {
13
+ type
14
+ } = elem;
16
15
  if (editor.isVoid(elem)) return true;
17
16
  if ([CODE_BLOCK, CODE_LINE, LINK].includes(type)) return true;
18
17
  return false;
@@ -21,14 +20,14 @@ export var isMenuDisabled = function isMenuDisabled(editor, readonly) {
21
20
  return false; // enable
22
21
  };
23
22
 
24
- export var checkLink = function checkLink(url) {
23
+ export const checkLink = url => {
25
24
  if (url.indexOf('http') !== 0) {
26
25
  return true;
27
26
  }
28
27
  return false;
29
28
  };
30
- export var genLinkNode = function genLinkNode(url, text) {
31
- var linkNode = {
29
+ export const genLinkNode = (url, text) => {
30
+ const linkNode = {
32
31
  id: slugid.nice(),
33
32
  type: 'link',
34
33
  href: url,
@@ -40,37 +39,32 @@ export var genLinkNode = function genLinkNode(url, text) {
40
39
  };
41
40
  return linkNode;
42
41
  };
43
- export var getLinkType = function getLinkType(editor) {
44
- var _Editor$nodes = Editor.nodes(editor, {
45
- match: function match(n) {
46
- return getNodeType(n) === LINK;
47
- },
48
- universal: true
49
- }),
50
- _Editor$nodes2 = _slicedToArray(_Editor$nodes, 1),
51
- match = _Editor$nodes2[0];
42
+ export const getLinkType = editor => {
43
+ const [match] = Editor.nodes(editor, {
44
+ match: n => getNodeType(n) === LINK,
45
+ universal: true
46
+ });
52
47
  if (!match) return PARAGRAPH;
53
- var _match = _slicedToArray(match, 1),
54
- n = _match[0];
48
+ const [n] = match;
55
49
  return getNodeType(n);
56
50
  };
57
- export var insertLink = function insertLink(editor, title, url) {
58
- var position = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : INSERT_POSITION.CURRENT;
59
- var slateNode = arguments.length > 4 ? arguments[4] : undefined;
51
+ export const insertLink = function (editor, title, url) {
52
+ let position = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : INSERT_POSITION.CURRENT;
53
+ let slateNode = arguments.length > 4 ? arguments[4] : undefined;
60
54
  if (position === INSERT_POSITION.CURRENT && isMenuDisabled(editor)) return;
61
55
  if (!title || !url) return;
62
56
  if (position === INSERT_POSITION.AFTER) {
63
- var linkNode = genLinkNode(url, title);
64
- var path = Editor.path(editor, editor.selection);
57
+ const linkNode = genLinkNode(url, title);
58
+ let path = Editor.path(editor, editor.selection);
65
59
  if (slateNode && (slateNode === null || slateNode === void 0 ? void 0 : slateNode.type) === LIST_ITEM) {
66
60
  path = ReactEditor.findPath(editor, slateNode);
67
- var nextPath = Path.next(path);
61
+ const nextPath = Path.next(path);
68
62
  Transforms.insertNodes(editor, linkNode, {
69
63
  at: nextPath
70
64
  });
71
65
  return;
72
66
  }
73
- var p = generateEmptyElement(ELEMENT_TYPE.PARAGRAPH);
67
+ const p = generateEmptyElement(ELEMENT_TYPE.PARAGRAPH);
74
68
  p.children[1] = linkNode;
75
69
  p.children[2] = {
76
70
  id: slugid.nice(),
@@ -83,12 +77,14 @@ export var insertLink = function insertLink(editor, title, url) {
83
77
  }
84
78
 
85
79
  // Selection folded or not
86
- var selection = editor.selection;
80
+ const {
81
+ selection
82
+ } = editor;
87
83
  if (selection == null) return;
88
- var isCollapsed = Range.isCollapsed(selection);
84
+ const isCollapsed = Range.isCollapsed(selection);
89
85
  if (isCollapsed) {
90
- var _linkNode = genLinkNode(url, title);
91
- Transforms.insertNodes(editor, _linkNode);
86
+ const linkNode = genLinkNode(url, title);
87
+ Transforms.insertNodes(editor, linkNode);
92
88
 
93
89
  // Not being able to use insertText directly causes the added Spaces to be added to the linked text, as in the issue above, replaced by insertFragment
94
90
  editor.insertFragment([{
@@ -96,16 +92,16 @@ export var insertLink = function insertLink(editor, title, url) {
96
92
  text: ' '
97
93
  }]);
98
94
  } else {
99
- var selectedText = Editor.string(editor, selection); // Selected text
95
+ const selectedText = Editor.string(editor, selection); // Selected text
100
96
  if (selectedText !== title) {
101
97
  // If the selected text is different from the typed text, delete the text and insert the link
102
98
  editor.deleteFragment();
103
- var _linkNode2 = genLinkNode(url, title);
104
- Transforms.insertNodes(editor, _linkNode2);
99
+ const linkNode = genLinkNode(url, title);
100
+ Transforms.insertNodes(editor, linkNode);
105
101
  } else {
106
102
  // If the selected text is the same as the entered text, only the link can be wrapped
107
- var _linkNode3 = genLinkNode(url, title);
108
- Transforms.wrapNodes(editor, _linkNode3, {
103
+ const linkNode = genLinkNode(url, title);
104
+ Transforms.wrapNodes(editor, linkNode, {
109
105
  split: true
110
106
  });
111
107
  Transforms.collapse(editor, {
@@ -114,17 +110,18 @@ export var insertLink = function insertLink(editor, title, url) {
114
110
  }
115
111
  }
116
112
  };
117
- export var updateLink = function updateLink(editor, newText, newUrl) {
113
+ export const updateLink = (editor, newText, newUrl) => {
118
114
  // Update children
119
- var linkAbove = getAboveNode(editor, {
115
+ const linkAbove = getAboveNode(editor, {
120
116
  match: {
121
117
  type: LINK
122
118
  }
123
119
  });
124
120
  if (linkAbove) {
125
- var _ref = linkAbove[0] || {},
126
- oldUrl = _ref.href,
127
- oldText = _ref.title;
121
+ const {
122
+ href: oldUrl,
123
+ title: oldText
124
+ } = linkAbove[0] || {};
128
125
  if (oldUrl !== newUrl || oldText !== newText) {
129
126
  Transforms.setNodes(editor, {
130
127
  href: newUrl,
@@ -139,23 +136,23 @@ export var updateLink = function updateLink(editor, newText, newUrl) {
139
136
  return true;
140
137
  }
141
138
  };
142
- export var upsertLinkText = function upsertLinkText(editor, _ref2) {
143
- var text = _ref2.text;
144
- var newLink = getAboveNode(editor, {
139
+ export const upsertLinkText = (editor, _ref) => {
140
+ let {
141
+ text
142
+ } = _ref;
143
+ const newLink = getAboveNode(editor, {
145
144
  match: {
146
145
  type: LINK
147
146
  }
148
147
  });
149
148
  if (newLink) {
150
- var _newLink = _slicedToArray(newLink, 2),
151
- newLInkNode = _newLink[0],
152
- newLinkPath = _newLink[1];
149
+ const [newLInkNode, newLinkPath] = newLink;
153
150
  if (text && text.length && text !== getEditorString(editor, newLinkPath)) {
154
- var firstText = newLInkNode.children[0];
151
+ const firstText = newLInkNode.children[0];
155
152
  replaceNodeChildren(editor, {
156
153
  at: newLinkPath,
157
154
  nodes: _objectSpread(_objectSpread({}, firstText), {}, {
158
- text: text
155
+ text
159
156
  }),
160
157
  insertOptions: {
161
158
  select: true
@@ -164,57 +161,36 @@ export var upsertLinkText = function upsertLinkText(editor, _ref2) {
164
161
  }
165
162
  }
166
163
  };
167
- export var unWrapLinkNode = /*#__PURE__*/function () {
168
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(editor) {
169
- var _Editor$nodes3, _Editor$nodes4, nodeEntry;
170
- return _regeneratorRuntime().wrap(function _callee$(_context) {
171
- while (1) switch (_context.prev = _context.next) {
172
- case 0:
173
- if (!(editor.selection == null)) {
174
- _context.next = 2;
175
- break;
176
- }
177
- return _context.abrupt("return");
178
- case 2:
179
- _Editor$nodes3 = Editor.nodes(editor, {
180
- match: function match(n) {
181
- return getNodeType(n) === 'link';
182
- },
183
- universal: true
184
- }), _Editor$nodes4 = _slicedToArray(_Editor$nodes3, 1), nodeEntry = _Editor$nodes4[0]; // If the selection is not in a link node, it is disabled
185
- if (!(nodeEntry == null || nodeEntry[0] == null)) {
186
- _context.next = 5;
187
- break;
188
- }
189
- return _context.abrupt("return");
190
- case 5:
191
- // unlink
192
- Transforms.unwrapNodes(editor, {
193
- match: function match(n) {
194
- return getNodeType(n) === 'link';
195
- }
196
- });
197
- case 6:
198
- case "end":
199
- return _context.stop();
200
- }
201
- }, _callee);
202
- }));
203
- return function unWrapLinkNode(_x) {
204
- return _ref3.apply(this, arguments);
205
- };
206
- }();
207
- export var isSdocFile = function isSdocFile(res, url) {
208
- var files_info = res.data.files_info;
209
- var fileInfo = files_info[url];
210
- var _ref4 = fileInfo || {},
211
- is_dir = _ref4.is_dir,
212
- file_ext = _ref4.file_ext;
164
+ export const unWrapLinkNode = async editor => {
165
+ if (editor.selection == null) return;
166
+ const [nodeEntry] = Editor.nodes(editor, {
167
+ match: n => getNodeType(n) === 'link',
168
+ universal: true
169
+ });
170
+ // If the selection is not in a link node, it is disabled
171
+ if (nodeEntry == null || nodeEntry[0] == null) return;
172
+
173
+ // unlink
174
+ Transforms.unwrapNodes(editor, {
175
+ match: n => getNodeType(n) === 'link'
176
+ });
177
+ };
178
+ export const isSdocFile = (res, url) => {
179
+ const {
180
+ data: {
181
+ files_info
182
+ }
183
+ } = res;
184
+ const fileInfo = files_info[url];
185
+ const {
186
+ is_dir,
187
+ file_ext
188
+ } = fileInfo || {};
213
189
  return !is_dir && file_ext === 'sdoc';
214
190
  };
215
- export var isWeChat = function isWeChat() {
216
- var ua = window.navigator.userAgent.toLowerCase();
217
- var isWeChat = ua.match(/MicroMessenger/i) === 'micromessenger';
218
- var isEnterpriseWeChat = ua.match(/MicroMessenger/i) === 'micromessenger' && ua.match(/wxwork/i) === 'wxwork';
191
+ export const isWeChat = () => {
192
+ let ua = window.navigator.userAgent.toLowerCase();
193
+ let isWeChat = ua.match(/MicroMessenger/i) === 'micromessenger';
194
+ let isEnterpriseWeChat = ua.match(/MicroMessenger/i) === 'micromessenger' && ua.match(/wxwork/i) === 'wxwork';
219
195
  return isEnterpriseWeChat || isWeChat;
220
196
  };
@@ -3,15 +3,18 @@ import { createPortal } from 'react-dom';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { isWeChat } from '../helpers';
5
5
  import '../../../../assets/css/textlink-hovermenu.css';
6
- var LinkHover = function LinkHover(_ref) {
7
- var editor = _ref.editor,
8
- element = _ref.element,
9
- menuPosition = _ref.menuPosition,
10
- onDeleteLink = _ref.onDeleteLink,
11
- onEditLink = _ref.onEditLink;
12
- var _useTranslation = useTranslation(),
13
- t = _useTranslation.t;
14
- var onMouseDown = useCallback(function (event) {
6
+ const LinkHover = _ref => {
7
+ let {
8
+ editor,
9
+ element,
10
+ menuPosition,
11
+ onDeleteLink,
12
+ onEditLink
13
+ } = _ref;
14
+ const {
15
+ t
16
+ } = useTranslation();
17
+ const onMouseDown = useCallback(event => {
15
18
  event.stopPropagation();
16
19
  if (!isWeChat()) {
17
20
  window.open(element.href);
@@ -3,7 +3,7 @@ import LinkMenu from './menu';
3
3
  import Link from './model';
4
4
  import withLink from './plugin';
5
5
  import renderLink from './render-elem';
6
- var LinkPlugin = {
6
+ const LinkPlugin = {
7
7
  type: LINK,
8
8
  nodeType: 'element',
9
9
  model: Link,
@@ -3,14 +3,16 @@ import { MENUS_CONFIG_MAP, ELEMENT_TYPE } from '../../../constants';
3
3
  import { isMenuDisabled } from '../helpers';
4
4
  import DropdownMenuItem from '../../../commons/dropdown-menu-item';
5
5
  import { INTERNAL_EVENT } from '../../../../constants';
6
- var LinkMenu = function LinkMenu(_ref) {
7
- var editor = _ref.editor,
8
- readonly = _ref.readonly,
9
- toggle = _ref.toggle,
10
- eventBus = _ref.eventBus;
11
- var disabled = isMenuDisabled(editor, readonly);
12
- var menuConfig = MENUS_CONFIG_MAP[ELEMENT_TYPE.LINK];
13
- var openLinkDialog = useCallback(function () {
6
+ const LinkMenu = _ref => {
7
+ let {
8
+ editor,
9
+ readonly,
10
+ toggle,
11
+ eventBus
12
+ } = _ref;
13
+ const disabled = isMenuDisabled(editor, readonly);
14
+ const menuConfig = MENUS_CONFIG_MAP[ELEMENT_TYPE.LINK];
15
+ const openLinkDialog = useCallback(() => {
14
16
  eventBus.dispatch(INTERNAL_EVENT.INSERT_ELEMENT, {
15
17
  type: ELEMENT_TYPE.LINK
16
18
  });
@@ -1,13 +1,12 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
1
  import { LINK as LINKTRENAME } from '../../constants';
4
- var Link = /*#__PURE__*/_createClass(function Link(options) {
5
- _classCallCheck(this, Link);
6
- this.type = options.type || LINKTRENAME;
7
- this.children = options.children || [{
8
- text: ''
9
- }];
10
- this.href = options.href || '';
11
- this.title = options.title || '';
12
- });
2
+ class Link {
3
+ constructor(options) {
4
+ this.type = options.type || LINKTRENAME;
5
+ this.children = options.children || [{
6
+ text: ''
7
+ }];
8
+ this.href = options.href || '';
9
+ this.title = options.title || '';
10
+ }
11
+ }
13
12
  export default Link;
@@ -1,4 +1,3 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
1
  import { Transforms, Node, Editor, Range } from '@seafile/slate';
3
2
  import slugid from 'slugid';
4
3
  import isUrl from 'is-url';
@@ -8,23 +7,27 @@ import { genLinkNode, isSdocFile } from './helpers';
8
7
  import { getNodeType, getSelectedNodeByType } from '../../core';
9
8
  import { isImage, isSameDomain } from '../../utils';
10
9
  import { LINK } from '../../constants';
11
- var withLink = function withLink(editor) {
12
- var normalizeNode = editor.normalizeNode,
13
- isInline = editor.isInline,
14
- insertData = editor.insertData,
15
- insertText = editor.insertText;
16
- var newEditor = editor;
10
+ const withLink = editor => {
11
+ const {
12
+ normalizeNode,
13
+ isInline,
14
+ insertData,
15
+ insertText
16
+ } = editor;
17
+ const newEditor = editor;
17
18
 
18
19
  // Rewrite isInline
19
- newEditor.isInline = function (elem) {
20
- var type = elem.type;
20
+ newEditor.isInline = elem => {
21
+ const {
22
+ type
23
+ } = elem;
21
24
  if (type === LINK) {
22
25
  return true;
23
26
  }
24
27
  return isInline(elem);
25
28
  };
26
- newEditor.insertText = function (text) {
27
- var path = Editor.path(editor, editor.selection);
29
+ newEditor.insertText = text => {
30
+ const path = Editor.path(editor, editor.selection);
28
31
  if (Range.isCollapsed(editor.selection) && getSelectedNodeByType(editor, LINK) && Editor.isEnd(editor, editor.selection.focus, path)) {
29
32
  editor.insertFragment([{
30
33
  id: slugid.nice(),
@@ -34,25 +37,21 @@ var withLink = function withLink(editor) {
34
37
  }
35
38
  return insertText(text);
36
39
  };
37
- newEditor.insertData = function (data) {
40
+ newEditor.insertData = data => {
38
41
  // Paste link content
39
- var text = data.getData('text/plain');
42
+ const text = data.getData('text/plain');
40
43
  if (isUrl(text) && !isImage(text)) {
41
- var link = genLinkNode(text, text);
44
+ const link = genLinkNode(text, text);
42
45
  Transforms.insertNodes(newEditor, link);
43
46
  if (isSameDomain(text, context.getSetting('serviceUrl'))) {
44
- context.getLinkFilesInfo([text]).then(function (res) {
47
+ context.getLinkFilesInfo([text]).then(res => {
45
48
  if (isSdocFile(res, text)) {
46
- var _Editor$nodes = Editor.nodes(editor, {
47
- match: function match(n) {
48
- return n.type === LINK;
49
- },
50
- universal: true
51
- }),
52
- _Editor$nodes2 = _slicedToArray(_Editor$nodes, 1),
53
- nodeEntry = _Editor$nodes2[0];
54
- var fileName = res.data.files_info[text].name;
55
- var fileUuid = res.data.files_info[text].file_uuid;
49
+ const [nodeEntry] = Editor.nodes(editor, {
50
+ match: n => n.type === LINK,
51
+ universal: true
52
+ });
53
+ const fileName = res.data.files_info[text].name;
54
+ const fileUuid = res.data.files_info[text].file_uuid;
56
55
  Transforms.removeNodes(editor, {
57
56
  at: nodeEntry[1]
58
57
  });
@@ -67,18 +66,16 @@ var withLink = function withLink(editor) {
67
66
  };
68
67
 
69
68
  // Rewrite normalizeNode
70
- newEditor.normalizeNode = function (_ref) {
71
- var _ref2 = _slicedToArray(_ref, 2),
72
- node = _ref2[0],
73
- path = _ref2[1];
74
- var type = getNodeType(node);
69
+ newEditor.normalizeNode = _ref => {
70
+ let [node, path] = _ref;
71
+ const type = getNodeType(node);
75
72
  if (type !== LINK) {
76
73
  // If the type is not link, perform default normalizeNode
77
74
  return normalizeNode([node, path]);
78
75
  }
79
76
 
80
77
  // If the link is empty, delete it
81
- var str = Node.string(node);
78
+ const str = Node.string(node);
82
79
  if (str === '') {
83
80
  return Transforms.removeNodes(newEditor, {
84
81
  at: path