@atlaskit/editor-plugin-table 2.3.0 → 2.4.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 (427) hide show
  1. package/.eslintrc.js +6 -0
  2. package/CHANGELOG.md +12 -0
  3. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +2 -2
  4. package/dist/cjs/plugins/table/commands/insert.js +3 -3
  5. package/dist/cjs/plugins/table/commands/misc.js +26 -26
  6. package/dist/cjs/plugins/table/commands/referentiality.js +1 -1
  7. package/dist/cjs/plugins/table/commands/selection.js +2 -2
  8. package/dist/cjs/plugins/table/commands/sort.js +8 -8
  9. package/dist/cjs/plugins/table/commands-with-analytics.js +3 -3
  10. package/dist/cjs/plugins/table/event-handlers.js +15 -15
  11. package/dist/cjs/plugins/table/handlers.js +6 -7
  12. package/dist/cjs/plugins/table/index.js +16 -16
  13. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +44 -40
  14. package/dist/cjs/plugins/table/nodeviews/TableContainer.js +10 -8
  15. package/dist/cjs/plugins/table/nodeviews/TableResizer.js +2 -2
  16. package/dist/cjs/plugins/table/nodeviews/table.js +11 -9
  17. package/dist/cjs/plugins/table/nodeviews/tableCell.js +1 -1
  18. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +2 -2
  19. package/dist/cjs/plugins/table/pm-plugins/keymap.js +2 -2
  20. package/dist/cjs/plugins/table/pm-plugins/main.js +24 -21
  21. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +1 -1
  22. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -2
  23. package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +1 -1
  24. package/dist/cjs/plugins/table/pm-plugins/table-resizing/commands.js +1 -1
  25. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +4 -4
  26. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +1 -1
  27. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/column-state.js +1 -1
  28. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -1
  29. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +2 -2
  30. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +1 -1
  31. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +2 -3
  32. package/dist/cjs/plugins/table/pm-plugins/table-width.js +3 -3
  33. package/dist/cjs/plugins/table/toolbar.js +26 -26
  34. package/dist/cjs/plugins/table/transforms/column-width.js +5 -5
  35. package/dist/cjs/plugins/table/transforms/delete-columns.js +1 -1
  36. package/dist/cjs/plugins/table/transforms/merge.js +1 -1
  37. package/dist/cjs/plugins/table/transforms/replace-table.js +2 -2
  38. package/dist/cjs/plugins/table/ui/FloatingContextualButton/FixedButton.js +2 -2
  39. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +3 -3
  40. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
  41. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +11 -11
  42. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +2 -2
  43. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +6 -3
  44. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +10 -10
  45. package/dist/cjs/plugins/table/ui/FloatingInsertButton/InsertButton.js +3 -3
  46. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +9 -9
  47. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +3 -3
  48. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +1 -1
  49. package/dist/cjs/plugins/table/ui/common-styles.js +2 -2
  50. package/dist/cjs/plugins/table/ui/consts.js +2 -2
  51. package/dist/cjs/plugins/table/ui/ui-styles.js +2 -2
  52. package/dist/cjs/plugins/table/utils/column-controls.js +11 -11
  53. package/dist/cjs/plugins/table/utils/decoration.js +11 -11
  54. package/dist/cjs/plugins/table/utils/nodes.js +1 -1
  55. package/dist/cjs/plugins/table/utils/row-controls.js +9 -9
  56. package/dist/cjs/plugins/table/utils/selection.js +1 -1
  57. package/dist/cjs/version.json +1 -1
  58. package/dist/es2019/plugins/table/commands/clear.js +3 -1
  59. package/dist/es2019/plugins/table/commands/go-to-next-cell.js +2 -2
  60. package/dist/es2019/plugins/table/commands/insert.js +4 -3
  61. package/dist/es2019/plugins/table/commands/misc.js +4 -4
  62. package/dist/es2019/plugins/table/commands/referentiality.js +1 -1
  63. package/dist/es2019/plugins/table/commands/selection.js +3 -3
  64. package/dist/es2019/plugins/table/commands/sort.js +3 -4
  65. package/dist/es2019/plugins/table/commands/toggle.js +1 -2
  66. package/dist/es2019/plugins/table/commands-with-analytics.js +4 -4
  67. package/dist/es2019/plugins/table/event-handlers.js +3 -5
  68. package/dist/es2019/plugins/table/handlers.js +5 -5
  69. package/dist/es2019/plugins/table/index.js +16 -16
  70. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -1
  71. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +21 -18
  72. package/dist/es2019/plugins/table/nodeviews/TableContainer.js +10 -9
  73. package/dist/es2019/plugins/table/nodeviews/TableResizer.js +4 -4
  74. package/dist/es2019/plugins/table/nodeviews/table.js +11 -9
  75. package/dist/es2019/plugins/table/nodeviews/tableCell.js +2 -2
  76. package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +2 -3
  77. package/dist/es2019/plugins/table/pm-plugins/keymap.js +4 -4
  78. package/dist/es2019/plugins/table/pm-plugins/main.js +13 -13
  79. package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +1 -1
  80. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -2
  81. package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +1 -1
  82. package/dist/es2019/plugins/table/pm-plugins/table-resizing/commands.js +1 -1
  83. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +4 -4
  84. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +1 -1
  85. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/column-state.js +1 -1
  86. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -1
  87. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +2 -3
  88. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +1 -1
  89. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +2 -3
  90. package/dist/es2019/plugins/table/pm-plugins/table-selection-keymap.js +1 -1
  91. package/dist/es2019/plugins/table/pm-plugins/table-width.js +3 -3
  92. package/dist/es2019/plugins/table/toolbar.js +16 -18
  93. package/dist/es2019/plugins/table/transforms/column-width.js +6 -7
  94. package/dist/es2019/plugins/table/transforms/delete-columns.js +1 -1
  95. package/dist/es2019/plugins/table/transforms/merge.js +2 -1
  96. package/dist/es2019/plugins/table/transforms/replace-table.js +2 -2
  97. package/dist/es2019/plugins/table/transforms/split.js +1 -0
  98. package/dist/es2019/plugins/table/ui/FloatingContextualButton/FixedButton.js +2 -2
  99. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +4 -4
  100. package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
  101. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +10 -10
  102. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +2 -2
  103. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +7 -4
  104. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +5 -5
  105. package/dist/es2019/plugins/table/ui/FloatingInsertButton/InsertButton.js +3 -3
  106. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +4 -5
  107. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +3 -3
  108. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +1 -1
  109. package/dist/es2019/plugins/table/ui/common-styles.js +5 -5
  110. package/dist/es2019/plugins/table/ui/consts.js +2 -2
  111. package/dist/es2019/plugins/table/ui/ui-styles.js +3 -3
  112. package/dist/es2019/plugins/table/utils/column-controls.js +3 -3
  113. package/dist/es2019/plugins/table/utils/decoration.js +2 -2
  114. package/dist/es2019/plugins/table/utils/guidelines.js +1 -1
  115. package/dist/es2019/plugins/table/utils/nodes.js +1 -1
  116. package/dist/es2019/plugins/table/utils/row-controls.js +3 -3
  117. package/dist/es2019/plugins/table/utils/selection.js +1 -1
  118. package/dist/es2019/version.json +1 -1
  119. package/dist/esm/plugins/table/commands/clear.js +3 -1
  120. package/dist/esm/plugins/table/commands/go-to-next-cell.js +2 -2
  121. package/dist/esm/plugins/table/commands/insert.js +4 -3
  122. package/dist/esm/plugins/table/commands/misc.js +4 -4
  123. package/dist/esm/plugins/table/commands/referentiality.js +1 -1
  124. package/dist/esm/plugins/table/commands/selection.js +3 -3
  125. package/dist/esm/plugins/table/commands/sort.js +3 -4
  126. package/dist/esm/plugins/table/commands/toggle.js +1 -2
  127. package/dist/esm/plugins/table/commands-with-analytics.js +4 -4
  128. package/dist/esm/plugins/table/event-handlers.js +3 -5
  129. package/dist/esm/plugins/table/handlers.js +5 -5
  130. package/dist/esm/plugins/table/index.js +16 -16
  131. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -1
  132. package/dist/esm/plugins/table/nodeviews/TableComponent.js +39 -36
  133. package/dist/esm/plugins/table/nodeviews/TableContainer.js +10 -9
  134. package/dist/esm/plugins/table/nodeviews/TableResizer.js +4 -4
  135. package/dist/esm/plugins/table/nodeviews/table.js +11 -9
  136. package/dist/esm/plugins/table/nodeviews/tableCell.js +2 -2
  137. package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +2 -3
  138. package/dist/esm/plugins/table/pm-plugins/keymap.js +4 -4
  139. package/dist/esm/plugins/table/pm-plugins/main.js +13 -13
  140. package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +1 -1
  141. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -2
  142. package/dist/esm/plugins/table/pm-plugins/table-local-id.js +1 -1
  143. package/dist/esm/plugins/table/pm-plugins/table-resizing/commands.js +1 -1
  144. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +4 -4
  145. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +1 -1
  146. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/column-state.js +1 -1
  147. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -1
  148. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +2 -3
  149. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +1 -1
  150. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +2 -3
  151. package/dist/esm/plugins/table/pm-plugins/table-selection-keymap.js +1 -1
  152. package/dist/esm/plugins/table/pm-plugins/table-width.js +3 -3
  153. package/dist/esm/plugins/table/toolbar.js +16 -18
  154. package/dist/esm/plugins/table/transforms/column-width.js +6 -7
  155. package/dist/esm/plugins/table/transforms/delete-columns.js +1 -1
  156. package/dist/esm/plugins/table/transforms/merge.js +2 -1
  157. package/dist/esm/plugins/table/transforms/replace-table.js +2 -2
  158. package/dist/esm/plugins/table/transforms/split.js +1 -0
  159. package/dist/esm/plugins/table/ui/FloatingContextualButton/FixedButton.js +2 -2
  160. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +4 -4
  161. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
  162. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +10 -10
  163. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +2 -2
  164. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +6 -3
  165. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +5 -5
  166. package/dist/esm/plugins/table/ui/FloatingInsertButton/InsertButton.js +3 -3
  167. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +4 -5
  168. package/dist/esm/plugins/table/ui/LayoutButton/index.js +3 -3
  169. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +1 -1
  170. package/dist/esm/plugins/table/ui/common-styles.js +5 -5
  171. package/dist/esm/plugins/table/ui/consts.js +2 -2
  172. package/dist/esm/plugins/table/ui/ui-styles.js +3 -3
  173. package/dist/esm/plugins/table/utils/column-controls.js +3 -3
  174. package/dist/esm/plugins/table/utils/decoration.js +2 -2
  175. package/dist/esm/plugins/table/utils/guidelines.js +1 -1
  176. package/dist/esm/plugins/table/utils/nodes.js +1 -1
  177. package/dist/esm/plugins/table/utils/row-controls.js +3 -3
  178. package/dist/esm/plugins/table/utils/selection.js +1 -1
  179. package/dist/esm/version.json +1 -1
  180. package/dist/types/plugins/table/commands/go-to-next-cell.d.ts +2 -2
  181. package/dist/types/plugins/table/commands/insert.d.ts +1 -1
  182. package/dist/types/plugins/table/commands/selection.d.ts +1 -1
  183. package/dist/types/plugins/table/commands/sort.d.ts +1 -1
  184. package/dist/types/plugins/table/commands-with-analytics.d.ts +4 -5
  185. package/dist/types/plugins/table/event-handlers.d.ts +1 -1
  186. package/dist/types/plugins/table/handlers.d.ts +1 -1
  187. package/dist/types/plugins/table/index.d.ts +4 -4
  188. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +3 -4
  189. package/dist/types/plugins/table/nodeviews/TableContainer.d.ts +2 -2
  190. package/dist/types/plugins/table/nodeviews/TableResizer.d.ts +1 -1
  191. package/dist/types/plugins/table/nodeviews/table.d.ts +3 -4
  192. package/dist/types/plugins/table/nodeviews/tableCell.d.ts +1 -2
  193. package/dist/types/plugins/table/nodeviews/types.d.ts +2 -1
  194. package/dist/types/plugins/table/pm-plugins/decorations/plugin.d.ts +2 -2
  195. package/dist/types/plugins/table/pm-plugins/keymap.d.ts +1 -1
  196. package/dist/types/plugins/table/pm-plugins/main.d.ts +4 -6
  197. package/dist/types/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +1 -1
  198. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +1 -1
  199. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +1 -1
  200. package/dist/types/plugins/table/pm-plugins/table-local-id.d.ts +0 -12
  201. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +3 -3
  202. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +3 -4
  203. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +3 -3
  204. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +1 -1
  205. package/dist/types/plugins/table/pm-plugins/table-width.d.ts +1 -1
  206. package/dist/types/plugins/table/toolbar.d.ts +4 -5
  207. package/dist/types/plugins/table/transforms/column-width.d.ts +1 -1
  208. package/dist/types/plugins/table/transforms/replace-table.d.ts +1 -1
  209. package/dist/types/plugins/table/types.d.ts +1 -1
  210. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +2 -2
  211. package/dist/types/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -2
  212. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +1 -1
  213. package/dist/types/plugins/table/ui/FloatingDeleteButton/DeleteButton.d.ts +1 -2
  214. package/dist/types/plugins/table/ui/FloatingDeleteButton/index.d.ts +1 -1
  215. package/dist/types/plugins/table/ui/FloatingInsertButton/index.d.ts +1 -1
  216. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +1 -1
  217. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  218. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +1 -1
  219. package/dist/types/plugins/table/utils/analytics.d.ts +1 -1
  220. package/dist/types/plugins/table/utils/collapse.d.ts +2 -2
  221. package/dist/types/plugins/table/utils/decoration.d.ts +1 -1
  222. package/dist/types-ts4.5/plugins/table/commands/go-to-next-cell.d.ts +2 -2
  223. package/dist/types-ts4.5/plugins/table/commands/insert.d.ts +1 -1
  224. package/dist/types-ts4.5/plugins/table/commands/selection.d.ts +1 -1
  225. package/dist/types-ts4.5/plugins/table/commands/sort.d.ts +1 -1
  226. package/dist/types-ts4.5/plugins/table/commands-with-analytics.d.ts +4 -5
  227. package/dist/types-ts4.5/plugins/table/event-handlers.d.ts +1 -1
  228. package/dist/types-ts4.5/plugins/table/handlers.d.ts +1 -1
  229. package/dist/types-ts4.5/plugins/table/index.d.ts +4 -4
  230. package/dist/types-ts4.5/plugins/table/nodeviews/TableComponent.d.ts +3 -4
  231. package/dist/types-ts4.5/plugins/table/nodeviews/TableContainer.d.ts +2 -2
  232. package/dist/types-ts4.5/plugins/table/nodeviews/TableResizer.d.ts +1 -1
  233. package/dist/types-ts4.5/plugins/table/nodeviews/table.d.ts +3 -4
  234. package/dist/types-ts4.5/plugins/table/nodeviews/tableCell.d.ts +1 -2
  235. package/dist/types-ts4.5/plugins/table/nodeviews/types.d.ts +2 -1
  236. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/plugin.d.ts +2 -2
  237. package/dist/types-ts4.5/plugins/table/pm-plugins/keymap.d.ts +1 -1
  238. package/dist/types-ts4.5/plugins/table/pm-plugins/main.d.ts +4 -6
  239. package/dist/types-ts4.5/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +1 -1
  240. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +1 -1
  241. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +1 -1
  242. package/dist/types-ts4.5/plugins/table/pm-plugins/table-local-id.d.ts +0 -12
  243. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/plugin.d.ts +3 -3
  244. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +3 -4
  245. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +3 -3
  246. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +1 -1
  247. package/dist/types-ts4.5/plugins/table/pm-plugins/table-width.d.ts +1 -1
  248. package/dist/types-ts4.5/plugins/table/toolbar.d.ts +4 -5
  249. package/dist/types-ts4.5/plugins/table/transforms/column-width.d.ts +1 -1
  250. package/dist/types-ts4.5/plugins/table/transforms/replace-table.d.ts +1 -1
  251. package/dist/types-ts4.5/plugins/table/types.d.ts +1 -1
  252. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualButton/index.d.ts +2 -2
  253. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -2
  254. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualMenu/index.d.ts +1 -1
  255. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/DeleteButton.d.ts +1 -2
  256. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/index.d.ts +1 -1
  257. package/dist/types-ts4.5/plugins/table/ui/FloatingInsertButton/index.d.ts +1 -1
  258. package/dist/types-ts4.5/plugins/table/ui/LayoutButton/index.d.ts +1 -1
  259. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  260. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/index.d.ts +1 -1
  261. package/dist/types-ts4.5/plugins/table/utils/analytics.d.ts +1 -1
  262. package/dist/types-ts4.5/plugins/table/utils/collapse.d.ts +2 -2
  263. package/dist/types-ts4.5/plugins/table/utils/decoration.d.ts +1 -1
  264. package/examples/99-testing.tsx +11 -10
  265. package/package.json +11 -3
  266. package/report.api.md +2 -0
  267. package/src/__tests__/integration/arrow-down-into-table.ts +3 -2
  268. package/src/__tests__/integration/auto-size.ts +8 -10
  269. package/src/__tests__/integration/cell-selection.ts +8 -7
  270. package/src/__tests__/integration/change-date-inside-table.ts +4 -5
  271. package/src/__tests__/integration/delete-columns.ts +6 -4
  272. package/src/__tests__/integration/delete-last-column-in-full-width.ts +4 -4
  273. package/src/__tests__/integration/delete-last-column-with-empty-action.ts +4 -4
  274. package/src/__tests__/integration/delete-last-row-with-empty-action.ts +4 -4
  275. package/src/__tests__/integration/delete-rows.ts +8 -6
  276. package/src/__tests__/integration/delete-table-when-selected.ts +10 -11
  277. package/src/__tests__/integration/deleting-empty-paragraph-under-table.ts +5 -4
  278. package/src/__tests__/integration/even-columns.ts +8 -8
  279. package/src/__tests__/integration/floating-toolbar.ts +3 -1
  280. package/src/__tests__/integration/horizontal-scroll-shadows.ts +7 -8
  281. package/src/__tests__/integration/horizontal-scroll.ts +8 -7
  282. package/src/__tests__/integration/insert-cell-header-with-strong-mark.ts +3 -4
  283. package/src/__tests__/integration/insert-row-inside-layout.ts +8 -6
  284. package/src/__tests__/integration/layout.ts +8 -11
  285. package/src/__tests__/integration/meta-arrowup-cursor-in-first-row.ts +3 -2
  286. package/src/__tests__/integration/resize-handler.ts +2 -2
  287. package/src/__tests__/integration/resize.ts +15 -15
  288. package/src/__tests__/integration/scale.ts +8 -8
  289. package/src/__tests__/integration/sticky-header.ts +3 -2
  290. package/src/__tests__/unit/analytics.ts +21 -21
  291. package/src/__tests__/unit/collab.ts +16 -16
  292. package/src/__tests__/unit/commands/go-to-next-cell.ts +14 -13
  293. package/src/__tests__/unit/commands/insert.ts +12 -12
  294. package/src/__tests__/unit/commands/misc.ts +18 -16
  295. package/src/__tests__/unit/commands/sort.ts +9 -8
  296. package/src/__tests__/unit/commands.ts +13 -14
  297. package/src/__tests__/unit/copy-paste.ts +31 -25
  298. package/src/__tests__/unit/event-handlers/index.ts +15 -13
  299. package/src/__tests__/unit/event-handlers.ts +18 -18
  300. package/src/__tests__/unit/fix-tables.ts +9 -9
  301. package/src/__tests__/unit/get-toolbar-config.ts +21 -21
  302. package/src/__tests__/unit/handlers.ts +13 -12
  303. package/src/__tests__/unit/hover-selection.ts +14 -13
  304. package/src/__tests__/unit/index-with-fake-timers.ts +6 -5
  305. package/src/__tests__/unit/index.ts +30 -31
  306. package/src/__tests__/unit/layout.ts +16 -16
  307. package/src/__tests__/unit/nodeviews/OverflowShadowsObserver.ts +4 -2
  308. package/src/__tests__/unit/nodeviews/TableComponent.tsx +21 -20
  309. package/src/__tests__/unit/nodeviews/TableContainer.tsx +38 -105
  310. package/src/__tests__/unit/nodeviews/cell.ts +17 -16
  311. package/src/__tests__/unit/nodeviews/table.ts +15 -13
  312. package/src/__tests__/unit/pm-plugins/decorations/column-controls.ts +1 -1
  313. package/src/__tests__/unit/pm-plugins/decorations/column-resizing.ts +7 -8
  314. package/src/__tests__/unit/pm-plugins/decorations/plugin.ts +45 -57
  315. package/src/__tests__/unit/pm-plugins/main.ts +15 -14
  316. package/src/__tests__/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +7 -6
  317. package/src/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +23 -21
  318. package/src/__tests__/unit/pm-plugins/table-local-id.ts +14 -15
  319. package/src/__tests__/unit/pm-plugins/table-resizing/colgroup.ts +3 -2
  320. package/src/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +22 -21
  321. package/src/__tests__/unit/sort-column.ts +16 -14
  322. package/src/__tests__/unit/toolbar.ts +22 -21
  323. package/src/__tests__/unit/transforms/delete-columns.ts +16 -14
  324. package/src/__tests__/unit/transforms/delete-rows.ts +16 -14
  325. package/src/__tests__/unit/transforms/merging.ts +15 -13
  326. package/src/__tests__/unit/ui/ContextualMenu.tsx +8 -6
  327. package/src/__tests__/unit/ui/CornerControls.tsx +11 -9
  328. package/src/__tests__/unit/ui/DeleteButton.tsx +3 -1
  329. package/src/__tests__/unit/ui/FixedButton.tsx +4 -1
  330. package/src/__tests__/unit/ui/FloatingContextualButton.tsx +14 -11
  331. package/src/__tests__/unit/ui/FloatingContextualMenu.tsx +8 -6
  332. package/src/__tests__/unit/ui/FloatingDeleteButton.tsx +12 -9
  333. package/src/__tests__/unit/ui/FloatingInsertButton.tsx +21 -19
  334. package/src/__tests__/unit/ui/RowControls.tsx +15 -12
  335. package/src/__tests__/unit/ui/TableFloatingControls.tsx +16 -15
  336. package/src/__tests__/unit/undo-redo.ts +17 -15
  337. package/src/__tests__/unit/utils/collapse.ts +7 -8
  338. package/src/__tests__/unit/utils/nodes.ts +12 -11
  339. package/src/__tests__/unit/utils/row-controls.ts +12 -12
  340. package/src/__tests__/unit/utils/table.ts +5 -4
  341. package/src/__tests__/unit/utils.ts +18 -16
  342. package/src/__tests__/visual-regression/cell-options-menu.ts +2 -2
  343. package/src/__tests__/visual-regression/index.ts +8 -7
  344. package/src/__tests__/visual-regression/sticky-header.ts +6 -5
  345. package/src/plugins/table/commands/clear.ts +3 -2
  346. package/src/plugins/table/commands/collapse.ts +1 -0
  347. package/src/plugins/table/commands/go-to-next-cell.ts +8 -7
  348. package/src/plugins/table/commands/insert.ts +8 -7
  349. package/src/plugins/table/commands/misc.ts +15 -18
  350. package/src/plugins/table/commands/referentiality.ts +3 -1
  351. package/src/plugins/table/commands/selection.ts +11 -10
  352. package/src/plugins/table/commands/sort.ts +9 -9
  353. package/src/plugins/table/commands/split-cell.ts +1 -1
  354. package/src/plugins/table/commands/toggle.ts +2 -3
  355. package/src/plugins/table/commands-with-analytics.ts +15 -15
  356. package/src/plugins/table/event-handlers.ts +19 -20
  357. package/src/plugins/table/handlers.ts +6 -7
  358. package/src/plugins/table/index.tsx +51 -51
  359. package/src/plugins/table/nodeviews/OverflowShadowsObserver.ts +2 -1
  360. package/src/plugins/table/nodeviews/TableComponent.tsx +23 -30
  361. package/src/plugins/table/nodeviews/TableContainer.tsx +16 -23
  362. package/src/plugins/table/nodeviews/TableResizer.tsx +8 -7
  363. package/src/plugins/table/nodeviews/table.tsx +25 -18
  364. package/src/plugins/table/nodeviews/tableCell.tsx +9 -7
  365. package/src/plugins/table/nodeviews/types.ts +4 -2
  366. package/src/plugins/table/nodeviews/update-overflow-shadows.ts +3 -1
  367. package/src/plugins/table/pm-plugins/decorations/plugin.ts +4 -3
  368. package/src/plugins/table/pm-plugins/decorations/utils/column-controls.ts +2 -1
  369. package/src/plugins/table/pm-plugins/keymap.ts +8 -8
  370. package/src/plugins/table/pm-plugins/main.ts +38 -33
  371. package/src/plugins/table/pm-plugins/plugin-factory.ts +2 -0
  372. package/src/plugins/table/pm-plugins/plugin-key.ts +1 -0
  373. package/src/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.ts +2 -1
  374. package/src/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.ts +6 -7
  375. package/src/plugins/table/pm-plugins/sticky-headers/plugin-key.ts +1 -0
  376. package/src/plugins/table/pm-plugins/sticky-headers/plugin.ts +3 -4
  377. package/src/plugins/table/pm-plugins/table-local-id.ts +3 -4
  378. package/src/plugins/table/pm-plugins/table-resizing/commands.ts +3 -2
  379. package/src/plugins/table/pm-plugins/table-resizing/event-handlers.ts +13 -14
  380. package/src/plugins/table/pm-plugins/table-resizing/plugin-factory.ts +1 -0
  381. package/src/plugins/table/pm-plugins/table-resizing/plugin-key.ts +1 -0
  382. package/src/plugins/table/pm-plugins/table-resizing/plugin.ts +7 -6
  383. package/src/plugins/table/pm-plugins/table-resizing/utils/colgroup.ts +2 -1
  384. package/src/plugins/table/pm-plugins/table-resizing/utils/column-state.ts +1 -1
  385. package/src/plugins/table/pm-plugins/table-resizing/utils/dom.ts +3 -3
  386. package/src/plugins/table/pm-plugins/table-resizing/utils/misc.ts +8 -9
  387. package/src/plugins/table/pm-plugins/table-resizing/utils/resize-state.ts +8 -6
  388. package/src/plugins/table/pm-plugins/table-resizing/utils/scale-table.ts +4 -5
  389. package/src/plugins/table/pm-plugins/table-resizing/utils/types.ts +2 -1
  390. package/src/plugins/table/pm-plugins/table-selection-keymap.ts +4 -3
  391. package/src/plugins/table/pm-plugins/table-width.ts +5 -4
  392. package/src/plugins/table/toolbar.tsx +54 -57
  393. package/src/plugins/table/transforms/column-width.ts +13 -13
  394. package/src/plugins/table/transforms/delete-columns.ts +2 -2
  395. package/src/plugins/table/transforms/delete-rows.ts +2 -2
  396. package/src/plugins/table/transforms/merge.ts +3 -3
  397. package/src/plugins/table/transforms/replace-table.ts +6 -5
  398. package/src/plugins/table/transforms/split.ts +1 -1
  399. package/src/plugins/table/types.ts +3 -3
  400. package/src/plugins/table/ui/FloatingContextualButton/FixedButton.tsx +4 -2
  401. package/src/plugins/table/ui/FloatingContextualButton/index.tsx +12 -11
  402. package/src/plugins/table/ui/FloatingContextualButton/styles.ts +5 -3
  403. package/src/plugins/table/ui/FloatingContextualMenu/ContextualMenu.tsx +27 -28
  404. package/src/plugins/table/ui/FloatingContextualMenu/index.tsx +10 -11
  405. package/src/plugins/table/ui/FloatingContextualMenu/styles.ts +8 -4
  406. package/src/plugins/table/ui/FloatingDeleteButton/DeleteButton.tsx +5 -2
  407. package/src/plugins/table/ui/FloatingDeleteButton/index.tsx +9 -9
  408. package/src/plugins/table/ui/FloatingInsertButton/InsertButton.tsx +4 -5
  409. package/src/plugins/table/ui/FloatingInsertButton/index.tsx +16 -18
  410. package/src/plugins/table/ui/LayoutButton/index.tsx +6 -6
  411. package/src/plugins/table/ui/TableFloatingControls/CornerControls/index.tsx +3 -2
  412. package/src/plugins/table/ui/TableFloatingControls/NumberColumn/index.tsx +2 -1
  413. package/src/plugins/table/ui/TableFloatingControls/index.tsx +2 -3
  414. package/src/plugins/table/ui/common-styles.ts +33 -34
  415. package/src/plugins/table/ui/consts.ts +12 -13
  416. package/src/plugins/table/ui/ui-styles.ts +24 -22
  417. package/src/plugins/table/utils/analytics.ts +3 -2
  418. package/src/plugins/table/utils/collapse.ts +2 -2
  419. package/src/plugins/table/utils/column-controls.ts +5 -6
  420. package/src/plugins/table/utils/decoration.ts +6 -7
  421. package/src/plugins/table/utils/dom.ts +1 -0
  422. package/src/plugins/table/utils/guidelines.ts +2 -2
  423. package/src/plugins/table/utils/nodes.ts +2 -1
  424. package/src/plugins/table/utils/row-controls.ts +4 -3
  425. package/src/plugins/table/utils/selection.ts +2 -1
  426. package/src/plugins/table/utils/table.ts +2 -1
  427. package/tmp/api-report-tmp.d.ts +2 -0
