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