@atlaskit/editor-core 172.1.1 → 172.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cjs/analytics-api/api.js +38 -0
  3. package/dist/cjs/analytics-api/attach-payload-into-transaction.js +36 -0
  4. package/dist/cjs/analytics-api/editor-state-context.js +96 -0
  5. package/dist/cjs/analytics-api/map-attributes.js +30 -0
  6. package/dist/cjs/create-editor/ReactEditorView.js +47 -6
  7. package/dist/cjs/create-editor/ReactEditorViewContext.js +2 -6
  8. package/dist/cjs/create-editor/create-plugins-list.js +12 -3
  9. package/dist/cjs/event-dispatcher/index.js +12 -81
  10. package/dist/cjs/insert-api/api.js +48 -0
  11. package/dist/cjs/insert-api/insert-content-handlers.js +101 -0
  12. package/dist/cjs/insert-api/insert-node-helpers.js +157 -0
  13. package/dist/cjs/{plugins/analytics/types/avatar.js → insert-api/types.js} +0 -0
  14. package/dist/cjs/keymaps/index.js +437 -288
  15. package/dist/cjs/messages.js +8 -125
  16. package/dist/cjs/plugins/analytics/index.js +26 -26
  17. package/dist/cjs/plugins/analytics/types/enums.js +49 -344
  18. package/dist/cjs/plugins/analytics/types/extension-events.js +19 -26
  19. package/dist/cjs/plugins/analytics/types/general-events.js +25 -34
  20. package/dist/cjs/plugins/analytics/types/index.js +10 -56
  21. package/dist/cjs/plugins/analytics/types/inline-comment-events.js +7 -8
  22. package/dist/cjs/plugins/analytics/types/node-events.js +13 -20
  23. package/dist/cjs/plugins/analytics/types/smart-links.js +8 -14
  24. package/dist/cjs/plugins/analytics/types/toolbar-button.js +7 -20
  25. package/dist/cjs/plugins/analytics/utils.js +37 -127
  26. package/dist/cjs/plugins/expand/utils.js +18 -45
  27. package/dist/cjs/plugins/extension/actions.js +10 -30
  28. package/dist/cjs/plugins/extension/ui/Extension/styles.js +18 -8
  29. package/dist/cjs/plugins/insert-block/index.js +1 -0
  30. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +31 -22
  31. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +6 -170
  32. package/dist/cjs/plugins/layout/styles.js +14 -6
  33. package/dist/cjs/plugins/layout/utils.js +25 -66
  34. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +10 -0
  35. package/dist/cjs/plugins/paste/handlers.js +19 -15
  36. package/dist/cjs/plugins/paste/util/index.js +30 -1
  37. package/dist/cjs/plugins/selection/gap-cursor/selection.js +23 -188
  38. package/dist/cjs/plugins/selection/gap-cursor/utils/is-ignored.js +7 -8
  39. package/dist/cjs/plugins/selection/gap-cursor/utils/is-valid-target-node.js +7 -8
  40. package/dist/cjs/plugins/selection/gap-cursor/utils.js +6 -6
  41. package/dist/cjs/plugins/selection/gap-cursor-selection.js +1 -1
  42. package/dist/cjs/plugins/selection/types.js +9 -11
  43. package/dist/cjs/plugins/selection/utils.js +2 -2
  44. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +40 -38
  45. package/dist/cjs/plugins/table/commands/insert.js +57 -49
  46. package/dist/cjs/plugins/table/commands/selection.js +302 -218
  47. package/dist/cjs/plugins/table/commands-with-analytics.js +241 -219
  48. package/dist/cjs/plugins/table/event-handlers.js +60 -60
  49. package/dist/cjs/plugins/table/index.js +64 -20
  50. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +20 -22
  51. package/dist/cjs/plugins/table/nodeviews/table.js +19 -11
  52. package/dist/cjs/plugins/table/nodeviews/tableCell.js +11 -13
  53. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +25 -25
  54. package/dist/cjs/plugins/table/pm-plugins/keymap.js +15 -13
  55. package/dist/cjs/plugins/table/pm-plugins/main.js +8 -8
  56. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -8
  57. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -1
  58. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -10
  59. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  60. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +30 -28
  61. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -7
  62. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  63. package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  64. package/dist/cjs/plugins/table/toolbar.js +74 -72
  65. package/dist/cjs/plugins/table/transforms/column-width.js +41 -38
  66. package/dist/cjs/plugins/table/transforms/replace-table.js +4 -4
  67. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +2 -4
  68. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +25 -21
  69. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  70. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +7 -4
  71. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +12 -11
  72. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +2 -2
  73. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +4 -6
  74. package/dist/cjs/plugins/table/ui/common-styles.js +3 -3
  75. package/dist/cjs/plugins/table/utils/analytics.js +26 -1
  76. package/dist/cjs/plugins/table/utils/index.js +0 -6
  77. package/dist/cjs/selection-api/api.js +34 -0
  78. package/dist/cjs/types/browser.js +1 -2
  79. package/dist/cjs/ui/ColorPalette/Color/index.js +2 -106
  80. package/dist/cjs/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +2 -21
  81. package/dist/cjs/ui/ColorPalette/Palettes/common.js +7 -25
  82. package/dist/cjs/ui/ColorPalette/Palettes/paletteMessages.js +2 -114
  83. package/dist/cjs/ui/ColorPalette/Palettes/panelBackgroundPalette.js +12 -152
  84. package/dist/cjs/ui/ColorPalette/Palettes/statusColorPalette.js +13 -61
  85. package/dist/cjs/ui/ColorPalette/Palettes/textColorPalette.js +12 -34
  86. package/dist/cjs/ui/ColorPalette/index.js +2 -76
  87. package/dist/cjs/ui/Dropdown/index.js +3 -119
  88. package/dist/cjs/ui/DropdownMenu/index.js +3 -286
  89. package/dist/cjs/ui/Toolbar/types.js +19 -33
  90. package/dist/cjs/ui/ToolbarButton/index.js +8 -120
  91. package/dist/cjs/ui/WithPluginState/index.js +1 -3
  92. package/dist/cjs/ui/styles.js +35 -27
  93. package/dist/cjs/ui/with-outer-listeners.js +4 -152
  94. package/dist/cjs/utils/dom.js +46 -123
  95. package/dist/cjs/utils/index.js +40 -42
  96. package/dist/cjs/utils/node-width.js +7 -79
  97. package/dist/cjs/utils/nodes.js +57 -124
  98. package/dist/cjs/utils/plugin-state-factory.js +7 -107
  99. package/dist/cjs/utils/selection.js +11 -62
  100. package/dist/cjs/utils/slice.js +28 -68
  101. package/dist/cjs/utils/step.js +18 -46
  102. package/dist/cjs/version-wrapper.js +1 -1
  103. package/dist/cjs/version.json +1 -1
  104. package/dist/es2019/analytics-api/api.js +30 -0
  105. package/dist/es2019/analytics-api/attach-payload-into-transaction.js +25 -0
  106. package/dist/es2019/analytics-api/editor-state-context.js +85 -0
  107. package/dist/es2019/analytics-api/map-attributes.js +14 -0
  108. package/dist/es2019/create-editor/ReactEditorView.js +33 -4
  109. package/dist/es2019/create-editor/ReactEditorViewContext.js +1 -2
  110. package/dist/es2019/create-editor/create-plugins-list.js +13 -4
  111. package/dist/es2019/event-dispatcher/index.js +1 -60
  112. package/dist/es2019/insert-api/api.js +43 -0
  113. package/dist/es2019/insert-api/insert-content-handlers.js +85 -0
  114. package/dist/es2019/insert-api/insert-node-helpers.js +149 -0
  115. package/dist/es2019/{plugins/analytics/types/avatar.js → insert-api/types.js} +0 -0
  116. package/dist/es2019/keymaps/index.js +1 -186
  117. package/dist/es2019/messages.js +2 -123
  118. package/dist/es2019/plugins/analytics/index.js +1 -1
  119. package/dist/es2019/plugins/analytics/types/enums.js +1 -336
  120. package/dist/es2019/plugins/analytics/types/extension-events.js +1 -22
  121. package/dist/es2019/plugins/analytics/types/general-events.js +1 -30
  122. package/dist/es2019/plugins/analytics/types/index.js +1 -6
  123. package/dist/es2019/plugins/analytics/types/inline-comment-events.js +1 -7
  124. package/dist/es2019/plugins/analytics/types/node-events.js +1 -18
  125. package/dist/es2019/plugins/analytics/types/smart-links.js +1 -12
  126. package/dist/es2019/plugins/analytics/types/toolbar-button.js +1 -19
  127. package/dist/es2019/plugins/analytics/utils.js +12 -113
  128. package/dist/es2019/plugins/expand/utils.js +1 -36
  129. package/dist/es2019/plugins/extension/actions.js +1 -26
  130. package/dist/es2019/plugins/extension/ui/Extension/styles.js +2 -3
  131. package/dist/es2019/plugins/insert-block/index.js +1 -0
  132. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -12
  133. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +1 -168
  134. package/dist/es2019/plugins/layout/styles.js +2 -3
  135. package/dist/es2019/plugins/layout/utils.js +1 -54
  136. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +10 -0
  137. package/dist/es2019/plugins/paste/handlers.js +8 -4
  138. package/dist/es2019/plugins/paste/util/index.js +23 -0
  139. package/dist/es2019/plugins/selection/gap-cursor/selection.js +1 -136
  140. package/dist/es2019/plugins/selection/gap-cursor/utils/is-ignored.js +1 -5
  141. package/dist/es2019/plugins/selection/gap-cursor/utils/is-valid-target-node.js +1 -4
  142. package/dist/es2019/plugins/selection/gap-cursor/utils.js +4 -4
  143. package/dist/es2019/plugins/selection/gap-cursor-selection.js +1 -1
  144. package/dist/es2019/plugins/selection/types.js +2 -9
  145. package/dist/es2019/plugins/selection/utils.js +1 -1
  146. package/dist/es2019/plugins/table/commands/go-to-next-cell.js +4 -4
  147. package/dist/es2019/plugins/table/commands/insert.js +26 -24
  148. package/dist/es2019/plugins/table/commands/selection.js +109 -51
  149. package/dist/es2019/plugins/table/commands-with-analytics.js +39 -38
  150. package/dist/es2019/plugins/table/event-handlers.js +6 -7
  151. package/dist/es2019/plugins/table/index.js +56 -16
  152. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +11 -12
  153. package/dist/es2019/plugins/table/nodeviews/table.js +18 -8
  154. package/dist/es2019/plugins/table/nodeviews/tableCell.js +2 -3
  155. package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +3 -4
  156. package/dist/es2019/plugins/table/pm-plugins/keymap.js +13 -12
  157. package/dist/es2019/plugins/table/pm-plugins/main.js +8 -8
  158. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -6
  159. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -2
  160. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -8
  161. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  162. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +2 -2
  163. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -4
  164. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  165. package/dist/es2019/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  166. package/dist/es2019/plugins/table/toolbar.js +24 -24
  167. package/dist/es2019/plugins/table/transforms/column-width.js +3 -2
  168. package/dist/es2019/plugins/table/transforms/replace-table.js +4 -4
  169. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +2 -2
  170. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +19 -16
  171. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  172. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +8 -4
  173. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +9 -6
  174. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +2 -2
  175. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +2 -3
  176. package/dist/es2019/plugins/table/ui/common-styles.js +1 -1
  177. package/dist/es2019/plugins/table/utils/analytics.js +16 -1
  178. package/dist/es2019/plugins/table/utils/index.js +1 -1
  179. package/dist/es2019/selection-api/api.js +22 -0
  180. package/dist/es2019/types/browser.js +0 -1
  181. package/dist/es2019/ui/ColorPalette/Color/index.js +1 -66
  182. package/dist/es2019/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -14
  183. package/dist/es2019/ui/ColorPalette/Palettes/common.js +1 -20
  184. package/dist/es2019/ui/ColorPalette/Palettes/paletteMessages.js +2 -113
  185. package/dist/es2019/ui/ColorPalette/Palettes/panelBackgroundPalette.js +1 -137
  186. package/dist/es2019/ui/ColorPalette/Palettes/statusColorPalette.js +1 -51
  187. package/dist/es2019/ui/ColorPalette/Palettes/textColorPalette.js +1 -25
  188. package/dist/es2019/ui/ColorPalette/index.js +2 -62
  189. package/dist/es2019/ui/Dropdown/index.js +2 -84
  190. package/dist/es2019/ui/DropdownMenu/index.js +2 -244
  191. package/dist/es2019/ui/Toolbar/types.js +1 -30
  192. package/dist/es2019/ui/ToolbarButton/index.js +2 -94
  193. package/dist/es2019/ui/WithPluginState/index.js +1 -1
  194. package/dist/es2019/ui/styles.js +9 -47
  195. package/dist/es2019/ui/with-outer-listeners.js +2 -104
  196. package/dist/es2019/utils/dom.js +1 -113
  197. package/dist/es2019/utils/index.js +2 -21
  198. package/dist/es2019/utils/node-width.js +1 -75
  199. package/dist/es2019/utils/nodes.js +1 -88
  200. package/dist/es2019/utils/plugin-state-factory.js +1 -107
  201. package/dist/es2019/utils/selection.js +2 -52
  202. package/dist/es2019/utils/slice.js +1 -56
  203. package/dist/es2019/utils/step.js +1 -35
  204. package/dist/es2019/version-wrapper.js +1 -1
  205. package/dist/es2019/version.json +1 -1
  206. package/dist/esm/analytics-api/api.js +27 -0
  207. package/dist/esm/analytics-api/attach-payload-into-transaction.js +22 -0
  208. package/dist/esm/analytics-api/editor-state-context.js +81 -0
  209. package/dist/esm/analytics-api/map-attributes.js +20 -0
  210. package/dist/esm/create-editor/ReactEditorView.js +44 -6
  211. package/dist/esm/create-editor/ReactEditorViewContext.js +1 -2
  212. package/dist/esm/create-editor/create-plugins-list.js +15 -4
  213. package/dist/esm/event-dispatcher/index.js +1 -74
  214. package/dist/esm/insert-api/api.js +37 -0
  215. package/dist/esm/insert-api/insert-content-handlers.js +88 -0
  216. package/dist/esm/insert-api/insert-node-helpers.js +138 -0
  217. package/dist/{es2019/plugins/analytics/types/config-panel-events.js → esm/insert-api/types.js} +0 -0
  218. package/dist/esm/keymaps/index.js +1 -184
  219. package/dist/esm/messages.js +2 -123
  220. package/dist/esm/plugins/analytics/index.js +1 -1
  221. package/dist/esm/plugins/analytics/types/enums.js +1 -336
  222. package/dist/esm/plugins/analytics/types/extension-events.js +1 -22
  223. package/dist/esm/plugins/analytics/types/general-events.js +1 -30
  224. package/dist/esm/plugins/analytics/types/index.js +1 -6
  225. package/dist/esm/plugins/analytics/types/inline-comment-events.js +1 -7
  226. package/dist/esm/plugins/analytics/types/node-events.js +1 -18
  227. package/dist/esm/plugins/analytics/types/smart-links.js +1 -12
  228. package/dist/esm/plugins/analytics/types/toolbar-button.js +1 -19
  229. package/dist/esm/plugins/analytics/utils.js +12 -113
  230. package/dist/esm/plugins/expand/utils.js +1 -34
  231. package/dist/esm/plugins/extension/actions.js +1 -24
  232. package/dist/esm/plugins/extension/ui/Extension/styles.js +2 -3
  233. package/dist/esm/plugins/insert-block/index.js +1 -0
  234. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -12
  235. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/messages.js +1 -168
  236. package/dist/esm/plugins/layout/styles.js +2 -3
  237. package/dist/esm/plugins/layout/utils.js +1 -58
  238. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +10 -0
  239. package/dist/esm/plugins/paste/handlers.js +8 -4
  240. package/dist/esm/plugins/paste/util/index.js +23 -0
  241. package/dist/esm/plugins/selection/gap-cursor/selection.js +1 -176
  242. package/dist/esm/plugins/selection/gap-cursor/utils/is-ignored.js +1 -5
  243. package/dist/esm/plugins/selection/gap-cursor/utils/is-valid-target-node.js +1 -4
  244. package/dist/esm/plugins/selection/gap-cursor/utils.js +4 -4
  245. package/dist/esm/plugins/selection/gap-cursor-selection.js +1 -1
  246. package/dist/esm/plugins/selection/types.js +2 -9
  247. package/dist/esm/plugins/selection/utils.js +1 -1
  248. package/dist/esm/plugins/table/commands/go-to-next-cell.js +34 -32
  249. package/dist/esm/plugins/table/commands/insert.js +57 -49
  250. package/dist/esm/plugins/table/commands/selection.js +303 -215
  251. package/dist/esm/plugins/table/commands-with-analytics.js +241 -220
  252. package/dist/esm/plugins/table/event-handlers.js +60 -59
  253. package/dist/esm/plugins/table/index.js +62 -18
  254. package/dist/esm/plugins/table/nodeviews/TableComponent.js +20 -21
  255. package/dist/esm/plugins/table/nodeviews/table.js +19 -9
  256. package/dist/esm/plugins/table/nodeviews/tableCell.js +11 -12
  257. package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +25 -24
  258. package/dist/esm/plugins/table/pm-plugins/keymap.js +14 -13
  259. package/dist/esm/plugins/table/pm-plugins/main.js +8 -8
  260. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +4 -6
  261. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -1
  262. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +7 -8
  263. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  264. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +30 -28
  265. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -4
  266. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +3 -2
  267. package/dist/esm/plugins/table/pm-plugins/table-selection-keymap.js +3 -3
  268. package/dist/esm/plugins/table/toolbar.js +75 -73
  269. package/dist/esm/plugins/table/transforms/column-width.js +41 -38
  270. package/dist/esm/plugins/table/transforms/replace-table.js +4 -4
  271. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +2 -2
  272. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +25 -21
  273. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +6 -2
  274. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +6 -4
  275. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +9 -6
  276. package/dist/esm/plugins/table/ui/LayoutButton/index.js +2 -2
  277. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +4 -5
  278. package/dist/esm/plugins/table/ui/common-styles.js +1 -1
  279. package/dist/esm/plugins/table/utils/analytics.js +22 -1
  280. package/dist/esm/plugins/table/utils/index.js +1 -1
  281. package/dist/esm/selection-api/api.js +23 -0
  282. package/dist/esm/types/browser.js +0 -1
  283. package/dist/esm/ui/ColorPalette/Color/index.js +1 -93
  284. package/dist/esm/ui/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -14
  285. package/dist/esm/ui/ColorPalette/Palettes/common.js +1 -19
  286. package/dist/esm/ui/ColorPalette/Palettes/paletteMessages.js +2 -113
  287. package/dist/esm/ui/ColorPalette/Palettes/panelBackgroundPalette.js +1 -147
  288. package/dist/esm/ui/ColorPalette/Palettes/statusColorPalette.js +1 -51
  289. package/dist/esm/ui/ColorPalette/Palettes/textColorPalette.js +1 -25
  290. package/dist/esm/ui/ColorPalette/index.js +2 -64
  291. package/dist/esm/ui/Dropdown/index.js +2 -106
  292. package/dist/esm/ui/DropdownMenu/index.js +2 -265
  293. package/dist/esm/ui/Toolbar/types.js +1 -30
  294. package/dist/esm/ui/ToolbarButton/index.js +2 -102
  295. package/dist/esm/ui/WithPluginState/index.js +1 -1
  296. package/dist/esm/ui/styles.js +17 -20
  297. package/dist/esm/ui/with-outer-listeners.js +2 -139
  298. package/dist/esm/utils/dom.js +1 -113
  299. package/dist/esm/utils/index.js +5 -23
  300. package/dist/esm/utils/node-width.js +1 -73
  301. package/dist/esm/utils/nodes.js +1 -100
  302. package/dist/esm/utils/plugin-state-factory.js +1 -106
  303. package/dist/esm/utils/selection.js +2 -50
  304. package/dist/esm/utils/slice.js +1 -59
  305. package/dist/esm/utils/step.js +1 -37
  306. package/dist/esm/version-wrapper.js +1 -1
  307. package/dist/esm/version.json +1 -1
  308. package/dist/types/actions/index.d.ts +2 -16
  309. package/dist/types/analytics-api/api.d.ts +9 -0
  310. package/dist/types/analytics-api/attach-payload-into-transaction.d.ts +10 -0
  311. package/dist/types/analytics-api/editor-state-context.d.ts +9 -0
  312. package/dist/types/analytics-api/map-attributes.d.ts +2 -0
  313. package/dist/types/create-editor/ReactEditorView.d.ts +1 -0
  314. package/dist/types/create-editor/ReactEditorViewContext.d.ts +1 -7
  315. package/dist/types/create-editor/create-plugins-list.d.ts +5 -1
  316. package/dist/types/event-dispatcher/index.d.ts +2 -19
  317. package/dist/types/insert-api/api.d.ts +9 -0
  318. package/dist/types/insert-api/insert-content-handlers.d.ts +9 -0
  319. package/dist/types/insert-api/insert-node-helpers.d.ts +30 -0
  320. package/dist/types/insert-api/types.d.ts +16 -0
  321. package/dist/types/keymaps/index.d.ts +2 -89
  322. package/dist/types/labs/next/presets/cxhtml.d.ts +1 -1
  323. package/dist/types/labs/next/presets/mobile.d.ts +1 -1
  324. package/dist/types/messages.d.ts +2 -124
  325. package/dist/types/plugins/analytics/index.d.ts +2 -2
  326. package/dist/types/plugins/analytics/types/dispatch-analytics-event.d.ts +1 -2
  327. package/dist/types/plugins/analytics/types/enums.d.ts +1 -313
  328. package/dist/types/plugins/analytics/types/events.d.ts +1 -111
  329. package/dist/types/plugins/analytics/types/experimental-events.d.ts +1 -17
  330. package/dist/types/plugins/analytics/types/extension-events.d.ts +2 -43
  331. package/dist/types/plugins/analytics/types/general-events.d.ts +2 -179
  332. package/dist/types/plugins/analytics/types/index.d.ts +4 -14
  333. package/dist/types/plugins/analytics/types/inline-comment-events.d.ts +2 -17
  334. package/dist/types/plugins/analytics/types/link-tool-bar-events.d.ts +1 -76
  335. package/dist/types/plugins/analytics/types/media-events.d.ts +1 -16
  336. package/dist/types/plugins/analytics/types/node-events.d.ts +2 -56
  337. package/dist/types/plugins/analytics/types/selection-events.d.ts +1 -18
  338. package/dist/types/plugins/analytics/types/smart-links.d.ts +2 -13
  339. package/dist/types/plugins/analytics/types/toolbar-button.d.ts +2 -22
  340. package/dist/types/plugins/analytics/types/type-ahead.d.ts +1 -27
  341. package/dist/types/plugins/analytics/utils.d.ts +3 -8
  342. package/dist/types/plugins/annotation/pm-plugins/plugin-factory.d.ts +1 -1
  343. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +1 -1
  344. package/dist/types/plugins/code-bidi-warning/pm-plugins/plugin-factory.d.ts +1 -1
  345. package/dist/types/plugins/context-panel/types.d.ts +1 -3
  346. package/dist/types/plugins/expand/pm-plugins/plugin-factory.d.ts +1 -1
  347. package/dist/types/plugins/expand/utils.d.ts +1 -5
  348. package/dist/types/plugins/extension/actions.d.ts +2 -6
  349. package/dist/types/plugins/extension/commands.d.ts +7 -7
  350. package/dist/types/plugins/extension/plugin-factory.d.ts +2 -2
  351. package/dist/types/plugins/extension/ui/Extension/styles.d.ts +2 -2
  352. package/dist/types/plugins/find-replace/commands.d.ts +7 -7
  353. package/dist/types/plugins/find-replace/plugin.d.ts +1 -1
  354. package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin-factory.d.ts +1 -1
  355. package/dist/types/plugins/floating-toolbar/types.d.ts +1 -153
  356. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +2 -1
  357. package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +2 -12
  358. package/dist/types/plugins/floating-toolbar/ui/types.d.ts +1 -20
  359. package/dist/types/plugins/insert-block/index.d.ts +2 -0
  360. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/messages.d.ts +1 -167
  361. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +3 -1
  362. package/dist/types/plugins/layout/styles.d.ts +2 -2
  363. package/dist/types/plugins/layout/utils.d.ts +1 -15
  364. package/dist/types/plugins/media/commands/linking.d.ts +3 -3
  365. package/dist/types/plugins/media/nodeviews/mediaNodeView/index.d.ts +1 -1
  366. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +1 -1
  367. package/dist/types/plugins/media/pm-plugins/alt-text/commands.d.ts +2 -2
  368. package/dist/types/plugins/media/pm-plugins/alt-text/index.d.ts +1 -1
  369. package/dist/types/plugins/media/pm-plugins/linking/index.d.ts +1 -1
  370. package/dist/types/plugins/mobile-dimensions/commands.d.ts +4 -4
  371. package/dist/types/plugins/mobile-dimensions/plugin-factory.d.ts +1 -1
  372. package/dist/types/plugins/paste/util/index.d.ts +2 -1
  373. package/dist/types/plugins/selection/commands.d.ts +1 -1
  374. package/dist/types/plugins/selection/gap-cursor/selection.d.ts +1 -40
  375. package/dist/types/plugins/selection/gap-cursor/utils/is-ignored.d.ts +1 -2
  376. package/dist/types/plugins/selection/gap-cursor/utils/is-valid-target-node.d.ts +1 -2
  377. package/dist/types/plugins/selection/gap-cursor-selection.d.ts +1 -1
  378. package/dist/types/plugins/selection/plugin-factory.d.ts +1 -1
  379. package/dist/types/plugins/selection/types.d.ts +4 -19
  380. package/dist/types/plugins/table/commands/go-to-next-cell.d.ts +3 -2
  381. package/dist/types/plugins/table/commands/hover.d.ts +7 -7
  382. package/dist/types/plugins/table/commands/insert.d.ts +5 -4
  383. package/dist/types/plugins/table/commands/misc.d.ts +8 -8
  384. package/dist/types/plugins/table/commands/selection.d.ts +4 -3
  385. package/dist/types/plugins/table/commands/toggle.d.ts +1 -1
  386. package/dist/types/plugins/table/commands-with-analytics.d.ts +21 -19
  387. package/dist/types/plugins/table/event-handlers.d.ts +4 -2
  388. package/dist/types/plugins/table/index.d.ts +7 -0
  389. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +4 -2
  390. package/dist/types/plugins/table/nodeviews/table.d.ts +2 -1
  391. package/dist/types/plugins/table/nodeviews/tableCell.d.ts +2 -1
  392. package/dist/types/plugins/table/nodeviews/types.d.ts +3 -0
  393. package/dist/types/plugins/table/nodeviews/update-overflow-shadows.d.ts +2 -1
  394. package/dist/types/plugins/table/pm-plugins/keymap.d.ts +3 -1
  395. package/dist/types/plugins/table/pm-plugins/main.d.ts +4 -2
  396. package/dist/types/plugins/table/pm-plugins/plugin-factory.d.ts +1 -1
  397. package/dist/types/plugins/table/pm-plugins/sticky-headers/commands.d.ts +2 -2
  398. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +2 -1
  399. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +1 -1
  400. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +2 -1
  401. package/dist/types/plugins/table/pm-plugins/table-resizing/commands.d.ts +4 -4
  402. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +3 -1
  403. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +2 -2
  404. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +3 -1
  405. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +2 -1
  406. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +3 -1
  407. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +2 -1
  408. package/dist/types/plugins/table/pm-plugins/table-selection-keymap.d.ts +2 -1
  409. package/dist/types/plugins/table/toolbar.d.ts +5 -3
  410. package/dist/types/plugins/table/transforms/column-width.d.ts +2 -1
  411. package/dist/types/plugins/table/transforms/replace-table.d.ts +3 -2
  412. package/dist/types/plugins/table/types.d.ts +3 -1
  413. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +1 -1
  414. package/dist/types/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -0
  415. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +5 -1
  416. package/dist/types/plugins/table/ui/FloatingDeleteButton/index.d.ts +2 -0
  417. package/dist/types/plugins/table/ui/FloatingInsertButton/index.d.ts +5 -1
  418. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +2 -0
  419. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +2 -0
  420. package/dist/types/plugins/table/utils/analytics.d.ts +3 -0
  421. package/dist/types/plugins/table/utils/index.d.ts +1 -1
  422. package/dist/types/plugins/type-ahead/types.d.ts +2 -50
  423. package/dist/types/plugins/width/index.d.ts +3 -6
  424. package/dist/types/selection-api/api.d.ts +11 -0
  425. package/dist/types/types/browser.d.ts +1 -10
  426. package/dist/types/types/editor-appearance.d.ts +1 -1
  427. package/dist/types/types/editor-plugin.d.ts +1 -59
  428. package/dist/types/types/editor-react-context.d.ts +1 -6
  429. package/dist/types/types/empty-state-handler.d.ts +1 -7
  430. package/dist/types/types/feature-flags.d.ts +1 -343
  431. package/dist/types/types/pm-config.d.ts +1 -14
  432. package/dist/types/types/pm-plugin.d.ts +1 -27
  433. package/dist/types/types/ui-components.d.ts +1 -22
  434. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +118 -118
  435. package/dist/types/ui/ColorPalette/Color/index.d.ts +1 -19
  436. package/dist/types/ui/ColorPalette/Palettes/cellBackgroundColorPalette.d.ts +1 -2
  437. package/dist/types/ui/ColorPalette/Palettes/common.d.ts +1 -1
  438. package/dist/types/ui/ColorPalette/Palettes/paletteMessages.d.ts +2 -113
  439. package/dist/types/ui/ColorPalette/Palettes/panelBackgroundPalette.d.ts +1 -3
  440. package/dist/types/ui/ColorPalette/Palettes/statusColorPalette.d.ts +1 -3
  441. package/dist/types/ui/ColorPalette/Palettes/textColorPalette.d.ts +1 -3
  442. package/dist/types/ui/ColorPalette/Palettes/type.d.ts +1 -8
  443. package/dist/types/ui/ColorPalette/index.d.ts +2 -23
  444. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  445. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  446. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  447. package/dist/types/ui/Dropdown/index.d.ts +2 -33
  448. package/dist/types/ui/DropdownMenu/index.d.ts +2 -18
  449. package/dist/types/ui/DropdownMenu/types.d.ts +1 -43
  450. package/dist/types/ui/Toolbar/types.d.ts +2 -30
  451. package/dist/types/ui/ToolbarButton/index.d.ts +3 -52
  452. package/dist/types/ui/styles.d.ts +3 -3
  453. package/dist/types/ui/with-outer-listeners.d.ts +2 -10
  454. package/dist/types/utils/document-logger.d.ts +2 -7
  455. package/dist/types/utils/dom.d.ts +2 -26
  456. package/dist/types/utils/index.d.ts +3 -6
  457. package/dist/types/utils/node-width.d.ts +1 -7
  458. package/dist/types/utils/nodes.d.ts +1 -35
  459. package/dist/types/utils/performance/plugin-performance-report.d.ts +2 -25
  460. package/dist/types/utils/plugin-state-factory.d.ts +2 -16
  461. package/dist/types/utils/selection.d.ts +3 -6
  462. package/dist/types/utils/slice.d.ts +2 -11
  463. package/dist/types/utils/step.d.ts +1 -15
  464. package/package.json +8 -9
  465. package/dist/cjs/plugins/analytics/types/config-panel-events.js +0 -5
  466. package/dist/cjs/plugins/analytics/types/cut-copy-events.js +0 -5
  467. package/dist/cjs/plugins/analytics/types/date-events.js +0 -5
  468. package/dist/cjs/plugins/analytics/types/element-browser-events.js +0 -5
  469. package/dist/cjs/plugins/analytics/types/find-replace-events.js +0 -5
  470. package/dist/cjs/plugins/analytics/types/format-events.js +0 -24
  471. package/dist/cjs/plugins/analytics/types/insert-events.js +0 -51
  472. package/dist/cjs/plugins/analytics/types/list-events.js +0 -25
  473. package/dist/cjs/plugins/analytics/types/paste-events.js +0 -55
  474. package/dist/cjs/plugins/analytics/types/substitute-events.js +0 -24
  475. package/dist/cjs/plugins/analytics/types/table-events.js +0 -43
  476. package/dist/cjs/plugins/analytics/types/utils.js +0 -27
  477. package/dist/cjs/ui/ColorPalette/Color/styles.js +0 -21
  478. package/dist/cjs/ui/ColorPalette/Palettes/getColorMessage.js +0 -17
  479. package/dist/cjs/ui/ColorPalette/styles.js +0 -19
  480. package/dist/cjs/ui/DropList/index.js +0 -215
  481. package/dist/cjs/ui/Layer/index.js +0 -245
  482. package/dist/cjs/ui/Layer/internal/helpers.js +0 -70
  483. package/dist/cjs/ui/ToolbarButton/styles.js +0 -26
  484. package/dist/es2019/plugins/analytics/types/cut-copy-events.js +0 -1
  485. package/dist/es2019/plugins/analytics/types/date-events.js +0 -1
  486. package/dist/es2019/plugins/analytics/types/element-browser-events.js +0 -1
  487. package/dist/es2019/plugins/analytics/types/find-replace-events.js +0 -1
  488. package/dist/es2019/plugins/analytics/types/format-events.js +0 -16
  489. package/dist/es2019/plugins/analytics/types/insert-events.js +0 -41
  490. package/dist/es2019/plugins/analytics/types/list-events.js +0 -17
  491. package/dist/es2019/plugins/analytics/types/paste-events.js +0 -46
  492. package/dist/es2019/plugins/analytics/types/substitute-events.js +0 -16
  493. package/dist/es2019/plugins/analytics/types/table-events.js +0 -34
  494. package/dist/es2019/plugins/analytics/types/utils.js +0 -19
  495. package/dist/es2019/ui/ColorPalette/Color/styles.js +0 -24
  496. package/dist/es2019/ui/ColorPalette/Palettes/getColorMessage.js +0 -14
  497. package/dist/es2019/ui/ColorPalette/styles.js +0 -7
  498. package/dist/es2019/ui/DropList/index.js +0 -186
  499. package/dist/es2019/ui/Layer/index.js +0 -195
  500. package/dist/es2019/ui/Layer/internal/helpers.js +0 -62
  501. package/dist/es2019/ui/ToolbarButton/styles.js +0 -12
  502. package/dist/esm/plugins/analytics/types/avatar.js +0 -1
  503. package/dist/esm/plugins/analytics/types/config-panel-events.js +0 -1
  504. package/dist/esm/plugins/analytics/types/cut-copy-events.js +0 -1
  505. package/dist/esm/plugins/analytics/types/date-events.js +0 -1
  506. package/dist/esm/plugins/analytics/types/element-browser-events.js +0 -1
  507. package/dist/esm/plugins/analytics/types/find-replace-events.js +0 -1
  508. package/dist/esm/plugins/analytics/types/format-events.js +0 -16
  509. package/dist/esm/plugins/analytics/types/insert-events.js +0 -41
  510. package/dist/esm/plugins/analytics/types/list-events.js +0 -17
  511. package/dist/esm/plugins/analytics/types/paste-events.js +0 -46
  512. package/dist/esm/plugins/analytics/types/substitute-events.js +0 -16
  513. package/dist/esm/plugins/analytics/types/table-events.js +0 -34
  514. package/dist/esm/plugins/analytics/types/utils.js +0 -19
  515. package/dist/esm/ui/ColorPalette/Color/styles.js +0 -8
  516. package/dist/esm/ui/ColorPalette/Palettes/getColorMessage.js +0 -10
  517. package/dist/esm/ui/ColorPalette/styles.js +0 -7
  518. package/dist/esm/ui/DropList/index.js +0 -203
  519. package/dist/esm/ui/Layer/index.js +0 -228
  520. package/dist/esm/ui/Layer/internal/helpers.js +0 -62
  521. package/dist/esm/ui/ToolbarButton/styles.js +0 -12
  522. package/dist/types/plugins/analytics/types/avatar.d.ts +0 -5
  523. package/dist/types/plugins/analytics/types/config-panel-events.d.ts +0 -17
  524. package/dist/types/plugins/analytics/types/cut-copy-events.d.ts +0 -12
  525. package/dist/types/plugins/analytics/types/date-events.d.ts +0 -17
  526. package/dist/types/plugins/analytics/types/element-browser-events.d.ts +0 -11
  527. package/dist/types/plugins/analytics/types/find-replace-events.d.ts +0 -23
  528. package/dist/types/plugins/analytics/types/format-events.d.ts +0 -49
  529. package/dist/types/plugins/analytics/types/insert-events.d.ts +0 -128
  530. package/dist/types/plugins/analytics/types/list-events.d.ts +0 -52
  531. package/dist/types/plugins/analytics/types/paste-events.d.ts +0 -39
  532. package/dist/types/plugins/analytics/types/substitute-events.d.ts +0 -26
  533. package/dist/types/plugins/analytics/types/table-events.d.ts +0 -94
  534. package/dist/types/plugins/analytics/types/utils.d.ts +0 -45
  535. package/dist/types/ui/ColorPalette/Color/styles.d.ts +0 -2
  536. package/dist/types/ui/ColorPalette/Palettes/getColorMessage.d.ts +0 -2
  537. package/dist/types/ui/ColorPalette/styles.d.ts +0 -1
  538. package/dist/types/ui/DropList/index.d.ts +0 -22
  539. package/dist/types/ui/Layer/index.d.ts +0 -47
  540. package/dist/types/ui/Layer/internal/helpers.d.ts +0 -5
  541. package/dist/types/ui/ToolbarButton/styles.d.ts +0 -4
