@worktile/theia 13.0.0-next.1 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/README.md +11 -11
  2. package/components/color-select/color-select.component.d.ts +32 -32
  3. package/components/color-select/color-select.component.scss +107 -107
  4. package/components/column-resize/column-resize-notifier.d.ts +35 -35
  5. package/components/column-resize/column-resize.directive.d.ts +26 -26
  6. package/components/column-resize/column-resize.module.d.ts +14 -14
  7. package/components/column-resize/event-dispatcher.d.ts +31 -31
  8. package/components/column-resize/overlay-handle.component.d.ts +33 -33
  9. package/components/column-resize/resize-ref.d.ts +25 -25
  10. package/components/column-resize/resizing.store.d.ts +28 -28
  11. package/components/column-resize/selectors.d.ts +3 -3
  12. package/components/contextmenu/contextmenu.component.d.ts +22 -22
  13. package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
  14. package/components/conversion-hint/conversion-hint.component.scss +11 -11
  15. package/components/element/element.component.d.ts +7 -7
  16. package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
  17. package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
  18. package/components/table-select/table-select.component.d.ts +20 -20
  19. package/components/table-select/table-select.component.scss +35 -35
  20. package/components/template/template.component.d.ts +15 -15
  21. package/components/text/text.component.d.ts +14 -14
  22. package/components/toolbar/toolbar.component.d.ts +64 -64
  23. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
  24. package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
  25. package/components/toolbar-group/toolbar-group.component.scss +17 -17
  26. package/components/toolbar-item/toolbar-item.component.d.ts +17 -17
  27. package/constants/auto-format-rules.d.ts +2 -2
  28. package/constants/code.d.ts +9 -9
  29. package/constants/color-select.d.ts +14 -14
  30. package/constants/default.d.ts +9 -9
  31. package/constants/error.d.ts +5 -5
  32. package/constants/index.d.ts +5 -5
  33. package/constants/node-types.d.ts +99 -99
  34. package/constants/selector.d.ts +2 -2
  35. package/constants/toolbar.d.ts +17 -17
  36. package/core/create-plugin.d.ts +2 -2
  37. package/core/create-toolbar.d.ts +5 -5
  38. package/core/index.d.ts +4 -4
  39. package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
  40. package/core/utils/combine-plugins.d.ts +2 -2
  41. package/core/utils/flatten-deep-plugins.d.ts +6 -6
  42. package/core/utils/get-plugin-options.d.ts +2 -2
  43. package/core/utils/get-plugin.d.ts +2 -2
  44. package/core/utils/get-plugins.d.ts +2 -2
  45. package/core/utils/index.d.ts +10 -10
  46. package/core/utils/merge-array.d.ts +1 -1
  47. package/core/utils/merge-deep-plugins.d.ts +2 -2
  48. package/core/utils/merge-options.d.ts +2 -2
  49. package/core/utils/nested-structure-by-key.d.ts +2 -2
  50. package/core/utils/plugins-by-key.d.ts +2 -2
  51. package/core/with-theia.d.ts +4 -4
  52. package/custom-types.d.ts +131 -131
  53. package/editor.component.d.ts +92 -92
  54. package/editor.module.d.ts +100 -98
  55. package/esm2020/components/color-select/color-select.component.mjs +108 -108
  56. package/esm2020/components/column-resize/column-resize-notifier.mjs +31 -31
  57. package/esm2020/components/column-resize/column-resize.directive.mjs +98 -98
  58. package/esm2020/components/column-resize/column-resize.module.mjs +32 -32
  59. package/esm2020/components/column-resize/event-dispatcher.mjs +55 -55
  60. package/esm2020/components/column-resize/overlay-handle.component.mjs +139 -139
  61. package/esm2020/components/column-resize/resize-ref.mjs +25 -25
  62. package/esm2020/components/column-resize/resizing.store.mjs +154 -154
  63. package/esm2020/components/column-resize/selectors.mjs +4 -4
  64. package/esm2020/components/contextmenu/contextmenu.component.mjs +61 -61
  65. package/esm2020/components/conversion-hint/conversion-hint.component.mjs +54 -54
  66. package/esm2020/components/element/element.component.mjs +22 -22
  67. package/esm2020/components/inline-toolbar/inline-toolbar.component.mjs +125 -125
  68. package/esm2020/components/nav-split-line/nav-split-line.component.mjs +36 -36
  69. package/esm2020/components/table-select/table-select.component.mjs +49 -49
  70. package/esm2020/components/template/template.component.mjs +62 -62
  71. package/esm2020/components/text/text.component.mjs +57 -57
  72. package/esm2020/components/toolbar/toolbar.component.mjs +241 -241
  73. package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +128 -128
  74. package/esm2020/components/toolbar-group/toolbar-group.component.mjs +110 -110
  75. package/esm2020/components/toolbar-item/toolbar-item.component.mjs +60 -60
  76. package/esm2020/constants/auto-format-rules.mjs +166 -166
  77. package/esm2020/constants/code.mjs +88 -88
  78. package/esm2020/constants/color-select.mjs +61 -61
  79. package/esm2020/constants/default.mjs +9 -9
  80. package/esm2020/constants/error.mjs +7 -7
  81. package/esm2020/constants/index.mjs +5 -5
  82. package/esm2020/constants/node-types.mjs +132 -132
  83. package/esm2020/constants/selector.mjs +3 -3
  84. package/esm2020/constants/toolbar.mjs +69 -69
  85. package/esm2020/core/create-plugin.mjs +4 -4
  86. package/esm2020/core/create-toolbar.mjs +55 -55
  87. package/esm2020/core/index.mjs +4 -4
  88. package/esm2020/core/toolbar-item/base-toolbar-item.mjs +89 -89
  89. package/esm2020/core/utils/combine-plugins.mjs +9 -9
  90. package/esm2020/core/utils/flatten-deep-plugins.mjs +18 -18
  91. package/esm2020/core/utils/get-plugin-options.mjs +2 -2
  92. package/esm2020/core/utils/get-plugin.mjs +1 -1
  93. package/esm2020/core/utils/get-plugins.mjs +3 -3
  94. package/esm2020/core/utils/index.mjs +10 -10
  95. package/esm2020/core/utils/merge-array.mjs +17 -17
  96. package/esm2020/core/utils/merge-deep-plugins.mjs +13 -13
  97. package/esm2020/core/utils/merge-options.mjs +19 -19
  98. package/esm2020/core/utils/nested-structure-by-key.mjs +10 -10
  99. package/esm2020/core/utils/plugins-by-key.mjs +9 -9
  100. package/esm2020/core/with-theia.mjs +22 -22
  101. package/esm2020/custom-types.mjs +1 -1
  102. package/esm2020/editor.component.mjs +430 -430
  103. package/esm2020/editor.module.mjs +207 -201
  104. package/esm2020/interfaces/auto-format.mjs +1 -1
  105. package/esm2020/interfaces/editor.mjs +24 -24
  106. package/esm2020/interfaces/element.mjs +1 -1
  107. package/esm2020/interfaces/image.mjs +2 -2
  108. package/esm2020/interfaces/index.mjs +8 -8
  109. package/esm2020/interfaces/plugins/index.mjs +4 -4
  110. package/esm2020/interfaces/plugins/no-infer.mjs +1 -1
  111. package/esm2020/interfaces/plugins/plugin-key.mjs +39 -39
  112. package/esm2020/interfaces/plugins/plugins.mjs +1 -1
  113. package/esm2020/interfaces/plugins/with-override.mjs +1 -1
  114. package/esm2020/interfaces/reset-block-type-plugin-options.mjs +2 -2
  115. package/esm2020/interfaces/toolbar.mjs +11 -11
  116. package/esm2020/interfaces/upload.mjs +1 -1
  117. package/esm2020/interfaces/utility/index.mjs +3 -3
  118. package/esm2020/interfaces/utility/nested-structure-by-key.mjs +1 -1
  119. package/esm2020/interfaces/utility/override-by-key.mjs +1 -1
  120. package/esm2020/interfaces/utility/types.mjs +1 -1
  121. package/esm2020/interfaces/valid-children-types.mjs +35 -35
  122. package/esm2020/interfaces/view-base.mjs +21 -21
  123. package/esm2020/pipes.mjs +42 -42
  124. package/esm2020/plugins/align/align.editor.mjs +46 -46
  125. package/esm2020/plugins/align/align.plugin.mjs +63 -63
  126. package/esm2020/plugins/autoformat/autoformat.plugin.mjs +108 -108
  127. package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +14 -14
  128. package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +77 -77
  129. package/esm2020/plugins/blockquote/blockquote.component.mjs +21 -21
  130. package/esm2020/plugins/blockquote/blockquote.editor.mjs +19 -19
  131. package/esm2020/plugins/blockquote/blockquote.plugin.mjs +70 -70
  132. package/esm2020/plugins/code/code.component.mjs +240 -240
  133. package/esm2020/plugins/code/code.editor.mjs +47 -47
  134. package/esm2020/plugins/code/code.plugin.mjs +41 -41
  135. package/esm2020/plugins/color/color.editor.mjs +43 -43
  136. package/esm2020/plugins/color/color.plugin.mjs +27 -27
  137. package/esm2020/plugins/color/toolbar-item.component.mjs +78 -78
  138. package/esm2020/plugins/common/auto-insert-data..mjs +76 -76
  139. package/esm2020/plugins/common/block-card.plugin.mjs +286 -286
  140. package/esm2020/plugins/common/get-fragment.plugin.mjs +23 -23
  141. package/esm2020/plugins/common/history.plugin.mjs +30 -30
  142. package/esm2020/plugins/common/move-selection.plugin.mjs +89 -89
  143. package/esm2020/plugins/common/remove-empty.plugin.mjs +59 -59
  144. package/esm2020/plugins/common/remove-void.plugin.mjs +56 -56
  145. package/esm2020/plugins/common/reset-type.plugin.mjs +34 -34
  146. package/esm2020/plugins/common/transforms.plugin.mjs +17 -17
  147. package/esm2020/plugins/deserializers/deserialize-html.plugin.mjs +38 -38
  148. package/esm2020/plugins/deserializers/deserialize-md.plugin.mjs +121 -121
  149. package/esm2020/plugins/font-size/font-size.editor.mjs +97 -97
  150. package/esm2020/plugins/heading/heading.editor.mjs +53 -53
  151. package/esm2020/plugins/heading/heading.plugin.mjs +84 -84
  152. package/esm2020/plugins/hr/hr.component.mjs +40 -40
  153. package/esm2020/plugins/hr/hr.editor.mjs +7 -7
  154. package/esm2020/plugins/hr/hr.plugin.mjs +41 -41
  155. package/esm2020/plugins/image/image.component.mjs +385 -365
  156. package/esm2020/plugins/image/image.editor.mjs +57 -57
  157. package/esm2020/plugins/image/image.plugin.mjs +56 -56
  158. package/esm2020/plugins/indent/indent.editor.mjs +70 -70
  159. package/esm2020/plugins/indent/indent.plugin.mjs +57 -57
  160. package/esm2020/plugins/indent/on-keydown-indent.mjs +53 -53
  161. package/esm2020/plugins/index.mjs +70 -70
  162. package/esm2020/plugins/inline-code/inline-code.component.mjs +21 -21
  163. package/esm2020/plugins/inline-code/inline-code.editor.mjs +47 -47
  164. package/esm2020/plugins/inline-code/inline-code.plugin.mjs +65 -65
  165. package/esm2020/plugins/link/edit/link-edit.component.mjs +105 -105
  166. package/esm2020/plugins/link/hover/link-hover.component.mjs +36 -36
  167. package/esm2020/plugins/link/link.component.mjs +162 -162
  168. package/esm2020/plugins/link/link.editor.mjs +66 -66
  169. package/esm2020/plugins/link/link.plugin.mjs +58 -58
  170. package/esm2020/plugins/link/link.types.mjs +12 -12
  171. package/esm2020/plugins/list/components/bulleted-list.component.mjs +32 -32
  172. package/esm2020/plugins/list/components/list-item.component.mjs +92 -92
  173. package/esm2020/plugins/list/components/numbered-list.component.mjs +38 -38
  174. package/esm2020/plugins/list/list.editor.mjs +125 -125
  175. package/esm2020/plugins/list/list.plugin.mjs +285 -285
  176. package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +39 -39
  177. package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +18 -18
  178. package/esm2020/plugins/list/normalizers/normalize-no.mjs +42 -42
  179. package/esm2020/plugins/list/on-key-down-list.mjs +32 -32
  180. package/esm2020/plugins/list/queries/get-list-item-entry.mjs +27 -27
  181. package/esm2020/plugins/list/queries/get-list-item-sublist.mjs +12 -12
  182. package/esm2020/plugins/list/queries/get-list-types.mjs +5 -5
  183. package/esm2020/plugins/list/queries/get-start-list-item.mjs +26 -26
  184. package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +27 -27
  185. package/esm2020/plugins/list/queries/is-in-list.mjs +5 -5
  186. package/esm2020/plugins/list/queries/is-list-nested.mjs +10 -10
  187. package/esm2020/plugins/list/queries/is-list.mjs +5 -5
  188. package/esm2020/plugins/list/queries/is-node-type-list.mjs +4 -4
  189. package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +12 -12
  190. package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +16 -16
  191. package/esm2020/plugins/list/queries/is-single-list-item.mjs +9 -9
  192. package/esm2020/plugins/list/transforms/insert-list-data.mjs +71 -71
  193. package/esm2020/plugins/list/transforms/insert-list-item.mjs +72 -72
  194. package/esm2020/plugins/list/transforms/move-list-item-down.mjs +41 -41
  195. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +42 -42
  196. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +29 -29
  197. package/esm2020/plugins/list/transforms/move-list-item-up.mjs +77 -77
  198. package/esm2020/plugins/list/transforms/unwrap-list.mjs +9 -9
  199. package/esm2020/plugins/list/types.mjs +2 -2
  200. package/esm2020/plugins/mark/mark.editor.mjs +27 -27
  201. package/esm2020/plugins/mark/mark.plugin.mjs +104 -104
  202. package/esm2020/plugins/node-id/node-id.plugin.mjs +77 -77
  203. package/esm2020/plugins/normalizers/insert-paragraph-nodes.mjs +27 -27
  204. package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +17 -17
  205. package/esm2020/plugins/normalizers/trailing-node.plugin.mjs +32 -32
  206. package/esm2020/plugins/paint-format/paint-format.editor.mjs +122 -122
  207. package/esm2020/plugins/public-api.mjs +15 -15
  208. package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +95 -95
  209. package/esm2020/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.mjs +79 -79
  210. package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +52 -52
  211. package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +73 -73
  212. package/esm2020/plugins/soft-break/soft-break.plugin.mjs +35 -35
  213. package/esm2020/plugins/soft-break/soft-break.types.mjs +1 -1
  214. package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +99 -99
  215. package/esm2020/plugins/table/components/row/row.component.mjs +46 -46
  216. package/esm2020/plugins/table/components/table.component.mjs +460 -460
  217. package/esm2020/plugins/table/components/td/td.component.mjs +696 -696
  218. package/esm2020/plugins/table/components/toolbar/table-options.component.mjs +70 -70
  219. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +158 -158
  220. package/esm2020/plugins/table/table.editor.mjs +182 -182
  221. package/esm2020/plugins/table/table.plugin.mjs +426 -426
  222. package/esm2020/plugins/table/table.service.mjs +102 -102
  223. package/esm2020/plugins/table/table.store.mjs +483 -483
  224. package/esm2020/plugins/table/table.types.mjs +33 -33
  225. package/esm2020/plugins/table/toolbar-item.component.mjs +60 -60
  226. package/esm2020/plugins/table/transforms/clear-cell.mjs +14 -14
  227. package/esm2020/plugins/table/transforms/clear-table-node.mjs +27 -27
  228. package/esm2020/plugins/table/transforms/insert-column.mjs +57 -57
  229. package/esm2020/plugins/table/transforms/insert-row.mjs +42 -42
  230. package/esm2020/plugins/table/transforms/insert-table.mjs +14 -14
  231. package/esm2020/plugins/table/transforms/remove-column.mjs +51 -51
  232. package/esm2020/plugins/table/transforms/remove-row.mjs +50 -50
  233. package/esm2020/plugins/table/transforms/remove-table.mjs +49 -49
  234. package/esm2020/plugins/table/utils/add-columns.mjs +28 -28
  235. package/esm2020/plugins/table/utils/calc-anchor-position.mjs +24 -24
  236. package/esm2020/plugins/table/utils/calc-span.mjs +72 -72
  237. package/esm2020/plugins/table/utils/create-cell.mjs +19 -19
  238. package/esm2020/plugins/table/utils/create-row.mjs +12 -12
  239. package/esm2020/plugins/table/utils/create-table.mjs +13 -13
  240. package/esm2020/plugins/table/utils/get-base-height.mjs +22 -22
  241. package/esm2020/plugins/table/utils/get-select-cell-node.mjs +19 -19
  242. package/esm2020/plugins/table/utils/index.mjs +8 -8
  243. package/esm2020/plugins/table/utils/is-range-in-table.mjs +16 -16
  244. package/esm2020/plugins/table/utils/is-selection-in-table.mjs +11 -11
  245. package/esm2020/plugins/table/utils/is-virtual-key.mjs +12 -12
  246. package/esm2020/plugins/table/utils/merge-cell.mjs +90 -90
  247. package/esm2020/plugins/table/utils/next-path.mjs +5 -5
  248. package/esm2020/plugins/table/utils/normalize-table.mjs +30 -30
  249. package/esm2020/plugins/table/utils/remove-columns.mjs +23 -23
  250. package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +15 -15
  251. package/esm2020/plugins/table/utils/split-cell.mjs +31 -31
  252. package/esm2020/plugins/table/utils/table-position.mjs +242 -242
  253. package/esm2020/plugins/todo-item/todo-item.component.mjs +53 -53
  254. package/esm2020/plugins/todo-item/todo-item.editor.mjs +31 -31
  255. package/esm2020/plugins/todo-item/todo-item.plugin.mjs +78 -78
  256. package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +82 -82
  257. package/esm2020/plugins/vertical-align/vertical-align.editor.mjs +54 -54
  258. package/esm2020/public-api.mjs +23 -23
  259. package/esm2020/queries/anchor-block-entry.mjs +13 -13
  260. package/esm2020/queries/anchor-block.mjs +6 -6
  261. package/esm2020/queries/anchor-inline-entry.mjs +10 -10
  262. package/esm2020/queries/find-descendant.mjs +47 -47
  263. package/esm2020/queries/find-node.mjs +45 -45
  264. package/esm2020/queries/find-path.mjs +28 -28
  265. package/esm2020/queries/get-above-by-type.mjs +13 -13
  266. package/esm2020/queries/get-above.mjs +9 -9
  267. package/esm2020/queries/get-anchor-block-entry.mjs +8 -8
  268. package/esm2020/queries/get-block-above.mjs +10 -10
  269. package/esm2020/queries/get-block-card-above.mjs +10 -10
  270. package/esm2020/queries/get-block-card-cursor.mjs +5 -5
  271. package/esm2020/queries/get-container-blocks.mjs +11 -11
  272. package/esm2020/queries/get-directly-parent.mjs +11 -11
  273. package/esm2020/queries/get-insert-elements-path.mjs +43 -43
  274. package/esm2020/queries/get-last-child-path.mjs +9 -9
  275. package/esm2020/queries/get-last-node.mjs +17 -17
  276. package/esm2020/queries/get-next-sibling-nodes.mjs +17 -17
  277. package/esm2020/queries/get-node.mjs +10 -10
  278. package/esm2020/queries/get-nodes-by-type.mjs +15 -15
  279. package/esm2020/queries/get-nodes.mjs +7 -7
  280. package/esm2020/queries/get-parent.mjs +12 -12
  281. package/esm2020/queries/get-plain-text.mjs +16 -16
  282. package/esm2020/queries/get-plugin-by-toolbar.mjs +12 -12
  283. package/esm2020/queries/get-point-before.mjs +61 -61
  284. package/esm2020/queries/get-point-from-location.mjs +15 -15
  285. package/esm2020/queries/get-previous-path.mjs +9 -9
  286. package/esm2020/queries/get-rang-from-block-start.mjs +16 -16
  287. package/esm2020/queries/get-range-before.mjs +17 -17
  288. package/esm2020/queries/get-selection-marks.mjs +18 -18
  289. package/esm2020/queries/get-selection-nodes-by-type.mjs +29 -29
  290. package/esm2020/queries/get-text.mjs +9 -9
  291. package/esm2020/queries/get-toolbar-disabled.mjs +12 -12
  292. package/esm2020/queries/index.mjs +58 -58
  293. package/esm2020/queries/is-across-blocks.mjs +7 -7
  294. package/esm2020/queries/is-ancestor-empty.mjs +6 -6
  295. package/esm2020/queries/is-ancestor.mjs +3 -3
  296. package/esm2020/queries/is-block-above-empty.mjs +11 -11
  297. package/esm2020/queries/is-block-active.mjs +7 -7
  298. package/esm2020/queries/is-block-card-cursor.mjs +4 -4
  299. package/esm2020/queries/is-block-text-empty-after-selection.mjs +31 -31
  300. package/esm2020/queries/is-collapsed.mjs +7 -7
  301. package/esm2020/queries/is-contain-nested-type.mjs +28 -28
  302. package/esm2020/queries/is-container-type.mjs +2 -2
  303. package/esm2020/queries/is-descendant.mjs +3 -3
  304. package/esm2020/queries/is-empty-content.mjs +14 -14
  305. package/esm2020/queries/is-empty-paragraph-by-path.mjs +7 -7
  306. package/esm2020/queries/is-empty-paragraph.mjs +11 -11
  307. package/esm2020/queries/is-first-child.mjs +5 -5
  308. package/esm2020/queries/is-include-types.mjs +11 -11
  309. package/esm2020/queries/is-node-type-in.mjs +9 -9
  310. package/esm2020/queries/is-node-type.mjs +15 -15
  311. package/esm2020/queries/is-paragraph.mjs +9 -9
  312. package/esm2020/queries/is-point-at-root.mjs +2 -2
  313. package/esm2020/queries/is-range-across-blocks.mjs +22 -22
  314. package/esm2020/queries/is-range-at-root.mjs +3 -3
  315. package/esm2020/queries/is-start.mjs +6 -6
  316. package/esm2020/queries/some-node.mjs +9 -9
  317. package/esm2020/services/color-select.service.mjs +49 -49
  318. package/esm2020/services/context.service.mjs +58 -58
  319. package/esm2020/services/table-contextmenu.service.mjs +189 -189
  320. package/esm2020/services/toolbar.service.mjs +47 -47
  321. package/esm2020/shortcuts/index.mjs +5 -5
  322. package/esm2020/shortcuts/mark.mjs +24 -24
  323. package/esm2020/transforms/apply-deep-to-nodes.mjs +21 -21
  324. package/esm2020/transforms/clear-marks.mjs +23 -23
  325. package/esm2020/transforms/close-conversion-hint.mjs +8 -8
  326. package/esm2020/transforms/delete-element.mjs +11 -11
  327. package/esm2020/transforms/handle-continual-delete-backward.mjs +17 -17
  328. package/esm2020/transforms/handle-continual-insert-break.mjs +19 -19
  329. package/esm2020/transforms/index.mjs +18 -18
  330. package/esm2020/transforms/insert-elements.mjs +33 -33
  331. package/esm2020/transforms/insert-paragraph.mjs +6 -6
  332. package/esm2020/transforms/merge-deep-to-nodes.mjs +8 -8
  333. package/esm2020/transforms/move-children.mjs +21 -21
  334. package/esm2020/transforms/on-keydown-reset-block-type.mjs +22 -22
  335. package/esm2020/transforms/set-end-selection.mjs +10 -10
  336. package/esm2020/transforms/set-marks.mjs +9 -9
  337. package/esm2020/transforms/set-node.mjs +5 -5
  338. package/esm2020/transforms/split-node.mjs +31 -31
  339. package/esm2020/transforms/un-hang-range.mjs +11 -11
  340. package/esm2020/transforms/un-wrap.mjs +11 -11
  341. package/esm2020/transforms/unwrap-nodes-by-type.mjs +14 -14
  342. package/esm2020/utils/auto-focus.mjs +13 -13
  343. package/esm2020/utils/auto-scroll-view.mjs +24 -24
  344. package/esm2020/utils/cast-array.mjs +7 -7
  345. package/esm2020/utils/common.mjs +2 -2
  346. package/esm2020/utils/create-empty-paragraph.mjs +14 -14
  347. package/esm2020/utils/data-transform.mjs +48 -48
  348. package/esm2020/utils/dom.mjs +46 -46
  349. package/esm2020/utils/editor-uuid.mjs +8 -8
  350. package/esm2020/utils/fragment.mjs +65 -65
  351. package/esm2020/utils/get-all-nodes-by-type.mjs +5 -0
  352. package/esm2020/utils/get-editable-element-height.mjs +6 -6
  353. package/esm2020/utils/get-toolbar-class.mjs +6 -6
  354. package/esm2020/utils/id-creator.mjs +11 -11
  355. package/esm2020/utils/index.mjs +13 -13
  356. package/esm2020/utils/is-clean-empty-paragraph.mjs +36 -36
  357. package/esm2020/utils/is-inline.mjs +8 -8
  358. package/esm2020/utils/lodash.mjs +2 -2
  359. package/esm2020/utils/match.mjs +32 -32
  360. package/esm2020/utils/merge-element-options.mjs +19 -19
  361. package/esm2020/utils/weak-maps.mjs +3 -3
  362. package/esm2020/worktile-theia.mjs +4 -4
  363. package/fesm2015/worktile-theia.mjs +13131 -13097
  364. package/fesm2015/worktile-theia.mjs.map +1 -1
  365. package/fesm2020/worktile-theia.mjs +13150 -13120
  366. package/fesm2020/worktile-theia.mjs.map +1 -1
  367. package/interfaces/auto-format.d.ts +64 -64
  368. package/interfaces/editor.d.ts +146 -146
  369. package/interfaces/element.d.ts +9 -9
  370. package/interfaces/image.d.ts +25 -25
  371. package/interfaces/index.d.ts +8 -8
  372. package/interfaces/plugins/index.d.ts +4 -4
  373. package/interfaces/plugins/no-infer.d.ts +1 -1
  374. package/interfaces/plugins/plugin-key.d.ts +48 -48
  375. package/interfaces/plugins/plugins.d.ts +45 -45
  376. package/interfaces/plugins/with-override.d.ts +7 -7
  377. package/interfaces/reset-block-type-plugin-options.d.ts +23 -23
  378. package/interfaces/toolbar.d.ts +64 -64
  379. package/interfaces/upload.d.ts +11 -11
  380. package/interfaces/utility/index.d.ts +3 -3
  381. package/interfaces/utility/nested-structure-by-key.d.ts +3 -3
  382. package/interfaces/utility/override-by-key.d.ts +3 -3
  383. package/interfaces/utility/types.d.ts +1 -1
  384. package/interfaces/valid-children-types.d.ts +9 -9
  385. package/interfaces/view-base.d.ts +9 -9
  386. package/package.json +5 -4
  387. package/pipes.d.ts +16 -16
  388. package/plugins/align/align.editor.d.ts +7 -7
  389. package/plugins/align/align.plugin.d.ts +2 -2
  390. package/plugins/autoformat/autoformat.plugin.d.ts +6 -6
  391. package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -5
  392. package/plugins/autoformat/transforms/auto-format-inline.d.ts +9 -9
  393. package/plugins/blockquote/blockquote.component.d.ts +11 -11
  394. package/plugins/blockquote/blockquote.editor.d.ts +4 -4
  395. package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
  396. package/plugins/code/code.component.d.ts +65 -65
  397. package/plugins/code/code.editor.d.ts +8 -8
  398. package/plugins/code/code.plugin.d.ts +2 -2
  399. package/plugins/color/color.editor.d.ts +8 -8
  400. package/plugins/color/color.plugin.d.ts +1 -1
  401. package/plugins/color/toolbar-item.component.d.ts +16 -16
  402. package/plugins/common/auto-insert-data..d.ts +2 -2
  403. package/plugins/common/block-card.plugin.d.ts +2 -2
  404. package/plugins/common/get-fragment.plugin.d.ts +6 -6
  405. package/plugins/common/history.plugin.d.ts +9 -9
  406. package/plugins/common/move-selection.plugin.d.ts +2 -2
  407. package/plugins/common/remove-empty.plugin.d.ts +2 -2
  408. package/plugins/common/remove-void.plugin.d.ts +2 -2
  409. package/plugins/common/reset-type.plugin.d.ts +2 -2
  410. package/plugins/common/transforms.plugin.d.ts +8 -8
  411. package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
  412. package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
  413. package/plugins/font-size/font-size.editor.d.ts +10 -10
  414. package/plugins/heading/heading.editor.d.ts +9 -9
  415. package/plugins/heading/heading.plugin.d.ts +7 -7
  416. package/plugins/hr/hr.component.d.ts +12 -12
  417. package/plugins/hr/hr.editor.d.ts +4 -4
  418. package/plugins/hr/hr.plugin.d.ts +2 -2
  419. package/plugins/image/image.component.d.ts +77 -74
  420. package/plugins/image/image.editor.d.ts +12 -12
  421. package/plugins/image/image.plugin.d.ts +7 -7
  422. package/plugins/indent/indent.editor.d.ts +10 -10
  423. package/plugins/indent/indent.plugin.d.ts +8 -8
  424. package/plugins/indent/on-keydown-indent.d.ts +3 -3
  425. package/plugins/index.d.ts +1 -1
  426. package/plugins/inline-code/inline-code.component.d.ts +9 -9
  427. package/plugins/inline-code/inline-code.editor.d.ts +7 -7
  428. package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
  429. package/plugins/link/edit/link-edit.component.d.ts +36 -36
  430. package/plugins/link/hover/link-hover.component.d.ts +15 -15
  431. package/plugins/link/link.component.d.ts +39 -39
  432. package/plugins/link/link.editor.d.ts +7 -7
  433. package/plugins/link/link.plugin.d.ts +2 -2
  434. package/plugins/link/link.types.d.ts +9 -9
  435. package/plugins/list/components/bulleted-list.component.d.ts +15 -15
  436. package/plugins/list/components/list-item.component.d.ts +20 -20
  437. package/plugins/list/components/numbered-list.component.d.ts +16 -16
  438. package/plugins/list/list.editor.d.ts +12 -12
  439. package/plugins/list/list.plugin.d.ts +3 -3
  440. package/plugins/list/normalizers/get-list-normalizer.d.ts +6 -6
  441. package/plugins/list/normalizers/normalize-list-item.d.ts +5 -5
  442. package/plugins/list/normalizers/normalize-no.d.ts +2 -2
  443. package/plugins/list/on-key-down-list.d.ts +2 -2
  444. package/plugins/list/queries/get-list-item-entry.d.ts +10 -10
  445. package/plugins/list/queries/get-list-item-sublist.d.ts +6 -6
  446. package/plugins/list/queries/get-list-types.d.ts +2 -2
  447. package/plugins/list/queries/get-start-list-item.d.ts +8 -8
  448. package/plugins/list/queries/has-list-in-list-item.d.ts +15 -15
  449. package/plugins/list/queries/is-in-list.d.ts +2 -2
  450. package/plugins/list/queries/is-list-nested.d.ts +5 -5
  451. package/plugins/list/queries/is-list.d.ts +2 -2
  452. package/plugins/list/queries/is-node-type-list.d.ts +2 -2
  453. package/plugins/list/queries/is-selection-at-list-item-start.d.ts +5 -5
  454. package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -5
  455. package/plugins/list/queries/is-single-list-item.d.ts +5 -5
  456. package/plugins/list/transforms/insert-list-data.d.ts +12 -12
  457. package/plugins/list/transforms/insert-list-item.d.ts +5 -5
  458. package/plugins/list/transforms/move-list-item-down.d.ts +6 -6
  459. package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +20 -20
  460. package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +19 -19
  461. package/plugins/list/transforms/move-list-item-up.d.ts +10 -10
  462. package/plugins/list/transforms/unwrap-list.d.ts +2 -2
  463. package/plugins/list/types.d.ts +7 -7
  464. package/plugins/mark/mark.editor.d.ts +8 -8
  465. package/plugins/mark/mark.plugin.d.ts +3 -3
  466. package/plugins/node-id/node-id.plugin.d.ts +8 -8
  467. package/plugins/normalizers/insert-paragraph-nodes.d.ts +7 -7
  468. package/plugins/normalizers/remove-empty-nodes.d.ts +7 -7
  469. package/plugins/normalizers/trailing-node.plugin.d.ts +9 -9
  470. package/plugins/paint-format/paint-format.editor.d.ts +8 -8
  471. package/plugins/public-api.d.ts +15 -15
  472. package/plugins/quick-insert/components/quick-insert.component.d.ts +28 -28
  473. package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +28 -28
  474. package/plugins/quick-insert/quick-insert.editor.d.ts +7 -7
  475. package/plugins/quick-insert/quick-insert.plugin.d.ts +10 -10
  476. package/plugins/soft-break/soft-break.plugin.d.ts +5 -5
  477. package/plugins/soft-break/soft-break.types.d.ts +8 -8
  478. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +24 -24
  479. package/plugins/table/components/row/row.component.d.ts +14 -14
  480. package/plugins/table/components/table.component.d.ts +79 -79
  481. package/plugins/table/components/td/td.component.d.ts +95 -95
  482. package/plugins/table/components/toolbar/table-options.component.d.ts +20 -20
  483. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +38 -38
  484. package/plugins/table/table.editor.d.ts +25 -25
  485. package/plugins/table/table.plugin.d.ts +3 -3
  486. package/plugins/table/table.service.d.ts +30 -30
  487. package/plugins/table/table.store.d.ts +71 -71
  488. package/plugins/table/table.types.d.ts +67 -67
  489. package/plugins/table/toolbar-item.component.d.ts +17 -17
  490. package/plugins/table/transforms/clear-cell.d.ts +6 -6
  491. package/plugins/table/transforms/clear-table-node.d.ts +6 -6
  492. package/plugins/table/transforms/insert-column.d.ts +12 -12
  493. package/plugins/table/transforms/insert-row.d.ts +6 -6
  494. package/plugins/table/transforms/insert-table.d.ts +6 -6
  495. package/plugins/table/transforms/remove-column.d.ts +3 -3
  496. package/plugins/table/transforms/remove-row.d.ts +3 -3
  497. package/plugins/table/transforms/remove-table.d.ts +3 -3
  498. package/plugins/table/utils/add-columns.d.ts +2 -2
  499. package/plugins/table/utils/calc-anchor-position.d.ts +6 -6
  500. package/plugins/table/utils/calc-span.d.ts +11 -11
  501. package/plugins/table/utils/create-cell.d.ts +16 -16
  502. package/plugins/table/utils/create-row.d.ts +7 -7
  503. package/plugins/table/utils/create-table.d.ts +7 -7
  504. package/plugins/table/utils/get-base-height.d.ts +9 -9
  505. package/plugins/table/utils/get-select-cell-node.d.ts +7 -7
  506. package/plugins/table/utils/index.d.ts +7 -7
  507. package/plugins/table/utils/is-range-in-table.d.ts +6 -6
  508. package/plugins/table/utils/is-selection-in-table.d.ts +6 -6
  509. package/plugins/table/utils/is-virtual-key.d.ts +1 -1
  510. package/plugins/table/utils/merge-cell.d.ts +21 -21
  511. package/plugins/table/utils/next-path.d.ts +2 -2
  512. package/plugins/table/utils/normalize-table.d.ts +2 -2
  513. package/plugins/table/utils/remove-columns.d.ts +2 -2
  514. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +3 -3
  515. package/plugins/table/utils/split-cell.d.ts +4 -4
  516. package/plugins/table/utils/table-position.d.ts +97 -97
  517. package/plugins/todo-item/todo-item.component.d.ts +21 -21
  518. package/plugins/todo-item/todo-item.editor.d.ts +5 -5
  519. package/plugins/todo-item/todo-item.plugin.d.ts +5 -5
  520. package/plugins/vertical-align/toolbar-item.component.d.ts +25 -25
  521. package/plugins/vertical-align/vertical-align.editor.d.ts +7 -7
  522. package/public-api.d.ts +20 -20
  523. package/queries/anchor-block-entry.d.ts +2 -2
  524. package/queries/anchor-block.d.ts +2 -2
  525. package/queries/anchor-inline-entry.d.ts +2 -2
  526. package/queries/find-descendant.d.ts +10 -10
  527. package/queries/find-node.d.ts +15 -15
  528. package/queries/find-path.d.ts +6 -6
  529. package/queries/get-above-by-type.d.ts +6 -6
  530. package/queries/get-above.d.ts +6 -6
  531. package/queries/get-anchor-block-entry.d.ts +2 -2
  532. package/queries/get-block-above.d.ts +7 -7
  533. package/queries/get-block-card-above.d.ts +7 -7
  534. package/queries/get-block-card-cursor.d.ts +2 -2
  535. package/queries/get-container-blocks.d.ts +2 -2
  536. package/queries/get-directly-parent.d.ts +2 -2
  537. package/queries/get-insert-elements-path.d.ts +7 -7
  538. package/queries/get-last-child-path.d.ts +6 -6
  539. package/queries/get-last-node.d.ts +2 -2
  540. package/queries/get-next-sibling-nodes.d.ts +7 -7
  541. package/queries/get-node.d.ts +2 -2
  542. package/queries/get-nodes-by-type.d.ts +6 -6
  543. package/queries/get-nodes.d.ts +4 -4
  544. package/queries/get-parent.d.ts +7 -7
  545. package/queries/get-plain-text.d.ts +6 -6
  546. package/queries/get-plugin-by-toolbar.d.ts +3 -3
  547. package/queries/get-point-before.d.ts +38 -38
  548. package/queries/get-point-from-location.d.ts +5 -5
  549. package/queries/get-previous-path.d.ts +2 -2
  550. package/queries/get-rang-from-block-start.d.ts +9 -9
  551. package/queries/get-range-before.d.ts +7 -7
  552. package/queries/get-selection-marks.d.ts +12 -12
  553. package/queries/get-selection-nodes-by-type.d.ts +3 -3
  554. package/queries/get-text.d.ts +6 -6
  555. package/queries/get-toolbar-disabled.d.ts +4 -4
  556. package/queries/index.d.ts +58 -58
  557. package/queries/is-across-blocks.d.ts +2 -2
  558. package/queries/is-ancestor-empty.d.ts +5 -5
  559. package/queries/is-ancestor.d.ts +2 -2
  560. package/queries/is-block-above-empty.d.ts +5 -5
  561. package/queries/is-block-active.d.ts +3 -3
  562. package/queries/is-block-card-cursor.d.ts +2 -2
  563. package/queries/is-block-text-empty-after-selection.d.ts +7 -7
  564. package/queries/is-collapsed.d.ts +6 -6
  565. package/queries/is-contain-nested-type.d.ts +2 -2
  566. package/queries/is-container-type.d.ts +2 -2
  567. package/queries/is-descendant.d.ts +2 -2
  568. package/queries/is-empty-content.d.ts +2 -2
  569. package/queries/is-empty-paragraph-by-path.d.ts +2 -2
  570. package/queries/is-empty-paragraph.d.ts +2 -2
  571. package/queries/is-first-child.d.ts +5 -5
  572. package/queries/is-include-types.d.ts +3 -3
  573. package/queries/is-node-type-in.d.ts +6 -6
  574. package/queries/is-node-type.d.ts +6 -6
  575. package/queries/is-paragraph.d.ts +2 -2
  576. package/queries/is-point-at-root.d.ts +2 -2
  577. package/queries/is-range-across-blocks.d.ts +8 -8
  578. package/queries/is-range-at-root.d.ts +2 -2
  579. package/queries/is-start.d.ts +5 -5
  580. package/queries/some-node.d.ts +7 -7
  581. package/services/color-select.service.d.ts +20 -20
  582. package/services/context.service.d.ts +49 -49
  583. package/services/table-contextmenu.service.d.ts +25 -25
  584. package/services/toolbar.service.d.ts +9 -9
  585. package/shortcuts/index.d.ts +2 -2
  586. package/shortcuts/mark.d.ts +2 -2
  587. package/transforms/apply-deep-to-nodes.d.ts +12 -12
  588. package/transforms/clear-marks.d.ts +2 -2
  589. package/transforms/close-conversion-hint.d.ts +2 -2
  590. package/transforms/delete-element.d.ts +2 -2
  591. package/transforms/handle-continual-delete-backward.d.ts +3 -3
  592. package/transforms/handle-continual-insert-break.d.ts +3 -3
  593. package/transforms/index.d.ts +18 -18
  594. package/transforms/insert-elements.d.ts +2 -2
  595. package/transforms/insert-paragraph.d.ts +2 -2
  596. package/transforms/merge-deep-to-nodes.d.ts +5 -5
  597. package/transforms/move-children.d.ts +24 -24
  598. package/transforms/on-keydown-reset-block-type.d.ts +3 -3
  599. package/transforms/set-end-selection.d.ts +2 -2
  600. package/transforms/set-marks.d.ts +12 -12
  601. package/transforms/set-node.d.ts +2 -2
  602. package/transforms/split-node.d.ts +3 -3
  603. package/transforms/un-hang-range.d.ts +10 -10
  604. package/transforms/un-wrap.d.ts +3 -3
  605. package/transforms/unwrap-nodes-by-type.d.ts +6 -6
  606. package/utils/auto-focus.d.ts +2 -2
  607. package/utils/auto-scroll-view.d.ts +6 -6
  608. package/utils/cast-array.d.ts +1 -1
  609. package/utils/common.d.ts +2 -2
  610. package/utils/create-empty-paragraph.d.ts +2 -2
  611. package/utils/data-transform.d.ts +6 -6
  612. package/utils/dom.d.ts +10 -10
  613. package/utils/editor-uuid.d.ts +3 -3
  614. package/utils/fragment.d.ts +10 -10
  615. package/utils/get-all-nodes-by-type.d.ts +3 -0
  616. package/utils/get-editable-element-height.d.ts +2 -2
  617. package/utils/get-toolbar-class.d.ts +2 -2
  618. package/utils/id-creator.d.ts +1 -1
  619. package/utils/index.d.ts +13 -13
  620. package/utils/is-clean-empty-paragraph.d.ts +9 -9
  621. package/utils/is-inline.d.ts +2 -2
  622. package/utils/lodash.d.ts +2 -2
  623. package/utils/match.d.ts +18 -18
  624. package/utils/merge-element-options.d.ts +2 -2
  625. package/utils/weak-maps.d.ts +5 -5
  626. package/worktile-theia.d.ts +5 -5
