@seafile/seafile-editor 1.0.0 → 1.0.2

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 (478) hide show
  1. package/dist/constants/event-types.js +16 -0
  2. package/dist/constants/hot-keys.js +43 -0
  3. package/dist/containers/article-info/index.js +57 -0
  4. package/dist/containers/custom/get-event-transfer.js +38 -0
  5. package/dist/containers/custom/set-event-transfer.js +36 -0
  6. package/dist/containers/hotkeys-helper/classify-hotkeys.js +39 -0
  7. package/dist/containers/hotkeys-helper/index.js +52 -0
  8. package/dist/containers/loading/index.js +33 -0
  9. package/dist/containers/outline/index.js +80 -0
  10. package/dist/containers/outline/outline-item.js +30 -0
  11. package/dist/editors/plain-markdown-editor/code-mirror.js +84 -0
  12. package/dist/editors/plain-markdown-editor/index.js +149 -0
  13. package/dist/editors/simple-slate-editor /index.js +90 -0
  14. package/dist/editors/simple-slate-editor /with-props-editor.js +18 -0
  15. package/dist/editors/slate-editor/editor-help/index.js +53 -0
  16. package/dist/editors/slate-editor/index.js +102 -0
  17. package/dist/editors/slate-editor/with-props-editor.js +18 -0
  18. package/dist/editors/slate-viewer/index.js +42 -0
  19. package/dist/extension/commons/element-popover/index.js +64 -0
  20. package/dist/extension/commons/index.js +26 -0
  21. package/dist/extension/commons/menu/index.js +21 -0
  22. package/dist/extension/commons/menu/menu-drop-down.js +104 -0
  23. package/dist/extension/commons/menu/menu-group.js +18 -0
  24. package/dist/extension/commons/menu/menu-item.js +54 -0
  25. package/dist/extension/commons/tooltip/index.js +26 -0
  26. package/dist/extension/constants/element-types.js +29 -0
  27. package/dist/extension/constants/index.js +46 -0
  28. package/dist/extension/constants/keyboard.js +33 -0
  29. package/dist/extension/constants/menus-config.js +121 -0
  30. package/dist/extension/core/index.js +38 -0
  31. package/dist/extension/core/queries/index.js +479 -0
  32. package/dist/extension/core/transforms/focus-editor.js +17 -0
  33. package/dist/extension/core/transforms/index.js +49 -0
  34. package/dist/extension/core/transforms/move-children.js +35 -0
  35. package/dist/extension/core/transforms/remove-node-children.js +31 -0
  36. package/dist/extension/core/transforms/replace-node-children.js +22 -0
  37. package/dist/extension/core/utils/index.js +103 -0
  38. package/dist/extension/editor.js +19 -0
  39. package/dist/extension/index.js +48 -0
  40. package/dist/extension/plugins/blockquote/helpers.js +77 -0
  41. package/dist/extension/plugins/blockquote/index.js +18 -0
  42. package/dist/extension/plugins/blockquote/menu/index.js +33 -0
  43. package/dist/extension/plugins/blockquote/plugin.js +70 -0
  44. package/dist/extension/plugins/blockquote/render-elem.js +18 -0
  45. package/dist/extension/plugins/check-list/helper.js +35 -0
  46. package/dist/extension/plugins/check-list/index.js +19 -0
  47. package/dist/extension/plugins/check-list/menu/index.js +40 -0
  48. package/dist/extension/plugins/check-list/plugin.js +50 -0
  49. package/dist/extension/plugins/check-list/render-elem.js +44 -0
  50. package/dist/extension/plugins/clear-format/helpers.js +65 -0
  51. package/dist/extension/plugins/clear-format/menu/index.js +34 -0
  52. package/dist/extension/plugins/code-block/helpers.js +175 -0
  53. package/dist/extension/plugins/code-block/index.js +20 -0
  54. package/dist/extension/plugins/code-block/menu/index.js +37 -0
  55. package/dist/extension/plugins/code-block/plugin.js +270 -0
  56. package/dist/extension/plugins/code-block/render-elem/constant.js +12 -0
  57. package/dist/extension/plugins/code-block/render-elem/index.js +62 -0
  58. package/dist/extension/plugins/code-block/render-elem/language-selector.js +39 -0
  59. package/dist/extension/plugins/formula/helper.js +74 -0
  60. package/dist/extension/plugins/formula/index.js +19 -0
  61. package/dist/extension/plugins/formula/menu/formula-modal.js +97 -0
  62. package/dist/extension/plugins/formula/menu/index.js +71 -0
  63. package/dist/extension/plugins/formula/plugin.js +18 -0
  64. package/dist/extension/plugins/formula/render-elem.js +48 -0
  65. package/dist/extension/plugins/header/helper.js +57 -0
  66. package/dist/extension/plugins/header/index.js +19 -0
  67. package/dist/extension/plugins/header/menu/index.js +110 -0
  68. package/dist/extension/plugins/header/plugin.js +146 -0
  69. package/dist/extension/plugins/header/render-elem.js +34 -0
  70. package/dist/extension/plugins/image/helper.js +62 -0
  71. package/dist/extension/plugins/image/index.js +19 -0
  72. package/dist/extension/plugins/image/menu/image-menu-dialog.js +79 -0
  73. package/dist/extension/plugins/image/menu/image-menu-popover.js +96 -0
  74. package/dist/extension/plugins/image/menu/index.js +58 -0
  75. package/dist/extension/plugins/image/plugin.js +24 -0
  76. package/dist/extension/plugins/image/render-element/image-previewer.js +78 -0
  77. package/dist/extension/plugins/image/render-element/index.js +122 -0
  78. package/dist/extension/plugins/index.js +95 -0
  79. package/dist/extension/plugins/link/helper.js +235 -0
  80. package/dist/extension/plugins/link/index.js +19 -0
  81. package/dist/extension/plugins/link/menu/index.js +98 -0
  82. package/dist/extension/plugins/link/menu/link-modal.js +163 -0
  83. package/dist/extension/plugins/link/plugin.js +104 -0
  84. package/dist/extension/plugins/link/render-elem/index.js +83 -0
  85. package/dist/extension/plugins/link/render-elem/link-popover.js +77 -0
  86. package/dist/extension/plugins/list/constant.js +8 -0
  87. package/dist/extension/plugins/list/helpers.js +78 -0
  88. package/dist/extension/plugins/list/index.js +19 -0
  89. package/dist/extension/plugins/list/menu/index.js +46 -0
  90. package/dist/extension/plugins/list/plugin/index.js +48 -0
  91. package/dist/extension/plugins/list/plugin/insert-break-list.js +28 -0
  92. package/dist/extension/plugins/list/plugin/insert-fragment-list.js +190 -0
  93. package/dist/extension/plugins/list/plugin/normalize-list.js +81 -0
  94. package/dist/extension/plugins/list/plugin/on-tab-handle.js +52 -0
  95. package/dist/extension/plugins/list/queries/index.js +51 -0
  96. package/dist/extension/plugins/list/render-elem/index.js +38 -0
  97. package/dist/extension/plugins/list/transforms/index.js +75 -0
  98. package/dist/extension/plugins/list/transforms/insert-list-item.js +100 -0
  99. package/dist/extension/plugins/list/transforms/move-list-item-down.js +51 -0
  100. package/dist/extension/plugins/list/transforms/move-list-item-up.js +124 -0
  101. package/dist/extension/plugins/list/transforms/move-list-items-to-list.js +62 -0
  102. package/dist/extension/plugins/list/transforms/move-list-items.js +73 -0
  103. package/dist/extension/plugins/list/transforms/normalize-list-item.js +125 -0
  104. package/dist/extension/plugins/list/transforms/normalize-nested-list.js +40 -0
  105. package/dist/extension/plugins/list/transforms/remove-first-list-item.js +24 -0
  106. package/dist/extension/plugins/list/transforms/transforms-to-list.js +148 -0
  107. package/dist/extension/plugins/list/transforms/unwrap-list.js +50 -0
  108. package/dist/extension/plugins/node-id/constants.js +24 -0
  109. package/dist/extension/plugins/node-id/helpers.js +69 -0
  110. package/dist/extension/plugins/node-id/index.js +12 -0
  111. package/dist/extension/plugins/node-id/with-node-id.js +39 -0
  112. package/dist/extension/plugins/paragraph/helper.js +16 -0
  113. package/dist/extension/plugins/paragraph/index.js +17 -0
  114. package/dist/extension/plugins/paragraph/plugin.js +47 -0
  115. package/dist/extension/plugins/paragraph/render-elem.js +18 -0
  116. package/dist/extension/plugins/table/constant.js +9 -0
  117. package/dist/extension/plugins/table/helper.js +232 -0
  118. package/dist/extension/plugins/table/index.js +21 -0
  119. package/dist/extension/plugins/table/menu/index.js +64 -0
  120. package/dist/extension/plugins/table/menu/table-operator.js +98 -0
  121. package/dist/extension/plugins/table/menu/table-size-selector.js +100 -0
  122. package/dist/extension/plugins/table/model.js +95 -0
  123. package/dist/extension/plugins/table/plugin.js +173 -0
  124. package/dist/extension/plugins/table/render-elem/context-menu.js +93 -0
  125. package/dist/extension/plugins/table/render-elem/index.js +189 -0
  126. package/dist/extension/plugins/table/table-operations.js +187 -0
  127. package/dist/extension/plugins/text-style/helpers.js +44 -0
  128. package/dist/extension/plugins/text-style/index.js +17 -0
  129. package/dist/extension/plugins/text-style/menu/index.js +34 -0
  130. package/dist/extension/plugins/text-style/plugin.js +36 -0
  131. package/dist/extension/plugins/text-style/render-elem.js +52 -0
  132. package/dist/extension/render/render-element.js +113 -0
  133. package/dist/extension/render/render-leaf.js +21 -0
  134. package/dist/extension/toolbar/header-toolbar/index.js +113 -0
  135. package/dist/extension/toolbar/index.js +13 -0
  136. package/dist/extension/toolbar/user-help/shortcut-dialog.js +141 -0
  137. package/dist/hooks/use-mathjax.js +51 -0
  138. package/dist/hooks/use-scroll-context.js +17 -0
  139. package/dist/hooks/use-selection-update.js +25 -0
  140. package/dist/index.js +80 -0
  141. package/dist/pages/markdown-editor.js +65 -0
  142. package/dist/pages/markdown-view.js +49 -0
  143. package/dist/pages/rich-markdown-editor.js +111 -0
  144. package/dist/pages/simple-editor.js +63 -0
  145. package/dist/slate-convert/html-to-slate/constants.js +40 -0
  146. package/dist/slate-convert/html-to-slate/helper.js +60 -0
  147. package/dist/slate-convert/html-to-slate/index.js +138 -0
  148. package/dist/slate-convert/html-to-slate/rules/blockquote.js +22 -0
  149. package/dist/slate-convert/html-to-slate/rules/check-list.js +25 -0
  150. package/dist/slate-convert/html-to-slate/rules/code-block.js +93 -0
  151. package/dist/slate-convert/html-to-slate/rules/header.js +22 -0
  152. package/dist/slate-convert/html-to-slate/rules/image.js +27 -0
  153. package/dist/slate-convert/html-to-slate/rules/index.js +18 -0
  154. package/dist/slate-convert/html-to-slate/rules/link.js +27 -0
  155. package/dist/slate-convert/html-to-slate/rules/list.js +55 -0
  156. package/dist/slate-convert/html-to-slate/rules/paragraph.js +22 -0
  157. package/dist/slate-convert/html-to-slate/rules/table.js +39 -0
  158. package/dist/slate-convert/html-to-slate/rules/text.js +61 -0
  159. package/dist/slate-convert/index.js +34 -0
  160. package/dist/slate-convert/md-to-html/index.js +53 -0
  161. package/dist/slate-convert/md-to-html/sanitize-schema.js +24 -0
  162. package/dist/slate-convert/md-to-slate/index.js +44 -0
  163. package/dist/slate-convert/md-to-slate/transform.js +326 -0
  164. package/dist/slate-convert/slate-to-md/index.js +43 -0
  165. package/dist/slate-convert/slate-to-md/transform.js +269 -0
  166. package/dist/utils/common.js +26 -0
  167. package/dist/utils/deserialize-html.js +260 -0
  168. package/dist/utils/dom-utils.js +51 -0
  169. package/dist/utils/event-bus.js +54 -0
  170. package/dist/utils/event-handler.js +40 -0
  171. package/dist/utils/object-utils.js +73 -0
  172. package/package.json +7 -2
  173. package/.babelrc +0 -5
  174. package/.eslintignore +0 -19
  175. package/.eslintrc.json +0 -52
  176. package/.github/workflows/nodejs.yml +0 -25
  177. package/.vscode/settings.json +0 -5
  178. package/config/config.common.js +0 -157
  179. package/config/config.dev.js +0 -53
  180. package/config/jest/cssTransform.js +0 -16
  181. package/config/jest/fileTransform.js +0 -40
  182. package/config/utils/theme.css.js +0 -103
  183. package/config.js +0 -61
  184. package/dev-server.js +0 -145
  185. package/jest.config.js +0 -16
  186. package/scripts/ejs.js +0 -16
  187. package/site/_i18n/index.js +0 -35
  188. package/site/api/index.js +0 -212
  189. package/site/app.js +0 -21
  190. package/site/assets/css/app.css +0 -47
  191. package/site/assets/css/seafile-editor.css +0 -33
  192. package/site/commons/loading/index.js +0 -14
  193. package/site/commons/switch/index.css +0 -14
  194. package/site/commons/switch/index.js +0 -37
  195. package/site/commons/toast/alert.js +0 -106
  196. package/site/commons/toast/index.js +0 -5
  197. package/site/commons/toast/toast.js +0 -195
  198. package/site/commons/toast/toastManager.js +0 -138
  199. package/site/commons/toast/toaster.js +0 -64
  200. package/site/index.html +0 -23
  201. package/site/index.js +0 -21
  202. package/site/pages/home.js +0 -21
  203. package/site/pages/plain-markdown-view.js +0 -6
  204. package/site/pages/rich-seafile-editor.js +0 -72
  205. package/site/pages/seafile-editor.js +0 -39
  206. package/site/pages/seafile-viewer.js +0 -45
  207. package/site/pages/simple-editor.js +0 -44
  208. package/site/pages/wiki-viewer.js +0 -7
  209. package/site/setting.js +0 -36
  210. package/site/setting.local.dist.js +0 -23
  211. package/src/constants/event-types.js +0 -11
  212. package/src/constants/hot-keys.js +0 -47
  213. package/src/containers/article-info/index.js +0 -49
  214. package/src/containers/custom/get-event-transfer.js +0 -28
  215. package/src/containers/custom/set-event-transfer.js +0 -32
  216. package/src/containers/hotkeys-helper/classify-hotkeys.js +0 -30
  217. package/src/containers/hotkeys-helper/index.js +0 -43
  218. package/src/containers/loading/index.js +0 -14
  219. package/src/containers/loading/style.css +0 -49
  220. package/src/containers/outline/index.js +0 -75
  221. package/src/containers/outline/outline-item.js +0 -28
  222. package/src/editors/plain-markdown-editor/code-mirror.js +0 -73
  223. package/src/editors/plain-markdown-editor/index.js +0 -136
  224. package/src/editors/simple-slate-editor /index.js +0 -71
  225. package/src/editors/simple-slate-editor /with-props-editor.js +0 -15
  226. package/src/editors/slate-editor/editor-help/index.js +0 -46
  227. package/src/editors/slate-editor/index.js +0 -77
  228. package/src/editors/slate-editor/with-props-editor.js +0 -15
  229. package/src/editors/slate-viewer/index.js +0 -35
  230. package/src/extension/commons/element-popover/index.js +0 -52
  231. package/src/extension/commons/index.js +0 -10
  232. package/src/extension/commons/menu/index.js +0 -9
  233. package/src/extension/commons/menu/menu-drop-down.js +0 -110
  234. package/src/extension/commons/menu/menu-group.js +0 -20
  235. package/src/extension/commons/menu/menu-item.js +0 -60
  236. package/src/extension/commons/tooltip/index.js +0 -26
  237. package/src/extension/constants/element-types.js +0 -23
  238. package/src/extension/constants/index.js +0 -37
  239. package/src/extension/constants/keyboard.js +0 -29
  240. package/src/extension/constants/menus-config.js +0 -149
  241. package/src/extension/core/index.js +0 -3
  242. package/src/extension/core/queries/index.js +0 -410
  243. package/src/extension/core/transforms/focus-editor.js +0 -12
  244. package/src/extension/core/transforms/index.js +0 -4
  245. package/src/extension/core/transforms/move-children.js +0 -23
  246. package/src/extension/core/transforms/remove-node-children.js +0 -8
  247. package/src/extension/core/transforms/replace-node-children.js +0 -14
  248. package/src/extension/core/utils/index.js +0 -76
  249. package/src/extension/editor.js +0 -14
  250. package/src/extension/index.js +0 -15
  251. package/src/extension/plugins/blockquote/helpers.js +0 -65
  252. package/src/extension/plugins/blockquote/index.js +0 -13
  253. package/src/extension/plugins/blockquote/menu/index.js +0 -31
  254. package/src/extension/plugins/blockquote/plugin.js +0 -64
  255. package/src/extension/plugins/blockquote/render-elem.js +0 -9
  256. package/src/extension/plugins/check-list/helper.js +0 -34
  257. package/src/extension/plugins/check-list/index.js +0 -14
  258. package/src/extension/plugins/check-list/menu/index.js +0 -44
  259. package/src/extension/plugins/check-list/plugin.js +0 -46
  260. package/src/extension/plugins/check-list/render-elem.js +0 -23
  261. package/src/extension/plugins/clear-format/helpers.js +0 -48
  262. package/src/extension/plugins/clear-format/menu/index.js +0 -39
  263. package/src/extension/plugins/code-block/helpers.js +0 -107
  264. package/src/extension/plugins/code-block/index.js +0 -14
  265. package/src/extension/plugins/code-block/menu/index.js +0 -40
  266. package/src/extension/plugins/code-block/plugin.js +0 -210
  267. package/src/extension/plugins/code-block/render-elem/constant.js +0 -17
  268. package/src/extension/plugins/code-block/render-elem/index.js +0 -55
  269. package/src/extension/plugins/code-block/render-elem/language-selector.js +0 -38
  270. package/src/extension/plugins/formula/helper.js +0 -68
  271. package/src/extension/plugins/formula/index.js +0 -14
  272. package/src/extension/plugins/formula/menu/formula-modal.js +0 -73
  273. package/src/extension/plugins/formula/menu/index.js +0 -63
  274. package/src/extension/plugins/formula/plugin.js +0 -18
  275. package/src/extension/plugins/formula/render-elem.js +0 -40
  276. package/src/extension/plugins/header/helper.js +0 -47
  277. package/src/extension/plugins/header/index.js +0 -14
  278. package/src/extension/plugins/header/menu/index.js +0 -114
  279. package/src/extension/plugins/header/plugin.js +0 -134
  280. package/src/extension/plugins/header/render-elem.js +0 -31
  281. package/src/extension/plugins/image/helper.js +0 -50
  282. package/src/extension/plugins/image/index.js +0 -14
  283. package/src/extension/plugins/image/menu/image-menu-dialog.js +0 -68
  284. package/src/extension/plugins/image/menu/image-menu-popover.js +0 -76
  285. package/src/extension/plugins/image/menu/index.js +0 -61
  286. package/src/extension/plugins/image/plugin.js +0 -23
  287. package/src/extension/plugins/image/render-element/image-previewer.js +0 -71
  288. package/src/extension/plugins/image/render-element/index.js +0 -94
  289. package/src/extension/plugins/index.js +0 -47
  290. package/src/extension/plugins/link/helper.js +0 -161
  291. package/src/extension/plugins/link/index.js +0 -14
  292. package/src/extension/plugins/link/menu/index.js +0 -82
  293. package/src/extension/plugins/link/menu/link-modal.js +0 -135
  294. package/src/extension/plugins/link/plugin.js +0 -85
  295. package/src/extension/plugins/link/render-elem/index.js +0 -69
  296. package/src/extension/plugins/link/render-elem/link-popover.js +0 -79
  297. package/src/extension/plugins/list/constant.js +0 -3
  298. package/src/extension/plugins/list/helpers.js +0 -53
  299. package/src/extension/plugins/list/index.js +0 -14
  300. package/src/extension/plugins/list/menu/index.js +0 -48
  301. package/src/extension/plugins/list/plugin/index.js +0 -48
  302. package/src/extension/plugins/list/plugin/insert-break-list.js +0 -25
  303. package/src/extension/plugins/list/plugin/insert-fragment-list.js +0 -162
  304. package/src/extension/plugins/list/plugin/normalize-list.js +0 -64
  305. package/src/extension/plugins/list/plugin/on-tab-handle.js +0 -34
  306. package/src/extension/plugins/list/queries/index.js +0 -39
  307. package/src/extension/plugins/list/render-elem/index.js +0 -26
  308. package/src/extension/plugins/list/transforms/index.js +0 -23
  309. package/src/extension/plugins/list/transforms/insert-list-item.js +0 -65
  310. package/src/extension/plugins/list/transforms/move-list-item-down.js +0 -40
  311. package/src/extension/plugins/list/transforms/move-list-item-up.js +0 -105
  312. package/src/extension/plugins/list/transforms/move-list-items-to-list.js +0 -58
  313. package/src/extension/plugins/list/transforms/move-list-items.js +0 -76
  314. package/src/extension/plugins/list/transforms/normalize-list-item.js +0 -92
  315. package/src/extension/plugins/list/transforms/normalize-nested-list.js +0 -31
  316. package/src/extension/plugins/list/transforms/remove-first-list-item.js +0 -11
  317. package/src/extension/plugins/list/transforms/transforms-to-list.js +0 -91
  318. package/src/extension/plugins/list/transforms/unwrap-list.js +0 -44
  319. package/src/extension/plugins/node-id/constants.js +0 -18
  320. package/src/extension/plugins/node-id/helpers.js +0 -61
  321. package/src/extension/plugins/node-id/index.js +0 -7
  322. package/src/extension/plugins/node-id/with-node-id.js +0 -37
  323. package/src/extension/plugins/paragraph/helper.js +0 -9
  324. package/src/extension/plugins/paragraph/index.js +0 -12
  325. package/src/extension/plugins/paragraph/plugin.js +0 -40
  326. package/src/extension/plugins/paragraph/render-elem.js +0 -11
  327. package/src/extension/plugins/table/constant.js +0 -3
  328. package/src/extension/plugins/table/helper.js +0 -175
  329. package/src/extension/plugins/table/index.js +0 -15
  330. package/src/extension/plugins/table/menu/index.js +0 -69
  331. package/src/extension/plugins/table/menu/table-operator.js +0 -101
  332. package/src/extension/plugins/table/menu/table-size-selector.js +0 -71
  333. package/src/extension/plugins/table/model.js +0 -69
  334. package/src/extension/plugins/table/plugin.js +0 -159
  335. package/src/extension/plugins/table/render-elem/context-menu.js +0 -78
  336. package/src/extension/plugins/table/render-elem/index.js +0 -157
  337. package/src/extension/plugins/table/table-operations.js +0 -162
  338. package/src/extension/plugins/text-style/helpers.js +0 -38
  339. package/src/extension/plugins/text-style/index.js +0 -12
  340. package/src/extension/plugins/text-style/menu/index.js +0 -41
  341. package/src/extension/plugins/text-style/plugin.js +0 -37
  342. package/src/extension/plugins/text-style/render-elem.js +0 -45
  343. package/src/extension/render/render-element.js +0 -82
  344. package/src/extension/render/render-leaf.js +0 -16
  345. package/src/extension/toolbar/header-toolbar/index.js +0 -129
  346. package/src/extension/toolbar/index.js +0 -5
  347. package/src/extension/toolbar/user-help/shortcut-dialog.js +0 -144
  348. package/src/hooks/use-mathjax.js +0 -44
  349. package/src/hooks/use-scroll-context.js +0 -14
  350. package/src/hooks/use-selection-update.js +0 -14
  351. package/src/index.js +0 -22
  352. package/src/pages/markdown-editor.js +0 -53
  353. package/src/pages/markdown-view.js +0 -36
  354. package/src/pages/rich-markdown-editor.js +0 -95
  355. package/src/pages/simple-editor.js +0 -52
  356. package/src/slate-convert/html-to-slate/constants.js +0 -54
  357. package/src/slate-convert/html-to-slate/helper.js +0 -22
  358. package/src/slate-convert/html-to-slate/index.js +0 -144
  359. package/src/slate-convert/html-to-slate/rules/blockquote.js +0 -16
  360. package/src/slate-convert/html-to-slate/rules/check-list.js +0 -22
  361. package/src/slate-convert/html-to-slate/rules/code-block.js +0 -91
  362. package/src/slate-convert/html-to-slate/rules/header.js +0 -18
  363. package/src/slate-convert/html-to-slate/rules/image.js +0 -18
  364. package/src/slate-convert/html-to-slate/rules/index.js +0 -23
  365. package/src/slate-convert/html-to-slate/rules/link.js +0 -24
  366. package/src/slate-convert/html-to-slate/rules/list.js +0 -52
  367. package/src/slate-convert/html-to-slate/rules/paragraph.js +0 -16
  368. package/src/slate-convert/html-to-slate/rules/table.js +0 -37
  369. package/src/slate-convert/html-to-slate/rules/text.js +0 -63
  370. package/src/slate-convert/index.js +0 -11
  371. package/src/slate-convert/md-to-html/index.js +0 -44
  372. package/src/slate-convert/md-to-html/sanitize-schema.js +0 -41
  373. package/src/slate-convert/md-to-slate/index.js +0 -42
  374. package/src/slate-convert/md-to-slate/transform.js +0 -336
  375. package/src/slate-convert/slate-to-md/index.js +0 -44
  376. package/src/slate-convert/slate-to-md/transform.js +0 -248
  377. package/src/utils/common.js +0 -30
  378. package/src/utils/deserialize-html.js +0 -174
  379. package/src/utils/dom-utils.js +0 -45
  380. package/src/utils/event-bus.js +0 -37
  381. package/src/utils/event-handler.js +0 -36
  382. package/src/utils/object-utils.js +0 -51
  383. package/tests/core/constants/index.js +0 -54
  384. package/tests/core/index.js +0 -11
  385. package/tests/core/jsx/index.js +0 -9
  386. package/tests/core/stub-editor/index.js +0 -26
  387. package/tests/core/utils.js +0 -58
  388. package/tests/extension/plugins/list/insert-block.test.js +0 -40
  389. package/tests/extension/plugins/list/insert-fragment-list.test.js +0 -392
  390. package/tests/extension/plugins/list/toggle-list.test.js +0 -160
  391. package/tests/extension/plugins/text/text.test.js +0 -29
  392. package/tests/extension/plugins/text-style/toggle-text-style.test.js +0 -148
  393. package/tests/slate-convert/html-to-slate/blockquote.test.js +0 -107
  394. package/tests/slate-convert/html-to-slate/code-block.test.js +0 -32
  395. package/tests/slate-convert/html-to-slate/header.test.js +0 -56
  396. package/tests/slate-convert/html-to-slate/link.test.js +0 -77
  397. package/tests/slate-convert/html-to-slate/list.test.js +0 -190
  398. package/tests/slate-convert/html-to-slate/paragraph.test.js +0 -40
  399. package/tests/slate-convert/html-to-slate/text.test.js +0 -131
  400. package/tests/slate-convert/md-to-html/blockquote.test.js +0 -110
  401. package/tests/slate-convert/md-to-html/check-list.test.js +0 -19
  402. package/tests/slate-convert/md-to-html/code-block.test.js +0 -19
  403. package/tests/slate-convert/md-to-html/header.test.js +0 -20
  404. package/tests/slate-convert/md-to-html/image.test.js +0 -17
  405. package/tests/slate-convert/md-to-html/image_reference.test.js +0 -17
  406. package/tests/slate-convert/md-to-html/link.test.js +0 -15
  407. package/tests/slate-convert/md-to-html/link_reference.test.js +0 -15
  408. package/tests/slate-convert/md-to-html/list-ordered.test.js +0 -22
  409. package/tests/slate-convert/md-to-html/list-unordered.test.js +0 -22
  410. package/tests/slate-convert/md-to-html/paragraph.test.js +0 -15
  411. package/tests/slate-convert/md-to-html/table.test.js +0 -29
  412. package/tests/slate-convert/md-to-html/text_base.test.js +0 -14
  413. package/tests/slate-convert/md-to-html/text_bold.test.js +0 -14
  414. package/tests/slate-convert/md-to-html/text_bold_italic.test.js +0 -15
  415. package/tests/slate-convert/md-to-html/text_code.test.js +0 -14
  416. package/tests/slate-convert/md-to-html/text_code_bold.test.js +0 -14
  417. package/tests/slate-convert/md-to-html/text_code_bold_italic.test.js +0 -14
  418. package/tests/slate-convert/md-to-html/text_code_italic.test.js +0 -14
  419. package/tests/slate-convert/md-to-html/text_italic.test.js +0 -14
  420. package/tests/slate-convert/md-to-slate/blockquote.test.js +0 -200
  421. package/tests/slate-convert/md-to-slate/check-list.test.js +0 -34
  422. package/tests/slate-convert/md-to-slate/code-block.test.js +0 -32
  423. package/tests/slate-convert/md-to-slate/header.test.js +0 -49
  424. package/tests/slate-convert/md-to-slate/image.test.js +0 -31
  425. package/tests/slate-convert/md-to-slate/link.test.js +0 -30
  426. package/tests/slate-convert/md-to-slate/list-ordered.test.js +0 -42
  427. package/tests/slate-convert/md-to-slate/list-unordered.test.js +0 -42
  428. package/tests/slate-convert/md-to-slate/paragraph.test.js +0 -19
  429. package/tests/slate-convert/md-to-slate/table.test.js +0 -34
  430. package/tests/slate-convert/md-to-slate/text_base.test.js +0 -19
  431. package/tests/slate-convert/md-to-slate/text_bold.test.js +0 -22
  432. package/tests/slate-convert/md-to-slate/text_bold_italic.test.js +0 -23
  433. package/tests/slate-convert/md-to-slate/text_code.test.js +0 -22
  434. package/tests/slate-convert/md-to-slate/text_code_bold.test.js +0 -23
  435. package/tests/slate-convert/md-to-slate/text_code_bold_italic.test.js +0 -24
  436. package/tests/slate-convert/md-to-slate/text_code_italic.test.js +0 -23
  437. package/tests/slate-convert/md-to-slate/text_italic.test.js +0 -22
  438. package/tests/slate-convert/slate-to-md/blockquote.test.js +0 -416
  439. package/tests/slate-convert/slate-to-md/check-list.test.js +0 -96
  440. package/tests/slate-convert/slate-to-md/code-block.test.js +0 -35
  441. package/tests/slate-convert/slate-to-md/formula.test.js +0 -26
  442. package/tests/slate-convert/slate-to-md/header.test.js +0 -109
  443. package/tests/slate-convert/slate-to-md/image.test.js +0 -98
  444. package/tests/slate-convert/slate-to-md/link.test.js +0 -52
  445. package/tests/slate-convert/slate-to-md/list-ordered.test.js +0 -87
  446. package/tests/slate-convert/slate-to-md/list-unordered.test.js +0 -81
  447. package/tests/slate-convert/slate-to-md/paragraph.test.js +0 -28
  448. package/tests/slate-convert/slate-to-md/table.test.js +0 -56
  449. package/tests/slate-convert/slate-to-md/text_base.test.js +0 -28
  450. package/tests/slate-convert/slate-to-md/text_bold.test.js +0 -36
  451. package/tests/slate-convert/slate-to-md/text_bold_italic.test.js +0 -42
  452. package/tests/slate-convert/slate-to-md/text_code.test.js +0 -31
  453. package/tests/slate-convert/slate-to-md/text_code_bold.test.js +0 -37
  454. package/tests/slate-convert/slate-to-md/text_code_bold_italic.test.js +0 -43
  455. package/tests/slate-convert/slate-to-md/text_code_italic.test.js +0 -37
  456. package/tests/slate-convert/slate-to-md/text_italic.test.js +0 -36
  457. /package/{src → dist}/assets/css/slate-editor.css +0 -0
  458. /package/{src → dist}/containers/article-info/style.css +0 -0
  459. /package/{src → dist}/containers/hotkeys-helper/style.css +0 -0
  460. /package/{site/commons → dist/containers}/loading/style.css +0 -0
  461. /package/{src → dist}/containers/outline/style.css +0 -0
  462. /package/{src → dist}/editors/plain-markdown-editor/code-mirror.css +0 -0
  463. /package/{src → dist}/editors/plain-markdown-editor/style.css +0 -0
  464. /package/{src → dist}/editors/slate-editor/editor-help/style.css +0 -0
  465. /package/{src → dist}/editors/slate-viewer/style.css +0 -0
  466. /package/{src → dist}/extension/commons/menu/menu.css +0 -0
  467. /package/{src → dist}/extension/commons/tooltip/index.css +0 -0
  468. /package/{src → dist}/extension/plugins/code-block/render-elem/style.css +0 -0
  469. /package/{src → dist}/extension/plugins/formula/formula.css +0 -0
  470. /package/{src → dist}/extension/plugins/header/menu/style.css +0 -0
  471. /package/{src → dist}/extension/plugins/image/menu/style.css +0 -0
  472. /package/{src → dist}/extension/plugins/image/render-element/style.css +0 -0
  473. /package/{src → dist}/extension/plugins/link/render-elem/style.css +0 -0
  474. /package/{src → dist}/extension/plugins/list/render-elem/style.css +0 -0
  475. /package/{src → dist}/extension/plugins/table/menu/style.css +0 -0
  476. /package/{src → dist}/extension/plugins/table/render-elem/style.css +0 -0
  477. /package/{src → dist}/extension/toolbar/header-toolbar/style.css +0 -0
  478. /package/{src → dist}/extension/toolbar/user-help/style.css +0 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.INTERNAL_EVENTS = exports.EXTERNAL_EVENTS = void 0;