@@ -1,20 +1,22 @@
1
1
  import React, { CSSProperties } from 'react';
2
+
2
3
  import classnames from 'classnames';
4
+ import memoizeOne from 'memoize-one';
3
5
  import { Node as PmNode } from 'prosemirror-model';
4
- import { isTableSelected } from '@atlaskit/editor-tables/utils';
5
6
  import { EditorView } from 'prosemirror-view';
6
7
  import rafSchedule from 'raf-schd';
7
- import { findTable } from '@atlaskit/editor-tables/utils';
8
8
 
9
+ import type { TableColumnOrdering } from '@atlaskit/adf-schema/steps';
10
+ import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
11
+ import { getParentNodeWidth } from '@atlaskit/editor-common/node-width';
9
12
  import { tableMarginSides } from '@atlaskit/editor-common/styles';
13
+ import type {
14
+ EditorContainerWidth,
15
+ GetEditorFeatureFlags,
16
+ } from '@atlaskit/editor-common/types';
10
17
  import { browser, isValidPosition } from '@atlaskit/editor-common/utils';
11
- import {
12
- akEditorMobileBreakoutPoint,
13
- akEditorTableToolbarSize as tableToolbarSize,
14
- } from '@atlaskit/editor-shared-styles';
15
-
16
- import type { EditorContainerWidth } from '@atlaskit/editor-common/types';
17
- import { getParentNodeWidth } from '@atlaskit/editor-common/node-width';
18
+ import { akEditorTableToolbarSize as tableToolbarSize } from '@atlaskit/editor-shared-styles';
19
+ import { findTable, isTableSelected } from '@atlaskit/editor-tables/utils';
18
20
 
