@worktile/theia 3.0.6 → 3.0.9

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 (625) hide show
  1. package/README.md +11 -11
  2. package/bundles/worktile-theia.umd.js +14360 -14315
  3. package/bundles/worktile-theia.umd.js.map +1 -1
  4. package/components/color-select/color-select.component.d.ts +32 -32
  5. package/components/color-select/color-select.component.scss +107 -107
  6. package/components/column-resize/column-resize-notifier.d.ts +35 -35
  7. package/components/column-resize/column-resize.directive.d.ts +26 -26
  8. package/components/column-resize/column-resize.module.d.ts +14 -14
  9. package/components/column-resize/event-dispatcher.d.ts +31 -31
  10. package/components/column-resize/overlay-handle.component.d.ts +33 -33
  11. package/components/column-resize/resize-ref.d.ts +25 -25
  12. package/components/column-resize/resizing.store.d.ts +28 -28
  13. package/components/column-resize/selectors.d.ts +3 -3
  14. package/components/contextmenu/contextmenu.component.d.ts +22 -22
  15. package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
  16. package/components/conversion-hint/conversion-hint.component.scss +11 -11
  17. package/components/element/element.component.d.ts +7 -7
  18. package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
  19. package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
  20. package/components/table-select/table-select.component.d.ts +20 -20
  21. package/components/table-select/table-select.component.scss +35 -35
  22. package/components/template/template.component.d.ts +15 -15
  23. package/components/text/text.component.d.ts +14 -14
  24. package/components/toolbar/toolbar.component.d.ts +65 -65
  25. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
  26. package/components/toolbar-dropdown/toolbar-dropdown.component.scss +0 -1
  27. package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
  28. package/components/toolbar-group/toolbar-group.component.scss +17 -17
  29. package/components/toolbar-item/toolbar-item.component.d.ts +18 -18
  30. package/constants/auto-format-rules.d.ts +2 -2
  31. package/constants/code.d.ts +9 -9
  32. package/constants/color-select.d.ts +14 -14
  33. package/constants/default.d.ts +9 -9
  34. package/constants/error.d.ts +5 -5
  35. package/constants/index.d.ts +5 -5
  36. package/constants/node-types.d.ts +99 -99
  37. package/constants/selector.d.ts +2 -2
  38. package/constants/toolbar.d.ts +17 -17
  39. package/core/create-plugin.d.ts +2 -2
  40. package/core/create-toolbar.d.ts +5 -5
  41. package/core/index.d.ts +4 -4
  42. package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
  43. package/core/utils/combine-plugins.d.ts +2 -2
  44. package/core/utils/flatten-deep-plugins.d.ts +6 -6
  45. package/core/utils/get-plugin-options.d.ts +2 -2
  46. package/core/utils/get-plugin.d.ts +2 -2
  47. package/core/utils/get-plugins.d.ts +2 -2
  48. package/core/utils/index.d.ts +10 -10
  49. package/core/utils/merge-array.d.ts +1 -1
  50. package/core/utils/merge-deep-plugins.d.ts +2 -2
  51. package/core/utils/merge-options.d.ts +2 -2
  52. package/core/utils/nested-structure-by-key.d.ts +2 -2
  53. package/core/utils/plugins-by-key.d.ts +2 -2
  54. package/core/with-theia.d.ts +4 -4
  55. package/custom-types.d.ts +131 -131
  56. package/editor.component.d.ts +92 -91
  57. package/editor.module.d.ts +98 -98
  58. package/esm2015/components/color-select/color-select.component.js +112 -112
  59. package/esm2015/components/column-resize/column-resize-notifier.js +31 -31
  60. package/esm2015/components/column-resize/column-resize.directive.js +98 -98
  61. package/esm2015/components/column-resize/column-resize.module.js +34 -34
  62. package/esm2015/components/column-resize/event-dispatcher.js +55 -55
  63. package/esm2015/components/column-resize/overlay-handle.component.js +139 -139
  64. package/esm2015/components/column-resize/resize-ref.js +25 -25
  65. package/esm2015/components/column-resize/resizing.store.js +154 -154
  66. package/esm2015/components/column-resize/selectors.js +4 -4
  67. package/esm2015/components/contextmenu/contextmenu.component.js +64 -64
  68. package/esm2015/components/conversion-hint/conversion-hint.component.js +59 -59
  69. package/esm2015/components/element/element.component.js +23 -23
  70. package/esm2015/components/inline-toolbar/inline-toolbar.component.js +126 -126
  71. package/esm2015/components/nav-split-line/nav-split-line.component.js +36 -36
  72. package/esm2015/components/table-select/table-select.component.js +53 -53
  73. package/esm2015/components/template/template.component.js +66 -66
  74. package/esm2015/components/text/text.component.js +57 -57
  75. package/esm2015/components/toolbar/toolbar.component.js +250 -250
  76. package/esm2015/components/toolbar-dropdown/toolbar-dropdown.component.js +133 -132
  77. package/esm2015/components/toolbar-group/toolbar-group.component.js +116 -115
  78. package/esm2015/components/toolbar-item/toolbar-item.component.js +64 -64
  79. package/esm2015/constants/auto-format-rules.js +166 -166
  80. package/esm2015/constants/code.js +88 -88
  81. package/esm2015/constants/color-select.js +61 -61
  82. package/esm2015/constants/default.js +9 -9
  83. package/esm2015/constants/error.js +7 -7
  84. package/esm2015/constants/index.js +5 -5
  85. package/esm2015/constants/node-types.js +132 -132
  86. package/esm2015/constants/selector.js +3 -3
  87. package/esm2015/constants/toolbar.js +69 -69
  88. package/esm2015/core/create-plugin.js +4 -4
  89. package/esm2015/core/create-toolbar.js +56 -56
  90. package/esm2015/core/index.js +4 -4
  91. package/esm2015/core/toolbar-item/base-toolbar-item.js +91 -91
  92. package/esm2015/core/utils/combine-plugins.js +9 -9
  93. package/esm2015/core/utils/flatten-deep-plugins.js +18 -18
  94. package/esm2015/core/utils/get-plugin-options.js +2 -2
  95. package/esm2015/core/utils/get-plugin.js +1 -1
  96. package/esm2015/core/utils/get-plugins.js +4 -4
  97. package/esm2015/core/utils/index.js +10 -10
  98. package/esm2015/core/utils/merge-array.js +17 -17
  99. package/esm2015/core/utils/merge-deep-plugins.js +13 -13
  100. package/esm2015/core/utils/merge-options.js +19 -19
  101. package/esm2015/core/utils/nested-structure-by-key.js +10 -10
  102. package/esm2015/core/utils/plugins-by-key.js +9 -9
  103. package/esm2015/core/with-theia.js +22 -22
  104. package/esm2015/custom-types.js +1 -1
  105. package/esm2015/editor.component.js +440 -427
  106. package/esm2015/editor.module.js +201 -201
  107. package/esm2015/interfaces/auto-format.js +1 -1
  108. package/esm2015/interfaces/editor.js +22 -22
  109. package/esm2015/interfaces/element.js +1 -1
  110. package/esm2015/interfaces/image.js +2 -2
  111. package/esm2015/interfaces/index.js +8 -8
  112. package/esm2015/interfaces/plugins/index.js +4 -4
  113. package/esm2015/interfaces/plugins/no-infer.js +1 -1
  114. package/esm2015/interfaces/plugins/plugin-key.js +39 -39
  115. package/esm2015/interfaces/plugins/plugins.js +1 -1
  116. package/esm2015/interfaces/plugins/with-override.js +1 -1
  117. package/esm2015/interfaces/reset-block-type-plugin-options.js +2 -2
  118. package/esm2015/interfaces/toolbar.js +11 -11
  119. package/esm2015/interfaces/upload.js +2 -2
  120. package/esm2015/interfaces/utility/index.js +3 -3
  121. package/esm2015/interfaces/utility/nested-structure-by-key.js +1 -1
  122. package/esm2015/interfaces/utility/override-by-key.js +1 -1
  123. package/esm2015/interfaces/utility/types.js +1 -1
  124. package/esm2015/interfaces/valid-children-types.js +35 -35
  125. package/esm2015/interfaces/view-base.js +21 -21
  126. package/esm2015/pipes.js +42 -42
  127. package/esm2015/plugins/align/align.editor.js +47 -47
  128. package/esm2015/plugins/align/align.plugin.js +63 -63
  129. package/esm2015/plugins/autoformat/autoformat.plugin.js +109 -109
  130. package/esm2015/plugins/autoformat/transforms/auto-format-block.js +14 -14
  131. package/esm2015/plugins/autoformat/transforms/auto-format-inline.js +77 -77
  132. package/esm2015/plugins/blockquote/blockquote.component.js +21 -21
  133. package/esm2015/plugins/blockquote/blockquote.editor.js +20 -20
  134. package/esm2015/plugins/blockquote/blockquote.plugin.js +70 -70
  135. package/esm2015/plugins/code/code.component.js +244 -244
  136. package/esm2015/plugins/code/code.editor.js +47 -47
  137. package/esm2015/plugins/code/code.plugin.js +41 -41
  138. package/esm2015/plugins/color/color.editor.js +44 -44
  139. package/esm2015/plugins/color/color.plugin.js +27 -27
  140. package/esm2015/plugins/color/toolbar-item.component.js +80 -79
  141. package/esm2015/plugins/common/auto-insert-data..js +77 -77
  142. package/esm2015/plugins/common/block-card.plugin.js +286 -286
  143. package/esm2015/plugins/common/get-fragment.plugin.js +24 -24
  144. package/esm2015/plugins/common/history.plugin.js +30 -30
  145. package/esm2015/plugins/common/move-selection.plugin.js +89 -89
  146. package/esm2015/plugins/common/remove-empty.plugin.js +59 -59
  147. package/esm2015/plugins/common/remove-void.plugin.js +56 -56
  148. package/esm2015/plugins/common/reset-type.plugin.js +34 -34
  149. package/esm2015/plugins/common/transforms.plugin.js +17 -17
  150. package/esm2015/plugins/deserializers/deserialize-html.plugin.js +38 -38
  151. package/esm2015/plugins/deserializers/deserialize-md.plugin.js +122 -121
  152. package/esm2015/plugins/font-size/font-size.editor.js +97 -97
  153. package/esm2015/plugins/heading/heading.editor.js +53 -53
  154. package/esm2015/plugins/heading/heading.plugin.js +84 -84
  155. package/esm2015/plugins/hr/hr.component.js +40 -40
  156. package/esm2015/plugins/hr/hr.editor.js +7 -7
  157. package/esm2015/plugins/hr/hr.plugin.js +41 -41
  158. package/esm2015/plugins/image/image.component.js +370 -365
  159. package/esm2015/plugins/image/image.editor.js +58 -60
  160. package/esm2015/plugins/image/image.plugin.js +57 -57
  161. package/esm2015/plugins/indent/indent.editor.js +72 -72
  162. package/esm2015/plugins/indent/indent.plugin.js +59 -59
  163. package/esm2015/plugins/indent/on-keydown-indent.js +53 -53
  164. package/esm2015/plugins/index.js +70 -70
  165. package/esm2015/plugins/inline-code/inline-code.component.js +21 -21
  166. package/esm2015/plugins/inline-code/inline-code.editor.js +48 -48
  167. package/esm2015/plugins/inline-code/inline-code.plugin.js +65 -65
  168. package/esm2015/plugins/link/edit/link-edit.component.js +108 -108
  169. package/esm2015/plugins/link/hover/link-hover.component.js +39 -39
  170. package/esm2015/plugins/link/link.component.js +163 -161
  171. package/esm2015/plugins/link/link.editor.js +66 -66
  172. package/esm2015/plugins/link/link.plugin.js +58 -58
  173. package/esm2015/plugins/link/link.types.js +12 -12
  174. package/esm2015/plugins/list/components/bulleted-list.component.js +33 -33
  175. package/esm2015/plugins/list/components/list-item.component.js +94 -94
  176. package/esm2015/plugins/list/components/numbered-list.component.js +39 -39
  177. package/esm2015/plugins/list/list.editor.js +125 -125
  178. package/esm2015/plugins/list/list.plugin.js +280 -280
  179. package/esm2015/plugins/list/normalizers/get-list-normalizer.js +39 -39
  180. package/esm2015/plugins/list/normalizers/normalize-list-item.js +19 -19
  181. package/esm2015/plugins/list/normalizers/normalize-no.js +42 -42
  182. package/esm2015/plugins/list/on-key-down-list.js +32 -32
  183. package/esm2015/plugins/list/queries/get-list-item-entry.js +27 -27
  184. package/esm2015/plugins/list/queries/get-list-item-sublist.js +12 -12
  185. package/esm2015/plugins/list/queries/get-list-types.js +5 -5
  186. package/esm2015/plugins/list/queries/get-start-list-item.js +26 -26
  187. package/esm2015/plugins/list/queries/has-list-in-list-item.js +27 -27
  188. package/esm2015/plugins/list/queries/is-in-list.js +5 -5
  189. package/esm2015/plugins/list/queries/is-list-nested.js +10 -10
  190. package/esm2015/plugins/list/queries/is-list.js +5 -5
  191. package/esm2015/plugins/list/queries/is-node-type-list.js +4 -4
  192. package/esm2015/plugins/list/queries/is-selection-at-list-item-start.js +12 -12
  193. package/esm2015/plugins/list/queries/is-selection-in-same-list-item.js +16 -16
  194. package/esm2015/plugins/list/queries/is-single-list-item.js +9 -9
  195. package/esm2015/plugins/list/transforms/insert-list-data.js +71 -71
  196. package/esm2015/plugins/list/transforms/insert-list-item.js +72 -72
  197. package/esm2015/plugins/list/transforms/move-list-item-down.js +41 -41
  198. package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.js +42 -42
  199. package/esm2015/plugins/list/transforms/move-list-item-sublist-items-to-list.js +29 -29
  200. package/esm2015/plugins/list/transforms/move-list-item-up.js +77 -77
  201. package/esm2015/plugins/list/transforms/unwrap-list.js +9 -9
  202. package/esm2015/plugins/list/types.js +2 -2
  203. package/esm2015/plugins/mark/mark.editor.js +28 -28
  204. package/esm2015/plugins/mark/mark.plugin.js +101 -101
  205. package/esm2015/plugins/node-id/node-id.plugin.js +68 -68
  206. package/esm2015/plugins/normalizers/insert-paragraph-nodes.js +28 -28
  207. package/esm2015/plugins/normalizers/remove-empty-nodes.js +17 -17
  208. package/esm2015/plugins/normalizers/trailing-node.plugin.js +33 -33
  209. package/esm2015/plugins/paint-format/paint-format.editor.js +122 -122
  210. package/esm2015/plugins/public-api.js +15 -15
  211. package/esm2015/plugins/quick-insert/components/quick-insert.component.js +101 -101
  212. package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +83 -83
  213. package/esm2015/plugins/quick-insert/quick-insert.editor.js +53 -52
  214. package/esm2015/plugins/quick-insert/quick-insert.plugin.js +74 -74
  215. package/esm2015/plugins/soft-break/soft-break.plugin.js +36 -36
  216. package/esm2015/plugins/soft-break/soft-break.types.js +1 -1
  217. package/esm2015/plugins/table/components/insert-mark/insert-mark.component.js +102 -102
  218. package/esm2015/plugins/table/components/row/row.component.js +46 -46
  219. package/esm2015/plugins/table/components/table.component.js +469 -469
  220. package/esm2015/plugins/table/components/td/td.component.js +698 -698
  221. package/esm2015/plugins/table/components/toolbar/table-options.component.js +67 -67
  222. package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +162 -161
  223. package/esm2015/plugins/table/table.editor.js +182 -182
  224. package/esm2015/plugins/table/table.plugin.js +423 -423
  225. package/esm2015/plugins/table/table.service.js +103 -102
  226. package/esm2015/plugins/table/table.store.js +479 -479
  227. package/esm2015/plugins/table/table.types.js +33 -33
  228. package/esm2015/plugins/table/toolbar-item.component.js +62 -61
  229. package/esm2015/plugins/table/transforms/clear-cell.js +11 -11
  230. package/esm2015/plugins/table/transforms/clear-table-node.js +27 -27
  231. package/esm2015/plugins/table/transforms/insert-column.js +57 -57
  232. package/esm2015/plugins/table/transforms/insert-row.js +42 -42
  233. package/esm2015/plugins/table/transforms/insert-table.js +14 -14
  234. package/esm2015/plugins/table/transforms/remove-column.js +51 -51
  235. package/esm2015/plugins/table/transforms/remove-row.js +50 -50
  236. package/esm2015/plugins/table/transforms/remove-table.js +49 -49
  237. package/esm2015/plugins/table/utils/add-columns.js +28 -28
  238. package/esm2015/plugins/table/utils/calc-anchor-position.js +24 -24
  239. package/esm2015/plugins/table/utils/calc-span.js +72 -72
  240. package/esm2015/plugins/table/utils/create-cell.js +19 -19
  241. package/esm2015/plugins/table/utils/create-row.js +12 -12
  242. package/esm2015/plugins/table/utils/create-table.js +13 -13
  243. package/esm2015/plugins/table/utils/get-base-height.js +22 -22
  244. package/esm2015/plugins/table/utils/get-select-cell-node.js +16 -16
  245. package/esm2015/plugins/table/utils/index.js +8 -8
  246. package/esm2015/plugins/table/utils/is-range-in-table.js +16 -16
  247. package/esm2015/plugins/table/utils/is-selection-in-table.js +11 -11
  248. package/esm2015/plugins/table/utils/is-virtual-key.js +13 -13
  249. package/esm2015/plugins/table/utils/merge-cell.js +90 -90
  250. package/esm2015/plugins/table/utils/next-path.js +5 -5
  251. package/esm2015/plugins/table/utils/normalize-table.js +30 -30
  252. package/esm2015/plugins/table/utils/remove-columns.js +23 -23
  253. package/esm2015/plugins/table/utils/set-menu-cell-invisibility.js +15 -15
  254. package/esm2015/plugins/table/utils/split-cell.js +31 -31
  255. package/esm2015/plugins/table/utils/table-position.js +242 -242
  256. package/esm2015/plugins/todo-item/todo-item.component.js +55 -55
  257. package/esm2015/plugins/todo-item/todo-item.editor.js +31 -31
  258. package/esm2015/plugins/todo-item/todo-item.plugin.js +78 -78
  259. package/esm2015/plugins/vertical-align/toolbar-item.component.js +90 -89
  260. package/esm2015/plugins/vertical-align/vertical-align.editor.js +54 -54
  261. package/esm2015/public-api.js +23 -23
  262. package/esm2015/queries/anchor-block-entry.js +13 -13
  263. package/esm2015/queries/anchor-block.js +6 -6
  264. package/esm2015/queries/anchor-inline-entry.js +10 -10
  265. package/esm2015/queries/find-descendant.js +47 -47
  266. package/esm2015/queries/find-node.js +45 -45
  267. package/esm2015/queries/find-path.js +28 -28
  268. package/esm2015/queries/get-above-by-type.js +10 -10
  269. package/esm2015/queries/get-above.js +9 -9
  270. package/esm2015/queries/get-anchor-block-entry.js +8 -8
  271. package/esm2015/queries/get-block-above.js +7 -7
  272. package/esm2015/queries/get-block-card-above.js +7 -7
  273. package/esm2015/queries/get-block-card-cursor.js +5 -5
  274. package/esm2015/queries/get-container-blocks.js +11 -11
  275. package/esm2015/queries/get-directly-parent.js +11 -11
  276. package/esm2015/queries/get-insert-elements-path.js +43 -43
  277. package/esm2015/queries/get-last-child-path.js +9 -9
  278. package/esm2015/queries/get-last-node.js +17 -17
  279. package/esm2015/queries/get-next-sibling-nodes.js +17 -17
  280. package/esm2015/queries/get-node.js +10 -10
  281. package/esm2015/queries/get-nodes-by-type.js +12 -12
  282. package/esm2015/queries/get-nodes.js +7 -7
  283. package/esm2015/queries/get-parent.js +12 -12
  284. package/esm2015/queries/get-plain-text.js +16 -16
  285. package/esm2015/queries/get-plugin-by-toolbar.js +12 -12
  286. package/esm2015/queries/get-point-before.js +62 -62
  287. package/esm2015/queries/get-point-from-location.js +15 -15
  288. package/esm2015/queries/get-previous-path.js +9 -9
  289. package/esm2015/queries/get-rang-from-block-start.js +16 -16
  290. package/esm2015/queries/get-range-before.js +17 -17
  291. package/esm2015/queries/get-selection-marks.js +19 -19
  292. package/esm2015/queries/get-selection-nodes-by-type.js +29 -29
  293. package/esm2015/queries/get-text.js +9 -9
  294. package/esm2015/queries/get-toolbar-disabled.js +13 -13
  295. package/esm2015/queries/index.js +59 -58
  296. package/esm2015/queries/is-across-blocks.js +7 -7
  297. package/esm2015/queries/is-ancestor-empty.js +6 -6
  298. package/esm2015/queries/is-ancestor.js +3 -3
  299. package/esm2015/queries/is-block-above-empty.js +11 -11
  300. package/esm2015/queries/is-block-active.js +7 -7
  301. package/esm2015/queries/is-block-card-cursor.js +4 -4
  302. package/esm2015/queries/is-block-text-empty-after-selection.js +31 -31
  303. package/esm2015/queries/is-collapsed.js +7 -7
  304. package/esm2015/queries/is-contain-nested-type.js +28 -28
  305. package/esm2015/queries/is-container-type.js +2 -2
  306. package/esm2015/queries/is-descendant.js +3 -3
  307. package/esm2015/queries/is-empty-content.js +15 -0
  308. package/esm2015/queries/is-empty-paragraph-by-path.js +7 -7
  309. package/esm2015/queries/is-empty-paragraph.js +11 -11
  310. package/esm2015/queries/is-first-child.js +5 -5
  311. package/esm2015/queries/is-include-types.js +11 -11
  312. package/esm2015/queries/is-node-type-in.js +9 -9
  313. package/esm2015/queries/is-node-type.js +15 -15
  314. package/esm2015/queries/is-paragraph.js +9 -9
  315. package/esm2015/queries/is-point-at-root.js +2 -2
  316. package/esm2015/queries/is-range-across-blocks.js +18 -18
  317. package/esm2015/queries/is-range-at-root.js +3 -3
  318. package/esm2015/queries/is-start.js +6 -6
  319. package/esm2015/queries/some-node.js +9 -9
  320. package/esm2015/services/color-select.service.js +50 -49
  321. package/esm2015/services/context.service.js +60 -59
  322. package/esm2015/services/table-contextmenu.service.js +190 -189
  323. package/esm2015/services/toolbar.service.js +47 -47
  324. package/esm2015/shortcuts/index.js +5 -5
  325. package/esm2015/shortcuts/mark.js +24 -24
  326. package/esm2015/transforms/apply-deep-to-nodes.js +21 -21
  327. package/esm2015/transforms/clear-marks.js +23 -23
  328. package/esm2015/transforms/close-conversion-hint.js +8 -8
  329. package/esm2015/transforms/delete-element.js +11 -11
  330. package/esm2015/transforms/handle-continual-delete-backward.js +17 -17
  331. package/esm2015/transforms/handle-continual-insert-break.js +19 -19
  332. package/esm2015/transforms/index.js +18 -18
  333. package/esm2015/transforms/insert-elements.js +34 -34
  334. package/esm2015/transforms/insert-paragraph.js +6 -6
  335. package/esm2015/transforms/merge-deep-to-nodes.js +8 -8
  336. package/esm2015/transforms/move-children.js +21 -21
  337. package/esm2015/transforms/on-keydown-reset-block-type.js +22 -22
  338. package/esm2015/transforms/set-end-selection.js +10 -10
  339. package/esm2015/transforms/set-marks.js +9 -9
  340. package/esm2015/transforms/set-node.js +5 -5
  341. package/esm2015/transforms/split-node.js +31 -31
  342. package/esm2015/transforms/un-hang-range.js +11 -11
  343. package/esm2015/transforms/un-wrap.js +11 -11
  344. package/esm2015/transforms/unwrap-nodes-by-type.js +11 -11
  345. package/esm2015/utils/auto-focus.js +13 -13
  346. package/esm2015/utils/auto-scroll-view.js +24 -24
  347. package/esm2015/utils/cast-array.js +7 -7
  348. package/esm2015/utils/common.js +2 -2
  349. package/esm2015/utils/create-empty-paragraph.js +14 -14
  350. package/esm2015/utils/data-transform.js +48 -48
  351. package/esm2015/utils/dom.js +46 -46
  352. package/esm2015/utils/editor-uuid.js +8 -8
  353. package/esm2015/utils/fragment.js +65 -65
  354. package/esm2015/utils/get-editable-element-height.js +6 -6
  355. package/esm2015/utils/get-toolbar-class.js +6 -6
  356. package/esm2015/utils/id-creator.js +11 -11
  357. package/esm2015/utils/index.js +13 -13
  358. package/esm2015/utils/is-clean-empty-paragraph.js +36 -36
  359. package/esm2015/utils/is-inline.js +9 -9
  360. package/esm2015/utils/lodash.js +3 -3
  361. package/esm2015/utils/match.js +29 -29
  362. package/esm2015/utils/merge-element-options.js +19 -19
  363. package/esm2015/utils/weak-maps.js +3 -3
  364. package/esm2015/worktile-theia.js +4 -4
  365. package/fesm2015/worktile-theia.js +13157 -13113
  366. package/fesm2015/worktile-theia.js.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 +1 -1
  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 +74 -71
  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 -57
  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 -0
  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 -45
  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-editable-element-height.d.ts +2 -2
  616. package/utils/get-toolbar-class.d.ts +2 -2
  617. package/utils/id-creator.d.ts +1 -1
  618. package/utils/index.d.ts +13 -13
  619. package/utils/is-clean-empty-paragraph.d.ts +9 -9
  620. package/utils/is-inline.d.ts +2 -2
  621. package/utils/lodash.d.ts +1 -1
  622. package/utils/match.d.ts +18 -18
  623. package/utils/merge-element-options.d.ts +2 -2
  624. package/utils/weak-maps.d.ts +5 -5
  625. package/worktile-theia.d.ts +5 -5
