@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
@@ -1,107 +1 @@
1
- /**
2
- * Creates a ProseMirror plugin's state and handles UI updates.
3
- *
4
- * Here's a few things to keep in mind:
5
- * - plugin's state is stored as a single object
6
- * - `Reducer` specifies how plugin's state changes in response to commands
7
- * - `Command` describes only what happen, but not how state changes
8
- * - `mapping` could be used to map ProseMirror positions stored in plugin's state
9
- *
10
- * Example:
11
- * const { createPluginState, createCommand, getPluginState } = pluginFactory(
12
- * reducer,
13
- * pluginKey
14
- * );
15
- *
16
- * export const createPlugin = (dispatch: Dispatch, initialState) =>
17
- * new SafePlugin({
18
- * state: createPluginState(dispatch, initialState),
19
- * key: pluginKey
20
- * });
21
- *
22
- * Example of a reducer:
23
- *
24
- * export const reducer = (
25
- * state: TablePluginState,
26
- * action: TableAction,
27
- * ): TablePluginState => {
28
- * switch (action.type) {
29
- * case 'TOGGLE_CONTEXTUAL_MENU':
30
- * return {
31
- * ...state,
32
- * isContextualMenuOpen: !state.isContextualMenuOpen,
33
- * };
34
- * default:
35
- * return state;
36
- * }
37
- * };
38
- *
39
- *
40
- * Example of a command:
41
- *
42
- * export const toggleContextualMenu = createCommand({
43
- * type: 'TOGGLE_CONTEXTUAL_MENU',
44
- * }, tr => tr.setMeta('addToHistory', false));
45
- *
46
- */
47
- function isFunction(x) {
48
- return typeof x === 'function';
49
- }
50
-
51
- export function pluginFactory(pluginKey, reducer, options = {}) {
52
- const {
53
- mapping,
54
- onDocChanged,
55
- onSelectionChanged
56
- } = options;
57
- return {
58
- createPluginState(dispatch, initialState) {
59
- return {
60
- init: (_, state) => isFunction(initialState) ? initialState(state) : initialState,
61
- apply: (tr, _pluginState) => {
62
- const oldState = mapping ? mapping(tr, _pluginState) : _pluginState;
63
- let newState = oldState;
64
- const meta = tr.getMeta(pluginKey);
65
-
66
- if (meta) {
67
- newState = reducer(oldState, meta);
68
- }
69
-
70
- if (onDocChanged && tr.docChanged) {
71
- newState = onDocChanged(tr, newState);
72
- } else if (onSelectionChanged && tr.selectionSet) {
73
- newState = onSelectionChanged(tr, newState);
74
- }
75
-
76
- if (newState !== oldState) {
77
- dispatch(pluginKey, newState);
78
- }
79
-
80
- return newState;
81
- }
82
- };
83
- },
84
-
85
- createCommand(action, transform) {
86
- return (state, dispatch) => {
87
- if (dispatch) {
88
- const tr = transform ? transform(state.tr, state) : state.tr;
89
- const resolvedAction = isFunction(action) ? action(state) : action;
90
-
91
- if (tr && resolvedAction) {
92
- dispatch(tr.setMeta(pluginKey, resolvedAction));
93
- } else {
94
- return false;
95
- }
96
- }
97
-
98
- return true;
99
- };
100
- },
101
-
102
- getPluginState(state) {
103
- return pluginKey.getState(state);
104
- }
105
-
106
- };
107
- }
1
+ export { pluginFactory } from '@atlaskit/editor-common/utils';
@@ -1,19 +1,7 @@
1
1
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
2
2
  import { NodeSelection, TextSelection, AllSelection } from 'prosemirror-state';
