@worktile/theia 3.0.8 → 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 +14357 -14343
  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 -92
  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 +132 -132
  77. package/esm2015/components/toolbar-group/toolbar-group.component.js +116 -116
  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 +439 -439
  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 +79 -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 +121 -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 +369 -369
  159. package/esm2015/plugins/image/image.editor.js +57 -57
  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 +162 -162
  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 +52 -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 +161 -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 +102 -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 +61 -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 +89 -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 +49 -49
  321. package/esm2015/services/context.service.js +59 -59
  322. package/esm2015/services/table-contextmenu.service.js +189 -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 +13156 -13142
  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 -74
  420. package/plugins/image/image.editor.d.ts +12 -12
  421. package/plugins/image/image.plugin.d.ts +7 -7
  422. package/plugins/indent/indent.editor.d.ts +10 -10
  423. package/plugins/indent/indent.plugin.d.ts +8 -8
  424. package/plugins/indent/on-keydown-indent.d.ts +3 -3
  425. package/plugins/index.d.ts +1 -1
  426. package/plugins/inline-code/inline-code.component.d.ts +9 -9
  427. package/plugins/inline-code/inline-code.editor.d.ts +7 -7
  428. package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
  429. package/plugins/link/edit/link-edit.component.d.ts +36 -36
  430. package/plugins/link/hover/link-hover.component.d.ts +15 -15
  431. package/plugins/link/link.component.d.ts +39 -39
  432. package/plugins/link/link.editor.d.ts +7 -7
  433. package/plugins/link/link.plugin.d.ts +2 -2
  434. package/plugins/link/link.types.d.ts +9 -9
  435. package/plugins/list/components/bulleted-list.component.d.ts +15 -15
  436. package/plugins/list/components/list-item.component.d.ts +20 -20
  437. package/plugins/list/components/numbered-list.component.d.ts +16 -16
  438. package/plugins/list/list.editor.d.ts +12 -12
  439. package/plugins/list/list.plugin.d.ts +3 -3
  440. package/plugins/list/normalizers/get-list-normalizer.d.ts +6 -6
  441. package/plugins/list/normalizers/normalize-list-item.d.ts +5 -5
  442. package/plugins/list/normalizers/normalize-no.d.ts +2 -2
  443. package/plugins/list/on-key-down-list.d.ts +2 -2
  444. package/plugins/list/queries/get-list-item-entry.d.ts +10 -10
  445. package/plugins/list/queries/get-list-item-sublist.d.ts +6 -6
  446. package/plugins/list/queries/get-list-types.d.ts +2 -2
  447. package/plugins/list/queries/get-start-list-item.d.ts +8 -8
  448. package/plugins/list/queries/has-list-in-list-item.d.ts +15 -15
  449. package/plugins/list/queries/is-in-list.d.ts +2 -2
  450. package/plugins/list/queries/is-list-nested.d.ts +5 -5
  451. package/plugins/list/queries/is-list.d.ts +2 -2
  452. package/plugins/list/queries/is-node-type-list.d.ts +2 -2
  453. package/plugins/list/queries/is-selection-at-list-item-start.d.ts +5 -5
  454. package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -5
  455. package/plugins/list/queries/is-single-list-item.d.ts +5 -5
  456. package/plugins/list/transforms/insert-list-data.d.ts +12 -12
  457. package/plugins/list/transforms/insert-list-item.d.ts +5 -5
  458. package/plugins/list/transforms/move-list-item-down.d.ts +6 -6
  459. package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +20 -20
  460. package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +19 -19
  461. package/plugins/list/transforms/move-list-item-up.d.ts +10 -10
  462. package/plugins/list/transforms/unwrap-list.d.ts +2 -2
  463. package/plugins/list/types.d.ts +7 -7
  464. package/plugins/mark/mark.editor.d.ts +8 -8
  465. package/plugins/mark/mark.plugin.d.ts +3 -3
  466. package/plugins/node-id/node-id.plugin.d.ts +8 -8
  467. package/plugins/normalizers/insert-paragraph-nodes.d.ts +7 -7
  468. package/plugins/normalizers/remove-empty-nodes.d.ts +7 -7
  469. package/plugins/normalizers/trailing-node.plugin.d.ts +9 -9
  470. package/plugins/paint-format/paint-format.editor.d.ts +8 -8
  471. package/plugins/public-api.d.ts +15 -15
  472. package/plugins/quick-insert/components/quick-insert.component.d.ts +28 -28
  473. package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +28 -28
  474. package/plugins/quick-insert/quick-insert.editor.d.ts +7 -7
  475. package/plugins/quick-insert/quick-insert.plugin.d.ts +10 -10
  476. package/plugins/soft-break/soft-break.plugin.d.ts +5 -5
  477. package/plugins/soft-break/soft-break.types.d.ts +8 -8
  478. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +24 -24
  479. package/plugins/table/components/row/row.component.d.ts +14 -14
  480. package/plugins/table/components/table.component.d.ts +79 -79
  481. package/plugins/table/components/td/td.component.d.ts +95 -95
  482. package/plugins/table/components/toolbar/table-options.component.d.ts +20 -20
  483. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +38 -38
  484. package/plugins/table/table.editor.d.ts +25 -25
  485. package/plugins/table/table.plugin.d.ts +3 -3
  486. package/plugins/table/table.service.d.ts +30 -30
  487. package/plugins/table/table.store.d.ts +71 -71
  488. package/plugins/table/table.types.d.ts +67 -67
  489. package/plugins/table/toolbar-item.component.d.ts +17 -17
  490. package/plugins/table/transforms/clear-cell.d.ts +6 -6
  491. package/plugins/table/transforms/clear-table-node.d.ts +6 -6
  492. package/plugins/table/transforms/insert-column.d.ts +12 -12
  493. package/plugins/table/transforms/insert-row.d.ts +6 -6
  494. package/plugins/table/transforms/insert-table.d.ts +6 -6
  495. package/plugins/table/transforms/remove-column.d.ts +3 -3
  496. package/plugins/table/transforms/remove-row.d.ts +3 -3
  497. package/plugins/table/transforms/remove-table.d.ts +3 -3
  498. package/plugins/table/utils/add-columns.d.ts +2 -2
  499. package/plugins/table/utils/calc-anchor-position.d.ts +6 -6
  500. package/plugins/table/utils/calc-span.d.ts +11 -11
  501. package/plugins/table/utils/create-cell.d.ts +16 -16
  502. package/plugins/table/utils/create-row.d.ts +7 -7
  503. package/plugins/table/utils/create-table.d.ts +7 -7
  504. package/plugins/table/utils/get-base-height.d.ts +9 -9
  505. package/plugins/table/utils/get-select-cell-node.d.ts +7 -7
  506. package/plugins/table/utils/index.d.ts +7 -7
  507. package/plugins/table/utils/is-range-in-table.d.ts +6 -6
  508. package/plugins/table/utils/is-selection-in-table.d.ts +6 -6
  509. package/plugins/table/utils/is-virtual-key.d.ts +1 -1
  510. package/plugins/table/utils/merge-cell.d.ts +21 -21
  511. package/plugins/table/utils/next-path.d.ts +2 -2
  512. package/plugins/table/utils/normalize-table.d.ts +2 -2
  513. package/plugins/table/utils/remove-columns.d.ts +2 -2
  514. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +3 -3
  515. package/plugins/table/utils/split-cell.d.ts +4 -4
  516. package/plugins/table/utils/table-position.d.ts +97 -97
  517. package/plugins/todo-item/todo-item.component.d.ts +21 -21
  518. package/plugins/todo-item/todo-item.editor.d.ts +5 -5
  519. package/plugins/todo-item/todo-item.plugin.d.ts +5 -5
  520. package/plugins/vertical-align/toolbar-item.component.d.ts +25 -25
  521. package/plugins/vertical-align/vertical-align.editor.d.ts +7 -7
  522. package/public-api.d.ts +20 -20
  523. package/queries/anchor-block-entry.d.ts +2 -2
  524. package/queries/anchor-block.d.ts +2 -2
  525. package/queries/anchor-inline-entry.d.ts +2 -2
  526. package/queries/find-descendant.d.ts +10 -10
  527. package/queries/find-node.d.ts +15 -15
  528. package/queries/find-path.d.ts +6 -6
  529. package/queries/get-above-by-type.d.ts +6 -6
  530. package/queries/get-above.d.ts +6 -6
  531. package/queries/get-anchor-block-entry.d.ts +2 -2
  532. package/queries/get-block-above.d.ts +7 -7
  533. package/queries/get-block-card-above.d.ts +7 -7
  534. package/queries/get-block-card-cursor.d.ts +2 -2
  535. package/queries/get-container-blocks.d.ts +2 -2
  536. package/queries/get-directly-parent.d.ts +2 -2
  537. package/queries/get-insert-elements-path.d.ts +7 -7
  538. package/queries/get-last-child-path.d.ts +6 -6
  539. package/queries/get-last-node.d.ts +2 -2
  540. package/queries/get-next-sibling-nodes.d.ts +7 -7
  541. package/queries/get-node.d.ts +2 -2
  542. package/queries/get-nodes-by-type.d.ts +6 -6
  543. package/queries/get-nodes.d.ts +4 -4
  544. package/queries/get-parent.d.ts +7 -7
  545. package/queries/get-plain-text.d.ts +6 -6
  546. package/queries/get-plugin-by-toolbar.d.ts +3 -3
  547. package/queries/get-point-before.d.ts +38 -38
  548. package/queries/get-point-from-location.d.ts +5 -5
  549. package/queries/get-previous-path.d.ts +2 -2
  550. package/queries/get-rang-from-block-start.d.ts +9 -9
  551. package/queries/get-range-before.d.ts +7 -7
  552. package/queries/get-selection-marks.d.ts +12 -12
  553. package/queries/get-selection-nodes-by-type.d.ts +3 -3
  554. package/queries/get-text.d.ts +6 -6
  555. package/queries/get-toolbar-disabled.d.ts +4 -4
  556. package/queries/index.d.ts +58 -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 -49
  583. package/services/table-contextmenu.service.d.ts +25 -25
  584. package/services/toolbar.service.d.ts +9 -9
  585. package/shortcuts/index.d.ts +2 -2
  586. package/shortcuts/mark.d.ts +2 -2
  587. package/transforms/apply-deep-to-nodes.d.ts +12 -12
  588. package/transforms/clear-marks.d.ts +2 -2
  589. package/transforms/close-conversion-hint.d.ts +2 -2
  590. package/transforms/delete-element.d.ts +2 -2
  591. package/transforms/handle-continual-delete-backward.d.ts +3 -3
  592. package/transforms/handle-continual-insert-break.d.ts +3 -3
  593. package/transforms/index.d.ts +18 -18
  594. package/transforms/insert-elements.d.ts +2 -2
  595. package/transforms/insert-paragraph.d.ts +2 -2
  596. package/transforms/merge-deep-to-nodes.d.ts +5 -5
  597. package/transforms/move-children.d.ts +24 -24
  598. package/transforms/on-keydown-reset-block-type.d.ts +3 -3
  599. package/transforms/set-end-selection.d.ts +2 -2
  600. package/transforms/set-marks.d.ts +12 -12
  601. package/transforms/set-node.d.ts +2 -2
  602. package/transforms/split-node.d.ts +3 -3
  603. package/transforms/un-hang-range.d.ts +10 -10
  604. package/transforms/un-wrap.d.ts +3 -3
  605. package/transforms/unwrap-nodes-by-type.d.ts +6 -6
  606. package/utils/auto-focus.d.ts +2 -2
  607. package/utils/auto-scroll-view.d.ts +6 -6
  608. package/utils/cast-array.d.ts +1 -1
  609. package/utils/common.d.ts +2 -2
  610. package/utils/create-empty-paragraph.d.ts +2 -2
  611. package/utils/data-transform.d.ts +6 -6
  612. package/utils/dom.d.ts +10 -10
  613. package/utils/editor-uuid.d.ts +3 -3
  614. package/utils/fragment.d.ts +10 -10
  615. package/utils/get-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,25 +1,25 @@