@@ -1,64 +1,64 @@
1
- import { Editor, Transforms } from 'slate';
2
- import { Alignment, DISABLED_OPERATE_TYPES, DropdownMode, ToolbarActionTypes } from '../../constants';
3
- import { PluginKeys, ToolbarItemType } from '../../interfaces';
4
- import { createPluginFactory } from '../../core';
5
- import { AlignEditor } from './align.editor';
6
- import * as TheQueries from '../../queries';
7
- export const withAlign = (editor) => {
8
- const { deleteBackward } = editor;
9
- editor.deleteBackward = unit => {
10
- const { anchor } = editor.selection;
11
- const node = TheQueries.anchorBlock(editor);
12
- const isVoid = Editor.isVoid(editor, node);
13
- const alignTypes = [Alignment.center, Alignment.right];
14
- const startLine = Editor.start(editor, anchor.path);
15
- const startLineRange = { anchor, focus: startLine };
16
- const beforeText = Editor.string(editor, startLineRange);
17
- if (!isVoid && node && node.align && alignTypes.includes(node.align) && beforeText === '') {
18
- const align = alignTypes.indexOf(node.align) ? Alignment.center : undefined;
19
- return Transforms.setNodes(editor, { align });
20
- }
21
- deleteBackward(unit);
22
- };
23
- return editor;
24
- };
25
- export const createAlignPlugin = createPluginFactory({
26
- key: PluginKeys.align,
27
- withOverrides: withAlign,
28
- toolbarItems: [
29
- {
30
- key: ToolbarActionTypes.alignType,
31
- type: ToolbarItemType.dropdown,
32
- dropdownMode: DropdownMode.icon,
33
- dropdownItemKey: ToolbarActionTypes.alignLeft,
34
- includes: [ToolbarActionTypes.alignLeft, ToolbarActionTypes.alignCenter, ToolbarActionTypes.alignRight],
35
- name: '对齐方式',
36
- disable: editor => AlignEditor.isDisabled(editor)
37
- },
38
- {
39
- key: ToolbarActionTypes.alignLeft,
40
- icon: 'align-left',
41
- name: '左对齐',
42
- execute: editor => AlignEditor.setAlign(editor, Alignment.left),
43
- active: editor => AlignEditor.isActive(editor, Alignment.left)
44
- },
45
- {
46
- key: ToolbarActionTypes.alignCenter,
47
- icon: 'align-center',
48
- name: '居中',
49
- execute: editor => AlignEditor.setAlign(editor, Alignment.center),
50
- active: editor => AlignEditor.isActive(editor, Alignment.center)
51
- },
52
- {
53
- key: ToolbarActionTypes.alignRight,
54
- icon: 'align-right',
55
- name: '右对齐',
56
- execute: editor => AlignEditor.setAlign(editor, Alignment.right),
57
- active: editor => AlignEditor.isActive(editor, Alignment.right)
58
- }
59
- ],
60
- options: {
61
- disabledOperateTypes: [...DISABLED_OPERATE_TYPES]
62
- }
63
- });
1
+ import { Editor, Transforms } from 'slate';
2
+ import { Alignment, DISABLED_OPERATE_TYPES, DropdownMode, ToolbarActionTypes } from '../../constants';
3
+ import { PluginKeys, ToolbarItemType } from '../../interfaces';
4
+ import { createPluginFactory } from '../../core';
5
+ import { AlignEditor } from './align.editor';
6
+ import * as TheQueries from '../../queries';
7
+ export const withAlign = (editor) => {
8
+ const { deleteBackward } = editor;
9
+ editor.deleteBackward = unit => {
10
+ const { anchor } = editor.selection;
11
+ const node = TheQueries.anchorBlock(editor);
12
+ const isVoid = Editor.isVoid(editor, node);
13
+ const alignTypes = [Alignment.center, Alignment.right];
14
+ const startLine = Editor.start(editor, anchor.path);
15
+ const startLineRange = { anchor, focus: startLine };
16
+ const beforeText = Editor.string(editor, startLineRange);
17
+ if (!isVoid && node && node.align && alignTypes.includes(node.align) && beforeText === '') {
18
+ const align = alignTypes.indexOf(node.align) ? Alignment.center : undefined;
19
+ return Transforms.setNodes(editor, { align });
20
+ }
21
+ deleteBackward(unit);
22
+ };
23
+ return editor;
24
+ };
25
+ export const createAlignPlugin = createPluginFactory({
26
+ key: PluginKeys.align,
27
+ withOverrides: withAlign,
28
+ toolbarItems: [
29
+ {
30
+ key: ToolbarActionTypes.alignType,
31
+ type: ToolbarItemType.dropdown,
32
+ dropdownMode: DropdownMode.icon,
33
+ dropdownItemKey: ToolbarActionTypes.alignLeft,
34
+ includes: [ToolbarActionTypes.alignLeft, ToolbarActionTypes.alignCenter, ToolbarActionTypes.alignRight],
35
+ name: '对齐方式',
36
+ disable: editor => AlignEditor.isDisabled(editor)
37
+ },
38
+ {
39
+ key: ToolbarActionTypes.alignLeft,
40
+ icon: 'align-left',
41
+ name: '左对齐',
42
+ execute: editor => AlignEditor.setAlign(editor, Alignment.left),
43
+ active: editor => AlignEditor.isActive(editor, Alignment.left)
44
+ },
45
+ {
46
+ key: ToolbarActionTypes.alignCenter,
47
+ icon: 'align-center',
48
+ name: '居中',
49
+ execute: editor => AlignEditor.setAlign(editor, Alignment.center),
50
+ active: editor => AlignEditor.isActive(editor, Alignment.center)
51
+ },
52
+ {
53
+ key: ToolbarActionTypes.alignRight,
54
+ icon: 'align-right',
55
+ name: '右对齐',
56
+ execute: editor => AlignEditor.setAlign(editor, Alignment.right),
57
+ active: editor => AlignEditor.isActive(editor, Alignment.right)
58
+ }
59
+ ],
60
+ options: {
61
+ disabledOperateTypes: [...DISABLED_OPERATE_TYPES]
62
+ }
63
+ });
64
64
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ24ucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvYWxpZ24vYWxpZ24ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDeEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUVsQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzNCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFlLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFD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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBESVNBQkxFRF9PUEVSQVRFX1RZUEVTLCBEcm9wZG93bk1vZGUsIEVsZW1lbnRLaW5kcywgVG9vbGJhckFjdGlvblR5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsdWdpbktleXMsIFRvb2xiYXJJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBbGlnbkVkaXRvciB9IGZyb20gJy4vYWxpZ24uZWRpdG9yJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQWxpZ24gPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBkZWxldGVCYWNrd2FyZCB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHsgYW5jaG9yIH0gPSBlZGl0b3Iuc2VsZWN0aW9uO1xuICAgICAgICBjb25zdCBub2RlID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpIGFzIFRoZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgY29uc3QgYWxpZ25UeXBlcyA9IFtBbGlnbm1lbnQuY2VudGVyLCBBbGlnbm1lbnQucmlnaHRdO1xuICAgICAgICBjb25zdCBzdGFydExpbmUgPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBhbmNob3IucGF0aCk7XG4gICAgICAgIGNvbnN0IHN0YXJ0TGluZVJhbmdlID0geyBhbmNob3IsIGZvY3VzOiBzdGFydExpbmUgfTtcbiAgICAgICAgY29uc3QgYmVmb3JlVGV4dCA9IEVkaXRvci5zdHJpbmcoZWRpdG9yLCBzdGFydExpbmVSYW5nZSk7XG5cbiAgICAgICAgaWYgKCFpc1ZvaWQgJiYgbm9kZSAmJiBub2RlLmFsaWduICYmIGFsaWduVHlwZXMuaW5jbHVkZXMobm9kZS5hbGlnbikgJiYgYmVmb3JlVGV4dCA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWduID0gYWxpZ25UeXBlcy5pbmRleE9mKG5vZGUuYWxpZ24pID8gQWxpZ25tZW50LmNlbnRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyBhbGlnbiB9KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBbGlnblBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5hbGlnbixcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoQWxpZ24sXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICAgICAgICAgIHR5cGU6IFRvb2xiYXJJdGVtVHlwZS5kcm9wZG93bixcbiAgICAgICAgICAgIGRyb3Bkb3duTW9kZTogRHJvcGRvd25Nb2RlLmljb24sXG4gICAgICAgICAgICBkcm9wZG93bkl0ZW1LZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy5hbGlnbkxlZnQsXG4gICAgICAgICAgICBpbmNsdWRlczogW1Rvb2xiYXJBY3Rpb25UeXBlcy5hbGlnbkxlZnQsIFRvb2xiYXJBY3Rpb25UeXBlcy5hbGlnbkNlbnRlciwgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduUmlnaHRdLFxuICAgICAgICAgICAgbmFtZTogJ+Wvuem9kOaWueW8jycsXG4gICAgICAgICAgICBkaXNhYmxlOiBlZGl0b3IgPT4gQWxpZ25FZGl0b3IuaXNEaXNhYmxlZChlZGl0b3IpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLmFsaWduTGVmdCxcbiAgICAgICAgICAgIGljb246ICdhbGlnbi1sZWZ0JyxcbiAgICAgICAgICAgIG5hbWU6ICflt6blr7npvZAnLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEFsaWduRWRpdG9yLnNldEFsaWduKGVkaXRvciwgQWxpZ25tZW50LmxlZnQpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gQWxpZ25FZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBBbGlnbm1lbnQubGVmdClcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUb29sYmFyQWN0aW9uVHlwZXMuYWxpZ25DZW50ZXIsXG4gICAgICAgICAgICBpY29uOiAnYWxpZ24tY2VudGVyJyxcbiAgICAgICAgICAgIG5hbWU6ICflsYXkuK0nLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEFsaWduRWRpdG9yLnNldEFsaWduKGVkaXRvciwgQWxpZ25tZW50LmNlbnRlciksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBBbGlnbkVkaXRvci5pc0FjdGl2ZShlZGl0b3IsIEFsaWdubWVudC5jZW50ZXIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLmFsaWduUmlnaHQsXG4gICAgICAgICAgICBpY29uOiAnYWxpZ24tcmlnaHQnLFxuICAgICAgICAgICAgbmFtZTogJ+WPs+Wvuem9kCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gQWxpZ25FZGl0b3Iuc2V0QWxpZ24oZWRpdG9yLCBBbGlnbm1lbnQucmlnaHQpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gQWxpZ25FZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBBbGlnbm1lbnQucmlnaHQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZGlzYWJsZWRPcGVyYXRlVHlwZXM6IFsuLi5ESVNBQkxFRF9PUEVSQVRFX1RZUEVTXVxuICAgIH1cbn0pO1xuIl19
@@ -1,109 +1,109 @@
1
- import { Editor } from 'slate';
2
- import * as TheQueries from '../../queries';
3
- import { castArray } from '../../utils/cast-array';
4
- import { autoFormatBlock } from './transforms/auto-format-block';
5
- import { autoFormatInline } from './transforms/auto-format-inline';
6
- import { defaultAutoFormatRules } from '../../constants/auto-format-rules';
7
- import { createPluginFactory, getPluginOptions } from '../../core';
8
- import { PluginKeys } from '../../interfaces';
9
- const mergAutoFormateRules = (rules) => {
10
- const dataInfo = {};
11
- rules.forEach(item => {
12
- if (!dataInfo[item.type + item.key]) {
13
- dataInfo[item.type + item.key] = {
14
- ...item
15
- };
16
- }
17
- dataInfo[item.type + item.key] = { ...dataInfo[item.type + item.key], ...item };
18
- });
19
- return dataInfo;
20
- };
21
- export const withAutoFormat = (editor) => {
22
- const { insertText } = editor;
23
- editor.insertText = text => {
24
- let autoFormatRules = getPluginOptions(editor, PluginKeys.autoFormat)?.autoFormatRules;
25
- const extraRules = mergAutoFormateRules(autoFormatRules);
26
- autoFormatRules = Object.values(extraRules);
27
- if (!TheQueries.isCollapsed(editor.selection)) {
28
- return insertText(text);
29
- }
30
- for (const { query, ...rule } of autoFormatRules) {
31
- const { trigger = ' ', mode = 'block', type, markup, preFormat, format, match, between, ignoreTrim, insertTrigger, allowSameTypeAbove = false, triggerAtBlockStart = true } = rule;
32
- if (query && !query(editor, rule))
33
- continue;
34
- const triggers = castArray(trigger);
35
- // Check trigger
36
- if (!triggers.includes(text))
37
- continue;
38
- const valid = () => insertTrigger && insertText(text);
39
- if (mode === 'block') {
40
- let markups = castArray(markup);
41
- let markupRange;
42
- if (triggerAtBlockStart) {
43
- markupRange = TheQueries.getRangeFromBlockStart(editor);
44
- // Don't autoformat if there is void nodes.
45
- const hasVoidNode = TheQueries.someNode(editor, {
46
- at: markupRange,
47
- match: n => Editor.isVoid(editor, n)
48
- });
49
- if (hasVoidNode)
50
- continue;
51
- const textFromBlockStart = TheQueries.getText(editor, markupRange);
52
- if (match) {
53
- markups = match(editor, textFromBlockStart);
54
- }
55
- if (!markups.includes(textFromBlockStart))
56
- continue;
57
- }
58
- else {
59
- markupRange = TheQueries.getRangeBefore(editor, editor.selection, {
60
- matchString: markup,
61
- skipInvalid: true
62
- });
63
- if (!markupRange)
64
- continue;
65
- const blockAbovePath = TheQueries.getBlockAbove(editor)?.[1];
66
- if (!blockAbovePath)
67
- continue;
68
- // If the markup is not at the start, insert break before autoformatting.
69
- if (!Editor.isStart(editor, markupRange.anchor, blockAbovePath)) {
70
- editor.insertBreak();
71
- }
72
- }
73
- if (!allowSameTypeAbove) {
74
- // Don't autoformat if already in a block of the same type.
75
- const isBelowSameBlockType = TheQueries.someNode(editor, { match: { type } });
76
- if (isBelowSameBlockType)
77
- continue;
78
- }
79
- // Start of the block
80
- autoFormatBlock(editor, type, markupRange, {
81
- preFormat,
82
- format
83
- }, markups);
84
- return valid();
85
- }
86
- if (mode === 'inline') {
87
- if (autoFormatInline(editor, {
88
- type,
89
- between,
90
- ignoreTrim,
91
- format,
92
- markup: Array.isArray(markup) ? markup[0] : markup
93
- })) {
94
- return valid();
95
- }
96
- }
97
- }
98
- insertText(text);
99
- };
100
- return editor;
101
- };
102
- export const createAutoFormatPlugin = createPluginFactory({
103
- key: PluginKeys.autoFormat,
104
- withOverrides: withAutoFormat,
105
- options: {
106
- autoFormatRules: defaultAutoFormatRules
107
- }
108
- });
1
+ import { Editor } from 'slate';
2
+ import * as TheQueries from '../../queries';
3
+ import { castArray } from '../../utils/cast-array';
4
+ import { autoFormatBlock } from './transforms/auto-format-block';
5
+ import { autoFormatInline } from './transforms/auto-format-inline';
6
+ import { defaultAutoFormatRules } from '../../constants/auto-format-rules';
7
+ import { createPluginFactory, getPluginOptions } from '../../core';
8
+ import { PluginKeys } from '../../interfaces';
9
+ const mergAutoFormateRules = (rules) => {
10
+ const dataInfo = {};
11
+ rules.forEach(item => {
12
+ if (!dataInfo[item.type + item.key]) {
13
+ dataInfo[item.type + item.key] = {
14
+ ...item
15
+ };
16
+ }
17
+ dataInfo[item.type + item.key] = { ...dataInfo[item.type + item.key], ...item };
18
+ });
19
+ return dataInfo;
20
+ };
21
+ export const withAutoFormat = (editor) => {
22
+ const { insertText } = editor;
23
+ editor.insertText = text => {
24
+ let autoFormatRules = getPluginOptions(editor, PluginKeys.autoFormat)?.autoFormatRules;
25
+ const extraRules = mergAutoFormateRules(autoFormatRules);
26
+ autoFormatRules = Object.values(extraRules);
27
+ if (!TheQueries.isCollapsed(editor.selection)) {
28
+ return insertText(text);
29
+ }
30
+ for (const { query, ...rule } of autoFormatRules) {
31
+ const { trigger = ' ', mode = 'block', type, markup, preFormat, format, match, between, ignoreTrim, insertTrigger, allowSameTypeAbove = false, triggerAtBlockStart = true } = rule;
32
+ if (query && !query(editor, rule))
33
+ continue;
34
+ const triggers = castArray(trigger);
35
+ // Check trigger
36
+ if (!triggers.includes(text))
37
+ continue;
38
+ const valid = () => insertTrigger && insertText(text);
39
+ if (mode === 'block') {
40
+ let markups = castArray(markup);
41
+ let markupRange;
42
+ if (triggerAtBlockStart) {
43
+ markupRange = TheQueries.getRangeFromBlockStart(editor);
44
+ // Don't autoformat if there is void nodes.
45
+ const hasVoidNode = TheQueries.someNode(editor, {
46
+ at: markupRange,
47
+ match: n => Editor.isVoid(editor, n)
48
+ });
49
+ if (hasVoidNode)
50
+ continue;
51
+ const textFromBlockStart = TheQueries.getText(editor, markupRange);
52
+ if (match) {
53
+ markups = match(editor, textFromBlockStart);
54
+ }
55
+ if (!markups.includes(textFromBlockStart))
56
+ continue;
57
+ }
58
+ else {
59
+ markupRange = TheQueries.getRangeBefore(editor, editor.selection, {
60
+ matchString: markup,
61
+ skipInvalid: true
62
+ });
63
+ if (!markupRange)
64
+ continue;
65
+ const blockAbovePath = TheQueries.getBlockAbove(editor)?.[1];
66
+ if (!blockAbovePath)
67
+ continue;
68
+ // If the markup is not at the start, insert break before autoformatting.
69
+ if (!Editor.isStart(editor, markupRange.anchor, blockAbovePath)) {
70
+ editor.insertBreak();
71
+ }
72
+ }
73
+ if (!allowSameTypeAbove) {
74
+ // Don't autoformat if already in a block of the same type.
75
+ const isBelowSameBlockType = TheQueries.someNode(editor, { match: { type } });
76
+ if (isBelowSameBlockType)
77
+ continue;
78
+ }
79
+ // Start of the block
80
+ autoFormatBlock(editor, type, markupRange, {
81
+ preFormat,
82
+ format
83
+ }, markups);
84
+ return valid();
85
+ }
86
+ if (mode === 'inline') {
87
+ if (autoFormatInline(editor, {
88
+ type,
89
+ between,
90
+ ignoreTrim,
91
+ format,
92
+ markup: Array.isArray(markup) ? markup[0] : markup
93
+ })) {
94
+ return valid();
95
+ }
96
+ }
97
+ }
98
+ insertText(text);
99
+ };
100
+ return editor;
101
+ };
102
+ export const createAutoFormatPlugin = createPluginFactory({
103
+ key: PluginKeys.autoFormat,
104
+ withOverrides: withAutoFormat,
105
+ options: {
106
+ autoFormatRules: defaultAutoFormatRules
107
+ }
108
+ });
109
109
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2Zvcm1hdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9hdXRvZm9ybWF0L2F1dG9mb3JtYXQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxPQUFPLENBQUM7QUFDdEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUF1QixFQUFFLEVBQUU7SUFDckQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUc7Z0JBQzdCLEdBQUcsSUFBSTthQUNWLENBQUM7U0FDTDtRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxD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LENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFvQjtJQUN6RSxHQUFHLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDMUIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsT0FBTyxFQUFFO1FBQ0wsZUFBZSxFQUFFLHNCQUFzQjtLQUMxQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY2FzdC1hcnJheSc7XG5pbXBvcnQgeyBBdXRvRm9ybWF0UnVsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXV0by1mb3JtYXQnO1xuaW1wb3J0IHsgYXV0b0Zvcm1hdEJsb2NrIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2F1dG8tZm9ybWF0LWJsb2NrJztcbmltcG9ydCB7IGF1dG9Gb3JtYXRJbmxpbmUgfSBmcm9tICcuL3RyYW5zZm9ybXMvYXV0by1mb3JtYXQtaW5saW5lJztcbmltcG9ydCB7IGRlZmF1bHRBdXRvRm9ybWF0UnVsZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXV0by1mb3JtYXQtcnVsZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBtZXJnQXV0b0Zvcm1hdGVSdWxlcyA9IChydWxlczogQXV0b0Zvcm1hdFJ1bGVbXSkgPT4ge1xuICAgIGNvbnN0IGRhdGFJbmZvID0ge307XG4gICAgcnVsZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKCFkYXRhSW5mb1tpdGVtLnR5cGUgKyBpdGVtLmtleV0pIHtcbiAgICAgICAgICAgIGRhdGFJbmZvW2l0ZW0udHlwZSArIGl0ZW0ua2V5XSA9IHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGRhdGFJbmZvW2l0ZW0udHlwZSArIGl0ZW0ua2V5XSA9IHsgLi4uZGF0YUluZm9baXRlbS50eXBlICsgaXRlbS5rZXldLCAuLi5pdGVtIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFJbmZvO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvRm9ybWF0T3B0aW9ucyB7XG4gICAgYXV0b0Zvcm1hdFJ1bGVzPzogQXV0b0Zvcm1hdFJ1bGVbXTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhBdXRvRm9ybWF0ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0VGV4dCB9ID0gZWRpdG9yO1xuICAgIGVkaXRvci5pbnNlcnRUZXh0ID0gdGV4dCA9PiB7XG4gICAgICAgIGxldCBhdXRvRm9ybWF0UnVsZXMgPSBnZXRQbHVnaW5PcHRpb25zPEF1dG9Gb3JtYXRPcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuYXV0b0Zvcm1hdCk/LmF1dG9Gb3JtYXRSdWxlcztcbiAgICAgICAgY29uc3QgZXh0cmFSdWxlcyA9IG1lcmdBdXRvRm9ybWF0ZVJ1bGVzKGF1dG9Gb3JtYXRSdWxlcyk7XG4gICAgICAgIGF1dG9Gb3JtYXRSdWxlcyA9IE9iamVjdC52YWx1ZXMoZXh0cmFSdWxlcyk7XG4gICAgICAgIGlmICghVGhlUXVlcmllcy5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGluc2VydFRleHQodGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHsgcXVlcnksIC4uLnJ1bGUgfSBvZiBhdXRvRm9ybWF0UnVsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyID0gJyAnLFxuICAgICAgICAgICAgICAgIG1vZGUgPSAnYmxvY2snLFxuICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgbWFya3VwLFxuICAgICAgICAgICAgICAgIHByZUZvcm1hdCxcbiAgICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgYmV0d2VlbixcbiAgICAgICAgICAgICAgICBpZ25vcmVUcmltLFxuICAgICAgICAgICAgICAgIGluc2VydFRyaWdnZXIsXG4gICAgICAgICAgICAgICAgYWxsb3dTYW1lVHlwZUFib3ZlID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgdHJpZ2dlckF0QmxvY2tTdGFydCA9IHRydWVcbiAgICAgICAgICAgIH0gPSBydWxlO1xuXG4gICAgICAgICAgICBpZiAocXVlcnkgJiYgIXF1ZXJ5KGVkaXRvciwgcnVsZSkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCB0cmlnZ2Vyczogc3RyaW5nW10gPSBjYXN0QXJyYXkodHJpZ2dlcik7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIHRyaWdnZXJcbiAgICAgICAgICAgIGlmICghdHJpZ2dlcnMuaW5jbHVkZXModGV4dCkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCB2YWxpZCA9ICgpID0+IGluc2VydFRyaWdnZXIgJiYgaW5zZXJ0VGV4dCh0ZXh0KTtcblxuICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdibG9jaycpIHtcbiAgICAgICAgICAgICAgICBsZXQgbWFya3Vwczogc3RyaW5nW10gPSBjYXN0QXJyYXkobWFya3VwKTtcbiAgICAgICAgICAgICAgICBsZXQgbWFya3VwUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRyaWdnZXJBdEJsb2NrU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwUmFuZ2UgPSBUaGVRdWVyaWVzLmdldFJhbmdlRnJvbUJsb2NrU3RhcnQoZWRpdG9yKSBhcyBSYW5nZTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBhdXRvZm9ybWF0IGlmIHRoZXJlIGlzIHZvaWQgbm9kZXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1ZvaWROb2RlID0gVGhlUXVlcmllcy5zb21lTm9kZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0OiBtYXJrdXBSYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBuKVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1ZvaWROb2RlKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0RnJvbUJsb2NrU3RhcnQgPSBUaGVRdWVyaWVzLmdldFRleHQoZWRpdG9yLCBtYXJrdXBSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwcyA9IG1hdGNoKGVkaXRvciwgdGV4dEZyb21CbG9ja1N0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcmt1cHMuaW5jbHVkZXModGV4dEZyb21CbG9ja1N0YXJ0KSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwUmFuZ2UgPSBUaGVRdWVyaWVzLmdldFJhbmdlQmVmb3JlKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbiBhcyBSYW5nZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdHJpbmc6IG1hcmt1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBJbnZhbGlkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcmt1cFJhbmdlKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja0Fib3ZlUGF0aCA9IFRoZVF1ZXJpZXMuZ2V0QmxvY2tBYm92ZShlZGl0b3IpPy5bMV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2tBYm92ZVBhdGgpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBtYXJrdXAgaXMgbm90IGF0IHRoZSBzdGFydCwgaW5zZXJ0IGJyZWFrIGJlZm9yZSBhdXRvZm9ybWF0dGluZy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFFZGl0b3IuaXNTdGFydChlZGl0b3IsIG1hcmt1cFJhbmdlLmFuY2hvciwgYmxvY2tBYm92ZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IuaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghYWxsb3dTYW1lVHlwZUFib3ZlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGF1dG9mb3JtYXQgaWYgYWxyZWFkeSBpbiBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQmVsb3dTYW1lQmxvY2tUeXBlID0gVGhlUXVlcmllcy5zb21lTm9kZShlZGl0b3IsIHsgbWF0Y2g6IHsgdHlwZSB9IH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWxvd1NhbWVCbG9ja1R5cGUpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IG9mIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgIGF1dG9Gb3JtYXRCbG9jayhcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICBtYXJrdXBSYW5nZSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG1hcmt1cHNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWxpZCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb3JtYXRJbmxpbmUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmV0d2VlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZVRyaW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IEFycmF5LmlzQXJyYXkobWFya3VwKSA/IG1hcmt1cFswXSA6IG1hcmt1cFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnRUZXh0KHRleHQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUF1dG9Gb3JtYXRQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PEF1dG9Gb3JtYXRPcHRpb25zPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLmF1dG9Gb3JtYXQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aEF1dG9Gb3JtYXQsXG4gICAgb3B0aW9uczoge1xuICAgICAgICBhdXRvRm9ybWF0UnVsZXM6IGRlZmF1bHRBdXRvRm9ybWF0UnVsZXNcbiAgICB9XG59KTtcbiJdfQ==
@@ -1,14 +1,14 @@
1
- import { Editor, Transforms } from 'slate';
2
- export const autoFormatBlock = (editor, type, at, { preFormat, format }, markups) => {
3
- Transforms.delete(editor, { at });
4
- if (preFormat) {
5
- preFormat(editor);
6
- }
7
- if (!format) {
8
- Transforms.setNodes(editor, { type }, { match: n => Editor.isBlock(editor, n) });
9
- }
10
- else {
11
- format(editor, markups);
12
- }
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb3JtYXQtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9hdXRvZm9ybWF0L3RyYW5zZm9ybXMvYXV0by1mb3JtYXQtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBWSxVQUFVLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzNCLE1BQWMsRUFDZCxJQUFZLEVBQ1osRUFBWSxFQUNaLEVBQ0ksU0FBUyxFQUNULE1BQU0sRUFJVCxFQUNELE9BQWtCLEVBQ3BCLEVBQUU7SUFDQSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbEMsSUFBSSxTQUFTLEVBQUU7UUFDWCxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckI7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM1RjtTQUFNO1FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQjtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTG9jYXRpb24sIFRyYW5zZm9ybXMsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgYXV0b0Zvcm1hdEJsb2NrID0gKFxyXG4gICAgZWRpdG9yOiBFZGl0b3IsXHJcbiAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICBhdDogTG9jYXRpb24sXHJcbiAgICB7XHJcbiAgICAgICAgcHJlRm9ybWF0LFxyXG4gICAgICAgIGZvcm1hdFxyXG4gICAgfToge1xyXG4gICAgICAgIHByZUZvcm1hdD86IChlZGl0b3I6IEVkaXRvcikgPT4gdm9pZDtcclxuICAgICAgICBmb3JtYXQ/OiAoZWRpdG9yOiBFZGl0b3IsIG1hcmt1cHM/OiBzdHJpbmdbXSkgPT4gdm9pZDtcclxuICAgIH0sXHJcbiAgICBtYXJrdXBzPzogc3RyaW5nW11cclxuKSA9PiB7XHJcbiAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQgfSk7XHJcblxyXG4gICAgaWYgKHByZUZvcm1hdCkge1xyXG4gICAgICAgIHByZUZvcm1hdChlZGl0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghZm9ybWF0KSB7XHJcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgdHlwZSB9IGFzIE5vZGUsIHsgbWF0Y2g6IG4gPT4gRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9ybWF0KGVkaXRvciwgbWFya3Vwcyk7XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
1
+ import { Editor, Transforms } from 'slate';
2
+ export const autoFormatBlock = (editor, type, at, { preFormat, format }, markups) => {
3
+ Transforms.delete(editor, { at });
4
+ if (preFormat) {
5
+ preFormat(editor);
6
+ }
7
+ if (!format) {
8
+ Transforms.setNodes(editor, { type }, { match: n => Editor.isBlock(editor, n) });
9
+ }
10
+ else {
11
+ format(editor, markups);
12
+ }
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb3JtYXQtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9hdXRvZm9ybWF0L3RyYW5zZm9ybXMvYXV0by1mb3JtYXQtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBWSxVQUFVLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzNCLE1BQWMsRUFDZCxJQUFZLEVBQ1osRUFBWSxFQUNaLEVBQ0ksU0FBUyxFQUNULE1BQU0sRUFJVCxFQUNELE9BQWtCLEVBQ3BCLEVBQUU7SUFDQSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbEMsSUFBSSxTQUFTLEVBQUU7UUFDWCxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckI7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM1RjtTQUFNO1FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQjtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTG9jYXRpb24sIFRyYW5zZm9ybXMsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRvRm9ybWF0QmxvY2sgPSAoXG4gICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGF0OiBMb2NhdGlvbixcbiAgICB7XG4gICAgICAgIHByZUZvcm1hdCxcbiAgICAgICAgZm9ybWF0XG4gICAgfToge1xuICAgICAgICBwcmVGb3JtYXQ/OiAoZWRpdG9yOiBFZGl0b3IpID0+IHZvaWQ7XG4gICAgICAgIGZvcm1hdD86IChlZGl0b3I6IEVkaXRvciwgbWFya3Vwcz86IHN0cmluZ1tdKSA9PiB2b2lkO1xuICAgIH0sXG4gICAgbWFya3Vwcz86IHN0cmluZ1tdXG4pID0+IHtcbiAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQgfSk7XG5cbiAgICBpZiAocHJlRm9ybWF0KSB7XG4gICAgICAgIHByZUZvcm1hdChlZGl0b3IpO1xuICAgIH1cblxuICAgIGlmICghZm9ybWF0KSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IHR5cGUgfSBhcyBOb2RlLCB7IG1hdGNoOiBuID0+IEVkaXRvci5pc0Jsb2NrKGVkaXRvciwgbikgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybWF0KGVkaXRvciwgbWFya3Vwcyk7XG4gICAgfVxufTtcbiJdfQ==
@@ -1,78 +1,78 @@
1
- import { Transforms } from 'slate';
2
- import * as TheQueries from '../../../queries';
3
- export const autoFormatInline = (editor, { type, between, markup, ignoreTrim, format }) => {
4
- const selection = editor.selection;
5
- const startMarkup = between ? between[0] : markup;
6
- const endMarkup = between ? between[1] : '';
7
- let endMarkupPointBefore = selection.anchor;
8
- if (endMarkup) {
9
- endMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
10
- matchString: endMarkup
11
- });
12
- if (!endMarkupPointBefore) {
13
- return false;
14
- }
15
- }
16
- const startMarkupPointAfter = TheQueries.getPointBefore(editor, endMarkupPointBefore, {
17
- matchString: startMarkup,
18
- skipInvalid: true,
19
- afterMatch: true
20
- });
21
- if (!startMarkupPointAfter) {
22
- return false;
23
- }
24
- // found
25
- const markupRange = {
26
- anchor: startMarkupPointAfter,
27
- focus: endMarkupPointBefore
28
- };
29
- if (!ignoreTrim) {
30
- const markupText = TheQueries.getText(editor, markupRange);
31
- if (markupText.trim() !== markupText) {
32
- return false;
33
- }
34
- }
35
- // delete end markup
36
- if (endMarkup) {
37
- endMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
38
- matchString: endMarkup
39
- });
40
- Transforms.delete(editor, {
41
- at: {
42
- anchor: endMarkupPointBefore,
43
- focus: selection.anchor
44
- }
45
- });
46
- }
47
- const startMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
48
- matchString: startMarkup,
49
- skipInvalid: true
50
- });
51
- if (format) {
52
- const markupText = TheQueries.getText(editor, markupRange);
53
- format(editor, markupText);
54
- // delete start to end selection
55
- Transforms.delete(editor, {
56
- at: {
57
- anchor: startMarkupPointBefore,
58
- focus: selection.anchor
59
- }
60
- });
61
- }
62
- else {
63
- // add mark to the text between the markups
64
- Transforms.select(editor, markupRange);
65
- editor.addMark(type, true);
66
- Transforms.collapse(editor, { edge: 'end' });
67
- editor.removeMark(type, false);
68
- // delete start markup
69
- Transforms.delete(editor, {
70
- at: {
71
- anchor: startMarkupPointBefore,
72
- focus: startMarkupPointAfter
73
- }
74
- });
75
- }
76
- return true;
77
- };
1
+ import { Transforms } from 'slate';
2
+ import * as TheQueries from '../../../queries';
3
+ export const autoFormatInline = (editor, { type, between, markup, ignoreTrim, format }) => {
4
+ const selection = editor.selection;
5
+ const startMarkup = between ? between[0] : markup;
6
+ const endMarkup = between ? between[1] : '';
7
+ let endMarkupPointBefore = selection.anchor;
8
+ if (endMarkup) {
9
+ endMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
10
+ matchString: endMarkup
11
+ });
12
+ if (!endMarkupPointBefore) {
13
+ return false;
14
+ }
15
+ }
16
+ const startMarkupPointAfter = TheQueries.getPointBefore(editor, endMarkupPointBefore, {
17
+ matchString: startMarkup,
18
+ skipInvalid: true,
19
+ afterMatch: true
20
+ });
21
+ if (!startMarkupPointAfter) {
22
+ return false;
23
+ }
24
+ // found
25
+ const markupRange = {
26
+ anchor: startMarkupPointAfter,
27
+ focus: endMarkupPointBefore
28
+ };
29
+ if (!ignoreTrim) {
30
+ const markupText = TheQueries.getText(editor, markupRange);
31
+ if (markupText.trim() !== markupText) {
32
+ return false;
33
+ }
34
+ }
35
+ // delete end markup
36
+ if (endMarkup) {
37
+ endMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
38
+ matchString: endMarkup
39
+ });
40
+ Transforms.delete(editor, {
41
+ at: {
42
+ anchor: endMarkupPointBefore,
43
+ focus: selection.anchor
44
+ }
45
+ });
46
+ }
47
+ const startMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
48
+ matchString: startMarkup,
49
+ skipInvalid: true
50
+ });
51
+ if (format) {
52
+ const markupText = TheQueries.getText(editor, markupRange);
53
+ format(editor, markupText);
54
+ // delete start to end selection
55
+ Transforms.delete(editor, {
56
+ at: {
57
+ anchor: startMarkupPointBefore,
58
+ focus: selection.anchor
59
+ }
60
+ });
61
+ }
62
+ else {
63
+ // add mark to the text between the markups
64
+ Transforms.select(editor, markupRange);
65
+ editor.addMark(type, true);
66
+ Transforms.collapse(editor, { edge: 'end' });
67
+ editor.removeMark(type, false);
68
+ // delete start markup
69
+ Transforms.delete(editor, {
70
+ at: {
71
+ anchor: startMarkupPointBefore,
72
+ focus: startMarkupPointAfter
73
+ }
74
+ });
75
+ }
76
+ return true;
77
+ };
78
78
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb3JtYXQtaW5saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvYXV0b2Zvcm1hdC90cmFuc2Zvcm1zL2F1dG8tZm9ybWF0LWlubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzVCLE1BQWtCLEVBQ2xCLEVBQ0ksSUFBSSxFQUNKLE9BQU8sRUFDUCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFPVCxFQUNILEVBQUU7SUFDQSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBa0IsQ0FBQztJQUU1QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFNUMsSUFBSSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzVDLElBQUksU0FBUyxFQUFFO1FBQ1gsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO1lBQ2hFLFdBQVcsRUFBRSxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNoQjtLQUNKO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRTtRQUNsRixXQUFXLEVBQUUsV0FBVztRQUN4QixXQUFXLEVBQUUsSUFBSTtRQUNqQixVQUFVLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMscUJBQXFCLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxRQUFRO0lBRVIsTUFBTSxXQUFXLEdBQVU7UUFDdkIsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixLQUFLLEVBQUUsb0JBQW9CO0tBQzlCLENBQUM7SUFFRixJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0tBQ0o7SUFFRCxvQkFBb0I7SUFDcEIsSUFBSSxTQUFTLEVBQUU7UUFDWCxvQkFBb0IsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDaEUsV0FBVyxFQUFFLFNBQVM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdEIsRUFBRSxFQUFFO2dCQUNBLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTthQUMxQjtTQUNKLENBQUMsQ0FBQztLQUNOO0lBQ0QsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDeEUsV0FBVyxFQUFFLFdBQVc7UUFDeEIsV0FBVyxFQUFFLElBQUk7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxNQUFNLEVBQUU7UUFDUixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNCLGdDQUFnQztRQUNoQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN0QixFQUFFLEVBQUU7Z0JBQ0EsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQzFCO1NBQ0osQ0FBQyxDQUFDO0tBQ047U0FBTTtRQUNILDJDQUEyQztRQUMzQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRS9CLHNCQUFzQjtRQUN0QixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN0QixFQUFFLEVBQUU7Z0JBQ0EsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsS0FBSyxFQUFFLHFCQUFxQjthQUMvQjtTQUNKLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBNYXJrRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vcGx1Z2lucy9tYXJrL21hcmsuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IGF1dG9Gb3JtYXRJbmxpbmUgPSAoXG4gICAgZWRpdG9yOiBNYXJrRWRpdG9yLFxuICAgIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgYmV0d2VlbixcbiAgICAgICAgbWFya3VwLFxuICAgICAgICBpZ25vcmVUcmltLFxuICAgICAgICBmb3JtYXRcbiAgICB9OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgYmV0d2Vlbj86IHN0cmluZ1tdO1xuICAgICAgICBtYXJrdXA/OiBzdHJpbmc7XG4gICAgICAgIGlnbm9yZVRyaW0/OiBib29sZWFuO1xuICAgICAgICBmb3JtYXQ/OiAoZWRpdG9yOiBFZGl0b3IsIG1hcmt1cD86IHN0cmluZykgPT4gdm9pZDtcbiAgICB9XG4pID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0aW9uIGFzIFJhbmdlO1xuXG4gICAgY29uc3Qgc3RhcnRNYXJrdXAgPSBiZXR3ZWVuID8gYmV0d2VlblswXSA6IG1hcmt1cDtcbiAgICBjb25zdCBlbmRNYXJrdXAgPSBiZXR3ZWVuID8gYmV0d2VlblsxXSA6ICcnO1xuXG4gICAgbGV0IGVuZE1hcmt1cFBvaW50QmVmb3JlID0gc2VsZWN0aW9uLmFuY2hvcjtcbiAgICBpZiAoZW5kTWFya3VwKSB7XG4gICAgICAgIGVuZE1hcmt1cFBvaW50QmVmb3JlID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbiwge1xuICAgICAgICAgICAgbWF0Y2hTdHJpbmc6IGVuZE1hcmt1cFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFlbmRNYXJrdXBQb2ludEJlZm9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRNYXJrdXBQb2ludEFmdGVyID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIGVuZE1hcmt1cFBvaW50QmVmb3JlLCB7XG4gICAgICAgIG1hdGNoU3RyaW5nOiBzdGFydE1hcmt1cCxcbiAgICAgICAgc2tpcEludmFsaWQ6IHRydWUsXG4gICAgICAgIGFmdGVyTWF0Y2g6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICghc3RhcnRNYXJrdXBQb2ludEFmdGVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmb3VuZFxuXG4gICAgY29uc3QgbWFya3VwUmFuZ2U6IFJhbmdlID0ge1xuICAgICAgICBhbmNob3I6IHN0YXJ0TWFya3VwUG9pbnRBZnRlcixcbiAgICAgICAgZm9jdXM6IGVuZE1hcmt1cFBvaW50QmVmb3JlXG4gICAgfTtcblxuICAgIGlmICghaWdub3JlVHJpbSkge1xuICAgICAgICBjb25zdCBtYXJrdXBUZXh0ID0gVGhlUXVlcmllcy5nZXRUZXh0KGVkaXRvciwgbWFya3VwUmFuZ2UpO1xuICAgICAgICBpZiAobWFya3VwVGV4dC50cmltKCkgIT09IG1hcmt1cFRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRlbGV0ZSBlbmQgbWFya3VwXG4gICAgaWYgKGVuZE1hcmt1cCkge1xuICAgICAgICBlbmRNYXJrdXBQb2ludEJlZm9yZSA9IFRoZVF1ZXJpZXMuZ2V0UG9pbnRCZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24sIHtcbiAgICAgICAgICAgIG1hdGNoU3RyaW5nOiBlbmRNYXJrdXBcbiAgICAgICAgfSk7XG4gICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgYXQ6IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IGVuZE1hcmt1cFBvaW50QmVmb3JlLFxuICAgICAgICAgICAgICAgIGZvY3VzOiBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBzdGFydE1hcmt1cFBvaW50QmVmb3JlID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbiwge1xuICAgICAgICBtYXRjaFN0cmluZzogc3RhcnRNYXJrdXAsXG4gICAgICAgIHNraXBJbnZhbGlkOiB0cnVlXG4gICAgfSk7XG5cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICAgIGNvbnN0IG1hcmt1cFRleHQgPSBUaGVRdWVyaWVzLmdldFRleHQoZWRpdG9yLCBtYXJrdXBSYW5nZSk7XG4gICAgICAgIGZvcm1hdChlZGl0b3IsIG1hcmt1cFRleHQpO1xuXG4gICAgICAgIC8vIGRlbGV0ZSBzdGFydCB0byBlbmQgc2VsZWN0aW9uXG4gICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgYXQ6IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IHN0YXJ0TWFya3VwUG9pbnRCZWZvcmUsXG4gICAgICAgICAgICAgICAgZm9jdXM6IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYWRkIG1hcmsgdG8gdGhlIHRleHQgYmV0d2VlbiB0aGUgbWFya3Vwc1xuICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIG1hcmt1cFJhbmdlKTtcbiAgICAgICAgZWRpdG9yLmFkZE1hcmsodHlwZSwgdHJ1ZSk7XG4gICAgICAgIFRyYW5zZm9ybXMuY29sbGFwc2UoZWRpdG9yLCB7IGVkZ2U6ICdlbmQnIH0pO1xuICAgICAgICBlZGl0b3IucmVtb3ZlTWFyayh0eXBlLCBmYWxzZSk7XG5cbiAgICAgICAgLy8gZGVsZXRlIHN0YXJ0IG1hcmt1cFxuICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHtcbiAgICAgICAgICAgIGF0OiB7XG4gICAgICAgICAgICAgICAgYW5jaG9yOiBzdGFydE1hcmt1cFBvaW50QmVmb3JlLFxuICAgICAgICAgICAgICAgIGZvY3VzOiBzdGFydE1hcmt1cFBvaW50QWZ0ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59O1xuIl19