@worktile/theia 15.3.3 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +1 -1
  2. package/components/conversion-hint/conversion-hint.component.d.ts +3 -3
  3. package/components/inline-toolbar/inline-toolbar.component.d.ts +3 -4
  4. package/components/listbox/listbox.d.ts +3 -3
  5. package/components/plugin-menu/plugin-menu.component.d.ts +4 -3
  6. package/components/table-select/table-select.component.d.ts +1 -1
  7. package/components/template/template.component.d.ts +2 -2
  8. package/components/toolbar/toolbar.component.d.ts +4 -4
  9. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +2 -2
  10. package/components/toolbar-group/toolbar-group.component.d.ts +5 -6
  11. package/core/toolbar-item/base-toolbar-item.d.ts +6 -7
  12. package/core/utils/plugin-menu.d.ts +2 -2
  13. package/editor.component.d.ts +1 -1
  14. package/editor.module.d.ts +1 -1
  15. package/{esm2020 → esm2022}/components/action/prevent-default.mjs +4 -4
  16. package/{esm2020 → esm2022}/components/column-resize/column-resize-notifier.mjs +4 -4
  17. package/{esm2020 → esm2022}/components/column-resize/column-resize.directive.mjs +4 -4
  18. package/{esm2020 → esm2022}/components/column-resize/column-resize.module.mjs +9 -9
  19. package/{esm2020 → esm2022}/components/column-resize/event-dispatcher.mjs +4 -4
  20. package/{esm2020 → esm2022}/components/column-resize/overlay-handle.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/components/column-resize/resizing.store.mjs +4 -4
  22. package/{esm2020 → esm2022}/components/contextmenu/contextmenu.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/components/conversion-hint/conversion-hint.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/components/element/element.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/components/inline-toolbar/inline-toolbar.component.mjs +6 -6
  26. package/esm2022/components/listbox/listbox.mjs +375 -0
  27. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +191 -0
  28. package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
  29. package/esm2022/components/template/template.component.mjs +62 -0
  30. package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
  31. package/esm2022/components/toolbar/toolbar.component.mjs +266 -0
  32. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +144 -0
  33. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +122 -0
  34. package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
  35. package/esm2022/constants/auto-format-rules.mjs +167 -0
  36. package/esm2022/constants/plugin-menu.mjs +328 -0
  37. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +87 -0
  38. package/{esm2020 → esm2022}/core/utils/combine-plugins.mjs +1 -1
  39. package/esm2022/core/utils/plugin-menu.mjs +33 -0
  40. package/esm2022/custom-types.mjs +2 -0
  41. package/{esm2020 → esm2022}/editor.component.mjs +11 -11
  42. package/esm2022/editor.module.mjs +254 -0
  43. package/esm2022/interfaces/auto-format.mjs +2 -0
  44. package/esm2022/interfaces/editor.mjs +25 -0
  45. package/esm2022/interfaces/plugins/plugin-menu.mjs +19 -0
  46. package/esm2022/interfaces/plugins/with-override.mjs +2 -0
  47. package/esm2022/interfaces/reset-block-type-plugin-options.mjs +2 -0
  48. package/esm2022/interfaces/toolbar.mjs +12 -0
  49. package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
  50. package/esm2022/pipes.mjs +42 -0
  51. package/esm2022/plugins/align/align.editor.mjs +43 -0
  52. package/esm2022/plugins/align/align.plugin.mjs +64 -0
  53. package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +1 -1
  54. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +14 -0
  55. package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +78 -0
  56. package/esm2022/plugins/blockquote/blockquote.component.mjs +21 -0
  57. package/esm2022/plugins/blockquote/blockquote.editor.mjs +17 -0
  58. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +85 -0
  59. package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
  60. package/esm2022/plugins/code/code.editor.mjs +48 -0
  61. package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +1 -1
  62. package/esm2022/plugins/color/color.editor.mjs +27 -0
  63. package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +1 -1
  65. package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +1 -1
  66. package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +1 -1
  67. package/esm2022/plugins/common/history.plugin.mjs +31 -0
  68. package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +1 -1
  69. package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +1 -1
  70. package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +1 -1
  71. package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +1 -1
  72. package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +1 -1
  73. package/esm2022/plugins/common/transforms.plugin.mjs +18 -0
  74. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +53 -0
  75. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +130 -0
  76. package/esm2022/plugins/font-size/font-size.editor.mjs +98 -0
  77. package/esm2022/plugins/heading/heading.editor.mjs +54 -0
  78. package/esm2022/plugins/heading/heading.plugin.mjs +136 -0
  79. package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
  80. package/esm2022/plugins/hr/hr.editor.mjs +16 -0
  81. package/esm2022/plugins/hr/hr.plugin.mjs +56 -0
  82. package/esm2022/plugins/image/image.component.mjs +420 -0
  83. package/esm2022/plugins/image/image.editor.mjs +81 -0
  84. package/esm2022/plugins/indent/indent.editor.mjs +78 -0
  85. package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +1 -1
  86. package/esm2022/plugins/indent/on-keydown-indent.mjs +59 -0
  87. package/esm2022/plugins/inline-code/inline-code.component.mjs +26 -0
  88. package/esm2022/plugins/inline-code/inline-code.editor.mjs +48 -0
  89. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +66 -0
  90. package/esm2022/plugins/link/edit/link-edit.component.mjs +103 -0
  91. package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
  92. package/esm2022/plugins/link/link.component.mjs +167 -0
  93. package/esm2022/plugins/link/link.editor.mjs +66 -0
  94. package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +1 -1
  95. package/esm2022/plugins/list/components/bulleted-list.component.mjs +33 -0
  96. package/esm2022/plugins/list/components/list-item.component.mjs +93 -0
  97. package/esm2022/plugins/list/components/numbered-list.component.mjs +39 -0
  98. package/esm2022/plugins/list/list.editor.mjs +126 -0
  99. package/esm2022/plugins/list/list.plugin.mjs +312 -0
  100. package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +39 -0
  101. package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +18 -0
  102. package/esm2022/plugins/list/normalizers/normalize-no.mjs +43 -0
  103. package/esm2022/plugins/list/on-key-down-list.mjs +33 -0
  104. package/esm2022/plugins/list/queries/get-list-item-entry.mjs +28 -0
  105. package/esm2022/plugins/list/queries/get-start-list-item.mjs +27 -0
  106. package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +27 -0
  107. package/esm2022/plugins/list/queries/is-in-list.mjs +6 -0
  108. package/esm2022/plugins/list/queries/is-list-nested.mjs +10 -0
  109. package/esm2022/plugins/list/queries/is-list.mjs +5 -0
  110. package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +1 -1
  111. package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +13 -0
  112. package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +17 -0
  113. package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +1 -1
  114. package/esm2022/plugins/list/transforms/insert-list-data.mjs +72 -0
  115. package/esm2022/plugins/list/transforms/insert-list-item.mjs +72 -0
  116. package/esm2022/plugins/list/transforms/move-list-item-down.mjs +41 -0
  117. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +43 -0
  118. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +30 -0
  119. package/esm2022/plugins/list/transforms/move-list-item-up.mjs +78 -0
  120. package/esm2022/plugins/list/transforms/unwrap-list.mjs +10 -0
  121. package/esm2022/plugins/mark/mark.editor.mjs +28 -0
  122. package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +1 -1
  123. package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +1 -1
  124. package/esm2022/plugins/mention/mention.plugin.mjs +91 -0
  125. package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
  126. package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +1 -1
  127. package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
  128. package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +18 -0
  129. package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +1 -1
  130. package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +1 -1
  131. package/{esm2020 → esm2022}/plugins/quick-insert/components/quick-insert.component.mjs +4 -4
  132. package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +68 -0
  133. package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +104 -0
  134. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +104 -0
  135. package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
  136. package/{esm2020 → esm2022}/plugins/table/components/table.component.mjs +16 -16
  137. package/{esm2020 → esm2022}/plugins/table/components/td/td.component.mjs +4 -4
  138. package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-options.component.mjs +6 -6
  139. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +189 -0
  140. package/esm2022/plugins/table/table.editor.mjs +209 -0
  141. package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
  142. package/esm2022/plugins/table/table.plugin.mjs +544 -0
  143. package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
  144. package/esm2022/plugins/table/table.store.mjs +426 -0
  145. package/esm2022/plugins/table/table.types.mjs +60 -0
  146. package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
  147. package/esm2022/plugins/table/transforms/clear-cell.mjs +14 -0
  148. package/esm2022/plugins/table/transforms/clear-table-node.mjs +27 -0
  149. package/esm2022/plugins/table/transforms/insert-column.mjs +69 -0
  150. package/esm2022/plugins/table/transforms/insert-row.mjs +50 -0
  151. package/esm2022/plugins/table/transforms/insert-table.mjs +15 -0
  152. package/esm2022/plugins/table/transforms/remove-column.mjs +51 -0
  153. package/esm2022/plugins/table/transforms/remove-row.mjs +48 -0
  154. package/esm2022/plugins/table/transforms/remove-table.mjs +49 -0
  155. package/esm2022/plugins/table/utils/calc-anchor-position.mjs +25 -0
  156. package/esm2022/plugins/table/utils/cell-position.mjs +60 -0
  157. package/esm2022/plugins/table/utils/create-table-position.mjs +10 -0
  158. package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +69 -0
  159. package/esm2022/plugins/table/utils/get-select-cell-node.mjs +23 -0
  160. package/esm2022/plugins/table/utils/handle-cell.mjs +25 -0
  161. package/esm2022/plugins/table/utils/is-range-in-table.mjs +16 -0
  162. package/esm2022/plugins/table/utils/is-selection-in-table.mjs +51 -0
  163. package/esm2022/plugins/table/utils/merge-cell.mjs +108 -0
  164. package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +45 -0
  165. package/esm2022/plugins/table/utils/split-cell.mjs +29 -0
  166. package/esm2022/plugins/table/utils/table-entry.mjs +21 -0
  167. package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +7 -7
  168. package/esm2022/plugins/todo-item/todo-item.editor.mjs +32 -0
  169. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +93 -0
  170. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +83 -0
  171. package/esm2022/queries/anchor-block-entry.mjs +13 -0
  172. package/esm2022/queries/anchor-block.mjs +6 -0
  173. package/esm2022/queries/anchor-inline-entry.mjs +10 -0
  174. package/{esm2020 → esm2022}/queries/find-descendant.mjs +1 -1
  175. package/esm2022/queries/find-node.mjs +45 -0
  176. package/esm2022/queries/get-above-by-type.mjs +14 -0
  177. package/esm2022/queries/get-above.mjs +9 -0
  178. package/esm2022/queries/get-anchor-block-entry.mjs +8 -0
  179. package/esm2022/queries/get-block-above.mjs +10 -0
  180. package/esm2022/queries/get-block-card-above.mjs +10 -0
  181. package/esm2022/queries/get-block-card-cursor.mjs +5 -0
  182. package/esm2022/queries/get-container-blocks.mjs +12 -0
  183. package/esm2022/queries/get-insert-elements-path.mjs +44 -0
  184. package/{esm2020 → esm2022}/queries/get-last-node.mjs +1 -1
  185. package/esm2022/queries/get-node.mjs +10 -0
  186. package/esm2022/queries/get-nodes-by-type.mjs +15 -0
  187. package/esm2022/queries/get-nodes.mjs +7 -0
  188. package/esm2022/queries/get-parent.mjs +12 -0
  189. package/esm2022/queries/get-plain-text.mjs +16 -0
  190. package/esm2022/queries/get-plugin-by-toolbar.mjs +13 -0
  191. package/{esm2020 → esm2022}/queries/get-point-before.mjs +1 -1
  192. package/esm2022/queries/get-point-from-location.mjs +15 -0
  193. package/esm2022/queries/get-rang-from-block-start.mjs +16 -0
  194. package/esm2022/queries/get-range-before.mjs +17 -0
  195. package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +1 -1
  196. package/esm2022/queries/get-selection-nodes-by-type.mjs +30 -0
  197. package/esm2022/queries/get-text.mjs +9 -0
  198. package/esm2022/queries/get-toolbar-disabled.mjs +13 -0
  199. package/esm2022/queries/is-across-blocks.mjs +7 -0
  200. package/esm2022/queries/is-ancestor-empty.mjs +6 -0
  201. package/esm2022/queries/is-block-above-empty.mjs +11 -0
  202. package/esm2022/queries/is-block-active.mjs +8 -0
  203. package/esm2022/queries/is-block-card-cursor.mjs +4 -0
  204. package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +1 -1
  205. package/esm2022/queries/is-contain-nested-type.mjs +29 -0
  206. package/esm2022/queries/is-container-type.mjs +3 -0
  207. package/esm2022/queries/is-empty-content-filter.mjs +23 -0
  208. package/{esm2020 → esm2022}/queries/is-empty-content.mjs +1 -1
  209. package/esm2022/queries/is-empty-paragraph-by-path.mjs +7 -0
  210. package/esm2022/queries/is-empty-paragraph.mjs +28 -0
  211. package/esm2022/queries/is-global-collapsed.mjs +5 -0
  212. package/esm2022/queries/is-include-types.mjs +12 -0
  213. package/esm2022/queries/is-node-type-in.mjs +9 -0
  214. package/esm2022/queries/is-node-type.mjs +15 -0
  215. package/esm2022/queries/is-paragraph.mjs +9 -0
  216. package/esm2022/queries/is-range-across-blocks.mjs +22 -0
  217. package/esm2022/queries/is-start.mjs +6 -0
  218. package/esm2022/queries/some-node.mjs +9 -0
  219. package/{esm2020 → esm2022}/services/context.service.mjs +4 -4
  220. package/{esm2020 → esm2022}/services/table-contextmenu.service.mjs +4 -4
  221. package/{esm2020 → esm2022}/services/toolbar.service.mjs +4 -4
  222. package/{esm2020 → esm2022}/shortcuts/index.mjs +1 -1
  223. package/esm2022/shortcuts/mark.mjs +25 -0
  224. package/esm2022/test/utils/with-editor.mjs +8 -0
  225. package/esm2022/test/utils/with-plugin.mjs +8 -0
  226. package/{esm2020 → esm2022}/transforms/clear-marks.mjs +1 -1
  227. package/esm2022/transforms/close-conversion-hint.mjs +8 -0
  228. package/{esm2020 → esm2022}/transforms/delete-element.mjs +1 -1
  229. package/esm2022/transforms/handle-continual-delete-backward.mjs +18 -0
  230. package/esm2022/transforms/handle-continual-insert-break.mjs +20 -0
  231. package/esm2022/transforms/insert-elements.mjs +38 -0
  232. package/esm2022/transforms/insert-paragraph.mjs +6 -0
  233. package/esm2022/transforms/move-children.mjs +22 -0
  234. package/esm2022/transforms/on-keydown-reset-block-type.mjs +22 -0
  235. package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +1 -1
  236. package/esm2022/transforms/set-marks.mjs +9 -0
  237. package/esm2022/transforms/set-node.mjs +6 -0
  238. package/esm2022/transforms/un-hang-range.mjs +11 -0
  239. package/esm2022/transforms/un-wrap.mjs +12 -0
  240. package/esm2022/transforms/unwrap-nodes-by-type.mjs +14 -0
  241. package/{esm2020 → esm2022}/utils/auto-focus.mjs +1 -1
  242. package/esm2022/utils/copy-node.mjs +32 -0
  243. package/esm2022/utils/create-empty-paragraph.mjs +5 -0
  244. package/esm2022/utils/create-paragraph.mjs +14 -0
  245. package/{esm2020 → esm2022}/utils/dom.mjs +1 -1
  246. package/esm2022/utils/editor-uuid.mjs +8 -0
  247. package/esm2022/utils/fragment.mjs +74 -0
  248. package/esm2022/utils/get-editable-element-height.mjs +6 -0
  249. package/esm2022/utils/get-toolbar-class.mjs +6 -0
  250. package/esm2022/utils/index.mjs +20 -0
  251. package/esm2022/utils/insert-data-by-invalid-type.mjs +62 -0
  252. package/esm2022/utils/is-clean-empty-paragraph.mjs +37 -0
  253. package/esm2022/utils/is-inline.mjs +9 -0
  254. package/{esm2020 → esm2022}/utils/match.mjs +1 -1
  255. package/esm2022/utils/merge-element-options.mjs +19 -0
  256. package/esm2022/utils/scroll-into-view.mjs +38 -0
  257. package/{fesm2020 → fesm2022}/worktile-theia.mjs +397 -388
  258. package/fesm2022/worktile-theia.mjs.map +1 -0
  259. package/interfaces/auto-format.d.ts +5 -5
  260. package/interfaces/editor.d.ts +8 -6
  261. package/interfaces/plugins/plugin-menu.d.ts +5 -5
  262. package/interfaces/plugins/with-override.d.ts +2 -2
  263. package/interfaces/reset-block-type-plugin-options.d.ts +3 -3
  264. package/interfaces/toolbar.d.ts +5 -5
  265. package/interfaces/view-base.d.ts +3 -2
  266. package/package.json +11 -17
  267. package/pipes.d.ts +3 -3
  268. package/plugins/align/align.editor.d.ts +4 -4
  269. package/plugins/align/align.plugin.d.ts +2 -1
  270. package/plugins/autoformat/autoformat.plugin.d.ts +2 -1
  271. package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -4
  272. package/plugins/autoformat/transforms/auto-format-inline.d.ts +2 -2
  273. package/plugins/blockquote/blockquote.component.d.ts +3 -3
  274. package/plugins/blockquote/blockquote.editor.d.ts +2 -2
  275. package/plugins/blockquote/blockquote.plugin.d.ts +2 -1
  276. package/plugins/code/code.component.d.ts +2 -3
  277. package/plugins/code/code.editor.d.ts +3 -3
  278. package/plugins/code/code.plugin.d.ts +2 -1
  279. package/plugins/color/color.editor.d.ts +3 -3
  280. package/plugins/common/block-card.plugin.d.ts +2 -1
  281. package/plugins/common/common.plugin.d.ts +2 -1
  282. package/plugins/common/get-fragment.plugin.d.ts +2 -1
  283. package/plugins/common/history.plugin.d.ts +6 -6
  284. package/plugins/common/insert-data-by-invalid-type.d.ts +2 -1
  285. package/plugins/common/move-selection.plugin.d.ts +2 -1
  286. package/plugins/common/remove-empty.plugin.d.ts +2 -1
  287. package/plugins/common/remove-void.plugin.d.ts +2 -1
  288. package/plugins/common/reset-type.plugin.d.ts +2 -1
  289. package/plugins/common/transforms.plugin.d.ts +2 -1
  290. package/plugins/deserialize/deserialize-html.plugin.d.ts +2 -1
  291. package/plugins/deserialize/deserialize-md.plugin.d.ts +2 -1
  292. package/plugins/font-size/font-size.editor.d.ts +3 -4
  293. package/plugins/heading/heading.editor.d.ts +3 -4
  294. package/plugins/heading/heading.plugin.d.ts +2 -2
  295. package/plugins/hr/hr.component.d.ts +3 -3
  296. package/plugins/hr/hr.editor.d.ts +3 -3
  297. package/plugins/hr/hr.plugin.d.ts +2 -1
  298. package/plugins/image/image.component.d.ts +2 -3
  299. package/plugins/image/image.editor.d.ts +8 -7
  300. package/plugins/indent/indent.editor.d.ts +3 -4
  301. package/plugins/indent/indent.plugin.d.ts +2 -1
  302. package/plugins/indent/on-keydown-indent.d.ts +2 -2
  303. package/plugins/inline-code/inline-code.component.d.ts +2 -3
  304. package/plugins/inline-code/inline-code.editor.d.ts +6 -5
  305. package/plugins/inline-code/inline-code.plugin.d.ts +2 -1
  306. package/plugins/link/edit/link-edit.component.d.ts +4 -3
  307. package/plugins/link/hover/link-hover.component.d.ts +1 -1
  308. package/plugins/link/link.component.d.ts +2 -3
  309. package/plugins/link/link.editor.d.ts +5 -5
  310. package/plugins/link/link.plugin.d.ts +2 -1
  311. package/plugins/list/components/bulleted-list.component.d.ts +2 -3
  312. package/plugins/list/components/list-item.component.d.ts +3 -3
  313. package/plugins/list/components/numbered-list.component.d.ts +2 -3
  314. package/plugins/list/list.editor.d.ts +11 -9
  315. package/plugins/list/list.plugin.d.ts +2 -1
  316. package/plugins/list/normalizers/get-list-normalizer.d.ts +3 -2
  317. package/plugins/list/normalizers/normalize-list-item.d.ts +3 -2
  318. package/plugins/list/normalizers/normalize-no.d.ts +3 -2
  319. package/plugins/list/on-key-down-list.d.ts +2 -2
  320. package/plugins/list/queries/get-list-item-entry.d.ts +3 -2
  321. package/plugins/list/queries/get-start-list-item.d.ts +2 -2
  322. package/plugins/list/queries/has-list-in-list-item.d.ts +5 -4
  323. package/plugins/list/queries/is-in-list.d.ts +3 -2
  324. package/plugins/list/queries/is-list-nested.d.ts +3 -2
  325. package/plugins/list/queries/is-list.d.ts +2 -2
  326. package/plugins/list/queries/is-node-type-list.d.ts +2 -1
  327. package/plugins/list/queries/is-selection-at-list-item-start.d.ts +2 -2
  328. package/plugins/list/queries/is-selection-in-same-list-item.d.ts +2 -2
  329. package/plugins/list/transforms/insert-list-data.d.ts +5 -3
  330. package/plugins/list/transforms/insert-list-item.d.ts +2 -2
  331. package/plugins/list/transforms/move-list-item-down.d.ts +3 -2
  332. package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +3 -2
  333. package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +3 -2
  334. package/plugins/list/transforms/move-list-item-up.d.ts +3 -2
  335. package/plugins/list/transforms/unwrap-list.d.ts +2 -2
  336. package/plugins/mark/mark.editor.d.ts +3 -2
  337. package/plugins/mark/mark.plugin.d.ts +2 -1
  338. package/plugins/mention/mention.plugin.d.ts +2 -1
  339. package/plugins/mention/suggestion.component.d.ts +1 -1
  340. package/plugins/node-id/node-id.plugin.d.ts +2 -2
  341. package/plugins/normalizers/insert-paragraph-nodes.d.ts +2 -1
  342. package/plugins/normalizers/trailing-node.plugin.d.ts +2 -2
  343. package/plugins/quick-insert/components/quick-insert.component.d.ts +3 -3
  344. package/plugins/quick-insert/quick-insert.editor.d.ts +6 -6
  345. package/plugins/quick-insert/quick-insert.plugin.d.ts +3 -3
  346. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +3 -3
  347. package/plugins/table/components/table.component.d.ts +2 -3
  348. package/plugins/table/components/td/td.component.d.ts +2 -2
  349. package/plugins/table/components/toolbar/table-options.component.d.ts +3 -3
  350. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +3 -3
  351. package/plugins/table/table.editor.d.ts +11 -11
  352. package/plugins/table/table.store.d.ts +12 -12
  353. package/plugins/table/table.types.d.ts +4 -3
  354. package/plugins/table/transforms/clear-cell.d.ts +3 -2
  355. package/plugins/table/transforms/clear-table-node.d.ts +2 -2
  356. package/plugins/table/transforms/insert-column.d.ts +5 -4
  357. package/plugins/table/transforms/insert-row.d.ts +2 -2
  358. package/plugins/table/transforms/insert-table.d.ts +3 -2
  359. package/plugins/table/transforms/remove-column.d.ts +2 -2
  360. package/plugins/table/transforms/remove-row.d.ts +2 -2
  361. package/plugins/table/transforms/remove-table.d.ts +2 -2
  362. package/plugins/table/utils/calc-anchor-position.d.ts +2 -2
  363. package/plugins/table/utils/cell-position.d.ts +3 -3
  364. package/plugins/table/utils/create-table-position.d.ts +3 -2
  365. package/plugins/table/utils/get-min-max-cell-index.d.ts +2 -2
  366. package/plugins/table/utils/get-select-cell-node.d.ts +3 -3
  367. package/plugins/table/utils/handle-cell.d.ts +3 -2
  368. package/plugins/table/utils/is-range-in-table.d.ts +3 -2
  369. package/plugins/table/utils/is-selection-in-table.d.ts +3 -3
  370. package/plugins/table/utils/merge-cell.d.ts +6 -5
  371. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +2 -2
  372. package/plugins/table/utils/split-cell.d.ts +3 -3
  373. package/plugins/table/utils/table-entry.d.ts +5 -5
  374. package/plugins/todo-item/todo-item.component.d.ts +2 -3
  375. package/plugins/todo-item/todo-item.editor.d.ts +3 -3
  376. package/plugins/todo-item/todo-item.plugin.d.ts +2 -1
  377. package/plugins/vertical-align/toolbar-item.component.d.ts +2 -3
  378. package/queries/anchor-block-entry.d.ts +4 -2
  379. package/queries/anchor-block.d.ts +3 -2
  380. package/queries/anchor-inline-entry.d.ts +3 -2
  381. package/queries/find-descendant.d.ts +3 -2
  382. package/queries/find-node.d.ts +3 -3
  383. package/queries/get-above-by-type.d.ts +2 -3
  384. package/queries/get-above.d.ts +3 -3
  385. package/queries/get-anchor-block-entry.d.ts +4 -2
  386. package/queries/get-block-above.d.ts +3 -3
  387. package/queries/get-block-card-above.d.ts +3 -3
  388. package/queries/get-block-card-cursor.d.ts +2 -2
  389. package/queries/get-container-blocks.d.ts +2 -2
  390. package/queries/get-last-node.d.ts +3 -2
  391. package/queries/get-node.d.ts +3 -2
  392. package/queries/get-nodes-by-type.d.ts +2 -3
  393. package/queries/get-nodes.d.ts +2 -3
  394. package/queries/get-parent.d.ts +3 -3
  395. package/queries/get-plain-text.d.ts +2 -2
  396. package/queries/get-plugin-by-toolbar.d.ts +2 -3
  397. package/queries/get-point-before.d.ts +3 -2
  398. package/queries/get-point-from-location.d.ts +3 -2
  399. package/queries/get-rang-from-block-start.d.ts +2 -3
  400. package/queries/get-range-before.d.ts +3 -2
  401. package/queries/get-selection-marks.d.ts +2 -2
  402. package/queries/get-selection-nodes-by-type.d.ts +3 -2
  403. package/queries/get-text.d.ts +3 -2
  404. package/queries/get-toolbar-disabled.d.ts +2 -3
  405. package/queries/is-across-blocks.d.ts +3 -2
  406. package/queries/is-ancestor-empty.d.ts +3 -2
  407. package/queries/is-block-above-empty.d.ts +2 -2
  408. package/queries/is-block-active.d.ts +2 -2
  409. package/queries/is-block-card-cursor.d.ts +2 -2
  410. package/queries/is-block-text-empty-after-selection.d.ts +2 -2
  411. package/queries/is-contain-nested-type.d.ts +2 -2
  412. package/queries/is-container-type.d.ts +3 -2
  413. package/queries/is-empty-content-filter.d.ts +2 -2
  414. package/queries/is-empty-paragraph-by-path.d.ts +3 -2
  415. package/queries/is-empty-paragraph.d.ts +6 -4
  416. package/queries/is-global-collapsed.d.ts +2 -2
  417. package/queries/is-include-types.d.ts +2 -2
  418. package/queries/is-node-type-in.d.ts +2 -3
  419. package/queries/is-paragraph.d.ts +2 -2
  420. package/queries/is-range-across-blocks.d.ts +3 -3
  421. package/queries/is-start.d.ts +3 -2
  422. package/queries/some-node.d.ts +3 -2
  423. package/shortcuts/index.d.ts +2 -2
  424. package/shortcuts/mark.d.ts +2 -2
  425. package/test/utils/with-editor.d.ts +2 -0
  426. package/transforms/clear-marks.d.ts +2 -2
  427. package/transforms/close-conversion-hint.d.ts +2 -2
  428. package/transforms/delete-element.d.ts +3 -2
  429. package/transforms/handle-continual-delete-backward.d.ts +4 -3
  430. package/transforms/handle-continual-insert-break.d.ts +3 -3
  431. package/transforms/insert-elements.d.ts +3 -2
  432. package/transforms/insert-paragraph.d.ts +3 -2
  433. package/transforms/move-children.d.ts +3 -2
  434. package/transforms/on-keydown-reset-block-type.d.ts +2 -2
  435. package/transforms/set-end-selection.d.ts +2 -2
  436. package/transforms/set-marks.d.ts +3 -2
  437. package/transforms/set-node.d.ts +3 -2
  438. package/transforms/un-hang-range.d.ts +3 -2
  439. package/transforms/un-wrap.d.ts +2 -2
  440. package/transforms/unwrap-nodes-by-type.d.ts +2 -3
  441. package/utils/auto-focus.d.ts +2 -2
  442. package/utils/copy-node.d.ts +5 -3
  443. package/utils/create-paragraph.d.ts +2 -0
  444. package/utils/dom.d.ts +2 -2
  445. package/utils/editor-uuid.d.ts +3 -3
  446. package/utils/fragment.d.ts +7 -5
  447. package/utils/get-editable-element-height.d.ts +2 -2
  448. package/utils/get-toolbar-class.d.ts +2 -2
  449. package/utils/index.d.ts +1 -0
  450. package/utils/is-clean-empty-paragraph.d.ts +4 -3
  451. package/utils/is-inline.d.ts +3 -2
  452. package/utils/match.d.ts +2 -2
  453. package/utils/merge-element-options.d.ts +1 -1
  454. package/utils/scroll-into-view.d.ts +2 -2
  455. package/esm2020/components/listbox/listbox.mjs +0 -375
  456. package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -191
  457. package/esm2020/components/template/template.component.mjs +0 -62
  458. package/esm2020/components/toolbar/toolbar.component.mjs +0 -266
  459. package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -144
  460. package/esm2020/components/toolbar-group/toolbar-group.component.mjs +0 -122
  461. package/esm2020/constants/auto-format-rules.mjs +0 -167
  462. package/esm2020/constants/plugin-menu.mjs +0 -325
  463. package/esm2020/core/toolbar-item/base-toolbar-item.mjs +0 -87
  464. package/esm2020/core/utils/plugin-menu.mjs +0 -33
  465. package/esm2020/custom-types.mjs +0 -2
  466. package/esm2020/editor.module.mjs +0 -254
  467. package/esm2020/interfaces/auto-format.mjs +0 -2
  468. package/esm2020/interfaces/editor.mjs +0 -25
  469. package/esm2020/interfaces/plugins/plugin-menu.mjs +0 -19
  470. package/esm2020/interfaces/plugins/with-override.mjs +0 -2
  471. package/esm2020/interfaces/reset-block-type-plugin-options.mjs +0 -2
  472. package/esm2020/interfaces/toolbar.mjs +0 -12
  473. package/esm2020/pipes.mjs +0 -42
  474. package/esm2020/plugins/align/align.editor.mjs +0 -43
  475. package/esm2020/plugins/align/align.plugin.mjs +0 -64
  476. package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
  477. package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
  478. package/esm2020/plugins/blockquote/blockquote.component.mjs +0 -21
  479. package/esm2020/plugins/blockquote/blockquote.editor.mjs +0 -20
  480. package/esm2020/plugins/blockquote/blockquote.plugin.mjs +0 -85
  481. package/esm2020/plugins/code/code.editor.mjs +0 -48
  482. package/esm2020/plugins/color/color.editor.mjs +0 -27
  483. package/esm2020/plugins/common/history.plugin.mjs +0 -31
  484. package/esm2020/plugins/common/transforms.plugin.mjs +0 -18
  485. package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
  486. package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
  487. package/esm2020/plugins/font-size/font-size.editor.mjs +0 -98
  488. package/esm2020/plugins/heading/heading.editor.mjs +0 -54
  489. package/esm2020/plugins/heading/heading.plugin.mjs +0 -136
  490. package/esm2020/plugins/hr/hr.editor.mjs +0 -16
  491. package/esm2020/plugins/hr/hr.plugin.mjs +0 -56
  492. package/esm2020/plugins/image/image.component.mjs +0 -420
  493. package/esm2020/plugins/image/image.editor.mjs +0 -81
  494. package/esm2020/plugins/indent/indent.editor.mjs +0 -78
  495. package/esm2020/plugins/indent/on-keydown-indent.mjs +0 -59
  496. package/esm2020/plugins/inline-code/inline-code.component.mjs +0 -26
  497. package/esm2020/plugins/inline-code/inline-code.editor.mjs +0 -48
  498. package/esm2020/plugins/inline-code/inline-code.plugin.mjs +0 -66
  499. package/esm2020/plugins/link/edit/link-edit.component.mjs +0 -103
  500. package/esm2020/plugins/link/link.component.mjs +0 -167
  501. package/esm2020/plugins/link/link.editor.mjs +0 -66
  502. package/esm2020/plugins/list/components/bulleted-list.component.mjs +0 -33
  503. package/esm2020/plugins/list/components/list-item.component.mjs +0 -93
  504. package/esm2020/plugins/list/components/numbered-list.component.mjs +0 -39
  505. package/esm2020/plugins/list/list.editor.mjs +0 -126
  506. package/esm2020/plugins/list/list.plugin.mjs +0 -312
  507. package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
  508. package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +0 -18
  509. package/esm2020/plugins/list/normalizers/normalize-no.mjs +0 -43
  510. package/esm2020/plugins/list/on-key-down-list.mjs +0 -33
  511. package/esm2020/plugins/list/queries/get-list-item-entry.mjs +0 -28
  512. package/esm2020/plugins/list/queries/get-start-list-item.mjs +0 -27
  513. package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +0 -27
  514. package/esm2020/plugins/list/queries/is-in-list.mjs +0 -6
  515. package/esm2020/plugins/list/queries/is-list-nested.mjs +0 -10
  516. package/esm2020/plugins/list/queries/is-list.mjs +0 -5
  517. package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
  518. package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
  519. package/esm2020/plugins/list/transforms/insert-list-data.mjs +0 -72
  520. package/esm2020/plugins/list/transforms/insert-list-item.mjs +0 -73
  521. package/esm2020/plugins/list/transforms/move-list-item-down.mjs +0 -41
  522. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
  523. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
  524. package/esm2020/plugins/list/transforms/move-list-item-up.mjs +0 -78
  525. package/esm2020/plugins/list/transforms/unwrap-list.mjs +0 -10
  526. package/esm2020/plugins/mark/mark.editor.mjs +0 -28
  527. package/esm2020/plugins/mention/mention.plugin.mjs +0 -91
  528. package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +0 -18
  529. package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +0 -68
  530. package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +0 -104
  531. package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -104
  532. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -189
  533. package/esm2020/plugins/table/table.editor.mjs +0 -209
  534. package/esm2020/plugins/table/table.plugin.mjs +0 -544
  535. package/esm2020/plugins/table/table.store.mjs +0 -426
  536. package/esm2020/plugins/table/table.types.mjs +0 -60
  537. package/esm2020/plugins/table/transforms/clear-cell.mjs +0 -14
  538. package/esm2020/plugins/table/transforms/clear-table-node.mjs +0 -27
  539. package/esm2020/plugins/table/transforms/insert-column.mjs +0 -69
  540. package/esm2020/plugins/table/transforms/insert-row.mjs +0 -50
  541. package/esm2020/plugins/table/transforms/insert-table.mjs +0 -15
  542. package/esm2020/plugins/table/transforms/remove-column.mjs +0 -51
  543. package/esm2020/plugins/table/transforms/remove-row.mjs +0 -48
  544. package/esm2020/plugins/table/transforms/remove-table.mjs +0 -49
  545. package/esm2020/plugins/table/utils/calc-anchor-position.mjs +0 -25
  546. package/esm2020/plugins/table/utils/cell-position.mjs +0 -60
  547. package/esm2020/plugins/table/utils/create-table-position.mjs +0 -10
  548. package/esm2020/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
  549. package/esm2020/plugins/table/utils/get-select-cell-node.mjs +0 -23
  550. package/esm2020/plugins/table/utils/handle-cell.mjs +0 -25
  551. package/esm2020/plugins/table/utils/is-range-in-table.mjs +0 -16
  552. package/esm2020/plugins/table/utils/is-selection-in-table.mjs +0 -51
  553. package/esm2020/plugins/table/utils/merge-cell.mjs +0 -108
  554. package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
  555. package/esm2020/plugins/table/utils/split-cell.mjs +0 -29
  556. package/esm2020/plugins/table/utils/table-entry.mjs +0 -21
  557. package/esm2020/plugins/todo-item/todo-item.editor.mjs +0 -32
  558. package/esm2020/plugins/todo-item/todo-item.plugin.mjs +0 -93
  559. package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +0 -83
  560. package/esm2020/queries/anchor-block-entry.mjs +0 -13
  561. package/esm2020/queries/anchor-block.mjs +0 -6
  562. package/esm2020/queries/anchor-inline-entry.mjs +0 -10
  563. package/esm2020/queries/find-node.mjs +0 -45
  564. package/esm2020/queries/get-above-by-type.mjs +0 -14
  565. package/esm2020/queries/get-above.mjs +0 -9
  566. package/esm2020/queries/get-anchor-block-entry.mjs +0 -8
  567. package/esm2020/queries/get-block-above.mjs +0 -10
  568. package/esm2020/queries/get-block-card-above.mjs +0 -10
  569. package/esm2020/queries/get-block-card-cursor.mjs +0 -5
  570. package/esm2020/queries/get-container-blocks.mjs +0 -12
  571. package/esm2020/queries/get-insert-elements-path.mjs +0 -44
  572. package/esm2020/queries/get-node.mjs +0 -10
  573. package/esm2020/queries/get-nodes-by-type.mjs +0 -15
  574. package/esm2020/queries/get-nodes.mjs +0 -7
  575. package/esm2020/queries/get-parent.mjs +0 -12
  576. package/esm2020/queries/get-plain-text.mjs +0 -16
  577. package/esm2020/queries/get-plugin-by-toolbar.mjs +0 -13
  578. package/esm2020/queries/get-point-from-location.mjs +0 -15
  579. package/esm2020/queries/get-rang-from-block-start.mjs +0 -16
  580. package/esm2020/queries/get-range-before.mjs +0 -17
  581. package/esm2020/queries/get-selection-nodes-by-type.mjs +0 -30
  582. package/esm2020/queries/get-text.mjs +0 -9
  583. package/esm2020/queries/get-toolbar-disabled.mjs +0 -13
  584. package/esm2020/queries/is-across-blocks.mjs +0 -7
  585. package/esm2020/queries/is-ancestor-empty.mjs +0 -6
  586. package/esm2020/queries/is-block-above-empty.mjs +0 -11
  587. package/esm2020/queries/is-block-active.mjs +0 -8
  588. package/esm2020/queries/is-block-card-cursor.mjs +0 -4
  589. package/esm2020/queries/is-contain-nested-type.mjs +0 -29
  590. package/esm2020/queries/is-container-type.mjs +0 -3
  591. package/esm2020/queries/is-empty-content-filter.mjs +0 -23
  592. package/esm2020/queries/is-empty-paragraph-by-path.mjs +0 -7
  593. package/esm2020/queries/is-empty-paragraph.mjs +0 -28
  594. package/esm2020/queries/is-global-collapsed.mjs +0 -5
  595. package/esm2020/queries/is-include-types.mjs +0 -12
  596. package/esm2020/queries/is-node-type-in.mjs +0 -9
  597. package/esm2020/queries/is-node-type.mjs +0 -15
  598. package/esm2020/queries/is-paragraph.mjs +0 -9
  599. package/esm2020/queries/is-range-across-blocks.mjs +0 -22
  600. package/esm2020/queries/is-start.mjs +0 -6
  601. package/esm2020/queries/some-node.mjs +0 -9
  602. package/esm2020/shortcuts/mark.mjs +0 -25
  603. package/esm2020/test/utils/with-plugin.mjs +0 -11
  604. package/esm2020/transforms/close-conversion-hint.mjs +0 -8
  605. package/esm2020/transforms/handle-continual-delete-backward.mjs +0 -18
  606. package/esm2020/transforms/handle-continual-insert-break.mjs +0 -20
  607. package/esm2020/transforms/insert-elements.mjs +0 -38
  608. package/esm2020/transforms/insert-paragraph.mjs +0 -6
  609. package/esm2020/transforms/move-children.mjs +0 -22
  610. package/esm2020/transforms/on-keydown-reset-block-type.mjs +0 -23
  611. package/esm2020/transforms/set-marks.mjs +0 -9
  612. package/esm2020/transforms/set-node.mjs +0 -6
  613. package/esm2020/transforms/un-hang-range.mjs +0 -11
  614. package/esm2020/transforms/un-wrap.mjs +0 -12
  615. package/esm2020/transforms/unwrap-nodes-by-type.mjs +0 -14
  616. package/esm2020/utils/copy-node.mjs +0 -32
  617. package/esm2020/utils/create-empty-paragraph.mjs +0 -14
  618. package/esm2020/utils/editor-uuid.mjs +0 -8
  619. package/esm2020/utils/fragment.mjs +0 -74
  620. package/esm2020/utils/get-editable-element-height.mjs +0 -6
  621. package/esm2020/utils/get-toolbar-class.mjs +0 -6
  622. package/esm2020/utils/index.mjs +0 -19
  623. package/esm2020/utils/insert-data-by-invalid-type.mjs +0 -62
  624. package/esm2020/utils/is-clean-empty-paragraph.mjs +0 -37
  625. package/esm2020/utils/is-inline.mjs +0 -9
  626. package/esm2020/utils/merge-element-options.mjs +0 -19
  627. package/esm2020/utils/scroll-into-view.mjs +0 -38
  628. package/fesm2015/worktile-theia.mjs +0 -16674
  629. package/fesm2015/worktile-theia.mjs.map +0 -1
  630. package/fesm2020/worktile-theia.mjs.map +0 -1
  631. /package/{esm2020 → esm2022}/components/column-resize/resize-ref.mjs +0 -0
  632. /package/{esm2020 → esm2022}/components/column-resize/selectors.mjs +0 -0
  633. /package/{esm2020 → esm2022}/components/index.mjs +0 -0
  634. /package/{esm2020 → esm2022}/components/listbox/listbox.type.mjs +0 -0
  635. /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
  636. /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
  637. /package/{esm2020 → esm2022}/constants/default.mjs +0 -0
  638. /package/{esm2020 → esm2022}/constants/error.mjs +0 -0
  639. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  640. /package/{esm2020 → esm2022}/constants/node-types.mjs +0 -0
  641. /package/{esm2020 → esm2022}/constants/selector.mjs +0 -0
  642. /package/{esm2020 → esm2022}/constants/toolbar.mjs +0 -0
  643. /package/{esm2020 → esm2022}/core/create-plugin.mjs +0 -0
  644. /package/{esm2020 → esm2022}/core/create-toolbar.mjs +0 -0
  645. /package/{esm2020 → esm2022}/core/index.mjs +0 -0
  646. /package/{esm2020 → esm2022}/core/utils/flatten-deep-plugins.mjs +0 -0
  647. /package/{esm2020 → esm2022}/core/utils/get-plugin-options.mjs +0 -0
  648. /package/{esm2020 → esm2022}/core/utils/get-plugin.mjs +0 -0
  649. /package/{esm2020 → esm2022}/core/utils/get-plugins.mjs +0 -0
  650. /package/{esm2020 → esm2022}/core/utils/index.mjs +0 -0
  651. /package/{esm2020 → esm2022}/core/utils/merge-array.mjs +0 -0
  652. /package/{esm2020 → esm2022}/core/utils/merge-deep-plugins.mjs +0 -0
  653. /package/{esm2020 → esm2022}/core/utils/merge-options.mjs +0 -0
  654. /package/{esm2020 → esm2022}/core/utils/nested-structure-by-key.mjs +0 -0
  655. /package/{esm2020 → esm2022}/core/utils/plugins-by-key.mjs +0 -0
  656. /package/{esm2020 → esm2022}/core/with-theia.mjs +0 -0
  657. /package/{esm2020 → esm2022}/interfaces/element.mjs +0 -0
  658. /package/{esm2020 → esm2022}/interfaces/image.mjs +0 -0
  659. /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
  660. /package/{esm2020 → esm2022}/interfaces/plugins/index.mjs +0 -0
  661. /package/{esm2020 → esm2022}/interfaces/plugins/no-infer.mjs +0 -0
  662. /package/{esm2020 → esm2022}/interfaces/plugins/plugin-key.mjs +0 -0
  663. /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
  664. /package/{esm2020 → esm2022}/interfaces/upload.mjs +0 -0
  665. /package/{esm2020 → esm2022}/interfaces/utility/index.mjs +0 -0
  666. /package/{esm2020 → esm2022}/interfaces/utility/nested-structure-by-key.mjs +0 -0
  667. /package/{esm2020 → esm2022}/interfaces/utility/override-by-key.mjs +0 -0
  668. /package/{esm2020 → esm2022}/interfaces/utility/types.mjs +0 -0
  669. /package/{esm2020 → esm2022}/interfaces/valid-children-types.mjs +0 -0
  670. /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
  671. /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
  672. /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
  673. /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
  674. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-sublist.mjs +0 -0
  675. /package/{esm2020 → esm2022}/plugins/list/queries/get-list-types.mjs +0 -0
  676. /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
  677. /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
  678. /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
  679. /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
  680. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.plugin.mjs +0 -0
  681. /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.types.mjs +0 -0
  682. /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
  683. /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
  684. /package/{esm2020 → esm2022}/plugins/table/utils/calc-span.mjs +0 -0
  685. /package/{esm2020 → esm2022}/plugins/table/utils/calculate-table.mjs +0 -0
  686. /package/{esm2020 → esm2022}/plugins/table/utils/create-cell.mjs +0 -0
  687. /package/{esm2020 → esm2022}/plugins/table/utils/create-row.mjs +0 -0
  688. /package/{esm2020 → esm2022}/plugins/table/utils/create-table.mjs +0 -0
  689. /package/{esm2020 → esm2022}/plugins/table/utils/get-grid-columns.mjs +0 -0
  690. /package/{esm2020 → esm2022}/plugins/table/utils/index.mjs +0 -0
  691. /package/{esm2020 → esm2022}/plugins/table/utils/is-header-row.mjs +0 -0
  692. /package/{esm2020 → esm2022}/plugins/table/utils/is-legal-table.mjs +0 -0
  693. /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
  694. /package/{esm2020 → esm2022}/plugins/table/utils/next-path.mjs +0 -0
  695. /package/{esm2020 → esm2022}/plugins/table/utils/normalize-table.mjs +0 -0
  696. /package/{esm2020 → esm2022}/plugins/table/utils/remove-columns.mjs +0 -0
  697. /package/{esm2020 → esm2022}/plugins/table/utils/remove-row-column.mjs +0 -0
  698. /package/{esm2020 → esm2022}/plugins/table/utils/set-cells-background-color.mjs +0 -0
  699. /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
  700. /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
  701. /package/{esm2020 → esm2022}/plugins/vertical-align/vertical-align.editor.mjs +0 -0
  702. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  703. /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
  704. /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
  705. /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
  706. /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
  707. /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
  708. /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
  709. /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
  710. /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
  711. /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
  712. /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
  713. /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
  714. /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
  715. /package/{esm2020 → esm2022}/test/index.mjs +0 -0
  716. /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
  717. /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
  718. /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
  719. /package/{esm2020 → esm2022}/utils/blob.mjs +0 -0
  720. /package/{esm2020 → esm2022}/utils/cast-array.mjs +0 -0
  721. /package/{esm2020 → esm2022}/utils/color-picker.mjs +0 -0
  722. /package/{esm2020 → esm2022}/utils/common.mjs +0 -0
  723. /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
  724. /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
  725. /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
  726. /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
  727. /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
  728. /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
