@atlaskit/editor-plugin-table 7.5.4 → 7.5.6

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 (236) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/commands/column-resize.js +3 -3
  3. package/dist/cjs/commands/delete.js +2 -2
  4. package/dist/cjs/commands/insert.js +15 -15
  5. package/dist/cjs/commands-with-analytics.js +7 -7
  6. package/dist/cjs/event-handlers.js +27 -11
  7. package/dist/cjs/nodeviews/OverflowShadowsObserver.js +24 -15
  8. package/dist/cjs/nodeviews/TableCell.js +5 -30
  9. package/dist/cjs/nodeviews/TableComponent.js +120 -83
  10. package/dist/cjs/nodeviews/TableContainer.js +23 -21
  11. package/dist/cjs/nodeviews/TableResizer.js +13 -13
  12. package/dist/cjs/nodeviews/table.js +9 -9
  13. package/dist/cjs/plugin.js +60 -59
  14. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +13 -13
  15. package/dist/cjs/pm-plugins/keymap.js +6 -8
  16. package/dist/cjs/pm-plugins/main.js +7 -24
  17. package/dist/cjs/pm-plugins/sticky-headers/plugin.js +2 -3
  18. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +12 -12
  19. package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  20. package/dist/cjs/pm-plugins/table-resizing/utils/consts.js +4 -2
  21. package/dist/cjs/pm-plugins/table-resizing/utils/index.js +2 -2
  22. package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +3 -3
  23. package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +3 -3
  24. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +11 -12
  25. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  26. package/dist/cjs/pm-plugins/table-width.js +6 -2
  27. package/dist/cjs/toolbar.js +21 -21
  28. package/dist/cjs/transforms/column-width.js +4 -4
  29. package/dist/cjs/transforms/delete-columns.js +2 -2
  30. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
  31. package/dist/cjs/ui/FloatingContextualMenu/index.js +2 -4
  32. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +2 -2
  33. package/dist/cjs/ui/FloatingDragMenu/index.js +6 -6
  34. package/dist/cjs/ui/FloatingInsertButton/index.js +6 -7
  35. package/dist/cjs/ui/TableFloatingColumnControls/index.js +8 -48
  36. package/dist/cjs/ui/TableFloatingControls/index.js +113 -223
  37. package/dist/cjs/utils/column-controls.js +5 -5
  38. package/dist/cjs/utils/create.js +2 -5
  39. package/dist/cjs/utils/dom.js +13 -15
  40. package/dist/cjs/utils/drag-menu.js +4 -4
  41. package/dist/es2019/commands/column-resize.js +3 -3
  42. package/dist/es2019/commands/delete.js +2 -2
  43. package/dist/es2019/commands/insert.js +12 -12
  44. package/dist/es2019/commands-with-analytics.js +6 -6
  45. package/dist/es2019/event-handlers.js +27 -11
  46. package/dist/es2019/nodeviews/OverflowShadowsObserver.js +24 -15
  47. package/dist/es2019/nodeviews/TableCell.js +1 -24
  48. package/dist/es2019/nodeviews/TableComponent.js +88 -63
  49. package/dist/es2019/nodeviews/TableContainer.js +20 -22
  50. package/dist/es2019/nodeviews/TableResizer.js +13 -13
  51. package/dist/es2019/nodeviews/table.js +9 -9
  52. package/dist/es2019/plugin.js +19 -20
  53. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +6 -6
  54. package/dist/es2019/pm-plugins/keymap.js +5 -8
  55. package/dist/es2019/pm-plugins/main.js +6 -23
  56. package/dist/es2019/pm-plugins/sticky-headers/plugin.js +1 -1
  57. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +5 -5
  58. package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  59. package/dist/es2019/pm-plugins/table-resizing/utils/consts.js +3 -1
  60. package/dist/es2019/pm-plugins/table-resizing/utils/index.js +1 -1
  61. package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +2 -2
  62. package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +3 -2
  63. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +12 -13
  64. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  65. package/dist/es2019/pm-plugins/table-width.js +6 -2
  66. package/dist/es2019/toolbar.js +15 -15
  67. package/dist/es2019/transforms/column-width.js +5 -5
  68. package/dist/es2019/transforms/delete-columns.js +2 -2
  69. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +9 -12
  70. package/dist/es2019/ui/FloatingContextualMenu/index.js +2 -4
  71. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +2 -2
  72. package/dist/es2019/ui/FloatingDragMenu/index.js +5 -5
  73. package/dist/es2019/ui/FloatingInsertButton/index.js +5 -6
  74. package/dist/es2019/ui/TableFloatingColumnControls/index.js +5 -27
  75. package/dist/es2019/ui/TableFloatingControls/index.js +119 -193
  76. package/dist/es2019/utils/column-controls.js +6 -6
  77. package/dist/es2019/utils/create.js +2 -5
  78. package/dist/es2019/utils/dom.js +13 -15
  79. package/dist/es2019/utils/drag-menu.js +4 -4
  80. package/dist/esm/commands/column-resize.js +3 -3
  81. package/dist/esm/commands/delete.js +2 -2
  82. package/dist/esm/commands/insert.js +15 -15
  83. package/dist/esm/commands-with-analytics.js +7 -7
  84. package/dist/esm/event-handlers.js +27 -11
  85. package/dist/esm/nodeviews/OverflowShadowsObserver.js +24 -15
  86. package/dist/esm/nodeviews/TableCell.js +5 -30
  87. package/dist/esm/nodeviews/TableComponent.js +119 -82
  88. package/dist/esm/nodeviews/TableContainer.js +24 -22
  89. package/dist/esm/nodeviews/TableResizer.js +13 -13
  90. package/dist/esm/nodeviews/table.js +9 -9
  91. package/dist/esm/plugin.js +60 -59
  92. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +13 -13
  93. package/dist/esm/pm-plugins/keymap.js +6 -8
  94. package/dist/esm/pm-plugins/main.js +7 -24
  95. package/dist/esm/pm-plugins/sticky-headers/plugin.js +2 -3
  96. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +12 -12
  97. package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  98. package/dist/esm/pm-plugins/table-resizing/utils/consts.js +3 -1
  99. package/dist/esm/pm-plugins/table-resizing/utils/index.js +1 -1
  100. package/dist/esm/pm-plugins/table-resizing/utils/misc.js +2 -2
  101. package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +4 -3
  102. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +13 -14
  103. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  104. package/dist/esm/pm-plugins/table-width.js +6 -2
  105. package/dist/esm/toolbar.js +21 -21
  106. package/dist/esm/transforms/column-width.js +5 -5
  107. package/dist/esm/transforms/delete-columns.js +2 -2
  108. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
  109. package/dist/esm/ui/FloatingContextualMenu/index.js +2 -4
  110. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +2 -2
  111. package/dist/esm/ui/FloatingDragMenu/index.js +6 -6
  112. package/dist/esm/ui/FloatingInsertButton/index.js +6 -7
  113. package/dist/esm/ui/TableFloatingColumnControls/index.js +8 -48
  114. package/dist/esm/ui/TableFloatingControls/index.js +113 -224
  115. package/dist/esm/utils/column-controls.js +6 -6
  116. package/dist/esm/utils/create.js +2 -5
  117. package/dist/esm/utils/dom.js +13 -15
  118. package/dist/esm/utils/drag-menu.js +4 -4
  119. package/dist/types/commands/column-resize.d.ts +1 -1
  120. package/dist/types/commands/delete.d.ts +1 -1
  121. package/dist/types/commands/insert.d.ts +7 -7
  122. package/dist/types/commands-with-analytics.d.ts +3 -3
  123. package/dist/types/event-handlers.d.ts +4 -5
  124. package/dist/types/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  125. package/dist/types/nodeviews/TableCell.d.ts +1 -5
  126. package/dist/types/nodeviews/TableComponent.d.ts +6 -3
  127. package/dist/types/nodeviews/TableContainer.d.ts +6 -4
  128. package/dist/types/nodeviews/TableResizer.d.ts +2 -2
  129. package/dist/types/nodeviews/table.d.ts +1 -1
  130. package/dist/types/nodeviews/types.d.ts +1 -0
  131. package/dist/types/plugin.d.ts +1 -0
  132. package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
  133. package/dist/types/pm-plugins/keymap.d.ts +2 -2
  134. package/dist/types/pm-plugins/main.d.ts +1 -1
  135. package/dist/types/pm-plugins/sticky-headers/plugin.d.ts +2 -3
  136. package/dist/types/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
  137. package/dist/types/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  138. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  139. package/dist/types/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
  140. package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
  141. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
  142. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  143. package/dist/types/pm-plugins/table-width.d.ts +1 -2
  144. package/dist/types/toolbar.d.ts +2 -2
  145. package/dist/types/transforms/column-width.d.ts +1 -1
  146. package/dist/types/transforms/delete-columns.d.ts +1 -1
  147. package/dist/types/types.d.ts +1 -3
  148. package/dist/types/ui/FloatingContextualMenu/index.d.ts +1 -1
  149. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  150. package/dist/types/ui/FloatingDragMenu/index.d.ts +2 -3
  151. package/dist/types/ui/FloatingInsertButton/index.d.ts +1 -2
  152. package/dist/types/ui/TableFloatingColumnControls/index.d.ts +2 -1
  153. package/dist/types/ui/TableFloatingControls/index.d.ts +5 -22
  154. package/dist/types/utils/create.d.ts +1 -2
  155. package/dist/types/utils/dom.d.ts +10 -2
  156. package/dist/types/utils/drag-menu.d.ts +1 -1
  157. package/dist/types-ts4.5/commands/column-resize.d.ts +1 -1
  158. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  159. package/dist/types-ts4.5/commands/insert.d.ts +7 -7
  160. package/dist/types-ts4.5/commands-with-analytics.d.ts +3 -3
  161. package/dist/types-ts4.5/event-handlers.d.ts +4 -5
  162. package/dist/types-ts4.5/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  163. package/dist/types-ts4.5/nodeviews/TableCell.d.ts +1 -5
  164. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +6 -3
  165. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +6 -4
  166. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -2
  167. package/dist/types-ts4.5/nodeviews/table.d.ts +1 -1
  168. package/dist/types-ts4.5/nodeviews/types.d.ts +1 -0
  169. package/dist/types-ts4.5/plugin.d.ts +1 -0
  170. package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
  171. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +2 -2
  172. package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -1
  173. package/dist/types-ts4.5/pm-plugins/sticky-headers/plugin.d.ts +2 -3
  174. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
  175. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  176. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  177. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
  178. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
  179. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
  180. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  181. package/dist/types-ts4.5/pm-plugins/table-width.d.ts +1 -2
  182. package/dist/types-ts4.5/toolbar.d.ts +2 -2
  183. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  184. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  185. package/dist/types-ts4.5/types.d.ts +1 -3
  186. package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +1 -1
  187. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  188. package/dist/types-ts4.5/ui/FloatingDragMenu/index.d.ts +2 -3
  189. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +1 -2
  190. package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +2 -1
  191. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +5 -22
  192. package/dist/types-ts4.5/utils/create.d.ts +1 -2
  193. package/dist/types-ts4.5/utils/dom.d.ts +10 -2
  194. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  195. package/package.json +3 -4
  196. package/src/commands/column-resize.ts +4 -3
  197. package/src/commands/delete.ts +2 -2
  198. package/src/commands/insert.ts +15 -27
  199. package/src/commands-with-analytics.ts +6 -9
  200. package/src/event-handlers.ts +107 -105
  201. package/src/nodeviews/OverflowShadowsObserver.ts +32 -21
  202. package/src/nodeviews/TableCell.ts +0 -26
  203. package/src/nodeviews/TableComponent.tsx +107 -78
  204. package/src/nodeviews/TableContainer.tsx +26 -32
  205. package/src/nodeviews/TableResizer.tsx +15 -18
  206. package/src/nodeviews/table.tsx +6 -5
  207. package/src/nodeviews/types.ts +1 -0
  208. package/src/plugin.tsx +17 -32
  209. package/src/pm-plugins/drag-and-drop/plugin.ts +10 -15
  210. package/src/pm-plugins/keymap.ts +6 -13
  211. package/src/pm-plugins/main.ts +6 -25
  212. package/src/pm-plugins/sticky-headers/plugin.ts +2 -11
  213. package/src/pm-plugins/table-resizing/event-handlers.ts +6 -4
  214. package/src/pm-plugins/table-resizing/utils/colgroup.ts +2 -2
  215. package/src/pm-plugins/table-resizing/utils/consts.ts +2 -0
  216. package/src/pm-plugins/table-resizing/utils/index.ts +1 -1
  217. package/src/pm-plugins/table-resizing/utils/misc.ts +2 -2
  218. package/src/pm-plugins/table-resizing/utils/resize-column.ts +5 -2
  219. package/src/pm-plugins/table-resizing/utils/resize-state.ts +18 -13
  220. package/src/pm-plugins/table-resizing/utils/scale-table.ts +14 -14
  221. package/src/pm-plugins/table-width.ts +4 -6
  222. package/src/toolbar.tsx +16 -19
  223. package/src/transforms/column-width.ts +7 -6
  224. package/src/transforms/delete-columns.ts +2 -2
  225. package/src/types.ts +1 -4
  226. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +11 -16
  227. package/src/ui/FloatingContextualMenu/index.tsx +0 -2
  228. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -3
  229. package/src/ui/FloatingDragMenu/index.tsx +4 -8
  230. package/src/ui/FloatingInsertButton/index.tsx +11 -22
  231. package/src/ui/TableFloatingColumnControls/index.tsx +5 -29
  232. package/src/ui/TableFloatingControls/index.tsx +155 -241
  233. package/src/utils/column-controls.ts +5 -6
  234. package/src/utils/create.ts +2 -5
  235. package/src/utils/dom.ts +12 -19
  236. package/src/utils/drag-menu.ts +7 -12