@@ -1,13 +1,13 @@
1
- import * as TheQueries from '../../../queries';
2
- import { ElementKinds } from '../../../constants';
3
- /**
4
- * Is the selection focus at the start of its parent block.
5
- */
6
- export const isSelectionAtListItemStart = (editor) => {
7
- const listItemEntry = TheQueries.getAboveByType(editor, [ElementKinds.listItem]);
8
- if (listItemEntry) {
9
- return TheQueries.isStart(editor, editor.selection.focus, listItemEntry[1]);
10
- }
11
- return false;
12
- };
1
+ import * as TheQueries from '../../../queries';
2
+ import { ElementKinds } from '../../../constants';
3
+ /**
4
+ * Is the selection focus at the start of its parent block.
5
+ */
6
+ export const isSelectionAtListItemStart = (editor) => {
7
+ const listItemEntry = TheQueries.getAboveByType(editor, [ElementKinds.listItem]);
8
+ if (listItemEntry) {
9
+ return TheQueries.isStart(editor, editor.selection.focus, listItemEntry[1]);
10
+ }
11
+ return false;
12
+ };
13
13
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWF0LWxpc3QtaXRlbS1zdGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1zZWxlY3Rpb24tYXQtbGlzdC1pdGVtLXN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUN6RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLElBQUksYUFBYSxFQUFFO1FBQ2YsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvRTtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIElzIHRoZSBzZWxlY3Rpb24gZm9jdXMgYXQgdGhlIHN0YXJ0IG9mIGl0cyBwYXJlbnQgYmxvY2suXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydCA9IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgIGNvbnN0IGxpc3RJdGVtRW50cnkgPSBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgW0VsZW1lbnRLaW5kcy5saXN0SXRlbV0pO1xuICAgIGlmIChsaXN0SXRlbUVudHJ5KSB7XG4gICAgICAgIHJldHVybiBUaGVRdWVyaWVzLmlzU3RhcnQoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmZvY3VzLCBsaXN0SXRlbUVudHJ5WzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
@@ -1,17 +1,17 @@
1
- import { Range, Path } from 'slate';
2
- import { getAboveByType } from '../../../queries/get-above-by-type';
3
- import { ElementKinds } from '../../../constants/node-types';
4
- /**
5
- * Is the selection in same li
6
- */
7
- export const isSelectionInSameListItem = (editor) => {
8
- const { selection } = editor;
9
- if (!selection) {
10
- return false;
11
- }
12
- const [start, end] = Range.edges(selection);
13
- const startListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: start.path });
14
- const endListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: end.path });
15
- return startListItemEntry && endListItemEntry && Path.equals(startListItemEntry[1], endListItemEntry[1]);
16
- };
1
+ import { Range, Path } from 'slate';
2
+ import { getAboveByType } from '../../../queries/get-above-by-type';
3
+ import { ElementKinds } from '../../../constants/node-types';
4
+ /**
5
+ * Is the selection in same li
6
+ */
7
+ export const isSelectionInSameListItem = (editor) => {
8
+ const { selection } = editor;
9
+ if (!selection) {
10
+ return false;
11
+ }
12
+ const [start, end] = Range.edges(selection);
13
+ const startListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: start.path });
14
+ const endListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: end.path });
15
+ return startListItemEntry && endListItemEntry && Path.equals(startListItemEntry[1], endListItemEntry[1]);
16
+ };
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWluLXNhbWUtbGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC9xdWVyaWVzL2lzLXNlbGVjdGlvbi1pbi1zYW1lLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDckMsTUFBYyxFQUNoQixFQUFFO0lBQ0EsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU3QixJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0YsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsT0FBTyxrQkFBa0IsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdldEFib3ZlQnlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcXVlcmllcy9nZXQtYWJvdmUtYnktdHlwZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5cbi8qKlxuICogSXMgdGhlIHNlbGVjdGlvbiBpbiBzYW1lIGxpXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtID0gKFxuICAgIGVkaXRvcjogRWRpdG9yXG4pID0+IHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuXG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IFJhbmdlLmVkZ2VzKHNlbGVjdGlvbik7XG4gICAgY29uc3Qgc3RhcnRMaXN0SXRlbUVudHJ5ID0gZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0sIHsgYXQ6IHN0YXJ0LnBhdGggfSk7XG4gICAgY29uc3QgZW5kTGlzdEl0ZW1FbnRyeSA9IGdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtLCB7IGF0OiBlbmQucGF0aCB9KTtcblxuICAgIHJldHVybiBzdGFydExpc3RJdGVtRW50cnkgJiYgZW5kTGlzdEl0ZW1FbnRyeSAmJiBQYXRoLmVxdWFscyhzdGFydExpc3RJdGVtRW50cnlbMV0sIGVuZExpc3RJdGVtRW50cnlbMV0pO1xufTsiXX0=
@@ -1,9 +1,9 @@
1
- import { hasListInListItem } from './has-list-in-list-item';
2
- import { isNodeTypeList } from './is-node-type-list';
3
- /**
4
- * list 中 是否是单个listItem,且listItem没有子列表
5
- */
6
- export const isSingleListItem = (list) => {
7
- return isNodeTypeList(list) && list.children.length === 1 && !hasListInListItem(list.children[0]);
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2luZ2xlLWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1zaW5nbGUtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDM0MsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxDQUFDLFFBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztBQUM3SCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgaGFzTGlzdEluTGlzdEl0ZW0gfSBmcm9tICcuL2hhcy1saXN0LWluLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBpc05vZGVUeXBlTGlzdCB9IGZyb20gJy4vaXMtbm9kZS10eXBlLWxpc3QnO1xuXG4vKipcbiAqIGxpc3Qg5LitIOaYr+WQpuaYr+WNleS4qmxpc3RJdGVt77yM5LiUbGlzdEl0ZW3msqHmnInlrZDliJfooahcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2luZ2xlTGlzdEl0ZW0gPSAobGlzdDogTm9kZSkgPT4ge1xuICAgIHJldHVybiBpc05vZGVUeXBlTGlzdChsaXN0KSAmJiAobGlzdC5jaGlsZHJlbiBhcyBOb2RlW10pLmxlbmd0aCA9PT0gMSAmJiAhaGFzTGlzdEluTGlzdEl0ZW0obGlzdC5jaGlsZHJlblswXSBhcyBFbGVtZW50KTtcbn07XG4iXX0=
1
+ import { hasListInListItem } from './has-list-in-list-item';
2
+ import { isNodeTypeList } from './is-node-type-list';
3
+ /**
4
+ * list 中 是否是单个listItem,且listItem没有子列表
5
+ */
6
+ export const isSingleListItem = (list) => {
7
+ return isNodeTypeList(list) && list.children.length === 1 && !hasListInListItem(list.children[0]);
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2luZ2xlLWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9pcy1zaW5nbGUtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDM0MsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxDQUFDLFFBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztBQUM3SCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xyXG5pbXBvcnQgeyBoYXNMaXN0SW5MaXN0SXRlbSB9IGZyb20gJy4vaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcclxuaW1wb3J0IHsgaXNOb2RlVHlwZUxpc3QgfSBmcm9tICcuL2lzLW5vZGUtdHlwZS1saXN0JztcclxuXHJcbi8qKlxyXG4gKiBsaXN0IOS4rSDmmK/lkKbmmK/ljZXkuKpsaXN0SXRlbe+8jOS4lGxpc3RJdGVt5rKh5pyJ5a2Q5YiX6KGoXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNTaW5nbGVMaXN0SXRlbSA9IChsaXN0OiBOb2RlKSA9PiB7XHJcbiAgICByZXR1cm4gaXNOb2RlVHlwZUxpc3QobGlzdCkgJiYgKGxpc3QuY2hpbGRyZW4gYXMgTm9kZVtdKS5sZW5ndGggPT09IDEgJiYgIWhhc0xpc3RJbkxpc3RJdGVtKGxpc3QuY2hpbGRyZW5bMF0gYXMgRWxlbWVudCk7XHJcbn07XHJcbiJdfQ==
@@ -1,72 +1,72 @@
1
- import { Node, Path, Transforms, Editor } from 'slate';
2
- import * as TheQueries from '../../../queries';
3
- import { hasListInListItem } from '../queries/has-list-in-list-item';
4
- import { getListItemEntry } from '../queries/get-list-item-entry';
5
- export const insertListData = (editor, { fromList, toListItemEntry }) => {
6
- const { children } = fromList;
7
- const [toListItem, toListItemPath] = toListItemEntry;
8
- const nextListItemPath = Path.next(toListItemPath);
9
- const toListItemIsEmptyParagraph = TheQueries.isEmptyParagraph(editor, editor.selection.anchor);
10
- const hasSubList = hasListInListItem(toListItem);
11
- let selectPath = [...toListItemPath];
12
- const liIndex = selectPath.pop();
13
- selectPath = [...selectPath, liIndex + children.length];
14
- Editor.withoutNormalizing(editor, () => {
15
- if (toListItemIsEmptyParagraph && hasSubList) {
16
- Transforms.insertNodes(editor, children, { at: nextListItemPath });
17
- }
18
- else {
19
- const insertListItemPath = toListItemIsEmptyParagraph ? toListItemPath : nextListItemPath;
20
- // 如果粘贴目标listItem为空,则先删除listItem
21
- if (toListItemIsEmptyParagraph) {
22
- Transforms.removeNodes(editor, { at: insertListItemPath });
23
- selectPath = Path.previous(selectPath);
24
- }
25
- Transforms.insertNodes(editor, children, { at: insertListItemPath });
26
- }
27
- /**
28
- * 粘贴目标lisItem有子列表
29
- */
30
- if (hasSubList) {
31
- const paragraphPath = toListItemPath.concat([0]);
32
- const nextSubListPath = Path.next(paragraphPath);
33
- // 判断粘贴数据是否是多级
34
- if (hasListInListItem(fromList.children[0])) {
35
- // 设置粘贴后正确选区
36
- Transforms.select(editor, Editor.end(editor, nextListItemPath));
37
- // 获取当前选区所在listItem entry
38
- const currentListItemEntry = getListItemEntry(editor, {});
39
- // 获取粘贴目标listItem中的子列表
40
- const { children: subListChildren } = Node.get(editor, nextSubListPath);
41
- /**
42
- * 复制子列表数据
43
- * 之所以是复制,而不是移动,因为无法单纯一次性移动子列表的所有listItem(不包含subList本身)到目标位置,
44
- * 需要循环移动才可以
45
- **/
46
- Transforms.insertNodes(editor, subListChildren, {
47
- at: Path.next(currentListItemEntry.listItem[1])
48
- });
49
- // 删除已被复制后无用的listItem/listItem subList
50
- Transforms.delete(editor, {
51
- at: toListItemIsEmptyParagraph ? toListItemPath : nextSubListPath
52
- });
53
- return;
54
- }
55
- Transforms.select(editor, Editor.end(editor, selectPath));
56
- // 粘贴数据不是多级
57
- const currentListItemEntry = getListItemEntry(editor, {});
58
- Transforms.moveNodes(editor, {
59
- at: nextSubListPath,
60
- to: currentListItemEntry.listItem[1].concat(1)
61
- });
62
- if (toListItemIsEmptyParagraph) {
63
- Transforms.delete(editor, { at: toListItemPath });
64
- }
65
- return;
66
- }
67
- });
68
- // 粘贴目标listItem没有子列表, 设置选区
69
- Transforms.select(editor, Editor.end(editor, selectPath));
70
- return;
71
- };
1
+ import { Node, Path, Transforms, Editor } from 'slate';
2
+ import * as TheQueries from '../../../queries';
3
+ import { hasListInListItem } from '../queries/has-list-in-list-item';
4
+ import { getListItemEntry } from '../queries/get-list-item-entry';
5
+ export const insertListData = (editor, { fromList, toListItemEntry }) => {
6
+ const { children } = fromList;
7
+ const [toListItem, toListItemPath] = toListItemEntry;
8
+ const nextListItemPath = Path.next(toListItemPath);
9
+ const toListItemIsEmptyParagraph = TheQueries.isEmptyParagraph(editor, editor.selection.anchor);
10
+ const hasSubList = hasListInListItem(toListItem);
11
+ let selectPath = [...toListItemPath];
12
+ const liIndex = selectPath.pop();
13
+ selectPath = [...selectPath, liIndex + children.length];
14
+ Editor.withoutNormalizing(editor, () => {
15
+ if (toListItemIsEmptyParagraph && hasSubList) {
16
+ Transforms.insertNodes(editor, children, { at: nextListItemPath });
17
+ }
18
+ else {
19
+ const insertListItemPath = toListItemIsEmptyParagraph ? toListItemPath : nextListItemPath;
20
+ // 如果粘贴目标listItem为空,则先删除listItem
21
+ if (toListItemIsEmptyParagraph) {
22
+ Transforms.removeNodes(editor, { at: insertListItemPath });
23
+ selectPath = Path.previous(selectPath);
24
+ }
25
+ Transforms.insertNodes(editor, children, { at: insertListItemPath });
26
+ }
27
+ /**
28
+ * 粘贴目标lisItem有子列表
29
+ */
30
+ if (hasSubList) {
31
+ const paragraphPath = toListItemPath.concat([0]);
32
+ const nextSubListPath = Path.next(paragraphPath);
33
+ // 判断粘贴数据是否是多级
34
+ if (hasListInListItem(fromList.children[0])) {
35
+ // 设置粘贴后正确选区
36
+ Transforms.select(editor, Editor.end(editor, nextListItemPath));
37
+ // 获取当前选区所在listItem entry
38
+ const currentListItemEntry = getListItemEntry(editor, {});
39
+ // 获取粘贴目标listItem中的子列表
40
+ const { children: subListChildren } = Node.get(editor, nextSubListPath);
41
+ /**
42
+ * 复制子列表数据
43
+ * 之所以是复制,而不是移动,因为无法单纯一次性移动子列表的所有listItem(不包含subList本身)到目标位置,
44
+ * 需要循环移动才可以
45
+ **/
46
+ Transforms.insertNodes(editor, subListChildren, {
47
+ at: Path.next(currentListItemEntry.listItem[1])
48
+ });
49
+ // 删除已被复制后无用的listItem/listItem subList
50
+ Transforms.delete(editor, {
51
+ at: toListItemIsEmptyParagraph ? toListItemPath : nextSubListPath
52
+ });
53
+ return;
54
+ }
55
+ Transforms.select(editor, Editor.end(editor, selectPath));
56
+ // 粘贴数据不是多级
57
+ const currentListItemEntry = getListItemEntry(editor, {});
58
+ Transforms.moveNodes(editor, {
59
+ at: nextSubListPath,
60
+ to: currentListItemEntry.listItem[1].concat(1)
61
+ });
62
+ if (toListItemIsEmptyParagraph) {
63
+ Transforms.delete(editor, { at: toListItemPath });
64
+ }
65
+ return;
66
+ }
67
+ });
68
+ // 粘贴目标listItem没有子列表, 设置选区
69
+ Transforms.select(editor, Editor.end(editor, selectPath));
70
+ return;
71
+ };
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWxpc3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFjbEUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBeUIsRUFBRSxFQUFFO0lBQ25HLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDOUIsTUFBTSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsR0FBRyxlQUFlLENBQUM7SUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sMEJBQTBCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQXFCLENBQUMsQ0FBQztJQUU1RCxJQUFJLFVBQVUsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDckMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLFVBQVUsR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDbkMsSUFBSSwwQkFBMEIsSUFBSSxVQUFVLEVBQUU7WUFDMUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUN0RTthQUFNO1lBQ0gsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxRixnQ0FBZ0M7WUFDaEMsSUFBSSwwQkFBMEIsRUFBRTtnQkFDNUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQztZQUNELFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7U0FDeEU7UUFFRDs7V0FFRztRQUNILElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVqRCxjQUFjO1lBQ2QsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBWSxDQUFDLEVBQUU7Z0JBQ3BELFlBQVk7Z0JBQ1osVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUVoRSx5QkFBeUI7Z0JBQ3pCLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxzQkFBc0I7Z0JBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFZLENBQUM7Z0JBRW5GOzs7O29CQUlJO2dCQUNKLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGVBQXlCLEVBQUU7b0JBQ3RELEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEQsQ0FBQyxDQUFDO2dCQUNILHNDQUFzQztnQkFDdEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3RCLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlO2lCQUNwRSxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNWO1lBRUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUUxRCxXQUFXO1lBQ1gsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLEVBQUUsRUFBRSxlQUFlO2dCQUNuQixFQUFFLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBRUgsSUFBSSwwQkFBMEIsRUFBRTtnQkFDNUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNELE9BQU87U0FDVjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsMEJBQTBCO0lBQzFCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgQW5jZXN0b3IsIE5vZGUsIFBhdGgsIFRyYW5zZm9ybXMsIEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBoYXNMaXN0SW5MaXN0SXRlbSB9IGZyb20gJy4uL3F1ZXJpZXMvaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcbmltcG9ydCB7IGdldExpc3RJdGVtRW50cnkgfSBmcm9tICcuLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydExpc3REYXRhT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICog6KaB57KY6LS055qEbGlzdOaVsOaNrlxuICAgICAqL1xuICAgIGZyb21MaXN0OiBFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICog57KY6LS0bGlzdOaVsOaNruiHs+atpFxuICAgICAqL1xuICAgIHRvTGlzdEl0ZW1FbnRyeTogTm9kZUVudHJ5PEFuY2VzdG9yPjtcbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydExpc3REYXRhID0gKGVkaXRvcjogRWRpdG9yLCB7IGZyb21MaXN0LCB0b0xpc3RJdGVtRW50cnkgfTogSW5zZXJ0TGlzdERhdGFPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gZnJvbUxpc3Q7XG4gICAgY29uc3QgW3RvTGlzdEl0ZW0sIHRvTGlzdEl0ZW1QYXRoXSA9IHRvTGlzdEl0ZW1FbnRyeTtcbiAgICBjb25zdCBuZXh0TGlzdEl0ZW1QYXRoID0gUGF0aC5uZXh0KHRvTGlzdEl0ZW1QYXRoKTtcbiAgICBjb25zdCB0b0xpc3RJdGVtSXNFbXB0eVBhcmFncmFwaCA9IFRoZVF1ZXJpZXMuaXNFbXB0eVBhcmFncmFwaChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yKTtcbiAgICBjb25zdCBoYXNTdWJMaXN0ID0gaGFzTGlzdEluTGlzdEl0ZW0odG9MaXN0SXRlbSBhcyBFbGVtZW50KTtcblxuICAgIGxldCBzZWxlY3RQYXRoID0gWy4uLnRvTGlzdEl0ZW1QYXRoXTtcbiAgICBjb25zdCBsaUluZGV4ID0gc2VsZWN0UGF0aC5wb3AoKTtcbiAgICBzZWxlY3RQYXRoID0gWy4uLnNlbGVjdFBhdGgsIGxpSW5kZXggKyBjaGlsZHJlbi5sZW5ndGhdO1xuXG4gICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgaWYgKHRvTGlzdEl0ZW1Jc0VtcHR5UGFyYWdyYXBoICYmIGhhc1N1Ykxpc3QpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBjaGlsZHJlbiwgeyBhdDogbmV4dExpc3RJdGVtUGF0aCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluc2VydExpc3RJdGVtUGF0aCA9IHRvTGlzdEl0ZW1Jc0VtcHR5UGFyYWdyYXBoID8gdG9MaXN0SXRlbVBhdGggOiBuZXh0TGlzdEl0ZW1QYXRoO1xuICAgICAgICAgICAgLy8g5aaC5p6c57KY6LS055uu5qCHbGlzdEl0ZW3kuLrnqbrvvIzliJnlhYjliKDpmaRsaXN0SXRlbVxuICAgICAgICAgICAgaWYgKHRvTGlzdEl0ZW1Jc0VtcHR5UGFyYWdyYXBoKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlcyhlZGl0b3IsIHsgYXQ6IGluc2VydExpc3RJdGVtUGF0aCB9KTtcbiAgICAgICAgICAgICAgICBzZWxlY3RQYXRoID0gUGF0aC5wcmV2aW91cyhzZWxlY3RQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBjaGlsZHJlbiwgeyBhdDogaW5zZXJ0TGlzdEl0ZW1QYXRoIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIOeymOi0tOebruagh2xpc0l0ZW3mnInlrZDliJfooahcbiAgICAgICAgICovXG4gICAgICAgIGlmIChoYXNTdWJMaXN0KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGhQYXRoID0gdG9MaXN0SXRlbVBhdGguY29uY2F0KFswXSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0U3ViTGlzdFBhdGggPSBQYXRoLm5leHQocGFyYWdyYXBoUGF0aCk7XG5cbiAgICAgICAgICAgIC8vIOWIpOaWreeymOi0tOaVsOaNruaYr+WQpuaYr+Wkmue6p1xuICAgICAgICAgICAgaWYgKGhhc0xpc3RJbkxpc3RJdGVtKGZyb21MaXN0LmNoaWxkcmVuWzBdIGFzIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgLy8g6K6+572u57KY6LS05ZCO5q2j56Gu6YCJ5Yy6XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBFZGl0b3IuZW5kKGVkaXRvciwgbmV4dExpc3RJdGVtUGF0aCkpO1xuXG4gICAgICAgICAgICAgICAgLy8g6I635Y+W5b2T5YmN6YCJ5Yy65omA5ZyobGlzdEl0ZW0gZW50cnlcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TGlzdEl0ZW1FbnRyeSA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG4gICAgICAgICAgICAgICAgLy8g6I635Y+W57KY6LS055uu5qCHbGlzdEl0ZW3kuK3nmoTlrZDliJfooahcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNoaWxkcmVuOiBzdWJMaXN0Q2hpbGRyZW4gfSA9IE5vZGUuZ2V0KGVkaXRvciwgbmV4dFN1Ykxpc3RQYXRoKSBhcyBFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICog5aSN5Yi25a2Q5YiX6KGo5pWw5o2uXG4gICAgICAgICAgICAgICAgICog5LmL5omA5Lul5piv5aSN5Yi277yM6ICM5LiN5piv56e75Yqo77yM5Zug5Li65peg5rOV5Y2V57qv5LiA5qyh5oCn56e75Yqo5a2Q5YiX6KGo55qE5omA5pyJbGlzdEl0ZW3vvIjkuI3ljIXlkKtzdWJMaXN05pys6Lqr77yJ5Yiw55uu5qCH5L2N572u77yMXG4gICAgICAgICAgICAgICAgICog6ZyA6KaB5b6q546v56e75Yqo5omN5Y+v5LulXG4gICAgICAgICAgICAgICAgICoqL1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBzdWJMaXN0Q2hpbGRyZW4gYXMgTm9kZVtdLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiBQYXRoLm5leHQoY3VycmVudExpc3RJdGVtRW50cnkubGlzdEl0ZW1bMV0pXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8g5Yig6Zmk5bey6KKr5aSN5Yi25ZCO5peg55So55qEbGlzdEl0ZW0vbGlzdEl0ZW0gc3ViTGlzdFxuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICBhdDogdG9MaXN0SXRlbUlzRW1wdHlQYXJhZ3JhcGggPyB0b0xpc3RJdGVtUGF0aCA6IG5leHRTdWJMaXN0UGF0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBFZGl0b3IuZW5kKGVkaXRvciwgc2VsZWN0UGF0aCkpO1xuXG4gICAgICAgICAgICAvLyDnspjotLTmlbDmja7kuI3mmK/lpJrnuqdcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaXN0SXRlbUVudHJ5ID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIGF0OiBuZXh0U3ViTGlzdFBhdGgsXG4gICAgICAgICAgICAgICAgdG86IGN1cnJlbnRMaXN0SXRlbUVudHJ5Lmxpc3RJdGVtWzFdLmNvbmNhdCgxKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0b0xpc3RJdGVtSXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogdG9MaXN0SXRlbVBhdGggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIOeymOi0tOebruagh2xpc3RJdGVt5rKh5pyJ5a2Q5YiX6KGoLCDorr7nva7pgInljLpcbiAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIEVkaXRvci5lbmQoZWRpdG9yLCBzZWxlY3RQYXRoKSk7XG4gICAgcmV0dXJuO1xufTtcbiJdfQ==
@@ -1,73 +1,73 @@
1
- import { Editor, Path, Range, Transforms, Element } from 'slate';
2
- import { TheEditor } from '../../../interfaces';
3
- import { ElementKinds } from '../../../constants';
4
- import * as TheQueries from '../../../queries';
5
- /**
6
- * Insert list item if selection in li>p.
7
- */
8
- export const insertListItem = (editor) => {
9
- if (editor.selection && !TheQueries.isRangeAtRoot(editor.selection)) {
10
- const paragraphEntry = TheQueries.getAboveByType(editor, ElementKinds.paragraph);
11
- if (!paragraphEntry) {
12
- return;
13
- }
14
- const [, paragraphPath] = paragraphEntry;
15
- const [listItemNode, listItemPath] = Editor.parent(editor, paragraphPath);
16
- if (Element.isElement(listItemNode) && listItemNode.type !== ElementKinds.listItem) {
17
- return;
18
- }
19
- if (!Range.isCollapsed(editor.selection)) {
20
- Transforms.delete(editor);
21
- }
22
- const isEnd = TheQueries.isBlockTextEmptyAfterSelection(editor);
23
- const nextNodePath = Path.next(paragraphPath);
24
- const nextListItemPath = Path.next(listItemPath);
25
- const nextEnd = Editor.end(editor, listItemPath);
26
- /**
27
- * If not end, split nodes, wrap a list item on the new paragraph and move it to the next list item
28
- */
29
- if (!isEnd) {
30
- Editor.withoutNormalizing(editor, () => {
31
- Transforms.splitNodes(editor, { at: editor.selection, always: true });
32
- Transforms.wrapNodes(editor, {
33
- type: ElementKinds.listItem,
34
- children: []
35
- }, { at: nextNodePath });
36
- Transforms.moveNodes(editor, {
37
- at: nextNodePath,
38
- to: nextListItemPath
39
- });
40
- });
41
- }
42
- else {
43
- /**
44
- * If end, split nodes
45
- */
46
- Editor.withoutNormalizing(editor, () => {
47
- Transforms.splitNodes(editor, {
48
- always: true,
49
- mode: 'highest',
50
- match: node => {
51
- const path = node && TheEditor.findPath(editor, node);
52
- return path && path.length === nextListItemPath.length;
53
- }
54
- });
55
- });
56
- }
57
- /**
58
- * If there is a list in the list item, move it to the next list item
59
- */
60
- if (TheQueries.getNode(editor, nextNodePath)) {
61
- Transforms.moveNodes(editor, {
62
- at: Editor.range(editor, nextNodePath, nextEnd),
63
- to: nextListItemPath.concat(1),
64
- match: node => {
65
- // TODO: types
66
- return listItemNode.children.includes(node);
67
- }
68
- });
69
- }
70
- return true;
71
- }
72
- };
1
+ import { Editor, Path, Range, Transforms, Element } from 'slate';
2
+ import { TheEditor } from '../../../interfaces';
3
+ import { ElementKinds } from '../../../constants';
4
+ import * as TheQueries from '../../../queries';
5
+ /**
6
+ * Insert list item if selection in li>p.
7
+ */
8
+ export const insertListItem = (editor) => {
9
+ if (editor.selection && !TheQueries.isRangeAtRoot(editor.selection)) {
10
+ const paragraphEntry = TheQueries.getAboveByType(editor, ElementKinds.paragraph);
11
+ if (!paragraphEntry) {
12
+ return;
13
+ }
14
+ const [, paragraphPath] = paragraphEntry;
15
+ const [listItemNode, listItemPath] = Editor.parent(editor, paragraphPath);
16
+ if (Element.isElement(listItemNode) && listItemNode.type !== ElementKinds.listItem) {
17
+ return;
18
+ }
19
+ if (!Range.isCollapsed(editor.selection)) {
20
+ Transforms.delete(editor);
21
+ }
22
+ const isEnd = TheQueries.isBlockTextEmptyAfterSelection(editor);
23
+ const nextNodePath = Path.next(paragraphPath);
24
+ const nextListItemPath = Path.next(listItemPath);
25
+ const nextEnd = Editor.end(editor, listItemPath);
26
+ /**
27
+ * If not end, split nodes, wrap a list item on the new paragraph and move it to the next list item
28
+ */
29
+ if (!isEnd) {
30
+ Editor.withoutNormalizing(editor, () => {
31
+ Transforms.splitNodes(editor, { at: editor.selection, always: true });
32
+ Transforms.wrapNodes(editor, {
33
+ type: ElementKinds.listItem,
34
+ children: []
35
+ }, { at: nextNodePath });
36
+ Transforms.moveNodes(editor, {
37
+ at: nextNodePath,
38
+ to: nextListItemPath
39
+ });
40
+ });
41
+ }
42
+ else {
43
+ /**
44
+ * If end, split nodes
45
+ */
46
+ Editor.withoutNormalizing(editor, () => {
47
+ Transforms.splitNodes(editor, {
48
+ always: true,
49
+ mode: 'highest',
50
+ match: node => {
51
+ const path = node && TheEditor.findPath(editor, node);
52
+ return path && path.length === nextListItemPath.length;
53
+ }
54
+ });
55
+ });
56
+ }
57
+ /**
58
+ * If there is a list in the list item, move it to the next list item
59
+ */
60
+ if (TheQueries.getNode(editor, nextNodePath)) {
61
+ Transforms.moveNodes(editor, {
62
+ at: Editor.range(editor, nextNodePath, nextEnd),
63
+ to: nextListItemPath.concat(1),
64
+ match: node => {
65
+ // TODO: types
66
+ return listItemNode.children.includes(node);
67
+ }
68
+ });
69
+ }
70
+ return true;
71
+ }
72
+ };
73
73
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQzdDLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUV6QyxNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFFLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDaEYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ25DLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLFVBQVUsQ0FBQyxTQUFTLENBQ2hCLE1BQU0sRUFDTjtvQkFDSSxJQUFJLEVBQUUsWUFBWSxDQUFDLFFBQVE7b0JBQzNCLFFBQVEsRUFBRSxFQUFFO2lCQUNmLEVBQ0QsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQ3ZCLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3pCLEVBQUUsRUFBRSxZQUFZO29CQUNoQixFQUFFLEVBQUUsZ0JBQWdCO2lCQUN2QixDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSDs7ZUFFRztZQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNuQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtvQkFDMUIsTUFBTSxFQUFFLElBQUk7b0JBQ1osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO3dCQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDdEQsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7b0JBQzNELENBQUM7aUJBQ0osQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVEOztXQUVHO1FBQ0gsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRTtZQUMxQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7Z0JBQy9DLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ1YsY0FBYztvQkFDZCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQVcsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2FBQ0osQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQztLQUNmO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBQYXRoLCBSYW5nZSwgVHJhbnNmb3JtcywgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5cbi8qKlxuICogSW5zZXJ0IGxpc3QgaXRlbSBpZiBzZWxlY3Rpb24gaW4gbGk+cC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluc2VydExpc3RJdGVtID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgIVRoZVF1ZXJpZXMuaXNSYW5nZUF0Um9vdChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhFbnRyeSA9IFRoZVF1ZXJpZXMuZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMucGFyYWdyYXBoKTtcbiAgICAgICAgaWYgKCFwYXJhZ3JhcGhFbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFssIHBhcmFncmFwaFBhdGhdID0gcGFyYWdyYXBoRW50cnk7XG5cbiAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IEVkaXRvci5wYXJlbnQoZWRpdG9yLCBwYXJhZ3JhcGhQYXRoKTtcbiAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGxpc3RJdGVtTm9kZSkgJiYgbGlzdEl0ZW1Ob2RlLnR5cGUgIT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzRW5kID0gVGhlUXVlcmllcy5pc0Jsb2NrVGV4dEVtcHR5QWZ0ZXJTZWxlY3Rpb24oZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbmV4dE5vZGVQYXRoID0gUGF0aC5uZXh0KHBhcmFncmFwaFBhdGgpO1xuICAgICAgICBjb25zdCBuZXh0TGlzdEl0ZW1QYXRoID0gUGF0aC5uZXh0KGxpc3RJdGVtUGF0aCk7XG4gICAgICAgIGNvbnN0IG5leHRFbmQgPSBFZGl0b3IuZW5kKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgbm90IGVuZCwgc3BsaXQgbm9kZXMsIHdyYXAgYSBsaXN0IGl0ZW0gb24gdGhlIG5ldyBwYXJhZ3JhcGggYW5kIG1vdmUgaXQgdG8gdGhlIG5leHQgbGlzdCBpdGVtXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIWlzRW5kKSB7XG4gICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc3BsaXROb2RlcyhlZGl0b3IsIHsgYXQ6IGVkaXRvci5zZWxlY3Rpb24sIGFsd2F5czogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBhdDogbmV4dE5vZGVQYXRoIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICBhdDogbmV4dE5vZGVQYXRoLFxuICAgICAgICAgICAgICAgICAgICB0bzogbmV4dExpc3RJdGVtUGF0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGVuZCwgc3BsaXQgbm9kZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNwbGl0Tm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGFsd2F5czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2hpZ2hlc3QnLFxuICAgICAgICAgICAgICAgICAgICBtYXRjaDogbm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gbm9kZSAmJiBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoICYmIHBhdGgubGVuZ3RoID09PSBuZXh0TGlzdEl0ZW1QYXRoLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlcmUgaXMgYSBsaXN0IGluIHRoZSBsaXN0IGl0ZW0sIG1vdmUgaXQgdG8gdGhlIG5leHQgbGlzdCBpdGVtXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoVGhlUXVlcmllcy5nZXROb2RlKGVkaXRvciwgbmV4dE5vZGVQYXRoKSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IEVkaXRvci5yYW5nZShlZGl0b3IsIG5leHROb2RlUGF0aCwgbmV4dEVuZCksXG4gICAgICAgICAgICAgICAgdG86IG5leHRMaXN0SXRlbVBhdGguY29uY2F0KDEpLFxuICAgICAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdHlwZXNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5pbmNsdWRlcyhub2RlIGFzIGFueSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuIl19
@@ -1,41 +1,41 @@
1
- import { Editor, Path, Transforms } from 'slate';
2
- import { getListItemEntry } from '../queries/get-list-item-entry';
3
- import { hasListInListItem } from '../queries/has-list-in-list-item';
4
- import { moveListItemSublistItemsToList } from './move-list-item-sublist-items-to-list';
5
- import { isNodeTypeList } from '../queries/is-node-type-list';
6
- export const moveListItemDown = (editor, { list, listItem }) => {
7
- const [listNode] = list;
8
- const [, listItemPath] = listItem;
9
- Editor.withoutNormalizing(editor, () => {
10
- // 以前的兄弟是新父级
11
- const previousSiblingItem = Editor.node(editor, Path.previous(listItemPath));
12
- if (previousSiblingItem) {
13
- const [previousNode, previousPath] = previousSiblingItem;
14
- const lastChildIndexOfPreviousNode = previousNode.children.length - 1;
15
- const lastChildOfPreviousNode = previousNode.children[lastChildIndexOfPreviousNode];
16
- const newPath = previousPath.concat(isNodeTypeList(lastChildOfPreviousNode)
17
- ? [lastChildIndexOfPreviousNode, lastChildOfPreviousNode.children.length]
18
- : [previousNode.children.length]);
19
- if (!isNodeTypeList(lastChildOfPreviousNode)) {
20
- // 创建新子列表
21
- const type = listNode.type;
22
- Transforms.wrapNodes(editor, { type, children: [] }, {
23
- at: listItemPath
24
- });
25
- }
26
- // 将当前listItem移动到子列表
27
- Transforms.moveNodes(editor, {
28
- at: listItemPath,
29
- to: newPath
30
- });
31
- const currentListItemEntry = getListItemEntry(editor, {});
32
- if (hasListInListItem(currentListItemEntry.listItem[0])) {
33
- moveListItemSublistItemsToList(editor, {
34
- fromListItem: currentListItemEntry.listItem,
35
- toList: currentListItemEntry.list
36
- });
37
- }
38
- }
39
- });
40
- };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1kb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQWEsSUFBSSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxPQUFPLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBTzlELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBMkIsRUFBRSxFQUFFO0lBQzVGLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDeEIsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ25DLFlBQVk7UUFDWixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQXdCLENBQUM7UUFFcEcsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHLG1CQUFtQixDQUFDO1lBQ3pELE1BQU0sNEJBQTRCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBWSxDQUFDO1lBRS9GLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQy9CLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDekUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDdkMsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDMUMsU0FBUztnQkFDVCxNQUFNLElBQUksR0FBSSxRQUFvQixDQUFDLElBQUksQ0FBQztnQkFDeEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBYSxFQUFFO29CQUM1RCxFQUFFLEVBQUUsWUFBWTtpQkFDbkIsQ0FBQyxDQUFDO2FBQ047WUFDRCxvQkFBb0I7WUFDcEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixFQUFFLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBQztZQUVILE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFELElBQUksaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELDhCQUE4QixDQUFDLE1BQU0sRUFBRTtvQkFDbkMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFFBQVE7b0JBQzNDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxJQUFJO2lCQUNwQyxDQUFDLENBQUM7YUFDTjtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRWRpdG9yLCBOb2RlRW50cnksIFBhdGgsIFRyYW5zZm9ybXMsIEVsZW1lbnQsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi4vcXVlcmllcy9nZXQtbGlzdC1pdGVtLWVudHJ5JztcbmltcG9ydCB7IGhhc0xpc3RJbkxpc3RJdGVtIH0gZnJvbSAnLi4vcXVlcmllcy9oYXMtbGlzdC1pbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0IH0gZnJvbSAnLi9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QnO1xuaW1wb3J0IHsgaXNOb2RlVHlwZUxpc3QgfSBmcm9tICcuLi9xdWVyaWVzL2lzLW5vZGUtdHlwZS1saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNb3ZlTGlzdEl0ZW1Eb3duT3B0aW9ucyB7XG4gICAgbGlzdDogTm9kZUVudHJ5PEFuY2VzdG9yPjtcbiAgICBsaXN0SXRlbTogTm9kZUVudHJ5PEFuY2VzdG9yPjtcbn1cblxuZXhwb3J0IGNvbnN0IG1vdmVMaXN0SXRlbURvd24gPSAoZWRpdG9yOiBFZGl0b3IsIHsgbGlzdCwgbGlzdEl0ZW0gfTogTW92ZUxpc3RJdGVtRG93bk9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBbbGlzdE5vZGVdID0gbGlzdDtcbiAgICBjb25zdCBbLCBsaXN0SXRlbVBhdGhdID0gbGlzdEl0ZW07XG5cbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAvLyDku6XliY3nmoTlhYTlvJ/mmK/mlrDniLbnuqdcbiAgICAgICAgY29uc3QgcHJldmlvdXNTaWJsaW5nSXRlbSA9IEVkaXRvci5ub2RlKGVkaXRvciwgUGF0aC5wcmV2aW91cyhsaXN0SXRlbVBhdGgpKSBhcyBOb2RlRW50cnk8QW5jZXN0b3I+O1xuXG4gICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmdJdGVtKSB7XG4gICAgICAgICAgICBjb25zdCBbcHJldmlvdXNOb2RlLCBwcmV2aW91c1BhdGhdID0gcHJldmlvdXNTaWJsaW5nSXRlbTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4T2ZQcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlID0gcHJldmlvdXNOb2RlLmNoaWxkcmVuW2xhc3RDaGlsZEluZGV4T2ZQcmV2aW91c05vZGVdIGFzIEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBwcmV2aW91c1BhdGguY29uY2F0KFxuICAgICAgICAgICAgICAgIGlzTm9kZVR5cGVMaXN0KGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlKVxuICAgICAgICAgICAgICAgICAgICA/IFtsYXN0Q2hpbGRJbmRleE9mUHJldmlvdXNOb2RlLCBsYXN0Q2hpbGRPZlByZXZpb3VzTm9kZS5jaGlsZHJlbi5sZW5ndGhdXG4gICAgICAgICAgICAgICAgICAgIDogW3ByZXZpb3VzTm9kZS5jaGlsZHJlbi5sZW5ndGhdXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIWlzTm9kZVR5cGVMaXN0KGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIOWIm+W7uuaWsOWtkOWIl+ihqFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAobGlzdE5vZGUgYXMgRWxlbWVudCkudHlwZTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIHsgdHlwZSwgY2hpbGRyZW46IFtdIH0gYXMgRWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBhdDogbGlzdEl0ZW1QYXRoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyDlsIblvZPliY1saXN0SXRlbeenu+WKqOWIsOWtkOWIl+ihqFxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IGxpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICB0bzogbmV3UGF0aFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaXN0SXRlbUVudHJ5ID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShjdXJyZW50TGlzdEl0ZW1FbnRyeS5saXN0SXRlbVswXSkpIHtcbiAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3QoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGZyb21MaXN0SXRlbTogY3VycmVudExpc3RJdGVtRW50cnkubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHRvTGlzdDogY3VycmVudExpc3RJdGVtRW50cnkubGlzdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuIl19
1
+ import { Editor, Path, Transforms } from 'slate';
2
+ import { getListItemEntry } from '../queries/get-list-item-entry';
3
+ import { hasListInListItem } from '../queries/has-list-in-list-item';
4
+ import { moveListItemSublistItemsToList } from './move-list-item-sublist-items-to-list';
5
+ import { isNodeTypeList } from '../queries/is-node-type-list';
6
+ export const moveListItemDown = (editor, { list, listItem }) => {
7
+ const [listNode] = list;
8
+ const [, listItemPath] = listItem;
9
+ Editor.withoutNormalizing(editor, () => {
10
+ // 以前的兄弟是新父级
11
+ const previousSiblingItem = Editor.node(editor, Path.previous(listItemPath));
12
+ if (previousSiblingItem) {
13
+ const [previousNode, previousPath] = previousSiblingItem;
14
+ const lastChildIndexOfPreviousNode = previousNode.children.length - 1;
15
+ const lastChildOfPreviousNode = previousNode.children[lastChildIndexOfPreviousNode];
16
+ const newPath = previousPath.concat(isNodeTypeList(lastChildOfPreviousNode)
17
+ ? [lastChildIndexOfPreviousNode, lastChildOfPreviousNode.children.length]
18
+ : [previousNode.children.length]);
19
+ if (!isNodeTypeList(lastChildOfPreviousNode)) {
20
+ // 创建新子列表
21
+ const type = listNode.type;
22
+ Transforms.wrapNodes(editor, { type, children: [] }, {
23
+ at: listItemPath
24
+ });
25
+ }
26
+ // 将当前listItem移动到子列表
27
+ Transforms.moveNodes(editor, {
28
+ at: listItemPath,
29
+ to: newPath
30
+ });
31
+ const currentListItemEntry = getListItemEntry(editor, {});
32
+ if (hasListInListItem(currentListItemEntry.listItem[0])) {
33
+ moveListItemSublistItemsToList(editor, {
34
+ fromListItem: currentListItemEntry.listItem,
35
+ toList: currentListItemEntry.list
36
+ });
37
+ }
38
+ }
39
+ });
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1kb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQWEsSUFBSSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxPQUFPLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBTzlELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBMkIsRUFBRSxFQUFFO0lBQzVGLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDeEIsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ25DLFlBQVk7UUFDWixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQXdCLENBQUM7UUFFcEcsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHLG1CQUFtQixDQUFDO1lBQ3pELE1BQU0sNEJBQTRCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBWSxDQUFDO1lBRS9GLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQy9CLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDekUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDdkMsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDMUMsU0FBUztnQkFDVCxNQUFNLElBQUksR0FBSSxRQUFvQixDQUFDLElBQUksQ0FBQztnQkFDeEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBYSxFQUFFO29CQUM1RCxFQUFFLEVBQUUsWUFBWTtpQkFDbkIsQ0FBQyxDQUFDO2FBQ047WUFDRCxvQkFBb0I7WUFDcEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixFQUFFLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBQztZQUVILE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFELElBQUksaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELDhCQUE4QixDQUFDLE1BQU0sRUFBRTtvQkFDbkMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFFBQVE7b0JBQzNDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxJQUFJO2lCQUNwQyxDQUFDLENBQUM7YUFDTjtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRWRpdG9yLCBOb2RlRW50cnksIFBhdGgsIFRyYW5zZm9ybXMsIEVsZW1lbnQsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XHJcbmltcG9ydCB7IGdldExpc3RJdGVtRW50cnkgfSBmcm9tICcuLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xyXG5pbXBvcnQgeyBoYXNMaXN0SW5MaXN0SXRlbSB9IGZyb20gJy4uL3F1ZXJpZXMvaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcclxuaW1wb3J0IHsgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0IH0gZnJvbSAnLi9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QnO1xyXG5pbXBvcnQgeyBpc05vZGVUeXBlTGlzdCB9IGZyb20gJy4uL3F1ZXJpZXMvaXMtbm9kZS10eXBlLWxpc3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb3ZlTGlzdEl0ZW1Eb3duT3B0aW9ucyB7XHJcbiAgICBsaXN0OiBOb2RlRW50cnk8QW5jZXN0b3I+O1xyXG4gICAgbGlzdEl0ZW06IE5vZGVFbnRyeTxBbmNlc3Rvcj47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBtb3ZlTGlzdEl0ZW1Eb3duID0gKGVkaXRvcjogRWRpdG9yLCB7IGxpc3QsIGxpc3RJdGVtIH06IE1vdmVMaXN0SXRlbURvd25PcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBbbGlzdE5vZGVdID0gbGlzdDtcclxuICAgIGNvbnN0IFssIGxpc3RJdGVtUGF0aF0gPSBsaXN0SXRlbTtcclxuXHJcbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xyXG4gICAgICAgIC8vIOS7peWJjeeahOWFhOW8n+aYr+aWsOeItue6p1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzU2libGluZ0l0ZW0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIFBhdGgucHJldmlvdXMobGlzdEl0ZW1QYXRoKSkgYXMgTm9kZUVudHJ5PEFuY2VzdG9yPjtcclxuXHJcbiAgICAgICAgaWYgKHByZXZpb3VzU2libGluZ0l0ZW0pIHtcclxuICAgICAgICAgICAgY29uc3QgW3ByZXZpb3VzTm9kZSwgcHJldmlvdXNQYXRoXSA9IHByZXZpb3VzU2libGluZ0l0ZW07XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4T2ZQcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgY29uc3QgbGFzdENoaWxkT2ZQcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuY2hpbGRyZW5bbGFzdENoaWxkSW5kZXhPZlByZXZpb3VzTm9kZV0gYXMgRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBwcmV2aW91c1BhdGguY29uY2F0KFxyXG4gICAgICAgICAgICAgICAgaXNOb2RlVHlwZUxpc3QobGFzdENoaWxkT2ZQcmV2aW91c05vZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBbbGFzdENoaWxkSW5kZXhPZlByZXZpb3VzTm9kZSwgbGFzdENoaWxkT2ZQcmV2aW91c05vZGUuY2hpbGRyZW4ubGVuZ3RoXVxyXG4gICAgICAgICAgICAgICAgICAgIDogW3ByZXZpb3VzTm9kZS5jaGlsZHJlbi5sZW5ndGhdXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzTm9kZVR5cGVMaXN0KGxhc3RDaGlsZE9mUHJldmlvdXNOb2RlKSkge1xyXG4gICAgICAgICAgICAgICAgLy8g5Yib5bu65paw5a2Q5YiX6KGoXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKGxpc3ROb2RlIGFzIEVsZW1lbnQpLnR5cGU7XHJcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIHsgdHlwZSwgY2hpbGRyZW46IFtdIH0gYXMgRWxlbWVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGF0OiBsaXN0SXRlbVBhdGhcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWwhuW9k+WJjWxpc3RJdGVt56e75Yqo5Yiw5a2Q5YiX6KGoXHJcbiAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xyXG4gICAgICAgICAgICAgICAgYXQ6IGxpc3RJdGVtUGF0aCxcclxuICAgICAgICAgICAgICAgIHRvOiBuZXdQYXRoXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudExpc3RJdGVtRW50cnkgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xyXG4gICAgICAgICAgICBpZiAoaGFzTGlzdEluTGlzdEl0ZW0oY3VycmVudExpc3RJdGVtRW50cnkubGlzdEl0ZW1bMF0pKSB7XHJcbiAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3QoZWRpdG9yLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJvbUxpc3RJdGVtOiBjdXJyZW50TGlzdEl0ZW1FbnRyeS5saXN0SXRlbSxcclxuICAgICAgICAgICAgICAgICAgICB0b0xpc3Q6IGN1cnJlbnRMaXN0SXRlbUVudHJ5Lmxpc3RcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn07XHJcbiJdfQ==
@@ -1,43 +1,43 @@
1
- import { Path, Transforms } from 'slate';
2
- import { moveChildren } from '../../../transforms/move-children';
3
- import { getListItemSublist } from '../queries/get-list-item-sublist';
4
- import * as TheQueries from '../../../queries';
5
- /**
6
- * Move fromListItem sublist list items to the end of `toListItem` sublist.
7
- * If there is no `toListItem` sublist, insert one.
8
- */
9
- export const moveListItemSublistItemsToListItemSublist = (editor, { fromListItem, toListItem, start }, options) => {
10
- const [, fromListItemPath] = fromListItem;
11
- const [toListItemNode, toListItemPath] = toListItem;
12
- const fromListItemSublist = getListItemSublist(fromListItem, options);
13
- if (!fromListItemSublist)
14
- return 0;
15
- const [, fromListItemSublistPath] = fromListItemSublist;
16
- const toListItemSublist = getListItemSublist(toListItem, options);
17
- let to;
18
- if (!toListItemSublist) {
19
- const fromList = TheQueries.getParent(editor, fromListItemPath);
20
- if (!fromList)
21
- return 0;
22
- const [fromListNode] = fromList;
23
- const fromListType = fromListNode.type;
24
- const toListItemSublistPath = toListItemPath.concat([toListItemNode.children.length]);
25
- Transforms.insertNodes(editor, { type: fromListType, children: [] }, { at: toListItemSublistPath });
26
- to = toListItemSublistPath.concat([0]);
27
- }
28
- else if (start) {
29
- const [, toListItemSublistPath] = toListItemSublist;
30
- to = toListItemSublistPath.concat([0]);
31
- }
32
- else {
33
- to = Path.next(TheQueries.getLastChildPath(toListItemSublist));
34
- }
35
- const moved = moveChildren(editor, {
36
- at: Path.previous(fromListItemSublistPath),
37
- to
38
- });
39
- // Remove the empty list
40
- Transforms.delete(editor, { at: fromListItemPath });
41
- return moved;
42
- };
1
+ import { Path, Transforms } from 'slate';
2
+ import { moveChildren } from '../../../transforms/move-children';
3
+ import { getListItemSublist } from '../queries/get-list-item-sublist';
4
+ import * as TheQueries from '../../../queries';
5
+ /**
6
+ * Move fromListItem sublist list items to the end of `toListItem` sublist.
7
+ * If there is no `toListItem` sublist, insert one.
8
+ */
9
+ export const moveListItemSublistItemsToListItemSublist = (editor, { fromListItem, toListItem, start }, options) => {
10
+ const [, fromListItemPath] = fromListItem;
11
+ const [toListItemNode, toListItemPath] = toListItem;
12
+ const fromListItemSublist = getListItemSublist(fromListItem, options);
13
+ if (!fromListItemSublist)
14
+ return 0;
15
+ const [, fromListItemSublistPath] = fromListItemSublist;
16
+ const toListItemSublist = getListItemSublist(toListItem, options);
17
+ let to;
18
+ if (!toListItemSublist) {
19
+ const fromList = TheQueries.getParent(editor, fromListItemPath);
20
+ if (!fromList)
21
+ return 0;
22
+ const [fromListNode] = fromList;
23
+ const fromListType = fromListNode.type;
24
+ const toListItemSublistPath = toListItemPath.concat([toListItemNode.children.length]);
25
+ Transforms.insertNodes(editor, { type: fromListType, children: [] }, { at: toListItemSublistPath });
26
+ to = toListItemSublistPath.concat([0]);
27
+ }
28
+ else if (start) {
29
+ const [, toListItemSublistPath] = toListItemSublist;
30
+ to = toListItemSublistPath.concat([0]);
31
+ }
32
+ else {
33
+ to = Path.next(TheQueries.getLastChildPath(toListItemSublist));
34
+ }
35
+ const moved = moveChildren(editor, {
36
+ at: Path.previous(fromListItemSublistPath),
37
+ to
38
+ });
39
+ // Remove the empty list
40
+ Transforms.delete(editor, { at: fromListItemPath });
41
+ return moved;
42
+ };
43
43
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1saXN0LWl0ZW0tc3VibGlzdC1pdGVtcy10by1saXN0LWl0ZW0tc3VibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0IsSUFBSSxFQUFFLFVBQVUsRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQW1CL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsQ0FDckQsTUFBYyxFQUNkLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9ELEVBQ3JGLE9BQWEsRUFDZixFQUFFO0lBQ0EsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUM7SUFFcEQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLG1CQUFtQjtRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxFQUFFLHVCQUF1QixDQUFDLEdBQUcsbUJBQW1CLENBQUM7SUFFeEQsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbEUsSUFBSSxFQUFRLENBQUM7SUFFYixJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDcEIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUM7UUFFaEMsTUFBTSxZQUFZLEdBQUksWUFBd0IsQ0FBQyxJQUFJLENBQUM7UUFDcEQsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRS9HLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDO1NBQU0sSUFBSSxLQUFLLEVBQUU7UUFDZCxNQUFNLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3BELEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQztRQUMxQyxFQUFFO0tBQ0wsQ0FBQyxDQUFDO0lBRUgsd0JBQXdCO0lBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUVwRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRWRpdG9yLCBOb2RlRW50cnksIFBhdGgsIFRyYW5zZm9ybXMsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBtb3ZlQ2hpbGRyZW4gfSBmcm9tICcuLi8uLi8uLi90cmFuc2Zvcm1zL21vdmUtY2hpbGRyZW4nO1xuaW1wb3J0IHsgZ2V0TGlzdEl0ZW1TdWJsaXN0IH0gZnJvbSAnLi4vcXVlcmllcy9nZXQtbGlzdC1pdGVtLXN1Ymxpc3QnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IGl0ZW0gdG8gbWVyZ2UuXG4gICAgICovXG4gICAgZnJvbUxpc3RJdGVtOiBOb2RlRW50cnk8QW5jZXN0b3I+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGxpc3QgaXRlbSB3aGVyZSB0byBtZXJnZS5cbiAgICAgKi9cbiAgICB0b0xpc3RJdGVtOiBOb2RlRW50cnk8QW5jZXN0b3I+O1xuXG4gICAgLyoqXG4gICAgICogTW92ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGxpc3QgaW5zdGVhZCBvZiB0aGUgZW5kLlxuICAgICAqL1xuICAgIHN0YXJ0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNb3ZlIGZyb21MaXN0SXRlbSBzdWJsaXN0IGxpc3QgaXRlbXMgdG8gdGhlIGVuZCBvZiBgdG9MaXN0SXRlbWAgc3VibGlzdC5cbiAqIElmIHRoZXJlIGlzIG5vIGB0b0xpc3RJdGVtYCBzdWJsaXN0LCBpbnNlcnQgb25lLlxuICovXG5leHBvcnQgY29uc3QgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QgPSAoXG4gICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgeyBmcm9tTGlzdEl0ZW0sIHRvTGlzdEl0ZW0sIHN0YXJ0IH06IE1vdmVMaXN0SXRlbVN1Ymxpc3RJdGVtc1RvTGlzdEl0ZW1TdWJsaXN0T3B0aW9ucyxcbiAgICBvcHRpb25zPzogYW55XG4pID0+IHtcbiAgICBjb25zdCBbLCBmcm9tTGlzdEl0ZW1QYXRoXSA9IGZyb21MaXN0SXRlbTtcbiAgICBjb25zdCBbdG9MaXN0SXRlbU5vZGUsIHRvTGlzdEl0ZW1QYXRoXSA9IHRvTGlzdEl0ZW07XG5cbiAgICBjb25zdCBmcm9tTGlzdEl0ZW1TdWJsaXN0ID0gZ2V0TGlzdEl0ZW1TdWJsaXN0KGZyb21MaXN0SXRlbSwgb3B0aW9ucyk7XG4gICAgaWYgKCFmcm9tTGlzdEl0ZW1TdWJsaXN0KSByZXR1cm4gMDtcbiAgICBjb25zdCBbLCBmcm9tTGlzdEl0ZW1TdWJsaXN0UGF0aF0gPSBmcm9tTGlzdEl0ZW1TdWJsaXN0O1xuXG4gICAgY29uc3QgdG9MaXN0SXRlbVN1Ymxpc3QgPSBnZXRMaXN0SXRlbVN1Ymxpc3QodG9MaXN0SXRlbSwgb3B0aW9ucyk7XG5cbiAgICBsZXQgdG86IFBhdGg7XG5cbiAgICBpZiAoIXRvTGlzdEl0ZW1TdWJsaXN0KSB7XG4gICAgICAgIGNvbnN0IGZyb21MaXN0ID0gVGhlUXVlcmllcy5nZXRQYXJlbnQoZWRpdG9yLCBmcm9tTGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgaWYgKCFmcm9tTGlzdCkgcmV0dXJuIDA7XG4gICAgICAgIGNvbnN0IFtmcm9tTGlzdE5vZGVdID0gZnJvbUxpc3Q7XG5cbiAgICAgICAgY29uc3QgZnJvbUxpc3RUeXBlID0gKGZyb21MaXN0Tm9kZSBhcyBFbGVtZW50KS50eXBlO1xuICAgICAgICBjb25zdCB0b0xpc3RJdGVtU3VibGlzdFBhdGggPSB0b0xpc3RJdGVtUGF0aC5jb25jYXQoW3RvTGlzdEl0ZW1Ob2RlLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgeyB0eXBlOiBmcm9tTGlzdFR5cGUsIGNoaWxkcmVuOiBbXSB9IGFzIEVsZW1lbnQsIHsgYXQ6IHRvTGlzdEl0ZW1TdWJsaXN0UGF0aCB9KTtcblxuICAgICAgICB0byA9IHRvTGlzdEl0ZW1TdWJsaXN0UGF0aC5jb25jYXQoWzBdKTtcbiAgICB9IGVsc2UgaWYgKHN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IFssIHRvTGlzdEl0ZW1TdWJsaXN0UGF0aF0gPSB0b0xpc3RJdGVtU3VibGlzdDtcbiAgICAgICAgdG8gPSB0b0xpc3RJdGVtU3VibGlzdFBhdGguY29uY2F0KFswXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdG8gPSBQYXRoLm5leHQoVGhlUXVlcmllcy5nZXRMYXN0Q2hpbGRQYXRoKHRvTGlzdEl0ZW1TdWJsaXN0KSk7XG4gICAgfVxuXG4gICAgY29uc3QgbW92ZWQgPSBtb3ZlQ2hpbGRyZW4oZWRpdG9yLCB7XG4gICAgICAgIGF0OiBQYXRoLnByZXZpb3VzKGZyb21MaXN0SXRlbVN1Ymxpc3RQYXRoKSxcbiAgICAgICAgdG9cbiAgICB9KTtcblxuICAgIC8vIFJlbW92ZSB0aGUgZW1wdHkgbGlzdFxuICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogZnJvbUxpc3RJdGVtUGF0aCB9KTtcblxuICAgIHJldHVybiBtb3ZlZDtcbn07XG4iXX0=