@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
@@ -23,6 +23,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
23
23
  // Base function to trigger the actual scale on a table node.
24
24
  // Will only resize/scale if a table has been previously resized.
25
25
  var scale = exports.scale = function scale(tableRef, options, domAtPos) {
26
+ var tablePreserveWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
26
27
  /**
27
28
  * isBreakoutEnabled === true -> default center aligned
28
29
  * isBreakoutEnabled === false -> full width mode
@@ -67,18 +68,21 @@ var scale = exports.scale = function scale(tableRef, options, domAtPos) {
67
68
  table: node,
68
69
  tableRef: tableRef,
69
70
  start: start,
70
- domAtPos: domAtPos
71
+ domAtPos: domAtPos,
72
+ tablePreserveWidth: tablePreserveWidth
71
73
  });
72
74
  return scaleTableTo(resizeState, newWidth);
73
75
  };
74
76
  var scaleWithParent = exports.scaleWithParent = function scaleWithParent(tableRef, parentWidth, table, start, domAtPos) {
77
+ var tablePreserveWidth = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
75
78
  var resizeState = (0, _resizeState.getResizeState)({
76
79
  minWidth: _styles.tableCellMinWidth,
77
80
  maxSize: parentWidth,
78
81
  table: table,
79
82
  tableRef: tableRef,
80
83
  start: start,
81
- domAtPos: domAtPos
84
+ domAtPos: domAtPos,
85
+ tablePreserveWidth: tablePreserveWidth
82
86
  });
83
87
  if (table.attrs.isNumberColumnEnabled) {
84
88
  parentWidth -= _editorSharedStyles.akEditorTableNumberColumnWidth;
@@ -110,6 +114,7 @@ function scaleTableTo(state, maxSize) {
110
114
  return (0, _resizeState.adjustColumnsWidths)(newState, maxSize);
111
115
  }
112
116
  var previewScaleTable = exports.previewScaleTable = function previewScaleTable(tableRef, options, domAtPos) {
117
+ var tablePreserveWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
113
118
  var node = options.node,
114
119
  start = options.start,
115
120
  parentWidth = options.parentWidth;
@@ -121,18 +126,22 @@ var previewScaleTable = exports.previewScaleTable = function previewScaleTable(t
121
126
  var width = isNumberColumnEnabled ? parentWidth - _editorSharedStyles.akEditorTableNumberColumnWidth : parentWidth;
122
127
  tableRef.style.width = "".concat(width, "px");
123
128
  }
124
- if (!(0, _colgroup.hasTableBeenResized)(node)) {
129
+
130
+ // If the table hasn't been resize, the colgroup 48px width values will gracefully scale down.
131
+ // If we are scaling the table down with tablePreserveWidth, the colgroup widths may be scaled to a value that is not 48px.
132
+ if (!(0, _colgroup.hasTableBeenResized)(node) && !tablePreserveWidth) {
125
133
  (0, _dom.syncStickyRowToTable)(tableRef);
126
134
  return;
127
135
  }
128
- var resizeState = parentWidth ? scaleWithParent(tableRef, parentWidth, node, start, domAtPos) : scale(tableRef, options, domAtPos);
136
+ var resizeState = parentWidth ? scaleWithParent(tableRef, parentWidth, node, start, domAtPos, tablePreserveWidth) : scale(tableRef, options, domAtPos, tablePreserveWidth);
129
137
  if (resizeState) {
130
- (0, _resizeState.updateColgroup)(resizeState, tableRef);
138
+ (0, _resizeState.updateColgroup)(resizeState, tableRef, tablePreserveWidth);
131
139
  }
132
140
  };
133
141
 
134
142
  // Scale the table to meet new requirements (col, layout change etc)
135
143
  var scaleTable = exports.scaleTable = function scaleTable(tableRef, options, domAtPos) {
144
+ var tablePreserveWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
136
145
  return function (tr) {
137
146
  if (!tableRef) {
138
147
  return tr;
@@ -145,15 +154,17 @@ var scaleTable = exports.scaleTable = function scaleTable(tableRef, options, dom
145
154
  if ((0, _colgroup.hasTableBeenResized)(node) === false) {
146
155
  // If its not a re-sized table, we still want to re-create cols
147
156
  // To force reflow of columns upon delete.
148
- (0, _colgroup.insertColgroupFromNode)(tableRef, node);
157
+ if (!tablePreserveWidth) {
158
+ (0, _colgroup.insertColgroupFromNode)(tableRef, node);
159
+ }
149
160
  tr.setMeta('scrollIntoView', false);
150
161
  return tr;
151
162
  }
152
163
  var resizeState;
153
164
  if (parentWidth) {
154
- resizeState = scaleWithParent(tableRef, parentWidth, node, start, domAtPos);
165
+ resizeState = scaleWithParent(tableRef, parentWidth, node, start, domAtPos, tablePreserveWidth);
155
166
  } else {
156
- resizeState = scale(tableRef, options, domAtPos);
167
+ resizeState = scale(tableRef, options, domAtPos, tablePreserveWidth);
157
168
  }
158
169
  if (resizeState) {
159
170
  tr = (0, _transforms.updateColumnWidths)(resizeState, node, start)(tr);
@@ -96,6 +96,7 @@ var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMen
96
96
  var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorState, editorView, initialSelectionRect, _ref2, getEditorContainerWidth, editorAnalyticsAPI) {
97
97
  var _pluginState$pluginCo, _pluginState$pluginCo2;
98
98
  var formatMessage = _ref2.formatMessage;
99
+ var tablePreserveWidth = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
99
100
  var top = initialSelectionRect.top,
100
101
  bottom = initialSelectionRect.bottom,
101
102
  right = initialSelectionRect.right,
@@ -110,7 +111,7 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
110
111
  var selectionRect = getClosestSelectionRect(state);
111
112
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
112
113
  if (index) {
113
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
114
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(_analytics.INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
114
115
  }
115
116
  return true;
116
117
  },
@@ -189,7 +190,7 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
189
190
  }];
190
191
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
191
192
  var _newResizeStateWithAn;
192
- var newResizeStateWithAnalytics = editorView ? (0, _resizeState.getNewResizeStateFromSelectedColumns)(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth) : undefined;
193
+ var newResizeStateWithAnalytics = editorView ? (0, _resizeState.getNewResizeStateFromSelectedColumns)(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth) : undefined;
193
194
  var wouldChange = (_newResizeStateWithAn = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn !== void 0 ? _newResizeStateWithAn : false;
194
195
  var distributeColumnWidths = function distributeColumnWidths(state, dispatch) {
195
196
  if (newResizeStateWithAnalytics) {
@@ -309,10 +310,13 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
309
310
  if (tableObject && pluginState.editorHasFocus && !isWidthResizing) {
310
311
  var nodeType = state.schema.nodes.table;
311
312
  var menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI);
313
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
314
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tablePreserveWidth,
315
+ tablePreserveWidth = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
312
316
  var cellItems;
313
- cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(config, state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI);
317
+ cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(config, state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth);
314
318
  var columnSettingsItems;
315
- columnSettingsItems = pluginState.isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI) : [];
319
+ columnSettingsItems = pluginState.isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth) : [];
316
320
  var colorPicker = getColorPicker(state, menu, intl, editorAnalyticsAPI);
317
321
 
318
322
  // Check if we need to show confirm dialog for delete button
@@ -351,8 +355,8 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
351
355
  }
352
356
  return element;
353
357
  };
354
- var _getEditorFeatureFlag = getEditorFeatureFlags(),
355
- stickyScrollbar = _getEditorFeatureFlag.stickyScrollbar;
358
+ var _getEditorFeatureFlag3 = getEditorFeatureFlags(),
359
+ stickyScrollbar = _getEditorFeatureFlag3.stickyScrollbar;
356
360
  return {
357
361
  title: 'Table floating controls',
358
362
  getDomRef: getDomRef,
@@ -411,22 +415,24 @@ var separator = function separator(hidden) {
411
415
  };
412
416
  var getCellItems = function getCellItems(pluginConfig, state, view, _ref3, getEditorContainerWidth, editorAnalyticsAPI) {
413
417
  var formatMessage = _ref3.formatMessage;
418
+ var tablePreserveWidth = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
414
419
  var initialSelectionRect = getClosestSelectionRect(state);
415
420
  if (initialSelectionRect) {
416
421
  var cellOptions = getToolbarCellOptionsConfig(state, view, initialSelectionRect, {
417
422
  formatMessage: formatMessage
418
- }, getEditorContainerWidth, editorAnalyticsAPI);
423
+ }, getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth);
419
424
  return [cellOptions, separator(cellOptions.hidden)];
420
425
  }
421
426
  return [];
422
427
  };
423
428
  var getDistributeConfig = exports.getDistributeConfig = function getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI) {
429
+ var tablePreserveWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
424
430
  return function (state, dispatch, editorView) {
425
431
  var selectionOrTableRect = getClosestSelectionOrTableRect(state);
426
432
  if (!editorView || !selectionOrTableRect) {
427
433
  return false;
428
434
  }
429
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth);
435
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
430
436
  if (newResizeStateWithAnalytics) {
431
437
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
432
438
  return true;
@@ -440,12 +446,13 @@ var getDistributeConfig = exports.getDistributeConfig = function getDistributeCo
440
446
  var getColumnSettingItems = function getColumnSettingItems(editorState, editorView, _ref4, getEditorContainerWidth, editorAnalyticsAPI) {
441
447
  var _newResizeStateWithAn2, _pluginState$pluginCo3;
442
448
  var formatMessage = _ref4.formatMessage;
449
+ var tablePreserveWidth = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
443
450
  var pluginState = (0, _pluginFactory.getPluginState)(editorState);
444
451
  var selectionOrTableRect = getClosestSelectionOrTableRect(editorState);
445
452
  if (!selectionOrTableRect || !editorView) {
446
453
  return [];
447
454
  }
448
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth);
455
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
449
456
  var wouldChange = (_newResizeStateWithAn2 = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn2 !== void 0 ? _newResizeStateWithAn2 : false;
450
457
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo3 = pluginState.pluginConfig) !== null && _pluginState$pluginCo3 !== void 0 && _pluginState$pluginCo3.allowDistributeColumns && pluginState.isDragAndDropEnabled) {
451
458
  return [{
@@ -454,7 +461,7 @@ var getColumnSettingItems = function getColumnSettingItems(editorState, editorVi
454
461
  title: formatMessage(_messages.tableMessages.distributeColumns),
455
462
  icon: _layoutThreeEqual.default,
456
463
  onClick: function onClick(state, dispatch, view) {
457
- return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI)(state, dispatch, view);
464
+ return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(state, dispatch, view);
458
465
  },
459
466
  disabled: !wouldChange
460
467
  }, {
@@ -94,9 +94,9 @@ var updateColumnWidths = exports.updateColumnWidths = function updateColumnWidth
94
94
  * @returns Updated transaction with rescaled columns for a given table
95
95
  */
96
96
  var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
97
+ var tablePreserveWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
97
98
  return function (table, view) {
98
99
  return function (tr) {
99
- var _tableRef$parentEleme, _tableRef$parentEleme2;
100
100
  if (!view) {
101
101
  return tr;
102
102
  }
@@ -108,14 +108,28 @@ var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
108
108
  return tr;
109
109
  }
110
110
  var isResized = (0, _utils.hasTableBeenResized)(table.node);
111
- // get current table info
112
111
  var previousTableInfo = {
113
- // when table is resized the tableRef client width will be 1px larger than colGroup, which is used in calculations
114
- width: isResized ? tableRef.clientWidth - 1 : tableRef.clientWidth,
115
- /** the is the width the table can reach before overflowing */
116
- possibleMaxWidth: (0, _platformFeatureFlags.getBooleanFF)('platform.editor.custom-table-width') ? (tableRef === null || tableRef === void 0 || (_tableRef$parentEleme = tableRef.parentElement) === null || _tableRef$parentEleme === void 0 ? void 0 : _tableRef$parentEleme.clientWidth) || 0 : ((tableRef === null || tableRef === void 0 || (_tableRef$parentEleme2 = tableRef.parentElement) === null || _tableRef$parentEleme2 === void 0 ? void 0 : _tableRef$parentEleme2.clientWidth) || 0) - _commonStyles.insertColumnButtonOffset,
112
+ width: 0,
113
+ possibleMaxWidth: 0,
117
114
  isResized: isResized
118
115
  };
116
+ if (tablePreserveWidth) {
117
+ previousTableInfo = {
118
+ // TODO - ensure correct width is returned when table doesn't have a width value
119
+ width: (0, _utils.getTableElementWidth)(table.node),
120
+ possibleMaxWidth: (0, _platformFeatureFlags.getBooleanFF)('platform.editor.custom-table-width') ? (0, _utils.getTableContainerElement)(table.node) : (0, _utils.getTableContainerElement)(table.node) - _commonStyles.insertColumnButtonOffset,
121
+ isResized: isResized
122
+ };
123
+ } else {
124
+ var _tableRef$parentEleme, _tableRef$parentEleme2;
125
+ previousTableInfo = {
126
+ // when table is resized the tableRef client width will be 1px larger than colGroup, which is used in calculations
127
+ width: isResized ? tableRef.clientWidth - 1 : tableRef.clientWidth,
128
+ /** the is the width the table can reach before overflowing */
129
+ possibleMaxWidth: (0, _platformFeatureFlags.getBooleanFF)('platform.editor.custom-table-width') ? (tableRef === null || tableRef === void 0 || (_tableRef$parentEleme = tableRef.parentElement) === null || _tableRef$parentEleme === void 0 ? void 0 : _tableRef$parentEleme.clientWidth) || 0 : ((tableRef === null || tableRef === void 0 || (_tableRef$parentEleme2 = tableRef.parentElement) === null || _tableRef$parentEleme2 === void 0 ? void 0 : _tableRef$parentEleme2.clientWidth) || 0) - _commonStyles.insertColumnButtonOffset,
130
+ isResized: isResized
131
+ };
132
+ }
119
133
 
120
134
  // determine the new table, based on new width
121
135
  var newTableInfo = {
@@ -160,7 +174,8 @@ var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
160
174
  start: table.start,
161
175
  tableRef: tableRef,
162
176
  domAtPos: domAtPos,
163
- maxSize: previousTableInfo.possibleMaxWidth
177
+ maxSize: previousTableInfo.possibleMaxWidth,
178
+ tablePreserveWidth: tablePreserveWidth
164
179
  });
165
180
 
166
181
  // Two scenarios that require scaling:
@@ -212,6 +212,7 @@ function fixRowSpans(table) {
212
212
  return table.type.createChecked(table.attrs, rows, table.marks);
213
213
  }
214
214
  var deleteColumns = exports.deleteColumns = function deleteColumns(rect, allowCustomStep, view) {
215
+ var tablePreserveWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
215
216
  return function (tr) {
216
217
  var updatedTr = tr;
217
218
  updatedTr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_TRIGGER, {
@@ -224,7 +225,7 @@ var deleteColumns = exports.deleteColumns = function deleteColumns(rect, allowCu
224
225
  }
225
226
  var table = (0, _utils.findTable)(updatedTr.selection);
226
227
  if (table) {
227
- updatedTr = (0, _columnWidth.rescaleColumns)()(table, view)(updatedTr);
228
+ updatedTr = (0, _columnWidth.rescaleColumns)(tablePreserveWidth)(table, view)(updatedTr);
228
229
  }
229
230
  return updatedTr;
230
231
  };
@@ -279,8 +279,11 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
279
279
  isDragAndDropEnabled = _getPluginState8.isDragAndDropEnabled,
280
280
  allowDistributeColumns = _getPluginState8.pluginConfig.allowDistributeColumns;
281
281
  if (allowDistributeColumns && (!isDragAndDropEnabled || !(0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling'))) {
282
- var _newResizeState$chang;
283
- var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth);
282
+ var _this$props$getEditor, _this$props9, _newResizeState$chang;
283
+ var _ref = ((_this$props$getEditor = (_this$props9 = _this.props).getEditorFeatureFlags) === null || _this$props$getEditor === void 0 ? void 0 : _this$props$getEditor.call(_this$props9)) || {},
284
+ _ref$tablePreserveWid = _ref.tablePreserveWidth,
285
+ tablePreserveWidth = _ref$tablePreserveWid === void 0 ? false : _ref$tablePreserveWid;
286
+ var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
284
287
  var wouldChange = (_newResizeState$chang = newResizeState === null || newResizeState === void 0 ? void 0 : newResizeState.changed) !== null && _newResizeState$chang !== void 0 ? _newResizeState$chang : false;
285
288
  return {
286
289
  content: formatMessage(_messages.tableMessages.distributeColumns),
@@ -293,10 +296,10 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
293
296
  return null;
294
297
  });
295
298
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createSortColumnItems", function () {
296
- var _this$props9 = _this.props,
297
- formatMessage = _this$props9.intl.formatMessage,
298
- editorView = _this$props9.editorView,
299
- allowColumnSorting = _this$props9.allowColumnSorting;
299
+ var _this$props10 = _this.props,
300
+ formatMessage = _this$props10.intl.formatMessage,
301
+ editorView = _this$props10.editorView,
302
+ allowColumnSorting = _this$props10.allowColumnSorting;
300
303
  var _getPluginState9 = (0, _pluginFactory.getPluginState)(editorView.state),
301
304
  isDragAndDropEnabled = _getPluginState9.isDragAndDropEnabled;
302
305
  if (allowColumnSorting && (!isDragAndDropEnabled || !(0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling'))) {
@@ -362,18 +365,22 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
362
365
  items[1].items.push(deleteRowItem);
363
366
  return items;
364
367
  });
365
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMenuItemActivated", function (_ref) {
366
- var item = _ref.item;
367
- var _this$props10 = _this.props,
368
- editorView = _this$props10.editorView,
369
- selectionRect = _this$props10.selectionRect,
370
- editorAnalyticsAPI = _this$props10.editorAnalyticsAPI,
371
- getEditorContainerWidth = _this$props10.getEditorContainerWidth;
368
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMenuItemActivated", function (_ref2) {
369
+ var item = _ref2.item;
370
+ var _this$props11 = _this.props,
371
+ editorView = _this$props11.editorView,
372
+ selectionRect = _this$props11.selectionRect,
373
+ editorAnalyticsAPI = _this$props11.editorAnalyticsAPI,
374
+ getEditorContainerWidth = _this$props11.getEditorContainerWidth,
375
+ getEditorFeatureFlags = _this$props11.getEditorFeatureFlags;
372
376
  // TargetCellPosition could be outdated: https://product-fabric.atlassian.net/browse/ED-8129
373
377
  var state = editorView.state,
374
378
  dispatch = editorView.dispatch;
375
379
  var _getPluginState10 = (0, _pluginFactory.getPluginState)(state),
376
380
  targetCellPosition = _getPluginState10.targetCellPosition;
381
+ var _ref3 = (getEditorFeatureFlags === null || getEditorFeatureFlags === void 0 ? void 0 : getEditorFeatureFlags()) || {},
382
+ _ref3$tablePreserveWi = _ref3.tablePreserveWidth,
383
+ tablePreserveWidth = _ref3$tablePreserveWi === void 0 ? false : _ref3$tablePreserveWi;
377
384
  switch (item.value.name) {
378
385
  case 'sort_column_desc':
379
386
  (0, _commandsWithAnalytics.sortColumnWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.left, _customSteps.TableSortOrder.DESC)(state, dispatch);
@@ -392,7 +399,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
392
399
  _this.toggleOpen();
393
400
  break;
394
401
  case 'distribute_columns':
395
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth);
402
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
396
403
  if (newResizeStateWithAnalytics) {
397
404
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.CONTEXT_MENU, newResizeStateWithAnalytics)(state, dispatch);
398
405
  _this.toggleOpen();
@@ -403,7 +410,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
403
410
  _this.toggleOpen();
404
411
  break;
405
412
  case 'insert_column':
406
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
413
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
407
414
  _this.toggleOpen();
408
415
  break;
409
416
  case 'insert_row':
@@ -426,11 +433,11 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
426
433
  }
427
434
  });
428
435
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "toggleOpen", function () {
429
- var _this$props11 = _this.props,
430
- isOpen = _this$props11.isOpen,
431
- _this$props11$editorV = _this$props11.editorView,
432
- state = _this$props11$editorV.state,
433
- dispatch = _this$props11$editorV.dispatch;
436
+ var _this$props12 = _this.props,
437
+ isOpen = _this$props12.isOpen,
438
+ _this$props12$editorV = _this$props12.editorView,
439
+ state = _this$props12$editorV.state,
440
+ dispatch = _this$props12$editorV.dispatch;
434
441
  (0, _commands.toggleContextualMenu)()(state, dispatch);
435
442
  if (!isOpen) {
436
443
  _this.setState({
@@ -447,13 +454,13 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
447
454
  isSubmenuOpen: false
448
455
  });
449
456
  });
450
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseEnter", function (_ref2) {
451
- var item = _ref2.item;
452
- var _this$props12 = _this.props,
453
- _this$props12$editorV = _this$props12.editorView,
454
- state = _this$props12$editorV.state,
455
- dispatch = _this$props12$editorV.dispatch,
456
- selectionRect = _this$props12.selectionRect;
457
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseEnter", function (_ref4) {
458
+ var item = _ref4.item;
459
+ var _this$props13 = _this.props,
460
+ _this$props13$editorV = _this$props13.editorView,
461
+ state = _this$props13$editorV.state,
462
+ dispatch = _this$props13$editorV.dispatch,
463
+ selectionRect = _this$props13.selectionRect;
457
464
  if (item.value.name === 'background') {
458
465
  if (!_this.state.isSubmenuOpen) {
459
466
  _this.setState({
@@ -471,8 +478,8 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
471
478
  (0, _commands.hoverMergedCells)()(state, dispatch);
472
479
  }
473
480
  });
474
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseLeave", function (_ref3) {
475
- var item = _ref3.item;
481
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseLeave", function (_ref5) {
482
+ var item = _ref5.item;
476
483
  var _this$props$editorVie2 = _this.props.editorView,
477
484
  state = _this$props$editorVie2.state,
478
485
  dispatch = _this$props$editorVie2.dispatch;
@@ -491,9 +498,9 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
491
498
  }
492
499
  });