@@ -80,7 +80,7 @@ export const getToolbarMenuConfig = (config, state, {
80
80
  // with native widgets. It's enabled via a plugin config.
81
81
  export const getToolbarCellOptionsConfig = (editorState, editorView, initialSelectionRect, {
82
82
  formatMessage
83
- }, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth = false) => {
83
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled = false) => {
84
84
  var _pluginState$pluginCo, _pluginState$pluginCo2;
85
85
  const {
86
86
  top,
@@ -98,7 +98,7 @@ export const getToolbarCellOptionsConfig = (editorState, editorView, initialSele
98
98
  const selectionRect = getClosestSelectionRect(state);
99
99
  const index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
100
100
  if (index) {
101
- insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
101
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
102
102
  }
103
103
  return true;
104
104
  },
@@ -177,7 +177,7 @@ export const getToolbarCellOptionsConfig = (editorState, editorView, initialSele
177
177
  }];
178
178
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
179
179
  var _newResizeStateWithAn;
180
- const newResizeStateWithAnalytics = editorView ? getNewResizeStateFromSelectedColumns(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth) : undefined;
180
+ const newResizeStateWithAnalytics = editorView ? getNewResizeStateFromSelectedColumns(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled) : undefined;
181
181
  const wouldChange = (_newResizeStateWithAn = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn !== void 0 ? _newResizeStateWithAn : false;
182
182
  const distributeColumnWidths = (state, dispatch) => {
183
183
  if (newResizeStateWithAnalytics) {
@@ -297,12 +297,12 @@ export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI, ge
297
297
  const nodeType = state.schema.nodes.table;
298
298
  const menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI);
299
299
  const {
300
- tablePreserveWidth = false
301
- } = getEditorFeatureFlags();
300
+ isTableScalingEnabled = false
301
+ } = getPluginState(state);
302
302
  let cellItems;
303
- cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(config, state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth);
303
+ cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled);
304
304
  let columnSettingsItems;
305
- columnSettingsItems = pluginState.isDragAndDropEnabled && getBooleanFF('platform.editor.table.new-cell-context-menu-styling') ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth) : [];
305
+ columnSettingsItems = pluginState.isDragAndDropEnabled && getBooleanFF('platform.editor.table.new-cell-context-menu-styling') ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled) : [];
306
306
  const colorPicker = getColorPicker(state, menu, intl, editorAnalyticsAPI);
307
307
 
308
308
  // Check if we need to show confirm dialog for delete button
@@ -391,24 +391,24 @@ const separator = hidden => {
391
391
  hidden: hidden
392
392
  };
393
393
  };
