@atlaskit/editor-core 172.1.1 → 172.2.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 (541) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cjs/analytics-api/api.js +38 -0
  3. package/dist/cjs/analytics-api/attach-payload-into-transaction.js +36 -0
  4. package/dist/cjs/analytics-api/editor-state-context.js +96 -0
  5. package/dist/cjs/analytics-api/map-attributes.js +30 -0
  6. package/dist/cjs/create-editor/ReactEditorView.js +47 -6
  7. package/dist/cjs/create-editor/ReactEditorViewContext.js +2 -6
  8. package/dist/cjs/create-editor/create-plugins-list.js +12 -3
  9. package/dist/cjs/event-dispatcher/index.js +12 -81
  10. package/dist/cjs/insert-api/api.js +48 -0
  11. package/dist/cjs/insert-api/insert-content-handlers.js +101 -0
  12. package/dist/cjs/insert-api/insert-node-helpers.js +157 -0
  13. package/dist/cjs/{plugins/analytics/types/avatar.js → insert-api/types.js} +0 -0
  14. package/dist/cjs/keymaps/index.js +437 -288
  15. package/dist/cjs/messages.js +8 -125
  16. package/dist/cjs/plugins/analytics/index.js +26 -26
  17. package/dist/cjs/plugins/analytics/types/enums.js +49 -344
  18. package/dist/cjs/plugins/analytics/types/extension-events.js +19 -26
  19. package/dist/cjs/plugins/analytics/types/general-events.js +25 -34
  20. package/dist/cjs/plugins/analytics/types/index.js +10 -56
  21. package/dist/cjs/plugins/analytics/types/inline-comment-events.js +7 -8
  22. package/dist/cjs/plugins/analytics/types/node-events.js +13 -20
  23. package/dist/cjs/plugins/analytics/types/smart-links.js +8 -14
  24. package/dist/cjs/plugins/analytics/types/toolbar-button.js +7 -20
  25. package/dist/cjs/plugins/analytics/utils.js +37 -127
  26. package/dist/cjs/plugins/expand/utils.js +18 -45
  27. package/dist/cjs/plugins/extension/actions.js +10 -30
  28. package/dist/cjs/plugins/extension/ui/Extension/styles.js +18 -8
  29. package/dist/cjs/plugins/insert-block/index.js +1 -0
  30. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +31 -22
  31. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +6 -170
  32. package/dist/cjs/plugins/layout/styles.js +14 -6
  33. package/dist/cjs/plugins/layout/utils.js +25 -66
  34. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +10 -0
  35. package/dist/cjs/plugins/paste/handlers.js +19 -15
  36. package/dist/cjs/plugins/paste/util/index.js +30 -1
  37. package/dist/cjs/plugins/selection/gap-cursor/selection.js +23 -188
  38. package/dist/cjs/plugins/selection/gap-cursor/utils/is-ignored.js +7 -8
  39. package/dist/cjs/plugins/selection/gap-cursor/utils/is-valid-target-node.js +7 -8
  40. package/dist/cjs/plugins/selection/gap-cursor/utils.js +6 -6
  41. package/dist/cjs/plugins/selection/gap-cursor-selection.js +1 -1
  42. package/dist/cjs/plugins/selection/types.js +9 -11
  43. package/dist/cjs/plugins/selection/utils.js +2 -2
  44. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +40 -38
  45. package/dist/cjs/plugins/table/commands/insert.js +57 -49
  46. package/dist/cjs/plugins/table/commands/selection.js +302 -218
  47. package/dist/cjs/plugins/table/commands-with-analytics.js +241 -219
  48. package/dist/cjs/plugins/table/event-handlers.js +60 -60
  49. package/dist/cjs/plugins/table/index.js +64 -20
  50. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +20 -22
  51. package/dist/cjs/plugins/table/nodeviews/table.js +19 -11
  52. package/dist/cjs/plugins/table/nodeviews/tableCell.js +11 -13
  53. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +25 -25
  54. package/dist/cjs/plugins/table/pm-plugins/keymap.js +15 -13
  55. package/dist/cjs/plugins/table/pm-plugins/main.js +8 -8
  56. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -8
  57. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -1
  58. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -10
  59. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  60. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +30 -28
  61. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -7
  62. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  63. package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  64. package/dist/cjs/plugins/table/toolbar.js +74 -72
  65. package/dist/cjs/plugins/table/transforms/column-width.js +41 -38
  66. package/dist/cjs/plugins/table/transforms/replace-table.js +4 -4
  67. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +2 -4
  68. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +25 -21
  69. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  70. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +7 -4
  71. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +12 -11
  72. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +2 -2
  73. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +4 -6
  74. package/dist/cjs/plugins/table/ui/common-styles.js +3 -3
  75. package/dist/cjs/plugins/table/utils/analytics.js +26 -1
  76. package/dist/cjs/plugins/table/utils/index.js +0 -6
  77. package/dist/cjs/selection-api/api.js +34 -0
  78. package/dist/cjs/types/browser.js +1 -2
  79. package/dist/cjs/ui/ColorPalette/Color/index.js +2 -106
  80. package/dist/cjs/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +2 -21
  81. package/dist/cjs/ui/ColorPalette/Palettes/common.js +7 -25
  82. package/dist/cjs/ui/ColorPalette/Palettes/paletteMessages.js +2 -114
  83. package/dist/cjs/ui/ColorPalette/Palettes/panelBackgroundPalette.js +12 -152
  84. package/dist/cjs/ui/ColorPalette/Palettes/statusColorPalette.js +13 -61
  85. package/dist/cjs/ui/ColorPalette/Palettes/textColorPalette.js +12 -34
  86. package/dist/cjs/ui/ColorPalette/index.js +2 -76
  87. package/dist/cjs/ui/Dropdown/index.js +3 -119
  88. package/dist/cjs/ui/DropdownMenu/index.js +3 -286
  89. package/dist/cjs/ui/Toolbar/types.js +19 -33
  90. package/dist/cjs/ui/ToolbarButton/index.js +8 -120
  91. package/dist/cjs/ui/WithPluginState/index.js +1 -3
  92. package/dist/cjs/ui/styles.js +35 -27
  93. package/dist/cjs/ui/with-outer-listeners.js +4 -152
  94. package/dist/cjs/utils/dom.js +46 -123
  95. package/dist/cjs/utils/index.js +40 -42
  96. package/dist/cjs/utils/node-width.js +7 -79
  97. package/dist/cjs/utils/nodes.js +57 -124
  98. package/dist/cjs/utils/plugin-state-factory.js +7 -107
  99. package/dist/cjs/utils/selection.js +11 -62
  100. package/dist/cjs/utils/slice.js +28 -68
  101. package/dist/cjs/utils/step.js +18 -46
  102. package/dist/cjs/version-wrapper.js +1 -1
  103. package/dist/cjs/version.json +1 -1
  104. package/dist/es2019/analytics-api/api.js +30 -0
  105. package/dist/es2019/analytics-api/attach-payload-into-transaction.js +25 -0
  106. package/dist/es2019/analytics-api/editor-state-context.js +85 -0
  107. package/dist/es2019/analytics-api/map-attributes.js +14 -0
  108. package/dist/es2019/create-editor/ReactEditorView.js +33 -4
  109. package/dist/es2019/create-editor/ReactEditorViewContext.js +1 -2
  110. package/dist/es2019/create-editor/create-plugins-list.js +13 -4
  111. package/dist/es2019/event-dispatcher/index.js +1 -60
  112. package/dist/es2019/insert-api/api.js +43 -0
  113. package/dist/es2019/insert-api/insert-content-handlers.js +85 -0
  114. package/dist/es2019/insert-api/insert-node-helpers.js +149 -0
  115. package/dist/es2019/{plugins/analytics/types/avatar.js → insert-api/types.js} +0 -0
  116. package/dist/es2019/keymaps/index.js +1 -186
  117. package/dist/es2019/messages.js +2 -123
  118. package/dist/es2019/plugins/analytics/index.js +1 -1
  119. package/dist/es2019/plugins/analytics/types/enums.js +1 -336
  120. package/dist/es2019/plugins/analytics/types/extension-events.js +1 -22
  121. package/dist/es2019/plugins/analytics/types/general-events.js +1 -30
  122. package/dist/es2019/plugins/analytics/types/index.js +1 -6
  123. package/dist/es2019/plugins/analytics/types/inline-comment-events.js +1 -7
  124. package/dist/es2019/plugins/analytics/types/node-events.js +1 -18
  125. package/dist/es2019/plugins/analytics/types/smart-links.js +1 -12
  126. package/dist/es2019/plugins/analytics/types/toolbar-button.js +1 -19
  127. package/dist/es2019/plugins/analytics/utils.js +12 -113
  128. package/dist/es2019/plugins/expand/utils.js +1 -36
  129. package/dist/es2019/plugins/extension/actions.js +1 -26
  130. package/dist/es2019/plugins/extension/ui/Extension/styles.js +2 -3
  131. package/dist/es2019/plugins/insert-block/index.js +1 -0
  132. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -12
  133. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +1 -168
  134. package/dist/es2019/plugins/layout/styles.js +2 -3
  135. package/dist/es2019/plugins/layout/utils.js +1 -54
  136. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +10 -0
  137. package/dist/es2019/plugins/paste/handlers.js +8 -4
  138. package/dist/es2019/plugins/paste/util/index.js +23 -0
  139. package/dist/es2019/plugins/selection/gap-cursor/selection.js +1 -136
  140. package/dist/es2019/plugins/selection/gap-cursor/utils/is-ignored.js +1 -5
  141. package/dist/es2019/plugins/selection/gap-cursor/utils/is-valid-target-node.js +1 -4
  142. package/dist/es2019/plugins/selection/gap-cursor/utils.js +4 -4
  143. package/dist/es2019/plugins/selection/gap-cursor-selection.js +1 -1
  144. package/dist/es2019/plugins/selection/types.js +2 -9
  145. package/dist/es2019/plugins/selection/utils.js +1 -1
  146. package/dist/es2019/plugins/table/commands/go-to-next-cell.js +4 -4
  147. package/dist/es2019/plugins/table/commands/insert.js +26 -24
  148. package/dist/es2019/plugins/table/commands/selection.js +109 -51
  149. package/dist/es2019/plugins/table/commands-with-analytics.js +39 -38
  150. package/dist/es2019/plugins/table/event-handlers.js +6 -7
  151. package/dist/es2019/plugins/table/index.js +56 -16
  152. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +11 -12
  153. package/dist/es2019/plugins/table/nodeviews/table.js +18 -8
  154. package/dist/es2019/plugins/table/nodeviews/tableCell.js +2 -3
  155. package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +3 -4
  156. package/dist/es2019/plugins/table/pm-plugins/keymap.js +13 -12
  157. package/dist/es2019/plugins/table/pm-plugins/main.js +8 -8
  158. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -6
  159. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -2
  160. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -8
  161. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  162. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +2 -2
  163. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -4
  164. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  165. package/dist/es2019/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  166. package/dist/es2019/plugins/table/toolbar.js +24 -24
  167. package/dist/es2019/plugins/table/transforms/column-width.js +3 -2
  168. package/dist/es2019/plugins/table/transforms/replace-table.js +4 -4
  169. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +2 -2
  170. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +19 -16
  171. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  172. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +8 -4
  173. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +9 -6
  174. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +2 -2
  175. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +2 -3
  176. package/dist/es2019/plugins/table/ui/common-styles.js +1 -1
  177. package/dist/es2019/plugins/table/utils/analytics.js +16 -1
  178. package/dist/es2019/plugins/table/utils/index.js +1 -1
  179. package/dist/es2019/selection-api/api.js +22 -0
  180. package/dist/es2019/types/browser.js +0 -1
  181. package/dist/es2019/ui/ColorPalette/Color/index.js +1 -66
  182. package/dist/es2019/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -14
  183. package/dist/es2019/ui/ColorPalette/Palettes/common.js +1 -20
  184. package/dist/es2019/ui/ColorPalette/Palettes/paletteMessages.js +2 -113
  185. package/dist/es2019/ui/ColorPalette/Palettes/panelBackgroundPalette.js +1 -137
  186. package/dist/es2019/ui/ColorPalette/Palettes/statusColorPalette.js +1 -51
  187. package/dist/es2019/ui/ColorPalette/Palettes/textColorPalette.js +1 -25
  188. package/dist/es2019/ui/ColorPalette/index.js +2 -62
  189. package/dist/es2019/ui/Dropdown/index.js +2 -84
  190. package/dist/es2019/ui/DropdownMenu/index.js +2 -244
  191. package/dist/es2019/ui/Toolbar/types.js +1 -30
  192. package/dist/es2019/ui/ToolbarButton/index.js +2 -94
  193. package/dist/es2019/ui/WithPluginState/index.js +1 -1
  194. package/dist/es2019/ui/styles.js +9 -47
  195. package/dist/es2019/ui/with-outer-listeners.js +2 -104
  196. package/dist/es2019/utils/dom.js +1 -113
  197. package/dist/es2019/utils/index.js +2 -21
  198. package/dist/es2019/utils/node-width.js +1 -75
  199. package/dist/es2019/utils/nodes.js +1 -88
  200. package/dist/es2019/utils/plugin-state-factory.js +1 -107
  201. package/dist/es2019/utils/selection.js +2 -52
  202. package/dist/es2019/utils/slice.js +1 -56
  203. package/dist/es2019/utils/step.js +1 -35
  204. package/dist/es2019/version-wrapper.js +1 -1
  205. package/dist/es2019/version.json +1 -1
  206. package/dist/esm/analytics-api/api.js +27 -0
  207. package/dist/esm/analytics-api/attach-payload-into-transaction.js +22 -0
  208. package/dist/esm/analytics-api/editor-state-context.js +81 -0
  209. package/dist/esm/analytics-api/map-attributes.js +20 -0
  210. package/dist/esm/create-editor/ReactEditorView.js +44 -6
  211. package/dist/esm/create-editor/ReactEditorViewContext.js +1 -2
  212. package/dist/esm/create-editor/create-plugins-list.js +15 -4
  213. package/dist/esm/event-dispatcher/index.js +1 -74
  214. package/dist/esm/insert-api/api.js +37 -0
  215. package/dist/esm/insert-api/insert-content-handlers.js +88 -0
  216. package/dist/esm/insert-api/insert-node-helpers.js +138 -0
  217. package/dist/{es2019/plugins/analytics/types/config-panel-events.js → esm/insert-api/types.js} +0 -0
  218. package/dist/esm/keymaps/index.js +1 -184
  219. package/dist/esm/messages.js +2 -123
  220. package/dist/esm/plugins/analytics/index.js +1 -1
  221. package/dist/esm/plugins/analytics/types/enums.js +1 -336
  222. package/dist/esm/plugins/analytics/types/extension-events.js +1 -22
  223. package/dist/esm/plugins/analytics/types/general-events.js +1 -30
  224. package/dist/esm/plugins/analytics/types/index.js +1 -6
  225. package/dist/esm/plugins/analytics/types/inline-comment-events.js +1 -7
  226. package/dist/esm/plugins/analytics/types/node-events.js +1 -18
  227. package/dist/esm/plugins/analytics/types/smart-links.js +1 -12
  228. package/dist/esm/plugins/analytics/types/toolbar-button.js +1 -19
  229. package/dist/esm/plugins/analytics/utils.js +12 -113
  230. package/dist/esm/plugins/expand/utils.js +1 -34
  231. package/dist/esm/plugins/extension/actions.js +1 -24
  232. package/dist/esm/plugins/extension/ui/Extension/styles.js +2 -3
  233. package/dist/esm/plugins/insert-block/index.js +1 -0
  234. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -12
  235. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +1 -168
  236. package/dist/esm/plugins/layout/styles.js +2 -3
  237. package/dist/esm/plugins/layout/utils.js +1 -58
  238. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +10 -0
  239. package/dist/esm/plugins/paste/handlers.js +8 -4
  240. package/dist/esm/plugins/paste/util/index.js +23 -0
  241. package/dist/esm/plugins/selection/gap-cursor/selection.js +1 -176
  242. package/dist/esm/plugins/selection/gap-cursor/utils/is-ignored.js +1 -5
  243. package/dist/esm/plugins/selection/gap-cursor/utils/is-valid-target-node.js +1 -4
  244. package/dist/esm/plugins/selection/gap-cursor/utils.js +4 -4
  245. package/dist/esm/plugins/selection/gap-cursor-selection.js +1 -1
  246. package/dist/esm/plugins/selection/types.js +2 -9
  247. package/dist/esm/plugins/selection/utils.js +1 -1
  248. package/dist/esm/plugins/table/commands/go-to-next-cell.js +34 -32
  249. package/dist/esm/plugins/table/commands/insert.js +57 -49
  250. package/dist/esm/plugins/table/commands/selection.js +303 -215
  251. package/dist/esm/plugins/table/commands-with-analytics.js +241 -220
  252. package/dist/esm/plugins/table/event-handlers.js +60 -59
  253. package/dist/esm/plugins/table/index.js +62 -18
  254. package/dist/esm/plugins/table/nodeviews/TableComponent.js +20 -21
  255. package/dist/esm/plugins/table/nodeviews/table.js +19 -9
  256. package/dist/esm/plugins/table/nodeviews/tableCell.js +11 -12
  257. package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +25 -24
  258. package/dist/esm/plugins/table/pm-plugins/keymap.js +14 -13
  259. package/dist/esm/plugins/table/pm-plugins/main.js +8 -8
  260. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -6
  261. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -1
  262. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -8
  263. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  264. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +30 -28
  265. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -4
  266. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  267. package/dist/esm/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  268. package/dist/esm/plugins/table/toolbar.js +75 -73
  269. package/dist/esm/plugins/table/transforms/column-width.js +41 -38
  270. package/dist/esm/plugins/table/transforms/replace-table.js +4 -4
  271. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +2 -2
  272. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +25 -21
  273. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  274. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +6 -4
  275. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +9 -6
  276. package/dist/esm/plugins/table/ui/LayoutButton/index.js +2 -2
  277. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +4 -5
  278. package/dist/esm/plugins/table/ui/common-styles.js +1 -1
  279. package/dist/esm/plugins/table/utils/analytics.js +22 -1
  280. package/dist/esm/plugins/table/utils/index.js +1 -1
  281. package/dist/esm/selection-api/api.js +23 -0
  282. package/dist/esm/types/browser.js +0 -1
  283. package/dist/esm/ui/ColorPalette/Color/index.js +1 -93
  284. package/dist/esm/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -14
  285. package/dist/esm/ui/ColorPalette/Palettes/common.js +1 -19
  286. package/dist/esm/ui/ColorPalette/Palettes/paletteMessages.js +2 -113
  287. package/dist/esm/ui/ColorPalette/Palettes/panelBackgroundPalette.js +1 -147
  288. package/dist/esm/ui/ColorPalette/Palettes/statusColorPalette.js +1 -51
  289. package/dist/esm/ui/ColorPalette/Palettes/textColorPalette.js +1 -25
  290. package/dist/esm/ui/ColorPalette/index.js +2 -64
  291. package/dist/esm/ui/Dropdown/index.js +2 -106
  292. package/dist/esm/ui/DropdownMenu/index.js +2 -265
  293. package/dist/esm/ui/Toolbar/types.js +1 -30
  294. package/dist/esm/ui/ToolbarButton/index.js +2 -102
  295. package/dist/esm/ui/WithPluginState/index.js +1 -1
  296. package/dist/esm/ui/styles.js +17 -20
  297. package/dist/esm/ui/with-outer-listeners.js +2 -139
  298. package/dist/esm/utils/dom.js +1 -113
  299. package/dist/esm/utils/index.js +5 -23
  300. package/dist/esm/utils/node-width.js +1 -73
  301. package/dist/esm/utils/nodes.js +1 -100
  302. package/dist/esm/utils/plugin-state-factory.js +1 -106
  303. package/dist/esm/utils/selection.js +2 -50
  304. package/dist/esm/utils/slice.js +1 -59
  305. package/dist/esm/utils/step.js +1 -37
  306. package/dist/esm/version-wrapper.js +1 -1
  307. package/dist/esm/version.json +1 -1
  308. package/dist/types/actions/index.d.ts +2 -16
  309. package/dist/types/analytics-api/api.d.ts +9 -0
  310. package/dist/types/analytics-api/attach-payload-into-transaction.d.ts +10 -0
  311. package/dist/types/analytics-api/editor-state-context.d.ts +9 -0
  312. package/dist/types/analytics-api/map-attributes.d.ts +2 -0
  313. package/dist/types/create-editor/ReactEditorView.d.ts +1 -0
  314. package/dist/types/create-editor/ReactEditorViewContext.d.ts +1 -7
  315. package/dist/types/create-editor/create-plugins-list.d.ts +5 -1
  316. package/dist/types/event-dispatcher/index.d.ts +2 -19
  317. package/dist/types/insert-api/api.d.ts +9 -0
  318. package/dist/types/insert-api/insert-content-handlers.d.ts +9 -0
  319. package/dist/types/insert-api/insert-node-helpers.d.ts +30 -0
  320. package/dist/types/insert-api/types.d.ts +16 -0
  321. package/dist/types/keymaps/index.d.ts +2 -89
  322. package/dist/types/labs/next/presets/cxhtml.d.ts +1 -1
  323. package/dist/types/labs/next/presets/mobile.d.ts +1 -1
  324. package/dist/types/messages.d.ts +2 -124
  325. package/dist/types/plugins/analytics/index.d.ts +2 -2
  326. package/dist/types/plugins/analytics/types/dispatch-analytics-event.d.ts +1 -2
  327. package/dist/types/plugins/analytics/types/enums.d.ts +1 -313
  328. package/dist/types/plugins/analytics/types/events.d.ts +1 -111
  329. package/dist/types/plugins/analytics/types/experimental-events.d.ts +1 -17
  330. package/dist/types/plugins/analytics/types/extension-events.d.ts +2 -43
  331. package/dist/types/plugins/analytics/types/general-events.d.ts +2 -179
  332. package/dist/types/plugins/analytics/types/index.d.ts +4 -14
  333. package/dist/types/plugins/analytics/types/inline-comment-events.d.ts +2 -17
  334. package/dist/types/plugins/analytics/types/link-tool-bar-events.d.ts +1 -76
  335. package/dist/types/plugins/analytics/types/media-events.d.ts +1 -16
  336. package/dist/types/plugins/analytics/types/node-events.d.ts +2 -56
  337. package/dist/types/plugins/analytics/types/selection-events.d.ts +1 -18
  338. package/dist/types/plugins/analytics/types/smart-links.d.ts +2 -13
  339. package/dist/types/plugins/analytics/types/toolbar-button.d.ts +2 -22
  340. package/dist/types/plugins/analytics/types/type-ahead.d.ts +1 -27
  341. package/dist/types/plugins/analytics/utils.d.ts +3 -8
  342. package/dist/types/plugins/annotation/pm-plugins/plugin-factory.d.ts +1 -1
  343. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +1 -1
  344. package/dist/types/plugins/code-bidi-warning/pm-plugins/plugin-factory.d.ts +1 -1
  345. package/dist/types/plugins/context-panel/types.d.ts +1 -3
  346. package/dist/types/plugins/expand/pm-plugins/plugin-factory.d.ts +1 -1
  347. package/dist/types/plugins/expand/utils.d.ts +1 -5
  348. package/dist/types/plugins/extension/actions.d.ts +2 -6
  349. package/dist/types/plugins/extension/commands.d.ts +7 -7
  350. package/dist/types/plugins/extension/plugin-factory.d.ts +2 -2
  351. package/dist/types/plugins/extension/ui/Extension/styles.d.ts +2 -2
  352. package/dist/types/plugins/find-replace/commands.d.ts +7 -7
  353. package/dist/types/plugins/find-replace/plugin.d.ts +1 -1
  354. package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin-factory.d.ts +1 -1
  355. package/dist/types/plugins/floating-toolbar/types.d.ts +1 -153
  356. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +2 -1
  357. package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +2 -12
  358. package/dist/types/plugins/floating-toolbar/ui/types.d.ts +1 -20
  359. package/dist/types/plugins/insert-block/index.d.ts +2 -0
  360. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/messages.d.ts +1 -167
  361. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +3 -1
  362. package/dist/types/plugins/layout/styles.d.ts +2 -2
  363. package/dist/types/plugins/layout/utils.d.ts +1 -15
  364. package/dist/types/plugins/media/commands/linking.d.ts +3 -3
  365. package/dist/types/plugins/media/nodeviews/mediaNodeView/index.d.ts +1 -1
  366. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +1 -1
  367. package/dist/types/plugins/media/pm-plugins/alt-text/commands.d.ts +2 -2
  368. package/dist/types/plugins/media/pm-plugins/alt-text/index.d.ts +1 -1
  369. package/dist/types/plugins/media/pm-plugins/linking/index.d.ts +1 -1
  370. package/dist/types/plugins/mobile-dimensions/commands.d.ts +4 -4
  371. package/dist/types/plugins/mobile-dimensions/plugin-factory.d.ts +1 -1
  372. package/dist/types/plugins/paste/util/index.d.ts +2 -1
  373. package/dist/types/plugins/selection/commands.d.ts +1 -1
  374. package/dist/types/plugins/selection/gap-cursor/selection.d.ts +1 -40
  375. package/dist/types/plugins/selection/gap-cursor/utils/is-ignored.d.ts +1 -2
  376. package/dist/types/plugins/selection/gap-cursor/utils/is-valid-target-node.d.ts +1 -2
  377. package/dist/types/plugins/selection/gap-cursor-selection.d.ts +1 -1
  378. package/dist/types/plugins/selection/plugin-factory.d.ts +1 -1
  379. package/dist/types/plugins/selection/types.d.ts +4 -19
  380. package/dist/types/plugins/table/commands/go-to-next-cell.d.ts +3 -2
  381. package/dist/types/plugins/table/commands/hover.d.ts +7 -7
  382. package/dist/types/plugins/table/commands/insert.d.ts +5 -4
  383. package/dist/types/plugins/table/commands/misc.d.ts +8 -8
  384. package/dist/types/plugins/table/commands/selection.d.ts +4 -3
  385. package/dist/types/plugins/table/commands/toggle.d.ts +1 -1
  386. package/dist/types/plugins/table/commands-with-analytics.d.ts +21 -19
  387. package/dist/types/plugins/table/event-handlers.d.ts +4 -2
  388. package/dist/types/plugins/table/index.d.ts +7 -0
  389. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +4 -2
  390. package/dist/types/plugins/table/nodeviews/table.d.ts +2 -1
  391. package/dist/types/plugins/table/nodeviews/tableCell.d.ts +2 -1
  392. package/dist/types/plugins/table/nodeviews/types.d.ts +3 -0
  393. package/dist/types/plugins/table/nodeviews/update-overflow-shadows.d.ts +2 -1
  394. package/dist/types/plugins/table/pm-plugins/keymap.d.ts +3 -1
  395. package/dist/types/plugins/table/pm-plugins/main.d.ts +4 -2
  396. package/dist/types/plugins/table/pm-plugins/plugin-factory.d.ts +1 -1
  397. package/dist/types/plugins/table/pm-plugins/sticky-headers/commands.d.ts +2 -2
  398. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +2 -1
  399. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +1 -1
  400. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +2 -1
  401. package/dist/types/plugins/table/pm-plugins/table-resizing/commands.d.ts +4 -4
  402. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +3 -1
  403. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +2 -2
  404. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +3 -1
  405. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +2 -1
  406. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +3 -1
  407. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +2 -1
  408. package/dist/types/plugins/table/pm-plugins/table-selection-keymap.d.ts +2 -1
  409. package/dist/types/plugins/table/toolbar.d.ts +5 -3
  410. package/dist/types/plugins/table/transforms/column-width.d.ts +2 -1
  411. package/dist/types/plugins/table/transforms/replace-table.d.ts +3 -2
  412. package/dist/types/plugins/table/types.d.ts +3 -1
  413. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +1 -1
  414. package/dist/types/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -0
  415. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +5 -1
  416. package/dist/types/plugins/table/ui/FloatingDeleteButton/index.d.ts +2 -0
  417. package/dist/types/plugins/table/ui/FloatingInsertButton/index.d.ts +5 -1
  418. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +2 -0
  419. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +2 -0
  420. package/dist/types/plugins/table/utils/analytics.d.ts +3 -0
  421. package/dist/types/plugins/table/utils/index.d.ts +1 -1
  422. package/dist/types/plugins/type-ahead/types.d.ts +2 -50
  423. package/dist/types/plugins/width/index.d.ts +3 -6
  424. package/dist/types/selection-api/api.d.ts +11 -0
  425. package/dist/types/types/browser.d.ts +1 -10
  426. package/dist/types/types/editor-appearance.d.ts +1 -1
  427. package/dist/types/types/editor-plugin.d.ts +1 -59
  428. package/dist/types/types/editor-react-context.d.ts +1 -6
  429. package/dist/types/types/empty-state-handler.d.ts +1 -7
  430. package/dist/types/types/feature-flags.d.ts +1 -343
  431. package/dist/types/types/pm-config.d.ts +1 -14
  432. package/dist/types/types/pm-plugin.d.ts +1 -27
  433. package/dist/types/types/ui-components.d.ts +1 -22
  434. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +118 -118
  435. package/dist/types/ui/ColorPalette/Color/index.d.ts +1 -19
  436. package/dist/types/ui/ColorPalette/Palettes/cellBackgroundColorPalette.d.ts +1 -2
  437. package/dist/types/ui/ColorPalette/Palettes/common.d.ts +1 -1
  438. package/dist/types/ui/ColorPalette/Palettes/paletteMessages.d.ts +2 -113
  439. package/dist/types/ui/ColorPalette/Palettes/panelBackgroundPalette.d.ts +1 -3
  440. package/dist/types/ui/ColorPalette/Palettes/statusColorPalette.d.ts +1 -3
  441. package/dist/types/ui/ColorPalette/Palettes/textColorPalette.d.ts +1 -3
  442. package/dist/types/ui/ColorPalette/Palettes/type.d.ts +1 -8
  443. package/dist/types/ui/ColorPalette/index.d.ts +2 -23
  444. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  445. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  446. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  447. package/dist/types/ui/Dropdown/index.d.ts +2 -33
  448. package/dist/types/ui/DropdownMenu/index.d.ts +2 -18
  449. package/dist/types/ui/DropdownMenu/types.d.ts +1 -43
  450. package/dist/types/ui/Toolbar/types.d.ts +2 -30
  451. package/dist/types/ui/ToolbarButton/index.d.ts +3 -52
  452. package/dist/types/ui/styles.d.ts +3 -3
  453. package/dist/types/ui/with-outer-listeners.d.ts +2 -10
  454. package/dist/types/utils/document-logger.d.ts +2 -7
  455. package/dist/types/utils/dom.d.ts +2 -26
  456. package/dist/types/utils/index.d.ts +3 -6
  457. package/dist/types/utils/node-width.d.ts +1 -7
  458. package/dist/types/utils/nodes.d.ts +1 -35
  459. package/dist/types/utils/performance/plugin-performance-report.d.ts +2 -25
  460. package/dist/types/utils/plugin-state-factory.d.ts +2 -16
  461. package/dist/types/utils/selection.d.ts +3 -6
  462. package/dist/types/utils/slice.d.ts +2 -11
  463. package/dist/types/utils/step.d.ts +1 -15
  464. package/package.json +8 -9
  465. package/dist/cjs/plugins/analytics/types/config-panel-events.js +0 -5
  466. package/dist/cjs/plugins/analytics/types/cut-copy-events.js +0 -5
  467. package/dist/cjs/plugins/analytics/types/date-events.js +0 -5
  468. package/dist/cjs/plugins/analytics/types/element-browser-events.js +0 -5
  469. package/dist/cjs/plugins/analytics/types/find-replace-events.js +0 -5
  470. package/dist/cjs/plugins/analytics/types/format-events.js +0 -24
  471. package/dist/cjs/plugins/analytics/types/insert-events.js +0 -51
  472. package/dist/cjs/plugins/analytics/types/list-events.js +0 -25
  473. package/dist/cjs/plugins/analytics/types/paste-events.js +0 -55
  474. package/dist/cjs/plugins/analytics/types/substitute-events.js +0 -24
  475. package/dist/cjs/plugins/analytics/types/table-events.js +0 -43
  476. package/dist/cjs/plugins/analytics/types/utils.js +0 -27
  477. package/dist/cjs/ui/ColorPalette/Color/styles.js +0 -21
  478. package/dist/cjs/ui/ColorPalette/Palettes/getColorMessage.js +0 -17
  479. package/dist/cjs/ui/ColorPalette/styles.js +0 -19
  480. package/dist/cjs/ui/DropList/index.js +0 -215
  481. package/dist/cjs/ui/Layer/index.js +0 -245
  482. package/dist/cjs/ui/Layer/internal/helpers.js +0 -70
  483. package/dist/cjs/ui/ToolbarButton/styles.js +0 -26
  484. package/dist/es2019/plugins/analytics/types/cut-copy-events.js +0 -1
  485. package/dist/es2019/plugins/analytics/types/date-events.js +0 -1
  486. package/dist/es2019/plugins/analytics/types/element-browser-events.js +0 -1
  487. package/dist/es2019/plugins/analytics/types/find-replace-events.js +0 -1
  488. package/dist/es2019/plugins/analytics/types/format-events.js +0 -16
  489. package/dist/es2019/plugins/analytics/types/insert-events.js +0 -41
  490. package/dist/es2019/plugins/analytics/types/list-events.js +0 -17
  491. package/dist/es2019/plugins/analytics/types/paste-events.js +0 -46
  492. package/dist/es2019/plugins/analytics/types/substitute-events.js +0 -16
  493. package/dist/es2019/plugins/analytics/types/table-events.js +0 -34
  494. package/dist/es2019/plugins/analytics/types/utils.js +0 -19
  495. package/dist/es2019/ui/ColorPalette/Color/styles.js +0 -24
  496. package/dist/es2019/ui/ColorPalette/Palettes/getColorMessage.js +0 -14
  497. package/dist/es2019/ui/ColorPalette/styles.js +0 -7
  498. package/dist/es2019/ui/DropList/index.js +0 -186
  499. package/dist/es2019/ui/Layer/index.js +0 -195
  500. package/dist/es2019/ui/Layer/internal/helpers.js +0 -62
  501. package/dist/es2019/ui/ToolbarButton/styles.js +0 -12
  502. package/dist/esm/plugins/analytics/types/avatar.js +0 -1
  503. package/dist/esm/plugins/analytics/types/config-panel-events.js +0 -1
  504. package/dist/esm/plugins/analytics/types/cut-copy-events.js +0 -1
  505. package/dist/esm/plugins/analytics/types/date-events.js +0 -1
  506. package/dist/esm/plugins/analytics/types/element-browser-events.js +0 -1
  507. package/dist/esm/plugins/analytics/types/find-replace-events.js +0 -1
  508. package/dist/esm/plugins/analytics/types/format-events.js +0 -16
  509. package/dist/esm/plugins/analytics/types/insert-events.js +0 -41
  510. package/dist/esm/plugins/analytics/types/list-events.js +0 -17
  511. package/dist/esm/plugins/analytics/types/paste-events.js +0 -46
  512. package/dist/esm/plugins/analytics/types/substitute-events.js +0 -16
  513. package/dist/esm/plugins/analytics/types/table-events.js +0 -34
  514. package/dist/esm/plugins/analytics/types/utils.js +0 -19
  515. package/dist/esm/ui/ColorPalette/Color/styles.js +0 -8
  516. package/dist/esm/ui/ColorPalette/Palettes/getColorMessage.js +0 -10
  517. package/dist/esm/ui/ColorPalette/styles.js +0 -7
  518. package/dist/esm/ui/DropList/index.js +0 -203
  519. package/dist/esm/ui/Layer/index.js +0 -228
  520. package/dist/esm/ui/Layer/internal/helpers.js +0 -62
  521. package/dist/esm/ui/ToolbarButton/styles.js +0 -12
  522. package/dist/types/plugins/analytics/types/avatar.d.ts +0 -5
  523. package/dist/types/plugins/analytics/types/config-panel-events.d.ts +0 -17
  524. package/dist/types/plugins/analytics/types/cut-copy-events.d.ts +0 -12
  525. package/dist/types/plugins/analytics/types/date-events.d.ts +0 -17
  526. package/dist/types/plugins/analytics/types/element-browser-events.d.ts +0 -11
  527. package/dist/types/plugins/analytics/types/find-replace-events.d.ts +0 -23
  528. package/dist/types/plugins/analytics/types/format-events.d.ts +0 -49
  529. package/dist/types/plugins/analytics/types/insert-events.d.ts +0 -128
  530. package/dist/types/plugins/analytics/types/list-events.d.ts +0 -52
  531. package/dist/types/plugins/analytics/types/paste-events.d.ts +0 -39
  532. package/dist/types/plugins/analytics/types/substitute-events.d.ts +0 -26
  533. package/dist/types/plugins/analytics/types/table-events.d.ts +0 -94
  534. package/dist/types/plugins/analytics/types/utils.d.ts +0 -45
  535. package/dist/types/ui/ColorPalette/Color/styles.d.ts +0 -2
  536. package/dist/types/ui/ColorPalette/Palettes/getColorMessage.d.ts +0 -2
  537. package/dist/types/ui/ColorPalette/styles.d.ts +0 -1
  538. package/dist/types/ui/DropList/index.d.ts +0 -22
  539. package/dist/types/ui/Layer/index.d.ts +0 -47
  540. package/dist/types/ui/Layer/internal/helpers.d.ts +0 -5
  541. package/dist/types/ui/ToolbarButton/styles.d.ts +0 -4