@@ -1,23 +0,0 @@
1
- import { Editor, Transforms } from 'slate';
2
- import { TheEditor } from '../../../interfaces';
3
- import { createTablePosition } from './create-table-position';
4
- export function getSelectCellNode(editor, selectedCells) {
5
- const pos = createTablePosition(editor);
6
- return selectedCells
7
- .map(item => {
8
- const node = pos.findCellByPath(item);
9
- if (node) {
10
- return {
11
- ...item,
12
- node: node
13
- };
14
- }
15
- })
16
- .filter(item => item);
17
- }
18
- export function focusCell(editor, path) {
19
- const at = Editor.start(editor, path);
20
- TheEditor.focus(editor);
21
- Transforms.select(editor, at);
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGVjdC1jZWxsLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9nZXQtc2VsZWN0LWNlbGwtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxhQUE2QjtJQUMzRSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QyxPQUFPLGFBQWE7U0FDZixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDUixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTztnQkFDSCxHQUFHLElBQUk7Z0JBQ1AsSUFBSSxFQUFFLElBQUk7YUFDYixDQUFDO1NBQ0w7SUFDTCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBYztJQUNwRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENlbGxQb3NpdGlvbiB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuL2NyZWF0ZS10YWJsZS1wb3NpdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RDZWxsTm9kZShlZGl0b3I6IEVkaXRvciwgc2VsZWN0ZWRDZWxsczogQ2VsbFBvc2l0aW9uW10pIHtcbiAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRDZWxsc1xuICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHBvcy5maW5kQ2VsbEJ5UGF0aChpdGVtKTtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogbm9kZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzQ2VsbChlZGl0b3I6IEVkaXRvciwgcGF0aDogbnVtYmVyW10pIHtcbiAgICBjb25zdCBhdCA9IEVkaXRvci5zdGFydChlZGl0b3IsIHBhdGgpO1xuICAgIFRoZUVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgYXQpO1xufVxuIl19
@@ -1,25 +0,0 @@
1
- import { Transforms, Element } from 'slate';
2
- import { getPluginOptions } from '../../../core/utils';
3
- import { IndentEditor } from '../../../plugins/public-api';
4
- import { PluginKeys } from '../../../interfaces';
5
- import { Indents } from '../../../constants';
6
- export function sortCell(cells) {
7
- cells.sort((a, b) => a.row - b.row);
8
- cells.sort((a, b) => a.col - b.col);
9
- }
10
- export function setCellIndent(editor, indentType, child, at) {
11
- const allowedTypes = IndentEditor.getAllowedTypes(editor);
12
- if (!Element.isElement(child) || !allowedTypes.includes(child.type)) {
13
- return;
14
- }
15
- const maxIndent = getPluginOptions(editor, PluginKeys.indent)?.maxIndent ?? [];
16
- let { indent } = child;
17
- indent = indentType === Indents.indentRight ? (indent ? ++indent : 1) : indent ? --indent : 0;
18
- if (indent <= maxIndent) {
19
- Transforms.setNodes(editor, { indent }, {
20
- at,
21
- mode: 'highest'
22
- });
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWNlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9oYW5kbGUtY2VsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxPQUFPLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHN0MsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFxQjtJQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWMsRUFBRSxVQUFtQixFQUFFLEtBQW9CLEVBQUUsRUFBUTtJQUM3RixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakUsT0FBTztLQUNWO0lBRUQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUNwRyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLE1BQU0sR0FBRyxVQUFVLEtBQUssT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtRQUNyQixVQUFVLENBQUMsUUFBUSxDQUNmLE1BQU0sRUFDTixFQUFFLE1BQU0sRUFBRSxFQUNWO1lBQ0ksRUFBRTtZQUNGLElBQUksRUFBRSxTQUFTO1NBQ2xCLENBQ0osQ0FBQztLQUNMO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlbGxQb3NpdGlvbiB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IFRyYW5zZm9ybXMsIEVsZW1lbnQsIEVkaXRvciwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEluZGVudFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEluZGVudEVkaXRvciB9IGZyb20gJy4uLy4uLy4uL3BsdWdpbnMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJbmRlbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc29ydENlbGwoY2VsbHM6IENlbGxQb3NpdGlvbltdKSB7XG4gICAgY2VsbHMuc29ydCgoYSwgYikgPT4gYS5yb3cgLSBiLnJvdyk7XG4gICAgY2VsbHMuc29ydCgoYSwgYikgPT4gYS5jb2wgLSBiLmNvbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDZWxsSW5kZW50KGVkaXRvcjogRWRpdG9yLCBpbmRlbnRUeXBlOiBJbmRlbnRzLCBjaGlsZDogQ3VzdG9tRWxlbWVudCwgYXQ6IFBhdGgpIHtcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBJbmRlbnRFZGl0b3IuZ2V0QWxsb3dlZFR5cGVzKGVkaXRvcik7XG4gICAgaWYgKCFFbGVtZW50LmlzRWxlbWVudChjaGlsZCkgfHwgIWFsbG93ZWRUeXBlcy5pbmNsdWRlcyhjaGlsZC50eXBlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWF4SW5kZW50ID0gZ2V0UGx1Z2luT3B0aW9uczxJbmRlbnRQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW5kZW50KT8ubWF4SW5kZW50ID8/IFtdO1xuICAgIGxldCB7IGluZGVudCB9ID0gY2hpbGQ7XG4gICAgaW5kZW50ID0gaW5kZW50VHlwZSA9PT0gSW5kZW50cy5pbmRlbnRSaWdodCA/IChpbmRlbnQgPyArK2luZGVudCA6IDEpIDogaW5kZW50ID8gLS1pbmRlbnQgOiAwO1xuICAgIGlmIChpbmRlbnQgPD0gbWF4SW5kZW50KSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoXG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICB7IGluZGVudCB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGF0LFxuICAgICAgICAgICAgICAgIG1vZGU6ICdoaWdoZXN0J1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { createTablePosition } from './create-table-position';
2
- /**
3
- * True if the given range is inside one table
4
- */
5
- export function isRangeInTable(opts, editor, range) {
6
- const { focus } = range;
7
- const startPosition = createTablePosition(editor);
8
- const endPosition = createTablePosition(editor, focus.path);
9
- // Only handle events in tables
10
- if (!startPosition.isInTable() || !endPosition.isInTable()) {
11
- return false;
12
- }
13
- // Inside the same table
14
- return startPosition.table === endPosition.table;
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcmFuZ2UtaW4tdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9pcy1yYW5nZS1pbi10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBa0IsRUFBRSxNQUFjLEVBQUUsS0FBWTtJQUMzRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUQsK0JBQStCO0lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDeEQsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCx3QkFBd0I7SUFDeEIsT0FBTyxhQUFhLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSwgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUYWJsZU9wdGlvbnMgfSBmcm9tICcuLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVUYWJsZVBvc2l0aW9uIH0gZnJvbSAnLi9jcmVhdGUtdGFibGUtcG9zaXRpb24nO1xuaW1wb3J0IHsgVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vdGFibGUtcG9zaXRpb24nO1xuXG4vKipcbiAqIFRydWUgaWYgdGhlIGdpdmVuIHJhbmdlIGlzIGluc2lkZSBvbmUgdGFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmFuZ2VJblRhYmxlKG9wdHM6IFRhYmxlT3B0aW9ucywgZWRpdG9yOiBFZGl0b3IsIHJhbmdlOiBSYW5nZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZm9jdXMgfSA9IHJhbmdlO1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgY29uc3QgZW5kUG9zaXRpb24gPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvciwgZm9jdXMucGF0aCk7XG5cbiAgICAvLyBPbmx5IGhhbmRsZSBldmVudHMgaW4gdGFibGVzXG4gICAgaWYgKCFzdGFydFBvc2l0aW9uLmlzSW5UYWJsZSgpIHx8ICFlbmRQb3NpdGlvbi5pc0luVGFibGUoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gSW5zaWRlIHRoZSBzYW1lIHRhYmxlXG4gICAgcmV0dXJuIHN0YXJ0UG9zaXRpb24udGFibGUgPT09IGVuZFBvc2l0aW9uLnRhYmxlO1xufVxuIl19
@@ -1,51 +0,0 @@
1
- import { createTablePosition } from './create-table-position';
2
- import { isRangeInTable } from './is-range-in-table';
3
- /**
4
- * Is the selection in a table
5
- */
6
- export function isSelectionInTable(opts, editor) {
7
- if (!editor.selection) {
8
- return false;
9
- }
10
- return isRangeInTable(opts, editor, editor.selection);
11
- }
12
- /**
13
- * Whether the cells passed in can form a rectangle
14
- * @param editor
15
- * @param cells
16
- * @returns boolean
17
- */
18
- export function isRectangularInTableCells(editor, cells) {
19
- let selectCellSize = cells.length;
20
- if (selectCellSize === 0) {
21
- return false;
22
- }
23
- const { row, col } = cells[0];
24
- let maxCol = col;
25
- let minCol = col;
26
- let maxRow = row;
27
- let minRow = row;
28
- const pos = createTablePosition(editor);
29
- for (let { row, col } of cells) {
30
- const { hidden, rowspan, colspan } = pos.findCellByPath({ row, col });
31
- if (hidden) {
32
- selectCellSize--;
33
- continue;
34
- }
35
- if (rowspan || colspan) {
36
- const colSpan = colspan ?? 1;
37
- const rowSpan = rowspan ?? 1;
38
- // 更新视觉选中的个数
39
- selectCellSize = selectCellSize + (rowSpan * colSpan - 1);
40
- // 纠正合并单元格下的 row 和 col 的真实值
41
- row = row + rowSpan - 1;
42
- col = col + colSpan - 1;
43
- }
44
- maxCol = col > maxCol ? col : maxCol;
45
- minCol = col < minCol ? col : minCol;
46
- maxRow = row > maxRow ? row : maxRow;
47
- minRow = row < minRow ? row : minRow;
48
- }
49
- return (maxRow + 1 - minRow) * (maxCol + 1 - minCol) === selectCellSize;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWluLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdXRpbHMvaXMtc2VsZWN0aW9uLWluLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFrQixFQUFFLE1BQWM7SUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDbkIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBYyxFQUFFLEtBQXFCO0lBQzNFLElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDbEMsSUFBSSxjQUFjLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsSUFBSSxNQUFNLEdBQVcsR0FBRyxDQUFDO0lBQ3pCLElBQUksTUFBTSxHQUFXLEdBQUcsQ0FBQztJQUN6QixJQUFJLE1BQU0sR0FBVyxHQUFHLENBQUM7SUFDekIsSUFBSSxNQUFNLEdBQVcsR0FBRyxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUU7UUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLElBQUksTUFBTSxFQUFFO1lBQ1IsY0FBYyxFQUFFLENBQUM7WUFDakIsU0FBUztTQUNaO1FBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUM7WUFDN0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQztZQUM3QixZQUFZO1lBQ1osY0FBYyxHQUFHLGNBQWMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUQsMkJBQTJCO1lBQzNCLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUN4QixHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckMsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDeEM7SUFDRCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssY0FBYyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDZWxsUG9zaXRpb24sIFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuL2NyZWF0ZS10YWJsZS1wb3NpdGlvbic7XG5pbXBvcnQgeyBpc1JhbmdlSW5UYWJsZSB9IGZyb20gJy4vaXMtcmFuZ2UtaW4tdGFibGUnO1xuaW1wb3J0IHsgVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vdGFibGUtcG9zaXRpb24nO1xuXG4vKipcbiAqIElzIHRoZSBzZWxlY3Rpb24gaW4gYSB0YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3Rpb25JblRhYmxlKG9wdHM6IFRhYmxlT3B0aW9ucywgZWRpdG9yOiBFZGl0b3IpOiBib29sZWFuIHtcbiAgICBpZiAoIWVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gaXNSYW5nZUluVGFibGUob3B0cywgZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBjZWxscyBwYXNzZWQgaW4gY2FuIGZvcm0gYSByZWN0YW5nbGVcbiAqIEBwYXJhbSBlZGl0b3JcbiAqIEBwYXJhbSBjZWxsc1xuICogQHJldHVybnMgYm9vbGVhblxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWN0YW5ndWxhckluVGFibGVDZWxscyhlZGl0b3I6IEVkaXRvciwgY2VsbHM6IENlbGxQb3NpdGlvbltdKTogYm9vbGVhbiB7XG4gICAgbGV0IHNlbGVjdENlbGxTaXplID0gY2VsbHMubGVuZ3RoO1xuICAgIGlmIChzZWxlY3RDZWxsU2l6ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHsgcm93LCBjb2wgfSA9IGNlbGxzWzBdO1xuICAgIGxldCBtYXhDb2w6IG51bWJlciA9IGNvbDtcbiAgICBsZXQgbWluQ29sOiBudW1iZXIgPSBjb2w7XG4gICAgbGV0IG1heFJvdzogbnVtYmVyID0gcm93O1xuICAgIGxldCBtaW5Sb3c6IG51bWJlciA9IHJvdztcbiAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgZm9yIChsZXQgeyByb3csIGNvbCB9IG9mIGNlbGxzKSB7XG4gICAgICAgIGNvbnN0IHsgaGlkZGVuLCByb3dzcGFuLCBjb2xzcGFuIH0gPSBwb3MuZmluZENlbGxCeVBhdGgoeyByb3csIGNvbCB9KTtcblxuICAgICAgICBpZiAoaGlkZGVuKSB7XG4gICAgICAgICAgICBzZWxlY3RDZWxsU2l6ZS0tO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xTcGFuID0gY29sc3BhbiA/PyAxO1xuICAgICAgICAgICAgY29uc3Qgcm93U3BhbiA9IHJvd3NwYW4gPz8gMTtcbiAgICAgICAgICAgIC8vIOabtOaWsOinhuiniemAieS4reeahOS4quaVsFxuICAgICAgICAgICAgc2VsZWN0Q2VsbFNpemUgPSBzZWxlY3RDZWxsU2l6ZSArIChyb3dTcGFuICogY29sU3BhbiAtIDEpO1xuICAgICAgICAgICAgLy8g57qg5q2j5ZCI5bm25Y2V5YWD5qC85LiL55qEIHJvdyDlkowgY29sIOeahOecn+WunuWAvFxuICAgICAgICAgICAgcm93ID0gcm93ICsgcm93U3BhbiAtIDE7XG4gICAgICAgICAgICBjb2wgPSBjb2wgKyBjb2xTcGFuIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBtYXhDb2wgPSBjb2wgPiBtYXhDb2wgPyBjb2wgOiBtYXhDb2w7XG4gICAgICAgIG1pbkNvbCA9IGNvbCA8IG1pbkNvbCA/IGNvbCA6IG1pbkNvbDtcbiAgICAgICAgbWF4Um93ID0gcm93ID4gbWF4Um93ID8gcm93IDogbWF4Um93O1xuICAgICAgICBtaW5Sb3cgPSByb3cgPCBtaW5Sb3cgPyByb3cgOiBtaW5Sb3c7XG4gICAgfVxuICAgIHJldHVybiAobWF4Um93ICsgMSAtIG1pblJvdykgKiAobWF4Q29sICsgMSAtIG1pbkNvbCkgPT09IHNlbGVjdENlbGxTaXplO1xufVxuIl19
@@ -1,108 +0,0 @@
1
- import { Transforms, Path, Element, Editor } from 'slate';
2
- import { TablePosition } from './table-position';
3
- import { ElementKinds } from '../../../constants';
4
- import { getSelectCellNode } from './get-select-cell-node';
5
- import { TableOptions } from '../table.types';
6
- import * as TheQueries from '../../../queries';
7
- import { sortCell } from './handle-cell';
8
- import { createTablePosition } from './create-table-position';
9
- import { getCellPositionsFromRange } from './cell-position';
10
- export function isSelectedCellMerged(editor) {
11
- if (editor && editor.selection) {
12
- const opts = new TableOptions();
13
- const { anchor } = editor.selection;
14
- const { cell } = TablePosition.create(opts, editor, anchor.path);
15
- if (cell) {
16
- return (cell.colspan && cell.colspan !== 1) || (cell.rowspan && cell.rowspan !== 1);
17
- }
18
- }
19
- return false;
20
- }
21
- export function getLeftCellDict(selectCellNodes) {
22
- return selectCellNodes.reduce((dict, cell) => {
23
- if (!dict[cell.row]) {
24
- dict[cell.row] = cell;
25
- }
26
- return dict;
27
- }, {});
28
- }
29
- export function calculateCellSpan(selectCellNodes, leftCellDict) {
30
- let rowspan = 0, colspan = 0, crossCount = -1;
31
- selectCellNodes
32
- .filter(item => !item.node.hidden)
33
- .forEach(item => {
34
- const { row } = item;
35
- if (item.row === selectCellNodes[0].row) {
36
- colspan += item.node.colspan || 1;
37
- }
38
- const maxRowSpan = leftCellDict[row].maxRowSpan || 1;
39
- leftCellDict[row].maxRowSpan = (item.node.rowspan || 1) > maxRowSpan ? item.node.rowspan : maxRowSpan;
40
- });
41
- Object.values(leftCellDict).forEach((item) => {
42
- const { row, maxRowSpan } = item;
43
- if (crossCount < row) {
44
- rowspan += maxRowSpan;
45
- crossCount = row + maxRowSpan - 1;
46
- }
47
- });
48
- return { rowspan, colspan };
49
- }
50
- export function mergeCell(editor, selectedCells) {
51
- sortCell(selectedCells);
52
- const selectCellNodes = getSelectCellNode(editor, selectedCells);
53
- Editor.withoutNormalizing(editor, () => {
54
- let leftTopCellPath;
55
- const leftCellDict = getLeftCellDict(selectCellNodes);
56
- selectCellNodes.forEach((cell, index) => {
57
- const { row, node } = cell;
58
- if (node) {
59
- const cellPath = TheQueries.findPath(editor, node);
60
- if (index === 0) {
61
- leftTopCellPath = cellPath;
62
- }
63
- else {
64
- mergeCellContent(editor, leftTopCellPath, cellPath);
65
- Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: true }, { at: cellPath });
66
- }
67
- }
68
- });
69
- let { rowspan, colspan } = calculateCellSpan(selectCellNodes, leftCellDict);
70
- Transforms.setNodes(editor, { rowspan, colspan }, { at: leftTopCellPath });
71
- Transforms.select(editor, leftTopCellPath);
72
- Transforms.collapse(editor, { edge: 'end' });
73
- });
74
- }
75
- export function mergeCellContent(editor, leftTopCellPath, cellPath) {
76
- Editor.withoutNormalizing(editor, () => {
77
- const { path } = Editor.end(editor, leftTopCellPath);
78
- const endRange = Editor.range(editor, Editor.start(editor, cellPath), Editor.end(editor, cellPath));
79
- let tableCell;
80
- path.pop();
81
- const nextPath = Path.next(path);
82
- Transforms.moveNodes(editor, {
83
- at: endRange,
84
- to: nextPath,
85
- match: node => {
86
- if (Element.isElement(node) && node.type === ElementKinds.tableCell) {
87
- tableCell = node;
88
- }
89
- if (Element.isElement(node) && node.type && tableCell && tableCell.children.includes(node)) {
90
- const isSingleEmptyParagraph = tableCell.children.length === 1 && Editor.isEmpty(editor, node) && node.type === ElementKinds.default;
91
- return !isSingleEmptyParagraph && true;
92
- }
93
- }
94
- });
95
- });
96
- }
97
- // 计算合并前的单元格
98
- export function getCellPositionsBeforeMerge(editor, { row, col }) {
99
- const pos = createTablePosition(editor);
100
- const { rowspan, colspan } = pos.findCellByPath({ row, col });
101
- if (rowspan || colspan) {
102
- const colSpan = colspan ?? 1;
103
- const rowSpan = rowspan ?? 1;
104
- return getCellPositionsFromRange(row, col, row + rowSpan, col + colSpan);
105
- }
106
- return [{ row, col }];
107
- }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3V0aWxzL21lcmdlLWNlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUzVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFjO0lBQy9DLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksRUFBRTtZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFP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RyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRTtRQUNwQixNQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFDN0IsT0FBTyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0tBQzVFO0lBQ0QsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIFBhdGgsIEVsZW1lbnQsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRhYmxlUG9zaXRpb24gfSBmcm9tICcuL3RhYmxlLXBvc2l0aW9uJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRTZWxlY3RDZWxsTm9kZSB9IGZyb20gJy4vZ2V0LXNlbGVjdC1jZWxsLW5vZGUnO1xuaW1wb3J0IHsgVGFibGVDZWxsRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBDZWxsUG9zaXRpb24sIFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBzb3J0Q2VsbCB9IGZyb20gJy4vaGFuZGxlLWNlbGwnO1xuaW1wb3J0IHsgY3JlYXRlVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vY3JlYXRlLXRhYmxlLXBvc2l0aW9uJztcbmltcG9ydCB7IGdldENlbGxQb3NpdGlvbnNGcm9tUmFuZ2UgfSBmcm9tICcuL2NlbGwtcG9zaXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkQ2VsbEluZm8ge1xuICAgIGNvbDogbnVtYmVyO1xuICAgIHJvdzogbnVtYmVyO1xuICAgIG5vZGU6IFRhYmxlQ2VsbEVsZW1lbnQ7XG4gICAgbWF4Um93U3Bhbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0ZWRDZWxsTWVyZ2VkKGVkaXRvcjogRWRpdG9yKTogYm9vbGVhbiB7XG4gICAgaWYgKGVkaXRvciAmJiBlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IHsgYW5jaG9yIH0gPSBlZGl0b3Iuc2VsZWN0aW9uO1xuICAgICAgICBjb25zdCB7IGNlbGwgfSA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgYW5jaG9yLnBhdGgpO1xuICAgICAgICBpZiAoY2VsbCkge1xuICAgICAgICAgICAgcmV0dXJuIChjZWxsLmNvbHNwYW4gJiYgY2VsbC5jb2xzcGFuICE9PSAxKSB8fCAoY2VsbC5yb3dzcGFuICYmIGNlbGwucm93c3BhbiAhPT0gMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGVmdENlbGxEaWN0KHNlbGVjdENlbGxOb2RlczogU2VsZWN0ZWRDZWxsSW5mb1tdKSB7XG4gICAgcmV0dXJuIHNlbGVjdENlbGxOb2Rlcy5yZWR1Y2UoKGRpY3QsIGNlbGwpID0+IHtcbiAgICAgICAgaWYgKCFkaWN0W2NlbGwucm93XSkge1xuICAgICAgICAgICAgZGljdFtjZWxsLnJvd10gPSBjZWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaWN0O1xuICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogU2VsZWN0ZWRDZWxsSW5mbyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUNlbGxTcGFuKFxuICAgIHNlbGVjdENlbGxOb2RlczogU2VsZWN0ZWRDZWxsSW5mb1tdLFxuICAgIGxlZnRDZWxsRGljdDogeyBba2V5OiBzdHJpbmddOiBTZWxlY3RlZENlbGxJbmZvIH1cbik6IHsgcm93c3BhbjogbnVtYmVyOyBjb2xzcGFuOiBudW1iZXIgfSB7XG4gICAgbGV0IHJvd3NwYW4gPSAwLFxuICAgICAgICBjb2xzcGFuID0gMCxcbiAgICAgICAgY3Jvc3NDb3VudCA9IC0xO1xuICAgIHNlbGVjdENlbGxOb2Rlc1xuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0ubm9kZS5oaWRkZW4pXG4gICAgICAgIC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgeyByb3cgfSA9IGl0ZW07XG4gICAgICAgICAgICBpZiAoaXRlbS5yb3cgPT09IHNlbGVjdENlbGxOb2Rlc1swXS5yb3cpIHtcbiAgICAgICAgICAgICAgICBjb2xzcGFuICs9IGl0ZW0ubm9kZS5jb2xzcGFuIHx8IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtYXhSb3dTcGFuID0gbGVmdENlbGxEaWN0W3Jvd10ubWF4Um93U3BhbiB8fCAxO1xuICAgICAgICAgICAgbGVmdENlbGxEaWN0W3Jvd10ubWF4Um93U3BhbiA9IChpdGVtLm5vZGUucm93c3BhbiB8fCAxKSA+IG1heFJvd1NwYW4gPyBpdGVtLm5vZGUucm93c3BhbiA6IG1heFJvd1NwYW47XG4gICAgICAgIH0pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhsZWZ0Q2VsbERpY3QpLmZvckVhY2goKGl0ZW06IFNlbGVjdGVkQ2VsbEluZm8pID0+IHtcbiAgICAgICAgY29uc3QgeyByb3csIG1heFJvd1NwYW4gfSA9IGl0ZW07XG4gICAgICAgIGlmIChjcm9zc0NvdW50IDwgcm93KSB7XG4gICAgICAgICAgICByb3dzcGFuICs9IG1heFJvd1NwYW47XG4gICAgICAgICAgICBjcm9zc0NvdW50ID0gcm93ICsgbWF4Um93U3BhbiAtIDE7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyByb3dzcGFuLCBjb2xzcGFuIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNlbGwoZWRpdG9yOiBFZGl0b3IsIHNlbGVjdGVkQ2VsbHM6IENlbGxQb3NpdGlvbltdKSB7XG4gICAgc29ydENlbGwoc2VsZWN0ZWRDZWxscyk7XG4gICAgY29uc3Qgc2VsZWN0Q2VsbE5vZGVzID0gZ2V0U2VsZWN0Q2VsbE5vZGUoZWRpdG9yLCBzZWxlY3RlZENlbGxzKTtcbiAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICBsZXQgbGVmdFRvcENlbGxQYXRoOiBQYXRoO1xuICAgICAgICBjb25zdCBsZWZ0Q2VsbERpY3QgPSBnZXRMZWZ0Q2VsbERpY3Qoc2VsZWN0Q2VsbE5vZGVzKTtcbiAgICAgICAgc2VsZWN0Q2VsbE5vZGVzLmZvckVhY2goKGNlbGwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHJvdywgbm9kZSB9ID0gY2VsbDtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnRUb3BDZWxsUGF0aCA9IGNlbGxQYXRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlQ2VsbENvbnRlbnQoZWRpdG9yLCBsZWZ0VG9wQ2VsbFBhdGgsIGNlbGxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgY29sc3BhbjogbnVsbCwgcm93c3BhbjogbnVsbCwgaGlkZGVuOiB0cnVlIH0sIHsgYXQ6IGNlbGxQYXRoIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxldCB7IHJvd3NwYW4sIGNvbHNwYW4gfSA9IGNhbGN1bGF0ZUNlbGxTcGFuKHNlbGVjdENlbGxOb2RlcywgbGVmdENlbGxEaWN0KTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgcm93c3BhbiwgY29sc3BhbiB9LCB7IGF0OiBsZWZ0VG9wQ2VsbFBhdGggfSk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgbGVmdFRvcENlbGxQYXRoKTtcbiAgICAgICAgVHJhbnNmb3Jtcy5jb2xsYXBzZShlZGl0b3IsIHsgZWRnZTogJ2VuZCcgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNlbGxDb250ZW50KGVkaXRvcjogRWRpdG9yLCBsZWZ0VG9wQ2VsbFBhdGg6IFBhdGgsIGNlbGxQYXRoOiBQYXRoKSB7XG4gICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBwYXRoIH0gPSBFZGl0b3IuZW5kKGVkaXRvciwgbGVmdFRvcENlbGxQYXRoKTtcbiAgICAgICAgY29uc3QgZW5kUmFuZ2UgPSBFZGl0b3IucmFuZ2UoZWRpdG9yLCBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBjZWxsUGF0aCksIEVkaXRvci5lbmQoZWRpdG9yLCBjZWxsUGF0aCkpO1xuICAgICAgICBsZXQgdGFibGVDZWxsO1xuXG4gICAgICAgIHBhdGgucG9wKCk7XG5cbiAgICAgICAgY29uc3QgbmV4dFBhdGggPSBQYXRoLm5leHQocGF0aCk7XG5cbiAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogZW5kUmFuZ2UsXG4gICAgICAgICAgICB0bzogbmV4dFBhdGgsXG4gICAgICAgICAgICBtYXRjaDogbm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlQ2VsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YWJsZUNlbGwgPSBub2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlICYmIHRhYmxlQ2VsbCAmJiAodGFibGVDZWxsLmNoaWxkcmVuIGFzIE5vZGVbXSkuaW5jbHVkZXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNTaW5nbGVFbXB0eVBhcmFncmFwaCA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZUNlbGwuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIEVkaXRvci5pc0VtcHR5KGVkaXRvciwgbm9kZSkgJiYgbm9kZS50eXBlID09PSBFbGVtZW50S2luZHMuZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc1NpbmdsZUVtcHR5UGFyYWdyYXBoICYmIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuLy8g6K6h566X5ZCI5bm25YmN55qE5Y2V5YWD5qC8XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbFBvc2l0aW9uc0JlZm9yZU1lcmdlKGVkaXRvcjogRWRpdG9yLCB7IHJvdywgY29sIH06IENlbGxQb3NpdGlvbik6IENlbGxQb3NpdGlvbltdIHtcbiAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgY29uc3QgeyByb3dzcGFuLCBjb2xzcGFuIH0gPSBwb3MuZmluZENlbGxCeVBhdGgoeyByb3csIGNvbCB9KTtcbiAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XG4gICAgICAgIGNvbnN0IGNvbFNwYW4gPSBjb2xzcGFuID8/IDE7XG4gICAgICAgIGNvbnN0IHJvd1NwYW4gPSByb3dzcGFuID8/IDE7XG4gICAgICAgIHJldHVybiBnZXRDZWxsUG9zaXRpb25zRnJvbVJhbmdlKHJvdywgY29sLCByb3cgKyByb3dTcGFuLCBjb2wgKyBjb2xTcGFuKTtcbiAgICB9XG4gICAgcmV0dXJuIFt7IHJvdywgY29sIH1dO1xufVxuIl19
@@ -1,45 +0,0 @@
1
- import { isSelectedCellMerged } from './merge-cell';
2
- import { getSelectCellNode } from './get-select-cell-node';
3
- import { isRectangularInTableCells } from './is-selection-in-table';
4
- import { TableInsertType } from '../table.types';
5
- import { TableEditor } from '../table.editor';
6
- export function setCellMenuVisibility(editor, menuList, tableInfo) {
7
- const { selectedCellPositions, isFullscreen, isSelectedTable, selectedRowsIndex, selectedColumnsIndex } = tableInfo;
8
- const isCellMerged = isSelectedCellMerged(editor);
9
- const selectCellNodes = getSelectCellNode(editor, selectedCellPositions).filter(item => !item.node.hidden);
10
- const isRect = isRectangularInTableCells(editor, selectedCellPositions);
11
- menuList.forEach(item => {
12
- switch (item.key) {
13
- case 'merge-cells':
14
- item.visibility = selectCellNodes && selectCellNodes.length > 1 && !isSelectedTable && isRect;
15
- break;
16
- case 'split-cells':
17
- item.visibility = selectCellNodes && selectCellNodes.length === 1 && isCellMerged;
18
- break;
19
- case 'delete-selection-rows':
20
- item.visibility = !(isFullscreen && selectedColumnsIndex.length);
21
- break;
22
- case 'delete-selection-columns':
23
- item.visibility = !(isFullscreen && selectedRowsIndex.length);
24
- break;
25
- case 'delete-table':
26
- item.visibility = !isFullscreen;
27
- break;
28
- case TableInsertType.insertRowsUp:
29
- const hasHeaderRowCell = TableEditor.hasHeaderRowCell(editor);
30
- item.visibility = !hasHeaderRowCell && isRect;
31
- break;
32
- case TableInsertType.insertRowsDown:
33
- item.visibility = isRect;
34
- break;
35
- case TableInsertType.insertColumnsLeft:
36
- const hasHeaderColumnCell = TableEditor.hasHeaderColumnCell(editor);
37
- item.visibility = !hasHeaderColumnCell && isRect;
38
- break;
39
- case TableInsertType.insertColumnsRight:
40
- item.visibility = isRect;
41
- break;
42
- }
43
- });
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LW1lbnUtY2VsbC1pbnZpc2liaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9zZXQtbWVudS1jZWxsLWludmlzaWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUE0QixlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsTUFBTSxVQUFVLHFCQUFxQixDQUNqQyxNQUFjLEVBQ2QsUUFBc0IsRUFDdEIsU0FNQztJQUVELE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ3BILE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRyxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUN4RSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3BCLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNkLEtBQUssYUFBYTtnQkFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUM7Z0JBQzlGLE1BQU07WUFDVixLQUFLLGFBQWE7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDO2dCQUNsRixNQUFNO1lBQ1YsS0FBSyx1QkFBdUI7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFlBQVksSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakUsTUFBTTtZQUNWLEtBQUssMEJBQTBCO2dCQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxZQUFZLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlELE1BQU07WUFDVixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLFlBQVksQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssZUFBZSxDQUFDLFlBQVk7Z0JBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1YsS0FBSyxlQUFlLENBQUMsY0FBYztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7Z0JBQ3pCLE1BQU07WUFDVixLQUFLLGVBQWUsQ0FBQyxpQkFBaUI7Z0JBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsbUJBQW1CLElBQUksTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1YsS0FBSyxlQUFlLENBQUMsa0JBQWtCO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFDekIsTUFBTTtTQUNiO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgaXNTZWxlY3RlZENlbGxNZXJnZWQgfSBmcm9tICcuL21lcmdlLWNlbGwnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0Q2VsbE5vZGUgfSBmcm9tICcuL2dldC1zZWxlY3QtY2VsbC1ub2RlJztcbmltcG9ydCB7IGlzUmVjdGFuZ3VsYXJJblRhYmxlQ2VsbHMgfSBmcm9tICcuL2lzLXNlbGVjdGlvbi1pbi10YWJsZSc7XG5pbXBvcnQgeyBNZW51RW50aXR5LCBDZWxsUG9zaXRpb24sIFRhYmxlSW5zZXJ0VHlwZSB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi4vdGFibGUuZWRpdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldENlbGxNZW51VmlzaWJpbGl0eShcbiAgICBlZGl0b3I6IEVkaXRvcixcbiAgICBtZW51TGlzdDogTWVudUVudGl0eVtdLFxuICAgIHRhYmxlSW5mbzoge1xuICAgICAgICBzZWxlY3RlZENlbGxQb3NpdGlvbnM6IENlbGxQb3NpdGlvbltdO1xuICAgICAgICBpc0Z1bGxzY3JlZW4/OiBib29sZWFuO1xuICAgICAgICBpc1NlbGVjdGVkVGFibGU/OiBib29sZWFuO1xuICAgICAgICBzZWxlY3RlZFJvd3NJbmRleD86IG51bWJlcltdO1xuICAgICAgICBzZWxlY3RlZENvbHVtbnNJbmRleD86IG51bWJlcltdO1xuICAgIH1cbikge1xuICAgIGNvbnN0IHsgc2VsZWN0ZWRDZWxsUG9zaXRpb25zLCBpc0Z1bGxzY3JlZW4sIGlzU2VsZWN0ZWRUYWJsZSwgc2VsZWN0ZWRSb3dzSW5kZXgsIHNlbGVjdGVkQ29sdW1uc0luZGV4IH0gPSB0YWJsZUluZm87XG4gICAgY29uc3QgaXNDZWxsTWVyZ2VkID0gaXNTZWxlY3RlZENlbGxNZXJnZWQoZWRpdG9yKTtcbiAgICBjb25zdCBzZWxlY3RDZWxsTm9kZXMgPSBnZXRTZWxlY3RDZWxsTm9kZShlZGl0b3IsIHNlbGVjdGVkQ2VsbFBvc2l0aW9ucykuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0ubm9kZS5oaWRkZW4pO1xuICAgIGNvbnN0IGlzUmVjdCA9IGlzUmVjdGFuZ3VsYXJJblRhYmxlQ2VsbHMoZWRpdG9yLCBzZWxlY3RlZENlbGxQb3NpdGlvbnMpO1xuICAgIG1lbnVMaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHN3aXRjaCAoaXRlbS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ21lcmdlLWNlbGxzJzpcbiAgICAgICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSBzZWxlY3RDZWxsTm9kZXMgJiYgc2VsZWN0Q2VsbE5vZGVzLmxlbmd0aCA+IDEgJiYgIWlzU2VsZWN0ZWRUYWJsZSAmJiBpc1JlY3Q7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzcGxpdC1jZWxscyc6XG4gICAgICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gc2VsZWN0Q2VsbE5vZGVzICYmIHNlbGVjdENlbGxOb2Rlcy5sZW5ndGggPT09IDEgJiYgaXNDZWxsTWVyZ2VkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGVsZXRlLXNlbGVjdGlvbi1yb3dzJzpcbiAgICAgICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSAhKGlzRnVsbHNjcmVlbiAmJiBzZWxlY3RlZENvbHVtbnNJbmRleC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGVsZXRlLXNlbGVjdGlvbi1jb2x1bW5zJzpcbiAgICAgICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSAhKGlzRnVsbHNjcmVlbiAmJiBzZWxlY3RlZFJvd3NJbmRleC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGVsZXRlLXRhYmxlJzpcbiAgICAgICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSAhaXNGdWxsc2NyZWVuO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c1VwOlxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0hlYWRlclJvd0NlbGwgPSBUYWJsZUVkaXRvci5oYXNIZWFkZXJSb3dDZWxsKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gIWhhc0hlYWRlclJvd0NlbGwgJiYgaXNSZWN0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd246XG4gICAgICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gaXNSZWN0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Q29sdW1uc0xlZnQ6XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzSGVhZGVyQ29sdW1uQ2VsbCA9IFRhYmxlRWRpdG9yLmhhc0hlYWRlckNvbHVtbkNlbGwoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSAhaGFzSGVhZGVyQ29sdW1uQ2VsbCAmJiBpc1JlY3Q7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRDb2x1bW5zUmlnaHQ6XG4gICAgICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gaXNSZWN0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { Editor, Transforms } from 'slate';
2
- import * as TheQueries from '../../../queries';
3
- import { createTablePosition } from './create-table-position';
4
- export function splitCell(editor) {
5
- const tablePosition = createTablePosition(editor);
6
- const { cell, table, cellEntry } = tablePosition;
7
- if ((!cell.rowspan && !cell.colspan) || (cell.rowspan === 1 && cell.colspan === 1))
8
- return editor;
9
- const cellRow = tablePosition.getRowIndex();
10
- const cellCol = tablePosition.getColumnIndex();
11
- resetTableCell(editor, table, cell, cellRow, cellCol);
12
- Transforms.select(editor, cellEntry[1]);
13
- Transforms.collapse(editor, { edge: 'end' });
14
- }
15
- export function resetTableCell(editor, table, cell, cellRow, cellCol) {
16
- const rowSpanIndex = cellRow + (cell.rowspan || 1) - 1;
17
- const colSpanIndex = cellCol + (cell.colspan || 1) - 1;
18
- Editor.withoutNormalizing(editor, () => {
19
- table.children.map((row, rowIndex) => {
20
- row.children.map((col, colIndex) => {
21
- if (rowIndex >= cellRow && rowIndex <= rowSpanIndex && colIndex >= cellCol && colIndex <= colSpanIndex) {
22
- const path = TheQueries.findPath(editor, col);
23
- Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: null }, { at: path });
24
- }
25
- });
26
- });
27
- });
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL3V0aWxzL3NwbGl0LWNlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFM0MsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQWM7SUFDcEMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQ2pELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ2xHLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0MsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWMsRUFBRSxLQUFtQixFQUFFLElBQXNCLEVBQUUsT0FBZSxFQUFFLE9BQWU7SUFDeEgsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDbkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDakMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQy9CLElBQUksUUFBUSxJQUFJLE9BQU8sSUFBSSxRQUFRLElBQUksWUFBWSxJQUFJLFFBQVEsSUFBSSxPQUFPLElBQUksUUFBUSxJQUFJLFlBQVksRUFBRTtvQkFDcEcsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzlDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUYWJsZUNlbGxFbGVtZW50LCBUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuL2NyZWF0ZS10YWJsZS1wb3NpdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdENlbGwoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICBjb25zdCB0YWJsZVBvc2l0aW9uID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgIGNvbnN0IHsgY2VsbCwgdGFibGUsIGNlbGxFbnRyeSB9ID0gdGFibGVQb3NpdGlvbjtcbiAgICBpZiAoKCFjZWxsLnJvd3NwYW4gJiYgIWNlbGwuY29sc3BhbikgfHwgKGNlbGwucm93c3BhbiA9PT0gMSAmJiBjZWxsLmNvbHNwYW4gPT09IDEpKSByZXR1cm4gZWRpdG9yO1xuICAgIGNvbnN0IGNlbGxSb3cgPSB0YWJsZVBvc2l0aW9uLmdldFJvd0luZGV4KCk7XG4gICAgY29uc3QgY2VsbENvbCA9IHRhYmxlUG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKTtcbiAgICByZXNldFRhYmxlQ2VsbChlZGl0b3IsIHRhYmxlLCBjZWxsLCBjZWxsUm93LCBjZWxsQ29sKTtcbiAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGNlbGxFbnRyeVsxXSk7XG4gICAgVHJhbnNmb3Jtcy5jb2xsYXBzZShlZGl0b3IsIHsgZWRnZTogJ2VuZCcgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFRhYmxlQ2VsbChlZGl0b3I6IEVkaXRvciwgdGFibGU6IFRhYmxlRWxlbWVudCwgY2VsbDogVGFibGVDZWxsRWxlbWVudCwgY2VsbFJvdzogbnVtYmVyLCBjZWxsQ29sOiBudW1iZXIpIHtcbiAgICBjb25zdCByb3dTcGFuSW5kZXggPSBjZWxsUm93ICsgKGNlbGwucm93c3BhbiB8fCAxKSAtIDE7XG4gICAgY29uc3QgY29sU3BhbkluZGV4ID0gY2VsbENvbCArIChjZWxsLmNvbHNwYW4gfHwgMSkgLSAxO1xuICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgIHRhYmxlLmNoaWxkcmVuLm1hcCgocm93LCByb3dJbmRleCkgPT4ge1xuICAgICAgICAgICAgcm93LmNoaWxkcmVuLm1hcCgoY29sLCBjb2xJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3dJbmRleCA+PSBjZWxsUm93ICYmIHJvd0luZGV4IDw9IHJvd1NwYW5JbmRleCAmJiBjb2xJbmRleCA+PSBjZWxsQ29sICYmIGNvbEluZGV4IDw9IGNvbFNwYW5JbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gVGhlUXVlcmllcy5maW5kUGF0aChlZGl0b3IsIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IGNvbHNwYW46IG51bGwsIHJvd3NwYW46IG51bGwsIGhpZGRlbjogbnVsbCB9LCB7IGF0OiBwYXRoIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { createTablePosition } from './create-table-position';
2
- export const getTableEntry = (editor) => {
3
- const { tableEntry } = createTablePosition(editor);
4
- return tableEntry;
5
- };
6
- export const getTablePath = (editor) => {
7
- const tableEntry = getTableEntry(editor);
8
- return tableEntry[1];
9
- };
10
- export const getTable = (editor) => {
11
- const { tableEntry } = createTablePosition(editor);
12
- return tableEntry[0];
13
- };
14
- export const getSelectedCell = (editor) => {
15
- if (editor && editor.selection) {
16
- const { cell } = createTablePosition(editor);
17
- return cell;
18
- }
19
- return null;
20
- };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZW50cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy90YWJsZS1lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUM1QyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7SUFDM0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUM5QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQzVCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgY3JlYXRlVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vY3JlYXRlLXRhYmxlLXBvc2l0aW9uJztcblxuZXhwb3J0IGNvbnN0IGdldFRhYmxlRW50cnkgPSAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IHRhYmxlRW50cnkgfSA9IGNyZWF0ZVRhYmxlUG9zaXRpb24oZWRpdG9yKTtcbiAgICByZXR1cm4gdGFibGVFbnRyeTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYWJsZVBhdGggPSAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICBjb25zdCB0YWJsZUVudHJ5ID0gZ2V0VGFibGVFbnRyeShlZGl0b3IpO1xuICAgIHJldHVybiB0YWJsZUVudHJ5WzFdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhYmxlID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgY29uc3QgeyB0YWJsZUVudHJ5IH0gPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgcmV0dXJuIHRhYmxlRW50cnlbMF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRDZWxsID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgaWYgKGVkaXRvciAmJiBlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHsgY2VsbCB9ID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICByZXR1cm4gY2VsbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
@@ -1,32 +0,0 @@
1
- import { Transforms } from 'slate';
2
- import { ElementKinds } from '../../constants';
3
- import { ListEditor } from '../list/list.editor';
4
- import * as TheQueries from '../../queries';
5
- export const TodoItemEditor = {
6
- isActive(editor) {
7
- const [match] = TheQueries.getNodesByType(editor, ElementKinds.checkItem);
8
- return !!match;
9
- },
10
- insertTodoItem(editor) {
11
- if (!editor.selection) {
12
- return;
13
- }
14
- const isActive = TodoItemEditor.isActive(editor);
15
- const isNumberedList = ListEditor.isActive(editor, ElementKinds.numberedList);
16
- const isBulletedList = ListEditor.isActive(editor, ElementKinds.bulletedList);
17
- if (isActive) {
18
- Transforms.setNodes(editor, {
19
- type: ElementKinds.paragraph
20
- });
21
- }
22
- else {
23
- if (isNumberedList || isBulletedList) {
24
- ListEditor.unwrapList(editor);
25
- }
26
- Transforms.setNodes(editor, {
27
- type: ElementKinds.checkItem
28
- });
29
- }
30
- }
31
- };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0uZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsUUFBUSxDQUFDLE1BQWM7UUFDbkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUNELGNBQWMsQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUNELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlFLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5RSxJQUFJLFFBQVEsRUFBRTtZQUNWLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDL0IsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksY0FBYyxJQUFJLGNBQWMsRUFBRTtnQkFDbEMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqQztZQUNELFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDL0IsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBMaXN0RWRpdG9yIH0gZnJvbSAnLi4vbGlzdC9saXN0LmVkaXRvcic7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgY29uc3QgVG9kb0l0ZW1FZGl0b3IgPSB7XG4gICAgaXNBY3RpdmUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgW21hdGNoXSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZXNCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMuY2hlY2tJdGVtKTtcbiAgICAgICAgcmV0dXJuICEhbWF0Y2g7XG4gICAgfSxcbiAgICBpbnNlcnRUb2RvSXRlbShlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBpZiAoIWVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IFRvZG9JdGVtRWRpdG9yLmlzQWN0aXZlKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGlzTnVtYmVyZWRMaXN0ID0gTGlzdEVkaXRvci5pc0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QpO1xuICAgICAgICBjb25zdCBpc0J1bGxldGVkTGlzdCA9IExpc3RFZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0KTtcblxuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXJlZExpc3QgfHwgaXNCdWxsZXRlZExpc3QpIHtcbiAgICAgICAgICAgICAgICBMaXN0RWRpdG9yLnVud3JhcExpc3QoZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
@@ -1,93 +0,0 @@
1
- import { Transforms, Range, Editor, Element } from 'slate';
2
- import { createPluginFactory } from '../../core';
3
- import { PluginKeys } from '../../interfaces';
4
- import { ElementKinds, PluginMenuIcons, ThePluginMenuItemType } from '../../constants';
5
- import { TheTodoItemComponent } from './todo-item.component';
6
- import { TodoItemEditor } from './todo-item.editor';
7
- import * as TheQueries from '../../queries';
8
- export const withTodoItem = (editor) => {
9
- const { insertBreak, deleteBackward, renderElement } = editor;
10
- editor.insertBreak = () => {
11
- const { selection } = editor;
12
- if (selection && Range.isCollapsed(selection)) {
13
- const [match] = Editor.nodes(editor, {
14
- match: n => Element.isElement(n) && n.type === ElementKinds.checkItem
15
- });
16
- if (match) {
17
- const [, path] = match;
18
- const block = TheQueries.anchorBlock(editor);
19
- if (block && Editor.isStart(editor, selection.anchor, path) && Editor.isEmpty(editor, block)) {
20
- Transforms.setNodes(editor, {
21
- type: ElementKinds.default,
22
- checked: undefined
23
- }, {
24
- match: n => Element.isElement(n) && n.type === ElementKinds.checkItem
25
- });
26
- return;
27
- }
28
- }
29
- }
30
- insertBreak();
31
- const anchorBlock = TheQueries.anchorBlock(editor);
32
- if (anchorBlock && anchorBlock.type === ElementKinds.checkItem) {
33
- Transforms.setNodes(editor, { checked: false });
34
- }
35
- };
36
- editor.deleteBackward = unit => {
37
- const { selection } = editor;
38
- if (selection && Range.isCollapsed(selection)) {
39
- const [match] = Editor.nodes(editor, {
40
- match: n => Element.isElement(n) && n.type === ElementKinds.checkItem
41
- });
42
- if (match) {
43
- const [, path] = match;
44
- if (Editor.isStart(editor, selection.anchor, path)) {
45
- Transforms.setNodes(editor, { type: ElementKinds.default, checked: undefined }, {
46
- match: n => Element.isElement(n) && n.type === ElementKinds.checkItem
47
- });
48
- return;
49
- }
50
- }
51
- }
52
- deleteBackward(unit);
53
- };
54
- editor.renderElement = (element) => {
55
- if (element.type === ElementKinds.checkItem) {
56
- return TheTodoItemComponent;
57
- }
58
- return renderElement(element);
59
- };
60
- return editor;
61
- };
62
- export const createTodoItemPlugin = createPluginFactory({
63
- key: PluginKeys.checkItem,
64
- withOverrides: withTodoItem,
65
- toolbarItems: [
66
- {
67
- key: ElementKinds.checkItem,
68
- icon: 'list-check',
69
- name: '待办事项',
70
- execute: editor => TodoItemEditor.insertTodoItem(editor),
71
- active: editor => TodoItemEditor.isActive(editor)
72
- }
73
- ],
74
- menuItems: [
75
- {
76
- key: ElementKinds.checkItem,
77
- keywords: 'dbsx,daibanshixiang,to do list,todolist,待办事项',
78
- description: '插入待办事项',
79
- execute: editor => TodoItemEditor.insertTodoItem(editor),
80
- active: editor => TodoItemEditor.isActive(editor),
81
- type: ThePluginMenuItemType.icon,
82
- name: '待办事项',
83
- displayKey: '/dbsx',
84
- icon: 'list-check',
85
- menuIcon: PluginMenuIcons.checkItem
86
- }
87
- ],
88
- options: {
89
- allowParentTypes: [ElementKinds.tableCell, ElementKinds.blockquote],
90
- editableWithReadonly: false
91
- }
92
- });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQWMsTUFBTSxPQUFPLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQU01QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDM0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTlELE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFN0IsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUks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QUFFLFVBQVUsQ0FBQyxTQUFTO0lBQ3pCLGFBQWEsRUFBRSxZQUFZO0lBQzNCLFlBQVksRUFBRTtRQUNWO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxTQUFTO1lBQzNCLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDeEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDcEQ7S0FDSjtJQUNELFNBQVMsRUFBRTtRQUNQO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxTQUFTO1lBQzNCLFFBQVEsRUFBRSw4Q0FBOEM7WUFDeEQsV0FBVyxFQUFFLFFBQVE7WUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDeEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDakQsSUFBSSxFQUFFLHFCQUFxQixDQUFDLElBQUk7WUFDaEMsSUFBSSxFQUFFLE1BQU07WUFDWixVQUFVLEVBQUUsT0FBTztZQUNuQixJQUFJLEVBQUUsWUFBWTtZQUNsQixRQUFRLEVBQUUsZUFBZSxDQUFDLFNBQVM7U0FDdEM7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQ25FLG9CQUFvQixFQUFFLEtBQUs7S0FDOUI7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zvcm1zLCBSYW5nZSwgRWRpdG9yLCBFbGVtZW50LCBEZXNjZW5kYW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBQbHVnaW5NZW51SWNvbnMsIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVUb2RvSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdG9kby1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2RvSXRlbUVkaXRvciB9IGZyb20gJy4vdG9kby1pdGVtLmVkaXRvcic7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvZG9JdGVtUGx1Z2luT3B0aW9ucyB7XG4gICAgZWRpdGFibGVXaXRoUmVhZG9ubHk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aFRvZG9JdGVtID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0QnJlYWssIGRlbGV0ZUJhY2t3YXJkLCByZW5kZXJFbGVtZW50IH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IuaW5zZXJ0QnJlYWsgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbWF0Y2g7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG5cbiAgICAgICAgICAgICAgICBpZiAoYmxvY2sgJiYgRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBwYXRoKSAmJiBFZGl0b3IuaXNFbXB0eShlZGl0b3IsIGJsb2NrKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBQYXJ0aWFsPERlc2NlbmRhbnQ+LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluc2VydEJyZWFrKCk7XG5cbiAgICAgICAgY29uc3QgYW5jaG9yQmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChhbmNob3JCbG9jayAmJiBhbmNob3JCbG9jay50eXBlID09PSBFbGVtZW50S2luZHMuY2hlY2tJdGVtKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyBjaGVja2VkOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbWF0Y2g7XG5cbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBwYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyB0eXBlOiBFbGVtZW50S2luZHMuZGVmYXVsdCwgY2hlY2tlZDogdW5kZWZpbmVkIH0gYXMgUGFydGlhbDxEZXNjZW5kYW50Piwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuY2hlY2tJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb2RvSXRlbUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb2RvSXRlbVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8VG9kb0l0ZW1QbHVnaW5PcHRpb25zPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLmNoZWNrSXRlbSxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoVG9kb0l0ZW0sXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmNoZWNrSXRlbSxcbiAgICAgICAgICAgIGljb246ICdsaXN0LWNoZWNrJyxcbiAgICAgICAgICAgIG5hbWU6ICflvoXlip7kuovpobknLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IFRvZG9JdGVtRWRpdG9yLmluc2VydFRvZG9JdGVtKGVkaXRvciksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBUb2RvSXRlbUVkaXRvci5pc0FjdGl2ZShlZGl0b3IpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG1lbnVJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgICAgICAgICBrZXl3b3JkczogJ2Ric3gsZGFpYmFuc2hpeGlhbmcsdG8gZG8gbGlzdCx0b2RvbGlzdCzlvoXlip7kuovpobknLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICfmj5LlhaXlvoXlip7kuovpobknLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IFRvZG9JdGVtRWRpdG9yLmluc2VydFRvZG9JdGVtKGVkaXRvciksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBUb2RvSXRlbUVkaXRvci5pc0FjdGl2ZShlZGl0b3IpLFxuICAgICAgICAgICAgdHlwZTogVGhlUGx1Z2luTWVudUl0ZW1UeXBlLmljb24sXG4gICAgICAgICAgICBuYW1lOiAn5b6F5Yqe5LqL6aG5JyxcbiAgICAgICAgICAgIGRpc3BsYXlLZXk6ICcvZGJzeCcsXG4gICAgICAgICAgICBpY29uOiAnbGlzdC1jaGVjaycsXG4gICAgICAgICAgICBtZW51SWNvbjogUGx1Z2luTWVudUljb25zLmNoZWNrSXRlbVxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMudGFibGVDZWxsLCBFbGVtZW50S2luZHMuYmxvY2txdW90ZV0sXG4gICAgICAgIGVkaXRhYmxlV2l0aFJlYWRvbmx5OiBmYWxzZVxuICAgIH1cbn0pO1xuIl19