394
- const getCellItems = (pluginConfig, state, view, {
394
+ const getCellItems = (state, view, {
395
395
  formatMessage
396
- }, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth = false) => {
396
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled = false) => {
397
397
  const initialSelectionRect = getClosestSelectionRect(state);
398
398
  if (initialSelectionRect) {
399
399
  const cellOptions = getToolbarCellOptionsConfig(state, view, initialSelectionRect, {
400
400
  formatMessage
401
- }, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth);
401
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled);
402
402
  return [cellOptions, separator(cellOptions.hidden)];
403
403
  }
404
404
  return [];
405
405
  };
406
- export const getDistributeConfig = (getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth = false) => (state, dispatch, editorView) => {
406
+ export const getDistributeConfig = (getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled = false) => (state, dispatch, editorView) => {
407
407
  const selectionOrTableRect = getClosestSelectionOrTableRect(state);
408
408
  if (!editorView || !selectionOrTableRect) {
409
409
  return false;
410
410
  }
411
- const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
411
+ const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
412
412
  if (newResizeStateWithAnalytics) {
413
413
  distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
414
414
  return true;
@@ -420,14 +420,14 @@ export const getDistributeConfig = (getEditorContainerWidth, editorAnalyticsAPI,
420
420
  // fixed column button should be in this function call in the future
421
421
  const getColumnSettingItems = (editorState, editorView, {
422
422
  formatMessage
423
- }, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth = false) => {
423
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled = false) => {
424
424
  var _newResizeStateWithAn2, _pluginState$pluginCo3;
425
425
  const pluginState = getPluginState(editorState);
426
426
  const selectionOrTableRect = getClosestSelectionOrTableRect(editorState);
427
427
  if (!selectionOrTableRect || !editorView) {
428
428
  return [];
429
429
  }
430
- const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
430
+ const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
431
431
  const wouldChange = (_newResizeStateWithAn2 = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn2 !== void 0 ? _newResizeStateWithAn2 : false;
432
432
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo3 = pluginState.pluginConfig) !== null && _pluginState$pluginCo3 !== void 0 && _pluginState$pluginCo3.allowDistributeColumns && pluginState.isDragAndDropEnabled) {
433
433
  return [{
@@ -435,7 +435,7 @@ const getColumnSettingItems = (editorState, editorView, {
435
435
  type: 'button',
436
436
  title: formatMessage(messages.distributeColumns),
437
437
  icon: DistributeColumnIcon,
438
- onClick: (state, dispatch, view) => getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(state, dispatch, view),
438
+ onClick: (state, dispatch, view) => getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled)(state, dispatch, view),
439
439
  disabled: !wouldChange
440
440
  }, {
441
441
  type: 'separator'
@@ -2,7 +2,7 @@ import { tableCellMinWidth } from '@atlaskit/editor-common/styles';
2
2
  import { AttrStep } from '@atlaskit/editor-prosemirror/transform';
3
3
  import { TableMap } from '@atlaskit/editor-tables/table-map';
4
4
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
5
- import { getTableContainerElement, getTableElementWidth, hasTableBeenResized } from '../pm-plugins/table-resizing/utils';
5
+ import { getTableContainerElementWidth, getTableElementWidth, hasTableBeenResized } from '../pm-plugins/table-resizing/utils';
6
6
  import { isMinCellWidthTable } from '../pm-plugins/table-resizing/utils/colgroup';
7
7
  import { getResizeState } from '../pm-plugins/table-resizing/utils/resize-state';
8
8
  import { scaleTableTo } from '../pm-plugins/table-resizing/utils/scale-table';
@@ -85,7 +85,7 @@ export const updateColumnWidths = (resizeState, table, start) => tr => {
85
85
  * @param view
86
86
  * @returns Updated transaction with rescaled columns for a given table
87
87
  */
88
- export const rescaleColumns = (tablePreserveWidth = false) => (table, view) => tr => {
88
+ export const rescaleColumns = (isTableScalingEnabled = false) => (table, view) => tr => {
89
89
  if (!view) {
90
90
  return tr;
91
91
  }
@@ -102,11 +102,11 @@ export const rescaleColumns = (tablePreserveWidth = false) => (table, view) => t
102
102
  possibleMaxWidth: 0,
103
103
  isResized
104
104
  };
105
- if (tablePreserveWidth) {
105
+ if (isTableScalingEnabled) {
106
106
  previousTableInfo = {
107
107
  // TODO - ensure correct width is returned when table doesn't have a width value
108
108
  width: getTableElementWidth(table.node),
109
- possibleMaxWidth: getBooleanFF('platform.editor.custom-table-width') ? getTableContainerElement(table.node) : getTableContainerElement(table.node) - insertColumnButtonOffset,
109
+ possibleMaxWidth: getBooleanFF('platform.editor.custom-table-width') ? getTableContainerElementWidth(table.node) : getTableContainerElementWidth(table.node) - insertColumnButtonOffset,
110
110
  isResized
111
111
  };
112
112
  } else {
@@ -162,7 +162,7 @@ export const rescaleColumns = (tablePreserveWidth = false) => (table, view) => t
162
162
  tableRef,
163
163
  domAtPos,
164
164
  maxSize: previousTableInfo.possibleMaxWidth,
165
- tablePreserveWidth
165
+ isTableScalingEnabled
166
166
  });
167
167
 
168
168
  // Two scenarios that require scaling:
@@ -192,7 +192,7 @@ function fixRowSpans(table) {
192
192
  }
193
193
  return table.type.createChecked(table.attrs, rows, table.marks);
194
194
  }
195
- export const deleteColumns = (rect, allowCustomStep, view, tablePreserveWidth = false) => tr => {
195
+ export const deleteColumns = (rect, allowCustomStep, view, isTableScalingEnabled = false) => tr => {
196
196
  let updatedTr = tr;
197
197
  updatedTr.setMeta(META_KEYS.OVERFLOW_TRIGGER, {
198
198
  name: TABLE_OVERFLOW_CHANGE_TRIGGER.DELETED_COLUMN
@@ -204,7 +204,7 @@ export const deleteColumns = (rect, allowCustomStep, view, tablePreserveWidth =
204
204
  }
205
205
  const table = findTable(updatedTr.selection);
206
206
  if (table) {
207
- updatedTr = rescaleColumns(tablePreserveWidth)(table, view)(updatedTr);
207
+ updatedTr = rescaleColumns(isTableScalingEnabled)(table, view)(updatedTr);
208
208
  }
209
209
  return updatedTr;
210
210
  };
@@ -302,11 +302,11 @@ export class ContextualMenu extends Component {
302
302
  }
303
303
  } = getPluginState(editorView.state);
304
304
  if (allowDistributeColumns && (!isDragAndDropEnabled || !getBooleanFF('platform.editor.table.new-cell-context-menu-styling'))) {
305
- var _this$props$getEditor, _this$props, _newResizeState$chang;
305
+ var _newResizeState$chang;
306
306
  const {
307
- tablePreserveWidth = false
308
- } = ((_this$props$getEditor = (_this$props = this.props).getEditorFeatureFlags) === null || _this$props$getEditor === void 0 ? void 0 : _this$props$getEditor.call(_this$props)) || {};
309
- const newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
307
+ isTableScalingEnabled = false
308
+ } = getPluginState(editorView.state);
309
+ const newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
310
310
  const wouldChange = (_newResizeState$chang = newResizeState === null || newResizeState === void 0 ? void 0 : newResizeState.changed) !== null && _newResizeState$chang !== void 0 ? _newResizeState$chang : false;
311
311
  return {
312
312
  content: formatMessage(messages.distributeColumns),
@@ -400,8 +400,7 @@ export class ContextualMenu extends Component {
400
400
  editorView,
401
401
  selectionRect,
402
402
  editorAnalyticsAPI,
403
- getEditorContainerWidth,
404
- getEditorFeatureFlags
403
+ getEditorContainerWidth
405
404
  } = this.props;
406
405
  // TargetCellPosition could be outdated: https://product-fabric.atlassian.net/browse/ED-8129
407
406
  const {
@@ -409,11 +408,9 @@ export class ContextualMenu extends Component {
409
408
  dispatch
410
409
  } = editorView;
411
410
  const {
412
- targetCellPosition
411
+ targetCellPosition,
412
+ isTableScalingEnabled = false
413
413
  } = getPluginState(state);
414
- const {
415
- tablePreserveWidth = false
416
- } = (getEditorFeatureFlags === null || getEditorFeatureFlags === void 0 ? void 0 : getEditorFeatureFlags()) || {};
417
414
  switch (item.value.name) {
418
415
  case 'sort_column_desc':
419
416
  sortColumnWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, selectionRect.left, SortOrder.DESC)(state, dispatch);
@@ -432,7 +429,7 @@ export class ContextualMenu extends Component {
432
429
  this.toggleOpen();
433
430
  break;
434
431
  case 'distribute_columns':
435
- const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
432
+ const newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
436
433
  if (newResizeStateWithAnalytics) {
437
434
  distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, newResizeStateWithAnalytics)(state, dispatch);
438
435
  this.toggleOpen();
@@ -443,7 +440,7 @@ export class ContextualMenu extends Component {
443
440
  this.toggleOpen();
444
441
  break;
445
442
  case 'insert_column':
446
- insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
443
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
447
444
  this.toggleOpen();
448
445
  break;
449
446
  case 'insert_row':
@@ -16,8 +16,7 @@ const FloatingContextualMenu = ({
16
16
  isOpen,
17
17
  pluginConfig,
18
18
  editorAnalyticsAPI,
19
- getEditorContainerWidth,
20
- getEditorFeatureFlags
19
+ getEditorContainerWidth
21
20
  }) => {
22
21
  // TargetCellPosition could be outdated: https://product-fabric.atlassian.net/browse/ED-8129
23
22
  const {
@@ -69,8 +68,7 @@ const FloatingContextualMenu = ({
69
68
  selectionRect: selectionRect,
70
69
  boundariesElement: boundariesElement,
71
70
  editorAnalyticsAPI: editorAnalyticsAPI,
72
- getEditorContainerWidth: getEditorContainerWidth,
73
- getEditorFeatureFlags: getEditorFeatureFlags
71
+ getEditorContainerWidth: getEditorContainerWidth
74
72
  })));
75
73
  };
76
74
  FloatingContextualMenu.displayName = 'FloatingContextualMenu';
@@ -176,7 +176,7 @@ export const DragMenu = /*#__PURE__*/React.memo(({
176
176
  mountPoint,
177
177
  scrollableElement,
178
178
  boundariesElement,
179
- tablePreserveWidth
179
+ isTableScalingEnabled
180
180
  }) => {
181
181
  var _pluginConfig$allowBa;
182
182
  const {
@@ -196,7 +196,7 @@ export const DragMenu = /*#__PURE__*/React.memo(({
196
196
  const shouldMoveDisabled = index !== undefined && hasMergedCells(index)(selection);
197
197
  const hasMergedCellsInTable = getMergedCellsPositions(state.tr).length > 0;
198
198
  const allowBackgroundColor = (_pluginConfig$allowBa = pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.allowBackgroundColor) !== null && _pluginConfig$allowBa !== void 0 ? _pluginConfig$allowBa : false;
199
- const dragMenuConfig = getDragMenuConfig(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired, tablePreserveWidth);
199
+ const dragMenuConfig = getDragMenuConfig(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired, isTableScalingEnabled);
200
200
  const {
201
201
  menuItems,
202
202
  menuCallback
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Popup } from '@atlaskit/editor-common/ui';
3
3
  import { akEditorFloatingDialogZIndex, akEditorFloatingOverlapPanelZIndex } from '@atlaskit/editor-shared-styles';
4
4
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
5
+ import { getPluginState } from '../../pm-plugins/plugin-factory';
5
6
  import { dragMenuDropdownWidth, tablePopupMenuFitHeight } from '../consts';
6
7
  import DragMenu from './DragMenu';
7
8
  const FloatingDragMenu = ({
@@ -17,8 +18,7 @@ const FloatingDragMenu = ({
17
18
  getEditorContainerWidth,
18
19
  editorAnalyticsAPI,
19
20
  stickyHeaders,
20
- pluginConfig,
21
- getEditorFeatureFlags
21
+ pluginConfig
22
22
  }) => {
23
23
  if (!isOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
24
24
  return null;
@@ -30,8 +30,8 @@ const FloatingDragMenu = ({
30
30
  return null;
31
31
  }
32
32
  const {
33
- tablePreserveWidth = false
34
- } = getEditorFeatureFlags();
33
+ isTableScalingEnabled = false
34
+ } = getPluginState(editorView.state);
35
35
  return /*#__PURE__*/React.createElement(Popup, {
36
36
  alignX: direction === 'row' ? 'right' : undefined,
37
37
  alignY: direction === 'row' ? 'start' : undefined,
@@ -65,7 +65,7 @@ const FloatingDragMenu = ({
65
65
  mountPoint: mountPoint,
66
66
  boundariesElement: boundariesElement,
67
67
  scrollableElement: scrollableElement,
68
- tablePreserveWidth: tablePreserveWidth
68
+ isTableScalingEnabled: isTableScalingEnabled
69
69
  }));
70
70
  };
71
71
  FloatingDragMenu.displayName = 'FloatingDragMenu';
@@ -11,6 +11,7 @@ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
11
11
  import { TableMap } from '@atlaskit/editor-tables/table-map';
12
12
  import { findTable } from '@atlaskit/editor-tables/utils';
13
13
  import { insertColumnWithAnalytics, insertRowWithAnalytics } from '../../commands-with-analytics';
14
+ import { getPluginState } from '../../pm-plugins/plugin-factory';
14
15
  import { TableCssClassName as ClassName } from '../../types';
15
16
  import { checkIfNumberColumnEnabled } from '../../utils';
16
17
  import getPopupOptions from './getPopupOptions';
@@ -173,20 +174,18 @@ export class FloatingInsertButton extends React.Component {
173
174
  const {
174
175
  editorView,
175
176
  insertColumnButtonIndex,
176
- editorAnalyticsAPI,
177
- getEditorContainerWidth
177
+ editorAnalyticsAPI
178
178
  } = this.props;
179
179
  if (typeof insertColumnButtonIndex !== 'undefined') {
180
- var _this$props$getEditor, _this$props;
181
180
  event.preventDefault();
182
181
  const {
183
- tablePreserveWidth = false
184
- } = ((_this$props$getEditor = (_this$props = this.props).getEditorFeatureFlags) === null || _this$props$getEditor === void 0 ? void 0 : _this$props$getEditor.call(_this$props)) || {};
182
+ isTableScalingEnabled = false
183
+ } = getPluginState(editorView.state);
185
184
  const {
186
185
  state,
187
186
  dispatch
188
187
  } = editorView;
189
- insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
188
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
190
189
  }
191
190
  }
192
191
  }
@@ -18,37 +18,15 @@ export const TableFloatingColumnControls = ({
18
18
  isTableHovered,
19
19
  tableContainerWidth,
20
20
  isNumberColumnEnabled,
21
- getScrollOffset
21
+ getScrollOffset,
22
+ tableWrapperHeight
22
23
  }) => {
23
- const [tableRect, setTableRect] = useState({
24
- width: 0,
25
- height: 0
26
- });
27
24
  const [isDragging, setIsDragging] = useState(false);
28
25
  const containerRef = useRef(null);
29
26
  const node = getNode();
30
27
  const currentNodeLocalId = node === null || node === void 0 ? void 0 : node.attrs.localId;
31
28
  const hasHeaderColumn = containsHeaderColumn(node);
32
29
  const stickyTop = stickyHeader && stickyHeader.sticky && hasHeaderRow ? stickyHeader.top : undefined;
33
- useEffect(() => {
34
- var _window;
35
- if (tableRef && (_window = window) !== null && _window !== void 0 && _window.ResizeObserver) {
36
- const resizeObserver = new ResizeObserver(entries => {
37
- for (let entry of entries) {
38
- setTableRect(prev => {
39
- if (prev.width !== entry.contentRect.width || prev.height !== entry.contentRect.height) {
40
- return entry.contentRect;
41
- }
42
- return prev;
43
- });
44
- }
45
- });
46
- resizeObserver.observe(tableRef);
47
- return () => {
48
- resizeObserver.disconnect();
49
- };
50
- }
51
- }, [tableRef]);
52
30
  useEffect(() => {
53
31
  return monitorForElements({
54
32
  canMonitor({
@@ -71,11 +49,11 @@ export const TableFloatingColumnControls = ({
71
49
  }, [editorView, currentNodeLocalId]);
72
50
  const rowHeights = useMemo(() => {
73
51
  // NOTE: we don't care so much as to what tableHeight is, we only care that it changed and is a sane value.
74
- if (tableRef && !!tableRect.height) {
52
+ if (tableRef && !!tableWrapperHeight) {
75
53
  return getRowHeights(tableRef);
76
54
  }
77
55
  return [0];
78
- }, [tableRef, tableRect.height]);
56
+ }, [tableRef, tableWrapperHeight]);
79
57
  if (!tableRef || !tableActive || isResizing) {
80
58
  return null;
81
59
  }
@@ -112,7 +90,7 @@ export const TableFloatingColumnControls = ({
112
90
  }), isDragging && /*#__PURE__*/React.createElement(ColumnDropTargets, {
113
91
  tableRef: tableRef,
114
92
  isHeaderSticky: (stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.sticky) && hasHeaderRow,
115
- tableHeight: tableRect.height,
93
+ tableHeight: tableWrapperHeight,
116
94
  localId: currentNodeLocalId,
117
95
  colWidths: colWidths,
118
96
  getScrollOffset: getScrollOffset