19
21
  import { autoSizeTable, clearHoverSelection } from '../commands';
20
22
  import { getPluginState } from '../pm-plugins/plugin-factory';
@@ -30,29 +32,23 @@ import {
30
32
  scaleTable,
31
33
  } from '../pm-plugins/table-resizing/utils';
32
34
  import { updateControls } from '../pm-plugins/table-resizing/utils/dom';
33
-
34
- import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
35
35
  import {
36
36
  TableCssClassName as ClassName,
37
37
  PluginInjectionAPI,
38
38
  ShadowEvent,
39
39
  } from '../types';
40
- import type { TableColumnOrdering } from '@atlaskit/adf-schema/steps';
41
40
  import TableFloatingControls from '../ui/TableFloatingControls';
42
41
  import {
43
42
  containsHeaderRow,
43
+ isTableNested,
44
44
  tablesHaveDifferentColumnWidths,
45
45
  tablesHaveDifferentNoOfColumns,
46
- isTableNested,
47
46
  } from '../utils';
48
47
 
49
- import type { TableOptions } from './types';
50
- import { updateOverflowShadows } from './update-overflow-shadows';
51
- import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
52
- import memoizeOne from 'memoize-one';
53
48
  import { OverflowShadowsObserver } from './OverflowShadowsObserver';
