@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,7 +1,7 @@
1
1
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
2
2
  import { findCellClosestToPos, findCellRectClosestToPos, getSelectionRect } from '@atlaskit/editor-tables/utils';
3
3
  import { tableBackgroundColorPalette } from '@atlaskit/adf-schema';
4
- import { ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD, TABLE_ACTION, TABLE_BREAKOUT, withAnalytics } from '../analytics';
4
+ import { ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD, TABLE_ACTION, TABLE_BREAKOUT } from '@atlaskit/editor-common/analytics';
5
5
  import { clearMultipleCells } from './commands/clear';
6
6
  import { wrapTableInExpand } from './commands/collapse';
7
7
  import { insertColumn, insertRow } from './commands/insert';
@@ -13,6 +13,7 @@ import { distributeColumnsWidths } from './pm-plugins/table-resizing/commands';
13
13
  import { getPluginState } from './pm-plugins/plugin-factory';
14
14
  import { deleteColumns, deleteRows, mergeCells } from './transforms';
15
15
  import { checkIfNumberColumnEnabled, getSelectedCellInfo, getSelectedTableInfo } from './utils';
16
+ import { withEditorAnalyticsAPI } from './utils/analytics';
16
17
  import { getAllowAddColumnCustomStep } from './utils/get-allow-add-column-custom-step';
