@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
@@ -1,248 +0,0 @@
1
- const generateDefaultText = () => {
2
- return {
3
- type: 'text',
4
- value: '',
5
- };
6
- };
7
-
8
- const transformTextNode = (textNode) => {
9
- let mdNode = { type: 'text', value: textNode.text };
10
-
11
- // code = true, override text type
12
- if (textNode['code']) {
13
- mdNode = { ...mdNode, type: 'inlineCode' };
14
- }
15
-
16
- // blob = true, add strong parent
17
- if (textNode['bold']) {
18
- mdNode = { type: 'strong', children: [mdNode] };
19
- }
20
-
21
- // italic = true, add emphasis parent
22
- if (textNode['italic']) {
23
- mdNode = { type: 'emphasis', children: [mdNode] };
24
- }
25
-
26
- return mdNode;
27
- };
28
-
29
- const transformInlineChildren = (result, item) => {
30
- // image
31
- if (item.type && item.type === 'image') {
32
- const { data } = item;
33
- let image = {
34
- type: 'image',
35
- url: data.src,
36
- alt: data.alt || null,
37
- title: data.title || null,
38
- };
39
- if (data.height || data.width) {
40
- image = {
41
- type: 'html',
42
- value: `<img src="${data.src}" alt="${data.alt}" title="${data.title}" width="${data.width}" height="${data.height}" />`
43
- };
44
- }
45
- result.push(image);
46
- return result;
47
- }
48
-
49
- // link
50
- if (item.type && item.type === 'link') {
51
- const link = {
52
- type: 'link',
53
- url: item.url,
54
- title: item.title || null,
55
- children: [transformTextNode(item.children[0])],
56
- };
57
- result.push(link);
58
- return result;
59
- }
60
-
61
- // text
62
- const nodes = transformTextNode(item);
63
- result.push(nodes);
64
- return result;
65
- };
66
-
67
- const transformNodeWithInlineChildren = (node) => {
68
- const { children } = node;
69
- const defaultChildren = [generateDefaultText()];
70
- if (!children || !Array.isArray(children) || children.length === 0) {
71
- return defaultChildren;
72
- }
73
- const result = [];
74
- children.forEach(item => transformInlineChildren(result, item));
75
- return result.flat();
76
- };
77
-
78
- const transformHeader = (node) => {
79
- const level = node.type.replace('header', '');
80
- return {
81
- type: 'heading',
82
- depth: parseInt(level),
83
- children: transformNodeWithInlineChildren(node)
84
- };
85
- };
86
-
87
- const transformParagraph = (node) => {
88
- return {
89
- type: 'paragraph',
90
- children: transformNodeWithInlineChildren(node)
91
- };
92
- };
93
-
94
- const transformBlockquote = (node) => {
95
- const { children } = node;
96
- return {
97
- type: 'blockquote',
98
- children: children.map(child => {
99
- const handler = elementHandlers[child.type];
100
- return handler(child);
101
- }).flat(), // flat
102
- };
103
- };
104
-
105
- const transformCheckList = (node) => {
106
- return {
107
- type: 'list',
108
- ordered: false,
109
- start: null,
110
- spread: false,
111
- children: [
112
- {
113
- type: 'listItem',
114
- spread: false,
115
- checked: node.checked,
116
- children: [
117
- transformParagraph(node),
118
- ]
119
- }
120
- ],
121
- };
122
- };
123
-
124
- const transformListContent = (node) => {
125
- return transformParagraph(node);
126
- };
127
-
128
- const transformListItem = (node) => {
129
- let loose = false;
130
- const { children } = node;
131
- // eslint-disable-next-line array-callback-return
132
- const newChildren = children.map(child => {
133
- if (child.type === 'paragraph') {
134
- return transformListContent(child);
135
- }
136
- if (child.type === 'unordered_list' || child.type === 'ordered_list') {
137
- return transformList(child);
138
- }
139
- });
140
- if (newChildren.length === 1) {
141
- loose = false;
142
- } else if (newChildren.length === 2 && newChildren[1].type === 'list') {
143
- loose = true;
144
- } else {
145
- loose = true;
146
- }
147
-
148
- return {
149
- type: 'listItem',
150
- loose: loose,
151
- checked: null,
152
- children: newChildren
153
- };
154
- };
155
-
156
- const transformList = (node) => {
157
- const { children } = node;
158
- const newChildren = children.map(child => transformListItem(child));
159
- let loose = false;
160
- for (let node of newChildren) {
161
- if (node.loose === true) {
162
- loose = true;
163
- break;
164
- }
165
- }
166
- return {
167
- type: 'list',
168
- ordered: node.type === 'ordered_list', // ordered_list | unordered_list
169
- start: 1,
170
- loose: loose,
171
- children: newChildren,
172
- };
173
- };
174
-
175
- const transformTableCell = (cell) => {
176
- return {
177
- type: 'tableCell',
178
- children: transformNodeWithInlineChildren(cell),
179
- };
180
- };
181
-
182
- const transformTableRow = (row) => {
183
- const { children: cells } = row;
184
- return {
185
- type: 'tableRow',
186
- children: cells.map(cell => transformTableCell(cell)),
187
- };
188
- };
189
-
190
- const transformTable = (node) => {
191
- const { children: rows } = node;
192
- const align = rows.map(row => {
193
- const { children: cells } = row;
194
- return cells[0]?.align || null;
195
- });
196
- return {
197
- type: 'table',
198
- align: align,
199
- children: rows.map(row => transformTableRow(row)),
200
- };
201
- };
202
-
203
- const transformCodeLine = (node) => {
204
- const text = node.children[0]?.text || '';
205
- return text;
206
- };
207
-
208
- const transformCodeBlock = (node) => {
209
- const { children } = node;
210
- return {
211
- type: 'code',
212
- lang: node.lang ? node.lang : null,
213
- value: children.map(child => transformCodeLine(child)).join('\n'),
214
- };
215
- };
216
-
217
- const transformFormula = (node) => {
218
- const data = node.data;
219
- return {
220
- type: 'math',
221
- value: data.formula,
222
- };
223
- };
224
-
225
- const elementHandlers = {
226
- 'paragraph': transformParagraph,
227
- 'header1': transformHeader,
228
- 'header2': transformHeader,
229
- 'header3': transformHeader,
230
- 'header4': transformHeader,
231
- 'header5': transformHeader,
232
- 'header6': transformHeader,
233
- 'blockquote': transformBlockquote,
234
- 'table': transformTable,
235
- 'check_list_item': transformCheckList,
236
- 'ordered_list': transformList,
237
- 'unordered_list': transformList,
238
- 'code_block': transformCodeBlock,
239
- 'formula': transformFormula,
240
- };
241
-
242
- export const formatSlateToMd = (children) => {
243
- const validChildren = children.filter(child => elementHandlers[child.type]);
244
- return validChildren.map(child => {
245
- const handler = elementHandlers[child.type];
246
- return handler(child);
247
- }).flat();
248
- };
@@ -1,30 +0,0 @@
1
- import checkIsUrl from 'is-url';
2
-
3
- export const isMac = () => {
4
- const platform = navigator.platform;
5
- return (platform === 'Mac68K') || (platform === 'MacPPC') || (platform === 'Macintosh') || (platform === 'MacIntel');
6
- };
7
-
8
- export const IMAGE_TYPES = [
9
- 'png',
10
- 'jpg',
11
- 'gif',
12
- ];
13
-
14
- export const isImage = (url) => {
15
- if (!url) return false;
16
-
17
- if (!isUrl(url)) return false;
18
-
19
- const suffix = url.split('.')[1]; // http://xx/mm/*.png
20
- if (!suffix) return false;
21
-
22
- return IMAGE_TYPES.includes(suffix.toLowerCase());
23
- };
24
-
25
- export const isUrl = (url) => {
26
- if (!url) return false;
27
- if (!url.startsWith('http')) return false;
28
- if (!checkIsUrl(url)) return false;
29
- return true;
30
- };
@@ -1,174 +0,0 @@
1
- import { jsx } from 'slate-hyperscript';
2
- import {
3
- BLOCKQUOTE,
4
- HEADER1,
5
- HEADER2,
6
- HEADER3,
7
- HEADER4,
8
- HEADER5,
9
- HEADER6,
10
- IMAGE,
11
- LINK,
12
- LIST_ITEM,
13
- ORDERED_LIST,
14
- PARAGRAPH,
15
- TABLE,
16
- UNORDERED_LIST,
17
- } from '../extension/constants/element-types';
18
- import { generateTableCell, generateTableRow } from '../extension/plugins/table/model';
19
- import { generateElement } from '../extension/core';
20
-
21
- const ELEMENT_TAGS = {
22
- A: el => ({ type: LINK, data: { href: el.getAttribute('href') } }),
23
- BLOCKQUOTE: () => ({ type: BLOCKQUOTE }),
24
- H1: () => ({ type: HEADER1 }),
25
- H2: () => ({ type: HEADER2 }),
26
- H3: () => ({ type: HEADER3 }),
27
- H4: () => ({ type: HEADER4 }),
28
- H5: () => ({ type: HEADER5 }),
29
- H6: () => ({ type: HEADER6 }),
30
- IMG: el => ({ type: IMAGE, children: [{ text: '' }], data: { src: el.getAttribute('src') } }),
31
- LI: () => ({ type: LIST_ITEM, data: {} }),
32
- OL: () => ({ type: ORDERED_LIST }),
33
- P: () => ({ type: PARAGRAPH }),
34
- UL: () => ({ type: UNORDERED_LIST }),
35
- TABLE: () => ({ type: TABLE }),
36
- BR: () => ({ text: '' })
37
- };
38
-
39
- const HEADER_LIST = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];
40
-
41
- const TEXT_TAGS = {
42
- CODE: () => ({ CODE: true }),
43
- DEL: () => ({ DELETE: true }),
44
- EM: () => ({ ITALIC: true }),
45
- I: () => ({ ITALIC: true }),
46
- STRONG: () => ({ BOLD: true }),
47
- INS: () => ({ INS: true })
48
- };
49
-
50
- const parseTable = (el) => {
51
-
52
- if (el.parentNode.nodeName !== 'BODY') {
53
- return null;
54
- }
55
-
56
- let tableWidth = 0;
57
- Array.from(el.rows[0].childNodes).forEach((cell, index) => {
58
- if (cell.nodeName === 'TD' || cell.nodeName === 'TH') {
59
- tableWidth += (Number(cell.getAttribute('colspan')) || 1);
60
- }
61
- });
62
-
63
- let rowList = [];
64
- for (let rowIndex = 0; rowIndex < el.rows.length; rowIndex++) {
65
- let cells = el.rows[rowIndex].cells;
66
- const cellsList = [];
67
- for (let columnIndex = 0; columnIndex < cells.length; columnIndex++) {
68
- const cell = cells[columnIndex];
69
- cellsList.push(generateTableCell({ childrenOrText: [generateElement(PARAGRAPH, { childrenOrText: cell.textContent })] }));
70
- }
71
- if (cellsList.length < tableWidth) {
72
- let count = tableWidth - cellsList.length;
73
- for (let i = 0; i < count; i++) {
74
- cellsList.push(generateTableCell({ childrenOrText: [generateElement(PARAGRAPH)] }));
75
- }
76
- }
77
- rowList.push(generateTableRow({ childrenOrText: cellsList }));
78
- }
79
-
80
- return rowList;
81
- };
82
-
83
- const deserializeHtml = el => {
84
- if (el.nodeType === 3) {
85
- // remove \n character
86
- if (el.textContent === '\n' || el.textContent === '\r') {
87
- return null;
88
- }
89
- if (el.parentElement.nodeName === 'BODY') {
90
- let text = el.textContent.replace(/(\n|\r\n)/g, '');
91
- if (text.length === 0) return null;
92
- return { type: PARAGRAPH, children: [{ text }] };
93
- }
94
- return el.textContent;
95
- } else if (el.nodeType !== 1) {
96
- return null;
97
- }
98
-
99
- const { nodeName } = el;
100
- let parent = el;
101
-
102
- let children = Array.from(parent.childNodes)
103
- .map(deserializeHtml)
104
- .flat();
105
-
106
- // deserialize task list
107
- if (nodeName === 'LI') {
108
- if (el.className && el.className.indexOf('task-list-item') >= 0) {
109
- return jsx('element', { data: { checked: false }, type: 'list_item' }, children);
110
- }
111
- }
112
-
113
- if (
114
- nodeName === 'PRE' &&
115
- el.childNodes[0] &&
116
- el.childNodes[0].nodeName === 'CODE'
117
- ) {
118
- // deserialize code block
119
- const code = el.childNodes[0];
120
- const codeChildren = [];
121
- code.childNodes.forEach((codeLine, index) => {
122
- if (codeLine.innerText) {
123
- codeChildren.push({
124
- type: 'code_line',
125
- children: [{ text: codeLine.innerText }]
126
- });
127
- }
128
- });
129
-
130
- return {
131
- data: { syntax: null },
132
- children: codeChildren,
133
- type: 'code_block'
134
- };
135
- }
136
-
137
- if (el.nodeName === 'BODY') {
138
- return jsx('fragment', {}, children);
139
- }
140
-
141
- if (ELEMENT_TAGS[nodeName]) {
142
- const attrs = ELEMENT_TAGS[nodeName](el);
143
- if (nodeName === 'IMG') {
144
- return jsx('element', attrs, [{ text: '' }]);
145
- }
146
-
147
- // modify BR into an empty text node
148
- if (nodeName === 'BR') {
149
- return '';
150
- }
151
-
152
- if (nodeName === 'TABLE') {
153
- return jsx('element', attrs, parseTable(el));
154
- }
155
-
156
- if (nodeName === 'A' || HEADER_LIST.includes(nodeName)) {
157
- return jsx('element', attrs, [{ text: el.textContent }]);
158
- }
159
-
160
- return jsx('element', attrs, children);
161
- }
162
-
163
- if (TEXT_TAGS[nodeName]) {
164
- const attrs = TEXT_TAGS[nodeName](el);
165
- return children.map(child => jsx('text', attrs, child));
166
- }
167
- return children;
168
- };
169
-
170
-
171
- export const htmlDeserializer = (html) => {
172
- const parsed = new DOMParser().parseFromString(html, 'text/html');
173
- return deserializeHtml(parsed.body);
174
- };
@@ -1,45 +0,0 @@
1
- export const getDomHeight = (dom) => {
2
- const styles = window.getComputedStyle(dom);
3
- const rect = dom.getBoundingClientRect();
4
- const marginTop = styles['marginTop'];
5
- // margin-bottom overlaps margin-top
6
- // const marginBottom = styles['marginBottom'];
7
- const { height } = rect;
8
-
9
- return height + parseInt(marginTop);
10
- };
11
-
12
- export const getDomMarginTop = (dom) => {
13
- const styles = window.getComputedStyle(dom);
14
- const marginTop = styles['marginTop'];
15
- return parseInt(marginTop);
16
- };
17
-
18
- export const getSelectionRange = () => {
19
- if (window.getSelection) {
20
- const sel = window.getSelection();
21
- if (sel.getRangeAt && sel.rangeCount) {
22
- return sel.getRangeAt(0);
23
- }
24
- } else if (document.selection && document.selection.createRange) {
25
- return document.selection.createRange();
26
- }
27
-
28
- return null;
29
- };
30
-
31
- export const getCursorPosition = (isScrollUp = true) => {
32
- let x = 0, y = 0;
33
- let range = getSelectionRange();
34
- if (range) {
35
- const rect = range.getBoundingClientRect();
36
- const headerHeight = 100;
37
- x = rect.x || 0;
38
- if (isScrollUp) {
39
- y = rect.y - headerHeight;
40
- } else {
41
- y = rect.y - headerHeight + rect.height;
42
- }
43
- }
44
- return { x: x, y: y };
45
- };
@@ -1,37 +0,0 @@
1
- class EventBus {
2
- constructor() {
3
- this.instance = null;
4
- this.subscribers = {};
5
- }
6
-
7
- static getInstance() {
8
- if (this.instance) return this.instance;
9
- this.instance = new EventBus();
10
- return this.instance;
11
- }
12
-
13
- subscribe(type, handler) {
14
- if (!this.subscribers[type]) {
15
- this.subscribers[type] = [];
16
- }
17
-
18
- const handlers = this.subscribers[type];
19
- handlers.push(handler);
20
-
21
- return () => {
22
- const index = handlers.indexOf(handler);
23
- if (index > -1) {
24
- handlers.splice(index, 1);
25
- }
26
- };
27
- }
28
-
29
- dispatch(type, ...data) {
30
- const handlers = this.subscribers[type];
31
- if (Array.isArray(handlers)) {
32
- handlers.forEach(handler => handler(...data));
33
- }
34
- }
35
- }
36
-
37
- export default EventBus;
@@ -1,36 +0,0 @@
1
- import isHotkey from 'is-hotkey';
2
-
3
- class EventProxy {
4
-
5
- constructor(editor) {
6
- this.editor = editor;
7
- }
8
-
9
- onKeyDown = (event) => {
10
- const editor = this.editor;
11
- if (editor.onHotKeyDown) {
12
- const isHandled = editor.onHotKeyDown(event);
13
- if (isHandled) return;
14
- }
15
-
16
- // Disable the default 'save page'
17
- if (isHotkey('mod+s', event)) {
18
- event.preventDefault();
19
- }
20
-
21
- // Disable default 'tab' behavior
22
- if (isHotkey('tab', event)) {
23
- event.preventDefault();
24
- }
25
- };
26
-
27
- onCopy = (event) => {
28
- const editor = this.editor;
29
- if (editor.onCopy) {
30
- const isHandled = editor.onCopy(event);
31
- if (isHandled) return;
32
- }
33
- };
34
- }
35
-
36
- export default EventProxy;
@@ -1,51 +0,0 @@
1
- class ObjectUtils {
2
-
3
- static getDataType(data){
4
- let type = typeof data;
5
- if (type !== 'object') {
6
- return type;
7
- }
8
- return Object.prototype.toString.call(data).replace(/^\[object (\S+)\]$/, '$1');
9
- }
10
-
11
- static isObject = (data) => {
12
- return this.getDataType(data) === 'Object';
13
- };
14
-
15
- static iterable(data){
16
- return ['Object', 'Array'].includes(this.getDataType(data));
17
- }
18
-
19
- static isObjectChanged(source, comparison, notIncludeKeys) {
20
- if (!this.iterable(source)) {
21
- throw new Error(`source should be a Object or Array , but got ${this.getDataType(source)}`);
22
- }
23
- if (this.getDataType(source) !== this.getDataType(comparison)) {
24
- return true;
25
- }
26
- const sourceKeys = Object.keys(source);
27
- const comparisonKeys = Object.keys({ ...source, ...comparison }).filter(key => !notIncludeKeys.includes(key));
28
- if (sourceKeys.length !== comparisonKeys.length) {
29
- return true;
30
- }
31
- return comparisonKeys.some(key => {
32
- if (this.iterable(source[key])) {
33
- return this.isObjectChanged(source[key], comparison[key], notIncludeKeys);
34
- } else {
35
- return source[key] !== comparison[key];
36
- }
37
- });
38
- }
39
-
40
- static isSameObject(source, comparison, notIncludeKeys = []) {
41
- if (!source || !comparison) return false;
42
- return !this.isObjectChanged(source, comparison, notIncludeKeys);
43
- }
44
-
45
- static hasProperty = (obj, prop) => {
46
- if (!obj) return false;
47
- return Object.prototype.hasOwnProperty.call(obj, prop);
48
- };
49
- }
50
-
51
- export default ObjectUtils;
@@ -1,54 +0,0 @@
1
- // extension plugin
2
- export const BLOCKQUOTE = 'blockquote';
3
- export const HEADER = 'header';
4
- export const HEADER1 = 'header1';
5
- export const HEADER2 = 'header2';
6
- export const HEADER3 = 'header3';
7
- export const HEADER4 = 'header4';
8
- export const HEADER5 = 'header5';
9
- export const HEADER6 = 'header6';
10
- export const ORDERED_LIST = 'ordered_list';
11
- export const UNORDERED_LIST = 'unordered_list';
12
- export const LIST_ITEM = 'list_item';
13
- export const LIST_LIC = 'list_lic'; // placeholder
14
- export const CHECK_LIST_ITEM = 'check_list_item';
15
- export const PARAGRAPH = 'paragraph';
16
- export const CODE_BLOCK = 'code_block';
17
- export const CODE_LINE = 'code_line';
18
- export const TABLE = 'table';
19
- export const TABLE_CELL = 'table_cell';
20
- export const TABLE_ROW = 'table_row';
21
- export const TABLE_TH = 'table_th';
22
- export const TABLE_TD = 'table_td';
23
- export const TABLE_TR = 'table_tr';
24
- export const LINK = 'link';
25
- export const IMAGE = 'image';
26
- export const FORMULA = 'formula';
27
- export const COLUMN = 'column';
28
-
29
- export const voidChildren = [{ text: '' }];
30
-
31
- export const ELEMENTS = {
32
- ha: { type: LINK },
33
- hblockquote: { type: BLOCKQUOTE },
34
- hcodeblock: { type: CODE_BLOCK },
35
- hcodeline: { type: CODE_LINE },
36
- hdefault: { type: PARAGRAPH },
37
- hh1: { type: HEADER1 },
38
- hh2: { type: HEADER2 },
39
- hh3: { type: HEADER3 },
40
- hh4: { type: HEADER4 },
41
- hh5: { type: HEADER5 },
42
- hh6: { type: HEADER6 },
43
- himg: { type: IMAGE, children: voidChildren },
44
- hli: { type: LIST_ITEM },
45
- hlic: { type: LIST_LIC },
46
- hol: { type: ORDERED_LIST },
47
- hp: { type: PARAGRAPH },
48
- htable: { type: TABLE },
49
- htd: { type: TABLE_TD },
50
- hth: { type: TABLE_TH },
51
- htodoli: { type: CHECK_LIST_ITEM },
52
- htr: { type: TABLE_TR },
53
- hul: { type: UNORDERED_LIST }
54
- };
@@ -1,11 +0,0 @@
1
- import { jsx } from './jsx';
2
- import StubEditor from './stub-editor';
3
- import { createSdocEditor, formatChildren, formatChildren2 } from './utils';
4
-
5
- export {
6
- jsx,
7
- StubEditor,
8
- createSdocEditor,
9
- formatChildren,
10
- formatChildren2
11
- };
@@ -1,9 +0,0 @@
1
- import { createHyperscript, createText as createTestText } from 'slate-hyperscript';
2
- import { ELEMENTS } from '../constants';
3
-
4
- export const jsx = createHyperscript({
5
- elements: ELEMENTS,
6
- creators: {
7
- htext: createTestText
8
- }
9
- });