3
- import { GapCursorSelection } from '../plugins/selection/gap-cursor/selection';
4
- export const setNodeSelection = (view, pos) => {
5
- const {
6
- state,
7
- dispatch
8
- } = view;
9
-
10
- if (!isFinite(pos)) {
11
- return;
12
- }
13
-
14
- const tr = state.tr.setSelection(NodeSelection.create(state.doc, pos));
15
- dispatch(tr);
16
- };
3
+ import { GapCursorSelection } from '@atlaskit/editor-common/selection';
4
+ export { setNodeSelection } from '@atlaskit/editor-common/utils';
17
5
  export function setTextSelection(view, anchor, head) {
18
6
  const {
19
7
  state,
@@ -65,44 +53,6 @@ export const normaliseNestedLayout = ({
65
53
  }
66
54
 
67
55
  return node;
68
- };
69
- export const isSelectionAtStartOfNode = ($pos, parentNode) => {
70
- if (!parentNode) {
71
- return false;
72
- }
73
-
74
- for (let i = $pos.depth + 1; i > 0; i--) {
75
- const node = $pos.node(i);
76
-
77
- if (node && node.eq(parentNode.node)) {
78
- break;
79
- }
80
-
81
- if (i > 1 && $pos.before(i) !== $pos.before(i - 1) + 1) {
82
- return false;
83
- }
84
- }
85
-
86
- return true;
87
- };
88
- export const isSelectionAtEndOfNode = ($pos, parentNode) => {
89
- if (!parentNode) {
90
- return false;
91
- }
92
-
93
- for (let i = $pos.depth + 1; i > 0; i--) {
94
- const node = $pos.node(i);
95
-
96
- if (node && node.eq(parentNode.node)) {
97
- break;
98
- }
99
-
100
- if (i > 1 && $pos.after(i) !== $pos.after(i - 1) - 1) {
101
- return false;
102
- }
103
- }
104
-
105
- return true;
106
56
  }; // checks if the given position is within the ProseMirror document
107
57
 
108
58
  export const isValidPosition = (pos, state) => {
@@ -1,56 +1 @@
1
- import { Fragment, Slice } from 'prosemirror-model';
2
- /**
3
- * A helper to get the underlying array of a fragment.
4
- */
5
-
6
- export function getFragmentBackingArray(fragment) {
7
- return fragment.content;
8
- }
9
- export function mapFragment(content, callback, parent = null) {
10
- const children = [];
11
-
12
- for (let i = 0, size = content.childCount; i < size; i++) {
13
- const node = content.child(i);
14
- const transformed = node.isLeaf ? callback(node, parent, i) : callback(node.copy(mapFragment(node.content, callback, node)), parent, i);
15
-
16
- if (transformed) {
17
- if (transformed instanceof Fragment) {
18
- children.push(...getFragmentBackingArray(transformed));
19
- } else if (Array.isArray(transformed)) {
20
- children.push(...transformed);
21
- } else {
22
- children.push(transformed);
23
- }
24
- }
25
- }
26
-
27
- return Fragment.fromArray(children);
28
- }
29
- export function mapSlice(slice, callback) {
30
- const fragment = mapFragment(slice.content, callback);
31
- return new Slice(fragment, slice.openStart, slice.openEnd);
32
- }
33
- export function flatmap(fragment, callback) {
34
- const fragmentContent = [];
35
-
36
- for (let i = 0; i < fragment.childCount; i++) {
37
- const child = callback(fragment.child(i), i, fragment);
38
-
39
- if (Array.isArray(child)) {
40
- fragmentContent.push(...child);
41
- } else {
42
- fragmentContent.push(child);
43
- }
44
- }
45
-
46
- return Fragment.fromArray(fragmentContent);
47
- }
48
- export function mapChildren(node, callback) {
49
- const array = [];
50
-
51
- for (let i = 0; i < node.childCount; i++) {
52
- array.push(callback(node.child(i), i, node instanceof Fragment ? node : node.content));
53
- }
54
-
55
- return array;
56
- }
1
+ export { getFragmentBackingArray, mapFragment, mapSlice, flatmap, mapChildren } from '@atlaskit/editor-common/utils';
@@ -1,35 +1 @@
1
- import { ReplaceAroundStep, ReplaceStep } from 'prosemirror-transform';
2
- export const stepHasSlice = step => step && step.hasOwnProperty('slice');
3
- /**
4
- * Checks whether a given step is adding nodes of given nodeTypes
5
- *
6
- * @param step Step to check
7
- * @param nodeTypes NodeTypes being added
8
- */
9
-
10
- export function stepAddsOneOf(step, nodeTypes) {
11
- let adds = false;
12
-
13
- if (!stepHasSlice(step)) {
14
- return adds;
15
- }
16
-
17
- step.slice.content.descendants(node => {
18
- if (nodeTypes.has(node.type)) {
19
- adds = true;
20
- }
21
-
22
- return !adds;
23
- });
24
- return adds;
25
- }
26
- export const extractSliceFromStep = step => {
27
- if (!(step instanceof ReplaceStep) && !(step instanceof ReplaceAroundStep)) {
28
- return null;
29
- } // @ts-ignore This is by design. Slice is a private property, but accesible, from ReplaceStep.
30
- // However, we need to read it to found if the step was adding a newline
31
-
32
-
33
- const slice = step.slice;
34
- return slice;
35
- };
1
+ export { stepHasSlice, stepAddsOneOf, extractSliceFromStep } from '@atlaskit/editor-common/utils';
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "172.1.2";
2
+ export const version = "172.2.0";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "172.1.2",
3
+ "version": "172.2.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,27 @@
1
+ import { FabricChannel } from '@atlaskit/analytics-listeners';
2
+ import { attachPayloadIntoTransaction } from './attach-payload-into-transaction';
3
+ export var createEditorAnalyticsAPI = function createEditorAnalyticsAPI(_ref) {
4
+ var getEditorView = _ref.getEditorView,
5
+ getCreateUIAnalyticsEvent = _ref.getCreateUIAnalyticsEvent;
6
+ return {
7
+ attachAnalyticsEvent: function attachAnalyticsEvent(payload) {
8
+ return function (tr) {
9
+ var createAnalyticsEvent = getCreateUIAnalyticsEvent();
10
+ var editorView = getEditorView();
11
+
12
+ if (!tr || !createAnalyticsEvent || !editorView) {
13
+ return false;
14
+ }
15
+
16
+ var editorState = editorView.state;
17
+ attachPayloadIntoTransaction({
18
+ tr: tr,
19
+ editorState: editorState,
20
+ payload: payload,
21
+ channel: FabricChannel.editor
22
+ });
23
+ return true;
24
+ };
25
+ }
26
+ };
27
+ };
@@ -0,0 +1,22 @@
1
+ import { getStateContext } from './editor-state-context';
2
+ import { mapActionSubjectIdToAttributes } from './map-attributes';
3
+ import { AnalyticsStep } from '@atlaskit/adf-schema/steps';
4
+ import { ACTION } from '@atlaskit/editor-common/analytics';
5
+ var actionsToIgnore = [ACTION.INVOKED, ACTION.OPENED];
6
+ export var attachPayloadIntoTransaction = function attachPayloadIntoTransaction(_ref) {
7
+ var payload = _ref.payload,
8
+ editorState = _ref.editorState,
9
+ tr = _ref.tr,
10
+ channel = _ref.channel;
11
+ payload = getStateContext(editorState, payload);
12
+ payload = mapActionSubjectIdToAttributes(payload);
13
+ var storedMarks = tr.storedMarks;
14
+ tr.step(new AnalyticsStep([{
15
+ payload: payload,
16
+ channel: channel
17
+ }], actionsToIgnore, tr.selection.$from.pos)); // When you add a new step all the storedMarks are removed it
18
+
19
+ if (storedMarks) {
20
+ tr.setStoredMarks(storedMarks);
21
+ }
22
+ };
@@ -0,0 +1,81 @@
1
+ import { ACTION, ACTION_SUBJECT, SELECTION_TYPE, SELECTION_POSITION } from '@atlaskit/editor-common/analytics';
2
+ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
3
+ import { findParentNode } from 'prosemirror-utils';
4
+ import { NodeSelection } from 'prosemirror-state';
5
+ export function getSelectionType(state) {
6
+ var _selection$constructo;
7
+
8
+ var selection = state.selection;
9
+ var type;
10
+ var position;
11
+
12
+ if ((selection === null || selection === void 0 ? void 0 : (_selection$constructo = selection.constructor) === null || _selection$constructo === void 0 ? void 0 : _selection$constructo.name) === 'GapCursorSelection') {
13
+ type = SELECTION_TYPE.GAP_CURSOR;
14
+ position = selection.side;
15
+ } else if (selection instanceof CellSelection) {
16
+ type = SELECTION_TYPE.CELL;
17
+ } else if (selection instanceof NodeSelection) {
18
+ type = SELECTION_TYPE.NODE;
19
+ } else if (selection.from !== selection.to) {
20
+ type = SELECTION_TYPE.RANGED;
21
+ } else {
22
+ type = SELECTION_TYPE.CURSOR;
23
+ var from = selection.from,
24
+ $from = selection.$from;
25
+
26
+ if (from === $from.start()) {
27
+ position = SELECTION_POSITION.START;
28
+ } else if (from === $from.end()) {
29
+ position = SELECTION_POSITION.END;
30
+ } else {
31
+ position = SELECTION_POSITION.MIDDLE;
32
+ }
33
+ }
34
+
35
+ return {
36
+ type: type,
37
+ position: position
38
+ };
39
+ }
40
+ export function findInsertLocation(state) {
41
+ var selection = state.selection;
42
+
43
+ if (selection instanceof NodeSelection) {
44
+ return selection.node.type.name;
45
+ }
46
+
47
+ if (selection instanceof CellSelection) {
48
+ return state.schema.nodes.table.name;
49
+ } // Text selection
50
+
51
+
52
+ var parentNodeInfo = findParentNode(function (node) {
53
+ return node.type !== state.schema.nodes.paragraph;
54
+ })(state.selection);
55
+ return parentNodeInfo ? parentNodeInfo.node.type.name : state.doc.type.name;
56
+ }
57
+ export function getStateContext(state, payload) {
58
+ if (!payload.attributes) {
59
+ return payload;
60
+ }
61
+
62
+ var _getSelectionType = getSelectionType(state),
63
+ type = _getSelectionType.type,
64
+ position = _getSelectionType.position;
65
+
66
+ payload.attributes.selectionType = type;
67
+
68
+ if (position) {
69
+ payload.attributes.selectionPosition = position;
70
+ }
71
+
72
+ var insertLocation = findInsertLocation(state);
73
+
74
+ if (payload.action === ACTION.INSERTED && payload.actionSubject === ACTION_SUBJECT.DOCUMENT && payload.attributes) {
75
+ payload.attributes.insertLocation = insertLocation;
76
+ } else {
77
+ payload.attributes.nodeLocation = insertLocation;
78
+ }
79
+
80
+ return payload;
81
+ }
@@ -0,0 +1,20 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ 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; }
6
+
7
+ import { ACTION, ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
8
+ export function mapActionSubjectIdToAttributes(payload) {
9
+ var documentInserted = payload.action === ACTION.INSERTED && payload.actionSubject === ACTION_SUBJECT.DOCUMENT;
10
+ var textFormatted = payload.action === ACTION.FORMATTED && payload.actionSubject === ACTION_SUBJECT.TEXT;
11
+ var hasActionSubjectId = !!payload.actionSubjectId;
12
+
13
+ if (hasActionSubjectId && (documentInserted || textFormatted)) {
14
+ payload.attributes = _objectSpread(_objectSpread({}, payload.attributes), {}, {
15
+ actionSubjectId: payload.actionSubjectId
16
+ });
17
+ }
18
+
19
+ return payload;
20
+ }
@@ -47,6 +47,10 @@ import { EVENT_NAME_DISPATCH_TRANSACTION, EVENT_NAME_STATE_APPLY, EVENT_NAME_UPD
47
47
  import { PROSEMIRROR_RENDERED_NORMAL_SEVERITY_THRESHOLD, PROSEMIRROR_RENDERED_DEGRADED_SEVERITY_THRESHOLD, DEFAULT_SAMPLING_RATE_VALID_TRANSACTIONS } from './consts';
48
48
  import { getContextIdentifier } from '../plugins/base/pm-plugins/context-identifier';
49
49
  import ReactEditorViewContext from './ReactEditorViewContext';
50
+ import { pluginKey as widthPluginKey } from '../plugins/width';
51
+ import { createInsertNodeAPI } from '../insert-api/api';
52
+ import { createEditorAnalyticsAPI } from '../analytics-api/api';
53
+ import { createEditorSelectionAPI } from '../selection-api/api';
50
54
 
51
55
  function handleEditorFocus(view) {
52
56
  if (view.hasFocus()) {
@@ -174,7 +178,9 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
174
178
 
175
179
  _this.blur();
176
180
 
177
- _this.config = processPluginsList(_this.getPlugins(props.editorProps, _this.props.editorProps, _this.props.createAnalyticsEvent));
181
+ var editorPlugins = _this.getPlugins(props.editorProps, _this.props.editorProps, _this.props.createAnalyticsEvent);
182
+
183
+ _this.config = processPluginsList(editorPlugins);
178
184
  var state = _this.editorState;
179
185
  var plugins = createPMPlugins({
180
186
  schema: state.schema,
@@ -215,6 +221,8 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
215
221
  fireAnalyticsEvent(_this.props.createAnalyticsEvent)(payload);
216
222
  });
217
223
 
224
+ _defineProperty(_assertThisInitialized(_this), "editorPlugins", []);
225
+
218
226
  _defineProperty(_assertThisInitialized(_this), "createEditorState", function (options) {
219
227
  var schema;
220
228
 
@@ -799,20 +807,50 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
799
807
  }
800
808
 
801
809
  this.eventDispatcher.destroy(); // this.view will be destroyed when React unmounts in handleEditorViewRef
802
- } // Helper to allow tests to inject plugins directly
803
-
810
+ }
804
811
  }, {
805
812
  key: "getPlugins",
806
- value: function getPlugins(editorProps, prevEditorProps, createAnalyticsEvent) {
807
- var _editorProps$dangerou, _editorProps$dangerou2;
813
+ value: // Helper to allow tests to inject plugins directly
814
+ function getPlugins(editorProps, prevEditorProps, createAnalyticsEvent) {
815
+ var _editorProps$dangerou,
816
+ _editorProps$dangerou2,
817
+ _this2 = this;
808
818
 
809
819
  var editorPlugins = (_editorProps$dangerou = (_editorProps$dangerou2 = editorProps.dangerouslyAppendPlugins) === null || _editorProps$dangerou2 === void 0 ? void 0 : _editorProps$dangerou2.__plugins) !== null && _editorProps$dangerou !== void 0 ? _editorProps$dangerou : [];
810
- var builtinPlugins = createPluginList(editorProps, prevEditorProps, createAnalyticsEvent);
820
+ var insertNodeAPI = createInsertNodeAPI({
821
+ getEditorView: function getEditorView() {
822
+ return _this2.view;
823
+ },
824
+ getEditorPlugins: function getEditorPlugins() {
825
+ return _this2.editorPlugins;
826
+ }
827
+ });
828
+ var editorAnalyticsAPI = createEditorAnalyticsAPI({
829
+ getEditorView: function getEditorView() {
830
+ return _this2.view;
831
+ },
832
+ getCreateUIAnalyticsEvent: function getCreateUIAnalyticsEvent() {
833
+ return createAnalyticsEvent;
834
+ }
835
+ });
836
+ var editorSelectionAPI = createEditorSelectionAPI();
837
+
838
+ var getEditorContainerWidth = function getEditorContainerWidth() {
839
+ if (!_this2.view) {
840
+ return null;
841
+ }
842
+
843
+ var state = _this2.view.state;
844
+ return widthPluginKey.getState(state) || null;
845
+ };
846
+
847
+ var builtinPlugins = createPluginList(editorProps, prevEditorProps, createAnalyticsEvent, insertNodeAPI, editorAnalyticsAPI, editorSelectionAPI, getEditorContainerWidth);
811
848
 
812
849
  if (editorPlugins && editorPlugins.length > 0) {
813
850
  builtinPlugins.push.apply(builtinPlugins, _toConsumableArray(editorPlugins));
814
851
  }
815
852
 
853
+ this.editorPlugins = builtinPlugins;
816
854
  return builtinPlugins;
817
855
  }
818
856
  }, {
@@ -1,3 +1,2 @@
1
- import React from 'react';
2
- var ReactEditorViewContext = /*#__PURE__*/React.createContext({});
1
+ import { ReactEditorViewContext } from '@atlaskit/editor-common/ui-react';
3
2
  export default ReactEditorViewContext;
@@ -5,7 +5,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
 
6
6
  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; }
7
7
 
8
- import { breakoutPlugin, collabEditPlugin, dataConsumerMarkPlugin, datePlugin, emojiPlugin, extensionPlugin, fragmentMarkPlugin, helpDialogPlugin, imageUploadPlugin, insertBlockPlugin, jiraIssuePlugin, layoutPlugin, listPlugin, toolbarListsIndentationPlugin, macroPlugin, maxContentSizePlugin, mediaPlugin, mentionsPlugin, panelPlugin, placeholderTextPlugin, rulePlugin, saveOnEnterPlugin, tablesPlugin, tasksAndDecisionsPlugin, textColorPlugin, cardPlugin, gridPlugin, statusPlugin, alignmentPlugin, indentationPlugin, analyticsPlugin, customAutoformatPlugin, feedbackDialogPlugin, historyPlugin, expandPlugin, isExpandInsertionEnabled, scrollIntoViewPlugin, mobileDimensionsPlugin, findReplacePlugin, contextPanelPlugin, mobileSelectionPlugin, annotationPlugin, captionPlugin, avatarGroupPlugin, viewUpdateSubscriptionPlugin, beforePrimaryToolbarPlugin, codeBidiWarningPlugin, copyButtonPlugin } from '../plugins';
8
+ import { breakoutPlugin, collabEditPlugin, dataConsumerMarkPlugin, datePlugin, emojiPlugin, extensionPlugin, fragmentMarkPlugin, helpDialogPlugin, imageUploadPlugin, insertBlockPlugin, jiraIssuePlugin, layoutPlugin, listPlugin, toolbarListsIndentationPlugin, macroPlugin, maxContentSizePlugin, mediaPlugin, mentionsPlugin, panelPlugin, placeholderTextPlugin, rulePlugin, saveOnEnterPlugin, // tablesPlugin,
9
+ tablesPlugin, tasksAndDecisionsPlugin, textColorPlugin, cardPlugin, gridPlugin, statusPlugin, alignmentPlugin, indentationPlugin, analyticsPlugin, customAutoformatPlugin, feedbackDialogPlugin, historyPlugin, expandPlugin, isExpandInsertionEnabled, scrollIntoViewPlugin, mobileDimensionsPlugin, findReplacePlugin, contextPanelPlugin, mobileSelectionPlugin, annotationPlugin, captionPlugin, avatarGroupPlugin, viewUpdateSubscriptionPlugin, beforePrimaryToolbarPlugin, codeBidiWarningPlugin, copyButtonPlugin } from '../plugins'; // import { tablesPlugin } from '@atlaskit/editor-plugin-table';
10
+
9
11
  import { isFullPage as fullPageCheck } from '../utils/is-full-page';
10
12
  import { GUTTER_SIZE_MOBILE_IN_PX } from '../plugins/base/pm-plugins/scroll-gutter';
11
13
  import { createFeatureFlagsFromProps } from '../plugins/feature-flags-context/feature-flags-from-props';
@@ -116,7 +118,7 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
116
118
  * their placement in the editor toolbar
117
119
  */
118
120
 
119
- export default function createPluginsList(props, prevProps, createAnalyticsEvent) {
121
+ export default function createPluginsList(props, prevProps, createAnalyticsEvent, insertNodeAPI, editorAnalyticsAPI, editorSelectionAPI, getEditorContainerWidth) {
120
122
  var _props$linking3;
121
123
 
122
124
  var appearance = props.appearance;
@@ -126,6 +128,10 @@ export default function createPluginsList(props, prevProps, createAnalyticsEvent
126
128
  var preset = createDefaultPreset(getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent));
127
129
  var featureFlags = createFeatureFlagsFromProps(props);
128
130
 
131
+ var getEditorFeatureFlags = function getEditorFeatureFlags() {
132
+ return featureFlags;
133
+ };
134
+
129
135
  if (props.allowAnalyticsGASV3) {
130
136
  var performanceTracking = props.performanceTracking;
131
137
  preset.add([analyticsPlugin, {
@@ -218,7 +224,11 @@ export default function createPluginsList(props, prevProps, createAnalyticsEvent
218
224
  breakoutEnabled: props.appearance === 'full-page',
219
225
  allowContextualMenu: !isMobile,
220
226
  fullWidthEnabled: props.appearance === 'full-width',
221
- wasFullWidthEnabled: prevProps && prevProps.appearance === 'full-width'
227
+ wasFullWidthEnabled: prevProps && prevProps.appearance === 'full-width',
228
+ editorAnalyticsAPI: editorAnalyticsAPI,
229
+ editorSelectionAPI: editorSelectionAPI,
230
+ getEditorContainerWidth: getEditorContainerWidth,
231
+ getEditorFeatureFlags: getEditorFeatureFlags
222
232
  }]);
223
233
  }
224
234
 
@@ -385,7 +395,8 @@ export default function createPluginsList(props, prevProps, createAnalyticsEvent
385
395
  horizontalRuleEnabled: props.allowRule,
386
396
  nativeStatusSupported: !statusMenuDisabled,
387
397
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
388
- replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
398
+ replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false,
399
+ insertNodeAPI: insertNodeAPI
389
400
  }]);
390
401
 
391
402
  var hasBeforePrimaryToolbar = function hasBeforePrimaryToolbar(components) {
@@ -1,74 +1 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- export var EventDispatcher = /*#__PURE__*/function () {
5
- function EventDispatcher() {
6
- _classCallCheck(this, EventDispatcher);
7
-
8
- _defineProperty(this, "listeners", {});
9
- }
10
-
11
- _createClass(EventDispatcher, [{
12
- key: "on",
13
- value: function on(event, cb) {
14
- if (!this.listeners[event]) {
15
- this.listeners[event] = new Set();
16
- }
17
-
18
- this.listeners[event].add(cb);
19
- }
20
- }, {
21
- key: "has",
22
- value: function has(event, cb) {
23
- if (!this.listeners[event]) {
24
- return false;
25
- }
26
-
27
- return this.listeners[event].has(cb);
28
- }
29
- }, {
30
- key: "off",
31
- value: function off(event, cb) {
32
- if (!this.listeners[event]) {
33
- return;
34
- }
35
-
36
- if (this.listeners[event].has(cb)) {
37
- this.listeners[event].delete(cb);
38
- }
39
- }
40
- }, {
41
- key: "emit",
42
- value: function emit(event, data) {
43
- if (!this.listeners[event]) {
44
- return;
45
- }
46
-
47
- this.listeners[event].forEach(function (cb) {
48
- return cb(data);
49
- });
50
- }
51
- }, {
52
- key: "destroy",
53
- value: function destroy() {
54
- this.listeners = {};
55
- }
56
- }]);
57
-
58
- return EventDispatcher;
59
- }();
60
- /**
61
- * Creates a dispatch function that can be called inside ProseMirror Plugin
62
- * to notify listeners about that plugin's state change.
63
- */
64
-
65
- export function createDispatch(eventDispatcher) {
66
- return function (eventName, data) {
67
- if (!eventName) {
68
- throw new Error('event name is required!');
69
- }
70
-
71
- var event = typeof eventName === 'string' ? eventName : eventName.key;
72
- eventDispatcher.emit(event, data);
73
- };
74
- }
1
+ export { EventDispatcher, createDispatch } from '@atlaskit/editor-common/event-dispatcher';