@atlaskit/editor-plugin-table 7.4.9 → 7.5.1

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 (184) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/commands/column-resize.js +4 -2
  3. package/dist/cjs/commands/delete.js +2 -1
  4. package/dist/cjs/commands/insert.js +6 -3
  5. package/dist/cjs/commands-with-analytics.js +4 -2
  6. package/dist/cjs/event-handlers.js +2 -1
  7. package/dist/cjs/nodeviews/TableComponent.js +116 -47
  8. package/dist/cjs/nodeviews/TableContainer.js +8 -4
  9. package/dist/cjs/nodeviews/TableResizer.js +6 -5
  10. package/dist/cjs/nodeviews/table.js +12 -4
  11. package/dist/cjs/plugin.js +50 -47
  12. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +9 -6
  13. package/dist/cjs/pm-plugins/keymap.js +6 -3
  14. package/dist/cjs/pm-plugins/main.js +4 -1
  15. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +7 -3
  16. package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +32 -11
  17. package/dist/cjs/pm-plugins/table-resizing/utils/consts.js +4 -2
  18. package/dist/cjs/pm-plugins/table-resizing/utils/index.js +24 -0
  19. package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +20 -1
  20. package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +2 -1
  21. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +52 -11
  22. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +19 -8
  23. package/dist/cjs/toolbar.js +17 -10
  24. package/dist/cjs/transforms/column-width.js +22 -7
  25. package/dist/cjs/transforms/delete-columns.js +2 -1
  26. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +45 -38
  27. package/dist/cjs/ui/FloatingContextualMenu/index.js +4 -2
  28. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -2
  29. package/dist/cjs/ui/FloatingDragMenu/index.js +7 -2
  30. package/dist/cjs/ui/FloatingInsertButton/index.js +5 -1
  31. package/dist/cjs/utils/create.js +1 -1
  32. package/dist/cjs/utils/drag-menu.js +4 -3
  33. package/dist/es2019/commands/column-resize.js +4 -3
  34. package/dist/es2019/commands/delete.js +2 -2
  35. package/dist/es2019/commands/insert.js +6 -6
  36. package/dist/es2019/commands-with-analytics.js +4 -4
  37. package/dist/es2019/event-handlers.js +2 -2
  38. package/dist/es2019/nodeviews/TableComponent.js +77 -8
  39. package/dist/es2019/nodeviews/TableContainer.js +8 -4
  40. package/dist/es2019/nodeviews/TableResizer.js +6 -5
  41. package/dist/es2019/nodeviews/table.js +12 -4
  42. package/dist/es2019/plugin.js +14 -8
  43. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +7 -4
  44. package/dist/es2019/pm-plugins/keymap.js +6 -3
  45. package/dist/es2019/pm-plugins/main.js +4 -1
  46. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +7 -3
  47. package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +31 -12
  48. package/dist/es2019/pm-plugins/table-resizing/utils/consts.js +3 -1
  49. package/dist/es2019/pm-plugins/table-resizing/utils/index.js +2 -2
  50. package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +20 -2
  51. package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +2 -2
  52. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +47 -10
  53. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +19 -12
  54. package/dist/es2019/toolbar.js +15 -12
  55. package/dist/es2019/transforms/column-width.js +24 -10
  56. package/dist/es2019/transforms/delete-columns.js +2 -2
  57. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +12 -5
  58. package/dist/es2019/ui/FloatingContextualMenu/index.js +4 -2
  59. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -2
  60. package/dist/es2019/ui/FloatingDragMenu/index.js +7 -2
  61. package/dist/es2019/ui/FloatingInsertButton/index.js +5 -1
  62. package/dist/es2019/utils/create.js +1 -1
  63. package/dist/es2019/utils/drag-menu.js +4 -4
  64. package/dist/esm/commands/column-resize.js +4 -2
  65. package/dist/esm/commands/delete.js +2 -1
  66. package/dist/esm/commands/insert.js +6 -3
  67. package/dist/esm/commands-with-analytics.js +4 -2
  68. package/dist/esm/event-handlers.js +2 -1
  69. package/dist/esm/nodeviews/TableComponent.js +118 -49
  70. package/dist/esm/nodeviews/TableContainer.js +8 -4
  71. package/dist/esm/nodeviews/TableResizer.js +6 -5
  72. package/dist/esm/nodeviews/table.js +12 -4
  73. package/dist/esm/plugin.js +50 -47
  74. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +9 -6
  75. package/dist/esm/pm-plugins/keymap.js +6 -3
  76. package/dist/esm/pm-plugins/main.js +4 -1
  77. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +7 -3
  78. package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +32 -11
  79. package/dist/esm/pm-plugins/table-resizing/utils/consts.js +3 -1
  80. package/dist/esm/pm-plugins/table-resizing/utils/index.js +2 -2
  81. package/dist/esm/pm-plugins/table-resizing/utils/misc.js +22 -2
  82. package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +2 -1
  83. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +52 -11
  84. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +19 -8
  85. package/dist/esm/toolbar.js +17 -10
  86. package/dist/esm/transforms/column-width.js +23 -8
  87. package/dist/esm/transforms/delete-columns.js +2 -1
  88. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +45 -38
  89. package/dist/esm/ui/FloatingContextualMenu/index.js +4 -2
  90. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -2
  91. package/dist/esm/ui/FloatingDragMenu/index.js +7 -2
  92. package/dist/esm/ui/FloatingInsertButton/index.js +5 -1
  93. package/dist/esm/utils/create.js +1 -1
  94. package/dist/esm/utils/drag-menu.js +4 -3
  95. package/dist/types/commands/column-resize.d.ts +1 -1
  96. package/dist/types/commands/delete.d.ts +1 -1
  97. package/dist/types/commands/insert.d.ts +3 -3
  98. package/dist/types/commands-with-analytics.d.ts +2 -2
  99. package/dist/types/event-handlers.d.ts +1 -1
  100. package/dist/types/nodeviews/TableComponent.d.ts +3 -0
  101. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  102. package/dist/types/nodeviews/TableResizer.d.ts +2 -1
  103. package/dist/types/nodeviews/table.d.ts +1 -0
  104. package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +3 -2
  105. package/dist/types/pm-plugins/keymap.d.ts +2 -2
  106. package/dist/types/pm-plugins/table-resizing/utils/colgroup.d.ts +2 -2
  107. package/dist/types/pm-plugins/table-resizing/utils/consts.d.ts +2 -0
  108. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +2 -2
  109. package/dist/types/pm-plugins/table-resizing/utils/misc.d.ts +7 -0
  110. package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +1 -1
  111. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -3
  112. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  113. package/dist/types/toolbar.d.ts +2 -2
  114. package/dist/types/transforms/column-width.d.ts +1 -1
  115. package/dist/types/transforms/delete-columns.d.ts +1 -1
  116. package/dist/types/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -1
  117. package/dist/types/ui/FloatingContextualMenu/index.d.ts +1 -1
  118. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  119. package/dist/types/ui/FloatingDragMenu/index.d.ts +3 -2
  120. package/dist/types/ui/FloatingInsertButton/index.d.ts +2 -1
  121. package/dist/types/utils/drag-menu.d.ts +1 -1
  122. package/dist/types-ts4.5/commands/column-resize.d.ts +1 -1
  123. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  124. package/dist/types-ts4.5/commands/insert.d.ts +3 -3
  125. package/dist/types-ts4.5/commands-with-analytics.d.ts +2 -2
  126. package/dist/types-ts4.5/event-handlers.d.ts +1 -1
  127. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +3 -0
  128. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  129. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
  130. package/dist/types-ts4.5/nodeviews/table.d.ts +1 -0
  131. package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +3 -2
  132. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +2 -2
  133. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/colgroup.d.ts +2 -2
  134. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/consts.d.ts +2 -0
  135. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +2 -2
  136. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/misc.d.ts +7 -0
  137. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +1 -1
  138. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -3
  139. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  140. package/dist/types-ts4.5/toolbar.d.ts +2 -2
  141. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  142. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  143. package/dist/types-ts4.5/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -1
  144. package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +1 -1
  145. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  146. package/dist/types-ts4.5/ui/FloatingDragMenu/index.d.ts +3 -2
  147. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +2 -1
  148. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  149. package/docs/0-intro.tsx +3 -2
  150. package/package.json +2 -2
  151. package/src/commands/column-resize.ts +3 -0
  152. package/src/commands/delete.ts +2 -1
  153. package/src/commands/insert.ts +15 -6
  154. package/src/commands-with-analytics.ts +9 -3
  155. package/src/event-handlers.ts +2 -0
  156. package/src/nodeviews/TableComponent.tsx +91 -5
  157. package/src/nodeviews/TableContainer.tsx +7 -1
  158. package/src/nodeviews/TableResizer.tsx +7 -1
  159. package/src/nodeviews/table.tsx +15 -10
  160. package/src/plugin.tsx +17 -5
  161. package/src/pm-plugins/drag-and-drop/plugin.ts +16 -8
  162. package/src/pm-plugins/keymap.ts +11 -3
  163. package/src/pm-plugins/main.ts +3 -0
  164. package/src/pm-plugins/table-resizing/event-handlers.ts +11 -1
  165. package/src/pm-plugins/table-resizing/utils/colgroup.ts +49 -17
  166. package/src/pm-plugins/table-resizing/utils/consts.ts +2 -0
  167. package/src/pm-plugins/table-resizing/utils/index.ts +8 -1
  168. package/src/pm-plugins/table-resizing/utils/misc.ts +25 -1
  169. package/src/pm-plugins/table-resizing/utils/resize-column.ts +2 -1
  170. package/src/pm-plugins/table-resizing/utils/resize-state.ts +56 -11
  171. package/src/pm-plugins/table-resizing/utils/scale-table.ts +24 -6
  172. package/src/toolbar.tsx +18 -5
  173. package/src/transforms/column-width.ts +33 -11
  174. package/src/transforms/delete-columns.ts +7 -2
  175. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +20 -5
  176. package/src/ui/FloatingContextualMenu/index.tsx +2 -0
  177. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -0
  178. package/src/ui/FloatingDragMenu/index.tsx +9 -1
  179. package/src/ui/FloatingInsertButton/index.tsx +17 -5
  180. package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +4 -1
  181. package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +4 -1
  182. package/src/utils/create.ts +1 -3
  183. package/src/utils/drag-menu.ts +4 -1
  184. package/tsconfig.dev.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 7.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#75947](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/75947) [`43549c3789b1`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/43549c3789b1) - Migrate @atlaskit/editor-core to use declarative entry points