493
500
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setColor", function (color) {
494
- var _this$props13 = _this.props,
495
- editorView = _this$props13.editorView,
496
- editorAnalyticsAPI = _this$props13.editorAnalyticsAPI;
501
+ var _this$props14 = _this.props,
502
+ editorView = _this$props14.editorView,
503
+ editorAnalyticsAPI = _this$props14.editorAnalyticsAPI;
497
504
  // TargetCellPosition could be outdated: https://product-fabric.atlassian.net/browse/ED-8129
498
505
  var _getPluginState12 = (0, _pluginFactory.getPluginState)(editorView.state),
499
506
  targetCellPosition = _getPluginState12.targetCellPosition;
@@ -507,12 +514,12 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
507
514
  (0, _createClass2.default)(ContextualMenu, [{
508
515
  key: "render",
509
516
  value: function render() {
510
- var _this$props14 = this.props,
511
- isOpen = _this$props14.isOpen,
512
- mountPoint = _this$props14.mountPoint,
513
- offset = _this$props14.offset,
514
- boundariesElement = _this$props14.boundariesElement,
515
- editorView = _this$props14.editorView;
517
+ var _this$props15 = this.props,
518
+ isOpen = _this$props15.isOpen,
519
+ mountPoint = _this$props15.mountPoint,
520
+ offset = _this$props15.offset,
521
+ boundariesElement = _this$props15.boundariesElement,
522
+ editorView = _this$props15.editorView;
516
523
  var _getPluginState13 = (0, _pluginFactory.getPluginState)(editorView.state),
517
524
  isDragAndDropEnabled = _getPluginState13.isDragAndDropEnabled;
518
525
  var items = isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? this.createNewContextMenuItems() : this.createOriginalContextMenuItems();
@@ -24,7 +24,8 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
24
24
  isOpen = _ref.isOpen,
25
25
  pluginConfig = _ref.pluginConfig,
26
26
  editorAnalyticsAPI = _ref.editorAnalyticsAPI,
27
- getEditorContainerWidth = _ref.getEditorContainerWidth;
27
+ getEditorContainerWidth = _ref.getEditorContainerWidth,
28
+ getEditorFeatureFlags = _ref.getEditorFeatureFlags;
28
29
  // TargetCellPosition could be outdated: https://product-fabric.atlassian.net/browse/ED-8129
29
30
  var _getPluginState = (0, _pluginFactory.getPluginState)(editorView.state),
30
31
  targetCellPosition = _getPluginState.targetCellPosition,
@@ -72,7 +73,8 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
72
73
  selectionRect: selectionRect,
73
74
  boundariesElement: boundariesElement,
74
75
  editorAnalyticsAPI: editorAnalyticsAPI,
75
- getEditorContainerWidth: getEditorContainerWidth
76
+ getEditorContainerWidth: getEditorContainerWidth,
77
+ getEditorFeatureFlags: getEditorFeatureFlags
76
78
  })));
