@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,326 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.transformUnorderedList = exports.transformTableRow = exports.transformTableCell = exports.transformTable = exports.transformParagraph = exports.transformOrderedList = exports.transformMath = exports.transformListItem = exports.transformListContent = exports.transformList = exports.transformHtml = exports.transformHr = exports.transformHeader = exports.transformCodeLine = exports.transformCodeBlock = exports.transformCheckListItem = exports.transformCheckList = exports.transformBlockquote = exports.formatMdToSlate = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
+ var _slugid = _interopRequireDefault(require("slugid"));
10
+ var _core = require("../../extension/core");
11
+ var _elementTypes = require("../../extension/constants/element-types");
12
+ var INLINE_KEY_MAP = {
13
+ strong: 'bold',
14
+ emphasis: 'italic'
15
+ };
16
+
17
+ // <strong><em>aa<em>bb<em></strong>
18
+ var applyMarkForInlineItem = function applyMarkForInlineItem(result, item) {
19
+ var textNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20
+ var type = item.type,
21
+ children = item.children,
22
+ value = item.value;
23
+ if (type === _elementTypes.LINK) {
24
+ var child = children.length === 0 ? {
25
+ type: 'text',
26
+ value: ''
27
+ } : children[0];
28
+ var linkChildren = [{
29
+ id: _slugid.default.nice(),
30
+ text: child.value
31
+ }];
32
+ var link = {
33
+ id: _slugid.default.nice(),
34
+ type: _elementTypes.LINK,
35
+ url: item.url,
36
+ title: item.title,
37
+ children: linkChildren
38
+ };
39
+ result.push([(0, _core.generateDefaultText)(), link, (0, _core.generateDefaultText)()]);
40
+ return result;
41
+ }
42
+ if (type === _elementTypes.IMAGE) {
43
+ var data = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
44
+ src: item.url
45
+ }, item.title && {
46
+ title: item.title
47
+ }), item.alt && {
48
+ alt: item.alt
49
+ }), item.width && {
50
+ width: item.width
51
+ }), item.height && {
52
+ height: item.height
53
+ });
54
+ var image = {
55
+ id: _slugid.default.nice(),
56
+ data: data,
57
+ type: _elementTypes.IMAGE,
58
+ children: [(0, _core.generateDefaultText)()]
59
+ };
60
+ result.push([(0, _core.generateDefaultText)(), image, (0, _core.generateDefaultText)()]);
61
+ return result;
62
+ }
63
+
64
+ // Handle special images
65
+ if (type === 'html') {
66
+ var nodes = transformHtml(item);
67
+ result.push(nodes);
68
+ return result;
69
+ }
70
+ if (type === 'text') {
71
+ textNode['text'] = value || '';
72
+ result.push(textNode);
73
+ return;
74
+ }
75
+ if (type === 'inlineCode') {
76
+ textNode['code'] = true;
77
+ textNode['text'] = value || '';
78
+ result.push(textNode);
79
+ return;
80
+ }
81
+ var attr_key = INLINE_KEY_MAP[type];
82
+ if (!Array.isArray(children) || children.length === 0 || !attr_key) {
83
+ textNode['text'] = value || '';
84
+ result.push(textNode);
85
+ return;
86
+ }
87
+ textNode[attr_key] = true;
88
+ children.forEach(function (item) {
89
+ applyMarkForInlineItem(result, item, textNode);
90
+ });
91
+ };
92
+ var transformNodeWithInlineChildren = function transformNodeWithInlineChildren(node) {
93
+ var children = node.children;
94
+ var defaultChildren = [(0, _core.generateDefaultText)()];
95
+ if (!children || !Array.isArray(children) || children.length === 0) {
96
+ return defaultChildren;
97
+ }
98
+ var result = [];
99
+ children.forEach(function (item) {
100
+ return applyMarkForInlineItem(result, item);
101
+ });
102
+ return result.flat();
103
+ };
104
+ var transformHeader = exports.transformHeader = function transformHeader(node) {
105
+ var depth = node.depth;
106
+ var type = "".concat(_elementTypes.HEADER).concat(depth);
107
+ return {
108
+ id: _slugid.default.nice(),
109
+ type: type,
110
+ children: transformNodeWithInlineChildren(node)
111
+ };
112
+ };
113
+ var transformParagraph = exports.transformParagraph = function transformParagraph(node) {
114
+ return {
115
+ id: _slugid.default.nice(),
116
+ type: _elementTypes.PARAGRAPH,
117
+ children: transformNodeWithInlineChildren(node)
118
+ };
119
+ };
120
+ var transformBlockquote = exports.transformBlockquote = function transformBlockquote(node) {
121
+ var children = node.children;
122
+ return {
123
+ id: _slugid.default.nice(),
124
+ type: _elementTypes.BLOCKQUOTE,
125
+ children: children.map(function (child) {
126
+ var handler = elementHandlers[child.type];
127
+ return handler(child);
128
+ }).flat() // flat
129
+ };
130
+ };
131
+
132
+ var transformListContent = exports.transformListContent = function transformListContent(node) {
133
+ return {
134
+ id: _slugid.default.nice(),
135
+ type: _elementTypes.PARAGRAPH,
136
+ children: transformNodeWithInlineChildren(node)
137
+ };
138
+ };
139
+ var transformListItem = exports.transformListItem = function transformListItem(node) {
140
+ var children = node.children;
141
+ return {
142
+ id: _slugid.default.nice(),
143
+ type: _elementTypes.LIST_ITEM,
144
+ // eslint-disable-next-line array-callback-return
145
+ children: children.map(function (child) {
146
+ if (child.type === _elementTypes.PARAGRAPH) {
147
+ return transformListContent(child);
148
+ } else {
149
+ return transformList(child);
150
+ }
151
+ })
152
+ };
153
+ };
154
+ var transformOrderedList = exports.transformOrderedList = function transformOrderedList(node) {
155
+ var children = node.children;
156
+ return {
157
+ id: _slugid.default.nice(),
158
+ type: _elementTypes.ORDERED_LIST,
159
+ children: children.map(function (child) {
160
+ return transformListItem(child);
161
+ })
162
+ };
163
+ };
164
+ var transformUnorderedList = exports.transformUnorderedList = function transformUnorderedList(node) {
165
+ var children = node.children;
166
+ return {
167
+ id: _slugid.default.nice(),
168
+ type: _elementTypes.UNORDERED_LIST,
169
+ children: children.map(function (child) {
170
+ return transformListItem(child);
171
+ })
172
+ };
173
+ };
174
+ var transformCheckListItem = exports.transformCheckListItem = function transformCheckListItem(node) {
175
+ var children = node.children,
176
+ checked = node.checked;
177
+ return {
178
+ id: _slugid.default.nice(),
179
+ type: _elementTypes.CHECK_LIST_ITEM,
180
+ checked: checked,
181
+ children: children.map(function (child) {
182
+ return transformNodeWithInlineChildren(child);
183
+ }).flat()
184
+ };
185
+ };
186
+ var transformCheckList = exports.transformCheckList = function transformCheckList(node) {
187
+ var children = node.children;
188
+ return children.map(function (child) {
189
+ return transformCheckListItem(child);
190
+ });
191
+ };
192
+ var transformList = exports.transformList = function transformList(node) {
193
+ var ordered = node.ordered,
194
+ children = node.children;
195
+ var firstChild = children[0];
196
+ if (ordered === true) {
197
+ return transformOrderedList(node);
198
+ }
199
+ if (ordered === false && firstChild.checked === null) {
200
+ return transformUnorderedList(node);
201
+ }
202
+ return transformCheckList(node);
203
+ };
204
+ var transformTableCell = exports.transformTableCell = function transformTableCell(cell, align) {
205
+ return {
206
+ id: _slugid.default.nice(),
207
+ type: _elementTypes.TABLE_CELL,
208
+ align: align || null,
209
+ children: transformNodeWithInlineChildren(cell)
210
+ };
211
+ };
212
+ var transformTableRow = exports.transformTableRow = function transformTableRow(row, align) {
213
+ var cells = row.children;
214
+ return {
215
+ id: _slugid.default.nice(),
216
+ type: _elementTypes.TABLE_ROW,
217
+ children: cells.map(function (cell) {
218
+ return transformTableCell(cell, align);
219
+ })
220
+ };
221
+ };
222
+ var transformTable = exports.transformTable = function transformTable(node) {
223
+ var rows = node.children,
224
+ _node$align = node.align,
225
+ align = _node$align === void 0 ? [] : _node$align;
226
+ return {
227
+ id: _slugid.default.nice(),
228
+ type: _elementTypes.TABLE,
229
+ children: rows.map(function (row, index) {
230
+ return transformTableRow(row, align[index]);
231
+ })
232
+ };
233
+ };
234
+ var transformCodeLine = exports.transformCodeLine = function transformCodeLine(text) {
235
+ return {
236
+ id: _slugid.default.nice(),
237
+ type: _elementTypes.CODE_LINE,
238
+ children: [{
239
+ id: _slugid.default.nice(),
240
+ text: text
241
+ }]
242
+ };
243
+ };
244
+ var transformCodeBlock = exports.transformCodeBlock = function transformCodeBlock(node) {
245
+ var lang = node.lang,
246
+ value = node.value;
247
+ var children = value.split('\n');
248
+ return {
249
+ id: _slugid.default.nice(),
250
+ type: _elementTypes.CODE_BLOCK,
251
+ lang: lang,
252
+ children: children.map(function (text) {
253
+ return transformCodeLine(text);
254
+ })
255
+ };
256
+ };
257
+ var transformHr = exports.transformHr = function transformHr(node) {
258
+ return {
259
+ id: _slugid.default.nice(),
260
+ type: 'hr',
261
+ children: [(0, _core.generateDefaultText)()]
262
+ };
263
+ };
264
+ var transformHtml = exports.transformHtml = function transformHtml(node) {
265
+ var defaultTextNode = (0, _core.generateDefaultText)();
266
+ if (node.value.slice(0, 4).toLowerCase() === '<img') {
267
+ var _DOMParser$parseFromS = new DOMParser().parseFromString(node.value, 'text/html'),
268
+ body = _DOMParser$parseFromS.body;
269
+ var img = body.firstChild;
270
+ var src = img.getAttribute('src');
271
+ if (src) return defaultTextNode;
272
+ var alt = img.getAttribute('alt');
273
+ var title = img.getAttribute('title');
274
+ var width = img.getAttribute('width');
275
+ var height = img.getAttribute('height');
276
+ var data = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
277
+ src: src
278
+ }, alt && {
279
+ alt: alt
280
+ }), title && {
281
+ title: title
282
+ }), !isNaN(width) && width > 0 && {
283
+ width: width
284
+ }), !isNaN(height) && height > 0 && {
285
+ height: height
286
+ });
287
+ var image = {
288
+ id: _slugid.default.nice(),
289
+ data: data,
290
+ type: _elementTypes.IMAGE,
291
+ children: [(0, _core.generateDefaultText)()]
292
+ };
293
+ return [defaultTextNode, image, defaultTextNode];
294
+ }
295
+ return defaultTextNode;
296
+ };
297
+ var transformMath = exports.transformMath = function transformMath(node) {
298
+ return {
299
+ id: _slugid.default.nice(),
300
+ type: 'formula',
301
+ data: {
302
+ formula: node.value
303
+ },
304
+ children: [(0, _core.generateDefaultText)()]
305
+ };
306
+ };
307
+ var elementHandlers = {
308
+ 'paragraph': transformParagraph,
309
+ 'heading': transformHeader,
310
+ 'blockquote': transformBlockquote,
311
+ 'table': transformTable,
312
+ 'list': transformList,
313
+ // ordered_list | unordered_list | check_list_item
314
+ 'code': transformCodeBlock,
315
+ 'thematicBreak': transformHr,
316
+ 'math': transformMath
317
+ };
318
+ var formatMdToSlate = exports.formatMdToSlate = function formatMdToSlate(children) {
319
+ var validChildren = children.filter(function (child) {
320
+ return elementHandlers[child.type];
321
+ });
322
+ return validChildren.map(function (child) {
323
+ var handler = elementHandlers[child.type];
324
+ return handler(child);
325
+ }).flat();
326
+ };
@@ -0,0 +1,43 @@
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 _unified = require("unified");
9
+ var _remarkParse = _interopRequireDefault(require("remark-parse"));
10
+ var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
11
+ var _remarkStringify = _interopRequireDefault(require("remark-stringify"));
12
+ var _remarkMath = _interopRequireDefault(require("remark-math"));
13
+ var _transform = require("./transform");
14
+ var isContentValid = function isContentValid(value) {
15
+ if (!value || !Array.isArray(value)) return false;
16
+ return true;
17
+ };
18
+
19
+ // slateNode -> mdast -> mdString
20
+ var slateToMdString = function slateToMdString(value) {
21
+ if (!isContentValid(value)) return '';
22
+ // slateNode -> mdast
23
+ // https://github.com/syntax-tree/mdast#phrasingcontent
24
+ var mdASTNodes = (0, _transform.formatSlateToMd)(value);
25
+ var root = {
26
+ type: 'root',
27
+ children: mdASTNodes
28
+ };
29
+
30
+ // convert slate value to md
31
+ var stringifyOptions = {
32
+ rule: '-',
33
+ ruleSpaces: false,
34
+ bullet: '*',
35
+ commonmarks: true,
36
+ fences: true
37
+ };
38
+ var res = (0, _unified.unified)().use(_remarkParse.default).use(_remarkGfm.default).use(_remarkStringify.default, stringifyOptions).use(_remarkMath.default).stringify(root);
39
+ return res;
40
+ };
41
+
42
+ // transform rules: https://github.com/syntax-tree/mdast
43
+ var _default = exports.default = slateToMdString;
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.formatSlateToMd = void 0;
8
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
+ var generateDefaultText = function generateDefaultText() {
11
+ return {
12
+ type: 'text',
13
+ value: ''
14
+ };
15
+ };
16
+ var transformTextNode = function transformTextNode(textNode) {
17
+ var mdNode = {
18
+ type: 'text',
19
+ value: textNode.text
20
+ };
21
+
22
+ // code = true, override text type
23
+ if (textNode['code']) {
24
+ mdNode = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, mdNode), {}, {
25
+ type: 'inlineCode'
26
+ });
27
+ }
28
+
29
+ // blob = true, add strong parent
30
+ if (textNode['bold']) {
31
+ mdNode = {
32
+ type: 'strong',
33
+ children: [mdNode]
34
+ };
35
+ }
36
+
37
+ // italic = true, add emphasis parent
38
+ if (textNode['italic']) {
39
+ mdNode = {
40
+ type: 'emphasis',
41
+ children: [mdNode]
42
+ };
43
+ }
44
+ return mdNode;
45
+ };
46
+ var transformInlineChildren = function transformInlineChildren(result, item) {
47
+ // image
48
+ if (item.type && item.type === 'image') {
49
+ var data = item.data;
50
+ var image = {
51
+ type: 'image',
52
+ url: data.src,
53
+ alt: data.alt || null,
54
+ title: data.title || null
55
+ };
56
+ if (data.height || data.width) {
57
+ image = {
58
+ type: 'html',
59
+ value: "<img src=\"".concat(data.src, "\" alt=\"").concat(data.alt, "\" title=\"").concat(data.title, "\" width=\"").concat(data.width, "\" height=\"").concat(data.height, "\" />")
60
+ };
61
+ }
62
+ result.push(image);
63
+ return result;
64
+ }
65
+
66
+ // link
67
+ if (item.type && item.type === 'link') {
68
+ var link = {
69
+ type: 'link',
70
+ url: item.url,
71
+ title: item.title || null,
72
+ children: [transformTextNode(item.children[0])]
73
+ };
74
+ result.push(link);
75
+ return result;
76
+ }
77
+
78
+ // text
79
+ var nodes = transformTextNode(item);
80
+ result.push(nodes);
81
+ return result;
82
+ };
83
+ var transformNodeWithInlineChildren = function transformNodeWithInlineChildren(node) {
84
+ var children = node.children;
85
+ var defaultChildren = [generateDefaultText()];
86
+ if (!children || !Array.isArray(children) || children.length === 0) {
87
+ return defaultChildren;
88
+ }
89
+ var result = [];
90
+ children.forEach(function (item) {
91
+ return transformInlineChildren(result, item);
92
+ });
93
+ return result.flat();
94
+ };
95
+ var transformHeader = function transformHeader(node) {
96
+ var level = node.type.replace('header', '');
97
+ return {
98
+ type: 'heading',
99
+ depth: parseInt(level),
100
+ children: transformNodeWithInlineChildren(node)
101
+ };
102
+ };
103
+ var transformParagraph = function transformParagraph(node) {
104
+ return {
105
+ type: 'paragraph',
106
+ children: transformNodeWithInlineChildren(node)
107
+ };
108
+ };
109
+ var transformBlockquote = function transformBlockquote(node) {
110
+ var children = node.children;
111
+ return {
112
+ type: 'blockquote',
113
+ children: children.map(function (child) {
114
+ var handler = elementHandlers[child.type];
115
+ return handler(child);
116
+ }).flat() // flat
117
+ };
118
+ };
119
+
120
+ var transformCheckList = function transformCheckList(node) {
121
+ return {
122
+ type: 'list',
123
+ ordered: false,
124
+ start: null,
125
+ spread: false,
126
+ children: [{
127
+ type: 'listItem',
128
+ spread: false,
129
+ checked: node.checked,
130
+ children: [transformParagraph(node)]
131
+ }]
132
+ };
133
+ };
134
+ var transformListContent = function transformListContent(node) {
135
+ return transformParagraph(node);
136
+ };
137
+ var transformListItem = function transformListItem(node) {
138
+ var loose = false;
139
+ var children = node.children;
140
+ // eslint-disable-next-line array-callback-return
141
+ var newChildren = children.map(function (child) {
142
+ if (child.type === 'paragraph') {
143
+ return transformListContent(child);
144
+ }
145
+ if (child.type === 'unordered_list' || child.type === 'ordered_list') {
146
+ return transformList(child);
147
+ }
148
+ });
149
+ if (newChildren.length === 1) {
150
+ loose = false;
151
+ } else if (newChildren.length === 2 && newChildren[1].type === 'list') {
152
+ loose = true;
153
+ } else {
154
+ loose = true;
155
+ }
156
+ return {
157
+ type: 'listItem',
158
+ loose: loose,
159
+ checked: null,
160
+ children: newChildren
161
+ };
162
+ };
163
+ var transformList = function transformList(node) {
164
+ var children = node.children;
165
+ var newChildren = children.map(function (child) {
166
+ return transformListItem(child);
167
+ });
168
+ var loose = false;
169
+ var _iterator = (0, _createForOfIteratorHelper2.default)(newChildren),
170
+ _step;
171
+ try {
172
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
173
+ var _node = _step.value;
174
+ if (_node.loose === true) {
175
+ loose = true;
176
+ break;
177
+ }
178
+ }
179
+ } catch (err) {
180
+ _iterator.e(err);
181
+ } finally {
182
+ _iterator.f();
183
+ }
184
+ return {
185
+ type: 'list',
186
+ ordered: node.type === 'ordered_list',
187
+ // ordered_list | unordered_list
188
+ start: 1,
189
+ loose: loose,
190
+ children: newChildren
191
+ };
192
+ };
193
+ var transformTableCell = function transformTableCell(cell) {
194
+ return {
195
+ type: 'tableCell',
196
+ children: transformNodeWithInlineChildren(cell)
197
+ };
198
+ };
199
+ var transformTableRow = function transformTableRow(row) {
200
+ var cells = row.children;
201
+ return {
202
+ type: 'tableRow',
203
+ children: cells.map(function (cell) {
204
+ return transformTableCell(cell);
205
+ })
206
+ };
207
+ };
208
+ var transformTable = function transformTable(node) {
209
+ var rows = node.children;
210
+ var align = rows.map(function (row) {
211
+ var _cells$;
212
+ var cells = row.children;
213
+ return ((_cells$ = cells[0]) === null || _cells$ === void 0 ? void 0 : _cells$.align) || null;
214
+ });
215
+ return {
216
+ type: 'table',
217
+ align: align,
218
+ children: rows.map(function (row) {
219
+ return transformTableRow(row);
220
+ })
221
+ };
222
+ };
223
+ var transformCodeLine = function transformCodeLine(node) {
224
+ var _node$children$;
225
+ var text = ((_node$children$ = node.children[0]) === null || _node$children$ === void 0 ? void 0 : _node$children$.text) || '';
226
+ return text;
227
+ };
228
+ var transformCodeBlock = function transformCodeBlock(node) {
229
+ var children = node.children;
230
+ return {
231
+ type: 'code',
232
+ lang: node.lang ? node.lang : null,
233
+ value: children.map(function (child) {
234
+ return transformCodeLine(child);
235
+ }).join('\n')
236
+ };
237
+ };
238
+ var transformFormula = function transformFormula(node) {
239
+ var data = node.data;
240
+ return {
241
+ type: 'math',
242
+ value: data.formula
243
+ };
244
+ };
245
+ var elementHandlers = {
246
+ 'paragraph': transformParagraph,
247
+ 'header1': transformHeader,
248
+ 'header2': transformHeader,
249
+ 'header3': transformHeader,
250
+ 'header4': transformHeader,
251
+ 'header5': transformHeader,
252
+ 'header6': transformHeader,
253
+ 'blockquote': transformBlockquote,
254
+ 'table': transformTable,
255
+ 'check_list_item': transformCheckList,
256
+ 'ordered_list': transformList,
257
+ 'unordered_list': transformList,
258
+ 'code_block': transformCodeBlock,
259
+ 'formula': transformFormula
260
+ };
261
+ var formatSlateToMd = exports.formatSlateToMd = function formatSlateToMd(children) {
262
+ var validChildren = children.filter(function (child) {
263
+ return elementHandlers[child.type];
264
+ });
265
+ return validChildren.map(function (child) {
266
+ var handler = elementHandlers[child.type];
267
+ return handler(child);
268
+ }).flat();
269
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isUrl = exports.isMac = exports.isImage = exports.IMAGE_TYPES = void 0;
8
+ var _isUrl = _interopRequireDefault(require("is-url"));
9
+ var isMac = exports.isMac = function isMac() {
10
+ var platform = navigator.platform;
11
+ return platform === 'Mac68K' || platform === 'MacPPC' || platform === 'Macintosh' || platform === 'MacIntel';
12
+ };
13
+ var IMAGE_TYPES = exports.IMAGE_TYPES = ['png', 'jpg', 'gif'];
14
+ var isImage = exports.isImage = function isImage(url) {
15
+ if (!url) return false;
16
+ if (!isUrl(url)) return false;
17
+ var suffix = url.split('.')[1]; // http://xx/mm/*.png
18
+ if (!suffix) return false;
19
+ return IMAGE_TYPES.includes(suffix.toLowerCase());
20
+ };
21
+ var isUrl = exports.isUrl = function isUrl(url) {
22
+ if (!url) return false;
23
+ if (!url.startsWith('http')) return false;
24
+ if (!(0, _isUrl.default)(url)) return false;
25
+ return true;
26
+ };