8
+
9
+ ## 7.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#77531](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77531) [`18e5d61eaec6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/18e5d61eaec6) - add preserve table width logic
14
+
3
15
  ## 7.4.9
4
16
 
5
17
  ### Patch Changes
@@ -128,6 +128,7 @@ var activateNextResizeArea = exports.activateNextResizeArea = function activateN
128
128
  };
129
129
  };
130
130
  var changeColumnWidthByStep = exports.changeColumnWidthByStep = function changeColumnWidthByStep(stepSize, getEditorContainerWidth) {
131
+ var tablePreserveWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
131
132
  return function (state, dispatch, view) {
132
133
  var customTr = state.tr;
133
134
  var fakeDispatch = function fakeDispatch(tr) {
@@ -176,14 +177,15 @@ var changeColumnWidthByStep = exports.changeColumnWidthByStep = function changeC
176
177
  table: originalTable,
177
178
  tableRef: dom,
178
179
  start: tableStartPosition,
179
- domAtPos: domAtPos
180
+ domAtPos: domAtPos,
181
+ tablePreserveWidth: tablePreserveWidth
180
182
  });
181
183
  (0, _utils3.updateControls)()(state);
182
184
  var selectionRect = (0, _utils.getSelectionRect)(state.selection);
183
185
  var selectedColumns = selectionRect ? (0, _utils4.getSelectedColumnIndexes)(selectionRect) : [];
184
186
  // only selected (or selected - 1) columns should be distributed
185
187
  var resizingSelectedColumns = selectedColumns.indexOf(colIndex) > -1 || selectedColumns.indexOf(colIndex + 1) > -1;
186
- var newResizeState = (0, _utils3.resizeColumn)(initialResizeState, colIndex, stepSize, dom, resizingSelectedColumns ? selectedColumns : undefined);
188
+ var newResizeState = (0, _utils3.resizeColumn)(initialResizeState, colIndex, stepSize, dom, resizingSelectedColumns ? selectedColumns : undefined, tablePreserveWidth);
187
189
  customTr = (0, _transforms.updateColumnWidths)(newResizeState, originalTable, tableStartPosition)(customTr);
188
190
  if (dispatch) {
189
191
  dispatch(customTr);
@@ -7,8 +7,9 @@ exports.deleteColumnsCommand = void 0;
7
7
  var _deleteColumns = require("../transforms/delete-columns");
8
8
  var _getAllowAddColumnCustomStep = require("../utils/get-allow-add-column-custom-step");
9
9
  var deleteColumnsCommand = exports.deleteColumnsCommand = function deleteColumnsCommand(rect) {
10
+ var tablePreserveWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
10
11
  return function (state, dispatch, view) {
11
- var tr = (0, _deleteColumns.deleteColumns)(rect, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view)(state.tr);
12
+ var tr = (0, _deleteColumns.deleteColumns)(rect, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view, tablePreserveWidth)(state.tr);
12
13
  if (dispatch) {
13
14
  dispatch(tr);
14
15
  return true;
@@ -30,6 +30,7 @@ function addColumnAtCustomStep(column) {
30
30
  };
31
31
  }
32
32
  function addColumnAt(getEditorContainerWidth) {
33
+ var tablePreserveWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
33
34
  return function (column) {
34
35
  var allowAddColumnCustomStep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
35
36
  var view = arguments.length > 2 ? arguments[2] : undefined;
@@ -43,7 +44,7 @@ function addColumnAt(getEditorContainerWidth) {
43
44
  var table = (0, _utils2.findTable)(updatedTr.selection);
44
45
  if (table) {
45
46
  // [ED-8288] Update colwidths manually to avoid multiple dispatch in TableComponent
46
- updatedTr = (0, _columnWidth.rescaleColumns)()(table, view)(updatedTr);
47
+ updatedTr = (0, _columnWidth.rescaleColumns)(tablePreserveWidth)(table, view)(updatedTr);
47
48
  }
48
49
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.analytics-plugin-moved-event') && view) {
49
50
  updatedTr = (0, _commands.updateRowOrColumnMovedTransform)({
@@ -61,6 +62,7 @@ function addColumnAt(getEditorContainerWidth) {
61
62
  // :: (EditorState, dispatch: ?(tr: Transaction)) → bool
62
63
  // Command to add a column before the column with the selection.
63
64
  var addColumnBefore = exports.addColumnBefore = function addColumnBefore(getEditorContainerWidth) {
65
+ var tablePreserveWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
64
66
  return function (state, dispatch, view) {
65
67
  var table = (0, _utils2.findTable)(state.selection);
66
68
  if (!table) {
@@ -68,7 +70,7 @@ var addColumnBefore = exports.addColumnBefore = function addColumnBefore(getEdit
68
70
  }
69
71
  if (dispatch) {
70
72
  var rect = (0, _utils2.selectedRect)(state);
71
- dispatch(addColumnAt(getEditorContainerWidth)(rect.left, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view)(state.tr));
73
+ dispatch(addColumnAt(getEditorContainerWidth, tablePreserveWidth)(rect.left, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view)(state.tr));
72
74
  }
73
75
  return true;
74
76
  };
@@ -90,9 +92,10 @@ var addColumnAfter = exports.addColumnAfter = function addColumnAfter(getEditorC
90
92
  };
91
93
  };
92
94
  var insertColumn = exports.insertColumn = function insertColumn(getEditorContainerWidth) {
95
+ var tablePreserveWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
93
96
  return function (column) {
94
97
  return function (state, dispatch, view) {
95
- var tr = addColumnAt(getEditorContainerWidth)(column, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view)(state.tr);
98
+ var tr = addColumnAt(getEditorContainerWidth, tablePreserveWidth)(column, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(state), view)(state.tr);
96
99
  var table = (0, _utils2.findTable)(tr.selection);
97
100
  if (!table) {
98
101
  return false;
@@ -190,6 +190,7 @@ var insertRowWithAnalytics = exports.insertRowWithAnalytics = function insertRow
190
190
  };
191
191
  };
192
192
  var insertColumnWithAnalytics = exports.insertColumnWithAnalytics = function insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI) {
193
+ var tablePreserveWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
193
194
  return function (inputMethod, position) {
194
195
  return (0, _analytics2.withEditorAnalyticsAPI)(function (state) {
195
196
  var _getSelectedTableInfo2 = (0, _utils2.getSelectedTableInfo)(state.selection),
@@ -207,7 +208,7 @@ var insertColumnWithAnalytics = exports.insertColumnWithAnalytics = function ins
207
208
  },
208
209
  eventType: _analytics.EVENT_TYPE.TRACK
209
210
  };
210
- })(editorAnalyticsAPI)((0, _insert.insertColumn)(getEditorContainerWidth)(position));
211
+ })(editorAnalyticsAPI)((0, _insert.insertColumn)(getEditorContainerWidth, tablePreserveWidth)(position));
211
212
  };
212
213
  };
213
214
  var deleteRowsWithAnalytics = exports.deleteRowsWithAnalytics = function deleteRowsWithAnalytics(editorAnalyticsAPI) {
@@ -239,6 +240,7 @@ var deleteRowsWithAnalytics = exports.deleteRowsWithAnalytics = function deleteR
239
240
  };
240
241
  };
241
242
  var deleteColumnsWithAnalytics = exports.deleteColumnsWithAnalytics = function deleteColumnsWithAnalytics(editorAnalyticsAPI) {
243
+ var tablePreserveWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
242
244
  return function (inputMethod, rect) {
243
245
  return (0, _analytics2.withEditorAnalyticsAPI)(function (_ref6) {
244
246
  var selection = _ref6.selection;
@@ -258,7 +260,7 @@ var deleteColumnsWithAnalytics = exports.deleteColumnsWithAnalytics = function d
258
260
  },
259
261
  eventType: _analytics.EVENT_TYPE.TRACK
260
262
  };
261
- })(editorAnalyticsAPI)((0, _delete.deleteColumnsCommand)(rect));
263
+ })(editorAnalyticsAPI)((0, _delete.deleteColumnsCommand)(rect, tablePreserveWidth));
262
264
  };
263
265
  };
264
266
  var deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut = exports.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut = function deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut(editorAnalyticsAPI) {
@@ -337,6 +337,7 @@ function handleTripleClick(view, pos) {
337
337
  return false;
338
338
  }
339
339
  var handleCut = exports.handleCut = function handleCut(oldTr, oldState, newState, editorAnalyticsAPI, editorView) {
340
+ var tablePreserveWidth = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
340
341
  var oldSelection = oldState.tr.selection;
341
342
  var tr = newState.tr;
342
343
  if (oldSelection instanceof _cellSelection.CellSelection) {
@@ -379,7 +380,7 @@ var handleCut = exports.handleCut = function handleCut(oldTr, oldState, newState
379
380
  isHeaderRowRequired = _getPluginState9.pluginConfig.isHeaderRowRequired;
380
381
  tr = (0, _transforms.deleteRows)(rect, isHeaderRowRequired)(tr);
381
382
  } else if (tr.selection.isColSelection()) {
382
- tr = (0, _transforms.deleteColumns)(rect, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(oldState), editorView)(tr);
383
+ tr = (0, _transforms.deleteColumns)(rect, (0, _getAllowAddColumnCustomStep.getAllowAddColumnCustomStep)(oldState), editorView, tablePreserveWidth)(tr);
383
384
  }
384
385
  }
385
386
  }
@@ -175,7 +175,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
175
175
  getNode = _this$props2.getNode,
176
176
  getPos = _this$props2.getPos,
177
177
  containerWidth = _this$props2.containerWidth,
178
- options = _this$props2.options;
178
+ options = _this$props2.options,
179
+ getEditorFeatureFlags = _this$props2.getEditorFeatureFlags;
179
180
  var node = getNode();
180
181
  var state = view.state,
181
182
  dispatch = view.dispatch;
@@ -186,13 +187,16 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
186
187
  var domAtPos = view.domAtPos.bind(view);
187
188
  var width = containerWidth.width;
188
189
  _this.scaleTableDebounced.cancel();
190
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
191
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tablePreserveWidth,
192
+ tablePreserveWidth = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
189
193
  var tr = (0, _utils4.scaleTable)(_this.table, _objectSpread(_objectSpread({}, scaleOptions), {}, {
190
194
  node: node,
191
195
  prevNode: _this.node || node,
192
196
  start: pos + 1,
193
197
  containerWidth: width,
194
198
  previousContainerWidth: _this.containerWidth.width || width
195
- }, options), domAtPos)(state.tr);
199
+ }, options), domAtPos, tablePreserveWidth)(state.tr);
196
200
  dispatch(tr);
197
201
  });