77
79
  };
78
80
  FloatingContextualMenu.displayName = 'FloatingContextualMenu';
@@ -190,7 +190,8 @@ var DragMenu = exports.DragMenu = /*#__PURE__*/_react.default.memo(function (_re
190
190
  fitWidth = _ref.fitWidth,
191
191
  mountPoint = _ref.mountPoint,
192
192
  scrollableElement = _ref.scrollableElement,
193
- boundariesElement = _ref.boundariesElement;
193
+ boundariesElement = _ref.boundariesElement,
194
+ tablePreserveWidth = _ref.tablePreserveWidth;
194
195
  var state = editorView.state,
195
196
  dispatch = editorView.dispatch;
196
197
  var selection = state.selection;
@@ -206,7 +207,7 @@ var DragMenu = exports.DragMenu = /*#__PURE__*/_react.default.memo(function (_re
206
207
  var shouldMoveDisabled = index !== undefined && hasMergedCells(index)(selection);
207
208
  var hasMergedCellsInTable = (0, _utils3.getMergedCellsPositions)(state.tr).length > 0;
208
209
  var allowBackgroundColor = (_pluginConfig$allowBa = pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.allowBackgroundColor) !== null && _pluginConfig$allowBa !== void 0 ? _pluginConfig$allowBa : false;
209
- var dragMenuConfig = (0, _dragMenu.getDragMenuConfig)(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired);
210
+ var dragMenuConfig = (0, _dragMenu.getDragMenuConfig)(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired, tablePreserveWidth);
210
211
  var _convertToDropdownIte = convertToDropdownItems(dragMenuConfig, formatMessage, selectionRect),
211
212
  menuItems = _convertToDropdownIte.menuItems,
212
213
  menuCallback = _convertToDropdownIte.menuCallback;
@@ -24,7 +24,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
24
24
  getEditorContainerWidth = _ref.getEditorContainerWidth,
25
25
  editorAnalyticsAPI = _ref.editorAnalyticsAPI,
26
26
  stickyHeaders = _ref.stickyHeaders,
27
- pluginConfig = _ref.pluginConfig;
27
+ pluginConfig = _ref.pluginConfig,
28
+ getEditorFeatureFlags = _ref.getEditorFeatureFlags;
28
29
  if (!isOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
29
30
  return null;
30
31
  }
@@ -34,6 +35,9 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
34
35
  if (!targetHandleRef || !(editorView.state.selection instanceof _cellSelection.CellSelection)) {
35
36
  return null;
36
37
  }
38
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
39
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tablePreserveWidth,
40
+ tablePreserveWidth = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
37
41
  return /*#__PURE__*/_react.default.createElement(_ui.Popup, {
38
42
  alignX: direction === 'row' ? 'right' : undefined,
39
43
  alignY: direction === 'row' ? 'start' : undefined,
@@ -66,7 +70,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
66
70
  fitHeight: _consts.tablePopupMenuFitHeight,
67
71
  mountPoint: mountPoint,
68
72
  boundariesElement: boundariesElement,
69
- scrollableElement: scrollableElement
73
+ scrollableElement: scrollableElement,
74
+ tablePreserveWidth: tablePreserveWidth
70
75
  }));
71
76
  };
72
77
  FloatingDragMenu.displayName = 'FloatingDragMenu';
@@ -198,10 +198,14 @@ var FloatingInsertButton = exports.FloatingInsertButton = /*#__PURE__*/function
198
198
  editorAnalyticsAPI = _this$props4.editorAnalyticsAPI,
199
199
  getEditorContainerWidth = _this$props4.getEditorContainerWidth;
200
200
  if (typeof insertColumnButtonIndex !== 'undefined') {
201
+ var _this$props$getEditor, _this$props5;
201
202
  event.preventDefault();
203
+ var _ref = ((_this$props$getEditor = (_this$props5 = this.props).getEditorFeatureFlags) === null || _this$props$getEditor === void 0 ? void 0 : _this$props$getEditor.call(_this$props5)) || {},
204
+ _ref$tablePreserveWid = _ref.tablePreserveWidth,
205
+ tablePreserveWidth = _ref$tablePreserveWid === void 0 ? false : _ref$tablePreserveWid;
202
206
  var state = editorView.state,
203
207
  dispatch = editorView.dispatch;
204
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI)(_analytics.INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
208
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(_analytics.INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
205
209
  }
206
210
  }
207
211
  }]);