1
- import { Element } from 'slate';
2
- import { createPluginFactory, getPluginOptions } from '../../core';
3
- import { PluginKeys } from '../../interfaces';
4
- import * as TheQueries from '../../queries';
5
- export const withGetFragment = (editor) => {
6
- var _a, _b;
7
- const { getFragment } = editor;
8
- const elementKinds = (_b = (_a = getPluginOptions(editor, PluginKeys.getFragment)) === null || _a === void 0 ? void 0 : _a.types) !== null && _b !== void 0 ? _b : [];
9
- editor.getFragment = () => {
10
- const { selection } = editor;
11
- const containerBlocks = [...elementKinds, ...TheQueries.getContainerBlocks(editor)];
12
- if (selection && selection.anchor.path[0] === selection.focus.path[0]) {
13
- const fragmentData = getFragment();
14
- const nodes = TheQueries.getSelectionNodesByType(editor, fragmentData, containerBlocks);
15
- return nodes && Element.isElement(nodes) ? nodes.children : fragmentData;
16
- }
17
- return getFragment();
18
- };
19
- return editor;
20
- };
21
- export const createGetFragmentPlugin = createPluginFactory({
22
- key: PluginKeys.getFragment,
23
- withOverrides: withGetFragment
24
- });
1
+ import { Element } from 'slate';
2
+ import { createPluginFactory, getPluginOptions } from '../../core';
3
+ import { PluginKeys } from '../../interfaces';
4
+ import * as TheQueries from '../../queries';
5
+ export const withGetFragment = (editor) => {
6
+ var _a, _b;
7
+ const { getFragment } = editor;
8
+ const elementKinds = (_b = (_a = getPluginOptions(editor, PluginKeys.getFragment)) === null || _a === void 0 ? void 0 : _a.types) !== null && _b !== void 0 ? _b : [];
9
+ editor.getFragment = () => {
10
+ const { selection } = editor;
11
+ const containerBlocks = [...elementKinds, ...TheQueries.getContainerBlocks(editor)];
12
+ if (selection && selection.anchor.path[0] === selection.focus.path[0]) {
13
+ const fragmentData = getFragment();
14
+ const nodes = TheQueries.getSelectionNodesByType(editor, fragmentData, containerBlocks);
15
+ return nodes && Element.isElement(nodes) ? nodes.children : fragmentData;
16
+ }
17
+ return getFragment();
18
+ };
19
+ return editor;
20
+ };
21
+ export const createGetFragmentPlugin = createPluginFactory({
22
+ key: PluginKeys.getFragment,
23
+ withOverrides: withGetFragment
24
+ });
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZyYWdtZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2NvbW1vbi9nZXQtZnJhZ21lbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQU01QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBbUIsTUFBUyxFQUFFLEVBQUU7O0lBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDL0IsTUFBTSxZQUFZLEdBQUcsTUFBQSxNQUFBLGdCQUFnQixDQUEyQixNQUFNLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQywwQ0FBRSxLQUFLLG1DQUFJLEVBQUUsQ0FBQztJQUU3RyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUN0QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNwRixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRSxNQUFNLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztZQUN4RixPQUFPLEtBQUssSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDNUU7UUFDRCxPQUFPLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUEyQjtJQUNqRixHQUFHLEVBQUUsVUFBVSxDQUFDLFdBQVc7SUFDM0IsYUFBYSxFQUFFLGVBQWU7Q0FDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RnJhZ21lbnRQbHVnaW5PcHRpb25zIHtcbiAgICB0eXBlcz86IEN1c3RvbUVsZW1lbnRLaW5kc1tdO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aEdldEZyYWdtZW50ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0RnJhZ21lbnQgfSA9IGVkaXRvcjtcbiAgICBjb25zdCBlbGVtZW50S2luZHMgPSBnZXRQbHVnaW5PcHRpb25zPEdldEZyYWdtZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmdldEZyYWdtZW50KT8udHlwZXMgPz8gW107XG5cbiAgICBlZGl0b3IuZ2V0RnJhZ21lbnQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJsb2NrcyA9IFsuLi5lbGVtZW50S2luZHMsIC4uLlRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKGVkaXRvcildO1xuICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5hbmNob3IucGF0aFswXSA9PT0gc2VsZWN0aW9uLmZvY3VzLnBhdGhbMF0pIHtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RGF0YSA9IGdldEZyYWdtZW50KCk7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IFRoZVF1ZXJpZXMuZ2V0U2VsZWN0aW9uTm9kZXNCeVR5cGUoZWRpdG9yLCBmcmFnbWVudERhdGEsIGNvbnRhaW5lckJsb2Nrcyk7XG4gICAgICAgICAgICByZXR1cm4gbm9kZXMgJiYgRWxlbWVudC5pc0VsZW1lbnQobm9kZXMpID8gbm9kZXMuY2hpbGRyZW4gOiBmcmFnbWVudERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEZyYWdtZW50KCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlR2V0RnJhZ21lbnRQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PEdldEZyYWdtZW50UGx1Z2luT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5nZXRGcmFnbWVudCxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoR2V0RnJhZ21lbnRcbn0pO1xuIl19
@@ -1,31 +1,31 @@
1
- import { createPluginFactory } from '../../core';
2
- import { PluginKeys } from '../../interfaces';
3
- export const UNDOING = new WeakMap();
4
- export const REDOING = new WeakMap();
5
- export const withTheHistory = (editor) => {
6
- const { undo, redo } = editor;
7
- editor.undo = () => {
8
- UNDOING.set(editor, true);
9
- undo();
10
- UNDOING.set(editor, false);
11
- };
12
- editor.redo = () => {
13
- REDOING.set(editor, true);
14
- redo();
15
- REDOING.set(editor, false);
16
- };
17
- return editor;
18
- };
19
- export const TheHistoryEditor = {
20
- isUndoing(editor) {
21
- return UNDOING.get(editor);
22
- },
23
- isRedoing(editor) {
24
- return REDOING.get(editor);
25
- }
26
- };
27
- export const createTheHistoryPlugin = createPluginFactory({
28
- key: PluginKeys.theHistory,
29
- withOverrides: withTheHistory
30
- });
1
+ import { createPluginFactory } from '../../core';
2
+ import { PluginKeys } from '../../interfaces';
3
+ export const UNDOING = new WeakMap();
4
+ export const REDOING = new WeakMap();
5
+ export const withTheHistory = (editor) => {
6
+ const { undo, redo } = editor;
7
+ editor.undo = () => {
8
+ UNDOING.set(editor, true);
9
+ undo();
10
+ UNDOING.set(editor, false);
11
+ };
12
+ editor.redo = () => {
13
+ REDOING.set(editor, true);
14
+ redo();
15
+ REDOING.set(editor, false);
16
+ };
17
+ return editor;
18
+ };
19
+ export const TheHistoryEditor = {
20
+ isUndoing(editor) {
21
+ return UNDOING.get(editor);
22
+ },
23
+ isRedoing(editor) {
24
+ return REDOING.get(editor);
25
+ }
26
+ };
27
+ export const createTheHistoryPlugin = createPluginFactory({
28
+ key: PluginKeys.theHistory,
29
+ withOverrides: withTheHistory
30
+ });
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb21tb24vaGlzdG9yeS5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUM3RCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU5QixNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksRUFBRSxDQUFDO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLEVBQUUsQ0FBQztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsU0FBUyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsbUJBQW1CLENBQUM7SUFDdEQsR0FBRyxFQUFFLFVBQVUsQ0FBQyxVQUFVO0lBQzFCLGFBQWEsRUFBRSxjQUFjO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFVORE9JTkcgPSBuZXcgV2Vha01hcDxFZGl0b3IsIGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG5leHBvcnQgY29uc3QgUkVET0lORyA9IG5ldyBXZWFrTWFwPEVkaXRvciwgYm9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcblxuZXhwb3J0IGNvbnN0IHdpdGhUaGVIaXN0b3J5ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgdW5kbywgcmVkbyB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLnVuZG8gPSAoKSA9PiB7XG4gICAgICAgIFVORE9JTkcuc2V0KGVkaXRvciwgdHJ1ZSk7XG4gICAgICAgIHVuZG8oKTtcbiAgICAgICAgVU5ET0lORy5zZXQoZWRpdG9yLCBmYWxzZSk7XG4gICAgfTtcbiAgICBlZGl0b3IucmVkbyA9ICgpID0+IHtcbiAgICAgICAgUkVET0lORy5zZXQoZWRpdG9yLCB0cnVlKTtcbiAgICAgICAgcmVkbygpO1xuICAgICAgICBSRURPSU5HLnNldChlZGl0b3IsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBUaGVIaXN0b3J5RWRpdG9yID0ge1xuICAgIGlzVW5kb2luZyhlZGl0b3I6IEVkaXRvcik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gVU5ET0lORy5nZXQoZWRpdG9yKTtcbiAgICB9LFxuICAgIGlzUmVkb2luZyhlZGl0b3I6IEVkaXRvcik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gUkVET0lORy5nZXQoZWRpdG9yKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVGhlSGlzdG9yeVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy50aGVIaXN0b3J5LFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhUaGVIaXN0b3J5XG59KTtcbiJdfQ==
@@ -1,90 +1,90 @@
1
- import { Editor, Transforms, Range } from 'slate';
2
- import { timer } from 'rxjs';
3
- import { AngularEditor, hotkeys } from 'slate-angular';
4
- import { createPluginFactory } from '../../core';
5
- import { PluginKeys } from '../../interfaces';
6
- import { isInline } from '../../utils/is-inline';
7
- import * as TheQueries from '../../queries';
8
- export const withMoveSelection = (editor) => {
9
- const { onClick, deleteBackward, onKeydown } = editor;
10
- editor.onClick = (event) => {
11
- const domSelection = window.getSelection();
12
- if (domSelection && !domSelection.isCollapsed && event.detail >= 2 && editor.selection) {
13
- const slateSelection = AngularEditor.toSlateRange(editor, domSelection);
14
- const isNextStart = slateSelection.focus.offset === 0;
15
- if (Range.isExpanded(slateSelection) && Range.isForward(slateSelection) && isNextStart) {
16
- const beforePoint = Editor.before(editor, slateSelection.focus);
17
- const changedRange = Editor.range(editor, slateSelection.anchor, beforePoint);
18
- // slate-angular throttle 80ms, so wait selectionchange complete
19
- timer(81).subscribe(() => {
20
- Transforms.select(editor, changedRange);
21
- });
22
- return;
23
- }
24
- }
25
- onClick(event);
26
- };
27
- editor.deleteBackward = unit => {
28
- const { selection } = editor;
29
- const inlineBlockEntry = Editor.above(editor, {
30
- match: n => Editor.isInline(editor, n)
31
- });
32
- // fix deleteBackward on the start of inline block
33
- // deleteBackward logic bug
34
- if (inlineBlockEntry && !Editor.isVoid(editor, inlineBlockEntry[0]) && selection.anchor.offset === 0) {
35
- const beforePoint = TheQueries.getPointBefore(editor, selection.focus);
36
- Transforms.select(editor, beforePoint);
37
- }
38
- deleteBackward(unit);
39
- };
40
- editor.onKeydown = (event) => {
41
- const { selection } = editor;
42
- if (!selection || !selection.anchor || !selection.focus) {
43
- onKeydown(event);
44
- return;
45
- }
46
- const isMoveBackward = hotkeys.isMoveBackward(event);
47
- const isMoveForward = hotkeys.isMoveForward(event);
48
- const isCollapsed = selection && TheQueries.isCollapsed(selection);
49
- const isInlineNode = isInline(editor);
50
- if (isCollapsed && isMoveForward) {
51
- let isInlineCodeBefore = false;
52
- if (!isInlineNode) {
53
- try {
54
- const { path } = Editor.after(editor, selection);
55
- if (path) {
56
- isInlineCodeBefore = isInline(editor, path);
57
- }
58
- }
59
- catch (error) { }
60
- }
61
- if (isInlineNode || isInlineCodeBefore) {
62
- event.preventDefault();
63
- Transforms.move(editor, { unit: 'offset' });
64
- return;
65
- }
66
- }
67
- if (isCollapsed && isMoveBackward) {
68
- let isInlineCodeAfter = false;
69
- if (!isInlineNode) {
70
- try {
71
- const { path } = Editor.before(editor, selection);
72
- isInlineCodeAfter = isInline(editor, path);
73
- }
74
- catch (error) { }
75
- }
76
- if (isInlineNode || isInlineCodeAfter) {
77
- event.preventDefault();
78
- Transforms.move(editor, { unit: 'offset', reverse: true });
79
- return;
80
- }
81
- }
82
- onKeydown(event);
83
- };
84
- return editor;
85
- };
86
- export const createMoveSelectionPlugin = createPluginFactory({
87
- key: PluginKeys.moveSelection,
88
- withOverrides: withMoveSelection
89
- });
1
+ import { Editor, Transforms, Range } from 'slate';
2
+ import { timer } from 'rxjs';
3
+ import { AngularEditor, hotkeys } from 'slate-angular';
4
+ import { createPluginFactory } from '../../core';
5
+ import { PluginKeys } from '../../interfaces';
6
+ import { isInline } from '../../utils/is-inline';
7
+ import * as TheQueries from '../../queries';
8
+ export const withMoveSelection = (editor) => {
9
+ const { onClick, deleteBackward, onKeydown } = editor;
10
+ editor.onClick = (event) => {
11
+ const domSelection = window.getSelection();
12
+ if (domSelection && !domSelection.isCollapsed && event.detail >= 2 && editor.selection) {
13
+ const slateSelection = AngularEditor.toSlateRange(editor, domSelection);
14
+ const isNextStart = slateSelection.focus.offset === 0;
15
+ if (Range.isExpanded(slateSelection) && Range.isForward(slateSelection) && isNextStart) {
16
+ const beforePoint = Editor.before(editor, slateSelection.focus);
17
+ const changedRange = Editor.range(editor, slateSelection.anchor, beforePoint);
18
+ // slate-angular throttle 80ms, so wait selectionchange complete
19
+ timer(81).subscribe(() => {
20
+ Transforms.select(editor, changedRange);
21
+ });
22
+ return;
23
+ }
24
+ }
25
+ onClick(event);
26
+ };
27
+ editor.deleteBackward = unit => {
28
+ const { selection } = editor;
29
+ const inlineBlockEntry = Editor.above(editor, {
30
+ match: n => Editor.isInline(editor, n)
31
+ });
32
+ // fix deleteBackward on the start of inline block
33
+ // deleteBackward logic bug
34
+ if (inlineBlockEntry && !Editor.isVoid(editor, inlineBlockEntry[0]) && selection.anchor.offset === 0) {
35
+ const beforePoint = TheQueries.getPointBefore(editor, selection.focus);
36
+ Transforms.select(editor, beforePoint);
37
+ }
38
+ deleteBackward(unit);
39
+ };
40
+ editor.onKeydown = (event) => {
41
+ const { selection } = editor;
42
+ if (!selection || !selection.anchor || !selection.focus) {
43
+ onKeydown(event);
44
+ return;
45
+ }
46
+ const isMoveBackward = hotkeys.isMoveBackward(event);
47
+ const isMoveForward = hotkeys.isMoveForward(event);
48
+ const isCollapsed = selection && TheQueries.isCollapsed(selection);
49
+ const isInlineNode = isInline(editor);
50
+ if (isCollapsed && isMoveForward) {
51
+ let isInlineCodeBefore = false;
52
+ if (!isInlineNode) {
53
+ try {
54
+ const { path } = Editor.after(editor, selection);
55
+ if (path) {
56
+ isInlineCodeBefore = isInline(editor, path);
57
+ }
58
+ }
59
+ catch (error) { }
60
+ }
61
+ if (isInlineNode || isInlineCodeBefore) {
62
+ event.preventDefault();
63
+ Transforms.move(editor, { unit: 'offset' });
64
+ return;
65
+ }
66
+ }
67
+ if (isCollapsed && isMoveBackward) {
68
+ let isInlineCodeAfter = false;
69
+ if (!isInlineNode) {
70
+ try {
71
+ const { path } = Editor.before(editor, selection);
72
+ isInlineCodeAfter = isInline(editor, path);
73
+ }
74
+ catch (error) { }
75
+ }
76
+ if (isInlineNode || isInlineCodeAfter) {
77
+ event.preventDefault();
78
+ Transforms.move(editor, { unit: 'offset', reverse: true });
79
+ return;
80
+ }
81
+ }
82
+ onKeydown(event);
83
+ };
84
+ return editor;
85
+ };
86
+ export const createMoveSelectionPlugin = createPluginFactory({
87
+ key: PluginKeys.moveSelection,
88
+ withOverrides: withMoveSelection
89
+ });
90
90
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1zZWxlY3Rpb24ucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29tbW9uL21vdmUtc2VsZWN0aW9uLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUNoRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsSUFBSSxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDcEYsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFN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Z0JBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDNUMsT0FBTzthQUNWO1NBQ0o7UUFDRCxJQUFJLFdBQVcsSUFBSSxjQUFjLEVBQUU7WUFDL0IsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixJQUFJO29CQUNBLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDbEQsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDOUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTthQUNyQjtZQUNELElBQUksWUFBWSxJQUFJLGlCQUFpQixFQUFFO2dCQUNuQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDM0QsT0FBTzthQUNWO1NBQ0o7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUM7SUFDekQsR0FBRyxFQUFFLFVBQVUsQ0FBQyxhQUFhO0lBQzdCLGFBQWEsRUFBRSxpQkFBaUI7Q0FDbkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zLCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBob3RrZXlzIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc0lubGluZSB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLWlubGluZSc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aE1vdmVTZWxlY3Rpb24gPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBvbkNsaWNrLCBkZWxldGVCYWNrd2FyZCwgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iub25DbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBkb21TZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChkb21TZWxlY3Rpb24gJiYgIWRvbVNlbGVjdGlvbi5pc0NvbGxhcHNlZCAmJiBldmVudC5kZXRhaWwgPj0gMiAmJiBlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBzbGF0ZVNlbGVjdGlvbiA9IEFuZ3VsYXJFZGl0b3IudG9TbGF0ZVJhbmdlKGVkaXRvciwgZG9tU2VsZWN0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGlzTmV4dFN0YXJ0ID0gc2xhdGVTZWxlY3Rpb24uZm9jdXMub2Zmc2V0ID09PSAwO1xuXG4gICAgICAgICAgICBpZiAoUmFuZ2UuaXNFeHBhbmRlZChzbGF0ZVNlbGVjdGlvbikgJiYgUmFuZ2UuaXNGb3J3YXJkKHNsYXRlU2VsZWN0aW9uKSAmJiBpc05leHRTdGFydCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIHNsYXRlU2VsZWN0aW9uLmZvY3VzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkUmFuZ2UgPSBFZGl0b3IucmFuZ2UoZWRpdG9yLCBzbGF0ZVNlbGVjdGlvbi5hbmNob3IsIGJlZm9yZVBvaW50KTtcblxuICAgICAgICAgICAgICAgIC8vIHNsYXRlLWFuZ3VsYXIgdGhyb3R0bGUgODBtcywgc28gd2FpdCBzZWxlY3Rpb25jaGFuZ2UgY29tcGxldGVcbiAgICAgICAgICAgICAgICB0aW1lcig4MSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBjaGFuZ2VkUmFuZ2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNsaWNrKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGNvbnN0IGlubGluZUJsb2NrRW50cnkgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogbiA9PiBFZGl0b3IuaXNJbmxpbmUoZWRpdG9yLCBuKVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZml4IGRlbGV0ZUJhY2t3YXJkIG9uIHRoZSBzdGFydCBvZiBpbmxpbmUgYmxvY2tcbiAgICAgICAgLy8gZGVsZXRlQmFja3dhcmQgbG9naWMgYnVnXG4gICAgICAgIGlmIChpbmxpbmVCbG9ja0VudHJ5ICYmICFFZGl0b3IuaXNWb2lkKGVkaXRvciwgaW5saW5lQmxvY2tFbnRyeVswXSkgJiYgc2VsZWN0aW9uLmFuY2hvci5vZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbi5mb2N1cyk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGJlZm9yZVBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbiB8fCAhc2VsZWN0aW9uLmFuY2hvciB8fCAhc2VsZWN0aW9uLmZvY3VzKSB7XG4gICAgICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzTW92ZUJhY2t3YXJkID0gaG90a2V5cy5pc01vdmVCYWNrd2FyZChldmVudCk7XG4gICAgICAgIGNvbnN0IGlzTW92ZUZvcndhcmQgPSBob3RrZXlzLmlzTW92ZUZvcndhcmQoZXZlbnQpO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBUaGVRdWVyaWVzLmlzQ29sbGFwc2VkKHNlbGVjdGlvbik7XG4gICAgICAgIGNvbnN0IGlzSW5saW5lTm9kZSA9IGlzSW5saW5lKGVkaXRvcik7XG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCAmJiBpc01vdmVGb3J3YXJkKSB7XG4gICAgICAgICAgICBsZXQgaXNJbmxpbmVDb2RlQmVmb3JlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWlzSW5saW5lTm9kZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCB9ID0gRWRpdG9yLmFmdGVyKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5saW5lQ29kZUJlZm9yZSA9IGlzSW5saW5lKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0lubGluZU5vZGUgfHwgaXNJbmxpbmVDb2RlQmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmUoZWRpdG9yLCB7IHVuaXQ6ICdvZmZzZXQnIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNDb2xsYXBzZWQgJiYgaXNNb3ZlQmFja3dhcmQpIHtcbiAgICAgICAgICAgIGxldCBpc0lubGluZUNvZGVBZnRlciA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc0lubGluZU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBpc0lubGluZUNvZGVBZnRlciA9IGlzSW5saW5lKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbmxpbmVOb2RlIHx8IGlzSW5saW5lQ29kZUFmdGVyKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmUoZWRpdG9yLCB7IHVuaXQ6ICdvZmZzZXQnLCByZXZlcnNlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb3ZlU2VsZWN0aW9uUGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLm1vdmVTZWxlY3Rpb24sXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aE1vdmVTZWxlY3Rpb25cbn0pO1xuIl19
@@ -1,60 +1,60 @@
1
- import { Path, Node, Editor, Transforms } from 'slate';
2
- import { HistoryEditor } from 'slate-history';
3
- import { createPluginFactory } from '../../core';
4
- import { PluginKeys } from '../../interfaces';
5
- import { HEADING_TYPES } from '../../constants';
6
- import * as TheQueries from '../../queries';
7
- export const withRemoveEmpty = (editor) => {
8
- const { deleteBackward, deleteForward } = editor;
9
- editor.deleteBackward = unit => {
10
- const { selection } = editor;
11
- const anchorBlock = TheQueries.anchorBlock(editor);
12
- if (!anchorBlock) {
13
- deleteBackward(unit);
14
- return;
15
- }
16
- // delete empty paragraphs or empty headings, the default operation is to delete before the void node
17
- const parentPath = Path.parent(editor.selection.anchor.path);
18
- const isEmptyHeading = HEADING_TYPES.includes(anchorBlock.type) && Editor.isEmpty(editor, anchorBlock);
19
- const isEmptyParagraph = TheQueries.isEmptyParagraph(editor, editor.selection.anchor);
20
- if ((isEmptyParagraph || isEmptyHeading) &&
21
- parentPath[parentPath.length - 1] > 0 &&
22
- Editor.isVoid(editor, Node.get(editor, Path.previous(parentPath)))) {
23
- Transforms.delete(editor, { at: editor.selection.anchor.path.slice(0, editor.selection.anchor.path.length - 1) });
24
- return;
25
- }
26
- // just remove inline node when before inline node text length is 1, default action is remove current the block above inline node
27
- if (selection.anchor.path[selection.anchor.path.length - 1] > 0 && selection.anchor.offset === 0) {
28
- const beforePoint = Editor.before(editor, editor.selection);
29
- const inlineEntry = Editor.above(editor, {
30
- at: beforePoint,
31
- match: n => Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
32
- });
33
- if (inlineEntry && Editor.string(editor, inlineEntry[1]).length === 1) {
34
- Transforms.removeNodes(editor, { at: inlineEntry[1] });
35
- return;
36
- }
37
- }
38
- deleteBackward(unit);
39
- };
40
- editor.deleteForward = unit => {
41
- const anchorBlockEntry = TheQueries.anchorBlockEntry(editor);
42
- if (anchorBlockEntry &&
43
- TheQueries.isAncestorEmpty(editor, anchorBlockEntry[0]) &&
44
- TheQueries.getNode(editor, Path.next(anchorBlockEntry[1]))) {
45
- const pathRef = Editor.pathRef(editor, Path.parent(editor.selection.anchor.path));
46
- HistoryEditor.withoutMerging(editor, () => {
47
- Transforms.move(editor);
48
- });
49
- Transforms.delete(editor, { at: pathRef.unref() });
50
- return;
51
- }
52
- deleteForward(unit);
53
- };
54
- return editor;
55
- };
56
- export const createRemoveEmptyPlugin = createPluginFactory({
57
- key: PluginKeys.removeEmpty,
58
- withOverrides: withRemoveEmpty
59
- });
1
+ import { Path, Node, Editor, Transforms } from 'slate';
2
+ import { HistoryEditor } from 'slate-history';
3
+ import { createPluginFactory } from '../../core';
4
+ import { PluginKeys } from '../../interfaces';
5
+ import { HEADING_TYPES } from '../../constants';
6
+ import * as TheQueries from '../../queries';
7
+ export const withRemoveEmpty = (editor) => {
8
+ const { deleteBackward, deleteForward } = editor;
9
+ editor.deleteBackward = unit => {
10
+ const { selection } = editor;
11
+ const anchorBlock = TheQueries.anchorBlock(editor);
12
+ if (!anchorBlock) {
13
+ deleteBackward(unit);
14
+ return;
15
+ }
16
+ // delete empty paragraphs or empty headings, the default operation is to delete before the void node
17
+ const parentPath = Path.parent(editor.selection.anchor.path);
18
+ const isEmptyHeading = HEADING_TYPES.includes(anchorBlock.type) && Editor.isEmpty(editor, anchorBlock);
19
+ const isEmptyParagraph = TheQueries.isEmptyParagraph(editor, editor.selection.anchor);
20
+ if ((isEmptyParagraph || isEmptyHeading) &&
21
+ parentPath[parentPath.length - 1] > 0 &&
22
+ Editor.isVoid(editor, Node.get(editor, Path.previous(parentPath)))) {
23
+ Transforms.delete(editor, { at: editor.selection.anchor.path.slice(0, editor.selection.anchor.path.length - 1) });
24
+ return;
25
+ }
26
+ // just remove inline node when before inline node text length is 1, default action is remove current the block above inline node
27
+ if (selection.anchor.path[selection.anchor.path.length - 1] > 0 && selection.anchor.offset === 0) {
28
+ const beforePoint = Editor.before(editor, editor.selection);
29
+ const inlineEntry = Editor.above(editor, {
30
+ at: beforePoint,
31
+ match: n => Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
32
+ });
33
+ if (inlineEntry && Editor.string(editor, inlineEntry[1]).length === 1) {
34
+ Transforms.removeNodes(editor, { at: inlineEntry[1] });
35
+ return;
36
+ }
37
+ }
38
+ deleteBackward(unit);
39
+ };
40
+ editor.deleteForward = unit => {
41
+ const anchorBlockEntry = TheQueries.anchorBlockEntry(editor);
42
+ if (anchorBlockEntry &&
43
+ TheQueries.isAncestorEmpty(editor, anchorBlockEntry[0]) &&
44
+ TheQueries.getNode(editor, Path.next(anchorBlockEntry[1]))) {
45
+ const pathRef = Editor.pathRef(editor, Path.parent(editor.selection.anchor.path));
46
+ HistoryEditor.withoutMerging(editor, () => {
47
+ Transforms.move(editor);
48
+ });
49
+ Transforms.delete(editor, { at: pathRef.unref() });
50
+ return;
51
+ }
52
+ deleteForward(unit);
53
+ };
54
+ return editor;
55
+ };
56
+ export const createRemoveEmptyPlugin = createPluginFactory({
57
+ key: PluginKeys.removeEmpty,
58
+ withOverrides: withRemoveEmpty
59
+ });
60
60
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVtcHR5LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2NvbW1vbi9yZW1vdmUtZW1wdHkucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDOUQsTUFBTSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakQsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNkLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixPQUFPO1NBQ1Y7UUFFRCxxR0FBcUc7UUFDckcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FB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RSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE9BQU87U0FDVjtRQUNELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUIsQ0FBQztJQUN2RCxHQUFHLEVBQUUsVUFBVSxDQUFDLFdBQVc7SUFDM0IsYUFBYSxFQUFFLGVBQWU7Q0FDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCwgTm9kZSwgRWRpdG9yLCBUcmFuc2Zvcm1zLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgSGlzdG9yeUVkaXRvciB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSEVBRElOR19UWVBFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aFJlbW92ZUVtcHR5ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgZGVsZXRlQmFja3dhcmQsIGRlbGV0ZUZvcndhcmQgfSA9IGVkaXRvcjtcblxuICAgIGVkaXRvci5kZWxldGVCYWNrd2FyZCA9IHVuaXQgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBhbmNob3JCbG9jayA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2soZWRpdG9yKTtcblxuICAgICAgICBpZiAoIWFuY2hvckJsb2NrKSB7XG4gICAgICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRlbGV0ZSBlbXB0eSBwYXJhZ3JhcGhzIG9yIGVtcHR5IGhlYWRpbmdzLCB0aGUgZGVmYXVsdCBvcGVyYXRpb24gaXMgdG8gZGVsZXRlIGJlZm9yZSB0aGUgdm9pZCBub2RlXG4gICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBQYXRoLnBhcmVudChlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgY29uc3QgaXNFbXB0eUhlYWRpbmcgPSBIRUFESU5HX1RZUEVTLmluY2x1ZGVzKGFuY2hvckJsb2NrLnR5cGUpICYmIEVkaXRvci5pc0VtcHR5KGVkaXRvciwgYW5jaG9yQmxvY2spO1xuICAgICAgICBjb25zdCBpc0VtcHR5UGFyYWdyYXBoID0gVGhlUXVlcmllcy5pc0VtcHR5UGFyYWdyYXBoKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoaXNFbXB0eVBhcmFncmFwaCB8fCBpc0VtcHR5SGVhZGluZykgJiZcbiAgICAgICAgICAgIHBhcmVudFBhdGhbcGFyZW50UGF0aC5sZW5ndGggLSAxXSA+IDAgJiZcbiAgICAgICAgICAgIEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBOb2RlLmdldChlZGl0b3IsIFBhdGgucHJldmlvdXMocGFyZW50UGF0aCkpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aC5zbGljZSgwLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoLmxlbmd0aCAtIDEpIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGp1c3QgcmVtb3ZlIGlubGluZSBub2RlIHdoZW4gYmVmb3JlIGlubGluZSBub2RlIHRleHQgbGVuZ3RoIGlzIDEsIGRlZmF1bHQgYWN0aW9uIGlzIHJlbW92ZSBjdXJyZW50IHRoZSBibG9jayBhYm92ZSBpbmxpbmUgbm9kZVxuICAgICAgICBpZiAoc2VsZWN0aW9uLmFuY2hvci5wYXRoW3NlbGVjdGlvbi5hbmNob3IucGF0aC5sZW5ndGggLSAxXSA+IDAgJiYgc2VsZWN0aW9uLmFuY2hvci5vZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgY29uc3QgaW5saW5lRW50cnkgPSBFZGl0b3IuYWJvdmU8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IGJlZm9yZVBvaW50LFxuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVkaXRvci5pc0lubGluZShlZGl0b3IsIG4pICYmICFFZGl0b3IuaXNWb2lkKGVkaXRvciwgbilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGlubGluZUVudHJ5ICYmIEVkaXRvci5zdHJpbmcoZWRpdG9yLCBpbmxpbmVFbnRyeVsxXSkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlcyhlZGl0b3IsIHsgYXQ6IGlubGluZUVudHJ5WzFdIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUZvcndhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgYW5jaG9yQmxvY2tFbnRyeSA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBhbmNob3JCbG9ja0VudHJ5ICYmXG4gICAgICAgICAgICBUaGVRdWVyaWVzLmlzQW5jZXN0b3JFbXB0eShlZGl0b3IsIGFuY2hvckJsb2NrRW50cnlbMF0pICYmXG4gICAgICAgICAgICBUaGVRdWVyaWVzLmdldE5vZGUoZWRpdG9yLCBQYXRoLm5leHQoYW5jaG9yQmxvY2tFbnRyeVsxXSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcGF0aFJlZiA9IEVkaXRvci5wYXRoUmVmKGVkaXRvciwgUGF0aC5wYXJlbnQoZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCkpO1xuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0TWVyZ2luZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmUoZWRpdG9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBwYXRoUmVmLnVucmVmKCkgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlRm9yd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVSZW1vdmVFbXB0eVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5yZW1vdmVFbXB0eSxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoUmVtb3ZlRW1wdHlcbn0pO1xuIl19
@@ -1,57 +1,57 @@
1
- import { Editor, Path, Transforms } from 'slate';
2
- import { HistoryEditor } from 'slate-history';
3
- import { hotkeys } from 'slate-angular';
4
- import { createPluginFactory } from '../../core';
5
- import { PluginKeys } from '../../interfaces';
6
- import { createEmptyParagraph } from '../../utils/create-empty-paragraph';
7
- import * as TheQueries from '../../queries';
8
- export const withRemoveVoid = (editor) => {
9
- const { deleteBackward, deleteForward, onKeydown } = editor;
10
- const deleteBlockVoid = (e) => {
11
- const aboveEntry = TheQueries.getAbove(e);
12
- const canDelete = aboveEntry && Editor.isBlock(e, aboveEntry[0]) && Editor.isVoid(e, aboveEntry[0]);
13
- if (canDelete) {
14
- Transforms.insertNodes(e, createEmptyParagraph(), { at: Path.next(aboveEntry[1]) });
15
- Transforms.select(e, Path.next(aboveEntry[1]));
16
- Transforms.removeNodes(e, { at: aboveEntry[1] });
17
- }
18
- return canDelete;
19
- };
20
- editor.deleteBackward = unit => {
21
- if (deleteBlockVoid(editor)) {
22
- return;
23
- }
24
- deleteBackward(unit);
25
- };
26
- editor.onKeydown = event => {
27
- const aboveEntry = TheQueries.getAbove(editor);
28
- if (aboveEntry && Editor.isVoid(editor, aboveEntry[0]) && Editor.isInline(editor, aboveEntry[0])) {
29
- if (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event)) {
30
- event.preventDefault();
31
- HistoryEditor.withoutMerging(editor, () => {
32
- Transforms.move(editor);
33
- });
34
- Transforms.delete(editor, { reverse: true });
35
- return;
36
- }
37
- if (hotkeys.isSplitBlock(event)) {
38
- event.preventDefault();
39
- Transforms.move(editor);
40
- return;
41
- }
42
- }
43
- onKeydown(event);
44
- };
45
- editor.deleteForward = unit => {
46
- if (deleteBlockVoid(editor)) {
47
- return;
48
- }
49
- deleteForward(unit);
50
- };
51
- return editor;
52
- };
53
- export const createRemoveVoidPlugin = createPluginFactory({
54
- key: PluginKeys.removeVoid,
55
- withOverrides: withRemoveVoid
56
- });
1
+ import { Editor, Path, Transforms } from 'slate';
2
+ import { HistoryEditor } from 'slate-history';
3
+ import { hotkeys } from 'slate-angular';
4
+ import { createPluginFactory } from '../../core';
5
+ import { PluginKeys } from '../../interfaces';
6
+ import { createEmptyParagraph } from '../../utils/create-empty-paragraph';
7
+ import * as TheQueries from '../../queries';
8
+ export const withRemoveVoid = (editor) => {
9
+ const { deleteBackward, deleteForward, onKeydown } = editor;
10
+ const deleteBlockVoid = (e) => {
11
+ const aboveEntry = TheQueries.getAbove(e);
12
+ const canDelete = aboveEntry && Editor.isBlock(e, aboveEntry[0]) && Editor.isVoid(e, aboveEntry[0]);
13
+ if (canDelete) {
14
+ Transforms.insertNodes(e, createEmptyParagraph(), { at: Path.next(aboveEntry[1]) });
15
+ Transforms.select(e, Path.next(aboveEntry[1]));
16
+ Transforms.removeNodes(e, { at: aboveEntry[1] });
17
+ }
18
+ return canDelete;
19
+ };
20
+ editor.deleteBackward = unit => {
21
+ if (deleteBlockVoid(editor)) {
22
+ return;
23
+ }
24
+ deleteBackward(unit);
25
+ };
26
+ editor.onKeydown = event => {
27
+ const aboveEntry = TheQueries.getAbove(editor);
28
+ if (aboveEntry && Editor.isVoid(editor, aboveEntry[0]) && Editor.isInline(editor, aboveEntry[0])) {
29
+ if (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event)) {
30
+ event.preventDefault();
31
+ HistoryEditor.withoutMerging(editor, () => {
32
+ Transforms.move(editor);
33
+ });
34
+ Transforms.delete(editor, { reverse: true });
35
+ return;
36
+ }
37
+ if (hotkeys.isSplitBlock(event)) {
38
+ event.preventDefault();
39
+ Transforms.move(editor);
40
+ return;
41
+ }
42
+ }
43
+ onKeydown(event);
44
+ };
45
+ editor.deleteForward = unit => {
46
+ if (deleteBlockVoid(editor)) {
47
+ return;
48
+ }
49
+ deleteForward(unit);
50
+ };
51
+ return editor;
52
+ };
53
+ export const createRemoveVoidPlugin = createPluginFactory({
54
+ key: PluginKeys.removeVoid,
55
+ withOverrides: withRemoveVoid
56
+ });
57
57
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXZvaWQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29tbW9uL3JlbW92ZS12b2lkLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQzdELE1BQU0sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU1RCxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksU0FBUyxFQUFFO1lBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUU7UUFDM0IsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUU7UUFDdkIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDN0MsT0FBTzthQUNWO1lBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLE9BQU87YUFDVjtTQUNKO1FBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUU7UUFDMUIsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBQ3RELEdBQUcsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUMxQixhQUFhLEVBQUUsY0FBYztDQUNoQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFBhdGgsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBob3RrZXlzIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eVBhcmFncmFwaCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyZWF0ZS1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhSZW1vdmVWb2lkID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgZGVsZXRlQmFja3dhcmQsIGRlbGV0ZUZvcndhcmQsIG9uS2V5ZG93biB9ID0gZWRpdG9yO1xuXG4gICAgY29uc3QgZGVsZXRlQmxvY2tWb2lkID0gKGU6IEVkaXRvcikgPT4ge1xuICAgICAgICBjb25zdCBhYm92ZUVudHJ5ID0gVGhlUXVlcmllcy5nZXRBYm92ZShlKTtcbiAgICAgICAgY29uc3QgY2FuRGVsZXRlID0gYWJvdmVFbnRyeSAmJiBFZGl0b3IuaXNCbG9jayhlLCBhYm92ZUVudHJ5WzBdKSAmJiBFZGl0b3IuaXNWb2lkKGUsIGFib3ZlRW50cnlbMF0pO1xuICAgICAgICBpZiAoY2FuRGVsZXRlKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGUsIGNyZWF0ZUVtcHR5UGFyYWdyYXBoKCksIHsgYXQ6IFBhdGgubmV4dChhYm92ZUVudHJ5WzFdKSB9KTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGUsIFBhdGgubmV4dChhYm92ZUVudHJ5WzFdKSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGUsIHsgYXQ6IGFib3ZlRW50cnlbMV0gfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbkRlbGV0ZTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGlmIChkZWxldGVCbG9ja1ZvaWQoZWRpdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCBhYm92ZUVudHJ5ID0gVGhlUXVlcmllcy5nZXRBYm92ZShlZGl0b3IpO1xuICAgICAgICBpZiAoYWJvdmVFbnRyeSAmJiBFZGl0b3IuaXNWb2lkKGVkaXRvciwgYWJvdmVFbnRyeVswXSkgJiYgRWRpdG9yLmlzSW5saW5lKGVkaXRvciwgYWJvdmVFbnRyeVswXSkpIHtcbiAgICAgICAgICAgIGlmIChob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpIHx8IGhvdGtleXMuaXNEZWxldGVGb3J3YXJkKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0TWVyZ2luZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IHJldmVyc2U6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhvdGtleXMuaXNTcGxpdEJsb2NrKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5kZWxldGVGb3J3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGlmIChkZWxldGVCbG9ja1ZvaWQoZWRpdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUZvcndhcmQodW5pdCk7XG4gICAgfTtcbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVJlbW92ZVZvaWRQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMucmVtb3ZlVm9pZCxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoUmVtb3ZlVm9pZFxufSk7XG4iXX0=