198
202
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setTimerToSendInitialOverflowCaptured", function (isOverflowing) {
@@ -319,8 +323,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
319
323
  this.wrapper.addEventListener('scroll', this.handleScrollDebounced, {
320
324
  passive: true
321
325
  });
322
- var _getEditorFeatureFlag = getEditorFeatureFlags(),
323
- stickyScrollbar = _getEditorFeatureFlag.stickyScrollbar;
326
+ var _getEditorFeatureFlag3 = getEditorFeatureFlags(),
327
+ stickyScrollbar = _getEditorFeatureFlag3.stickyScrollbar;
324
328
  if (stickyScrollbar) {
325
329
  if (this.table) {
326
330
  this.stickyScrollbar = new _TableStickyScrollbar.TableStickyScrollbar(this.wrapper, this.props.view);
@@ -366,8 +370,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
366
370
  if (isDragAndDropEnabled && this.dragAndDropCleanupFn) {
367
371
  this.dragAndDropCleanupFn();
368
372
  }
369
- var _getEditorFeatureFlag2 = getEditorFeatureFlags(),
370
- stickyScrollbar = _getEditorFeatureFlag2.stickyScrollbar;
373
+ var _getEditorFeatureFlag4 = getEditorFeatureFlags(),
374
+ stickyScrollbar = _getEditorFeatureFlag4.stickyScrollbar;
371
375
  if (stickyScrollbar) {
372
376
  if (this.stickyScrollbar) {
373
377
  this.stickyScrollbar.dispose();
@@ -392,20 +396,83 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
392
396
  }
393
397
  }
394
398
  }, {
395
- key: "componentDidUpdate",
396
- value: function componentDidUpdate(_, prevState) {
397
- var _this$wrapper,
398
- _this2 = this;
399
+ key: "handleColgroupUpdates",
400
+ value: function handleColgroupUpdates() {
401
+ var _this2 = this,
402
+ _this$containerWidth;
399
403
  var _this$props9 = this.props,
400
- view = _this$props9.view,
401
404
  getNode = _this$props9.getNode,
402
- isMediaFullscreen = _this$props9.isMediaFullscreen,
403
- allowColumnResizing = _this$props9.allowColumnResizing,
405
+ containerWidth = _this$props9.containerWidth,
404
406
  isResizing = _this$props9.isResizing,
405
- options = _this$props9.options;
407
+ view = _this$props9.view,
408
+ getPos = _this$props9.getPos,
409
+ tableRef = _this$props9.tableRef;
410
+ if (!tableRef) {
411
+ return;
412
+ }
413
+ var TABLE_MARGIN = 76;
414
+
415
+ // Remove any widths styles after resizing preview is completed
416
+ tableRef.style.width = '';
417
+ var tableRenderWidth = containerWidth.width - TABLE_MARGIN;
418
+ var tableNode = getNode();
419
+ var start = getPos() || 0;
420
+ var depth = view.state.doc.resolve(start).depth;
421
+
422
+ // TODO - remove this when support is added for nested tables
423
+ if (depth !== 0) {
424
+ return;
425
+ }
426
+ var tableNodeWidth = tableNode.attrs.width;
427
+ var tableColumnWidths = (0, _utils.calcTableColumnWidths)(tableNode);
428
+ var shouldTableScale = tableRenderWidth < tableNodeWidth;
429
+ var isTableColumnWidthsSame = false;
430
+ if (this.tableColumnWidths) {
431
+ isTableColumnWidthsSame = tableColumnWidths === null || tableColumnWidths === void 0 ? void 0 : tableColumnWidths.every(function (width, index) {
432
+ return width === _this2.tableColumnWidths[index];
433
+ });
434
+ }
435
+ var containerWidthValue = containerWidth.width;
436
+ var isWidthChanged = ((_this$containerWidth = this.containerWidth) === null || _this$containerWidth === void 0 ? void 0 : _this$containerWidth.width) !== containerWidthValue;
437
+ if (shouldTableScale && !isResizing && (!isTableColumnWidthsSame || isWidthChanged)) {
438
+ var resizeState = (0, _utils4.getResizeState)({
439
+ minWidth: _utils4.COLUMN_MIN_WIDTH,
440
+ maxSize: tableRenderWidth,
441
+ table: tableNode,
442
+ tableRef: this.table,
443
+ start: start,
444
+ domAtPos: view.domAtPos,
445
+ tablePreserveWidth: true
446
+ });
447
+ requestAnimationFrame(function () {
448
+ (0, _utils4.updateColgroup)(resizeState, _this2.table, true);
449
+ });
450
+ this.tableColumnWidths = tableColumnWidths;
451
+ this.containerWidth = containerWidth;
452
+ }
453
+ }
454
+ }, {
455
+ key: "componentDidUpdate",
456
+ value: function componentDidUpdate(_, prevState) {
457
+ var _this$wrapper,
458
+ _this3 = this;
459
+ var _this$props10 = this.props,
460
+ view = _this$props10.view,
461
+ getNode = _this$props10.getNode,
462
+ isMediaFullscreen = _this$props10.isMediaFullscreen,
463
+ allowColumnResizing = _this$props10.allowColumnResizing,
464
+ isResizing = _this$props10.isResizing,
465
+ options = _this$props10.options,
466
+ getEditorFeatureFlags = _this$props10.getEditorFeatureFlags;
406
467
  var _getPluginState = (0, _pluginFactory.getPluginState)(view.state),
407
468
  isInDanger = _getPluginState.isInDanger;
469
+ var _getEditorFeatureFlag5 = getEditorFeatureFlags(),
470
+ _getEditorFeatureFlag6 = _getEditorFeatureFlag5.tablePreserveWidth,
471
+ tablePreserveWidth = _getEditorFeatureFlag6 === void 0 ? false : _getEditorFeatureFlag6;
408
472
  var table = (0, _utils2.findTable)(view.state.selection);
473
+ if (tablePreserveWidth) {
474
+ this.handleColgroupUpdates();
475
+ }
409
476
  if (isInDanger && !table) {
410
477
  (0, _commands.clearHoverSelection)()(view.state, view.dispatch);
411
478
  }
@@ -415,7 +482,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
415
482
  // that happens when a table is nested in expand and expand's width is
416
483
  // changed via breakout button
417
484
  window.requestAnimationFrame(function () {
418
- _this2.overflowShadowsObserver = new _OverflowShadowsObserver.OverflowShadowsObserver(_this2.updateShadowState, _this2.table, _this2.wrapper);
485
+ _this3.overflowShadowsObserver = new _OverflowShadowsObserver.OverflowShadowsObserver(_this3.updateShadowState, _this3.table, _this3.wrapper);
419
486
  });
420
487
  } else {
421
488
  this.overflowShadowsObserver = new _OverflowShadowsObserver.OverflowShadowsObserver(this.updateShadowState, this.table, this.wrapper);
@@ -440,7 +507,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
440
507
  var _view = this.props.view;
441
508
  var shouldRecreateResizeCols = !(options !== null && options !== void 0 && options.isTableResizingEnabled) || !isResizing || (0, _utils5.tablesHaveDifferentNoOfColumns)(currentTable, previousTable) && isResizing;
442
509
  if (shouldRecreateResizeCols) {
443
- (0, _utils4.insertColgroupFromNode)(this.table, currentTable);
510
+ (0, _utils4.insertColgroupFromNode)(this.table, currentTable, tablePreserveWidth);
444
511
  }
445
512
  (0, _dom.updateControls)()(_view.state);
446
513
  }
@@ -471,24 +538,24 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
471
538
  }, {
472
539
  key: "render",
473
540
  value: function render() {
474
- var _this3 = this,
541
+ var _this4 = this,
475
542
  _classnames;
476
- var _this$props10 = this.props,
477
- view = _this$props10.view,
478
- getNode = _this$props10.getNode,
479
- isResizing = _this$props10.isResizing,
480
- _this$props10$allowCo = _this$props10.allowControls,
481
- allowControls = _this$props10$allowCo === void 0 ? true : _this$props10$allowCo,
482
- isHeaderRowEnabled = _this$props10.isHeaderRowEnabled,
483
- ordering = _this$props10.ordering,
484
- isHeaderColumnEnabled = _this$props10.isHeaderColumnEnabled,
485
- tableActive = _this$props10.tableActive,
486
- containerWidth = _this$props10.containerWidth,
487
- options = _this$props10.options,
488
- getPos = _this$props10.getPos,
489
- pluginInjectionApi = _this$props10.pluginInjectionApi,
490
- isDragAndDropEnabled = _this$props10.isDragAndDropEnabled,
491
- getEditorFeatureFlags = _this$props10.getEditorFeatureFlags;
543
+ var _this$props11 = this.props,
544
+ view = _this$props11.view,
545
+ getNode = _this$props11.getNode,
546
+ isResizing = _this$props11.isResizing,
547
+ _this$props11$allowCo = _this$props11.allowControls,
548
+ allowControls = _this$props11$allowCo === void 0 ? true : _this$props11$allowCo,
549
+ isHeaderRowEnabled = _this$props11.isHeaderRowEnabled,
550
+ ordering = _this$props11.ordering,
551
+ isHeaderColumnEnabled = _this$props11.isHeaderColumnEnabled,
552
+ tableActive = _this$props11.tableActive,
553
+ containerWidth = _this$props11.containerWidth,
554
+ options = _this$props11.options,
555
+ getPos = _this$props11.getPos,
556
+ pluginInjectionApi = _this$props11.pluginInjectionApi,
557
+ isDragAndDropEnabled = _this$props11.isDragAndDropEnabled,
558
+ getEditorFeatureFlags = _this$props11.getEditorFeatureFlags;
492
559
  var _this$state3 = this.state,
493
560
  showBeforeShadow = _this$state3.showBeforeShadow,
494
561
  showAfterShadow = _this$state3.showAfterShadow;
@@ -546,8 +613,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
546
613
  tableContainerWidth: tableContainerWidth,
547
614
  isNumberColumnEnabled: node.attrs.isNumberColumnEnabled,
548
615
  getScrollOffset: function getScrollOffset() {
549
- var _this3$wrapper;
550
- return ((_this3$wrapper = _this3.wrapper) === null || _this3$wrapper === void 0 ? void 0 : _this3$wrapper.scrollLeft) || 0;
616
+ var _this4$wrapper;
617
+ return ((_this4$wrapper = _this4.wrapper) === null || _this4$wrapper === void 0 ? void 0 : _this4$wrapper.scrollLeft) || 0;
551
618
  }
552
619
  }) : null;
553
620
  var shadowPadding = allowControls && tableActive ? -_editorSharedStyles.akEditorTableToolbarSize : _styles.tableMarginSides;
@@ -570,8 +637,9 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
570
637
  }
571
638
  var isNested = (0, _utils5.isTableNested)(view.state, tablePos);
572
639
  var topStickyShadowPosition = isDragAndDropEnabled ? this.state.stickyHeader && this.state.stickyHeader.top + this.state.stickyHeader.padding + 2 : this.state.stickyHeader && this.state.stickyHeader.top + this.state.stickyHeader.padding + shadowPadding + 2;
573
- var _getEditorFeatureFlag3 = getEditorFeatureFlags(),
574
- stickyScrollbar = _getEditorFeatureFlag3.stickyScrollbar;
640
+ var _getEditorFeatureFlag7 = getEditorFeatureFlags(),
641
+ stickyScrollbar = _getEditorFeatureFlag7.stickyScrollbar,
642
+ tablePreserveWidth = _getEditorFeatureFlag7.tablePreserveWidth;
575
643
  return /*#__PURE__*/_react.default.createElement(_TableContainer.TableContainer, {
576
644
  className: (0, _classnames2.default)(_types.TableCssClassName.TABLE_CONTAINER, (_classnames = {}, (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.WITH_CONTROLS, allowControls && tableActive), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.TABLE_STICKY, this.state.stickyHeader && hasHeaderRow), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.HOVERED_DELETE_BUTTON, isInDanger), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.TABLE_SELECTED, (0, _utils2.isTableSelected)(view.state.selection)), _classnames)),