@@ -2,11 +2,7 @@ import { TextSelection, Selection } from 'prosemirror-state';
2
2
  import { TableMap } from '@atlaskit/editor-tables/table-map';
3
3
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
4
4
  import { findTable, isTableSelected } from '@atlaskit/editor-tables/utils';
5
- import { GapCursorSelection, Side } from '../../selection/gap-cursor-selection';
6
- import { setSelectionRelativeToNode } from '../../selection/commands';
7
- import { RelativeSelectionPos } from '../../selection/types';
8
- import { getPluginState as getSelectionPluginState } from '../../selection/plugin-factory';
9
- import { isSelectionAtStartOfNode, isSelectionAtEndOfNode } from '../../../utils/selection';
5
+ import { RelativeSelectionPos, GapCursorSelection, Side, isSelectionAtStartOfNode, isSelectionAtEndOfNode } from '@atlaskit/editor-common/selection';
10
6
  export var TableSelectionDirection;
11
7
 
12
8
  (function (TableSelectionDirection) {
@@ -14,200 +10,220 @@ export var TableSelectionDirection;
14
10
  TableSelectionDirection["BottomToTop"] = "BottomToTop";
15
11
  })(TableSelectionDirection || (TableSelectionDirection = {}));
16
12
 
17
- export var arrowLeftFromTable = function arrowLeftFromTable(state, dispatch) {
18
- var selection = state.selection;
19
-
20
- if (selection instanceof CellSelection) {
21
- return arrowLeftFromCellSelection(selection)(state, dispatch);
22
- } else if (selection instanceof GapCursorSelection) {
23
- return arrowLeftFromGapCursor(selection)(state, dispatch);
24
- } else if (selection instanceof TextSelection) {
25
- return arrowLeftFromText(selection)(state, dispatch);
26
- }
13
+ export var arrowLeftFromTable = function arrowLeftFromTable(editorSelectionAPI) {
14
+ return function () {
15
+ return function (state, dispatch) {
16
+ var selection = state.selection;
17
+
18
+ if (selection instanceof CellSelection) {
19
+ return arrowLeftFromCellSelection(editorSelectionAPI)(selection)(state, dispatch);
20
+ } else if (selection instanceof GapCursorSelection) {
21
+ return arrowLeftFromGapCursor(editorSelectionAPI)(selection)(state, dispatch);
22
+ } else if (selection instanceof TextSelection) {
23
+ return arrowLeftFromText(editorSelectionAPI)(selection)(state, dispatch);
24
+ }
27
25
 
28
- return false;
26
+ return false;
27
+ };
28
+ };
29
29
  };
30
- export var arrowRightFromTable = function arrowRightFromTable(state, dispatch) {
31
- var selection = state.selection;
32
-
33
- if (selection instanceof CellSelection) {
34
- return arrowRightFromCellSelection(selection)(state, dispatch);
35
- } else if (selection instanceof GapCursorSelection) {
36
- return arrowRightFromGapCursor(selection)(state, dispatch);
37
- } else if (selection instanceof TextSelection) {
38
- return arrowRightFromText(selection)(state, dispatch);
39
- }
40
-
41
- return false;
30
+ export var arrowRightFromTable = function arrowRightFromTable(editorSelectionAPI) {
31
+ return function () {
32
+ return function (state, dispatch) {
33
+ var selection = state.selection;
34
+
35
+ if (selection instanceof CellSelection) {
36
+ return arrowRightFromCellSelection(editorSelectionAPI)(selection)(state, dispatch);
37
+ } else if (selection instanceof GapCursorSelection) {
38
+ return arrowRightFromGapCursor(editorSelectionAPI)(selection)(state, dispatch);
39
+ } else if (selection instanceof TextSelection) {
40
+ return arrowRightFromText(editorSelectionAPI)(selection)(state, dispatch);
41
+ }
42
+
43
+ return false;
44
+ };
45
+ };
42
46
  };
43
47
 
44
- var arrowLeftFromCellSelection = function arrowLeftFromCellSelection(selection) {
45
- return function (state, dispatch) {
46
- if (isTableSelected(state.selection)) {
47
- var _getSelectionPluginSt = getSelectionPluginState(state),
48
- selectionRelativeToNode = _getSelectionPluginSt.selectionRelativeToNode;
49
-
50
- if (selectionRelativeToNode === RelativeSelectionPos.Start) {
51
- // we have full table cell selection and want to set gap cursor selection before table
52
- return setGapCursorBeforeTable()(state, dispatch);
53
- } else if (selectionRelativeToNode === RelativeSelectionPos.End) {
54
- // we have full table cell selection and want to set selection at end of last cell
55
- return setSelectionAtEndOfLastCell(selection)(state, dispatch);
56
- } else if (selectionRelativeToNode === undefined) {
57
- // we have full table cell selection and want to set selection at start of first cell
58
- return setSelectionAtStartOfFirstCell(selection, RelativeSelectionPos.Before)(state, dispatch);
48
+ var arrowLeftFromCellSelection = function arrowLeftFromCellSelection(editorSelectionAPI) {
49
+ return function (selection) {
50
+ return function (state, dispatch) {
51
+ if (isTableSelected(state.selection) && editorSelectionAPI) {
52
+ var _editorSelectionAPI$g = editorSelectionAPI.getSelectionPluginState(state),
53
+ selectionRelativeToNode = _editorSelectionAPI$g.selectionRelativeToNode;
54
+
55
+ if (selectionRelativeToNode === RelativeSelectionPos.Start) {
56
+ // we have full table cell selection and want to set gap cursor selection before table
57
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
58
+ } else if (selectionRelativeToNode === RelativeSelectionPos.End) {
59
+ // we have full table cell selection and want to set selection at end of last cell
60
+ return setSelectionAtEndOfLastCell(editorSelectionAPI)(selection)(state, dispatch);
61
+ } else if (selectionRelativeToNode === undefined) {
62
+ // we have full table cell selection and want to set selection at start of first cell
63
+ return setSelectionAtStartOfFirstCell(editorSelectionAPI)(selection, RelativeSelectionPos.Before)(state, dispatch);
64
+ }
59
65
  }
60
- }
61
66
 
62
- return false;
67
+ return false;
68
+ };
63
69
  };
64
70
  };
65
71
 
66
- var arrowRightFromCellSelection = function arrowRightFromCellSelection(selection) {
67
- return function (state, dispatch) {
68
- if (isTableSelected(state.selection)) {
69
- var _getSelectionPluginSt2 = getSelectionPluginState(state),
70
- selectionRelativeToNode = _getSelectionPluginSt2.selectionRelativeToNode;
71
-
72
- if (selectionRelativeToNode === RelativeSelectionPos.Start) {
73
- // we have full table cell selection and want to set selection at start of first cell
74
- return setSelectionAtStartOfFirstCell(selection)(state, dispatch);
75
- } else if (selectionRelativeToNode === RelativeSelectionPos.End || selectionRelativeToNode === undefined) {
76
- // we have full table cell selection and want to set gap cursor selection after table
77
- return setGapCursorAfterTable()(state, dispatch);
72
+ var arrowRightFromCellSelection = function arrowRightFromCellSelection(editorSelectionAPI) {
73
+ return function (selection) {
74
+ return function (state, dispatch) {
75
+ if (isTableSelected(state.selection) && editorSelectionAPI) {
76
+ var _editorSelectionAPI$g2 = editorSelectionAPI.getSelectionPluginState(state),
77
+ selectionRelativeToNode = _editorSelectionAPI$g2.selectionRelativeToNode;
78
+
79
+ if (selectionRelativeToNode === RelativeSelectionPos.Start) {
80
+ // we have full table cell selection and want to set selection at start of first cell
81
+ return setSelectionAtStartOfFirstCell(editorSelectionAPI)(selection)(state, dispatch);
82
+ } else if (selectionRelativeToNode === RelativeSelectionPos.End || selectionRelativeToNode === undefined) {
83
+ // we have full table cell selection and want to set gap cursor selection after table
84
+ return setGapCursorAfterTable(editorSelectionAPI)()(state, dispatch);
85
+ }
78
86
  }
79
- }
80
87
 
81
- return false;
88
+ return false;
89
+ };
82
90
  };
83
91
  };
84
92
 
85
- var arrowLeftFromGapCursor = function arrowLeftFromGapCursor(selection) {
86
- return function (state, dispatch) {
87
- var doc = state.doc;
88
- var $from = selection.$from,
89
- from = selection.from,
90
- side = selection.side;
91
-
92
- if (side === Side.RIGHT) {
93
- if ($from.nodeBefore && $from.nodeBefore.type.name === 'table') {
94
- // we have a gap cursor after a table node and want to set a full table cell selection
95
- return selectFullTable({
96
- node: $from.nodeBefore,
97
- startPos: doc.resolve(from - 1).start($from.depth + 1),
98
- dir: TableSelectionDirection.TopToBottom
99
- })(state, dispatch);
93
+ var arrowLeftFromGapCursor = function arrowLeftFromGapCursor(editorSelectionAPI) {
94
+ return function (selection) {
95
+ return function (state, dispatch) {
96
+ var doc = state.doc;
97
+ var $from = selection.$from,
98
+ from = selection.from,
99
+ side = selection.side;
100
+
101
+ if (side === Side.RIGHT) {
102
+ if ($from.nodeBefore && $from.nodeBefore.type.name === 'table') {
103
+ // we have a gap cursor after a table node and want to set a full table cell selection
104
+ return selectFullTable(editorSelectionAPI)({
105
+ node: $from.nodeBefore,
106
+ startPos: doc.resolve(from - 1).start($from.depth + 1),
107
+ dir: TableSelectionDirection.TopToBottom
108
+ })(state, dispatch);
109
+ }
110
+ } else if (side === Side.LEFT) {
111
+ var table = findTable(selection);
112
+
113
+ if (table && isSelectionAtStartOfTable($from, selection) && editorSelectionAPI) {
114
+ var _editorSelectionAPI$g3 = editorSelectionAPI.getSelectionPluginState(state),
115
+ selectionRelativeToNode = _editorSelectionAPI$g3.selectionRelativeToNode;
116
+
117
+ if (selectionRelativeToNode === RelativeSelectionPos.Before) {
118
+ // we have a gap cursor at start of first table cell and want to set a gap cursor selection before table
119
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
120
+ } else {
121
+ // we have a gap cursor at start of first table cell and want to set a full table cell selection
122
+ return selectFullTable(editorSelectionAPI)({
123
+ node: table.node,
124
+ startPos: table.start,
125
+ dir: TableSelectionDirection.BottomToTop
126
+ })(state, dispatch);
127
+ }
128
+ }
100
129
  }
101
- } else if (side === Side.LEFT) {
102
- var table = findTable(selection);
103
130
 
104
- if (table && isSelectionAtStartOfTable($from, selection)) {
105
- var _getSelectionPluginSt3 = getSelectionPluginState(state),
106
- selectionRelativeToNode = _getSelectionPluginSt3.selectionRelativeToNode;
131
+ return false;
132
+ };
133
+ };
134
+ };
107
135
 
108
- if (selectionRelativeToNode === RelativeSelectionPos.Before) {
109
- // we have a gap cursor at start of first table cell and want to set a gap cursor selection before table
110
- return setGapCursorBeforeTable()(state, dispatch);
111
- } else {
112
- // we have a gap cursor at start of first table cell and want to set a full table cell selection
113
- return selectFullTable({
136
+ var arrowRightFromGapCursor = function arrowRightFromGapCursor(editorSelectionAPI) {
137
+ return function (selection) {
138
+ return function (state, dispatch) {
139
+ var $from = selection.$from,
140
+ from = selection.from,
141
+ $to = selection.$to,
142
+ side = selection.side;
143
+
144
+ if (side === Side.LEFT) {
145
+ if ($from.nodeAfter && $from.nodeAfter.type.name === 'table') {
146
+ // we have a gap cursor before a table node and want to set a full table cell selection
147
+ return selectFullTable(editorSelectionAPI)({
148
+ node: $from.nodeAfter,
149
+ startPos: from + 1,
150
+ dir: TableSelectionDirection.BottomToTop
151
+ })(state, dispatch);
152
+ }
153
+ } else if (side === Side.RIGHT) {
154
+ var table = findTable(selection);
155
+
156
+ if (table && isSelectionAtEndOfTable($to, selection)) {
157
+ // we have a gap cursor at end of last table cell and want to set a full table cell selection
158
+ return selectFullTable(editorSelectionAPI)({
114
159
  node: table.node,
115
160
  startPos: table.start,
116
- dir: TableSelectionDirection.BottomToTop
161
+ dir: TableSelectionDirection.TopToBottom
117
162
  })(state, dispatch);
118
163
  }
119
164
  }
120
- }
121
165
 
122
- return false;
166
+ return false;
167
+ };
123
168
  };
124
169
  };
125
170
 
126
- var arrowRightFromGapCursor = function arrowRightFromGapCursor(selection) {
127
- return function (state, dispatch) {
128
- var $from = selection.$from,
129
- from = selection.from,
130
- $to = selection.$to,
131
- side = selection.side;
132
-
133
- if (side === Side.LEFT) {
134
- if ($from.nodeAfter && $from.nodeAfter.type.name === 'table') {
135
- // we have a gap cursor before a table node and want to set a full table cell selection
136
- return selectFullTable({
137
- node: $from.nodeAfter,
138
- startPos: from + 1,
139
- dir: TableSelectionDirection.BottomToTop
140
- })(state, dispatch);
141
- }
142
- } else if (side === Side.RIGHT) {
171
+ var arrowLeftFromText = function arrowLeftFromText(editorSelectionAPI) {
172
+ return function (selection) {
173
+ return function (state, dispatch) {
143
174
  var table = findTable(selection);
144
175
 
145
- if (table && isSelectionAtEndOfTable($to, selection)) {
146
- // we have a gap cursor at end of last table cell and want to set a full table cell selection
147
- return selectFullTable({
148
- node: table.node,
149
- startPos: table.start,
150
- dir: TableSelectionDirection.TopToBottom
151
- })(state, dispatch);
176
+ if (table) {
177
+ var $from = selection.$from;
178
+
179
+ if (isSelectionAtStartOfTable($from, selection) && $from.parent.type.name === 'paragraph' && $from.depth === table.depth + 3 && // + 3 for: row, cell & paragraph nodes
180
+ editorSelectionAPI) {
181
+ var _editorSelectionAPI$g4 = editorSelectionAPI.getSelectionPluginState(state),
182
+ selectionRelativeToNode = _editorSelectionAPI$g4.selectionRelativeToNode;
183
+
184
+ if (selectionRelativeToNode === RelativeSelectionPos.Before) {
185
+ // we have a text selection at start of first table cell, directly inside a top level paragraph,
186
+ // and want to set gap cursor selection before table
187
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
188
+ } else {
189
+ // we have a text selection at start of first table cell, directly inside a top level paragraph,
190
+ // and want to set a full table cell selection
191
+ return selectFullTable(editorSelectionAPI)({
192
+ node: table.node,
193
+ startPos: table.start,
194
+ dir: TableSelectionDirection.BottomToTop
195
+ })(state, dispatch);
196
+ }
197
+ }
152
198
  }
153
- }
154
199
 
155
- return false;
200
+ return false;
201
+ };
156
202
  };
157
203
  };
158
204
 
159
- var arrowLeftFromText = function arrowLeftFromText(selection) {
160
- return function (state, dispatch) {
161
- var table = findTable(selection);
162
-
163
- if (table) {
164
- var $from = selection.$from;
205
+ var arrowRightFromText = function arrowRightFromText(editorSelectionAPI) {
206
+ return function (selection) {
207
+ return function (state, dispatch) {
208
+ var table = findTable(selection);
165
209
 
166
- if (isSelectionAtStartOfTable($from, selection) && $from.parent.type.name === 'paragraph' && $from.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
167
- ) {
168
- var _getSelectionPluginSt4 = getSelectionPluginState(state),
169
- selectionRelativeToNode = _getSelectionPluginSt4.selectionRelativeToNode;
210
+ if (table) {
211
+ var $to = selection.$to;
170
212
 
171
- if (selectionRelativeToNode === RelativeSelectionPos.Before) {
172
- // we have a text selection at start of first table cell, directly inside a top level paragraph,
173
- // and want to set gap cursor selection before table
174
- return setGapCursorBeforeTable()(state, dispatch);
175
- } else {
176
- // we have a text selection at start of first table cell, directly inside a top level paragraph,
213
+ if (isSelectionAtEndOfTable($to, selection) && $to.parent.type.name === 'paragraph' && $to.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
214
+ ) {
215
+ // we have a text selection at end of last table cell, directly inside a top level paragraph,
177
216
  // and want to set a full table cell selection
178
- return selectFullTable({
217
+ return selectFullTable(editorSelectionAPI)({
179
218
  node: table.node,
180
219
  startPos: table.start,
181
- dir: TableSelectionDirection.BottomToTop
220
+ dir: TableSelectionDirection.TopToBottom
182
221
  })(state, dispatch);
183
222
  }
184
223
  }
185
- }
186
224
 
187
- return false;
188
- };
189
- };
190
-
191
- var arrowRightFromText = function arrowRightFromText(selection) {
192
- return function (state, dispatch) {
193
- var table = findTable(selection);
194
-
195
- if (table) {
196
- var $to = selection.$to;
197
-
198
- if (isSelectionAtEndOfTable($to, selection) && $to.parent.type.name === 'paragraph' && $to.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
199
- ) {
200
- // we have a text selection at end of last table cell, directly inside a top level paragraph,
201
- // and want to set a full table cell selection
202
- return selectFullTable({
203
- node: table.node,
204
- startPos: table.start,
205
- dir: TableSelectionDirection.TopToBottom
206
- })(state, dispatch);
207
- }
208
- }
209
-
210
- return false;
225
+ return false;
226
+ };
211
227
  };
212
228
  };
213
229
  /**
@@ -218,89 +234,161 @@ var arrowRightFromText = function arrowRightFromText(selection) {
218
234
  */
219
235
 
220
236
 
221
- var selectFullTable = function selectFullTable(_ref) {
222
- var node = _ref.node,
223
- startPos = _ref.startPos,
224
- dir = _ref.dir;
225
- return function (state, dispatch) {
226
- var doc = state.doc;
227
-
228
- var _TableMap$get = TableMap.get(node),
229
- map = _TableMap$get.map;
237
+ var selectFullTable = function selectFullTable(editorSelectionAPI) {
238
+ return function (_ref) {
239
+ var node = _ref.node,
240
+ startPos = _ref.startPos,
241
+ dir = _ref.dir;
242
+ return function (state, dispatch) {
243
+ var doc = state.doc;
244
+
245
+ var _TableMap$get = TableMap.get(node),
246
+ map = _TableMap$get.map;
247
+
248
+ var $firstCell = doc.resolve(startPos + map[0]);
249
+ var $lastCell = doc.resolve(startPos + map[map.length - 1]);
250
+ var fullTableSelection;
251
+ var selectionRelativeToNode;
252
+
253
+ if (dir === TableSelectionDirection.TopToBottom) {
254
+ fullTableSelection = new CellSelection($firstCell, $lastCell);
255
+ selectionRelativeToNode = RelativeSelectionPos.End;
256
+ } else {
257
+ fullTableSelection = new CellSelection($lastCell, $firstCell);
258
+ selectionRelativeToNode = RelativeSelectionPos.Start;
259
+ }
230
260
 
231
- var $firstCell = doc.resolve(startPos + map[0]);
232
- var $lastCell = doc.resolve(startPos + map[map.length - 1]);
233
- var fullTableSelection;
234
- var selectionRelativeToNode;
261
+ if (editorSelectionAPI) {
262
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
263
+ selectionRelativeToNode: selectionRelativeToNode,
264
+ selection: fullTableSelection
265
+ })(state);
235
266
 
236
- if (dir === TableSelectionDirection.TopToBottom) {
237
- fullTableSelection = new CellSelection($firstCell, $lastCell);
238
- selectionRelativeToNode = RelativeSelectionPos.End;
239
- } else {
240
- fullTableSelection = new CellSelection($lastCell, $firstCell);
241
- selectionRelativeToNode = RelativeSelectionPos.Start;
242
- }
267
+ if (dispatch) {
268
+ dispatch(tr);
269
+ return true;
270
+ }
271
+ }
243
272
 
244
- return setSelectionRelativeToNode(selectionRelativeToNode, fullTableSelection)(state, dispatch);
273
+ return false;
274
+ };
245
275
  };
246
276
  };
247
277
 
248
- var setSelectionAtStartOfFirstCell = function setSelectionAtStartOfFirstCell(selection, selectionRelativeToNode) {
249
- return function (state, dispatch) {
250
- var $anchorCell = selection.$anchorCell,
251
- $headCell = selection.$headCell;
252
- var $firstCell = $anchorCell.pos < $headCell.pos ? $anchorCell : $headCell;
253
- var $firstPosInsideCell = state.doc.resolve($firstCell.pos + 1); // check if first pos should have a gap cursor, otherwise find closest text selection
278
+ var setSelectionAtStartOfFirstCell = function setSelectionAtStartOfFirstCell(editorSelectionAPI) {
279
+ return function (selection, selectionRelativeToNode) {
280
+ return function (state, dispatch) {
281
+ var $anchorCell = selection.$anchorCell,
282
+ $headCell = selection.$headCell;
283
+ var $firstCell = $anchorCell.pos < $headCell.pos ? $anchorCell : $headCell;
284
+ var $firstPosInsideCell = state.doc.resolve($firstCell.pos + 1); // check if first pos should have a gap cursor, otherwise find closest text selection
285
+
286
+ var selectionAtStartOfCell = GapCursorSelection.valid($firstPosInsideCell) ? new GapCursorSelection($firstPosInsideCell, Side.LEFT) : Selection.findFrom($firstPosInsideCell, 1);
287
+
288
+ if (editorSelectionAPI) {
289
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
290
+ selectionRelativeToNode: selectionRelativeToNode,
291
+ selection: selectionAtStartOfCell
292
+ })(state);
293
+
294
+ if (dispatch) {
295
+ dispatch(tr);
296
+ return true;
297
+ }
298
+ }
254
299
 
255
- var selectionAtStartOfCell = GapCursorSelection.valid($firstPosInsideCell) ? new GapCursorSelection($firstPosInsideCell, Side.LEFT) : Selection.findFrom($firstPosInsideCell, 1);
256
- return setSelectionRelativeToNode(selectionRelativeToNode, selectionAtStartOfCell)(state, dispatch);
300
+ return false;
301
+ };
257
302
  };
258
303
  };
259
304
 
260
- var setSelectionAtEndOfLastCell = function setSelectionAtEndOfLastCell(selection, selectionRelativeToNode) {
261
- return function (state, dispatch) {
262
- var $anchorCell = selection.$anchorCell,
263
- $headCell = selection.$headCell;
264
- var $lastCell = $anchorCell.pos > $headCell.pos ? $anchorCell : $headCell;
265
- var lastPosInsideCell = $lastCell.pos + ($lastCell.nodeAfter ? $lastCell.nodeAfter.content.size : 0) + 1;
266
- var $lastPosInsideCell = state.doc.resolve(lastPosInsideCell); // check if last pos should have a gap cursor, otherwise find closest text selection
305
+ var setSelectionAtEndOfLastCell = function setSelectionAtEndOfLastCell(editorSelectionAPI) {
306
+ return function (selection, selectionRelativeToNode) {
307
+ return function (state, dispatch) {
308
+ var $anchorCell = selection.$anchorCell,
309
+ $headCell = selection.$headCell;
310
+ var $lastCell = $anchorCell.pos > $headCell.pos ? $anchorCell : $headCell;
311
+ var lastPosInsideCell = $lastCell.pos + ($lastCell.nodeAfter ? $lastCell.nodeAfter.content.size : 0) + 1;
312
+ var $lastPosInsideCell = state.doc.resolve(lastPosInsideCell); // check if last pos should have a gap cursor, otherwise find closest text selection
313
+
314
+ var selectionAtEndOfCell = GapCursorSelection.valid($lastPosInsideCell) ? new GapCursorSelection($lastPosInsideCell, Side.RIGHT) : Selection.findFrom($lastPosInsideCell, -1);
315
+
316
+ if (editorSelectionAPI) {
317
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
318
+ selectionRelativeToNode: selectionRelativeToNode,
319
+ selection: selectionAtEndOfCell
320
+ })(state);
321
+
322
+ if (dispatch) {
323
+ dispatch(tr);
324
+ return true;
325
+ }
326
+ }
267
327
 
268
- var selectionAtEndOfCell = GapCursorSelection.valid($lastPosInsideCell) ? new GapCursorSelection($lastPosInsideCell, Side.RIGHT) : Selection.findFrom($lastPosInsideCell, -1);
269
- return setSelectionRelativeToNode(selectionRelativeToNode, selectionAtEndOfCell)(state, dispatch);
328
+ return false;
329
+ };
270
330
  };
271
331
  };
272
332
 
273
- var setGapCursorBeforeTable = function setGapCursorBeforeTable() {
274
- return function (state, dispatch) {
275
- var table = findTable(state.selection);
333
+ var setGapCursorBeforeTable = function setGapCursorBeforeTable(editorSelectionAPI) {
334
+ return function () {
335
+ return function (state, dispatch) {
336
+ var table = findTable(state.selection);
337
+
338
+ if (table) {
339
+ var $beforeTablePos = state.doc.resolve(table.pos);
340
+
341
+ if (GapCursorSelection.valid($beforeTablePos)) {
342
+ var selectionBeforeTable = new GapCursorSelection($beforeTablePos, Side.LEFT);
276
343
 
277
- if (table) {
278
- var $beforeTablePos = state.doc.resolve(table.pos);
344
+ if (editorSelectionAPI) {
345
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
346
+ selectionRelativeToNode: undefined,
347
+ selection: selectionBeforeTable
348
+ })(state);
279
349
 
280
- if (GapCursorSelection.valid($beforeTablePos)) {
281
- var selectionBeforeTable = new GapCursorSelection($beforeTablePos, Side.LEFT);
282
- return setSelectionRelativeToNode(undefined, selectionBeforeTable)(state, dispatch);
350
+ if (dispatch) {
351
+ dispatch(tr);
352
+ return true;
353
+ }
354
+ }
355
+ }
283
356
  }
284
- }
285
357
 
286
- return false;
358
+ return false;
359
+ };
287
360
  };
288
361
  };
289
362
 
290
- var setGapCursorAfterTable = function setGapCursorAfterTable() {
291
- return function (state, dispatch) {
292
- var table = findTable(state.selection);
363
+ var setGapCursorAfterTable = function setGapCursorAfterTable(editorSelectionAPI) {
364
+ return function () {
365
+ return function (state, dispatch) {
366
+ var table = findTable(state.selection);
367
+
368
+ if (table) {
369
+ var $afterTablePos = state.doc.resolve(table.pos + table.node.nodeSize);
370
+
371
+ if (GapCursorSelection.valid($afterTablePos)) {
372
+ var selectionAfterTable = new GapCursorSelection($afterTablePos, Side.RIGHT);
293
373
 
294
- if (table) {
295
- var $afterTablePos = state.doc.resolve(table.pos + table.node.nodeSize);
374
+ if (editorSelectionAPI) {
375
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
376
+ selectionRelativeToNode: undefined,
377
+ selection: selectionAfterTable
378
+ })(state);
296
379
 
297
- if (GapCursorSelection.valid($afterTablePos)) {
298
- var selectionAfterTable = new GapCursorSelection($afterTablePos, Side.RIGHT);
299
- return setSelectionRelativeToNode(undefined, selectionAfterTable)(state, dispatch);
380
+ if (dispatch) {
381
+ dispatch(tr);
382
+ return true;
383
+ }
384
+ }
385
+
386
+ return false;
387
+ }
300
388
  }
301
- }
302
389
 
303
- return false;
390
+ return false;
391
+ };
304
392
  };
305
393
  };
306
394