@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
@@ -1,317 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/esm/inherits";
5
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
- import React, { Fragment } from 'react';
7
- import { withTranslation } from 'react-i18next';
8
- import EditorContext from '../../containers/editor-context';
9
- import ButtonItem from './widgets/button-item';
10
- import ButtonGroup from './widgets/button-group';
11
- import HeaderList from './header-list';
12
- import InsertTable from './insert-table';
13
- import InsertImage from './insert-image';
14
- import TableGroup from './table-group';
15
- import AddLinkDialog from '../dialogs/add-link-dialog';
16
- import AddImageDialog from '../dialogs/add-image-dialog';
17
- import AddFormulaDialog from '../dialogs/add-formula-dialog';
18
- import ColumnIcon from '../svg-icons/column-icon';
19
- import '../../assets/css/topbar.css';
20
- var Toolbar = /*#__PURE__*/function (_React$Component) {
21
- _inherits(Toolbar, _React$Component);
22
- var _super = _createSuper(Toolbar);
23
- function Toolbar(props) {
24
- var _this;
25
- _classCallCheck(this, Toolbar);
26
- _this = _super.call(this, props);
27
- _this.onClickHeader = function (event, type) {
28
- event.preventDefault();
29
- _this.editorUtils.clickHeader(type);
30
- };
31
- _this.onClickMark = function (type) {
32
- return function (event) {
33
- event.preventDefault();
34
- _this.editorUtils.clickMark(type);
35
- };
36
- };
37
- _this.onClickBlock = function (type) {
38
- return function (event) {
39
- event.preventDefault();
40
- _this.editorUtils.clickBlock(type);
41
- };
42
- };
43
- _this.onClearFormat = function (event) {
44
- event.preventDefault();
45
- _this.editorUtils.clearFormat();
46
- };
47
- _this.onClickCheckItem = function (event) {
48
- event.preventDefault();
49
- _this.editorUtils.clickCheckItem();
50
- };
51
- _this.onAddTable = function (event, rowCount, columnCount) {
52
- event.preventDefault();
53
- _this.editorUtils.addTable(rowCount, columnCount);
54
- };
55
- _this.onInsertImage = function (data) {
56
- _this.editorUtils.insertImage(data);
57
- };
58
- _this.onAddCustomColumn = function (event) {
59
- event.preventDefault();
60
- event.nativeEvent.stopImmediatePropagation();
61
- _this.editorUtils.addCustomColumn();
62
- };
63
- _this.onRemoveTable = function (event) {
64
- event.preventDefault();
65
- _this.editorUtils.removeTable();
66
- };
67
- _this.onInsertColumn = function (event) {
68
- event.preventDefault();
69
- _this.editorUtils.insertColumn();
70
- };
71
- _this.onRemoveColumn = function (event) {
72
- event.preventDefault();
73
- _this.editorUtils.removeColumn();
74
- };
75
- _this.onInsertRow = function (event) {
76
- event.preventDefault();
77
- _this.editorUtils.insertRow();
78
- };
79
- _this.onRemoveRow = function (event) {
80
- event.preventDefault();
81
- _this.editorUtils.removeRow();
82
- };
83
- _this.onSetAlign = function (event, align) {
84
- event.preventDefault();
85
- _this.editorUtils.setAlign(align);
86
- };
87
- _this.onToggleLink = function (event) {
88
- event.preventDefault();
89
- var isLinkActive = _this.editorUtils.isLinkActive();
90
- if (!isLinkActive) {
91
- _this.setState({
92
- isShowLinkDialog: !_this.state.isShowLinkDialog
93
- });
94
- return;
95
- }
96
- _this.editorUtils.unwrapLink();
97
- };
98
- _this.onToggleLinkDialog = function () {
99
- _this.setState({
100
- isShowLinkDialog: !_this.state.isShowLinkDialog
101
- });
102
- };
103
- _this.onToggleFormulaDialog = function () {
104
- _this.setState({
105
- isShowFormulaDialog: !_this.state.isShowFormulaDialog
106
- });
107
- };
108
- _this.onToggleImageDialog = function () {
109
- _this.setState({
110
- isShowImageDialog: !_this.state.isShowImageDialog
111
- });
112
- };
113
- _this.state = {
114
- isShowLinkDialog: false,
115
- isShowImageDialog: false,
116
- isShowFormulaDialog: false
117
- };
118
- _this.editorUtils = EditorContext.getEditorUtils();
119
- window.abcdef_editorToolbar = _assertThisInitialized(_this);
120
- return _this;
121
- }
122
- _createClass(Toolbar, [{
123
- key: "render",
124
- value: function render() {
125
- var _this$props = this.props,
126
- hasSidePanel = _this$props.hasSidePanel,
127
- isShowSidePanel = _this$props.isShowSidePanel,
128
- canInsertColumn = _this$props.canInsertColumn,
129
- t = _this$props.t;
130
- var toolbarStatus = this.editorUtils.getToolbarStatus();
131
- var isTableActive = toolbarStatus.isTableActive,
132
- isCodeActive = toolbarStatus.isCodeActive,
133
- isBoldActive = toolbarStatus.isBoldActive,
134
- isItalicActive = toolbarStatus.isItalicActive,
135
- isInlineCodeActive = toolbarStatus.isInlineCodeActive,
136
- isLinkActive = toolbarStatus.isLinkActive,
137
- isBlockquoteActive = toolbarStatus.isBlockquoteActive,
138
- isOrderedListActive = toolbarStatus.isOrderedListActive,
139
- isUnorderedListActive = toolbarStatus.isUnorderedListActive,
140
- isCheckListActive = toolbarStatus.isCheckListActive,
141
- isFormulaActive = toolbarStatus.isFormulaActive,
142
- isColumnActive = toolbarStatus.isColumnActive;
143
- var isListActive = isOrderedListActive || isUnorderedListActive || isCheckListActive;
144
- var sidePanelText = isShowSidePanel ? t('Hide_side_panel') : t('Show_side_panel');
145
- var _this$state = this.state,
146
- isShowLinkDialog = _this$state.isShowLinkDialog,
147
- isShowImageDialog = _this$state.isShowImageDialog,
148
- isShowFormulaDialog = _this$state.isShowFormulaDialog;
149
- var isHeadActive = toolbarStatus.headerType !== 'paragraph';
150
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {
151
- className: 'sf-editor-toolbar ' + (this.props.isSimpleEditor ? '' : 'rich-menu')
152
- }, /*#__PURE__*/React.createElement("div", {
153
- className: 'button-container'
154
- }, /*#__PURE__*/React.createElement("div", {
155
- className: 'header-list-container'
156
- }, /*#__PURE__*/React.createElement(HeaderList, {
157
- disabled: isFormulaActive || isCodeActive || isColumnActive || isTableActive,
158
- headerType: toolbarStatus.headerType,
159
- onClickHeader: this.onClickHeader
160
- })), /*#__PURE__*/React.createElement(ButtonGroup, {
161
- className: 'editor-btn-group'
162
- }, /*#__PURE__*/React.createElement(ButtonItem, {
163
- disabled: isFormulaActive || isCodeActive || isColumnActive,
164
- isRichEditor: true,
165
- text: t('italic'),
166
- id: 'ITALICButton',
167
- icon: 'iconfont icon-italic',
168
- isActive: isItalicActive,
169
- onMouseDown: this.onClickMark('ITALIC')
170
- }), /*#__PURE__*/React.createElement(ButtonItem, {
171
- disabled: isFormulaActive || isCodeActive || isColumnActive,
172
- isRichEditor: true,
173
- text: t('bold'),
174
- id: 'BOLDButton',
175
- icon: 'iconfont icon-bold',
176
- isActive: isBoldActive,
177
- onMouseDown: this.onClickMark('BOLD')
178
- }), /*#__PURE__*/React.createElement(ButtonItem, {
179
- disabled: isFormulaActive || isCodeActive || isColumnActive,
180
- isRichEditor: true,
181
- text: t('code'),
182
- id: 'CODEButton',
183
- icon: 'iconfont icon-code',
184
- isActive: isInlineCodeActive,
185
- onMouseDown: this.onClickMark('CODE')
186
- }), /*#__PURE__*/React.createElement(ButtonItem, {
187
- disabled: isFormulaActive || isCodeActive || isColumnActive,
188
- isRichEditor: true,
189
- text: t('insert_link'),
190
- id: 'linkButton',
191
- icon: 'iconfont icon-link',
192
- isActive: isLinkActive,
193
- onMouseDown: this.onToggleLink
194
- })), /*#__PURE__*/React.createElement(ButtonGroup, {
195
- className: 'editor-btn-group'
196
- }, /*#__PURE__*/React.createElement(ButtonItem, {
197
- disabled: isFormulaActive || isTableActive || isColumnActive || isCodeActive,
198
- isRichEditor: true,
199
- text: t('quote'),
200
- id: 'block-quoteButton',
201
- icon: 'iconfont icon-quote-left',
202
- isActive: isBlockquoteActive,
203
- onMouseDown: this.onClickBlock('blockquote')
204
- }), /*#__PURE__*/React.createElement(ButtonItem, {
205
- disabled: isFormulaActive || isTableActive || isColumnActive || isCodeActive,
206
- isRichEditor: true,
207
- text: t('ordered_list'),
208
- id: 'ordered_listButton',
209
- icon: 'iconfont icon-list-ol',
210
- isActive: isOrderedListActive,
211
- onMouseDown: this.onClickBlock('ordered_list')
212
- }), /*#__PURE__*/React.createElement(ButtonItem, {
213
- disabled: isFormulaActive || isTableActive || isColumnActive || isCodeActive,
214
- isRichEditor: true,
215
- text: t('unordered_list'),
216
- id: 'unordered_listButton',
217
- icon: 'iconfont icon-list-ul',
218
- isActive: isUnorderedListActive,
219
- onMouseDown: this.onClickBlock('unordered_list')
220
- }), !canInsertColumn && /*#__PURE__*/React.createElement(ButtonItem, {
221
- disabled: isFormulaActive || isTableActive || isColumnActive || isCodeActive,
222
- isRichEditor: true,
223
- text: t('check_list_item'),
224
- id: 'checkListItemButton',
225
- icon: 'iconfont icon-check-square',
226
- isActive: isCheckListActive,
227
- onMouseDown: this.onClickCheckItem
228
- })), /*#__PURE__*/React.createElement(ButtonGroup, {
229
- className: 'editor-btn-group'
230
- }, /*#__PURE__*/React.createElement(ButtonItem, {
231
- disabled: isFormulaActive || isTableActive || isColumnActive || isHeadActive,
232
- isRichEditor: true,
233
- text: t('code_block'),
234
- id: 'codeButton',
235
- icon: 'iconfont icon-code-block',
236
- isActive: isCodeActive,
237
- onMouseDown: this.onClickBlock('code_block')
238
- }), /*#__PURE__*/React.createElement(InsertTable, {
239
- disabled: isFormulaActive || isCodeActive || isTableActive || isColumnActive,
240
- isRichEditor: true,
241
- text: t('insert_table'),
242
- id: 'tableButton',
243
- icon: 'iconfont icon-table',
244
- onAddTable: this.onAddTable
245
- }), window.canInsertFormula && /*#__PURE__*/React.createElement(ButtonItem, {
246
- disabled: isFormulaActive || isCodeActive || isTableActive || isColumnActive || isHeadActive || isListActive,
247
- isRichEditor: true,
248
- text: t('insert_formula'),
249
- id: 'formulaButton',
250
- icon: 'iconfont icon-formula',
251
- onMouseDown: this.onToggleFormulaDialog
252
- }), /*#__PURE__*/React.createElement(InsertImage, {
253
- disabled: isFormulaActive || isCodeActive || isColumnActive || isHeadActive,
254
- text: 'insert_image',
255
- id: 'insertImageButton',
256
- insertRepoFile: this.props.insertRepoFile,
257
- toolbarStatus: this.props.toolbarStatus,
258
- onInsertImage: this.onInsertImage,
259
- onToggleImageDialog: this.onToggleImageDialog
260
- }), canInsertColumn && /*#__PURE__*/React.createElement(ButtonItem, {
261
- disabled: isFormulaActive || isTableActive || isHeadActive,
262
- isRichEditor: true,
263
- text: t('Insert_column'),
264
- id: 'insertColumn',
265
- className: "svg-button",
266
- onMouseDown: this.onAddCustomColumn,
267
- isActive: isCodeActive,
268
- image: ColumnIcon
269
- })), isTableActive && /*#__PURE__*/React.createElement(TableGroup, {
270
- onRemoveTable: this.onRemoveTable,
271
- onInsertColumn: this.onInsertColumn,
272
- onRemoveColumn: this.onRemoveColumn,
273
- onInsertRow: this.onInsertRow,
274
- onRemoveRow: this.onRemoveRow,
275
- onSetAlign: this.onSetAlign
276
- }), /*#__PURE__*/React.createElement(ButtonGroup, {
277
- className: 'editor-btn-group'
278
- }, /*#__PURE__*/React.createElement(ButtonItem, {
279
- className: 'editor-clear-format',
280
- isRichEditor: true,
281
- text: t('Clear_format'),
282
- id: 'clearButton',
283
- icon: 'iconfont icon-clear-format',
284
- onMouseDown: this.onClearFormat
285
- }))), hasSidePanel && /*#__PURE__*/React.createElement("div", {
286
- className: "button-container"
287
- }, !this.props.isShowSidePanel && /*#__PURE__*/React.createElement(ButtonGroup, {
288
- className: "editor-btn-group position-absolute dropdown-menu-right"
289
- }, /*#__PURE__*/React.createElement(ButtonItem, {
290
- isRichEditor: true,
291
- text: sidePanelText,
292
- id: "showSidePanel",
293
- icon: "iconfont icon-angle-double-left",
294
- isActive: false,
295
- onMouseDown: this.props.toggleSidePanel
296
- })), this.props.isShowSidePanel && /*#__PURE__*/React.createElement(ButtonGroup, {
297
- className: "editor-btn-group position-absolute dropdown-menu-right"
298
- }, /*#__PURE__*/React.createElement(ButtonItem, {
299
- isRichEditor: true,
300
- text: sidePanelText,
301
- id: "hideSidePanel",
302
- icon: "iconfont icon-angle-double-right",
303
- isActive: false,
304
- onMouseDown: this.props.toggleSidePanel
305
- })))), isShowLinkDialog && /*#__PURE__*/React.createElement(AddLinkDialog, {
306
- toggleLinkDialog: this.onToggleLinkDialog
307
- }), isShowFormulaDialog && /*#__PURE__*/React.createElement(AddFormulaDialog, {
308
- toggleFormulaDialog: this.onToggleFormulaDialog
309
- }), isShowImageDialog && /*#__PURE__*/React.createElement(AddImageDialog, {
310
- insertImage: this.onInsertImage,
311
- onToggleImageDialog: this.onToggleImageDialog
312
- }));
313
- }
314
- }]);
315
- return Toolbar;
316
- }(React.Component);
317
- export default withTranslation('seafile-editor')(Toolbar);
@@ -1,24 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- var ButtonGroup = /*#__PURE__*/function (_React$PureComponent) {
7
- _inherits(ButtonGroup, _React$PureComponent);
8
- var _super = _createSuper(ButtonGroup);
9
- function ButtonGroup() {
10
- _classCallCheck(this, ButtonGroup);
11
- return _super.apply(this, arguments);
12
- }
13
- _createClass(ButtonGroup, [{
14
- key: "render",
15
- value: function render() {
16
- return /*#__PURE__*/React.createElement("div", {
17
- className: 'btn-group ' + this.props.className,
18
- role: 'group'
19
- }, this.props.children);
20
- }
21
- }]);
22
- return ButtonGroup;
23
- }(React.PureComponent);
24
- export default ButtonGroup;
@@ -1,129 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import { Tooltip } from 'reactstrap';
7
- import { withTranslation } from 'react-i18next';
8
- var ButtonItem = /*#__PURE__*/function (_React$Component) {
9
- _inherits(ButtonItem, _React$Component);
10
- var _super = _createSuper(ButtonItem);
11
- function ButtonItem(props) {
12
- var _this;
13
- _classCallCheck(this, ButtonItem);
14
- _this = _super.call(this, props);
15
- _this.toggle = function () {
16
- var disabled = _this.props.disabled;
17
- if (disabled) return;
18
- var _this$state = _this.state,
19
- isFreezed = _this$state.isFreezed,
20
- tooltipOpen = _this$state.tooltipOpen;
21
- if (isFreezed && !tooltipOpen) return;
22
- _this.setState({
23
- tooltipOpen: !tooltipOpen,
24
- isFreezed: true
25
- });
26
- _this.timer = setTimeout(function () {
27
- _this.setState({
28
- isFreezed: false
29
- });
30
- }, 100);
31
- };
32
- _this.onClick = function (event) {
33
- if (!_this.props.disabled) {
34
- _this.props.onClick && _this.props.onClick(event);
35
- }
36
- };
37
- _this.onMouseDown = function (event) {
38
- if (!_this.props.disabled) {
39
- _this.props.onMouseDown(event);
40
- }
41
- };
42
- _this.getClassName = function () {
43
- var _this$props = _this.props,
44
- isRichEditor = _this$props.isRichEditor,
45
- className = _this$props.className,
46
- disabled = _this$props.disabled;
47
- var itemClass = 'btn btn-icon btn-secondary btn-active';
48
- if (!isRichEditor) return itemClass + ' ' + className;
49
- itemClass = "rich-icon-btn ".concat(disabled ? 'rich-icon-btn-disabled' : 'rich-icon-btn-hover');
50
- return itemClass + ' ' + className;
51
- };
52
- _this.state = {
53
- tooltipOpen: false,
54
- isFreezed: false
55
- };
56
- return _this;
57
- }
58
- _createClass(ButtonItem, [{
59
- key: "componentWillUnmount",
60
- value: function componentWillUnmount() {
61
- this.timer && clearTimeout(this.timer);
62
- }
63
- }, {
64
- key: "shouldComponentUpdate",
65
- value: function shouldComponentUpdate(nextProps, nextState) {
66
- var disabled = nextProps.disabled,
67
- isActive = nextProps.isActive;
68
- var _this$props2 = this.props,
69
- oldDisabled = _this$props2.disabled,
70
- oldIsActive = _this$props2.isActive;
71
- if (disabled !== oldDisabled) {
72
- this.setState({
73
- tooltipOpen: false
74
- });
75
- return true;
76
- }
77
- // only render iconButton when the button is active or show show tooltip
78
- var tooltipOpen = nextState.tooltipOpen;
79
- var oldTooltipOpen = this.state.tooltipOpen;
80
- if (tooltipOpen === oldTooltipOpen && isActive === oldIsActive) {
81
- return false;
82
- }
83
- return true;
84
- }
85
- }, {
86
- key: "render",
87
- value: function render() {
88
- var tooltipOpen = this.state.tooltipOpen;
89
- var _this$props3 = this.props,
90
- id = _this$props3.id,
91
- isActive = _this$props3.isActive,
92
- disabled = _this$props3.disabled,
93
- icon = _this$props3.icon,
94
- text = _this$props3.text,
95
- Image = _this$props3.image;
96
- var className = this.getClassName();
97
- var delay = {
98
- show: 0,
99
- hide: 0
100
- };
101
- return /*#__PURE__*/React.createElement("button", {
102
- type: "button",
103
- id: id,
104
- className: className,
105
- "data-active": isActive,
106
- disabled: disabled,
107
- onClick: this.onClick,
108
- onMouseDown: this.onMouseDown
109
- }, icon ? /*#__PURE__*/React.createElement("i", {
110
- className: icon
111
- }) : /*#__PURE__*/React.createElement(Image, {
112
- width: "13px",
113
- color: disabled ? '#999' : '#555'
114
- }), /*#__PURE__*/React.createElement(Tooltip, {
115
- target: id,
116
- isOpen: tooltipOpen,
117
- delay: delay,
118
- placement: "bottom",
119
- toggle: this.toggle
120
- }, text));
121
- }
122
- }]);
123
- return ButtonItem;
124
- }(React.Component);
125
- ButtonItem.defaultProps = {
126
- className: '',
127
- isActive: false
128
- };
129
- export default withTranslation('seafile-editor')(ButtonItem);
@@ -1,88 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import ReactDOM from 'react-dom';
7
- var DropList = /*#__PURE__*/function (_React$PureComponent) {
8
- _inherits(DropList, _React$PureComponent);
9
- var _super = _createSuper(DropList);
10
- function DropList(props) {
11
- var _this;
12
- _classCallCheck(this, DropList);
13
- _this = _super.call(this, props);
14
- _this.handleClick = function (event) {
15
- if (_this.props.disabled) return;
16
- var container = _this.getContainer();
17
- if (container.contains(event.target)) {
18
- _this.toggle();
19
- } else {
20
- if (_this.state.dropdownOpen) {
21
- _this.setState({
22
- dropdownOpen: !_this.state.dropdownOpen
23
- });
24
- }
25
- }
26
- };
27
- _this.toggle = function () {
28
- _this.setState({
29
- dropdownOpen: !_this.state.dropdownOpen
30
- });
31
- };
32
- _this.state = {
33
- dropdownOpen: false
34
- };
35
- return _this;
36
- }
37
- _createClass(DropList, [{
38
- key: "getContainer",
39
- value: function getContainer() {
40
- return ReactDOM.findDOMNode(this);
41
- }
42
- }, {
43
- key: "componentDidMount",
44
- value: function componentDidMount() {
45
- document.addEventListener('click', this.handleClick);
46
- }
47
- }, {
48
- key: "componentWillUnmount",
49
- value: function componentWillUnmount() {
50
- document.removeEventListener('click', this.handleClick);
51
- }
52
- }, {
53
- key: "render",
54
- value: function render() {
55
- var items = [];
56
- this.props.items.forEach(function (item, index) {
57
- items.push( /*#__PURE__*/React.createElement("button", {
58
- key: 'dropdown-item' + index,
59
- onMouseDown: item.handle,
60
- className: 'dropdown-item'
61
- }, item.icon ? /*#__PURE__*/React.createElement("i", {
62
- className: item.icon,
63
- style: {
64
- marginRight: '6px'
65
- }
66
- }) : null, item.text));
67
- });
68
- return /*#__PURE__*/React.createElement("div", {
69
- className: 'custom-dropdown-list'
70
- }, /*#__PURE__*/React.createElement("div", {
71
- id: 'list_toggle',
72
- className: 'dropdown-list-toggle'
73
- }, /*#__PURE__*/React.createElement("i", {
74
- className: this.props.icon,
75
- style: {
76
- marginRight: '3px'
77
- }
78
- }), /*#__PURE__*/React.createElement("i", {
79
- className: this.state.dropdownOpen ? 'iconfont icon-caret-up' : 'iconfont icon-drop-down'
80
- })), this.state.dropdownOpen && /*#__PURE__*/React.createElement("div", {
81
- role: 'menu',
82
- className: 'custom-dropdown-menu dropdown-menu'
83
- }, items));
84
- }
85
- }]);
86
- return DropList;
87
- }(React.PureComponent);
88
- export default DropList;