577
645
  editorView: view,
@@ -583,7 +651,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
583
651
  isNested: isNested,
584
652
  pluginInjectionApi: pluginInjectionApi,
585
653
  isTableResizingEnabled: options === null || options === void 0 ? void 0 : options.isTableResizingEnabled,
586
- isResizing: isResizing
654
+ isResizing: isResizing,
655
+ tablePreserveWidth: tablePreserveWidth
587
656
  }, /*#__PURE__*/_react.default.createElement("div", {
588
657
  className: _types.TableCssClassName.TABLE_STICKY_SENTINEL_TOP,
589
658
  "data-testid": "sticky-sentinel-top"
@@ -594,12 +663,12 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
594
663
  editorView: view,
595
664
  node: node,
596
665
  getScrollOffset: function getScrollOffset() {
597
- var _this3$wrapper2;
598
- return ((_this3$wrapper2 = _this3.wrapper) === null || _this3$wrapper2 === void 0 ? void 0 : _this3$wrapper2.scrollLeft) || 0;
666
+ var _this4$wrapper2;
667
+ return ((_this4$wrapper2 = _this4.wrapper) === null || _this4$wrapper2 === void 0 ? void 0 : _this4$wrapper2.scrollLeft) || 0;
599
668
  },
600
669
  getTableWrapperWidth: function getTableWrapperWidth() {
601
- var _this3$wrapper3;
602
- return ((_this3$wrapper3 = _this3.wrapper) === null || _this3$wrapper3 === void 0 ? void 0 : _this3$wrapper3.clientWidth) || 760;
670
+ var _this4$wrapper3;
671
+ return ((_this4$wrapper3 = _this4.wrapper) === null || _this4$wrapper3 === void 0 ? void 0 : _this4$wrapper3.clientWidth) || 760;
603
672
  }
604
673
  }), /*#__PURE__*/_react.default.createElement("div", {
605
674
  style: shadowStyle(showBeforeShadow),
@@ -614,13 +683,13 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
614
683
  }), /*#__PURE__*/_react.default.createElement("div", {
615
684
  className: (0, _classnames2.default)(_types.TableCssClassName.TABLE_NODE_WRAPPER),
616
685
  ref: function ref(elem) {
617
- _this3.wrapper = elem;
686
+ _this4.wrapper = elem;
618
687
  if (elem) {
619
- _this3.props.contentDOM(elem);
688
+ _this4.props.contentDOM(elem);
620
689
  var tableElement = elem.querySelector('table');
621
- if (tableElement !== _this3.table) {
622
- _this3.table = tableElement;
623
- _this3.createShadowSentinels(_this3.table);
690
+ if (tableElement !== _this4.table) {
691
+ _this4.table = tableElement;
692
+ _this4.createShadowSentinels(_this4.table);
624
693
  }
625
694
  }
626
695
  }
@@ -53,7 +53,8 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
53
53
  getPos = _ref2.getPos,
54
54
  tableRef = _ref2.tableRef,
55
55
  isResizing = _ref2.isResizing,
56
- pluginInjectionApi = _ref2.pluginInjectionApi;
56
+ pluginInjectionApi = _ref2.pluginInjectionApi,
57
+ tablePreserveWidth = _ref2.tablePreserveWidth;
57
58
  var containerRef = (0, _react.useRef)(null);
58
59
  var tableWidthRef = (0, _react.useRef)(_editorSharedStyles.akEditorDefaultLayoutWidth);
59
60
  var updateContainerHeight = (0, _react.useCallback)(function (height) {
@@ -134,7 +135,8 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
134
135
  tableRef: tableRef,
135
136
  displayGuideline: displayGuideline,
136
137
  attachAnalyticsEvent: attachAnalyticsEvent,
137
- displayGapCursor: displayGapCursor
138
+ displayGapCursor: displayGapCursor,
139
+ tablePreserveWidth: tablePreserveWidth
138
140
  };
139
141
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.resizing-table-height-improvement')) {
140
142
  tableResizerProps = _objectSpread(_objectSpread({}, tableResizerProps), {}, {
@@ -172,7 +174,8 @@ var TableContainer = exports.TableContainer = function TableContainer(_ref3) {
172
174
  tableRef = _ref3.tableRef,
173
175
  isNested = _ref3.isNested,
174
176
  isResizing = _ref3.isResizing,
175
- pluginInjectionApi = _ref3.pluginInjectionApi;
177
+ pluginInjectionApi = _ref3.pluginInjectionApi,
178
+ tablePreserveWidth = _ref3.tablePreserveWidth;
176
179
  if (isTableResizingEnabled && !isNested) {
177
180
  return /*#__PURE__*/_react.default.createElement(ResizableTableContainer, {
178
181
  className: className,
@@ -182,7 +185,8 @@ var TableContainer = exports.TableContainer = function TableContainer(_ref3) {
182
185
  getPos: getPos,
183
186
  tableRef: tableRef,
184
187
  isResizing: isResizing,
185
- pluginInjectionApi: pluginInjectionApi
188
+ pluginInjectionApi: pluginInjectionApi,
189
+ tablePreserveWidth: tablePreserveWidth
186
190
  }, children);
187
191
  }
188
192
  var tableWidth = isBreakoutEnabled ? (0, _styles.calcTableWidth)(node.attrs.layout, editorWidth) : 'inherit';
@@ -97,7 +97,8 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
97
97
  tableRef = _ref.tableRef,
98
98
  displayGuideline = _ref.displayGuideline,
99
99
  attachAnalyticsEvent = _ref.attachAnalyticsEvent,
100
- displayGapCursor = _ref.displayGapCursor;
100
+ displayGapCursor = _ref.displayGapCursor,
101
+ tablePreserveWidth = _ref.tablePreserveWidth;
101
102
  var currentGap = (0, _react.useRef)(0);
102
103
  // track resizing state - use ref over state to avoid re-render
103
104
  var isResizing = (0, _react.useRef)(false);
@@ -205,11 +206,11 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
205
206
  prevNode: node,
206
207
  start: pos + 1,
207
208
  parentWidth: newWidth
208
- }, editorView.domAtPos.bind(editorView));
209
+ }, editorView.domAtPos.bind(editorView), tablePreserveWidth);
209
210
  updateActiveGuidelines((0, _snapping.findClosestSnap)(newWidth, _snapping.defaultSnappingWidths, _guidelines.defaultGuidelines, _consts.TABLE_HIGHLIGHT_GAP, _consts.TABLE_HIGHLIGHT_TOLERANCE));
210
211
  updateWidth(newWidth);
211
212
  return newWidth;
212
- }, [editorView, getPos, node, tableRef, updateWidth, updateActiveGuidelines, countFrames]);
213
+ }, [editorView, getPos, node, tableRef, updateWidth, updateActiveGuidelines, countFrames, tablePreserveWidth]);
213
214
  var scheduleResize = (0, _react.useMemo)(function () {
214
215
  return (0, _rafSchd.default)(handleResize);
215
216
  }, [handleResize]);