17
18
  const TABLE_BREAKOUT_NAME_MAPPING = {
18
19
  default: TABLE_BREAKOUT.NORMAL,
@@ -20,7 +21,7 @@ const TABLE_BREAKOUT_NAME_MAPPING = {
20
21
  'full-width': TABLE_BREAKOUT.FULL_WIDTH
21
22
  }; // #region Analytics wrappers
22
23
 
23
- export const emptyMultipleCellsWithAnalytics = (inputMethod, targetCellPosition) => withAnalytics(({
24
+ export const emptyMultipleCellsWithAnalytics = editorAnalyticsAPI => (inputMethod, targetCellPosition) => withEditorAnalyticsAPI(({
24
25
  selection
25
26
  }) => {
26
27
  const {
@@ -42,8 +43,8 @@ export const emptyMultipleCellsWithAnalytics = (inputMethod, targetCellPosition)
42
43
  },
43
44
  eventType: EVENT_TYPE.TRACK
44
45
  };
45
- })(clearMultipleCells(targetCellPosition));
46
- export const mergeCellsWithAnalytics = () => withAnalytics(({
46
+ })(editorAnalyticsAPI)(clearMultipleCells(targetCellPosition));
47
+ export const mergeCellsWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(({
47
48
  selection
48
49
  }) => {
49
50
  const {
@@ -66,14 +67,14 @@ export const mergeCellsWithAnalytics = () => withAnalytics(({
66
67
  },
67
68
  eventType: EVENT_TYPE.TRACK
68
69
  };
69
- })((state, dispatch) => {
70
+ })(editorAnalyticsAPI)((state, dispatch) => {
70
71
  if (dispatch) {
71
72
  dispatch(mergeCells(state.tr));
72
73
  }
73
74
 
74
75
  return true;
75
76
  });
76
- export const splitCellWithAnalytics = () => withAnalytics(({
77
+ export const splitCellWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(({
77
78
  selection
78
79
  }) => {
79
80
  const {
@@ -103,8 +104,8 @@ export const splitCellWithAnalytics = () => withAnalytics(({
103
104
  }
104
105
 
105
106
  return;
106
- })(splitCell);
107
- export const setColorWithAnalytics = (cellColor, targetCellPosition) => withAnalytics(({
107
+ })(editorAnalyticsAPI)(splitCell);
108
+ export const setColorWithAnalytics = editorAnalyticsAPI => (cellColor, targetCellPosition) => withEditorAnalyticsAPI(({
108
109
  selection
109
110
  }) => {
110
111
  const {
@@ -128,10 +129,10 @@ export const setColorWithAnalytics = (cellColor, targetCellPosition) => withAnal
128
129
  },
129
130
  eventType: EVENT_TYPE.TRACK
130
131
  };
131
- })(setMultipleCellAttrs({
132
+ })(editorAnalyticsAPI)(setMultipleCellAttrs({
132
133
  background: cellColor
133
134
  }, targetCellPosition));
134
- export const addRowAroundSelection = side => (state, dispatch) => {
135
+ export const addRowAroundSelection = editorAnalyticsAPI => side => (state, dispatch) => {
135
136
  const {
136
137
  selection
137
138
  } = state;
@@ -144,12 +145,12 @@ export const addRowAroundSelection = side => (state, dispatch) => {
144
145
 
145
146
  const position = isCellSelection && side === 'TOP' ? rect.top : rect.bottom - 1;
146
147
  const offset = side === 'BOTTOM' ? 1 : 0;
147
- return insertRowWithAnalytics(INPUT_METHOD.SHORTCUT, {
148
+ return insertRowWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.SHORTCUT, {
148
149
  index: position + offset,
149
150
  moveCursorToInsertedRow: false
150
151
  })(state, dispatch);
151
152
  };
152
- export const insertRowWithAnalytics = (inputMethod, options) => withAnalytics(state => {
153
+ export const insertRowWithAnalytics = editorAnalyticsAPI => (inputMethod, options) => withEditorAnalyticsAPI(state => {
153
154
  const {
154
155
  totalRowCount,
155
156
  totalColumnCount
@@ -166,8 +167,8 @@ export const insertRowWithAnalytics = (inputMethod, options) => withAnalytics(st
166
167
  },
167
168
  eventType: EVENT_TYPE.TRACK
168
169
  };
169
- })(insertRow(options.index, options.moveCursorToInsertedRow));
170
- export const insertColumnWithAnalytics = (inputMethod, position) => withAnalytics(state => {
170
+ })(editorAnalyticsAPI)(insertRow(options.index, options.moveCursorToInsertedRow));
171
+ export const insertColumnWithAnalytics = (getEditorContainerWidth, editorAnalyticsAPI) => (inputMethod, position) => withEditorAnalyticsAPI(state => {
171
172
  const {
172
173
  totalRowCount,
173
174
  totalColumnCount
@@ -184,8 +185,8 @@ export const insertColumnWithAnalytics = (inputMethod, position) => withAnalytic
184
185
  },
185
186
  eventType: EVENT_TYPE.TRACK
186
187
  };
187
- })(insertColumn(position));
188
- export const deleteRowsWithAnalytics = (inputMethod, rect, isHeaderRowRequired) => withAnalytics(({
188
+ })(editorAnalyticsAPI)(insertColumn(getEditorContainerWidth)(position));
189
+ export const deleteRowsWithAnalytics = editorAnalyticsAPI => (inputMethod, rect, isHeaderRowRequired) => withEditorAnalyticsAPI(({
189
190
  selection
190
191
  }) => {
191
192
  const {
@@ -205,14 +206,14 @@ export const deleteRowsWithAnalytics = (inputMethod, rect, isHeaderRowRequired)
205
206
  },
206
207
  eventType: EVENT_TYPE.TRACK
207
208
  };
208
- })((state, dispatch) => {
209
+ })(editorAnalyticsAPI)((state, dispatch) => {
209
210
  if (dispatch) {
210
211
  dispatch(deleteRows(rect, isHeaderRowRequired)(state.tr));
211
212
  }
212
213
 
213
214
  return true;
214
215
  });
215
- export const deleteColumnsWithAnalytics = (inputMethod, rect) => withAnalytics(({
216
+ export const deleteColumnsWithAnalytics = editorAnalyticsAPI => (inputMethod, rect) => withEditorAnalyticsAPI(({
216
217
  selection
217
218
  }) => {
218
219
  const {
@@ -232,7 +233,7 @@ export const deleteColumnsWithAnalytics = (inputMethod, rect) => withAnalytics((
232
233
  },
233
234
  eventType: EVENT_TYPE.TRACK
234
235
  };
235
- })((state, dispatch) => {
236
+ })(editorAnalyticsAPI)((state, dispatch) => {
236
237
  if (dispatch) {
237
238
  dispatch(deleteColumns(rect, getAllowAddColumnCustomStep(state))(state.tr));
238
239
  }
@@ -257,13 +258,13 @@ const getTableDeletedAnalytics = (selection, inputMethod) => {
257
258
  };
258
259
  };
259
260
 
260
- export const deleteTableWithAnalytics = () => withAnalytics(({
261
+ export const deleteTableWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(({
261
262
  selection
262
- }) => getTableDeletedAnalytics(selection, INPUT_METHOD.FLOATING_TB))(deleteTable);
263
- export const deleteTableIfSelectedWithAnalytics = inputMethod => withAnalytics(({
263
+ }) => getTableDeletedAnalytics(selection, INPUT_METHOD.FLOATING_TB))(editorAnalyticsAPI)(deleteTable);
264
+ export const deleteTableIfSelectedWithAnalytics = editorAnalyticsAPI => inputMethod => withEditorAnalyticsAPI(({
264
265
  selection
265
- }) => getTableDeletedAnalytics(selection, inputMethod))(deleteTableIfSelected);
266
- export const toggleHeaderRowWithAnalytics = () => withAnalytics(state => {
266
+ }) => getTableDeletedAnalytics(selection, inputMethod))(editorAnalyticsAPI)(deleteTableIfSelected);
267
+ export const toggleHeaderRowWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(state => {
267
268
  const {
268
269
  totalRowCount,
269
270
  totalColumnCount
@@ -282,8 +283,8 @@ export const toggleHeaderRowWithAnalytics = () => withAnalytics(state => {
282
283
  },
283
284
  eventType: EVENT_TYPE.TRACK
284
285
  };
285
- })(toggleHeaderRow);
286
- export const toggleHeaderColumnWithAnalytics = () => withAnalytics(state => {
286
+ })(editorAnalyticsAPI)(toggleHeaderRow);
287
+ export const toggleHeaderColumnWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(state => {
287
288
  const {
288
289
  totalRowCount,
289
290
  totalColumnCount
@@ -302,8 +303,8 @@ export const toggleHeaderColumnWithAnalytics = () => withAnalytics(state => {
302
303
  },
303
304
  eventType: EVENT_TYPE.TRACK
304
305
  };
305
- })(toggleHeaderColumn);
306
- export const toggleNumberColumnWithAnalytics = () => withAnalytics(state => {
306
+ })(editorAnalyticsAPI)(toggleHeaderColumn);
307
+ export const toggleNumberColumnWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(state => {
307
308
  const {
308
309
  totalRowCount,
309
310
  totalColumnCount
@@ -319,8 +320,8 @@ export const toggleNumberColumnWithAnalytics = () => withAnalytics(state => {
319
320
  },
320
321
  eventType: EVENT_TYPE.TRACK
321
322
  };
322
- })(toggleNumberColumn);
323
- export const toggleTableLayoutWithAnalytics = () => withAnalytics(state => {
323
+ })(editorAnalyticsAPI)(toggleNumberColumn);
324
+ export const toggleTableLayoutWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(state => {
324
325
  const {
325
326
  table,
326
327
  totalRowCount,
@@ -346,8 +347,8 @@ export const toggleTableLayoutWithAnalytics = () => withAnalytics(state => {
346
347
  }
347
348
 
348
349
  return;
349
- })(toggleTableLayout);
350
- export const sortColumnWithAnalytics = (inputMethod, columnIndex, sortOrder) => withAnalytics(state => {
350
+ })(editorAnalyticsAPI)(toggleTableLayout);
351
+ export const sortColumnWithAnalytics = editorAnalyticsAPI => (inputMethod, columnIndex, sortOrder) => withEditorAnalyticsAPI(state => {
351
352
  const {
352
353
  totalRowCount,
353
354
  totalColumnCount
@@ -365,13 +366,13 @@ export const sortColumnWithAnalytics = (inputMethod, columnIndex, sortOrder) =>
365
366
  },
366
367
  eventType: EVENT_TYPE.TRACK
367
368
  };
368
- })(sortByColumn(columnIndex, sortOrder));
369
- export const distributeColumnsWidthsWithAnalytics = (inputMethod, {
369
+ })(editorAnalyticsAPI)(sortByColumn(columnIndex, sortOrder));
370
+ export const distributeColumnsWidthsWithAnalytics = editorAnalyticsAPI => (inputMethod, {
370
371
  resizeState,
371
372
  table,
372
373
  attributes
373
374
  }) => {
374
- return withAnalytics(() => {
375
+ return withEditorAnalyticsAPI(() => {
375
376
  return {
376
377
  action: TABLE_ACTION.DISTRIBUTED_COLUMNS_WIDTHS,
377
378
  actionSubject: ACTION_SUBJECT.TABLE,
@@ -382,7 +383,7 @@ export const distributeColumnsWidthsWithAnalytics = (inputMethod, {
382
383
  },
383
384
  eventType: EVENT_TYPE.TRACK
384
385
  };
385
- })((state, dispatch) => {
386
+ })(editorAnalyticsAPI)((state, dispatch) => {
386
387
  if (dispatch) {
387
388
  distributeColumnsWidths(resizeState, table)(state, dispatch);
388
389
  }
@@ -390,7 +391,7 @@ export const distributeColumnsWidthsWithAnalytics = (inputMethod, {
390
391
  return true;
391
392
  });
392
393
  };
393
- export const wrapTableInExpandWithAnalytics = () => withAnalytics(state => {
394
+ export const wrapTableInExpandWithAnalytics = editorAnalyticsAPI => withEditorAnalyticsAPI(state => {
394
395
  const {
395
396
  totalRowCount,
396
397
  totalColumnCount
@@ -405,4 +406,4 @@ export const wrapTableInExpandWithAnalytics = () => withAnalytics(state => {
405
406
  },
406
407
  eventType: EVENT_TYPE.TRACK
407
408
  };
408
- })(wrapTableInExpand); // #endregion
409
+ })(editorAnalyticsAPI)(wrapTableInExpand); // #endregion
@@ -5,7 +5,7 @@ import { cellAround, findCellRectClosestToPos, findTable, getSelectionRect, remo
5
5
  import { browser } from '@atlaskit/editor-common/utils';
6
6
  import { isElementInTableCell, isLastItemMediaGroup, setNodeSelection } from '../../utils';
7
7
  import { closestElement } from '../../utils/dom';
8
- import { ACTION_SUBJECT, addAnalytics, EVENT_TYPE, TABLE_ACTION } from '../analytics';
8
+ import { ACTION_SUBJECT, EVENT_TYPE, TABLE_ACTION } from '@atlaskit/editor-common/analytics';
9
9
  import { addResizeHandleDecorations, clearHoverSelection, hideInsertColumnOrRowButton, hideResizeHandleLine, hoverColumns, selectColumn, setEditorFocus, showInsertColumnButton, showInsertRowButton, showResizeHandleLine } from './commands';
10
10
  import { getPluginState } from './pm-plugins/plugin-factory';
11
11
  import { getPluginState as getResizePluginState } from './pm-plugins/table-resizing/plugin-factory';
@@ -13,7 +13,6 @@ import { deleteColumns, deleteRows } from './transforms';
13
13
  import { RESIZE_HANDLE_AREA_DECORATION_GAP } from './types';
14
14
  import { getColumnOrRowIndex, getMousePositionHorizontalRelativeByElement, getMousePositionVerticalRelativeByElement, getSelectedCellInfo, hasResizeHandler, isCell, isColumnControlsDecorations, isCornerButton, isInsertRowButton, isResizeHandleDecoration, isRowControlsButton, isTableControlsButton, isTableContainerOrWrapper } from './utils';
15
15
  import { getAllowAddColumnCustomStep } from './utils/get-allow-add-column-custom-step';
16
- import { getFeatureFlags } from '../feature-flags-context';
17
16
 
18
17
  const isFocusingCalendar = event => event instanceof FocusEvent && event.relatedTarget instanceof HTMLElement && event.relatedTarget.getAttribute('aria-label') === 'calendar';
19
18
 
@@ -204,7 +203,7 @@ export const handleMouseLeave = (view, event) => {
204
203
 
205
204
  return false;
206
205
  };
207
- export const handleMouseMove = (view, event, tableCellOptimization, elementContentRects) => {
206
+ export const handleMouseMove = getEditorFeatureFlags => (view, event, tableCellOptimization, elementContentRects) => {
208
207
  if (!(event.target instanceof HTMLElement)) {
209
208
  return false;
210
209
  }
@@ -245,7 +244,7 @@ export const handleMouseMove = (view, event, tableCellOptimization, elementConte
245
244
 
246
245
  const {
247
246
  mouseMoveOptimization
248
- } = getFeatureFlags(view.state) || {}; // we only want to allow mouseMoveOptimisation when tableCellOptimization is enabled
247
+ } = getEditorFeatureFlags(); // we only want to allow mouseMoveOptimisation when tableCellOptimization is enabled
249
248
  // because it relies on tableCell node view that is added via tableCellOptimization
250
249
 
251
250
  const useMouseMoveOptimisation = tableCellOptimization && mouseMoveOptimization;
@@ -305,7 +304,7 @@ export function handleTripleClick(view, pos) {
305
304
 
306
305
  return false;
307
306
  }
308
- export const handleCut = (oldTr, oldState, newState) => {
307
+ export const handleCut = (oldTr, oldState, newState, editorAnalyticsAPI) => {
309
308
  const oldSelection = oldState.tr.selection;
310
309
  let {
311
310
  tr
@@ -329,7 +328,7 @@ export const handleCut = (oldTr, oldState, newState) => {
329
328
  totalColumnCount
330
329
  } = getSelectedCellInfo(tr.selection); // Reassigning to make it more obvious and consistent
331
330
 
332
- tr = addAnalytics(newState, tr, {
331
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
333
332
  action: TABLE_ACTION.CUT,
334
333
  actionSubject: ACTION_SUBJECT.TABLE,
335
334
  actionSubjectId: null,
@@ -341,7 +340,7 @@ export const handleCut = (oldTr, oldState, newState) => {
341
340
  totalColumnCount
342
341
  },
343
342
  eventType: EVENT_TYPE.TRACK
344
- }); // Need this check again since we are overriding the tr in previous statement
343
+ })(tr); // Need this check again since we are overriding the tr in previous statement
345
344
 
346
345
  if (tr.selection instanceof CellSelection) {
347
346
  const isTableSelected = tr.selection.isRowSelection() && tr.selection.isColSelection();
@@ -5,8 +5,8 @@ import { createTable } from '@atlaskit/editor-tables/utils';
5
5
  import { table, tableCell, tableHeader, tableRow } from '@atlaskit/adf-schema';
6
6
  import { toggleTable, tooltip } from '../../keymaps';
7
7
  import WithPluginState from '../../ui/WithPluginState';
8
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, addAnalytics, EVENT_TYPE, INPUT_METHOD } from '../analytics';
9
- import { messages } from '../insert-block/ui/ToolbarInsertBlock/messages';
8
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
9
+ import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
10
10
  import { IconTable } from '../quick-insert/assets';
11
11
  import { pluginConfig } from './create-plugin-config';
12
12
  import { createPlugin as createTableLocalIdPlugin } from './pm-plugins/table-local-id';
@@ -28,6 +28,16 @@ import LayoutButton from './ui/LayoutButton';
28
28
  import { isLayoutSupported } from './utils';
29
29
  import { ErrorBoundary } from '../../ui/ErrorBoundary';
30
30
 
31
+ const defaultGetEditorContainerWidth = () => {
32
+ var _document, _document$body;
33
+
34
+ return {
35
+ width: ((_document = document) === null || _document === void 0 ? void 0 : (_document$body = _document.body) === null || _document$body === void 0 ? void 0 : _document$body.offsetWidth) || 500
36
+ };
37
+ };
38
+
39
+ const defaultGetEditorFeatureFlags = () => ({});
40
+
31
41
  const tablesPlugin = options => ({
32
42
  name: 'table',
33
43
 
@@ -60,9 +70,11 @@ const tablesPlugin = options => ({
60
70
  fullWidthEnabled,
61
71
  wasFullWidthEnabled,
62
72
  breakoutEnabled,
63
- tableOptions
73
+ tableOptions,
74
+ editorAnalyticsAPI,
75
+ getEditorFeatureFlags
64
76
  } = options || {};
65
- return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), breakoutEnabled, fullWidthEnabled, wasFullWidthEnabled);
77
+ return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), (options === null || options === void 0 ? void 0 : options.getEditorContainerWidth) || defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, breakoutEnabled, fullWidthEnabled, wasFullWidthEnabled, editorAnalyticsAPI);
66
78
  }
67
79
  }, {
68
80
  name: 'tablePMColResizing',
@@ -71,14 +83,17 @@ const tablesPlugin = options => ({
71
83
  }) => {
72
84
  const {
73
85
  fullWidthEnabled,
74
- tableOptions
86
+ tableOptions,
87
+ editorAnalyticsAPI,
88
+ getEditorFeatureFlags,
89
+ getEditorContainerWidth
75
90
  } = options || {};
76
91
  const {
77
92
  allowColumnResizing
78
93
  } = pluginConfig(tableOptions);
79
94
  return allowColumnResizing ? createFlexiResizingPlugin(dispatch, {
80
95
  lastColumnResizable: !fullWidthEnabled
81
- }) : undefined;
96
+ }, getEditorContainerWidth || defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, editorAnalyticsAPI) : undefined;
82
97
  }
83
98
  }, {
84
99
  name: 'tableEditing',
@@ -87,10 +102,10 @@ const tablesPlugin = options => ({
87
102
  // plugin as it is currently swallowing backspace events inside tables
88
103
  {
89
104
  name: 'tableKeymap',
90
- plugin: () => keymapPlugin()
105
+ plugin: () => keymapPlugin((options === null || options === void 0 ? void 0 : options.getEditorContainerWidth) || defaultGetEditorContainerWidth, options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI)
91
106
  }, {
92
107
  name: 'tableSelectionKeymap',
93
- plugin: () => tableSelectionKeymapPlugin()
108
+ plugin: () => tableSelectionKeymapPlugin(options === null || options === void 0 ? void 0 : options.editorSelectionAPI)
94
109
  }, {
95
110
  name: 'tableEditing',
96
111
  plugin: () => tableEditing()
@@ -99,7 +114,7 @@ const tablesPlugin = options => ({
99
114
  plugin: ({
100
115
  dispatch,
101
116
  eventDispatcher
102
- }) => options && options.tableOptions.stickyHeaders ? createStickyHeadersPlugin(dispatch, eventDispatcher) : undefined
117
+ }) => options && options.tableOptions.stickyHeaders ? createStickyHeadersPlugin(dispatch, eventDispatcher, () => [], (options === null || options === void 0 ? void 0 : options.getEditorFeatureFlags) || defaultGetEditorFeatureFlags) : undefined
103
118
  }, {
104
119
  name: 'tableLocalId',
105
120
  plugin: ({
@@ -201,14 +216,18 @@ const tablesPlugin = options => ({
201
216
  boundariesElement: popupsBoundariesElement,
202
217
  scrollableElement: popupsScrollableElement,
203
218
  hasStickyHeaders: stickyHeader && stickyHeader.sticky,
204
- dispatchAnalyticsEvent: dispatchAnalyticsEvent
219
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
220
+ editorAnalyticsAPI: options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI,
221
+ getEditorContainerWidth: (options === null || options === void 0 ? void 0 : options.getEditorContainerWidth) || defaultGetEditorContainerWidth
205
222
  }), /*#__PURE__*/React.createElement(FloatingContextualMenu, {
206
223
  editorView: editorView,
207
224
  mountPoint: popupsMountPoint,
208
225
  boundariesElement: popupsBoundariesElement,
209
226
  targetCellPosition: targetCellPosition,
210
227
  isOpen: Boolean(isContextualMenuOpen),
211
- pluginConfig: pluginConfig
228
+ pluginConfig: pluginConfig,
229
+ editorAnalyticsAPI: options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI,
230
+ getEditorContainerWidth: (options === null || options === void 0 ? void 0 : options.getEditorContainerWidth) || defaultGetEditorContainerWidth
212
231
  }), allowControls && /*#__PURE__*/React.createElement(FloatingDeleteButton, {
213
232
  editorView: editorView,
214
233
  selection: editorView.state.selection,
@@ -217,7 +236,8 @@ const tablesPlugin = options => ({
217
236
  boundariesElement: popupsBoundariesElement,
218
237
  scrollableElement: popupsScrollableElement,
219
238
  stickyHeaders: stickyHeader,
220
- isNumberColumnEnabled: tableNode && tableNode.attrs.isNumberColumnEnabled
239
+ isNumberColumnEnabled: tableNode && tableNode.attrs.isNumberColumnEnabled,
240
+ editorAnalyticsAPI: options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI
221
241
  }), isLayoutSupported(state) && options && options.breakoutEnabled && /*#__PURE__*/React.createElement(LayoutButton, {
222
242
  editorView: editorView,
223
243
  mountPoint: popupsMountPoint,
@@ -226,13 +246,30 @@ const tablesPlugin = options => ({
226
246
  targetRef: tableWrapperTarget,
227
247
  layout: layout,
228
248
  isResizing: !!resizingPluginState && !!resizingPluginState.dragging,
229
- stickyHeader: stickyHeader
249
+ stickyHeader: stickyHeader,
250
+ editorAnalyticsAPI: options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI
230
251
  }));
231
252
  }
232
253
  }));
233
254
  },
234
255
 
235
256
  pluginsOptions: {
257
+ // TODO: ED-14676 This is not the final API design
258
+ // For now, we are using this on (insert-api/api.ts) but we may create a proper place for it
259
+ createNodeHandler: ({
260
+ nodeName,
261
+ schema
262
+ }) => {
263
+ // An EditorPlugin may manage more than one node.
264
+ if (nodeName !== 'table') {
265
+ return null;
266
+ }
267
+
268
+ const table = createTable({
269
+ schema
270
+ });
271
+ return table;
272
+ },
236
273
  quickInsert: ({
237
274
  formatMessage
238
275
  }) => [{
@@ -245,10 +282,12 @@ const tablesPlugin = options => ({
245
282
  icon: () => /*#__PURE__*/React.createElement(IconTable, null),
246
283
 
247
284
  action(insert, state) {
285
+ var _options$editorAnalyt;
286
+
248
287
  const tr = insert(createTable({
249
288
  schema: state.schema
250
289
  }));
251
- return addAnalytics(state, tr, {
290
+ options === null || options === void 0 ? void 0 : (_options$editorAnalyt = options.editorAnalyticsAPI) === null || _options$editorAnalyt === void 0 ? void 0 : _options$editorAnalyt.attachAnalyticsEvent({
252
291
  action: ACTION.INSERTED,
253
292
  actionSubject: ACTION_SUBJECT.DOCUMENT,
254
293
  actionSubjectId: ACTION_SUBJECT_ID.TABLE,
@@ -256,11 +295,12 @@ const tablesPlugin = options => ({
256
295
  inputMethod: INPUT_METHOD.QUICK_INSERT
257
296
  },
258
297
  eventType: EVENT_TYPE.TRACK
259
- });
298
+ })(tr);
299
+ return tr;
260
300
  }
261
301
 
262
302
  }],
263
- floatingToolbar: getToolbarConfig(pluginConfig(options === null || options === void 0 ? void 0 : options.tableOptions))
303
+ floatingToolbar: getToolbarConfig((options === null || options === void 0 ? void 0 : options.getEditorContainerWidth) || defaultGetEditorContainerWidth, options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI)(pluginConfig(options === null || options === void 0 ? void 0 : options.tableOptions))
264
304
  }
265
305
  });
266
306
 
@@ -7,7 +7,7 @@ import { calcTableWidth, tableMarginSides } from '@atlaskit/editor-common/styles
7
7
  import { browser } from '@atlaskit/editor-common/utils';
8
8
  import { akEditorMobileBreakoutPoint, akEditorTableToolbarSize as tableToolbarSize } from '@atlaskit/editor-shared-styles';
9
9
  import { isValidPosition } from '../../../utils';
10
- import { getParentNodeWidth } from '../../../utils/node-width';
10
+ import { getParentNodeWidth } from '@atlaskit/editor-common/node-width';
11
11
  import { parsePx } from '../../../utils/dom';
12
12
  import { autoSizeTable } from '../commands';
13
13
  import { getPluginState } from '../pm-plugins/plugin-factory';
@@ -19,7 +19,6 @@ import { TableCssClassName as ClassName, ShadowEvent } from '../types';
19
19
  import TableFloatingControls from '../ui/TableFloatingControls';
20
20
  import { containsHeaderRow, tablesHaveDifferentColumnWidths, tablesHaveDifferentNoOfColumns } from '../utils';
21
21
  import { updateOverflowShadows } from './update-overflow-shadows';
22
- import { getFeatureFlags } from '../../feature-flags-context';
23
22
  import memoizeOne from 'memoize-one';
24
23
  import { OverflowShadowsObserver } from './OverflowShadowsObserver';
25
24
  const isIE11 = browser.ie_version === 11;
@@ -59,7 +58,7 @@ class TableComponent extends React.Component {
59
58
  _defineProperty(this, "onStickyState", state => {
60
59
  const {
61
60
  tableOverflowShadowsOptimization
62
- } = getFeatureFlags(this.props.view.state) || {};
61
+ } = this.props.getEditorFeatureFlags();
63
62
  const pos = this.props.getPos();
64
63
 
65
64
  if (!isValidPosition(pos, this.props.view.state)) {
@@ -119,7 +118,7 @@ class TableComponent extends React.Component {
119
118
 
120
119
  const {
121
120
  tableOverflowShadowsOptimization
122
- } = getFeatureFlags(this.props.view.state) || {};
121
+ } = this.props.getEditorFeatureFlags();
123
122
 
124
123
  if (!tableOverflowShadowsOptimization) {
125
124
  this.updateShadows();
@@ -308,7 +307,7 @@ class TableComponent extends React.Component {
308
307
  options: _options,
309
308
  containerWidth: _containerWidth,
310
309
  getNode: _getNode,
311
- view: _view
310
+ getEditorFeatureFlags
312
311
  } = props;
313
312
  this.node = _getNode();
314
313
  this.containerWidth = _containerWidth; // store table size using previous full-width mode so can detect if it has changed
@@ -329,7 +328,7 @@ class TableComponent extends React.Component {
329
328
 
330
329
  const {
331
330
  initialRenderOptimization
332
- } = getFeatureFlags(_view.state) || {};
331
+ } = getEditorFeatureFlags();
333
332
 
334
333
  if (!initialRenderOptimization) {
335
334
  // @see ED-7945
@@ -394,14 +393,13 @@ class TableComponent extends React.Component {
394
393
 
395
394
  componentDidUpdate(prevProps) {
396
395
  const {
397
- view,
398
396
  getNode,
399
397
  isMediaFullscreen,
400
398
  allowColumnResizing
401
399
  } = this.props;
402
400
  const {
403
401
  tableOverflowShadowsOptimization
404
- } = getFeatureFlags(view.state) || {};
402
+ } = this.props.getEditorFeatureFlags();
405
403
 
406
404
  if (!tableOverflowShadowsOptimization) {
407
405
  this.updateShadows();
@@ -436,7 +434,7 @@ class TableComponent extends React.Component {
436
434
  view
437
435
  } = this.props;
438
436
  recreateResizeColsByNode(this.table, currentTable);
439
- updateControls(view.state);
437
+ updateControls(this.props.getEditorFeatureFlags)(view.state);
440
438
  }
441
439
 
442
440
  this.handleTableResizingDebounced();
@@ -451,7 +449,7 @@ class TableComponent extends React.Component {
451
449
  if (this.wrapper && parent) {
452
450
  const rightShadows = parent.querySelectorAll(`.${ClassName.TABLE_RIGHT_SHADOW}`);
453
451
  const leftShadows = parent.querySelectorAll(`.${ClassName.TABLE_LEFT_SHADOW}`);
454
- updateOverflowShadows(this.props.view.state, this.wrapper, this.table, rightShadows, leftShadows);
452
+ updateOverflowShadows(this.props.getEditorFeatureFlags)(this.props.view.state, this.wrapper, this.table, rightShadows, leftShadows);
455
453
  }
456
454
  }
457
455
 
@@ -484,7 +482,7 @@ class TableComponent extends React.Component {
484
482
  initialRenderOptimization,
485
483
  tableRenderOptimization,
486
484
  tableOverflowShadowsOptimization
487
- } = getFeatureFlags(view.state) || {};
485
+ } = this.props.getEditorFeatureFlags();
488
486
  const tableRef = this.table || undefined;
489
487
  const isResizing = !!tableResizingPluginState && !!tableResizingPluginState.dragging;
490
488
  const headerRow = tableRef ? tableRef.querySelector('tr[data-header-row]') : undefined; //dont need to change tableHeight with tableRenderOptimization because it will be observed inside floating components
@@ -509,7 +507,8 @@ class TableComponent extends React.Component {
509
507
  selection: view.state.selection,
510
508
  tableHeight: tableHeight,
511
509
  headerRowHeight: headerRow ? headerRow.offsetHeight : undefined,
512
- stickyHeader: this.state.stickyHeader
510
+ stickyHeader: this.state.stickyHeader,
511
+ getEditorFeatureFlags: this.props.getEditorFeatureFlags
513
512
  }));
514
513
  const shadowPadding = allowControls && (!isLoading || initialRenderOptimization) && tableActive ? -tableToolbarSize : tableMarginSides;
515
514
  const shadowStyle = tableOverflowShadowsOptimization ? memoizeOne(visible => ({
@@ -4,7 +4,6 @@ import { DOMSerializer } from 'prosemirror-model';
4
4
  import { stateKey as mediaPluginKey } from '../../../plugins/media/pm-plugins/plugin-key';
5
5
  import ReactNodeView from '../../../nodeviews/ReactNodeView';
6
6
  import WithPluginState from '../../../ui/WithPluginState';
7
- import { pluginKey as widthPluginKey } from '../../width';
8
7
  import { pluginConfig as getPluginConfig } from '../create-plugin-config';
9
8
  import { getPluginState } from '../pm-plugins/plugin-factory';
10
9
  import { pluginKey } from '../pm-plugins/plugin-key';
@@ -12,7 +11,6 @@ import { pluginKey as tableResizingPluginKey } from '../pm-plugins/table-resizin
12
11
  import { generateColgroup } from '../pm-plugins/table-resizing/utils';
13
12
  import { TableMap } from '@atlaskit/editor-tables/table-map';
14
13
  import TableComponent from './TableComponent';
15
- import { getFeatureFlags } from '../../feature-flags-context';
16
14
  import { EmitterEvents } from '../../../extensibility';
17
15
 
18
16
  const tableAttributes = node => {
@@ -71,10 +69,19 @@ export default class TableView extends ReactNodeView {
71
69
  }
72
70
 
73
71
  render(props, forwardRef) {
72
+ // TODO: ED-15663
73
+ // Please, do not copy or use this kind of code below
74
+ // @ts-ignore
75
+ const fakePluginKey = {
76
+ key: 'widthPlugin$',
77
+ getState: state => {
78
+ return state['widthPlugin$'];
79
+ }
80
+ };
74
81
  return /*#__PURE__*/React.createElement(WithPluginState, {
75
82
  plugins: {
76
- containerWidth: widthPluginKey,
77
83
  pluginState: pluginKey,
84
+ widthPlugin: fakePluginKey,
78
85
  tableResizingPluginState: tableResizingPluginKey,
79
86
  mediaState: mediaPluginKey
80
87
  },
@@ -83,10 +90,10 @@ export default class TableView extends ReactNodeView {
83
90
  const {
84
91
  tableResizingPluginState,
85
92
  pluginState,
86
- containerWidth,
87
93
  mediaState
88
94
  } = pluginStates;
89
95
  const tableActive = props.getPos() === pluginState.tablePos;
96
+ const containerWidth = props.getEditorContainerWidth();
90
97
  return /*#__PURE__*/React.createElement(TableComponent, {
91
98
  view: props.view,
92
99
  allowColumnResizing: props.allowColumnResizing,
@@ -102,7 +109,8 @@ export default class TableView extends ReactNodeView {
102
109
  tableResizingPluginState: tableResizingPluginState,
103
110
  getNode: this.getNode,
104
111
  containerWidth: containerWidth,
105
- contentDOM: forwardRef
112
+ contentDOM: forwardRef,
113
+ getEditorFeatureFlags: props.getEditorFeatureFlags
106
114
  });
107
115
  }
108
116
  });
@@ -164,7 +172,7 @@ export default class TableView extends ReactNodeView {
164
172
  }
165
173
 
166
174
  }
167
- export const createTableView = (node, view, getPos, portalProviderAPI, eventDispatcher, options) => {
175
+ export const createTableView = (node, view, getPos, portalProviderAPI, eventDispatcher, options, getEditorContainerWidth, getEditorFeatureFlags) => {
168
176
  const {
169
177
  pluginConfig
170
178
  } = getPluginState(view.state);
@@ -173,7 +181,7 @@ export const createTableView = (node, view, getPos, portalProviderAPI, eventDisp
173
181
  } = getPluginConfig(pluginConfig);
174
182
  const {
175
183
  tableRenderOptimization
176
- } = getFeatureFlags(view.state) || {};
184
+ } = getEditorFeatureFlags();
177
185
  return new TableView({
178
186
  node,
179
187
  view,
@@ -182,6 +190,8 @@ export const createTableView = (node, view, getPos, portalProviderAPI, eventDisp
182
190
  eventDispatcher,
183
191
  getPos: getPos,
184
192
  options,
185
- tableRenderOptimization
193
+ tableRenderOptimization,
194
+ getEditorContainerWidth,
195
+ getEditorFeatureFlags
186
196
  }).init();
187
197
  };