7
+ var INTERNAL_EVENTS = exports.INTERNAL_EVENTS = {
8
+ ON_ARTICLE_INFO_TOGGLE: 'on_article_info_toggle',
9
+ ON_MOUSE_ENTER_BLOCK: 'on_mouse_enter_block',
10
+ ON_OPEN_LINK_POPOVER: 'on_open_link_popover',
11
+ ON_CLOSE_LINK_POPOVER: 'on_close_link_popover',
12
+ ON_OPEN_FORMULA_DIALOG: 'on_open_formula_dialog'
13
+ };
14
+ var EXTERNAL_EVENTS = exports.EXTERNAL_EVENTS = {
15
+ ON_HELP_INFO_TOGGLE: 'on_help_info_toggle'
16
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HELPER_HOTKEYS = void 0;
7
+ var HELPER_HOTKEYS = exports.HELPER_HOTKEYS = [{
8
+ 'Make_list': [['*/-', 'space']],
9
+ 'Make_ordered_list': [['1.', 'space']],
10
+ 'Insert_new_item': [['Enter']],
11
+ 'Insert_child_in_item': [['Shift', 'Enter']],
12
+ 'Increase_depth': [['Tab']]
13
+ }, {
14
+ 'Heading_1': [['#', 'space']],
15
+ 'Heading_2': [['##', 'space']],
16
+ 'Heading_3': [['###', 'space']],
17
+ 'Heading_4': [['####', 'space']],
18
+ 'Heading_5': [['#####', 'space']],
19
+ 'Heading_6': [['######', 'space']]
20
+ }, {
21
+ 'Make_code_block': [['```']],
22
+ 'Insert_new_line': [['Enter']],
23
+ 'Escape_code_block': [['Ctrl', 'Enter'], ['Cmd', 'Enter']],
24
+ 'Insert_indent': [['Tab']]
25
+ }, {
26
+ 'Make_block_quote': [['>', 'space']],
27
+ 'Escape_block_quote': [['Enter']]
28
+ }, {
29
+ 'Insert_table_row': [['Enter']],
30
+ 'Escape_table': [['Ctrl', 'Enter'], ['Cmd', 'Enter']]
31
+ }, {
32
+ 'Insert_formula': [['Ctrl', '$'], ['Cmd', '$']]
33
+ }, {
34
+ 'Bold': [['**bold** / __bold__', 'space']],
35
+ 'Italic': [['*italic* / _italic_', 'space']],
36
+ 'Italic_bold': [['***italic*** / ___italic___', 'space']],
37
+ 'Inline_code': [['`code`', 'space']]
38
+ }, {
39
+ 'Save_file': [['Ctrl', 's'], ['Cmd', 's']]
40
+ }, {
41
+ 'Paste_screen_shot': [['Ctrl', 'v'], ['Cmd', 'v']],
42
+ 'Drag_image_from_anywhere_to_upload_it': []
43
+ }];
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = ArticleInfo;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _outline = _interopRequireDefault(require("../outline"));
12
+ var _slateReact = require("slate-react");
13
+ require("./style.css");
14
+ var TAB_TYPES = {
15
+ OUTLINE: 'outline',
16
+ FILE_DETAIL: 'file_detail'
17
+ };
18
+ function ArticleInfo(_ref) {
19
+ var children = _ref.children;
20
+ var editor = (0, _slateReact.useSlateStatic)();
21
+ var _useState = (0, _react.useState)(TAB_TYPES.OUTLINE),
22
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
23
+ activeTab = _useState2[0],
24
+ setActiveTab = _useState2[1];
25
+ var onOutlineClick = (0, _react.useCallback)(function () {
26
+ if (activeTab === TAB_TYPES.OUTLINE) return;
27
+ setActiveTab(TAB_TYPES.OUTLINE);
28
+ }, [activeTab]);
29
+ var onDetailClick = (0, _react.useCallback)(function () {
30
+ if (activeTab === TAB_TYPES.FILE_DETAIL) return;
31
+ setActiveTab(TAB_TYPES.FILE_DETAIL);
32
+ }, [activeTab]);
33
+ console.log(children);
34
+ return /*#__PURE__*/_react.default.createElement("div", {
35
+ className: "sf-article-info-container"
36
+ }, /*#__PURE__*/_react.default.createElement("ul", {
37
+ className: "sf-article-info-nav nav"
38
+ }, /*#__PURE__*/_react.default.createElement("li", {
39
+ className: "nav-item"
40
+ }, /*#__PURE__*/_react.default.createElement("span", {
41
+ className: "nav-link ".concat(activeTab === TAB_TYPES.OUTLINE && 'active'),
42
+ onClick: onOutlineClick
43
+ }, /*#__PURE__*/_react.default.createElement("i", {
44
+ className: "iconfont icon-list-ul"
45
+ }))), /*#__PURE__*/_react.default.createElement("li", {
46
+ className: "nav-item"
47
+ }, /*#__PURE__*/_react.default.createElement("span", {
48
+ className: "nav-link ".concat(activeTab === TAB_TYPES.FILE_DETAIL && 'active'),
49
+ onClick: onDetailClick
50
+ }, /*#__PURE__*/_react.default.createElement("i", {
51
+ className: 'iconfont icon-info-circle'
52
+ })))), /*#__PURE__*/_react.default.createElement("div", {
53
+ className: "sf-article-info-content"
54
+ }, activeTab === TAB_TYPES.OUTLINE && /*#__PURE__*/_react.default.createElement(_outline.default, {
55
+ editor: editor
56
+ }), activeTab === TAB_TYPES.FILE_DETAIL && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children)));
57
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var getEventTransfer = function getEventTransfer(data) {
8
+ var fragmentString = data.getData('application/x-slate-fragment');
9
+ var textContent = data.getData('text') || data.getData('text/plain') || '';
10
+ var fragmentContent = fragmentString ? JSON.parse(decodeURIComponent(window.atob(fragmentString))) : null;
11
+ var htmlContent = data.getData('text/html') || '';
12
+ var hasRtfContent = data.types.includes('text/rtf');
13
+
14
+ /**
15
+ * compat old version slate: if clipboard content is old version slate fragment
16
+ * return html content
17
+ */
18
+ var files = data.files;
19
+ var type = 'text';
20
+ // Paste rtf format content which copied from PPT or Word or Excel as text to document
21
+ if (hasRtfContent) {
22
+ type = 'text';
23
+ } else if (files.length > 0) {
24
+ type = 'file';
25
+ } else if (fragmentContent && Array.isArray(fragmentContent)) {
26
+ type = 'fragment';
27
+ } else if (htmlContent) {
28
+ type = 'html';
29
+ }
30
+ return {
31
+ text: textContent,
32
+ html: htmlContent,
33
+ fragment: fragmentContent,
34
+ type: type,
35
+ files: files
36
+ };
37
+ };
38
+ var _default = exports.default = getEventTransfer;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("slate");
8
+ var TRANSFER_TYPES = {
9
+ fragment: 'application/x-slate-fragment',
10
+ html: 'text/html',
11
+ text: 'text/plain'
12
+ };
13
+
14
+ // transform slate fragment and write to clipboard
15
+ function setEventTransfer(event, type, content) {
16
+ var mime = TRANSFER_TYPES[type];
17
+ var transfer = event.dataTransfer || event.clipboardData;
18
+ if (type === 'fragment') {
19
+ // use the same encoding as slate
20
+ var encodedContent = window.btoa(encodeURIComponent(JSON.stringify(content)));
21
+ transfer.setData(mime, encodedContent);
22
+ var texts = '';
23
+ var textItem = '';
24
+ content.forEach(function (element) {
25
+ textItem = _slate.Node.string(element).replace(/\ufeff/, '');
26
+ texts += textItem + '\r\n';
27
+ });
28
+ transfer.setData('text', texts);
29
+ } else if (type === 'html') {
30
+ transfer.setData(mime, content);
31
+ transfer.setData('text', transfer.getData('text'));
32
+ } else {
33
+ transfer.setData('text', content);
34
+ }
35
+ }
36
+ var _default = exports.default = setEventTransfer;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ClassifyHotkeys;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _common = require("../../utils/common");
10
+ function ClassifyHotkeys(_ref) {
11
+ var title = _ref.title,
12
+ shortcutData = _ref.shortcutData,
13
+ shortcutDataNames = _ref.shortcutDataNames;
14
+ return /*#__PURE__*/_react.default.createElement("div", {
15
+ className: "sf-editor-classify-hotkeys"
16
+ }, /*#__PURE__*/_react.default.createElement("h5", {
17
+ className: "hotkey-type"
18
+ }, title), /*#__PURE__*/_react.default.createElement("ul", {
19
+ className: "hotkey-list"
20
+ }, Object.keys(shortcutData).map(function (key) {
21
+ var shortcutName = shortcutDataNames[key];
22
+ var hotkeys = shortcutData[key];
23
+ if (hotkeys.length !== 0) {
24
+ hotkeys = hotkeys.length > 1 && (0, _common.isMac)() ? hotkeys[1] : hotkeys[0];
25
+ }
26
+ return /*#__PURE__*/_react.default.createElement("li", {
27
+ className: "hotkey-shortcuts",
28
+ key: shortcutName
29
+ }, /*#__PURE__*/_react.default.createElement("div", {
30
+ className: "hotkey-shortcuts-left"
31
+ }, shortcutName), /*#__PURE__*/_react.default.createElement("div", {
32
+ className: "hotkey-shortcuts-right"
33
+ }, hotkeys[0] && /*#__PURE__*/_react.default.createElement("div", {
34
+ className: "key hotkey-first"
35
+ }, hotkeys[0]), hotkeys[1] && /*#__PURE__*/_react.default.createElement("div", {
36
+ className: "key hotkey-second"
37
+ }, hotkeys[1])));
38
+ })));
39
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = HotkeysHelper;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _classifyHotkeys = _interopRequireDefault(require("./classify-hotkeys"));
12
+ var _hotKeys = require("../../constants/hot-keys");
13
+ var _eventTypes = require("../../constants/event-types");
14
+ var _eventBus = _interopRequireDefault(require("../../utils/event-bus"));
15
+ require("./style.css");
16
+ function HotkeysHelper() {
17
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
18
+ t = _useTranslation.t;
19
+ var useHelp = t('userHelp', {
20
+ returnObjects: true
21
+ });
22
+ var title = useHelp.title,
23
+ userHelpData = useHelp.userHelpData;
24
+ var onCloseClick = (0, _react.useCallback)(function () {
25
+ var eventBus = _eventBus.default.getInstance();
26
+ eventBus.dispatch(_eventTypes.EXTERNAL_EVENTS.ON_HELP_INFO_TOGGLE, false);
27
+ }, []);
28
+ return /*#__PURE__*/_react.default.createElement("div", {
29
+ className: "sf-editor-helper"
30
+ }, /*#__PURE__*/_react.default.createElement("div", {
31
+ className: "sf-editor-helper__header"
32
+ }, /*#__PURE__*/_react.default.createElement("div", {
33
+ className: "title"
34
+ }, title), /*#__PURE__*/_react.default.createElement("div", {
35
+ className: "help-close",
36
+ onClick: onCloseClick
37
+ }, /*#__PURE__*/_react.default.createElement("i", {
38
+ className: "iconfont icon-times-circle"
39
+ }))), /*#__PURE__*/_react.default.createElement("div", {
40
+ className: "sf-editor-helper__content"
41
+ }, userHelpData.map(function (item, index) {
42
+ var shortcutData = _hotKeys.HELPER_HOTKEYS[index];
43
+ var title = item.shortcutType,
44
+ shortcutDataNames = item.shortcutData;
45
+ return /*#__PURE__*/_react.default.createElement(_classifyHotkeys.default, {
46
+ key: "use-hotkey-".concat(index),
47
+ title: title,
48
+ shortcutData: shortcutData,
49
+ shortcutDataNames: shortcutDataNames
50
+ });
51
+ })));
52
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
10
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
11
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createSuper"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ require("./style.css");
14
+ var Loading = /*#__PURE__*/function (_React$Component) {
15
+ (0, _inherits2.default)(Loading, _React$Component);
16
+ var _super = (0, _createSuper2.default)(Loading);
17
+ function Loading() {
18
+ (0, _classCallCheck2.default)(this, Loading);
19
+ return _super.apply(this, arguments);
20
+ }
21
+ (0, _createClass2.default)(Loading, [{
22
+ key: "render",
23
+ value: function render() {
24
+ return /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "empty-loading-page"
26
+ }, /*#__PURE__*/_react.default.createElement("div", {
27
+ className: "lds-ripple page-centered"
28
+ }, /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null)));
29
+ }
30
+ }]);
31
+ return Loading;
32
+ }(_react.default.Component);
33
+ var _default = exports.default = Loading;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactI18next = require("react-i18next");
12
+ var _outlineItem = _interopRequireDefault(require("./outline-item"));
13
+ var _useScrollContext = require("../../hooks/use-scroll-context");
14
+ require("./style.css");
15
+ var getHeaderList = function getHeaderList(children) {
16
+ var headerList = [];
17
+ children.forEach(function (node) {
18
+ if (node.type === 'header2' || node.type === 'header3') {
19
+ headerList.push(node);
20
+ }
21
+ });
22
+ return headerList;
23
+ };
24
+ var Outline = function Outline(_ref) {
25
+ var editor = _ref.editor;
26
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
27
+ t = _useTranslation.t;
28
+ var scrollRef = (0, _useScrollContext.useScrollContext)();
29
+ var _useState = (0, _react.useState)([]),
30
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
31
+ headerList = _useState2[0],
32
+ setHeaderList = _useState2[1];
33
+ var _useState3 = (0, _react.useState)(''),
34
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
35
+ activeId = _useState4[0],
36
+ setActiveId = _useState4[1];
37
+ (0, _react.useEffect)(function () {
38
+ var headerList = getHeaderList(editor.children);
39
+ setHeaderList(headerList);
40
+ }, [editor.children]);
41
+ var handleScroll = (0, _react.useCallback)(function (e) {
42
+ var scrollTop = scrollRef.current.scrollTop;
43
+ var styles = getComputedStyle(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current);
44
+ var paddingTop = parseInt(styles.paddingTop);
45
+ for (var i = 0; i < headerList.length; i++) {
46
+ var headerItem = headerList[i];
47
+ var dom = document.getElementById(headerItem.id);
48
+ var offsetTop = dom.offsetTop,
49
+ offsetHeight = dom.offsetHeight;
50
+ var _styles = getComputedStyle(dom);
51
+ var marginTop = parseInt(_styles.marginTop);
52
+ if (offsetTop + offsetHeight + marginTop > scrollTop - paddingTop) {
53
+ setActiveId(headerItem.id);
54
+ break;
55
+ }
56
+ }
57
+ }, [headerList, scrollRef]);
58
+ (0, _react.useEffect)(function () {
59
+ var observerRefValue = null;
60
+ if (scrollRef.current) {
61
+ scrollRef.current.addEventListener('scroll', handleScroll);
62
+ observerRefValue = scrollRef.current;
63
+ }
64
+ return function () {
65
+ observerRefValue.removeEventListener('scroll', handleScroll);
66
+ };
67
+ }, [handleScroll, scrollRef]);
68
+ return /*#__PURE__*/_react.default.createElement("div", {
69
+ className: "sf-editor-outline"
70
+ }, headerList.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
71
+ className: "empty-container"
72
+ }, t('No_out_line')), headerList.length > 0 && headerList.map(function (node, index) {
73
+ return /*#__PURE__*/_react.default.createElement(_outlineItem.default, {
74
+ key: index,
75
+ node: node,
76
+ activeId: activeId
77
+ });
78
+ }));
79
+ };
80
+ var _default = exports.default = Outline;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var OutlineItem = function OutlineItem(_ref) {
12
+ var node = _ref.node,
13
+ activeId = _ref.activeId;
14
+ var onItemClick = (0, _react.useCallback)(function () {
15
+ var id = node.id;
16
+ document.getElementById(id).scrollIntoView();
17
+ }, [node]);
18
+ var className = (0, _classnames.default)({
19
+ 'outline-h2': node.type === 'header2',
20
+ 'outline-h3': node.type === 'header3',
21
+ 'active': node.id === activeId
22
+ });
23
+ return /*#__PURE__*/_react.default.createElement("div", {
24
+ className: className,
25
+ onClick: onItemClick
26
+ }, node.children.map(function (child) {
27
+ return child.text;
28
+ }).join(''));
29
+ };
30
+ var _default = exports.default = OutlineItem;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
10
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
11
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createSuper"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _codemirror = require("codemirror");
15
+ var _langMarkdown = require("@codemirror/lang-markdown");
16
+ var _languageData = require("@codemirror/language-data");
17
+ require("./code-mirror.css");
18
+ var SeafileCodeMirror = /*#__PURE__*/function (_React$Component) {
19
+ (0, _inherits2.default)(SeafileCodeMirror, _React$Component);
20
+ var _super = (0, _createSuper2.default)(SeafileCodeMirror);
21
+ function SeafileCodeMirror() {
22
+ var _this;
23
+ (0, _classCallCheck2.default)(this, SeafileCodeMirror);
24
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
25
+ args[_key] = arguments[_key];
26
+ }
27
+ _this = _super.call.apply(_super, [this].concat(args));
28
+ _this.onValueChanged = function (viewUpdate) {
29
+ var onChange = _this.props.onChange;
30
+ if (onChange && viewUpdate.docChanged) {
31
+ var doc = viewUpdate.state.doc;
32
+ var value = doc.toString();
33
+ onChange(value);
34
+ }
35
+ };
36
+ _this.focus = function () {
37
+ _this.view.focus();
38
+ };
39
+ _this.scrollIntoView = function (pos) {
40
+ _codemirror.EditorView.scrollIntoView(pos);
41
+ };
42
+ _this.setCodeMirrorRef = function (ref) {
43
+ _this.codeMirrorRef = ref;
44
+ };
45
+ return _this;
46
+ }
47
+ (0, _createClass2.default)(SeafileCodeMirror, [{
48
+ key: "componentDidMount",
49
+ value: function componentDidMount() {
50
+ var _this2 = this;
51
+ var _this$props = this.props,
52
+ initialValue = _this$props.initialValue,
53
+ autoFocus = _this$props.autoFocus;
54
+ this.view = new _codemirror.EditorView({
55
+ doc: initialValue,
56
+ extensions: [_codemirror.basicSetup, (0, _langMarkdown.markdown)({
57
+ codeLanguages: _languageData.languages
58
+ }), _codemirror.EditorView.updateListener.of(function (viewUpdate) {
59
+ _this2.onValueChanged(viewUpdate);
60
+ })],
61
+ parent: this.codeMirrorRef
62
+ });
63
+ if (autoFocus) this.focus();
64
+ }
65
+ }, {
66
+ key: "componentWillUnmount",
67
+ value: function componentWillUnmount() {
68
+ if (this.view) {
69
+ this.view.destroy();
70
+ }
71
+ }
72
+ }, {
73
+ key: "render",
74
+ value: function render() {
75
+ return /*#__PURE__*/_react.default.createElement("div", {
76
+ className: (0, _classnames.default)('sf-code-mirror', this.props.className)
77
+ }, /*#__PURE__*/_react.default.createElement("div", {
78
+ ref: this.setCodeMirrorRef
79
+ }));
80
+ }
81
+ }]);
82
+ return SeafileCodeMirror;
83
+ }(_react.default.Component);
84
+ var _default = exports.default = SeafileCodeMirror;
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
10
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
11
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createSuper"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _isHotkey = _interopRequireDefault(require("is-hotkey"));
14
+ var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
15
+ var _codeMirror = _interopRequireDefault(require("./code-mirror"));
16
+ require("./style.css");
17
+ var PlainMarkdownEditor = /*#__PURE__*/function (_React$Component) {
18
+ (0, _inherits2.default)(PlainMarkdownEditor, _React$Component);
19
+ var _super = (0, _createSuper2.default)(PlainMarkdownEditor);
20
+ function PlainMarkdownEditor(props) {
21
+ var _this;
22
+ (0, _classCallCheck2.default)(this, PlainMarkdownEditor);
23
+ _this = _super.call(this, props);
24
+ /*
25
+ * the data about scroll, these variable has nothing to width react
26
+ * they are not state
27
+ * */
28
+ _this.scrollData = {
29
+ scrollPercentage: 0,
30
+ leftPanel: null,
31
+ rightPanel: null
32
+ };
33
+ _this.setContent = function (markdownContent) {
34
+ _this.setState({
35
+ editorValue: markdownContent
36
+ });
37
+ _mdToHtml.default.process(markdownContent, function (error, vfile) {
38
+ var html = String(vfile);
39
+ _this.setState({
40
+ previewValue: html
41
+ });
42
+ });
43
+ };
44
+ _this.updateCode = function (newCode) {
45
+ _this.setContent(newCode);
46
+ _this.props.onSave && _this.props.onSave(newCode);
47
+ };
48
+ _this.onEnterLeftPanel = function () {
49
+ _this.setState({
50
+ isMouseInLeftSide: true
51
+ });
52
+ };
53
+ _this.onLeaveLeftPanel = function () {
54
+ _this.setState({
55
+ isMouseInLeftSide: false
56
+ });
57
+ };
58
+ _this.onLeftScroll = function (e) {
59
+ var isMouseInLeftSide = _this.state.isMouseInLeftSide;
60
+ if (!isMouseInLeftSide) return;
61
+ var srcElement = _this.scrollData.leftPanel;
62
+ _this.scrollData.scrollPercentage = srcElement.scrollTop / srcElement.scrollHeight;
63
+ _this.scrollData.rightPanel.scrollTop = _this.scrollData.scrollPercentage * _this.scrollData.rightPanel.scrollHeight;
64
+ };
65
+ _this.onEnterRightPanel = function () {
66
+ _this.setState({
67
+ isMouseInRightSide: true
68
+ });
69
+ };
70
+ _this.onLeaveRightPanel = function () {
71
+ _this.setState({
72
+ isMouseInRightSide: false
73
+ });
74
+ };
75
+ _this.onRightScroll = function (e) {
76
+ var isMouseInRightSide = _this.state.isMouseInRightSide;
77
+ if (!isMouseInRightSide) return;
78
+ var srcElement = _this.scrollData.rightPanel;
79
+ _this.scrollData.scrollPercentage = srcElement.scrollTop / srcElement.scrollHeight;
80
+ _this.scrollData.leftPanel.scrollTop = _this.scrollData.scrollPercentage * _this.scrollData.leftPanel.scrollHeight;
81
+ };
82
+ _this.onHotKey = function (event) {
83
+ var onSave = _this.props.onSave;
84
+ if ((0, _isHotkey.default)('mod+s', event)) {
85
+ event.preventDefault();
86
+ onSave && onSave(_this.state.editorValue);
87
+ return true;
88
+ }
89
+ };
90
+ _this.state = {
91
+ editorValue: props.value,
92
+ previewValue: '',
93
+ isMouseInLeftSide: false,
94
+ isMouseInRightSide: false
95
+ };
96
+ return _this;
97
+ }
98
+ (0, _createClass2.default)(PlainMarkdownEditor, [{
99
+ key: "componentDidMount",
100
+ value: function componentDidMount() {
101
+ // get relevant dom when component mounted instead of get them when scrolling to improve performance
102
+ this.scrollData.leftPanel = document.querySelector('.sf-plain-editor-left-panel');
103
+ this.scrollData.rightPanel = document.querySelector('.sf-plain-editor-right-panel');
104
+ this.setContent(this.props.value);
105
+ }
106
+ }, {
107
+ key: "componentDidUpdate",
108
+ value: function componentDidUpdate() {
109
+ // render math formula
110
+ // window.MathJax.typesetPromise(document.querySelectorAll('.math-display'));
111
+ }
112
+ }, {
113
+ key: "render",
114
+ value: function render() {
115
+ var _this$state = this.state,
116
+ editorValue = _this$state.editorValue,
117
+ previewValue = _this$state.previewValue;
118
+ return /*#__PURE__*/_react.default.createElement("div", {
119
+ className: "sf-plain-editor"
120
+ }, /*#__PURE__*/_react.default.createElement("div", {
121
+ className: "sf-plain-editor-main d-flex",
122
+ onKeyDown: this.onHotKey
123
+ }, /*#__PURE__*/_react.default.createElement("div", {
124
+ className: "sf-plain-editor-left-panel",
125
+ onMouseLeave: this.onLeaveLeftPanel,
126
+ onMouseEnter: this.onEnterLeftPanel,
127
+ onScroll: this.onLeftScroll
128
+ }, /*#__PURE__*/_react.default.createElement(_codeMirror.default, {
129
+ autoFocus: true,
130
+ initialValue: editorValue,
131
+ onChange: this.updateCode
132
+ })), /*#__PURE__*/_react.default.createElement("div", {
133
+ className: "sf-plain-editor-right-panel",
134
+ onMouseEnter: this.onEnterRightPanel,
135
+ onMouseLeave: this.onLeaveRightPanel,
136
+ onScroll: this.onRightScroll
137
+ }, /*#__PURE__*/_react.default.createElement("div", {
138
+ className: "preview"
139
+ }, /*#__PURE__*/_react.default.createElement("div", {
140
+ className: "rendered-markdown article",
141
+ dangerouslySetInnerHTML: {
142
+ __html: previewValue
143
+ }
144
+ })))));
145
+ }
146
+ }]);
147
+ return PlainMarkdownEditor;
148
+ }(_react.default.Component);
149
+ var _default = exports.default = PlainMarkdownEditor;