@@ -245,7 +246,7 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
245
246
  prevNode: node,
246
247
  start: pos + 1,
247
248
  parentWidth: newWidth
248
- }, editorView.domAtPos.bind(editorView))(tr);
249
+ }, editorView.domAtPos.bind(editorView), tablePreserveWidth)(tr);
249
250
  var scaledNode = tr.doc.nodeAt(pos);
250
251
  (_attachAnalyticsEvent2 = attachAnalyticsEvent((0, _analytics2.generateResizedPayload)({
251
252
  originalNode: node,
@@ -263,7 +264,7 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
263
264
  onResizeStop();
264
265
  }
265
266
  return newWidth;
266
- }, [displayGapCursor, updateWidth, editorView, getPos, node, tableRef, scheduleResize, displayGuideline, attachAnalyticsEvent, endMeasure, onResizeStop]);
267
+ }, [displayGapCursor, updateWidth, editorView, getPos, node, tableRef, scheduleResize, displayGuideline, attachAnalyticsEvent, endMeasure, onResizeStop, tablePreserveWidth]);
267
268
  var handleTableSizeChangeOnKeypress = (0, _react.useCallback)(function (step) {
268
269
  var newWidth = width + step;
269
270
  if (newWidth > maxWidth || newWidth < resizerMinWidth) {
@@ -79,17 +79,24 @@ var TableView = exports.default = /*#__PURE__*/function (_ReactNodeView) {
79
79
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasHoveredRows", false);
80
80
  _this.getPos = props.getPos;
81
81
  _this.eventDispatcher = props.eventDispatcher;
82
+ _this.getEditorFeatureFlags = props.getEditorFeatureFlags;
82
83
  return _this;
83
84
  }
84
85
  (0, _createClass2.default)(TableView, [{
85
86
  key: "getContentDOM",
86
87
  value: function getContentDOM() {
87
88
  var rendered = _model.DOMSerializer.renderSpec(document, toDOM(this.node, this.reactComponentProps));
88
- var tableInlineWidth = getInlineWidth(this.node, this.reactComponentProps.options, this.reactComponentProps.view.state, this.reactComponentProps.getPos());
89
89
  if (rendered.dom) {
90
90
  this.table = rendered.dom;
91
- if (tableInlineWidth) {
92
- handleInlineTableWidth(this.table, tableInlineWidth);
91
+ var _this$getEditorFeatur = this.getEditorFeatureFlags(),
92
+ _this$getEditorFeatur2 = _this$getEditorFeatur.tablePreserveWidth,
93
+ tablePreserveWidth = _this$getEditorFeatur2 === void 0 ? false : _this$getEditorFeatur2;
94
+ // Preserve Table Width cannot have inline width set on the table
95
+ if (!tablePreserveWidth) {
96
+ var tableInlineWidth = getInlineWidth(this.node, this.reactComponentProps.options, this.reactComponentProps.view.state, this.reactComponentProps.getPos());
97
+ if (tableInlineWidth) {
98
+ handleInlineTableWidth(this.table, tableInlineWidth);
99
+ }
93
100
  }
94
101
  }
95
102
  return rendered;
@@ -187,7 +194,8 @@ var TableView = exports.default = /*#__PURE__*/function (_ReactNodeView) {
187
194
  contentDOM: forwardRef,
188
195
  getEditorFeatureFlags: props.getEditorFeatureFlags,
189
196
  dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
190
- pluginInjectionApi: props.pluginInjectionApi
197
+ pluginInjectionApi: props.pluginInjectionApi,
198
+ tableRef: _this3.table
191
199
  });
192
200
  }
193
201
  });