@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
@@ -13,15 +13,7 @@ var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
13
13
 
14
14
  var _utils = require("@atlaskit/editor-tables/utils");
15
15
 
16
- var _gapCursorSelection = require("../../selection/gap-cursor-selection");
17
-
18
- var _commands = require("../../selection/commands");
19
-
20
- var _types = require("../../selection/types");
21
-
22
- var _pluginFactory = require("../../selection/plugin-factory");
23
-
24
- var _selection = require("../../../utils/selection");
16
+ var _selection = require("@atlaskit/editor-common/selection");
25
17
 
26
18
  var TableSelectionDirection;
27
19
  exports.TableSelectionDirection = TableSelectionDirection;
@@ -31,205 +23,225 @@ exports.TableSelectionDirection = TableSelectionDirection;
31
23
  TableSelectionDirection["BottomToTop"] = "BottomToTop";
32
24
  })(TableSelectionDirection || (exports.TableSelectionDirection = TableSelectionDirection = {}));
33
25
 
34
- var arrowLeftFromTable = function arrowLeftFromTable(state, dispatch) {
35
- var selection = state.selection;
36
-
37
- if (selection instanceof _cellSelection.CellSelection) {
38
- return arrowLeftFromCellSelection(selection)(state, dispatch);
39
- } else if (selection instanceof _gapCursorSelection.GapCursorSelection) {
40
- return arrowLeftFromGapCursor(selection)(state, dispatch);
41
- } else if (selection instanceof _prosemirrorState.TextSelection) {
42
- return arrowLeftFromText(selection)(state, dispatch);
43
- }
26
+ var arrowLeftFromTable = function arrowLeftFromTable(editorSelectionAPI) {
27
+ return function () {
28
+ return function (state, dispatch) {
29
+ var selection = state.selection;
30
+
31
+ if (selection instanceof _cellSelection.CellSelection) {
32
+ return arrowLeftFromCellSelection(editorSelectionAPI)(selection)(state, dispatch);
33
+ } else if (selection instanceof _selection.GapCursorSelection) {
34
+ return arrowLeftFromGapCursor(editorSelectionAPI)(selection)(state, dispatch);
35
+ } else if (selection instanceof _prosemirrorState.TextSelection) {
36
+ return arrowLeftFromText(editorSelectionAPI)(selection)(state, dispatch);
37
+ }
44
38
 
45
- return false;
39
+ return false;
40
+ };
41
+ };
46
42
  };
47
43
 
48
44
  exports.arrowLeftFromTable = arrowLeftFromTable;
49
45
 
50
- var arrowRightFromTable = function arrowRightFromTable(state, dispatch) {
51
- var selection = state.selection;
52
-
53
- if (selection instanceof _cellSelection.CellSelection) {
54
- return arrowRightFromCellSelection(selection)(state, dispatch);
55
- } else if (selection instanceof _gapCursorSelection.GapCursorSelection) {
56
- return arrowRightFromGapCursor(selection)(state, dispatch);
57
- } else if (selection instanceof _prosemirrorState.TextSelection) {
58
- return arrowRightFromText(selection)(state, dispatch);
59
- }
46
+ var arrowRightFromTable = function arrowRightFromTable(editorSelectionAPI) {
47
+ return function () {
48
+ return function (state, dispatch) {
49
+ var selection = state.selection;
50
+
51
+ if (selection instanceof _cellSelection.CellSelection) {
52
+ return arrowRightFromCellSelection(editorSelectionAPI)(selection)(state, dispatch);
53
+ } else if (selection instanceof _selection.GapCursorSelection) {
54
+ return arrowRightFromGapCursor(editorSelectionAPI)(selection)(state, dispatch);
55
+ } else if (selection instanceof _prosemirrorState.TextSelection) {
56
+ return arrowRightFromText(editorSelectionAPI)(selection)(state, dispatch);
57
+ }
60
58
 
61
- return false;
59
+ return false;
60
+ };
61
+ };
62
62
  };
63
63
 
64
64
  exports.arrowRightFromTable = arrowRightFromTable;
65
65
 
66
- var arrowLeftFromCellSelection = function arrowLeftFromCellSelection(selection) {
67
- return function (state, dispatch) {
68
- if ((0, _utils.isTableSelected)(state.selection)) {
69
- var _getSelectionPluginSt = (0, _pluginFactory.getPluginState)(state),
70
- selectionRelativeToNode = _getSelectionPluginSt.selectionRelativeToNode;
71
-
72
- if (selectionRelativeToNode === _types.RelativeSelectionPos.Start) {
73
- // we have full table cell selection and want to set gap cursor selection before table
74
- return setGapCursorBeforeTable()(state, dispatch);
75
- } else if (selectionRelativeToNode === _types.RelativeSelectionPos.End) {
76
- // we have full table cell selection and want to set selection at end of last cell
77
- return setSelectionAtEndOfLastCell(selection)(state, dispatch);
78
- } else if (selectionRelativeToNode === undefined) {
79
- // we have full table cell selection and want to set selection at start of first cell
80
- return setSelectionAtStartOfFirstCell(selection, _types.RelativeSelectionPos.Before)(state, dispatch);
66
+ var arrowLeftFromCellSelection = function arrowLeftFromCellSelection(editorSelectionAPI) {
67
+ return function (selection) {
68
+ return function (state, dispatch) {
69
+ if ((0, _utils.isTableSelected)(state.selection) && editorSelectionAPI) {
70
+ var _editorSelectionAPI$g = editorSelectionAPI.getSelectionPluginState(state),
71
+ selectionRelativeToNode = _editorSelectionAPI$g.selectionRelativeToNode;
72
+
73
+ if (selectionRelativeToNode === _selection.RelativeSelectionPos.Start) {
74
+ // we have full table cell selection and want to set gap cursor selection before table
75
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
76
+ } else if (selectionRelativeToNode === _selection.RelativeSelectionPos.End) {
77
+ // we have full table cell selection and want to set selection at end of last cell
78
+ return setSelectionAtEndOfLastCell(editorSelectionAPI)(selection)(state, dispatch);
79
+ } else if (selectionRelativeToNode === undefined) {
80
+ // we have full table cell selection and want to set selection at start of first cell
81
+ return setSelectionAtStartOfFirstCell(editorSelectionAPI)(selection, _selection.RelativeSelectionPos.Before)(state, dispatch);
82
+ }
81
83
  }
82
- }
83
84
 
84
- return false;
85
+ return false;
86
+ };
85
87
  };
86
88
  };
87
89
 
88
- var arrowRightFromCellSelection = function arrowRightFromCellSelection(selection) {
89
- return function (state, dispatch) {
90
- if ((0, _utils.isTableSelected)(state.selection)) {
91
- var _getSelectionPluginSt2 = (0, _pluginFactory.getPluginState)(state),
92
- selectionRelativeToNode = _getSelectionPluginSt2.selectionRelativeToNode;
93
-
94
- if (selectionRelativeToNode === _types.RelativeSelectionPos.Start) {
95
- // we have full table cell selection and want to set selection at start of first cell
96
- return setSelectionAtStartOfFirstCell(selection)(state, dispatch);
97
- } else if (selectionRelativeToNode === _types.RelativeSelectionPos.End || selectionRelativeToNode === undefined) {
98
- // we have full table cell selection and want to set gap cursor selection after table
99
- return setGapCursorAfterTable()(state, dispatch);
90
+ var arrowRightFromCellSelection = function arrowRightFromCellSelection(editorSelectionAPI) {
91
+ return function (selection) {
92
+ return function (state, dispatch) {
93
+ if ((0, _utils.isTableSelected)(state.selection) && editorSelectionAPI) {
94
+ var _editorSelectionAPI$g2 = editorSelectionAPI.getSelectionPluginState(state),
95
+ selectionRelativeToNode = _editorSelectionAPI$g2.selectionRelativeToNode;
96
+
97
+ if (selectionRelativeToNode === _selection.RelativeSelectionPos.Start) {
98
+ // we have full table cell selection and want to set selection at start of first cell
99
+ return setSelectionAtStartOfFirstCell(editorSelectionAPI)(selection)(state, dispatch);
100
+ } else if (selectionRelativeToNode === _selection.RelativeSelectionPos.End || selectionRelativeToNode === undefined) {
101
+ // we have full table cell selection and want to set gap cursor selection after table
102
+ return setGapCursorAfterTable(editorSelectionAPI)()(state, dispatch);
103
+ }
100
104
  }
101
- }
102
105
 
103
- return false;
106
+ return false;
107
+ };
104
108
  };
105
109
  };
106
110
 
107
- var arrowLeftFromGapCursor = function arrowLeftFromGapCursor(selection) {
108
- return function (state, dispatch) {
109
- var doc = state.doc;
110
- var $from = selection.$from,
111
- from = selection.from,
112
- side = selection.side;
113
-
114
- if (side === _gapCursorSelection.Side.RIGHT) {
115
- if ($from.nodeBefore && $from.nodeBefore.type.name === 'table') {
116
- // we have a gap cursor after a table node and want to set a full table cell selection
117
- return selectFullTable({
118
- node: $from.nodeBefore,
119
- startPos: doc.resolve(from - 1).start($from.depth + 1),
120
- dir: TableSelectionDirection.TopToBottom
121
- })(state, dispatch);
111
+ var arrowLeftFromGapCursor = function arrowLeftFromGapCursor(editorSelectionAPI) {
112
+ return function (selection) {
113
+ return function (state, dispatch) {
114
+ var doc = state.doc;
115
+ var $from = selection.$from,
116
+ from = selection.from,
117
+ side = selection.side;
118
+
119
+ if (side === _selection.Side.RIGHT) {
120
+ if ($from.nodeBefore && $from.nodeBefore.type.name === 'table') {
121
+ // we have a gap cursor after a table node and want to set a full table cell selection
122
+ return selectFullTable(editorSelectionAPI)({
123
+ node: $from.nodeBefore,
124
+ startPos: doc.resolve(from - 1).start($from.depth + 1),
125
+ dir: TableSelectionDirection.TopToBottom
126
+ })(state, dispatch);
127
+ }
128
+ } else if (side === _selection.Side.LEFT) {
129
+ var table = (0, _utils.findTable)(selection);
130
+
131
+ if (table && isSelectionAtStartOfTable($from, selection) && editorSelectionAPI) {
132
+ var _editorSelectionAPI$g3 = editorSelectionAPI.getSelectionPluginState(state),
133
+ selectionRelativeToNode = _editorSelectionAPI$g3.selectionRelativeToNode;
134
+
135
+ if (selectionRelativeToNode === _selection.RelativeSelectionPos.Before) {
136
+ // we have a gap cursor at start of first table cell and want to set a gap cursor selection before table
137
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
138
+ } else {
139
+ // we have a gap cursor at start of first table cell and want to set a full table cell selection
140
+ return selectFullTable(editorSelectionAPI)({
141
+ node: table.node,
142
+ startPos: table.start,
143
+ dir: TableSelectionDirection.BottomToTop
144
+ })(state, dispatch);
145
+ }
146
+ }
122
147
  }
123
- } else if (side === _gapCursorSelection.Side.LEFT) {
124
- var table = (0, _utils.findTable)(selection);
125
148
 
126
- if (table && isSelectionAtStartOfTable($from, selection)) {
127
- var _getSelectionPluginSt3 = (0, _pluginFactory.getPluginState)(state),
128
- selectionRelativeToNode = _getSelectionPluginSt3.selectionRelativeToNode;
149
+ return false;
150
+ };
151
+ };
152
+ };
153
+
154
+ var arrowRightFromGapCursor = function arrowRightFromGapCursor(editorSelectionAPI) {
155
+ return function (selection) {
156
+ return function (state, dispatch) {
157
+ var $from = selection.$from,
158
+ from = selection.from,
159
+ $to = selection.$to,
160
+ side = selection.side;
161
+
162
+ if (side === _selection.Side.LEFT) {
163
+ if ($from.nodeAfter && $from.nodeAfter.type.name === 'table') {
164
+ // we have a gap cursor before a table node and want to set a full table cell selection
165
+ return selectFullTable(editorSelectionAPI)({
166
+ node: $from.nodeAfter,
167
+ startPos: from + 1,
168
+ dir: TableSelectionDirection.BottomToTop
169
+ })(state, dispatch);
170
+ }
171
+ } else if (side === _selection.Side.RIGHT) {
172
+ var table = (0, _utils.findTable)(selection);
129
173
 
130
- if (selectionRelativeToNode === _types.RelativeSelectionPos.Before) {
131
- // we have a gap cursor at start of first table cell and want to set a gap cursor selection before table
132
- return setGapCursorBeforeTable()(state, dispatch);
133
- } else {
134
- // we have a gap cursor at start of first table cell and want to set a full table cell selection
135
- return selectFullTable({
174
+ if (table && isSelectionAtEndOfTable($to, selection)) {
175
+ // we have a gap cursor at end of last table cell and want to set a full table cell selection
176
+ return selectFullTable(editorSelectionAPI)({
136
177
  node: table.node,
137
178
  startPos: table.start,
138
- dir: TableSelectionDirection.BottomToTop
179
+ dir: TableSelectionDirection.TopToBottom
139
180
  })(state, dispatch);
140
181
  }
141
182
  }
142
- }
143
183
 
144
- return false;
184
+ return false;
185
+ };
145
186
  };
146
187
  };
147
188
 
148
- var arrowRightFromGapCursor = function arrowRightFromGapCursor(selection) {
149
- return function (state, dispatch) {
150
- var $from = selection.$from,
151
- from = selection.from,
152
- $to = selection.$to,
153
- side = selection.side;
154
-
155
- if (side === _gapCursorSelection.Side.LEFT) {
156
- if ($from.nodeAfter && $from.nodeAfter.type.name === 'table') {
157
- // we have a gap cursor before a table node and want to set a full table cell selection
158
- return selectFullTable({
159
- node: $from.nodeAfter,
160
- startPos: from + 1,
161
- dir: TableSelectionDirection.BottomToTop
162
- })(state, dispatch);
163
- }
164
- } else if (side === _gapCursorSelection.Side.RIGHT) {
189
+ var arrowLeftFromText = function arrowLeftFromText(editorSelectionAPI) {
190
+ return function (selection) {
191
+ return function (state, dispatch) {
165
192
  var table = (0, _utils.findTable)(selection);
166
193
 
167
- if (table && isSelectionAtEndOfTable($to, selection)) {
168
- // we have a gap cursor at end of last table cell and want to set a full table cell selection
169
- return selectFullTable({
170
- node: table.node,
171
- startPos: table.start,
172
- dir: TableSelectionDirection.TopToBottom
173
- })(state, dispatch);
194
+ if (table) {
195
+ var $from = selection.$from;
196
+
197
+ if (isSelectionAtStartOfTable($from, selection) && $from.parent.type.name === 'paragraph' && $from.depth === table.depth + 3 && // + 3 for: row, cell & paragraph nodes
198
+ editorSelectionAPI) {
199
+ var _editorSelectionAPI$g4 = editorSelectionAPI.getSelectionPluginState(state),
200
+ selectionRelativeToNode = _editorSelectionAPI$g4.selectionRelativeToNode;
201
+
202
+ if (selectionRelativeToNode === _selection.RelativeSelectionPos.Before) {
203
+ // we have a text selection at start of first table cell, directly inside a top level paragraph,
204
+ // and want to set gap cursor selection before table
205
+ return setGapCursorBeforeTable(editorSelectionAPI)()(state, dispatch);
206
+ } else {
207
+ // we have a text selection at start of first table cell, directly inside a top level paragraph,
208
+ // and want to set a full table cell selection
209
+ return selectFullTable(editorSelectionAPI)({
210
+ node: table.node,
211
+ startPos: table.start,
212
+ dir: TableSelectionDirection.BottomToTop
213
+ })(state, dispatch);
214
+ }
215
+ }
174
216
  }
175
- }
176
217
 
177
- return false;
218
+ return false;
219
+ };
178
220
  };
179
221
  };
180
222
 
181
- var arrowLeftFromText = function arrowLeftFromText(selection) {
182
- return function (state, dispatch) {
183
- var table = (0, _utils.findTable)(selection);
184
-
185
- if (table) {
186
- var $from = selection.$from;
223
+ var arrowRightFromText = function arrowRightFromText(editorSelectionAPI) {
224
+ return function (selection) {
225
+ return function (state, dispatch) {
226
+ var table = (0, _utils.findTable)(selection);
187
227
 
188
- if (isSelectionAtStartOfTable($from, selection) && $from.parent.type.name === 'paragraph' && $from.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
189
- ) {
190
- var _getSelectionPluginSt4 = (0, _pluginFactory.getPluginState)(state),
191
- selectionRelativeToNode = _getSelectionPluginSt4.selectionRelativeToNode;
228
+ if (table) {
229
+ var $to = selection.$to;
192
230
 
193
- if (selectionRelativeToNode === _types.RelativeSelectionPos.Before) {
194
- // we have a text selection at start of first table cell, directly inside a top level paragraph,
195
- // and want to set gap cursor selection before table
196
- return setGapCursorBeforeTable()(state, dispatch);
197
- } else {
198
- // we have a text selection at start of first table cell, directly inside a top level paragraph,
231
+ if (isSelectionAtEndOfTable($to, selection) && $to.parent.type.name === 'paragraph' && $to.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
232
+ ) {
233
+ // we have a text selection at end of last table cell, directly inside a top level paragraph,
199
234
  // and want to set a full table cell selection
200
- return selectFullTable({
235
+ return selectFullTable(editorSelectionAPI)({
201
236
  node: table.node,
202
237
  startPos: table.start,
203
- dir: TableSelectionDirection.BottomToTop
238
+ dir: TableSelectionDirection.TopToBottom
204
239
  })(state, dispatch);
205
240
  }
206
241
  }
207
- }
208
-
209
- return false;
210
- };
211
- };
212
-
213
- var arrowRightFromText = function arrowRightFromText(selection) {
214
- return function (state, dispatch) {
215
- var table = (0, _utils.findTable)(selection);
216
-
217
- if (table) {
218
- var $to = selection.$to;
219
-
220
- if (isSelectionAtEndOfTable($to, selection) && $to.parent.type.name === 'paragraph' && $to.depth === table.depth + 3 // + 3 for: row, cell & paragraph nodes
221
- ) {
222
- // we have a text selection at end of last table cell, directly inside a top level paragraph,
223
- // and want to set a full table cell selection
224
- return selectFullTable({
225
- node: table.node,
226
- startPos: table.start,
227
- dir: TableSelectionDirection.TopToBottom
228
- })(state, dispatch);
229
- }
230
- }
231
242
 
232
- return false;
243
+ return false;
244
+ };
233
245
  };
234
246
  };
235
247
  /**
@@ -240,89 +252,161 @@ var arrowRightFromText = function arrowRightFromText(selection) {
240
252
  */
241
253
 
242
254
 
243
- var selectFullTable = function selectFullTable(_ref) {
244
- var node = _ref.node,
245
- startPos = _ref.startPos,
246
- dir = _ref.dir;
247
- return function (state, dispatch) {
248
- var doc = state.doc;
249
-
250
- var _TableMap$get = _tableMap.TableMap.get(node),
251
- map = _TableMap$get.map;
255
+ var selectFullTable = function selectFullTable(editorSelectionAPI) {
256
+ return function (_ref) {
257
+ var node = _ref.node,
258
+ startPos = _ref.startPos,
259
+ dir = _ref.dir;
260
+ return function (state, dispatch) {
261
+ var doc = state.doc;
262
+
263
+ var _TableMap$get = _tableMap.TableMap.get(node),
264
+ map = _TableMap$get.map;
265
+
266
+ var $firstCell = doc.resolve(startPos + map[0]);
267
+ var $lastCell = doc.resolve(startPos + map[map.length - 1]);
268
+ var fullTableSelection;
269
+ var selectionRelativeToNode;
270
+
271
+ if (dir === TableSelectionDirection.TopToBottom) {
272
+ fullTableSelection = new _cellSelection.CellSelection($firstCell, $lastCell);
273
+ selectionRelativeToNode = _selection.RelativeSelectionPos.End;
274
+ } else {
275
+ fullTableSelection = new _cellSelection.CellSelection($lastCell, $firstCell);
276
+ selectionRelativeToNode = _selection.RelativeSelectionPos.Start;
277
+ }
252
278
 
253
- var $firstCell = doc.resolve(startPos + map[0]);
254
- var $lastCell = doc.resolve(startPos + map[map.length - 1]);
255
- var fullTableSelection;
256
- var selectionRelativeToNode;
279
+ if (editorSelectionAPI) {
280
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
281
+ selectionRelativeToNode: selectionRelativeToNode,
282
+ selection: fullTableSelection
283
+ })(state);
257
284
 
258
- if (dir === TableSelectionDirection.TopToBottom) {
259
- fullTableSelection = new _cellSelection.CellSelection($firstCell, $lastCell);
260
- selectionRelativeToNode = _types.RelativeSelectionPos.End;
261
- } else {
262
- fullTableSelection = new _cellSelection.CellSelection($lastCell, $firstCell);
263
- selectionRelativeToNode = _types.RelativeSelectionPos.Start;
264
- }
285
+ if (dispatch) {
286
+ dispatch(tr);
287
+ return true;
288
+ }
289
+ }
265
290
 
266
- return (0, _commands.setSelectionRelativeToNode)(selectionRelativeToNode, fullTableSelection)(state, dispatch);
291
+ return false;
292
+ };
267
293
  };
268
294
  };
269
295
 
270
- var setSelectionAtStartOfFirstCell = function setSelectionAtStartOfFirstCell(selection, selectionRelativeToNode) {
271
- return function (state, dispatch) {
272
- var $anchorCell = selection.$anchorCell,
273
- $headCell = selection.$headCell;
274
- var $firstCell = $anchorCell.pos < $headCell.pos ? $anchorCell : $headCell;
275
- var $firstPosInsideCell = state.doc.resolve($firstCell.pos + 1); // check if first pos should have a gap cursor, otherwise find closest text selection
296
+ var setSelectionAtStartOfFirstCell = function setSelectionAtStartOfFirstCell(editorSelectionAPI) {
297
+ return function (selection, selectionRelativeToNode) {
298
+ return function (state, dispatch) {
299
+ var $anchorCell = selection.$anchorCell,
300
+ $headCell = selection.$headCell;
301
+ var $firstCell = $anchorCell.pos < $headCell.pos ? $anchorCell : $headCell;
302
+ var $firstPosInsideCell = state.doc.resolve($firstCell.pos + 1); // check if first pos should have a gap cursor, otherwise find closest text selection
303
+
304
+ var selectionAtStartOfCell = _selection.GapCursorSelection.valid($firstPosInsideCell) ? new _selection.GapCursorSelection($firstPosInsideCell, _selection.Side.LEFT) : _prosemirrorState.Selection.findFrom($firstPosInsideCell, 1);
305
+
306
+ if (editorSelectionAPI) {
307
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
308
+ selectionRelativeToNode: selectionRelativeToNode,
309
+ selection: selectionAtStartOfCell
310
+ })(state);
311
+
312
+ if (dispatch) {
313
+ dispatch(tr);
314
+ return true;
315
+ }
316
+ }
276
317
 
277
- var selectionAtStartOfCell = _gapCursorSelection.GapCursorSelection.valid($firstPosInsideCell) ? new _gapCursorSelection.GapCursorSelection($firstPosInsideCell, _gapCursorSelection.Side.LEFT) : _prosemirrorState.Selection.findFrom($firstPosInsideCell, 1);
278
- return (0, _commands.setSelectionRelativeToNode)(selectionRelativeToNode, selectionAtStartOfCell)(state, dispatch);
318
+ return false;
319
+ };
279
320
  };
280
321
  };
281
322
 
282
- var setSelectionAtEndOfLastCell = function setSelectionAtEndOfLastCell(selection, selectionRelativeToNode) {
283
- return function (state, dispatch) {
284
- var $anchorCell = selection.$anchorCell,
285
- $headCell = selection.$headCell;
286
- var $lastCell = $anchorCell.pos > $headCell.pos ? $anchorCell : $headCell;
287
- var lastPosInsideCell = $lastCell.pos + ($lastCell.nodeAfter ? $lastCell.nodeAfter.content.size : 0) + 1;
288
- var $lastPosInsideCell = state.doc.resolve(lastPosInsideCell); // check if last pos should have a gap cursor, otherwise find closest text selection
323
+ var setSelectionAtEndOfLastCell = function setSelectionAtEndOfLastCell(editorSelectionAPI) {
324
+ return function (selection, selectionRelativeToNode) {
325
+ return function (state, dispatch) {
326
+ var $anchorCell = selection.$anchorCell,
327
+ $headCell = selection.$headCell;
328
+ var $lastCell = $anchorCell.pos > $headCell.pos ? $anchorCell : $headCell;
329
+ var lastPosInsideCell = $lastCell.pos + ($lastCell.nodeAfter ? $lastCell.nodeAfter.content.size : 0) + 1;
330
+ var $lastPosInsideCell = state.doc.resolve(lastPosInsideCell); // check if last pos should have a gap cursor, otherwise find closest text selection
331
+
332
+ var selectionAtEndOfCell = _selection.GapCursorSelection.valid($lastPosInsideCell) ? new _selection.GapCursorSelection($lastPosInsideCell, _selection.Side.RIGHT) : _prosemirrorState.Selection.findFrom($lastPosInsideCell, -1);
333
+
334
+ if (editorSelectionAPI) {
335
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
336
+ selectionRelativeToNode: selectionRelativeToNode,
337
+ selection: selectionAtEndOfCell
338
+ })(state);
339
+
340
+ if (dispatch) {
341
+ dispatch(tr);
342
+ return true;
343
+ }
344
+ }
289
345
 
290
- var selectionAtEndOfCell = _gapCursorSelection.GapCursorSelection.valid($lastPosInsideCell) ? new _gapCursorSelection.GapCursorSelection($lastPosInsideCell, _gapCursorSelection.Side.RIGHT) : _prosemirrorState.Selection.findFrom($lastPosInsideCell, -1);
291
- return (0, _commands.setSelectionRelativeToNode)(selectionRelativeToNode, selectionAtEndOfCell)(state, dispatch);
346
+ return false;
347
+ };
292
348
  };
293
349
  };
294
350
 
295
- var setGapCursorBeforeTable = function setGapCursorBeforeTable() {
296
- return function (state, dispatch) {
297
- var table = (0, _utils.findTable)(state.selection);
351
+ var setGapCursorBeforeTable = function setGapCursorBeforeTable(editorSelectionAPI) {
352
+ return function () {
353
+ return function (state, dispatch) {
354
+ var table = (0, _utils.findTable)(state.selection);
355
+
356
+ if (table) {
357
+ var $beforeTablePos = state.doc.resolve(table.pos);
298
358
 
299
- if (table) {
300
- var $beforeTablePos = state.doc.resolve(table.pos);
359
+ if (_selection.GapCursorSelection.valid($beforeTablePos)) {
360
+ var selectionBeforeTable = new _selection.GapCursorSelection($beforeTablePos, _selection.Side.LEFT);
301
361
 
302
- if (_gapCursorSelection.GapCursorSelection.valid($beforeTablePos)) {
303
- var selectionBeforeTable = new _gapCursorSelection.GapCursorSelection($beforeTablePos, _gapCursorSelection.Side.LEFT);
304
- return (0, _commands.setSelectionRelativeToNode)(undefined, selectionBeforeTable)(state, dispatch);
362
+ if (editorSelectionAPI) {
363
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
364
+ selectionRelativeToNode: undefined,
365
+ selection: selectionBeforeTable
366
+ })(state);
367
+
368
+ if (dispatch) {
369
+ dispatch(tr);
370
+ return true;
371
+ }
372
+ }
373
+ }
305
374
  }
306
- }
307
375
 
308
- return false;
376
+ return false;
377
+ };
309
378
  };
310
379
  };
311
380
 
312
- var setGapCursorAfterTable = function setGapCursorAfterTable() {
313
- return function (state, dispatch) {
314
- var table = (0, _utils.findTable)(state.selection);
381
+ var setGapCursorAfterTable = function setGapCursorAfterTable(editorSelectionAPI) {
382
+ return function () {
383
+ return function (state, dispatch) {
384
+ var table = (0, _utils.findTable)(state.selection);
385
+
386
+ if (table) {
387
+ var $afterTablePos = state.doc.resolve(table.pos + table.node.nodeSize);
315
388
 
316
- if (table) {
317
- var $afterTablePos = state.doc.resolve(table.pos + table.node.nodeSize);
389
+ if (_selection.GapCursorSelection.valid($afterTablePos)) {
390
+ var selectionAfterTable = new _selection.GapCursorSelection($afterTablePos, _selection.Side.RIGHT);
318
391
 
319
- if (_gapCursorSelection.GapCursorSelection.valid($afterTablePos)) {
320
- var selectionAfterTable = new _gapCursorSelection.GapCursorSelection($afterTablePos, _gapCursorSelection.Side.RIGHT);
321
- return (0, _commands.setSelectionRelativeToNode)(undefined, selectionAfterTable)(state, dispatch);
392
+ if (editorSelectionAPI) {
393
+ var tr = editorSelectionAPI.setSelectionRelativeToNode({
394
+ selectionRelativeToNode: undefined,
395
+ selection: selectionAfterTable
396
+ })(state);
397
+
398
+ if (dispatch) {
399
+ dispatch(tr);
400
+ return true;
401
+ }
402
+ }
403
+
404
+ return false;
405
+ }
322
406
  }
323
- }
324
407
 
325
- return false;
408
+ return false;
409
+ };
326
410
  };
327
411
  };
328
412