@@ -12,7 +12,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
12
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  var createTableWithWidth = exports.createTableWithWidth = function createTableWithWidth(isFullWidthModeEnabled, getEditorFeatureFlags, createTableProps) {
14
14
  return function (schema) {
15
- var _ref = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
15
+ var _ref = (getEditorFeatureFlags === null || getEditorFeatureFlags === void 0 ? void 0 : getEditorFeatureFlags()) || {},
16
16
  _ref$tablePreserveWid = _ref.tablePreserveWidth,
17
17
  tablePreserveWidth = _ref$tablePreserveWid === void 0 ? false : _ref$tablePreserveWid;
18
18
  if (tablePreserveWidth && isFullWidthModeEnabled) {
@@ -70,6 +70,7 @@ var defaultSelectionRect = {
70
70
  };
71
71
  var getDragMenuConfig = exports.getDragMenuConfig = function getDragMenuConfig(direction, getEditorContainerWidth, canDrag, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, isHeaderRowRequired) {
72
72
  var _tableMap$height, _tableMap$height2, _tableMap$width, _tableMap$width2;
73
+ var tablePreserveWidth = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : false;
73
74
  var addOptions = direction === 'row' ? [{
74
75
  label: 'above',
75
76
  offset: 0,
@@ -154,7 +155,7 @@ var getDragMenuConfig = exports.getDragMenuConfig = function getDragMenuConfig(d
154
155
  moveCursorToInsertedRow: true
155
156
  })(state, dispatch);
156
157
  } else {
157
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, (index !== null && index !== void 0 ? index : 0) + offset)(state, dispatch, editorView);
158
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, (index !== null && index !== void 0 ? index : 0) + offset)(state, dispatch, editorView);
158
159
  }
159
160
  return true;
160
161
  },
@@ -167,7 +168,7 @@ var getDragMenuConfig = exports.getDragMenuConfig = function getDragMenuConfig(d
167
168
  onClick: function onClick(state, dispatch) {
168
169
  var selectionRect = (0, _toolbar.getClosestSelectionRect)(state);
169
170
  if (selectionRect) {
170
- var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth);
171
+ var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
171
172
  if (newResizeState) {
172
173
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, newResizeState)(state, dispatch);
173
174
  return true;
@@ -193,7 +194,7 @@ var getDragMenuConfig = exports.getDragMenuConfig = function getDragMenuConfig(d
193
194
  if (direction === 'row') {
194
195
  (0, _commandsWithAnalytics.deleteRowsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect, !!isHeaderRowRequired)(state, dispatch);
195
196
  } else {
196
- (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect)(state, dispatch, editorView);
197
+ (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI, tablePreserveWidth)(_analytics.INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect)(state, dispatch, editorView);
197
198
  }
198
199
  return true;
199
200
  },
@@ -121,7 +121,7 @@ export const activateNextResizeArea = direction => (state, dispatch, view) => {
121
121
  }
122
122
  return false;
123
123
  };
124
- export const changeColumnWidthByStep = (stepSize, getEditorContainerWidth) => (state, dispatch, view) => {
124
+ export const changeColumnWidthByStep = (stepSize, getEditorContainerWidth, tablePreserveWidth = false) => (state, dispatch, view) => {
125
125
  let customTr = state.tr;
126
126
  const fakeDispatch = tr => {
127
127
  customTr = tr;
@@ -170,14 +170,15 @@ export const changeColumnWidthByStep = (stepSize, getEditorContainerWidth) => (s
170
170
  table: originalTable,
171
171
  tableRef: dom,
172
172
  start: tableStartPosition,
173
- domAtPos
173
+ domAtPos,
174
+ tablePreserveWidth
174
175
  });
175
176
  updateControls()(state);
176
177
  const selectionRect = getSelectionRect(state.selection);
177
178
  const selectedColumns = selectionRect ? getSelectedColumnIndexes(selectionRect) : [];
178
179
  // only selected (or selected - 1) columns should be distributed
179
180
  const resizingSelectedColumns = selectedColumns.indexOf(colIndex) > -1 || selectedColumns.indexOf(colIndex + 1) > -1;
180
- const newResizeState = resizeColumn(initialResizeState, colIndex, stepSize, dom, resizingSelectedColumns ? selectedColumns : undefined);
181
+ const newResizeState = resizeColumn(initialResizeState, colIndex, stepSize, dom, resizingSelectedColumns ? selectedColumns : undefined, tablePreserveWidth);
181
182
  customTr = updateColumnWidths(newResizeState, originalTable, tableStartPosition)(customTr);
182
183
  if (dispatch) {
183
184
  dispatch(customTr);
@@ -1,7 +1,7 @@
1
1
  import { deleteColumns } from '../transforms/delete-columns';
2
2
  import { getAllowAddColumnCustomStep } from '../utils/get-allow-add-column-custom-step';
3
- export const deleteColumnsCommand = rect => (state, dispatch, view) => {
4
- const tr = deleteColumns(rect, getAllowAddColumnCustomStep(state), view)(state.tr);
3
+ export const deleteColumnsCommand = (rect, tablePreserveWidth = false) => (state, dispatch, view) => {
4
+ const tr = deleteColumns(rect, getAllowAddColumnCustomStep(state), view, tablePreserveWidth)(state.tr);
5
5
  if (dispatch) {
6
6
  dispatch(tr);
7
7
  return true;