@seafile/seafile-editor 0.4.8 → 1.0.0

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 (441) hide show
  1. package/.babelrc +5 -0
  2. package/.eslintignore +19 -0
  3. package/.eslintrc.json +52 -0
  4. package/.github/workflows/nodejs.yml +25 -0
  5. package/.vscode/settings.json +5 -0
  6. package/config/config.common.js +157 -0
  7. package/config/config.dev.js +53 -0
  8. package/config/jest/cssTransform.js +16 -0
  9. package/config/jest/fileTransform.js +40 -0
  10. package/config/utils/theme.css.js +103 -0
  11. package/config.js +61 -0
  12. package/dev-server.js +145 -0
  13. package/jest.config.js +16 -0
  14. package/package.json +81 -131
  15. package/public/locales/en/seafile-editor.json +145 -148
  16. package/public/locales/zh-CN/seafile-editor.json +123 -135
  17. package/public/media/seafile-ui.css +6 -11166
  18. package/scripts/ejs.js +16 -0
  19. package/site/_i18n/index.js +35 -0
  20. package/site/api/index.js +212 -0
  21. package/site/app.js +21 -0
  22. package/site/assets/css/app.css +47 -0
  23. package/site/assets/css/seafile-editor.css +33 -0
  24. package/site/commons/loading/index.js +14 -0
  25. package/site/commons/loading/style.css +49 -0
  26. package/site/commons/switch/index.css +14 -0
  27. package/site/commons/switch/index.js +37 -0
  28. package/site/commons/toast/alert.js +106 -0
  29. package/site/commons/toast/index.js +5 -0
  30. package/site/commons/toast/toast.js +195 -0
  31. package/site/commons/toast/toastManager.js +138 -0
  32. package/site/commons/toast/toaster.js +64 -0
  33. package/site/index.html +23 -0
  34. package/site/index.js +21 -0
  35. package/site/pages/home.js +21 -0
  36. package/site/pages/plain-markdown-view.js +6 -0
  37. package/site/pages/rich-seafile-editor.js +72 -0
  38. package/site/pages/seafile-editor.js +39 -0
  39. package/site/pages/seafile-viewer.js +45 -0
  40. package/site/pages/simple-editor.js +44 -0
  41. package/site/pages/wiki-viewer.js +7 -0
  42. package/site/setting.js +36 -0
  43. package/site/setting.local.dist.js +23 -0
  44. package/src/assets/css/slate-editor.css +57 -0
  45. package/src/constants/event-types.js +11 -0
  46. package/src/constants/hot-keys.js +47 -0
  47. package/src/containers/article-info/index.js +49 -0
  48. package/src/containers/article-info/style.css +52 -0
  49. package/src/containers/custom/get-event-transfer.js +28 -0
  50. package/{dist → src}/containers/custom/set-event-transfer.js +13 -11
  51. package/src/containers/hotkeys-helper/classify-hotkeys.js +30 -0
  52. package/src/containers/hotkeys-helper/index.js +43 -0
  53. package/{dist/assets/css/user-help.css → src/containers/hotkeys-helper/style.css} +37 -29
  54. package/src/containers/loading/index.js +14 -0
  55. package/src/containers/loading/style.css +49 -0
  56. package/src/containers/outline/index.js +75 -0
  57. package/src/containers/outline/outline-item.js +28 -0
  58. package/src/containers/outline/style.css +45 -0
  59. package/src/editors/plain-markdown-editor/code-mirror.css +8 -0
  60. package/src/editors/plain-markdown-editor/code-mirror.js +73 -0
  61. package/src/editors/plain-markdown-editor/index.js +136 -0
  62. package/{dist/assets/editor/plain-editor.css → src/editors/plain-markdown-editor/style.css} +12 -4
  63. package/src/editors/simple-slate-editor /index.js +71 -0
  64. package/src/editors/simple-slate-editor /with-props-editor.js +15 -0
  65. package/src/editors/slate-editor/editor-help/index.js +46 -0
  66. package/src/editors/slate-editor/editor-help/style.css +15 -0
  67. package/src/editors/slate-editor/index.js +77 -0
  68. package/src/editors/slate-editor/with-props-editor.js +15 -0
  69. package/src/editors/slate-viewer/index.js +35 -0
  70. package/src/editors/slate-viewer/style.css +40 -0
  71. package/src/extension/commons/element-popover/index.js +52 -0
  72. package/src/extension/commons/index.js +10 -0
  73. package/src/extension/commons/menu/index.js +9 -0
  74. package/src/extension/commons/menu/menu-drop-down.js +110 -0
  75. package/src/extension/commons/menu/menu-group.js +20 -0
  76. package/src/extension/commons/menu/menu-item.js +60 -0
  77. package/src/extension/commons/menu/menu.css +120 -0
  78. package/src/extension/commons/tooltip/index.css +21 -0
  79. package/src/extension/commons/tooltip/index.js +26 -0
  80. package/src/extension/constants/element-types.js +23 -0
  81. package/src/extension/constants/index.js +37 -0
  82. package/src/extension/constants/keyboard.js +29 -0
  83. package/src/extension/constants/menus-config.js +149 -0
  84. package/src/extension/core/index.js +3 -0
  85. package/src/extension/core/queries/index.js +410 -0
  86. package/src/extension/core/transforms/focus-editor.js +12 -0
  87. package/src/extension/core/transforms/index.js +4 -0
  88. package/src/extension/core/transforms/move-children.js +23 -0
  89. package/src/extension/core/transforms/remove-node-children.js +8 -0
  90. package/src/extension/core/transforms/replace-node-children.js +14 -0
  91. package/src/extension/core/utils/index.js +76 -0
  92. package/src/extension/editor.js +14 -0
  93. package/src/extension/index.js +15 -0
  94. package/src/extension/plugins/blockquote/helpers.js +65 -0
  95. package/src/extension/plugins/blockquote/index.js +13 -0
  96. package/src/extension/plugins/blockquote/menu/index.js +31 -0
  97. package/src/extension/plugins/blockquote/plugin.js +64 -0
  98. package/src/extension/plugins/blockquote/render-elem.js +9 -0
  99. package/src/extension/plugins/check-list/helper.js +34 -0
  100. package/src/extension/plugins/check-list/index.js +14 -0
  101. package/src/extension/plugins/check-list/menu/index.js +44 -0
  102. package/src/extension/plugins/check-list/plugin.js +46 -0
  103. package/src/extension/plugins/check-list/render-elem.js +23 -0
  104. package/src/extension/plugins/clear-format/helpers.js +48 -0
  105. package/src/extension/plugins/clear-format/menu/index.js +39 -0
  106. package/src/extension/plugins/code-block/helpers.js +107 -0
  107. package/src/extension/plugins/code-block/index.js +14 -0
  108. package/src/extension/plugins/code-block/menu/index.js +40 -0
  109. package/src/extension/plugins/code-block/plugin.js +210 -0
  110. package/src/extension/plugins/code-block/render-elem/constant.js +17 -0
  111. package/src/extension/plugins/code-block/render-elem/index.js +55 -0
  112. package/src/extension/plugins/code-block/render-elem/language-selector.js +38 -0
  113. package/src/extension/plugins/code-block/render-elem/style.css +27 -0
  114. package/src/extension/plugins/formula/formula.css +22 -0
  115. package/src/extension/plugins/formula/helper.js +68 -0
  116. package/src/extension/plugins/formula/index.js +14 -0
  117. package/src/extension/plugins/formula/menu/formula-modal.js +73 -0
  118. package/src/extension/plugins/formula/menu/index.js +63 -0
  119. package/src/extension/plugins/formula/plugin.js +18 -0
  120. package/src/extension/plugins/formula/render-elem.js +40 -0
  121. package/src/extension/plugins/header/helper.js +47 -0
  122. package/src/extension/plugins/header/index.js +14 -0
  123. package/src/extension/plugins/header/menu/index.js +114 -0
  124. package/src/extension/plugins/header/menu/style.css +115 -0
  125. package/src/extension/plugins/header/plugin.js +134 -0
  126. package/src/extension/plugins/header/render-elem.js +31 -0
  127. package/src/extension/plugins/image/helper.js +50 -0
  128. package/src/extension/plugins/image/index.js +14 -0
  129. package/src/extension/plugins/image/menu/image-menu-dialog.js +68 -0
  130. package/src/extension/plugins/image/menu/image-menu-popover.js +76 -0
  131. package/src/extension/plugins/image/menu/index.js +61 -0
  132. package/src/extension/plugins/image/menu/style.css +36 -0
  133. package/src/extension/plugins/image/plugin.js +23 -0
  134. package/src/extension/plugins/image/render-element/image-previewer.js +71 -0
  135. package/src/extension/plugins/image/render-element/index.js +94 -0
  136. package/src/extension/plugins/image/render-element/style.css +60 -0
  137. package/src/extension/plugins/index.js +47 -0
  138. package/src/extension/plugins/link/helper.js +161 -0
  139. package/src/extension/plugins/link/index.js +14 -0
  140. package/src/extension/plugins/link/menu/index.js +82 -0
  141. package/src/extension/plugins/link/menu/link-modal.js +135 -0
  142. package/src/extension/plugins/link/plugin.js +85 -0
  143. package/src/extension/plugins/link/render-elem/index.js +69 -0
  144. package/src/extension/plugins/link/render-elem/link-popover.js +79 -0
  145. package/src/extension/plugins/link/render-elem/style.css +60 -0
  146. package/src/extension/plugins/list/constant.js +3 -0
  147. package/src/extension/plugins/list/helpers.js +53 -0
  148. package/src/extension/plugins/list/index.js +14 -0
  149. package/src/extension/plugins/list/menu/index.js +48 -0
  150. package/src/extension/plugins/list/plugin/index.js +48 -0
  151. package/src/extension/plugins/list/plugin/insert-break-list.js +25 -0
  152. package/src/extension/plugins/list/plugin/insert-fragment-list.js +162 -0
  153. package/src/extension/plugins/list/plugin/normalize-list.js +64 -0
  154. package/src/extension/plugins/list/plugin/on-tab-handle.js +34 -0
  155. package/src/extension/plugins/list/queries/index.js +39 -0
  156. package/src/extension/plugins/list/render-elem/index.js +26 -0
  157. package/src/extension/plugins/list/render-elem/style.css +6 -0
  158. package/src/extension/plugins/list/transforms/index.js +23 -0
  159. package/src/extension/plugins/list/transforms/insert-list-item.js +65 -0
  160. package/src/extension/plugins/list/transforms/move-list-item-down.js +40 -0
  161. package/src/extension/plugins/list/transforms/move-list-item-up.js +105 -0
  162. package/src/extension/plugins/list/transforms/move-list-items-to-list.js +58 -0
  163. package/src/extension/plugins/list/transforms/move-list-items.js +76 -0
  164. package/src/extension/plugins/list/transforms/normalize-list-item.js +92 -0
  165. package/src/extension/plugins/list/transforms/normalize-nested-list.js +31 -0
  166. package/src/extension/plugins/list/transforms/remove-first-list-item.js +11 -0
  167. package/src/extension/plugins/list/transforms/transforms-to-list.js +91 -0
  168. package/src/extension/plugins/list/transforms/unwrap-list.js +44 -0
  169. package/src/extension/plugins/node-id/constants.js +18 -0
  170. package/src/extension/plugins/node-id/helpers.js +61 -0
  171. package/src/extension/plugins/node-id/index.js +7 -0
  172. package/src/extension/plugins/node-id/with-node-id.js +37 -0
  173. package/src/extension/plugins/paragraph/helper.js +9 -0
  174. package/src/extension/plugins/paragraph/index.js +12 -0
  175. package/src/extension/plugins/paragraph/plugin.js +40 -0
  176. package/src/extension/plugins/paragraph/render-elem.js +11 -0
  177. package/src/extension/plugins/table/constant.js +3 -0
  178. package/src/extension/plugins/table/helper.js +175 -0
  179. package/src/extension/plugins/table/index.js +15 -0
  180. package/src/extension/plugins/table/menu/index.js +69 -0
  181. package/src/extension/plugins/table/menu/style.css +32 -0
  182. package/src/extension/plugins/table/menu/table-operator.js +101 -0
  183. package/src/extension/plugins/table/menu/table-size-selector.js +71 -0
  184. package/src/extension/plugins/table/model.js +69 -0
  185. package/src/extension/plugins/table/plugin.js +159 -0
  186. package/src/extension/plugins/table/render-elem/context-menu.js +78 -0
  187. package/src/extension/plugins/table/render-elem/index.js +157 -0
  188. package/src/extension/plugins/table/render-elem/style.css +94 -0
  189. package/src/extension/plugins/table/table-operations.js +162 -0
  190. package/src/extension/plugins/text-style/helpers.js +38 -0
  191. package/src/extension/plugins/text-style/index.js +12 -0
  192. package/src/extension/plugins/text-style/menu/index.js +41 -0
  193. package/src/extension/plugins/text-style/plugin.js +37 -0
  194. package/src/extension/plugins/text-style/render-elem.js +45 -0
  195. package/src/extension/render/render-element.js +82 -0
  196. package/src/extension/render/render-leaf.js +16 -0
  197. package/src/extension/toolbar/header-toolbar/index.js +129 -0
  198. package/src/extension/toolbar/header-toolbar/style.css +41 -0
  199. package/src/extension/toolbar/index.js +5 -0
  200. package/src/extension/toolbar/user-help/shortcut-dialog.js +144 -0
  201. package/src/hooks/use-mathjax.js +44 -0
  202. package/src/hooks/use-scroll-context.js +14 -0
  203. package/src/hooks/use-selection-update.js +14 -0
  204. package/src/index.js +22 -0
  205. package/src/pages/markdown-editor.js +53 -0
  206. package/src/pages/markdown-view.js +36 -0
  207. package/src/pages/rich-markdown-editor.js +95 -0
  208. package/src/pages/simple-editor.js +52 -0
  209. package/src/slate-convert/html-to-slate/constants.js +54 -0
  210. package/src/slate-convert/html-to-slate/helper.js +22 -0
  211. package/src/slate-convert/html-to-slate/index.js +144 -0
  212. package/src/slate-convert/html-to-slate/rules/blockquote.js +16 -0
  213. package/src/slate-convert/html-to-slate/rules/check-list.js +22 -0
  214. package/src/slate-convert/html-to-slate/rules/code-block.js +91 -0
  215. package/src/slate-convert/html-to-slate/rules/header.js +18 -0
  216. package/src/slate-convert/html-to-slate/rules/image.js +18 -0
  217. package/src/slate-convert/html-to-slate/rules/index.js +23 -0
  218. package/src/slate-convert/html-to-slate/rules/link.js +24 -0
  219. package/src/slate-convert/html-to-slate/rules/list.js +52 -0
  220. package/src/slate-convert/html-to-slate/rules/paragraph.js +16 -0
  221. package/src/slate-convert/html-to-slate/rules/table.js +37 -0
  222. package/src/slate-convert/html-to-slate/rules/text.js +63 -0
  223. package/src/slate-convert/index.js +11 -0
  224. package/src/slate-convert/md-to-html/index.js +44 -0
  225. package/src/slate-convert/md-to-html/sanitize-schema.js +41 -0
  226. package/src/slate-convert/md-to-slate/index.js +42 -0
  227. package/src/slate-convert/md-to-slate/transform.js +336 -0
  228. package/src/slate-convert/slate-to-md/index.js +44 -0
  229. package/src/slate-convert/slate-to-md/transform.js +248 -0
  230. package/src/utils/common.js +30 -0
  231. package/src/utils/deserialize-html.js +174 -0
  232. package/src/utils/dom-utils.js +45 -0
  233. package/src/utils/event-bus.js +37 -0
  234. package/src/utils/event-handler.js +36 -0
  235. package/src/utils/object-utils.js +51 -0
  236. package/tests/core/constants/index.js +54 -0
  237. package/tests/core/index.js +11 -0
  238. package/tests/core/jsx/index.js +9 -0
  239. package/tests/core/stub-editor/index.js +26 -0
  240. package/tests/core/utils.js +58 -0
  241. package/tests/extension/plugins/list/insert-block.test.js +40 -0
  242. package/tests/extension/plugins/list/insert-fragment-list.test.js +392 -0
  243. package/tests/extension/plugins/list/toggle-list.test.js +160 -0
  244. package/tests/extension/plugins/text/text.test.js +29 -0
  245. package/tests/extension/plugins/text-style/toggle-text-style.test.js +148 -0
  246. package/tests/slate-convert/html-to-slate/blockquote.test.js +107 -0
  247. package/tests/slate-convert/html-to-slate/code-block.test.js +32 -0
  248. package/tests/slate-convert/html-to-slate/header.test.js +56 -0
  249. package/tests/slate-convert/html-to-slate/link.test.js +77 -0
  250. package/tests/slate-convert/html-to-slate/list.test.js +190 -0
  251. package/tests/slate-convert/html-to-slate/paragraph.test.js +40 -0
  252. package/tests/slate-convert/html-to-slate/text.test.js +131 -0
  253. package/tests/slate-convert/md-to-html/blockquote.test.js +110 -0
  254. package/tests/slate-convert/md-to-html/check-list.test.js +19 -0
  255. package/tests/slate-convert/md-to-html/code-block.test.js +19 -0
  256. package/tests/slate-convert/md-to-html/header.test.js +20 -0
  257. package/tests/slate-convert/md-to-html/image.test.js +17 -0
  258. package/tests/slate-convert/md-to-html/image_reference.test.js +17 -0
  259. package/tests/slate-convert/md-to-html/link.test.js +15 -0
  260. package/tests/slate-convert/md-to-html/link_reference.test.js +15 -0
  261. package/tests/slate-convert/md-to-html/list-ordered.test.js +22 -0
  262. package/tests/slate-convert/md-to-html/list-unordered.test.js +22 -0
  263. package/tests/slate-convert/md-to-html/paragraph.test.js +15 -0
  264. package/tests/slate-convert/md-to-html/table.test.js +29 -0
  265. package/tests/slate-convert/md-to-html/text_base.test.js +14 -0
  266. package/tests/slate-convert/md-to-html/text_bold.test.js +14 -0
  267. package/tests/slate-convert/md-to-html/text_bold_italic.test.js +15 -0
  268. package/tests/slate-convert/md-to-html/text_code.test.js +14 -0
  269. package/tests/slate-convert/md-to-html/text_code_bold.test.js +14 -0
  270. package/tests/slate-convert/md-to-html/text_code_bold_italic.test.js +14 -0
  271. package/tests/slate-convert/md-to-html/text_code_italic.test.js +14 -0
  272. package/tests/slate-convert/md-to-html/text_italic.test.js +14 -0
  273. package/tests/slate-convert/md-to-slate/blockquote.test.js +200 -0
  274. package/tests/slate-convert/md-to-slate/check-list.test.js +34 -0
  275. package/tests/slate-convert/md-to-slate/code-block.test.js +32 -0
  276. package/tests/slate-convert/md-to-slate/header.test.js +49 -0
  277. package/tests/slate-convert/md-to-slate/image.test.js +31 -0
  278. package/tests/slate-convert/md-to-slate/link.test.js +30 -0
  279. package/tests/slate-convert/md-to-slate/list-ordered.test.js +42 -0
  280. package/tests/slate-convert/md-to-slate/list-unordered.test.js +42 -0
  281. package/tests/slate-convert/md-to-slate/paragraph.test.js +19 -0
  282. package/tests/slate-convert/md-to-slate/table.test.js +34 -0
  283. package/tests/slate-convert/md-to-slate/text_base.test.js +19 -0
  284. package/tests/slate-convert/md-to-slate/text_bold.test.js +22 -0
  285. package/tests/slate-convert/md-to-slate/text_bold_italic.test.js +23 -0
  286. package/tests/slate-convert/md-to-slate/text_code.test.js +22 -0
  287. package/tests/slate-convert/md-to-slate/text_code_bold.test.js +23 -0
  288. package/tests/slate-convert/md-to-slate/text_code_bold_italic.test.js +24 -0
  289. package/tests/slate-convert/md-to-slate/text_code_italic.test.js +23 -0
  290. package/tests/slate-convert/md-to-slate/text_italic.test.js +22 -0
  291. package/tests/slate-convert/slate-to-md/blockquote.test.js +416 -0
  292. package/tests/slate-convert/slate-to-md/check-list.test.js +96 -0
  293. package/tests/slate-convert/slate-to-md/code-block.test.js +35 -0
  294. package/tests/slate-convert/slate-to-md/formula.test.js +26 -0
  295. package/tests/slate-convert/slate-to-md/header.test.js +109 -0
  296. package/tests/slate-convert/slate-to-md/image.test.js +98 -0
  297. package/tests/slate-convert/slate-to-md/link.test.js +52 -0
  298. package/tests/slate-convert/slate-to-md/list-ordered.test.js +87 -0
  299. package/tests/slate-convert/slate-to-md/list-unordered.test.js +81 -0
  300. package/tests/slate-convert/slate-to-md/paragraph.test.js +28 -0
  301. package/tests/slate-convert/slate-to-md/table.test.js +56 -0
  302. package/tests/slate-convert/slate-to-md/text_base.test.js +28 -0
  303. package/tests/slate-convert/slate-to-md/text_bold.test.js +36 -0
  304. package/tests/slate-convert/slate-to-md/text_bold_italic.test.js +42 -0
  305. package/tests/slate-convert/slate-to-md/text_code.test.js +31 -0
  306. package/tests/slate-convert/slate-to-md/text_code_bold.test.js +37 -0
  307. package/tests/slate-convert/slate-to-md/text_code_bold_italic.test.js +43 -0
  308. package/tests/slate-convert/slate-to-md/text_code_italic.test.js +37 -0
  309. package/tests/slate-convert/slate-to-md/text_italic.test.js +36 -0
  310. package/README.md +0 -52
  311. package/TODO.md +0 -55
  312. package/dist/assets/css/diff-viewer.css +0 -105
  313. package/dist/assets/css/formula.css +0 -19
  314. package/dist/assets/css/history-viewer.css +0 -104
  315. package/dist/assets/css/image.css +0 -134
  316. package/dist/assets/css/link.css +0 -7
  317. package/dist/assets/css/markdown-editor.css +0 -12
  318. package/dist/assets/css/markdown-viewer.css +0 -69
  319. package/dist/assets/css/navbar-imgbutton.css +0 -83
  320. package/dist/assets/css/outline.css +0 -29
  321. package/dist/assets/css/table.css +0 -57
  322. package/dist/assets/css/textlink-hovermenu.css +0 -47
  323. package/dist/assets/css/topbar.css +0 -350
  324. package/dist/assets/css/tree-view.css +0 -67
  325. package/dist/assets/editor/seatable-editor.css +0 -77
  326. package/dist/assets/editor/simple-editor.css +0 -77
  327. package/dist/components/click-outside.js +0 -46
  328. package/dist/components/context-menu.js +0 -97
  329. package/dist/components/dialogs/add-formula-dialog.js +0 -116
  330. package/dist/components/dialogs/add-image-dialog.js +0 -69
  331. package/dist/components/dialogs/add-link-dialog.js +0 -133
  332. package/dist/components/dialogs/shortcut-dialog.js +0 -131
  333. package/dist/components/error-boundary.js +0 -28
  334. package/dist/components/load-script/index.js +0 -69
  335. package/dist/components/loading.js +0 -25
  336. package/dist/components/menu/index.js +0 -4
  337. package/dist/components/menu/item.js +0 -49
  338. package/dist/components/menu/menu.js +0 -38
  339. package/dist/components/menu/style.css +0 -42
  340. package/dist/components/modal-portal.js +0 -38
  341. package/dist/components/outline/index.js +0 -92
  342. package/dist/components/outline/outline-item.js +0 -58
  343. package/dist/components/select/_option.js +0 -44
  344. package/dist/components/select/field-setting.js +0 -106
  345. package/dist/components/select/index.js +0 -149
  346. package/dist/components/select/style.css +0 -144
  347. package/dist/components/svg-icons/check-mark-icon.js +0 -14
  348. package/dist/components/svg-icons/column-icon.js +0 -17
  349. package/dist/components/svg-icons/text-icon.js +0 -34
  350. package/dist/components/text-link-hover-menu/index.js +0 -123
  351. package/dist/components/toast/alert.js +0 -138
  352. package/dist/components/toast/index.js +0 -3
  353. package/dist/components/toast/toast.js +0 -159
  354. package/dist/components/toast/toastManager.js +0 -139
  355. package/dist/components/toast/toaster.js +0 -65
  356. package/dist/components/toolbar/header-list.js +0 -114
  357. package/dist/components/toolbar/help-group.js +0 -33
  358. package/dist/components/toolbar/index.js +0 -4
  359. package/dist/components/toolbar/insert-image.js +0 -106
  360. package/dist/components/toolbar/insert-table.js +0 -136
  361. package/dist/components/toolbar/table-group.js +0 -74
  362. package/dist/components/toolbar/toolbar.js +0 -317
  363. package/dist/components/toolbar/widgets/button-group.js +0 -24
  364. package/dist/components/toolbar/widgets/button-item.js +0 -129
  365. package/dist/components/toolbar/widgets/drop-list.js +0 -88
  366. package/dist/components/user-help/index.js +0 -179
  367. package/dist/config.js +0 -15
  368. package/dist/constants/cell-types.js +0 -29
  369. package/dist/constants/column.js +0 -4
  370. package/dist/containers/code-highlight-package.js +0 -14
  371. package/dist/containers/controller/block-element-controller.js +0 -375
  372. package/dist/containers/controller/index.js +0 -5
  373. package/dist/containers/controller/inline-element-controller.js +0 -134
  374. package/dist/containers/controller/normalize-controller.js +0 -95
  375. package/dist/containers/controller/shortcut-controller.js +0 -385
  376. package/dist/containers/controller/void-element-controller.js +0 -9
  377. package/dist/containers/custom/custom.js +0 -18
  378. package/dist/containers/custom/get-event-transfer.js +0 -33
  379. package/dist/containers/custom/getNodesByTypeAtRange.js +0 -57
  380. package/dist/containers/custom/insertNodes.js +0 -120
  381. package/dist/containers/custom/is-empty-paragraph.js +0 -9
  382. package/dist/containers/custom/split-nodes-at-point.js +0 -136
  383. package/dist/containers/custom/unwrap-node-by-type-at-range.js +0 -70
  384. package/dist/containers/editor-context.js +0 -85
  385. package/dist/containers/editor-utils/block-element-utils/blockquote-utils.js +0 -80
  386. package/dist/containers/editor-utils/block-element-utils/code-utils.js +0 -145
  387. package/dist/containers/editor-utils/block-element-utils/formula-utils.js +0 -51
  388. package/dist/containers/editor-utils/block-element-utils/index.js +0 -31
  389. package/dist/containers/editor-utils/block-element-utils/list-utils.js +0 -395
  390. package/dist/containers/editor-utils/block-element-utils/table-utils.js +0 -412
  391. package/dist/containers/editor-utils/clear-format-utils.js +0 -84
  392. package/dist/containers/editor-utils/common-editor-utils.js +0 -492
  393. package/dist/containers/editor-utils/inline-element-utils/index.js +0 -95
  394. package/dist/containers/editor-utils/mark-utils.js +0 -20
  395. package/dist/containers/editor-utils/range-utils.js +0 -7
  396. package/dist/containers/editor-utils/selection-utils.js +0 -30
  397. package/dist/containers/editor-utils/text-utils.js +0 -117
  398. package/dist/containers/editor-widgets/check-list-item.js +0 -53
  399. package/dist/containers/editor-widgets/code-block.js +0 -128
  400. package/dist/containers/editor-widgets/column.js +0 -100
  401. package/dist/containers/editor-widgets/formula.js +0 -67
  402. package/dist/containers/editor-widgets/image.js +0 -237
  403. package/dist/containers/editor-widgets/link.js +0 -9
  404. package/dist/containers/editor-widgets/table.js +0 -144
  405. package/dist/containers/element-model/blockquote.js +0 -13
  406. package/dist/containers/element-model/column.js +0 -19
  407. package/dist/containers/element-model/image.js +0 -16
  408. package/dist/containers/element-model/link.js +0 -16
  409. package/dist/containers/element-model/table.js +0 -57
  410. package/dist/containers/element-model/text.js +0 -10
  411. package/dist/containers/render-utils/common-utils.js +0 -80
  412. package/dist/containers/render-utils/editor-utils.js +0 -133
  413. package/dist/containers/render-utils/viewer-utils.js +0 -198
  414. package/dist/containers/viewer-widgets/viewer-formula/index.js +0 -54
  415. package/dist/containers/viewer-widgets/viewer-image/index.js +0 -70
  416. package/dist/containers/viewer-widgets/viewer-image/viewer-image.css +0 -3
  417. package/dist/editors/index.js +0 -78
  418. package/dist/editors/markdown-editor.js +0 -206
  419. package/dist/editors/plain-markdown-editor.js +0 -285
  420. package/dist/editors/seatable-editor.js +0 -210
  421. package/dist/editors/simple-editor.js +0 -200
  422. package/dist/index.js +0 -11
  423. package/dist/setting.local.js +0 -14
  424. package/dist/utils/deserialize-html.js +0 -260
  425. package/dist/utils/diff/compare-strings.js +0 -35
  426. package/dist/utils/diff/diff.js +0 -769
  427. package/dist/utils/diff/index.js +0 -2
  428. package/dist/utils/seafile-markdown2html.js +0 -52
  429. package/dist/utils/slate2markdown/deserialize.js +0 -588
  430. package/dist/utils/slate2markdown/index.js +0 -3
  431. package/dist/utils/slate2markdown/serialize.js +0 -366
  432. package/dist/utils/utils.js +0 -68
  433. package/dist/viewer/diff-viewer.js +0 -85
  434. package/dist/viewer/index.js +0 -4
  435. package/dist/viewer/markdown-viewer.js +0 -121
  436. package/dist/viewer/seatable-viewer.js +0 -63
  437. package/dist/viewer/slate-viewer.js +0 -71
  438. package/public/index.html +0 -45
  439. package/public/manifest.json +0 -15
  440. package/public/media/seafile-logo.png +0 -0
  441. /package/{dist/assets/css/keyboard-shortcuts.css → src/extension/toolbar/user-help/style.css} +0 -0