@@ -6,10 +6,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
6
6
 
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
- import { Slice } from 'prosemirror-model';
10
9
  import { Selection, NodeSelection, TextSelection } from 'prosemirror-state';
11
10
  import { replaceSelectedNode, findSelectedNodeOfType, replaceParentNodeOfType } from 'prosemirror-utils';
12
- import { mapFragment } from '../../utils/slice';
11
+ export { transformSliceToRemoveOpenBodiedExtension } from '@atlaskit/editor-common/transforms';
13
12
  import { ACTION, ACTION_SUBJECT, INPUT_METHOD, EVENT_TYPE, addAnalytics } from '../analytics';
14
13
  import { TARGET_SELECTION_SOURCE } from '../analytics/types/extension-events';
15
14
  import { findExtensionWithLocalId } from './utils';
@@ -223,26 +222,4 @@ export var editExtension = function editExtension(macroProvider, updateExtension
223
222
 
224
223
  return true;
225
224
  };
226
- };
227
- /**
228
- * Lift content out of "open" top-level bodiedExtensions.
229
- * Will not work if bodiedExtensions are nested, or when bodiedExtensions are not in the top level
230
- */
231
-
232
- export var transformSliceToRemoveOpenBodiedExtension = function transformSliceToRemoveOpenBodiedExtension(slice, schema) {
233
- var bodiedExtension = schema.nodes.bodiedExtension;
234
- var fragment = mapFragment(slice.content, function (node, parent, index) {
235
- if (node.type === bodiedExtension && !parent) {
236
- var currentNodeIsAtStartAndIsOpen = slice.openStart && index === 0;
237
- var currentNodeIsAtEndAndIsOpen = slice.openEnd && index + 1 === slice.content.childCount;
238
-
239
- if (currentNodeIsAtStartAndIsOpen || currentNodeIsAtEndAndIsOpen) {
240
- return node.content;
241
- }
242
- }
243
-
244
- return node;
245
- }); // If the first/last child has changed - then we know we've removed a bodied extension & to decrement the open depth
246
-
247
- return new Slice(fragment, fragment.firstChild && fragment.firstChild.type !== slice.content.firstChild.type ? slice.openStart - 1 : slice.openStart, fragment.lastChild && fragment.lastChild.type !== slice.content.lastChild.type ? slice.openEnd - 1 : slice.openEnd);
248
225
  };