54
49
  import { TableContainer } from './TableContainer';
55
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
50
+ import type { TableOptions } from './types';
51
+ import { updateOverflowShadows } from './update-overflow-shadows';
56
52
 
57
53
  const isIE11 = browser.ie_version === 11;
58
54
  const NOOP = () => undefined;
@@ -142,7 +138,7 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
142
138
  }
143
139
 
144
140
  componentDidMount() {
145
- const { allowColumnResizing, eventDispatcher } = this.props;
141
+ const { allowColumnResizing, eventDispatcher, options } = this.props;
146
142
  if (allowColumnResizing && this.wrapper && !isIE11) {
147
143
  this.wrapper.addEventListener('scroll', this.handleScrollDebounced);
148
144
  }
@@ -152,7 +148,7 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
152
148
  * We no longer use `containerWidth` as a variable to determine an update for table resizing (avoids unnecessary updates).
153
149
  * Instead we use the resize event to only trigger updates when necessary.
154
150
  */
155
- if (!getBooleanFF('platform.editor.custom-table-width')) {
151
+ if (!options?.isTableResizingEnabled) {
156
152
  window.addEventListener('resize', this.handleWindowResizeDebounced);
157
153
  }
158
154
  this.handleTableResizingDebounced();
@@ -170,6 +166,7 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
170
166
  }
171
167
 
172
168
  componentWillUnmount() {
169
+ const { allowColumnResizing, eventDispatcher, options } = this.props;
173
170
  if (this.wrapper && !isIE11) {
174
171
  this.wrapper.removeEventListener('scroll', this.handleScrollDebounced);
175
172
  }
@@ -178,14 +175,11 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
178
175
  this.scaleTableDebounced.cancel();
179
176
  this.handleTableResizingDebounced.cancel();
180
177
  this.handleAutoSizeDebounced.cancel();
181
- if (!getBooleanFF('platform.editor.custom-table-width')) {
178
+ if (!options?.isTableResizingEnabled) {
182
179
  this.handleWindowResizeDebounced.cancel();
183
180
  }
184
181
 
185
- if (
186
- !getBooleanFF('platform.editor.custom-table-width') &&
187
- this.props.allowColumnResizing
188
- ) {
182
+ if (!options?.isTableResizingEnabled && allowColumnResizing) {
189
183
  window.removeEventListener('resize', this.handleWindowResizeDebounced);
190
184
  }
191
185
 
@@ -193,7 +187,7 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
193
187
  this.overflowShadowsObserver.dispose();
194
188
  }
195
189
 
196
- this.props.eventDispatcher.off(
190
+ eventDispatcher.off(
197
191
  (stickyHeadersPluginKey as any).key,
198
192
  this.onStickyState,
199
193
  );
@@ -396,17 +390,16 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
396
390
  [ClassName.TABLE_STICKY]: this.state.stickyHeader && hasHeaderRow,
397
391
  [ClassName.HOVERED_DELETE_BUTTON]: isInDanger,
398
392
  [ClassName.TABLE_SELECTED]: isTableSelected(view.state.selection),
399
- 'less-padding': containerWidth.width < akEditorMobileBreakoutPoint,
400
393
  })}
401
394
  editorView={view}
402
395
  getPos={getPos}
403
396
  node={node}
404
397
  tableRef={tableRef!}
405
398
  containerWidth={containerWidth}
406
- isFullWidthModeEnabled={options?.isFullWidthModeEnabled}
407
399
  isBreakoutEnabled={options?.isBreakoutEnabled}
408
400
  isNested={isNested}
409
401
  pluginInjectionApi={pluginInjectionApi}
402
+ isTableResizingEnabled={options?.isTableResizingEnabled}
410
403
  >
411
404
  {stickyHeadersOptimization && (
412
405
  <div
@@ -562,8 +555,8 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
562
555
  noOfColumnsChanged
563
556
  ) {
564
557
  const shouldScaleTable =
565
- (!getBooleanFF('platform.editor.custom-table-width') ||
566
- (getBooleanFF('platform.editor.custom-table-width') && isNested)) &&
558
+ (!options?.isTableResizingEnabled ||
559
+ (options?.isTableResizingEnabled && isNested)) &&
567
560
  !hasNumberedColumnChanged &&
568
561
  !noOfColumnsChanged;
569
562
 
@@ -1,21 +1,24 @@
1
1
  import React, {
2
+ forwardRef,
2
3
  PropsWithChildren,
3
4
  useCallback,
4
5
  useRef,
5
- forwardRef,
6
6
  } from 'react';
7
+
8
+ import classNames from 'classnames';
7
9
  import { Node as PMNode } from 'prosemirror-model';
8
10
  import { EditorView } from 'prosemirror-view';
9
11
 
10
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
11
12
  import { getTableContainerWidth } from '@atlaskit/editor-common/node-width';
12
- import { EditorContainerWidth } from '@atlaskit/editor-common/types';
13
13
  import { calcTableWidth } from '@atlaskit/editor-common/styles';
14
+ import { EditorContainerWidth } from '@atlaskit/editor-common/types';
14
15
  import type { GuidelineConfig } from '@atlaskit/editor-plugin-guideline';
16
+ import { akEditorMobileBreakoutPoint } from '@atlaskit/editor-shared-styles';
15
17
 
16
- import { PluginInjectionAPI, TableCssClassName as ClassName } from '../types';
17
- import { TableResizer } from './TableResizer';
18
18
  import { TABLE_MAX_WIDTH } from '../pm-plugins/table-resizing/utils';
19
+ import { TableCssClassName as ClassName, PluginInjectionAPI } from '../types';
20
+
21
+ import { TableResizer } from './TableResizer';
19
22
 
20
23
  const getMarginLeft = (lineLength: number, tableWidth: number | 'inherit') => {
21
24
  let marginLeft;
@@ -80,12 +83,11 @@ export const ResizableTableContainer = ({
80
83
  pluginInjectionApi,
81
84
  }: PropsWithChildren<ResizableTableContainerProps>) => {
82
85
  const containerRef = useRef<HTMLDivElement | null>(null);
83
- const innerContainerRef = useRef<HTMLDivElement | null>(null);
84
86
  const marginLeftRef = useRef<number | undefined>(0);
85
87
 
86
88
  const updateWidth = useCallback(
87
89
  (width: number) => {
88
- if (!containerRef.current || !innerContainerRef.current) {
90
+ if (!containerRef.current) {
89
91
  return;
90
92
  }
91
93
 
@@ -140,11 +142,7 @@ export const ResizableTableContainer = ({
140
142
  tableRef={tableRef}
141
143
  displayGuideline={displayGuideline}
142
144
  >
143
- <InnerContainer
144
- ref={innerContainerRef}
145
- className={className}
146
- node={node}
147
- >
145
+ <InnerContainer className={className} node={node}>
148
146
  {children}
149
147
  </InnerContainer>
150
148
  </TableResizer>
@@ -156,10 +154,7 @@ type TableContainerProps = {
156
154
  node: PMNode;
157
155
  className: string;
158
156
  containerWidth: EditorContainerWidth;
159
- // TODO: passing through both isFullWidthModeEnabled and isBreakoutEnabled to support custom table widths and
160
- // exiting breakout behaviour. In the future these values will be removed and replaced
161
- // with a single table plugin option - requires changes to editor-core
162
- isFullWidthModeEnabled: boolean | undefined;
157
+ isTableResizingEnabled: boolean | undefined;
163
158
  isBreakoutEnabled: boolean | undefined;
164
159
  editorView: EditorView;
165
160
  getPos: () => number | undefined;
@@ -173,7 +168,7 @@ export const TableContainer = ({
173
168
  node,
174
169
  className,
175
170
  containerWidth: { lineLength, width: editorWidth },
176
- isFullWidthModeEnabled,
171
+ isTableResizingEnabled,
177
172
  isBreakoutEnabled,
178
173
  editorView,
179
174
  getPos,
@@ -181,11 +176,7 @@ export const TableContainer = ({
181
176
  isNested,
182
177
  pluginInjectionApi,
183
178
  }: PropsWithChildren<TableContainerProps>) => {
184
- if (
185
- (isFullWidthModeEnabled || isBreakoutEnabled) &&
186
- getBooleanFF('platform.editor.custom-table-width') &&
187
- !isNested
188
- ) {
179
+ if (isTableResizingEnabled && !isNested) {
189
180
  return (
190
181
  <ResizableTableContainer
191
182
  className={className}
@@ -209,7 +200,9 @@ export const TableContainer = ({
209
200
  return (
210
201
  <InnerContainer
211
202
  node={node}
212
- className={className}
203
+ className={classNames(className, {
204
+ 'less-padding': editorWidth < akEditorMobileBreakoutPoint,
205
+ })}
213
206
  style={{
214
207
  width: tableWidth,
215
208
  marginLeft: getMarginLeft(lineLength!, tableWidth),
@@ -1,32 +1,33 @@
1
1
  import React, {
2
2
  PropsWithChildren,
3
3
  useCallback,
4
- useRef,
5
4
  useMemo,
5
+ useRef,
6
6
  useState,
7
7
  } from 'react';
8
- import { EditorView } from 'prosemirror-view';
8
+
9
9
  import { Node as PMNode } from 'prosemirror-model';
10
+ import { EditorView } from 'prosemirror-view';
10
11
  import rafSchd from 'raf-schd';
11
12
 
13
+ import { getGuidelinesWithHighlights } from '@atlaskit/editor-common/guideline';
12
14
  import {
13
15
  HandleHeightSizeType,
14
16
  HandleResize,
15
17
  ResizerNext,
16
18
  } from '@atlaskit/editor-common/resizer';
17
- import { getGuidelinesWithHighlights } from '@atlaskit/editor-common/guideline';
18
19
  import type { GuidelineConfig } from '@atlaskit/editor-plugin-guideline';
19
20
 
20
21
  import {
21
- scaleTable,
22
- previewScaleTable,
23
- getColgroupChildrenLength,
24
22
  COLUMN_MIN_WIDTH,
23
+ getColgroupChildrenLength,
24
+ previewScaleTable,
25
+ scaleTable,
25
26
  } from '../pm-plugins/table-resizing/utils';
26
27
  import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
28
+ import { TABLE_HIGHLIGHT_GAP, TABLE_SNAP_GAP } from '../ui/consts';
27
29
  import { defaultGuidelines, defaultGuidelineWidths } from '../utils/guidelines';
28
30
  import { findClosestSnap } from '../utils/snapping';
29
- import { TABLE_SNAP_GAP, TABLE_HIGHLIGHT_GAP } from '../ui/consts';
30
31
 
31
32
  interface TableResizerProps {
32
33
  width: number;
@@ -1,50 +1,52 @@
1
1
  import React from 'react';
2
+
2
3
  import {
3
4
  DOMOutputSpec,
4
5
  DOMSerializer,
5
6
  Node as PmNode,
6
7
  } from 'prosemirror-model';
8
+ import { EditorState, PluginKey } from 'prosemirror-state';
7
9
  import { EditorView, NodeView } from 'prosemirror-view';
8
- import { PluginKey, EditorState } from 'prosemirror-state';
9
- import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
10
- import type {
11
- getPosHandler,
12
- getPosHandlerNode,
13
- } from '@atlaskit/editor-common/types';
14
10
 
15
- import ReactNodeView from '@atlaskit/editor-common/react-node-view';
11
+ import type { TableColumnOrdering } from '@atlaskit/adf-schema/steps';
12
+ import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
13
+ import { getTableContainerWidth } from '@atlaskit/editor-common/node-width';
16
14
  import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
15
+ import ReactNodeView from '@atlaskit/editor-common/react-node-view';
17
16
  import type {
18
17
  GetEditorContainerWidth,
19
18
  GetEditorFeatureFlags,
19
+ getPosHandler,
20
+ getPosHandlerNode,
20
21
  } from '@atlaskit/editor-common/types';
21
22
  import { WithPluginState } from '@atlaskit/editor-common/with-plugin-state';
23
+ import { TableMap } from '@atlaskit/editor-tables/table-map';
22
24
 
23
25
  import { pluginConfig as getPluginConfig } from '../create-plugin-config';
24
26
  import { getPluginState } from '../pm-plugins/plugin-factory';
25
27
  import { pluginKey } from '../pm-plugins/plugin-key';
26
28
  import { pluginKey as tableResizingPluginKey } from '../pm-plugins/table-resizing';
27
- import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
28
29
  import { generateColgroup } from '../pm-plugins/table-resizing/utils';
29
- import { TableMap } from '@atlaskit/editor-tables/table-map';
30
+ import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
31
+ import { PluginInjectionAPI } from '../types';
32
+ import { isTableNested } from '../utils';
33
+
30
34
  import TableComponent from './TableComponent';
31
35
  import { Props, TableOptions } from './types';
32
- import type { TableColumnOrdering } from '@atlaskit/adf-schema/steps';
33
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
34
- import { getTableContainerWidth } from '@atlaskit/editor-common/node-width';
35
- import { isTableNested } from '../utils';
36
- import { PluginInjectionAPI } from '../types';
37
36
 
38
37
  type ForwardRef = (node: HTMLElement | null) => void;
39
38
 
40
39
  const tableAttributes = (
41
40
  node: PmNode,
41
+ options: Props['options'],
42
42
  state: EditorState,
43
43
  pos: number | undefined,
44
44
  ) => {
45
+ // provide a width for tables when custom table width is supported
46
+ // this is to ensure 'responsive' tables (colgroup widths are undefined) become fixed to
47
+ // support screen size adjustments
45
48
  const shouldHaveInlineWidth =
46
- getBooleanFF('platform.editor.custom-table-width') &&
47
- !isTableNested(state, pos);
49
+ options?.isTableResizingEnabled && !isTableNested(state, pos);
48
50
 
49
51
  let style = shouldHaveInlineWidth
50
52
  ? `width: ${getTableContainerWidth(node)}px`
@@ -69,7 +71,7 @@ const toDOM = (node: PmNode, props: Props) => {
69
71
 
70
72
  return [
71
73
  'table',
72
- tableAttributes(node, props.view.state, props.getPos()),
74
+ tableAttributes(node, props.options, props.view.state, props.getPos()),
73
75
  colgroup,
74
76
  ['tbody', 0],
75
77
  ] as DOMOutputSpec;
@@ -122,7 +124,12 @@ export default class TableView extends ReactNodeView<Props> {
122
124
  return;
123
125
  }
124
126
 
125
- const attrs = tableAttributes(node, this.view.state, this.getPos());
127
+ const attrs = tableAttributes(
128
+ node,
129
+ (this.reactComponentProps as Props).options,
130
+ this.view.state,
131
+ this.getPos(),
132
+ );
126
133
  (Object.keys(attrs) as Array<keyof typeof attrs>).forEach((attr) => {
127
134
  this.table!.setAttribute(attr, attrs[attr]);
128
135
  });
@@ -1,15 +1,17 @@
1
- import uuid from 'uuid';
2
- import { Node, DOMSerializer } from 'prosemirror-model';
1
+ import { DOMSerializer, Node } from 'prosemirror-model';
3
2
  import { EditorView, NodeView } from 'prosemirror-view';
4
- import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
5
- import type { getPosHandler } from '@atlaskit/editor-common/types';
3
+ import uuid from 'uuid';
6
4
 
7
5
  import {
8
- getCellDomAttrs,
9
- getCellAttrs,
10
6
  CellDomAttrs,
7
+ getCellAttrs,
8
+ getCellDomAttrs,
11
9
  } from '@atlaskit/adf-schema';
12
- import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
10
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
11
+ import type {
12
+ GetEditorFeatureFlags,
13
+ getPosHandler,
14
+ } from '@atlaskit/editor-common/types';
13
15
 
14
16
  const DEFAULT_COL_SPAN = 1;
15
17
  const DEFAULT_ROW_SPAN = 1;
@@ -1,18 +1,20 @@
1
1
  import { Node as PmNode } from 'prosemirror-model';
2
2
  import { EditorView } from 'prosemirror-view';
3
3
 
4
+ import { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
5
+ import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
4
6
  import type {
5
7
  GetEditorContainerWidth,
6
8
  GetEditorFeatureFlags,
7
9
  } from '@atlaskit/editor-common/types';
8
- import { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
9
- import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
10
+
10
11
  import type { PluginInjectionAPI } from '../types';
11
12
 
12
13
  export type TableOptions = {
13
14
  isBreakoutEnabled?: boolean;
14
15
  isFullWidthModeEnabled?: boolean;
15
16
  wasFullWidthModeEnabled?: boolean;
17
+ isTableResizingEnabled?: boolean;
16
18
  };
17
19
 
18
20
  export interface Props {
@@ -1,5 +1,7 @@
1
- import { TableCssClassName as ClassName } from '../types';
2
1
  import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
2
+
3
+ import { TableCssClassName as ClassName } from '../types';
4
+
3
5
  export const updateShadowListForStickyStyles = (
4
6
  heightStyle: string,
5
7
 
@@ -1,14 +1,15 @@
1
- import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
1
  import {
3
2
  EditorState,
4
3
  PluginKey,
5
- Transaction,
6
4
  // @ts-ignore -- ReadonlyTransaction is a local declaration and will cause a TS2305 error in CCFE typecheck
7
5
  ReadonlyTransaction,
6
+ Transaction,
8
7
  } from 'prosemirror-state';
9
- import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
10
8
  import { DecorationSet } from 'prosemirror-view';
11
9
 
10
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
11
+ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
12
+
12
13
  import { pluginKey as tablePluginKey } from '../plugin-key';
13
14
  import { pluginKey as tableWidthPluginKey } from '../table-width';
14
15
 
@@ -1,8 +1,9 @@
1
1
  // @ts-ignore -- ReadonlyTransaction is a local declaration and will cause a TS2305 error in CCFE typecheck
2
2
  import { ReadonlyTransaction, Transaction } from 'prosemirror-state';
3
+ import { DecorationSet } from 'prosemirror-view';
4
+
3
5
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
4
6
  import { findTable } from '@atlaskit/editor-tables/utils';
5
- import { DecorationSet } from 'prosemirror-view';
6
7
 
7
8
  import { TableDecorations } from '../../../types';
8
9
  import {
@@ -1,31 +1,31 @@
1
- import { keymap } from 'prosemirror-keymap';
2
- import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
1
  import { chainCommands } from 'prosemirror-commands';
2
+ import { keymap } from 'prosemirror-keymap';
4
3
 
5
- import * as keymaps from '@atlaskit/editor-common/keymaps';
6
4
  import {
7
5
  ACTION,
8
6
  ACTION_SUBJECT,
9
7
  ACTION_SUBJECT_ID,
8
+ EditorAnalyticsAPI,
10
9
  EVENT_TYPE,
11
10
  INPUT_METHOD,
12
11
  } from '@atlaskit/editor-common/analytics';
12
+ import * as keymaps from '@atlaskit/editor-common/keymaps';
13
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
14
+ import type { GetEditorContainerWidth } from '@atlaskit/editor-common/types';
15
+
13
16
  import {
14
- triggerUnlessTableHeader,
15
17
  createTable,
16
18
  goToNextCell,
17
19
  moveCursorBackward,
20
+ triggerUnlessTableHeader,
18
21
  } from '../commands';
19
22
  import {
20
23
  addRowAroundSelection,
21
- emptyMultipleCellsWithAnalytics,
22
24
  deleteTableIfSelectedWithAnalytics,
25
+ emptyMultipleCellsWithAnalytics,
23
26
  } from '../commands-with-analytics';
24
27
  import { addColumnAfter, addColumnBefore } from '../commands/insert';
25
-
26
28
  import { withEditorAnalyticsAPI } from '../utils/analytics';
27
- import type { GetEditorContainerWidth } from '@atlaskit/editor-common/types';
28
- import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
29
29
 
30
30
  const createTableWithAnalytics = (
31
31
  editorAnalyticsAPI: EditorAnalyticsAPI | undefined | null,
@@ -1,27 +1,51 @@
1
- import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
1
+ import { Node as ProseMirrorNode } from 'prosemirror-model';
2
2
  import { EditorState, TextSelection, Transaction } from 'prosemirror-state';
3
3
  import {
4
4
  findParentDomRefOfType,
5
5
  findParentNodeOfType,
6
6
  } from 'prosemirror-utils';
7
- import { Node as ProseMirrorNode } from 'prosemirror-model';
8
- import { findTable } from '@atlaskit/editor-tables/utils';
9
7
  import { EditorView } from 'prosemirror-view';
10
- import { browser } from '@atlaskit/editor-common/utils';
11
8
 
9
+ import {
10
+ ACTION,
11
+ ACTION_SUBJECT,
12
+ EVENT_TYPE,
13
+ INPUT_METHOD,
14
+ } from '@atlaskit/editor-common/analytics';
15
+ import type {
16
+ DispatchAnalyticsEvent,
17
+ EditorAnalyticsAPI,
18
+ } from '@atlaskit/editor-common/analytics';
19
+ import { insideTable } from '@atlaskit/editor-common/core-utils';
12
20
  import type {
13
21
  Dispatch,
14
22
  EventDispatcher,
15
23
  } from '@atlaskit/editor-common/event-dispatcher';
16
24
  import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
17
-
18
- import { closestElement } from '@atlaskit/editor-common/utils';
25
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
26
+ import {
27
+ transformSliceToRemoveOpenBodiedExtension,
28
+ transformSliceToRemoveOpenExpand,
29
+ transformSliceToRemoveOpenLayoutNodes,
30
+ } from '@atlaskit/editor-common/transforms';
31
+ import type {
32
+ GetEditorContainerWidth,
33
+ GetEditorFeatureFlags,
34
+ getPosHandler,
35
+ } from '@atlaskit/editor-common/types';
36
+ import { browser, closestElement } from '@atlaskit/editor-common/utils';
37
+ import { findTable } from '@atlaskit/editor-tables/utils';
19
38
 
20
39
  import {
21
40
  addBoldInEmptyHeaderCells,
22
41
  clearHoverSelection,
23
42
  setTableRef,
24
43
  } from '../commands';
44
+ import {
45
+ transformSliceRemoveCellBackgroundColor,
46
+ transformSliceToAddTableHeaders,
47
+ transformSliceToRemoveColumnsWidths,
48
+ } from '../commands/misc';
25
49
  import {
26
50
  handleBlur,
27
51
  handleClick,
@@ -36,13 +60,15 @@ import {
36
60
  whenTableInFocus,
37
61
  } from '../event-handlers';
38
62
  import { createTableView } from '../nodeviews/table';
63
+ import TableCellNodeView from '../nodeviews/tableCell';
39
64
  import { pluginKey as decorationsPluginKey } from '../pm-plugins/decorations/plugin';
40
65
  import { fixTables, replaceSelectedTable } from '../transforms';
41
66
  import {
42
67
  TableCssClassName as ClassName,
43
- PluginConfig,
44
68
  ElementContentRects,
45
69
  InvalidNodeAttr,
70
+ PluginConfig,
71
+ PluginInjectionAPI,
46
72
  } from '../types';
47
73
  import {
48
74
  findControlsHoverDecoration,
@@ -51,40 +77,16 @@ import {
51
77
  transformSliceToRemoveOpenTable,
52
78
  updateResizeHandles,
53
79
  } from '../utils';
54
- import {
55
- ACTION,
56
- ACTION_SUBJECT,
57
- EVENT_TYPE,
58
- INPUT_METHOD,
59
- } from '@atlaskit/editor-common/analytics';
60
- import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
80
+ import { isHeaderRowRequired } from '../utils/paste';
61
81
 
62
82
  import { defaultTableSelection } from './default-table-selection';
63
83
  import { createPluginState, getPluginState } from './plugin-factory';
64
84
  import { pluginKey } from './plugin-key';
65
- import TableCellNodeView from '../nodeviews/tableCell';
66
-
67
- import {
68
- transformSliceRemoveCellBackgroundColor,
69
- transformSliceToRemoveColumnsWidths,
70
- transformSliceToAddTableHeaders,
71
- } from '../commands/misc';
72
- import type { DispatchAnalyticsEvent } from '@atlaskit/editor-common/analytics';
73
- import { transformSliceToRemoveOpenLayoutNodes } from '@atlaskit/editor-common/transforms';
74
- import { transformSliceToRemoveOpenExpand } from '@atlaskit/editor-common/transforms';
75
- import { transformSliceToRemoveOpenBodiedExtension } from '@atlaskit/editor-common/transforms';
76
- import { insideTable } from '@atlaskit/editor-common/core-utils';
77
- import { isHeaderRowRequired } from '../utils/paste';
78
- import type {
79
- GetEditorContainerWidth,
80
- GetEditorFeatureFlags,
81
- } from '@atlaskit/editor-common/types';
82
- import type { getPosHandler } from '@atlaskit/editor-common/types';
83
- import type { PluginInjectionAPI } from '../types';
84
85
 
85
86
  let isBreakoutEnabled: boolean | undefined;
86
87
  let isFullWidthModeEnabled: boolean | undefined;
87
88
  let wasFullWidthModeEnabled: boolean | undefined;
89
+ let isTableResizingEnabled: boolean | undefined;
88
90
 
89
91
  export const createPlugin = (
90
92
  dispatchAnalyticsEvent: DispatchAnalyticsEvent,
@@ -96,6 +98,7 @@ export const createPlugin = (
96
98
  getEditorFeatureFlags: GetEditorFeatureFlags,
97
99
  breakoutEnabled?: boolean,
98
100
  fullWidthModeEnabled?: boolean,
101
+ tableResizingEnabled?: boolean,
99
102
  previousFullWidthModeEnabled?: boolean,
100
103
  editorAnalyticsAPI?: EditorAnalyticsAPI,
101
104
  pluginInjectionApi?: PluginInjectionAPI,
@@ -103,6 +106,7 @@ export const createPlugin = (
103
106
  isBreakoutEnabled = breakoutEnabled;
104
107
  isFullWidthModeEnabled = fullWidthModeEnabled;
105
108
  wasFullWidthModeEnabled = previousFullWidthModeEnabled;
109
+ isTableResizingEnabled = tableResizingEnabled;
106
110
 
107
111
  const state = createPluginState(dispatch, {
108
112
  pluginConfig,
@@ -373,6 +377,7 @@ export const createPlugin = (
373
377
  isBreakoutEnabled,
374
378
  isFullWidthModeEnabled,
375
379
  wasFullWidthModeEnabled,
380
+ isTableResizingEnabled,
376
381
  },
377
382
  getEditorContainerWidth,
378
383
  getEditorFeatureFlags,
@@ -1,6 +1,8 @@
1
1
  import { pluginFactory } from '@atlaskit/editor-common/utils';
2
+
2
3
  import { handleDocOrSelectionChanged } from '../handlers';
3
4
  import reducer from '../reducer';
5
+
4
6
  import { pluginKey } from './plugin-key';
5
7
 
6
8
  export const { createPluginState, createCommand, getPluginState } =
@@ -1,4 +1,5 @@
1
1
  import { PluginKey } from 'prosemirror-state';
2
+
2
3
  import { TablePluginState } from '../types';
3
4
 
4
5
  export const pluginKey = new PluginKey<TablePluginState>('tablePlugin');