package/README.md DELETED
@@ -1,52 +0,0 @@
1
- # Seafile-editor
2
- > 其中 3.0 分支用于 dtable-web 项目(依赖的 react 版本为 16.14.0)
3
- > 当前 master 分支用于 seahub 项目(依赖的 react 版本为 17.0.0)
4
-
5
- 项目是基于 react-slate 组件库的二次封装, 用于满足公司富文本编辑器的使用需求
6
- ## 目录结构
7
-
8
- ```
9
- seafile-editor/
10
- dist // 打包后的文件
11
- node_modules/ // 依赖第三方组件库
12
- public/ // 公共资源文件库
13
- index.html
14
- favicon.ico
15
- site(demo 模块, 基于组件库创建的测试模块)
16
- _i18n // 国际化模块
17
- api // api 模块
18
- assets // css 文件, 图片文件
19
- commons // 公共组件
20
- components // 应用组件
21
- containers // 容器组件
22
- pages // 页面组件
23
- app.js // 应用对象
24
- index.html // 主页
25
- index.js // 应用入口
26
- setting.js // 应用配置文件
27
- setting.local.dist.js // 应用配置模版
28
- setting.local.dist // 用户基于 setting.local.dist.js copy 一份的配置文件
29
- src/(组件库)
30
- assets // css 文件, 资源文件
31
- components // 封装的视图组件
32
- editor // 封装的编辑器组件
33
- lib // 底层接口
34
- utils // 工具接口
35
- viewer // 封装的视图组件
36
- index.js // 组件库导出内容入口文件
37
- tests // 测试
38
- webpack // site 打包文件
39
- config.js // site 打包配置文件
40
- dev-server.js // site 后端服务器
41
- package.json
42
- readme.md // 组件库说明文档
43
- ```
44
-
45
- ## 本地测试步骤
46
- 1. 新增本地配置文件 setting.local.js(基于 /site/setting.local.dist.js copy 一份)
47
- 2. 在 seahub 项目创建一个测试文件, 根据需要的配置信息完善配置内容
48
- 3. 执行 npm run start, 启动测试服务, 可以打开相应的网址, 对封装的组件进行测试
49
-
50
- ## 新版本发布
51
- 1. 更新 package.json 中的 version 属性
52
- 2. 执行 npm publish 完成新版本发布
package/TODO.md DELETED
@@ -1,55 +0,0 @@
1
- ## Version beta 1
2
-
3
- Release data: 2018.05.30
4
-
5
- * [X] Support table (https://github.com/GitbookIO/slate-edit-table)
6
- * [X] Support coding blocks
7
- * [X] Support list editing (https://github.com/GitbookIO/slate-edit-list)
8
- * [X] Support images
9
-
10
- ### Image
11
-
12
- * [x] Slate image node
13
- * [x] renderNode() supports readering image node to <img>
14
- * [x] Add image icon, click image icon, popup a dialog to let user input an image
15
-
16
- ## Version beta 2
17
-
18
- * [x] Improve table
19
- * [x] Improve CSS
20
- * [x] Copy/paste image from clipboard
21
- * [-] Improve code block
22
- * [-] Change toolbar button icons
23
- * [-] Support task list
24
-
25
- ### Tree view
26
-
27
- * [-] Folder/File icons
28
- * [-] Click and show content
29
- * [-] Drag and create link
30
-
31
- ## Version beta 3
32
-
33
- * Switch to plain markdown editor
34
-
35
-
36
- ## Future versions
37
-
38
-
39
- Not important
40
-
41
- * Support quotation
42
-
43
- Integrating into Seafile
44
-
45
- * Support TOC
46
-
47
- ### Tree view
48
-
49
- * [] Add file
50
-
51
-
52
-
53
- ### Plain react markdown editor
54
-
55
- https://github.com/rexxars/react-markdown
@@ -1,105 +0,0 @@
1
- .diff-added {
2
- padding: 0 5px;
3
- margin: 0 -5px;
4
- background-color: #e6ffed;
5
- overflow: hidden;
6
- }
7
-
8
- .diff-removed {
9
- padding: 0 5px;
10
- margin: 0 -5px;
11
- overflow: hidden;
12
- background-color: #ffeef0;
13
- }
14
-
15
- .diff-removed * {
16
- border-left: none;
17
- padding-left: 0
18
- }
19
-
20
- .diff-added * {
21
- padding-left: 0;
22
- border-left: none;
23
- }
24
-
25
-
26
- .diff-replaced {
27
- padding-left: 2px;
28
- margin-left: -5px;
29
- border-left: 3px solid #f9c513;
30
- }
31
-
32
- .diff-replaced .diff-added {
33
- background-color: #e6ffed;
34
- margin-left: 0;
35
- padding-left: 0;
36
- overflow: visible;
37
- }
38
-
39
- .diff-replaced .diff-removed {
40
- overflow: visible;
41
- padding-left: 0;
42
- color: #cb2431;
43
- margin-left: 0;
44
- background-color: #ffeef0;
45
- }
46
-
47
- .diff-replaced .diff-replaced {
48
- border-left: none;
49
- margin-left: 0;
50
- overflow: visible;
51
- }
52
-
53
- .diff-replaced .diff-removed-container {
54
- padding: 0 5px;
55
- margin: 0 -5px;
56
- background-color: #ffeef0;
57
- box-sizing: border-box;
58
- overflow: hidden;
59
- }
60
-
61
- .diff-replaced .diff-added-container {
62
- padding: 0 5px;
63
- margin: 0 -5px;
64
- background-color: #e6ffed;
65
- box-sizing: border-box;
66
- overflow: hidden;
67
- }
68
-
69
-
70
- .diff-replaced table .diff-added {
71
- background-color: #e6ffed;
72
- padding: 0 0;
73
- margin: 0;
74
- }
75
-
76
- .diff-replaced table .diff-removed {
77
- background-color: #ffeef0;
78
- margin: 0;
79
- padding: 0 0;
80
- }
81
-
82
- .diff-replaced table tr.diff-replaced {
83
- padding-left: 0;
84
- }
85
-
86
- .diff-replaced del {
87
- background-color: #fdb8c0;
88
- text-decoration: none;
89
- color: #cb2431;
90
- }
91
-
92
- .diff-replaced ins {
93
- background-color: #acf2bd;
94
- text-decoration: none;
95
- }
96
-
97
- .article .diff-replaced .old-paragraph {
98
- background-color: #ffeef0;
99
- margin-bottom: 0;
100
- }
101
-
102
- .article .diff-replaced .new-paragraph {
103
- background-color: #e6ffed;
104
- margin-top: 0;
105
- }
@@ -1,19 +0,0 @@
1
- .seafile-editor-module .selected-formula {
2
- outline: 2px solid #007bff;
3
- }
4
-
5
- .seafile-editor-module .block-formula {
6
- display: block;
7
- user-select: none;
8
- }
9
-
10
- .seafile-editor-module .MathJax {
11
- margin: 0;
12
- }
13
-
14
- .formula-preview {
15
- padding: 10px;
16
- border: 2px dashed #ebebeb;
17
- min-height: 40px;
18
- overflow-x: auto;
19
- }
@@ -1,104 +0,0 @@
1
- .seafile-history-side-panel {
2
- user-select: none;
3
- border-left: 1px solid #e5e5e5;
4
- background-color: #fff;
5
- display: flex;
6
- flex-direction: column;
7
- flex: 0 0 auto;
8
- }
9
-
10
- .history-side-panel-title {
11
- height: 50px;
12
- border-bottom: 1px solid #e5e5e5;
13
- line-height: 50px;
14
- font-size: 1rem;
15
- padding: 0 10px;
16
- box-sizing: border-box;
17
- background-color: rgb(250,250,249);
18
- display: flex;
19
- flex-direction: row;
20
- justify-content: space-between;
21
- }
22
-
23
- .history-side-panel-title .history-tile-text {
24
- font-weight: bolder;
25
- }
26
-
27
-
28
- .history-side-panel-title .history-title-close {
29
- color: #b9b9b9;
30
- }
31
-
32
- .history-side-panel-title .history-title-close:hover {
33
- color: #888;
34
- }
35
-
36
-
37
- .history-list-container {
38
- height: calc(100% - 36px);
39
- overflow-y: hidden;
40
- }
41
- .history-list-container:hover {
42
- overflow-y: auto;
43
- }
44
-
45
- .item-active {
46
- background-color: #fdc297;
47
- }
48
-
49
- .history-item-container {
50
- padding: 0.5rem .8rem;
51
- }
52
-
53
- .history-item-container:not(.item-active):hover {
54
- background-color: #ffe7d5;
55
- }
56
-
57
- .history-item-container div {
58
- width: 100%;
59
- }
60
-
61
- .history-item-container .owner {
62
- margin-top: 0.2rem;
63
- }
64
-
65
- .history-item-container .owner i {
66
- color: #549b5a;
67
- font-size: 0.2rem;
68
- margin-right: 0.2rem;
69
- vertical-align: middle;
70
- }
71
-
72
- .history-item-container .owner span {
73
- vertical-align: middle;
74
- }
75
-
76
- .diff-container {
77
- flex: 1 1 auto;
78
- overflow: auto;
79
- box-sizing: border-box;
80
- }
81
-
82
- .diff-wrapper {
83
- width: 90%;
84
- border: 1px solid #e5e5e5;
85
- margin: 20px auto;
86
- background-color: #fff;
87
- min-height: calc(100% - 40px);
88
- padding: 70px 75px;
89
- }
90
-
91
- @media (max-width:991.8px) {
92
- .diff-container {
93
- width: 100%;
94
- box-sizing: border-box;
95
- }
96
- .diff-wrapper {
97
- padding: 20px;
98
- }
99
- }
100
- @media (min-width:992px) {
101
- .seafile-history-side-panel {
102
- width: 260px;
103
- }
104
- }
@@ -1,134 +0,0 @@
1
- .seafile-ed-image {
2
- position: relative;
3
- display: inline-block;
4
- max-width: 100%;
5
- }
6
-
7
- .seafile-ed-image .seafile-ed-image-inResizing {
8
- box-shadow: 0 0 0 2px #007bff;
9
- }
10
-
11
- .seafile-ed-image .image-resizer {
12
- width: 10px;
13
- height: 10px;
14
- position: absolute;
15
- right: -5px;
16
- bottom: -5px;
17
- transform: ();
18
- background-color: #007bff;
19
- border: 1px solid #fff;
20
- cursor: se-resize;
21
- }
22
-
23
- .image-size {
24
- display: inline-block;
25
- padding: 5px;
26
- height: 22px;
27
- position: absolute;
28
- bottom: -25px;
29
- left: 100%;
30
- transform: translateX(5px);
31
- border-radius: 3px;
32
- line-height: 12px;
33
- color: #fff;
34
- background-color: #4c4c4c;
35
- font-size: 12px;
36
- }
37
-
38
- .seafile-ed-image .image-full-button {
39
- position: absolute;
40
- height: 26px;
41
- display: inline-block;
42
- width: 26px;
43
- top: 0;
44
- right: -32px;
45
- text-align: center;
46
- line-height: 20px;
47
- padding: 2px;
48
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
49
- border-radius: 3px;
50
- border: 1px solid rgba(0, 40, 100, 0.12);
51
- background-color: #fff;
52
- user-select: none!important;
53
- z-index: 1000;
54
- }
55
-
56
- .seafile-ed-image-viwer:hover .image-full-button {
57
- display: inline-block;
58
- }
59
-
60
- .seafile-ed-image-viwer .image-full-button {
61
- position: absolute;
62
- top: 5px;
63
- right: 5px;
64
- display: none;
65
- background-color: #efefef;
66
- cursor: pointer;
67
- }
68
-
69
- .image-full-button:hover{
70
- display: block;
71
- background-color: #efefef;
72
- }
73
-
74
- .image-tooltip {
75
- display: none;
76
- position: absolute;
77
- box-shadow: 0 0px 5px rgba(0, 0, 0, 0.2);
78
- left: 50%;
79
- bottom: -10px;
80
- transform: translate(-50%, 100%);
81
- background: #fff;
82
- padding: 2px;
83
- border-radius: 2px;
84
- white-space:nowrap;
85
- }
86
-
87
- .image-tooltip::before{
88
- position: absolute;
89
- content: '';
90
- top: -5px;
91
- left: 50%;
92
- margin-left: -5px;
93
- transform: rotate(45deg);
94
- border-width: 5px;
95
- border-style: solid;
96
- box-shadow: -2px -2px 3px rgba(0, 0, 0, 0.1);
97
- border-color:#fff transparent transparent #fff;
98
- }
99
-
100
- .image-full-button:hover .image-tooltip {
101
- display: inline;
102
- }
103
-
104
- /* set button font style in image previewer */
105
- .sf-editor-image-previewer button.dtable-icon-fork-number,
106
- .sf-editor-image-previewer .dtable-icon-right,
107
- .sf-editor-image-previewer .dtable-icon-left {
108
- font-family: "iconfont" !important;
109
- font-style: normal;
110
- -webkit-font-smoothing: antialiased;
111
- -moz-osx-font-smoothing: grayscale;
112
- }
113
-
114
- .sf-editor-image-previewer button.dtable-icon-fork-number {
115
- font-size: 16px;
116
- line-height: normal;
117
- }
118
-
119
- .sf-editor-image-previewer .dtable-icon-left:before {
120
- content: "\e756";
121
- }
122
-
123
- .sf-editor-image-previewer .dtable-icon-right:before {
124
- content: "\e755";
125
- }
126
-
127
- .sf-editor-image-previewer .dtable-icon-fork-number:before {
128
- content: "\e6ce";
129
- }
130
-
131
- .sf-editor-image-previewer.ril__outer .ril__navButtonPrev.dtable-font,
132
- .sf-editor-image-previewer.ril__outer .ril__navButtonNext.dtable-font {
133
- padding: 40px 30px 80px;
134
- }
@@ -1,7 +0,0 @@
1
- .article .virtual-link {
2
- color: #eb8205;
3
- }
4
-
5
- .article .virtual-link:hover {
6
- text-decoration: underline;
7
- }
@@ -1,12 +0,0 @@
1
- .rendered-markdown.article {
2
- padding:0 20px 20px;
3
- }
4
-
5
- .rendered-markdown tbody tr:first-child {
6
- font-weight: 400;
7
- }
8
-
9
- .CodeMirror {
10
- height: auto;
11
- font-size: 0.8125rem;
12
- }
@@ -1,69 +0,0 @@
1
- #root {
2
- height: 100%;
3
- }
4
- .seafile-md-viewer-content .article {
5
- padding: 0;
6
- }
7
- .seafile-md-viewer-content {
8
- background: #fff;
9
- padding: 70px 75px;
10
- border:1px solid #e6e6dd;
11
- min-height: calc(100% - 60px);
12
- }
13
- .seafile-md-viewer-outline-heading2,
14
- .seafile-md-viewer-outline-heading3 {
15
- margin-left: .75rem;
16
- line-height: 2.5;
17
- color:#666;
18
- white-space: nowrap;
19
- overflow:hidden;
20
- text-overflow:ellipsis;
21
- cursor:pointer;
22
- }
23
- .seafile-md-viewer-outline-heading3 {
24
- margin-left: 2rem;
25
- }
26
- .seafile-md-viewer-outline-heading2:hover,
27
- .seafile-md-viewer-outline-heading3:hover {
28
- color: #eb8205;
29
- }
30
- .seafile-markdown-outline {
31
- position: fixed;
32
- padding-right: 1rem;
33
- top: 97px;
34
- right: 0;
35
- width: 200px;
36
- overflow: auto;
37
- height: 80%;
38
- }
39
- .seafile-editor-outline {
40
- border-left: 1px solid #ddd;
41
- }
42
- .seafile-markdown-outline .active {
43
- color: #eb8205;
44
- border-left: 1px solid #eb8205;
45
- }
46
- .seafile-markdown-outline .outline-h2, .seafile-markdown-outline .outline-h3 {
47
- height: 30px;
48
- margin-left: 0;
49
- white-space: nowrap;
50
- overflow: hidden;
51
- text-overflow: ellipsis;
52
- font-size: 14px;
53
- }
54
- .seafile-markdown-outline .outline-h2 {
55
- padding-left: 20px;
56
- }
57
- .seafile-markdown-outline .outline-h3 {
58
- padding-left: 40px;
59
- }
60
- @media (max-width:991.8px) {
61
- .seafile-md-viewer-content {
62
- padding: 40px;
63
- }
64
- }
65
- @media (max-width:768px) {
66
- .seafile-md-viewer-content {
67
- padding: 20px;
68
- }
69
- }
@@ -1,83 +0,0 @@
1
- .upload-localimg .btn {
2
- margin-left: -1px;
3
- border: none;
4
- line-height: 20px;
5
- margin-right: 5px;
6
- padding: 0;
7
- color: #555;
8
- min-width: 30px;
9
- height: 30px;
10
- width: 30px;
11
- }
12
-
13
- .upload-localimg-disabled .btn {
14
- cursor: default;
15
- }
16
-
17
- .upload-localimg-hover .btn:hover {
18
- background-color: #e5e5e5;
19
- }
20
-
21
- .upload-localimg-disable .btn {
22
- color: #999999;
23
- }
24
-
25
- .editor-btn-group .image-uploader {
26
- display: none;
27
- }
28
-
29
- .editor-btn-group .image-uploader-label {
30
- margin-bottom: 0;
31
- width: 100%;
32
- padding: 0.25rem 1.5rem;
33
- }
34
-
35
- .editor-btn-group .image-uploader-btn {
36
- padding: 0;
37
- }
38
-
39
- .editor-btn-group .editor-clear-format {
40
- margin-right: 5px;
41
- }
42
-
43
- .insert-file {
44
- position: relative;
45
- display: inline-block;
46
- overflow: hidden;
47
- display: flex;
48
- align-items: center;
49
- justify-content: center;
50
- margin-right: 10px;
51
- }
52
- .insert-file input {
53
- position: absolute;
54
- right: -7px;
55
- top: -7px;
56
- opacity: 0;
57
- filter: alpha(opacity=0);
58
- width: 40px;
59
- height: 40px;
60
- }
61
- .insert-file:hover {
62
- background-color: #e5e5e5;
63
- }
64
- .insert-file-disabled:hover {
65
- background-color: #fff;
66
- }
67
- .insert-file-disabled input {
68
- color: #999;
69
- }
70
- .button-container .toggle-side-panle-icon {
71
- position: absolute;
72
- }
73
- .rich-menu .side-panel-btn {
74
- display: none;
75
- }
76
- @media (max-width: 991.8px) {
77
- .button-container .toggle-side-panle-icon {
78
- display: none;
79
- }
80
- .rich-menu .side-panel-btn {
81
- display: block;
82
- }
83
- }
@@ -1,29 +0,0 @@
1
- .seafile-editor-outline .outline-h2, .outline-h3 {
2
- white-space: nowrap;
3
- overflow: hidden;
4
- text-overflow: ellipsis;
5
- }
6
-
7
- .seafile-editor-outline .outline-h2 {
8
- margin-left: 20px;
9
- line-height: 2.5;
10
- color:#364149;
11
- white-space: nowrap;
12
- cursor:pointer;
13
- }
14
-
15
- .seafile-editor-outline .outline-h2:hover {
16
- color: #eb8205;
17
- }
18
-
19
- .seafile-editor-outline .outline-h3 {
20
- margin-left: 40px;
21
- line-height: 2.5;
22
- color:#364149;
23
- white-space: nowrap;
24
- cursor:pointer;
25
- }
26
-
27
- .seafile-editor-outline .outline-h3:hover {
28
- color: #eb8205;
29
- }