@@ -3,13 +3,12 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
3
3
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
4
4
 
5
5
  import { css } from '@emotion/react';
6
- import { gridSize } from '@atlaskit/theme/constants';
7
6
  import { themed } from '@atlaskit/theme/components';
8
7
  import { borderRadius } from '@atlaskit/theme/constants';
9
8
  import { N20, DN50, DN700, B200, N20A, N70 } from '@atlaskit/theme/colors';
10
9
  import { token } from '@atlaskit/tokens';
11
- export var padding = gridSize();
12
- export var BODIED_EXT_PADDING = padding * 2;
10
+ import { EXTENSION_PADDING, BODIED_EXT_PADDING } from '@atlaskit/editor-common/styles';
11
+ export { EXTENSION_PADDING as padding, BODIED_EXT_PADDING };
13
12
  export var wrapperDefault = function wrapperDefault(theme) {
14
13
  return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n border-radius: ", "px;\n color: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), themed({
15
14
  light: token('color.background.neutral', N20),
@@ -90,6 +90,7 @@ var insertBlockPlugin = function insertBlockPlugin() {
90
90
  placeholderTextState = _ref2.placeholderTextState,
91
91
  layoutState = _ref2.layoutState;
92
92
  return /*#__PURE__*/React.createElement(ToolbarInsertBlock, {
93
+ insertNodeAPI: options.insertNodeAPI,
93
94
  buttons: buttons,
94
95
  isReducedSpacing: isToolbarReducedSpacing,
95
96
  isDisabled: disabled,
@@ -24,7 +24,6 @@ import { EmojiPicker as AkEmojiPicker } from '@atlaskit/emoji/picker';
24
24
  import { Popup } from '@atlaskit/editor-common/ui';
25
25
  import ToolbarButton from '../../../../ui/ToolbarButton';
26
26
  import { separatorStyles, buttonGroupStyle, wrapperStyle } from '../../../../ui/styles';
27
- import { createTable } from '../../../table/commands';
28
27
  import { insertDate } from '../../../date/actions';
29
28
  import { openElementBrowserModal } from '../../../quick-insert/commands';
30
29
  import { showPlaceholderFloatingToolbar } from '../../../placeholder-text/actions';
@@ -34,7 +33,7 @@ import { insertExpand } from '../../../expand/commands';
34
33
  import { showLinkToolbar } from '../../../hyperlink/commands';
35
34
  import { createTypeAheadTools } from '../../../type-ahead/api';
36
35
  import { updateStatusWithAnalytics } from '../../../status/actions';
37
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, withAnalytics as commandWithAnalytics } from '../../../analytics';
36
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../../../analytics';
38
37
  import { insertEmoji } from '../../../emoji/commands/insert-emoji';
39
38
  import { messages } from './messages';
40
39
  import { createItems } from './create-items';
@@ -200,16 +199,27 @@ export var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
200
199
  });
201
200
 
202
201
  _defineProperty(_assertThisInitialized(_this), "insertTable", function (inputMethod) {
203
- var editorView = _this.props.editorView;
204
- return commandWithAnalytics({
205
- action: ACTION.INSERTED,
206
- actionSubject: ACTION_SUBJECT.DOCUMENT,
207
- actionSubjectId: ACTION_SUBJECT_ID.TABLE,
208
- attributes: {
209
- inputMethod: inputMethod
210
- },
211
- eventType: EVENT_TYPE.TRACK
212
- })(createTable())(editorView.state, editorView.dispatch);
202
+ var insertNodeAPI = _this.props.insertNodeAPI;
203
+
204
+ if (!insertNodeAPI) {
205
+ return false;
206
+ }
207
+
208
+ return insertNodeAPI.insert({
209
+ node: 'table',
210
+ options: {
211
+ selectNodeInserted: false,
212
+ analyticsPayload: {
213
+ action: ACTION.INSERTED,
214
+ actionSubject: ACTION_SUBJECT.DOCUMENT,
215
+ actionSubjectId: ACTION_SUBJECT_ID.TABLE,
216
+ attributes: {
217
+ inputMethod: inputMethod
218
+ },
219
+ eventType: EVENT_TYPE.TRACK
220
+ }
221
+ }
222
+ });
213
223
  });
214
224
 
215
225
  _defineProperty(_assertThisInitialized(_this), "createDate", function (inputMethod) {
@@ -1,168 +1 @@
1
- import { defineMessages } from 'react-intl-next';
2
- export var messages = defineMessages({
3
- action: {
4
- id: 'fabric.editor.action',
5
- defaultMessage: 'Action item',
6
- description: 'Also known as a “task”, “to do item”, or a checklist'
7
- },
8
- actionDescription: {
9
- id: 'fabric.editor.action.description',
10
- defaultMessage: 'Create and assign action items',
11
- description: ''
12
- },
13
- link: {
14
- id: 'fabric.editor.link',
15
- defaultMessage: 'Link',
16
- description: 'Insert a hyperlink'
17
- },
18
- linkDescription: {
19
- id: 'fabric.editor.link.description',
20
- defaultMessage: 'Insert a link',
21
- description: 'Insert a hyperlink'
22
- },
23
- filesAndImages: {
24
- id: 'fabric.editor.filesAndImages',
25
- defaultMessage: 'Files & images',
26
- description: 'Insert one or more files or images'
27
- },
28
- filesAndImagesDescription: {
29
- id: 'fabric.editor.filesAndImages.description',
30
- defaultMessage: 'Add images and other files to your page',
31
- description: 'Insert one or more files or images'
32
- },
33
- image: {
34
- id: 'fabric.editor.image',
35
- defaultMessage: 'Image',
36
- description: 'Insert an image.'
37
- },
38
- mention: {
39
- id: 'fabric.editor.mention',
40
- defaultMessage: 'Mention',
41
- description: 'Reference another person in your document'
42
- },
43
- mentionDescription: {
44
- id: 'fabric.editor.mention.description',
45
- defaultMessage: 'Mention someone to send them a notification',
46
- description: 'Reference another person in your document'
47
- },
48
- emoji: {
49
- id: 'fabric.editor.emoji',
50
- defaultMessage: 'Emoji',
51
- description: 'Insert an emoticon or smiley :-)'
52
- },
53
- emojiDescription: {
54
- id: 'fabric.editor.emoji.description',
55
- defaultMessage: 'Use emojis to express ideas 🎉 and emotions 😄',
56
- description: 'Insert an emoticon or smiley :-)'
57
- },
58
- table: {
59
- id: 'fabric.editor.table',
60
- defaultMessage: 'Table',
61
- description: 'Inserts a table in the document'
62
- },
63
- tableDescription: {
64
- id: 'fabric.editor.table.description',
65
- defaultMessage: 'Insert a table',
66
- description: 'Inserts a table in the document'
67
- },
68
- expand: {
69
- id: 'fabric.editor.expand',
70
- defaultMessage: 'Expand',
71
- description: 'Inserts an expand in the document'
72
- },
73
- expandDescription: {
74
- id: 'fabric.editor.expand.description',
75
- defaultMessage: 'Insert an expand',
76
- description: 'Inserts an expand in the document'
77
- },
78
- decision: {
79
- id: 'fabric.editor.decision',
80
- defaultMessage: 'Decision',
81
- description: 'Capture a decision you’ve made'
82
- },
83
- decisionDescription: {
84
- id: 'fabric.editor.decision.description',
85
- defaultMessage: 'Capture decisions so they’re easy to track',
86
- description: 'Capture a decision you’ve made'
87
- },
88
- feedbackDialog: {
89
- id: 'fabric.editor.feedbackDialog',
90
- defaultMessage: 'Give feedback',
91
- description: 'Open the feedback dialog from editor'
92
- },
93
- feedbackDialogDescription: {
94
- id: 'fabric.editor.feedbackDialog.description',
95
- defaultMessage: 'Tell us about your experience using the new editor',
96
- description: 'Description for feedback option under quick insert dropdown'
97
- },
98
- horizontalRule: {
99
- id: 'fabric.editor.horizontalRule',
100
- defaultMessage: 'Divider',
101
- description: 'A horizontal rule or divider'
102
- },
103
- horizontalRuleDescription: {
104
- id: 'fabric.editor.horizontalRule.description',
105
- defaultMessage: 'Separate content with a horizontal line',
106
- description: 'A horizontal rule or divider'
107
- },
108
- date: {
109
- id: 'fabric.editor.date',
110
- defaultMessage: 'Date',
111
- description: 'Opens a date picker that lets you select a date'
112
- },
113
- dateDescription: {
114
- id: 'fabric.editor.date.description',
115
- defaultMessage: 'Add a date using a calendar',
116
- description: 'Opens a date picker that lets you select a date'
117
- },
118
- placeholderText: {
119
- id: 'fabric.editor.placeholderText',
120
- defaultMessage: 'Placeholder text',
121
- description: 'Inserts a text placeholder into the page'
122
- },
123
- placeholderTextDescription: {
124
- id: 'fabric.editor.placeholderText.description',
125
- defaultMessage: 'Insert a text placeholder into the page',
126
- description: 'Inserts a text placeholder into the page'
127
- },
128
- columns: {
129
- id: 'fabric.editor.columns',
130
- defaultMessage: 'Layouts',
131
- description: 'Create a multi column section or layout'
132
- },
133
- columnsDescription: {
134
- id: 'fabric.editor.columns.description',
135
- defaultMessage: 'Structure your page using sections',
136
- description: 'Create a multi column section or layout'
137
- },
138
- status: {
139
- id: 'fabric.editor.status',
140
- defaultMessage: 'Status',
141
- description: 'Inserts an item representing the status of an activity to task.'
142
- },
143
- statusDescription: {
144
- id: 'fabric.editor.status.description',
145
- defaultMessage: 'Add a custom status label',
146
- description: 'Inserts an item representing the status of an activity to task.'
147
- },
148
- viewMore: {
149
- id: 'fabric.editor.viewMore',
150
- defaultMessage: 'View more',
151
- description: ''
152
- },
153
- insertMenu: {
154
- id: 'fabric.editor.insertMenu',
155
- defaultMessage: 'Insert',
156
- description: 'Opens a menu of additional items that can be inserted into your document.'
157
- },
158
- help: {
159
- id: 'fabric.editor.help',
160
- defaultMessage: 'Help',
161
- description: 'Opens up the help dialog'
162
- },
163
- helpDescription: {
164
- id: 'fabric.editor.help.description',
165
- defaultMessage: 'Browse all the keyboard shortcuts and markdown options',
166
- description: 'Browse all the keyboard shortcuts and markdown options'
167
- }
168
- });
1
+ export { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
@@ -5,11 +5,10 @@ var _templateObject;
5
5
  import { css } from '@emotion/react';
6
6
  import { gridSize } from '@atlaskit/theme/constants';
7
7
  import { N40A, N50A } from '@atlaskit/theme/colors';
8
- import { columnLayoutSharedStyle } from '@atlaskit/editor-common/styles';
8
+ import { columnLayoutSharedStyle, LAYOUT_SECTION_MARGIN, LAYOUT_COLUMN_PADDING } from '@atlaskit/editor-common/styles';
9
9
  import { gridMediumMaxWidth, akEditorDeleteBackground, akEditorDeleteBorder, akEditorSelectedBorderSize, akLayoutGutterOffset, akEditorSwoopCubicBezier, SelectionStyle, getSelectionStyles, akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
10
10
  import { token } from '@atlaskit/tokens';
11
11
  import { TableCssClassName } from '../table/types';
12
12
  import { tableMarginFullWidthMode } from '../table/ui/consts';
13
- export var LAYOUT_SECTION_MARGIN = gridSize();
14
- export var LAYOUT_COLUMN_PADDING = gridSize() * 1.5;
13
+ export { LAYOUT_COLUMN_PADDING, LAYOUT_SECTION_MARGIN };
15
14
  export var layoutStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ProseMirror {\n ", " [data-layout-section] {\n margin: ", "px -", "px 0;\n transition: border-color 0.3s ", ";\n cursor: pointer;\n\n /* Inner cursor located 26px from left */\n [data-layout-column] {\n flex: 1;\n min-width: 0;\n // TODO: https://product-fabric.atlassian.net/browse/DSP-4353\n border: ", "px solid\n ", ";\n border-radius: 4px;\n padding: ", "px;\n box-sizing: border-box;\n\n > div {\n > :not(style):first-child,\n > style:first-child + * {\n margin-top: 0;\n }\n\n > .ProseMirror-gapcursor.-right:first-of-type + * {\n margin-top: 0;\n }\n\n > .ProseMirror-gapcursord:first-of-type + span + * {\n margin-top: 0;\n }\n\n .rich-media-item {\n margin-top: 0;\n }\n\n > .mediaSingleView-content-wrap:first-of-type .rich-media-item {\n margin-top: 0;\n }\n\n > .ProseMirror-gapcursor.-right:first-of-type\n + .mediaSingleView-content-wrap\n .rich-media-item {\n margin-top: 0;\n }\n\n > .ProseMirror-gapcursor:first-of-type\n + span\n + .mediaSingleView-content-wrap\n .rich-media-item {\n margin-top: 0;\n }\n\n /* Prevent first DecisionWrapper's margin-top: 8px from shifting decisions down\n and shrinking layout's node selectable area (leniency margin) */\n > [data-node-type='decisionList'] {\n li:first-of-type [data-decision-wrapper] {\n margin-top: 0;\n }\n }\n }\n\n /* Make the 'content' fill the entire height of the layout column to allow click\n handler of layout section nodeview to target only data-layout-column */\n [data-layout-content] {\n height: 100%;\n cursor: text;\n }\n }\n\n [data-layout-column] + [data-layout-column] {\n margin-left: ", "px;\n }\n\n @media screen and (max-width: ", "px) {\n [data-layout-column] + [data-layout-column] {\n margin-left: 0;\n }\n }\n\n // TODO: https://product-fabric.atlassian.net/browse/DSP-4441\n /* Shows the border when cursor is inside a layout */\n &.selected [data-layout-column],\n &:hover [data-layout-column] {\n border-color: ", ";\n }\n\n &.selected.danger > [data-layout-column] {\n background-color: ", ";\n border-color: ", ";\n }\n\n &.", ":not(.danger) {\n [data-layout-column] {\n ", "\n }\n }\n }\n }\n\n .fabric-editor--full-width-mode .ProseMirror {\n [data-layout-section] {\n .", " {\n margin: 0 ", "px;\n }\n }\n }\n"])), columnLayoutSharedStyle, gridSize() - 1, akLayoutGutterOffset, akEditorSwoopCubicBezier, akEditorSelectedBorderSize, token('color.border', N40A), LAYOUT_COLUMN_PADDING, LAYOUT_SECTION_MARGIN, gridMediumMaxWidth, token('color.border', N50A), token('color.background.danger', akEditorDeleteBackground), token('color.border.danger', akEditorDeleteBorder), akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Border, SelectionStyle.Blanket]), TableCssClassName.TABLE_CONTAINER, tableMarginFullWidthMode);
@@ -1,58 +1 @@
1
- import { Fragment, Slice } from 'prosemirror-model';
2
- import { flatmap, mapFragment } from '../../utils/slice';
3
-
4
- var isLayoutNode = function isLayoutNode(node) {
5
- return node.type === node.type.schema.nodes.layoutSection || node.type === node.type.schema.nodes.layoutColumn;
6
- };
7
-
8
- export function unwrapContentFromLayout(maybeLayoutSection) {
9
- var fragment = mapFragment(Fragment.from(maybeLayoutSection), function (node) {
10
- return isLayoutNode(node) ? node.content : node;
11
- });
12
- var nodes = [];
13
- fragment.forEach(function (i) {
14
- return nodes.push(i);
15
- });
16
- return nodes;
17
- }
18
- export function removeLayoutFromFirstChild(node, i) {
19
- return i === 0 ? unwrapContentFromLayout(node) : node;
20
- }
21
- export function removeLayoutFromLastChild(node, i, fragment) {
22
- return i === fragment.childCount - 1 ? unwrapContentFromLayout(node) : node;
23
- }
24
- /**
25
- * When we have a slice that cuts across a layoutSection/layoutColumn
26
- * we can end up with unexpected behaviour on paste/drop where a user
27
- * is able to add columns to a layoutSection. By 'lifting' any content
28
- * inside an 'open' layoutSection/layoutColumn to the top level, we
29
- * can ensure prevent this.
30
- *
31
- * We only care about slices with non-zero openStart / openEnd's here
32
- * as we're totally fine for people to copy/paste a full layoutSection
33
- */
34
-
35
- export function transformSliceToRemoveOpenLayoutNodes(slice, schema) {
36
- // Case 1: A slice entirely within a single layoutSection
37
- if (slice.openStart && slice.openEnd && slice.content.childCount === 1) {
38
- var maybeLayoutSection = slice.content.firstChild;
39
-
40
- if (maybeLayoutSection.type === schema.nodes.layoutSection) {
41
- return new Slice(flatmap(slice.content, removeLayoutFromFirstChild), // '-2' here because we've removed the layoutSection/layoutColumn; reducing the open depth.
42
- slice.openStart - 2, slice.openEnd - 2);
43
- }
44
- } // Case 2: A slice starting inside a layoutSection and finishing outside
45
-
46
-
47
- if (slice.openStart && slice.content.firstChild.type === schema.nodes.layoutSection) {
48
- slice = new Slice(flatmap(slice.content, removeLayoutFromFirstChild), slice.openStart - 2, slice.openEnd);
49
- } // Case 3: A slice starting outside a layoutSection and finishing inside
50
-
51
-
52
- if (slice.openEnd && slice.content.lastChild.type === schema.nodes.layoutSection) {
53
- slice = new Slice(flatmap(slice.content, removeLayoutFromLastChild), slice.openStart, slice.openEnd - 2);
54
- } // Case 2 & 3 also handles a slice starting in one layoutSection & finishing in a different layoutSection
55
-
56
-
57
- return slice;
58
- }
1
+ export { unwrapContentFromLayout, removeLayoutFromFirstChild, removeLayoutFromLastChild, transformSliceToRemoveOpenLayoutNodes } from '@atlaskit/editor-common/transforms';
@@ -251,6 +251,16 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
251
251
  width: width
252
252
  }));
253
253
  tr.setMeta('scrollIntoView', false);
254
+ /**
255
+ * Any changes to attributes of a node count the node as "recreated" in Prosemirror[1]
256
+ * This makes it so Prosemirror resets the selection to the child i.e. "media" instead of "media-single"
257
+ * The recommended fix is to reset the selection.[2]
258
+ *
259
+ * [1] https://discuss.prosemirror.net/t/setnodemarkup-loses-current-nodeselection/976
260
+ * [2] https://discuss.prosemirror.net/t/setnodemarkup-and-deselect/3673
261
+ */
262
+
263
+ tr.setSelection(NodeSelection.create(tr.doc, pos));
254
264
  return dispatch(tr);
255
265
  });
256
266
 
@@ -16,6 +16,7 @@ import { closeHistory } from 'prosemirror-history';
16
16
  import { Fragment, Node as PMNode, Slice } from 'prosemirror-model';
17
17
  import { TextSelection, NodeSelection } from 'prosemirror-state';
18
18
  import { findParentNodeOfType, hasParentNodeOfType, safeInsert } from 'prosemirror-utils';
19
+ import { replaceSelectedTable } from '@atlaskit/editor-tables/utils';
19
20
  import { compose, insideTable, isParagraph, isText, isLinkMark, insideTableCell } from '../../utils';
20
21
  import { mapSlice } from '../../utils/slice';
21
22
  import { INPUT_METHOD } from '../analytics';
@@ -25,8 +26,7 @@ import { linkifyContent } from '../hyperlink/utils';
25
26
  import { runMacroAutoConvert } from '../macro';
26
27
  import { insertMediaAsMediaSingle } from '../media/utils/media-single';
27
28
  import { pluginKey as textFormattingPluginKey } from '../text-formatting/pm-plugins/main';
28
- import { replaceSelectedTable } from '../table/transforms/replace-table';
29
- import { applyTextMarksToSlice, hasOnlyNodesOfType } from './util';
29
+ import { addReplaceSelectedTableAnalytics, applyTextMarksToSlice, hasOnlyNodesOfType } from './util';
30
30
  import { isListNode, isListItemNode } from '../list/utils/node';
31
31
  import { canLinkBeCreatedInRange } from '../hyperlink/pm-plugins/main';
32
32
  import { insertSliceForLists } from './edge-cases'; // remove text attribute from mention for copy/paste (GDPR)
@@ -192,7 +192,9 @@ export function handlePasteAsPlainText(slice, _event) {
192
192
  selection = _tr.selection; // <- using the same internal flag that prosemirror-view is using
193
193
  // if user has selected table we need custom logic to replace the table
194
194
 
195
- tr = replaceSelectedTable(state, slice, INPUT_METHOD.CLIPBOARD); // otherwise just replace the selection
195
+ tr = replaceSelectedTable(state, slice); // add analytics after replacing selected table
196
+
197
+ tr = addReplaceSelectedTableAnalytics(state, tr); // otherwise just replace the selection
196
198
 
197
199
  if (!tr.docChanged) {
198
200
  tr.replaceSelection(slice);
@@ -781,7 +783,9 @@ export function handlePasteIntoCaption(slice) {
781
783
  }
782
784
  export var handleSelectedTable = function handleSelectedTable(slice) {
783
785
  return function (state, dispatch) {
784
- var tr = replaceSelectedTable(state, slice, INPUT_METHOD.CLIPBOARD);
786
+ var tr = replaceSelectedTable(state, slice); // add analytics after replacing selected table
787
+
788
+ tr = addReplaceSelectedTableAnalytics(state, tr);
785
789
 
786
790
  if (tr.docChanged) {
787
791
  if (dispatch) {
@@ -1,8 +1,10 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import { Slice, Mark } from 'prosemirror-model';
3
3
  import { isMediaBlobUrl } from '@atlaskit/media-client';
4
+ import { ACTION_SUBJECT, addAnalytics, EVENT_TYPE, INPUT_METHOD, TABLE_ACTION } from '../../analytics';
4
5
  import { TextSelection, NodeSelection } from 'prosemirror-state';
5
6
  import { findParentNodeOfType } from 'prosemirror-utils';
7
+ import { getSelectedTableInfo, isTableSelected } from '@atlaskit/editor-tables/utils';
6
8
  export function isPastedFromWord(html) {
7
9
  return !!html && html.indexOf('urn:schemas-microsoft-com:office:word') >= 0;
8
10
  }
@@ -197,4 +199,25 @@ export var removeDuplicateInvalidLinks = function removeDuplicateInvalidLinks(ht
197
199
  }
198
200
 
199
201
  return html;
202
+ };
203
+ export var addReplaceSelectedTableAnalytics = function addReplaceSelectedTableAnalytics(state, tr) {
204
+ if (isTableSelected(state.selection)) {
205
+ var _getSelectedTableInfo = getSelectedTableInfo(state.selection),
206
+ totalRowCount = _getSelectedTableInfo.totalRowCount,
207
+ totalColumnCount = _getSelectedTableInfo.totalColumnCount;
208
+
209
+ addAnalytics(state, tr, {
210
+ action: TABLE_ACTION.REPLACED,
211
+ actionSubject: ACTION_SUBJECT.TABLE,
212
+ attributes: {
213
+ totalColumnCount: totalColumnCount,
214
+ totalRowCount: totalRowCount,
215
+ inputMethod: INPUT_METHOD.CLIPBOARD
216
+ },
217
+ eventType: EVENT_TYPE.TRACK
218
+ });
219
+ return tr;
220
+ }
221
+
222
+ return state.tr;
200
223
  };
@@ -1,176 +1 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
-
9
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
-
11
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
-
13
- import { Selection } from 'prosemirror-state';
14
- import { Slice } from 'prosemirror-model';
15
- import { isValidTargetNode } from './utils/is-valid-target-node';
16
- export var Side;
17
-
18
- (function (Side) {
19
- Side["LEFT"] = "left";
20
- Side["RIGHT"] = "right";
21
- })(Side || (Side = {}));
22
-
23
- export var JSON_ID = 'gapcursor';
24
- export var GapCursorSelection = /*#__PURE__*/function (_Selection) {
25
- _inherits(GapCursorSelection, _Selection);
26
-
27
- var _super = _createSuper(GapCursorSelection);
28
-
29
- /**
30
- * Construct a GapCursorSelection
31
- * @param {ResolvedPos} $pos resolved position
32
- * @param {Side} side side where the gap cursor is drawn
33
- */
34
- function GapCursorSelection($pos) {
35
- var _this;
36
-
37
- var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Side.LEFT;
38
-
39
- _classCallCheck(this, GapCursorSelection);
40
-
41
- _this = _super.call(this, $pos, $pos);
42
-
43
- _defineProperty(_assertThisInitialized(_this), "visible", false);
44
-
45
- _this.side = side;
46
- return _this;
47
- }
48
-
49
- _createClass(GapCursorSelection, [{
50
- key: "map",
51
- value: function map(doc, mapping) {
52
- var $pos = doc.resolve(mapping.map(this.head));
53
- return GapCursorSelection.valid($pos) ? new GapCursorSelection($pos, this.side) : Selection.near($pos);
54
- }
55
- }, {
56
- key: "eq",
57
- value: function eq(other) {
58
- return other instanceof GapCursorSelection && other.head === this.head;
59
- }
60
- }, {
61
- key: "content",
62
- value: function content() {
63
- return Slice.empty;
64
- }
65
- }, {
66
- key: "getBookmark",
67
- value: function getBookmark() {
68
- return new GapBookmark(this.anchor);
69
- }
70
- }, {
71
- key: "toJSON",
72
- value: function toJSON() {
73
- return {
74
- pos: this.head,
75
- type: JSON_ID,
76
- side: this.side
77
- };
78
- }
79
- }], [{
80
- key: "valid",
81
- value: function valid($pos) {
82
- var parent = $pos.parent,
83
- nodeBefore = $pos.nodeBefore,
84
- nodeAfter = $pos.nodeAfter;
85
- var targetNode = isValidTargetNode(nodeBefore) ? nodeBefore : isValidTargetNode(nodeAfter) ? nodeAfter : null;
86
-
87
- if (!targetNode || parent.isTextblock) {
88
- return false;
89
- }
90
-
91
- var deflt = parent.contentMatchAt($pos.index()).defaultType;
92
- return deflt && deflt.isTextblock;
93
- }
94
- }, {
95
- key: "findFrom",
96
- value: function findFrom($pos, dir) {
97
- var mustMove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
98
- var side = dir === 1 ? Side.RIGHT : Side.LEFT;
99
-
100
- if (!mustMove && GapCursorSelection.valid($pos)) {
101
- return new GapCursorSelection($pos, side);
102
- }
103
-
104
- var pos = $pos.pos; // TODO: Fix any, potential issue. ED-5048
105
-
106
- var next = null; // Scan up from this position
107
-
108
- for (var d = $pos.depth;; d--) {
109
- var parent = $pos.node(d);
110
-
111
- if (side === Side.RIGHT ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {
112
- next = parent.maybeChild(side === Side.RIGHT ? $pos.indexAfter(d) : $pos.index(d) - 1);
113
- break;
114
- } else if (d === 0) {
115
- return null;
116
- }
117
-
118
- pos += dir;
119
- var $cur = $pos.doc.resolve(pos);
120
-
121
- if (GapCursorSelection.valid($cur)) {
122
- return new GapCursorSelection($cur, side);
123
- }
124
- } // And then down into the next node
125
-
126
-
127
- for (;;) {
128
- next = side === Side.RIGHT ? next.firstChild : next.lastChild;
129
-
130
- if (next === null) {
131
- break;
132
- }
133
-
134
- pos += dir;
135
-
136
- var _$cur = $pos.doc.resolve(pos);
137
-
138
- if (GapCursorSelection.valid(_$cur)) {
139
- return new GapCursorSelection(_$cur, side);
140
- }
141
- }
142
-
143
- return null;
144
- }
145
- }, {
146
- key: "fromJSON",
147
- value: function fromJSON(doc, json) {
148
- return new GapCursorSelection(doc.resolve(json.pos), json.side);
149
- }
150
- }]);
151
-
152
- return GapCursorSelection;
153
- }(Selection);
154
- Selection.jsonID(JSON_ID, GapCursorSelection);
155
- export var GapBookmark = /*#__PURE__*/function () {
156
- function GapBookmark(pos) {
157
- _classCallCheck(this, GapBookmark);
158
-
159
- this.pos = pos;
160
- }
161
-
162
- _createClass(GapBookmark, [{
163
- key: "map",
164
- value: function map(mapping) {
165
- return new GapBookmark(mapping.map(this.pos));
166
- }
167
- }, {
168
- key: "resolve",
169
- value: function resolve(doc) {
170
- var $pos = doc.resolve(this.pos);
171
- return GapCursorSelection.valid($pos) ? new GapCursorSelection($pos) : Selection.near($pos);
172
- }
173
- }]);
174
-
175
- return GapBookmark;
176
- }();
1
+ export { GapCursorSelection, JSON_ID, Side, GapBookmark } from '@atlaskit/editor-common/selection';
@@ -1,5 +1 @@
1
- // we don't show gap cursor for those nodes
2
- var IGNORED_NODES = ['paragraph', 'bulletList', 'orderedList', 'listItem', 'taskItem', 'decisionItem', 'heading', 'blockquote', 'layoutColumn', 'caption', 'media'];
3
- export var isIgnored = function isIgnored(node) {
4
- return !!node && IGNORED_NODES.indexOf(node.type.name) !== -1;
5
- };
1
+ export { isIgnored } from '@atlaskit/editor-common/selection';
@@ -1,4 +1 @@
1
- import { isIgnored } from './is-ignored';
2
- export var isValidTargetNode = function isValidTargetNode(node) {
3
- return !!node && !isIgnored(node);
4
- };
1
+ export { isValidTargetNode } from '@atlaskit/editor-common/selection';