@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,83 @@
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 _classnames = _interopRequireDefault(require("classnames"));
12
+ var _slateReact = require("slate-react");
13
+ var _linkPopover = _interopRequireDefault(require("./link-popover"));
14
+ var _helper = require("../helper");
15
+ var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
16
+ var _eventTypes = require("../../../../constants/event-types");
17
+ require("./style.css");
18
+ /* eslint-disable react-hooks/rules-of-hooks */
19
+
20
+ var renderLink = function renderLink(_ref, editor) {
21
+ var attributes = _ref.attributes,
22
+ children = _ref.children,
23
+ element = _ref.element;
24
+ var _useState = (0, _react.useState)(false),
25
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
26
+ isShowPopover = _useState2[0],
27
+ setIsShowPopover = _useState2[1];
28
+ var _useState3 = (0, _react.useState)({
29
+ top: 0,
30
+ left: 0
31
+ }),
32
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
33
+ popoverPosition = _useState4[0],
34
+ setPopoverPosition = _useState4[1];
35
+ var isReadonly = (0, _slateReact.useReadOnly)();
36
+ var onClosePopover = (0, _react.useCallback)(function (e) {
37
+ unregisterClickEvent();
38
+ setIsShowPopover(false);
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ }, [setPopoverPosition]);
41
+ var registerClickEvent = (0, _react.useCallback)(function () {
42
+ document.addEventListener('click', onClosePopover);
43
+ }, [onClosePopover]);
44
+ var unregisterClickEvent = (0, _react.useCallback)(function () {
45
+ document.removeEventListener('click', onClosePopover);
46
+ }, [onClosePopover]);
47
+ var onOpenPopover = (0, _react.useCallback)(function (e) {
48
+ if (isReadonly) return;
49
+ e.stopPropagation();
50
+ // Only one popover can be open at the same time, close other popover and update new popover controller function.
51
+ var eventBus = _eventBus.default.getInstance();
52
+ eventBus.dispatch(_eventTypes.INTERNAL_EVENTS.ON_CLOSE_LINK_POPOVER);
53
+ eventBus.subscribe(_eventTypes.INTERNAL_EVENTS.ON_CLOSE_LINK_POPOVER, function () {
54
+ return setIsShowPopover(false);
55
+ });
56
+ var linkInfo = (0, _helper.getLinkInfo)(editor);
57
+ if (!linkInfo) return;
58
+ var _e$target$getBounding = e.target.getBoundingClientRect(),
59
+ top = _e$target$getBounding.top,
60
+ left = _e$target$getBounding.left,
61
+ width = _e$target$getBounding.width;
62
+ var popoverTop = top - 42;
63
+ var popoverLeft = left - 140 / 2 + width / 2;
64
+ setPopoverPosition({
65
+ top: popoverTop,
66
+ left: popoverLeft
67
+ });
68
+ setIsShowPopover(true);
69
+ registerClickEvent();
70
+ }, [editor, isReadonly, registerClickEvent]);
71
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
72
+ onClick: onOpenPopover,
73
+ className: (0, _classnames.default)('sf-virtual-link', {
74
+ selected: isShowPopover
75
+ })
76
+ }, attributes), children), isShowPopover && /*#__PURE__*/_react.default.createElement(_linkPopover.default, {
77
+ popoverPosition: popoverPosition,
78
+ linkUrl: element.url,
79
+ editor: editor,
80
+ onClosePopover: onClosePopover
81
+ }));
82
+ };
83
+ var _default = exports.default = renderLink;
@@ -0,0 +1,77 @@
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 _reactDom = require("react-dom");
11
+ var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
12
+ var _helper = require("../helper");
13
+ var _common = require("../../../../utils/common");
14
+ var _eventTypes = require("../../../../constants/event-types");
15
+ require("./style.css");
16
+ var LinkPopover = function LinkPopover(_ref) {
17
+ var linkUrl = _ref.linkUrl,
18
+ onClosePopover = _ref.onClosePopover,
19
+ popoverPosition = _ref.popoverPosition,
20
+ editor = _ref.editor;
21
+ (0, _react.useEffect)(function () {
22
+ return function () {
23
+ // unregister click event before unmount
24
+ onClosePopover();
25
+ };
26
+ }, [onClosePopover]);
27
+ var onLinkClick = (0, _react.useCallback)(function (e) {
28
+ if (!(0, _common.isUrl)(linkUrl)) {
29
+ e.preventDefault();
30
+ }
31
+ }, [linkUrl]);
32
+ var onUnwrapLink = (0, _react.useCallback)(function (e) {
33
+ e.stopPropagation();
34
+ (0, _helper.unWrapLinkNode)(editor);
35
+ }, [editor]);
36
+ var onEditLink = (0, _react.useCallback)(function (e) {
37
+ e.stopPropagation();
38
+ var linkNode = (0, _helper.getLinkInfo)(editor);
39
+ if (!linkNode) {
40
+ onClosePopover();
41
+ return;
42
+ }
43
+ var linkTitle = linkNode.linkTitle,
44
+ linkUrl = linkNode.linkUrl;
45
+ var eventBus = _eventBus.default.getInstance();
46
+ eventBus.dispatch(_eventTypes.INTERNAL_EVENTS.ON_OPEN_LINK_POPOVER, {
47
+ linkTitle: linkTitle,
48
+ linkUrl: linkUrl
49
+ });
50
+ }, [editor, onClosePopover]);
51
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement("div", {
52
+ id: "link-op-menu",
53
+ className: "sf-link-op-menu",
54
+ style: popoverPosition
55
+ }, /*#__PURE__*/_react.default.createElement("a", {
56
+ href: linkUrl,
57
+ onClick: onLinkClick,
58
+ target: "_blank",
59
+ rel: "noopener noreferrer",
60
+ className: "sf-link-op-menu-link"
61
+ }, linkUrl), /*#__PURE__*/_react.default.createElement("div", {
62
+ className: "sf-link-op-icons d-flex "
63
+ }, /*#__PURE__*/_react.default.createElement("span", {
64
+ role: "button",
65
+ className: "sf-link-op-icon",
66
+ onClick: onEditLink
67
+ }, /*#__PURE__*/_react.default.createElement("i", {
68
+ className: "iconfont icon-edit"
69
+ })), /*#__PURE__*/_react.default.createElement("span", {
70
+ role: "button",
71
+ className: "sf-link-op-icon",
72
+ onClick: onUnwrapLink
73
+ }, /*#__PURE__*/_react.default.createElement("i", {
74
+ className: "iconfont icon-delete"
75
+ })))), document.body));
76
+ };
77
+ var _default = exports.default = LinkPopover;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LIST_TYPES = void 0;
7
+ var _elementTypes = require("../../constants/element-types");
8
+ var LIST_TYPES = exports.LIST_TYPES = [_elementTypes.ORDERED_LIST, _elementTypes.UNORDERED_LIST];
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isMenuDisabled = exports.getActiveListType = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _slate = require("slate");
10
+ var _elementTypes = require("../../constants/element-types");
11
+ var _constant = require("./constant");
12
+ var isMenuDisabled = exports.isMenuDisabled = function isMenuDisabled(editor, readonly) {
13
+ if (readonly || !editor.selection) return true;
14
+ // Match disable node
15
+ var _Editor$nodes = _slate.Editor.nodes(editor, {
16
+ match: function match(node) {
17
+ if (!_slate.Element.isElement(node)) return false;
18
+ var isVoidOrBlock = _slate.Editor.isVoid(editor, node) && _slate.Editor.isBlock(editor, node);
19
+ if (isVoidOrBlock) return true;
20
+ var disabledNodeTypes = [_elementTypes.CODE_LINE, _elementTypes.CODE_BLOCK, _elementTypes.TABLE, _elementTypes.CHECK_LIST_ITEM];
21
+ var isDisabledNode = disabledNodeTypes.includes(node.type);
22
+ if (isDisabledNode) return true;
23
+ return false;
24
+ }
25
+ }),
26
+ _Editor$nodes2 = (0, _slicedToArray2.default)(_Editor$nodes, 1),
27
+ matchedDisabledNode = _Editor$nodes2[0];
28
+ if (matchedDisabledNode) return true;
29
+ return false;
30
+ };
31
+
32
+ /**
33
+ * @returns {ORDERED_LIST | UNORDERED_LIST | undefined} Return the list type of the selected list
34
+ */
35
+ var getActiveListType = exports.getActiveListType = function getActiveListType(editor) {
36
+ var selection = editor.selection;
37
+ if (!selection) return;
38
+ var selectedListNodeEntry;
39
+ if (_slate.Range.isCollapsed(selection)) {
40
+ var _Editor$nodes3 = _slate.Editor.nodes(editor, {
41
+ match: function match(node) {
42
+ return _constant.LIST_TYPES.includes(node.type);
43
+ },
44
+ mode: 'lowest'
45
+ }),
46
+ _Editor$nodes4 = (0, _slicedToArray2.default)(_Editor$nodes3, 1),
47
+ nodeEntry = _Editor$nodes4[0];
48
+ selectedListNodeEntry = nodeEntry;
49
+ } else {
50
+ var anchor = selection.anchor,
51
+ focus = selection.focus;
52
+ var commonNodeEntry = _slate.Node.common(editor, anchor.path, focus.path);
53
+ // Select condition:
54
+ // 1. Select in one list
55
+ // 2. Select in one list item
56
+ // 3. Select in one line
57
+ if (_constant.LIST_TYPES.includes(commonNodeEntry[0].type)) {
58
+ // Select in one list
59
+ selectedListNodeEntry = commonNodeEntry;
60
+ } else if (commonNodeEntry[0].type === _elementTypes.LIST_ITEM) {
61
+ // Select in one list item
62
+ selectedListNodeEntry = _slate.Editor.parent(editor, commonNodeEntry[1]);
63
+ } else if (_slate.Text.isText(commonNodeEntry[0])) {
64
+ // Select in one line
65
+ var _Editor$nodes5 = _slate.Editor.nodes(editor, {
66
+ at: commonNodeEntry[1],
67
+ match: function match(node) {
68
+ return _constant.LIST_TYPES.includes(node.type);
69
+ },
70
+ mode: 'lowest'
71
+ }),
72
+ _Editor$nodes6 = (0, _slicedToArray2.default)(_Editor$nodes5, 1),
73
+ _nodeEntry = _Editor$nodes6[0];
74
+ selectedListNodeEntry = _nodeEntry;
75
+ }
76
+ }
77
+ return selectedListNodeEntry && selectedListNodeEntry[0].type;
78
+ };
@@ -0,0 +1,19 @@
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 _elementTypes = require("../../constants/element-types");
9
+ var _menu = _interopRequireDefault(require("./menu"));
10
+ var _plugin = _interopRequireDefault(require("./plugin"));
11
+ var _renderElem = require("./render-elem");
12
+ var ListPlugin = {
13
+ type: _elementTypes.LIST_ITEM,
14
+ nodeType: 'element',
15
+ editorMenus: [_menu.default],
16
+ editorPlugin: _plugin.default,
17
+ renderElements: [_renderElem.renderList, _renderElem.renderListItem, _renderElem.renderListLic]
18
+ };
19
+ var _default = exports.default = ListPlugin;
@@ -0,0 +1,46 @@
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 _menuItem = _interopRequireDefault(require("../../../commons/menu/menu-item"));
11
+ var _helpers = require("../helpers");
12
+ var _constants = require("../../../constants");
13
+ var _transforms = require("../transforms");
14
+ var _core = require("../../../core");
15
+ var _elementTypes = require("../../../constants/element-types");
16
+ var ListMenu = function ListMenu(_ref) {
17
+ var editor = _ref.editor,
18
+ readonly = _ref.readonly,
19
+ isRichEditor = _ref.isRichEditor,
20
+ type = _ref.type,
21
+ className = _ref.className;
22
+ var isActive = (0, _helpers.getActiveListType)(editor, type) === type;
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ var isDisabled = (0, _react.useMemo)(function () {
25
+ return (0, _helpers.isMenuDisabled)(editor, readonly);
26
+ }, [editor.selection, readonly]);
27
+
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
+ var menuConfig = (0, _react.useMemo)(function () {
30
+ return _constants.MENUS_CONFIG_MAP[type];
31
+ }, []);
32
+ var onMouseDown = (0, _react.useCallback)(function (e) {
33
+ e.preventDefault();
34
+ (0, _transforms.transformsToList)(editor, type);
35
+ (0, _core.focusEditor)(editor);
36
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37
+ }, [isActive]);
38
+ return /*#__PURE__*/_react.default.createElement(_menuItem.default, Object.assign({
39
+ isRichEditor: isRichEditor,
40
+ isActive: isActive,
41
+ disabled: isDisabled,
42
+ className: className,
43
+ onMouseDown: onMouseDown
44
+ }, menuConfig));
45
+ };
46
+ var _default = exports.default = ListMenu;
@@ -0,0 +1,48 @@
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 _isHotkey = _interopRequireDefault(require("is-hotkey"));
9
+ var _helpers = require("../helpers");
10
+ var _onTabHandle = require("./on-tab-handle");
11
+ var _insertBreakList = require("./insert-break-list");
12
+ var _insertFragmentList = require("./insert-fragment-list");
13
+ var _normalizeList = require("./normalize-list");
14
+ var _constant = require("../constant");
15
+ var withList = function withList(editor) {
16
+ var insertBreak = editor.insertBreak,
17
+ onHotKeyDown = editor.onHotKeyDown,
18
+ deleteBackWord = editor.deleteBackWord;
19
+ var newEditor = editor;
20
+ newEditor.insertBreak = function () {
21
+ if ((0, _insertBreakList.insertBreakList)(editor)) return;
22
+ insertBreak();
23
+ return;
24
+ };
25
+ newEditor.deleteBackWord = function (unit) {
26
+ var selection = newEditor.selection;
27
+ if (selection === null) {
28
+ deleteBackWord(unit);
29
+ return;
30
+ }
31
+ // nothing todo
32
+ deleteBackWord(unit);
33
+ };
34
+ newEditor.onHotKeyDown = function (event) {
35
+ var activeListType = (0, _helpers.getActiveListType)(editor);
36
+ var isListActive = _constant.LIST_TYPES.includes(activeListType);
37
+ if (isListActive) {
38
+ if ((0, _isHotkey.default)(['tab', 'shift+tab'], event)) {
39
+ if ((0, _onTabHandle.handleTab)(newEditor, event)) return true;
40
+ }
41
+ }
42
+ return onHotKeyDown && onHotKeyDown(event);
43
+ };
44
+ newEditor.insertFragment = (0, _insertFragmentList.insertFragmentList)(newEditor);
45
+ newEditor.normalizeNode = (0, _normalizeList.normalizeList)(newEditor);
46
+ return newEditor;
47
+ };
48
+ var _default = exports.default = withList;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.insertBreakList = void 0;
7
+ var _core = require("../../../core");
8
+ var _queries = require("../queries");
9
+ var _transforms = require("../transforms");
10
+ var insertBreakList = exports.insertBreakList = function insertBreakList(editor) {
11
+ if (!editor.selection) return;
12
+
13
+ // moved | inserted
14
+ var moved = false;
15
+ var res = (0, _queries.getListItemEntry)(editor, {});
16
+ // If selection is in a li, and li content is empty
17
+ if (res) {
18
+ if ((0, _core.isBlockAboveEmpty)(editor)) {
19
+ moved = (0, _transforms.movedListItemUp)(editor, res);
20
+ if (moved) return true;
21
+ }
22
+ }
23
+ if (!moved) {
24
+ var inserted = (0, _transforms.insertListItem)(editor);
25
+ if (inserted) return true;
26
+ }
27
+ return;
28
+ };
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.insertFragmentList = exports.getTextAndListItemNodes = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
9
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toArray"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
+ var _slate = require("slate");
12
+ var _slugid = _interopRequireDefault(require("slugid"));
13
+ var _core = require("../../../core");
14
+ var _constant = require("../constant");
15
+ var _elementTypes = require("../../../constants/element-types");
16
+ var isListRoot = function isListRoot(node) {
17
+ return _slate.Element.isElement(node) && _constant.LIST_TYPES.includes(node.type);
18
+ };
19
+ var getFirstAncestorOfType = function getFirstAncestorOfType(root, entry, _ref) {
20
+ var type = _ref.type;
21
+ var ancestor = _slate.Path.parent(entry[1]);
22
+ while ((0, _core.getNode)(root, ancestor).type !== type) {
23
+ ancestor = _slate.Path.parent(ancestor);
24
+ }
25
+ return [(0, _core.getNode)(root, ancestor), ancestor];
26
+ };
27
+ var findListItemsWithContent = function findListItemsWithContent(first) {
28
+ var prev = null;
29
+ var node = first;
30
+ while (isListRoot(node) || node.type === _elementTypes.LIST_ITEM && node.children[0].type !== _elementTypes.PARAGRAPH) {
31
+ prev = node;
32
+ var _node$children = (0, _slicedToArray2.default)(node.children, 1);
33
+ node = _node$children[0];
34
+ }
35
+ return prev ? prev.children : [node];
36
+ };
37
+ var trimList = function trimList(listRoot) {
38
+ if (!isListRoot(listRoot)) {
39
+ return [listRoot];
40
+ }
41
+ var _texts = _slate.Node.texts(listRoot);
42
+ var textEntries = Array.from(_texts);
43
+ var commonAncestorEntry = textEntries.reduce(function (commonAncestor, textEntry) {
44
+ return _slate.Path.isAncestor(commonAncestor[1], textEntry[1]) ? commonAncestor : (0, _core.getCommonNode)(listRoot, textEntry[1], commonAncestor[1]);
45
+ }, getFirstAncestorOfType(listRoot, textEntries[0], {
46
+ type: _elementTypes.LIST_ITEM
47
+ }));
48
+
49
+ // is ul/ol: return children
50
+ // is not ul/ol
51
+ var _ref2 = isListRoot(commonAncestorEntry[0]) ? commonAncestorEntry[0].children : [commonAncestorEntry[0]],
52
+ _ref3 = (0, _toArray2.default)(_ref2),
53
+ first = _ref3[0],
54
+ rest = _ref3.slice(1);
55
+ return [].concat((0, _toConsumableArray2.default)(findListItemsWithContent(first)), (0, _toConsumableArray2.default)(rest));
56
+ };
57
+ var wrapNodeIntoListItem = function wrapNodeIntoListItem(node) {
58
+ return node.type === _elementTypes.LIST_ITEM ? node : {
59
+ id: _slugid.default.nice(),
60
+ type: _elementTypes.LIST_ITEM,
61
+ children: [node]
62
+ };
63
+ };
64
+ var isSingleLic = function isSingleLic(fragment) {
65
+ var isFragmentOnlyListRoot = fragment.length === 1 && isListRoot(fragment[0]);
66
+ return isFragmentOnlyListRoot && (0, _toConsumableArray2.default)((0, _core.getNodes)({
67
+ children: fragment
68
+ })).filter(function (entry) {
69
+ return _slate.Element.isElement(entry[0]);
70
+ }).filter(function (_ref4) {
71
+ var _ref5 = (0, _slicedToArray2.default)(_ref4, 1),
72
+ node = _ref5[0];
73
+ return node.type === _elementTypes.PARAGRAPH;
74
+ }).length === 1;
75
+ };
76
+ var getTextAndListItemNodes = exports.getTextAndListItemNodes = function getTextAndListItemNodes(editor, fragment, liEntry, licEntry) {
77
+ var _liEntry = (0, _slicedToArray2.default)(liEntry, 2),
78
+ liPath = _liEntry[1];
79
+ var _licEntry = (0, _slicedToArray2.default)(licEntry, 2),
80
+ licNode = _licEntry[0],
81
+ licPath = _licEntry[1];
82
+ var isEmptyNode = !_slate.Node.string(licNode);
83
+ // format copied fragment
84
+ // first: lic, path: [...liPath, 0, 0]
85
+ // rest: children, path: [...liPath, 1, 0]
86
+ var _fragment$flatMap$map = fragment.flatMap(trimList).map(wrapNodeIntoListItem),
87
+ _fragment$flatMap$map2 = (0, _toArray2.default)(_fragment$flatMap$map),
88
+ first = _fragment$flatMap$map2[0],
89
+ rest = _fragment$flatMap$map2.slice(1);
90
+ var textNode = null;
91
+ var listItemNodes = [];
92
+ if (isListRoot(fragment[0])) {
93
+ if (isSingleLic(fragment)) {
94
+ textNode = first;
95
+ listItemNodes = rest;
96
+ } else if (isEmptyNode) {
97
+ var li = (0, _core.getNode)(editor, liPath);
98
+ var _li$children = (0, _toArray2.default)(li.children),
99
+ currentSubLists = _li$children.slice(1); // old
100
+
101
+ var _first$children = (0, _toArray2.default)(first.children),
102
+ newLic = _first$children[0],
103
+ newSubLists = _first$children.slice(1); // copied
104
+ // insert copied contents
105
+ _slate.Transforms.insertNodes(editor, newLic, {
106
+ at: _slate.Path.next(licPath),
107
+ select: true
108
+ });
109
+ _slate.Transforms.removeNodes(editor, {
110
+ at: licPath
111
+ });
112
+ if (newSubLists.length) {
113
+ if (currentSubLists.length) {
114
+ var path = [].concat((0, _toConsumableArray2.default)(liPath), [1, 0]);
115
+ _slate.Transforms.insertNodes(editor, newSubLists[0].children, {
116
+ at: path,
117
+ select: true
118
+ });
119
+ } else {
120
+ _slate.Transforms.insertNodes(editor, newSubLists, {
121
+ at: _slate.Path.next(licPath),
122
+ select: true
123
+ });
124
+ }
125
+ }
126
+ textNode = (0, _core.generateDefaultText)();
127
+ listItemNodes = rest;
128
+ } else {
129
+ textNode = (0, _core.generateDefaultText)();
130
+ listItemNodes = [first].concat((0, _toConsumableArray2.default)(rest));
131
+ }
132
+ } else {
133
+ textNode = first;
134
+ listItemNodes = rest;
135
+ return {
136
+ textNode: textNode,
137
+ listItemNodes: listItemNodes
138
+ };
139
+ }
140
+ return {
141
+ textNode: textNode,
142
+ listItemNodes: listItemNodes
143
+ };
144
+ };
145
+ var insertFragmentList = exports.insertFragmentList = function insertFragmentList(editor) {
146
+ var _insertFragment = editor.insertFragment;
147
+ return function (fragment) {
148
+ _slate.Editor.withoutNormalizing(editor, function () {
149
+ var liEntry = (0, _core.findNode)(editor, {
150
+ match: {
151
+ type: _elementTypes.LIST_ITEM
152
+ },
153
+ mode: 'lowest'
154
+ });
155
+ if (!liEntry) {
156
+ var nodes = isListRoot(fragment) ? [(0, _core.generateDefaultText)()].concat((0, _toConsumableArray2.default)(fragment)) : fragment;
157
+ return _insertFragment(nodes);
158
+ }
159
+ (0, _slate.insertFragment)(editor, [(0, _core.generateDefaultText)()]); // need ' '
160
+
161
+ liEntry = (0, _core.findNode)(editor, {
162
+ match: {
163
+ type: _elementTypes.LIST_ITEM
164
+ },
165
+ mode: 'lowest'
166
+ });
167
+ var licEntry = (0, _core.findNode)(editor, {
168
+ match: {
169
+ type: _elementTypes.PARAGRAPH
170
+ },
171
+ mode: 'lowest'
172
+ });
173
+ if (!licEntry) {
174
+ var _nodes = isListRoot(fragment) ? [(0, _core.generateDefaultText)()].concat((0, _toConsumableArray2.default)(fragment)) : fragment;
175
+ return _insertFragment(_nodes);
176
+ }
177
+ var _getTextAndListItemNo = getTextAndListItemNodes(editor, fragment, liEntry, licEntry),
178
+ textNode = _getTextAndListItemNo.textNode,
179
+ listItemNodes = _getTextAndListItemNo.listItemNodes;
180
+ (0, _slate.insertFragment)(editor, [textNode]);
181
+ var _liEntry2 = liEntry,
182
+ _liEntry3 = (0, _slicedToArray2.default)(_liEntry2, 2),
183
+ liPath = _liEntry3[1];
184
+ return _slate.Transforms.insertNodes(editor, listItemNodes, {
185
+ at: _slate.Path.next(liPath),
186
+ select: true
187
+ });
188
+ });
189
+ };
190
+ };
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.normalizeList = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _slate = require("slate");
10
+ var _transforms = require("../transforms");
11
+ var _elementTypes = require("../../../constants/element-types");
12
+ var _core = require("../../../core");
13
+ var _constant = require("../constant");
14
+ var normalizeList = exports.normalizeList = function normalizeList(editor) {
15
+ var normalizeNode = editor.normalizeNode;
16
+ return function (_ref) {
17
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
18
+ node = _ref2[0],
19
+ path = _ref2[1];
20
+ if (!_slate.Element.isElement(node)) {
21
+ return normalizeNode([node, path]);
22
+ }
23
+
24
+ // root
25
+ if (_constant.LIST_TYPES.includes(node.type)) {
26
+ var children = (0, _core.getChildren)([node, path]);
27
+ var nonLiChild = children.find(function (_ref3) {
28
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
29
+ child = _ref4[0];
30
+ return child.type !== _elementTypes.LIST_ITEM;
31
+ });
32
+ if (nonLiChild) {
33
+ var listItem = (0, _core.generateElement)(_elementTypes.LIST_ITEM, []);
34
+ _slate.Transforms.wrapNodes(editor, listItem, {
35
+ at: nonLiChild[1]
36
+ });
37
+ return;
38
+ }
39
+ }
40
+ if ((0, _core.match)(node, [], {
41
+ type: _constant.LIST_TYPES
42
+ })) {
43
+ if (!node.children.length || !node.children.find(function (item) {
44
+ return item.type === _elementTypes.LIST_ITEM;
45
+ })) {
46
+ _slate.Transforms.removeNodes(editor, {
47
+ at: path
48
+ });
49
+ return;
50
+ }
51
+ var nextPath = _slate.Path.next(path);
52
+ var nextNode = (0, _core.getNode)(editor, nextPath);
53
+ if ((nextNode === null || nextNode === void 0 ? void 0 : nextNode.type) === node.type) {
54
+ (0, _transforms.moveListItemsToList)(editor, {
55
+ fromList: [nextNode, nextPath],
56
+ toList: [node, path],
57
+ deleteFromList: true
58
+ });
59
+ }
60
+ var prevPath = (0, _core.getPreviousPath)(path);
61
+ var prevNode = (0, _core.getNode)(editor, prevPath);
62
+ if ((prevNode === null || prevNode === void 0 ? void 0 : prevNode.type) === node.type) {
63
+ editor.normalizeNode([prevNode, prevPath]);
64
+ return;
65
+ }
66
+ if ((0, _transforms.normalizeNestedList)(editor, {
67
+ nestedListItem: [node, path]
68
+ })) {
69
+ return;
70
+ }
71
+ }
72
+ if (node.type === _elementTypes.LIST_ITEM) {
73
+ if ((0, _transforms.normalizeListItem)(editor, {
74
+ listItem: [node, path]
75
+ })) {
76
+ return;
77
+ }
78
+ }
79
+ normalizeNode([node, path]);
80
+ };
81
+ };