@atlaskit/editor-plugin-table 7.21.3 → 7.21.5

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 (68) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/nodeviews/TableComponent.js +17 -2
  3. package/dist/cjs/pm-plugins/keymap.js +4 -6
  4. package/dist/cjs/pm-plugins/main.js +1 -1
  5. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +40 -12
  6. package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +99 -51
  7. package/dist/cjs/toolbar.js +4 -1
  8. package/dist/cjs/ui/ColumnResizeWidget/index.js +4 -1
  9. package/dist/cjs/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
  10. package/dist/cjs/ui/FloatingContextualButton/index.js +4 -1
  11. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
  12. package/dist/cjs/ui/FloatingContextualMenu/index.js +4 -1
  13. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +4 -1
  14. package/dist/cjs/utils/alignment.js +1 -1
  15. package/dist/es2019/nodeviews/TableComponent.js +17 -2
  16. package/dist/es2019/pm-plugins/keymap.js +4 -6
  17. package/dist/es2019/pm-plugins/main.js +1 -1
  18. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +41 -13
  19. package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +97 -48
  20. package/dist/es2019/toolbar.js +4 -1
  21. package/dist/es2019/ui/ColumnResizeWidget/index.js +4 -1
  22. package/dist/es2019/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
  23. package/dist/es2019/ui/FloatingContextualButton/index.js +4 -1
  24. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
  25. package/dist/es2019/ui/FloatingContextualMenu/index.js +4 -1
  26. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +4 -1
  27. package/dist/es2019/utils/alignment.js +1 -1
  28. package/dist/esm/nodeviews/TableComponent.js +17 -2
  29. package/dist/esm/pm-plugins/keymap.js +4 -6
  30. package/dist/esm/pm-plugins/main.js +1 -1
  31. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +40 -12
  32. package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +99 -51
  33. package/dist/esm/toolbar.js +4 -1
  34. package/dist/esm/ui/ColumnResizeWidget/index.js +4 -1
  35. package/dist/esm/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
  36. package/dist/esm/ui/FloatingContextualButton/index.js +4 -1
  37. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
  38. package/dist/esm/ui/FloatingContextualMenu/index.js +4 -1
  39. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +4 -1
  40. package/dist/esm/utils/alignment.js +1 -1
  41. package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +23 -1
  42. package/dist/types/ui/ColumnResizeWidget/index.d.ts +4 -1
  43. package/dist/types/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +4 -1
  44. package/dist/types/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -1
  45. package/dist/types/ui/FloatingContextualMenu/index.d.ts +4 -1
  46. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +4 -1
  47. package/dist/types/utils/alignment.d.ts +1 -1
  48. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +23 -1
  49. package/dist/types-ts4.5/ui/ColumnResizeWidget/index.d.ts +4 -1
  50. package/dist/types-ts4.5/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +4 -1
  51. package/dist/types-ts4.5/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -1
  52. package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +4 -1
  53. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +4 -1
  54. package/dist/types-ts4.5/utils/alignment.d.ts +1 -1
  55. package/package.json +6 -6
  56. package/src/nodeviews/TableComponent.tsx +14 -0
  57. package/src/pm-plugins/keymap.ts +30 -32
  58. package/src/pm-plugins/main.ts +3 -1
  59. package/src/pm-plugins/table-resizing/event-handlers.ts +37 -25
  60. package/src/pm-plugins/table-resizing/utils/resize-column.ts +142 -70
  61. package/src/toolbar.tsx +4 -1
  62. package/src/ui/ColumnResizeWidget/index.tsx +4 -1
  63. package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +4 -1
  64. package/src/ui/FloatingContextualButton/index.tsx +4 -1
  65. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +4 -1
  66. package/src/ui/FloatingContextualMenu/index.tsx +4 -1
  67. package/src/ui/FloatingDragMenu/DragMenu.tsx +4 -1
  68. package/src/utils/alignment.ts +8 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 7.21.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#122514](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/122514)
8
+ [`91276c81ef8a8`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/91276c81ef8a8) -
9
+ [ED-24019] This change is cleaning up the feature flag
10
+ 'platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg' which was introduced for new
11
+ keyboard shortcuts for inserting columns and rows to a table.
12
+ - [#122054](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/122054)
13
+ [`2ead5fa12242d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2ead5fa12242d) -
14
+ Use scaled amounts for new column resizing, and update logic to cater for more scenarios
15
+ - Updated dependencies
16
+
17
+ ## 7.21.4
18
+
19
+ ### Patch Changes
20
+
21
+ - [#122264](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/122264)
22
+ [`257d7e96264e0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/257d7e96264e0) -
23
+ [ux] Fix table column delete decorations showing when expected in React 18.
24
+
3
25
  ## 7.21.3
4
26
 
5
27
  ### Patch Changes
@@ -28,6 +28,7 @@ var _utils2 = require("@atlaskit/editor-tables/utils");
28
28
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
29
29
  var _combine = require("@atlaskit/pragmatic-drag-and-drop/combine");
30
30
  var _commands = require("../commands");
31
+ var _eventHandlers = require("../event-handlers");
31
32
  var _utils3 = require("../pm-plugins/drag-and-drop/utils");
32
33
  var _pluginFactory = require("../pm-plugins/plugin-factory");
33
34
  var _stickyHeaders = require("../pm-plugins/sticky-headers");
@@ -74,6 +75,12 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
74
75
  scroll: 0,
75
76
  parentWidth: undefined
76
77
  }, (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_BEFORE_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_AFTER_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, "tableWrapperWidth", undefined), (0, _defineProperty3.default)(_defineProperty2, "tableWrapperHeight", undefined), _defineProperty2));
78
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleMouseOut", function (event) {
79
+ if (!(0, _eventHandlers.isTableInFocus)(_this.props.view)) {
80
+ return false;
81
+ }
82
+ return (0, _eventHandlers.handleMouseOut)(_this.props.view, event);
83
+ });
77
84
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleMouseEnter", function () {
78
85
  var node = _this.props.getNode();
79
86
  var pos = _this.props.getPos();
@@ -364,6 +371,10 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
364
371
  this === null || this === void 0 || (_this$table = this.table) === null || _this$table === void 0 || _this$table.addEventListener('mouseenter', this.handleMouseEnter);
365
372
  }
366
373
  }
374
+ if ((0, _platformFeatureFlags.fg)('editor_react_18_fix_table_delete_col_decorations')) {
375
+ var _this$table2;
376
+ this === null || this === void 0 || (_this$table2 = this.table) === null || _this$table2 === void 0 || _this$table2.addEventListener('mouseout', this.handleMouseOut);
377
+ }
367
378
  var _getEditorFeatureFlag = getEditorFeatureFlags(),
368
379
  _getEditorFeatureFlag2 = _getEditorFeatureFlag.tableWithFixedColumnWidthsOption,
369
380
  tableWithFixedColumnWidthsOption = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2,
@@ -445,8 +456,12 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
445
456
  window.removeEventListener('resize', this.handleWindowResizeDebounced);
446
457
  }
447
458
  if ((0, _platformFeatureFlags.fg)('platform.editor.table.live-pages-sorting_4malx')) {
448
- var _this$table2;
449
- this === null || this === void 0 || (_this$table2 = this.table) === null || _this$table2 === void 0 || _this$table2.removeEventListener('mouseenter', this.handleMouseEnter);
459
+ var _this$table3;
460
+ this === null || this === void 0 || (_this$table3 = this.table) === null || _this$table3 === void 0 || _this$table3.removeEventListener('mouseenter', this.handleMouseEnter);
461
+ }
462
+ if ((0, _platformFeatureFlags.fg)('editor_react_18_fix_table_delete_col_decorations')) {
463
+ var _this$table4;
464
+ this === null || this === void 0 || (_this$table4 = this.table) === null || _this$table4 === void 0 || _this$table4.removeEventListener('mouseout', this.handleMouseOut);
450
465
  }
451
466
  if (this.overflowShadowsObserver) {
452
467
  this.overflowShadowsObserver.dispose();
@@ -40,12 +40,10 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
40
40
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowAfter.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('BOTTOM'), list);
41
41
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBefore.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
42
42
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfter.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
43
- if ((0, _platformFeatureFlags.fg)('platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg')) {
44
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowBeforeVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('TOP'), list);
45
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowAfterVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('BOTTOM'), list);
46
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBeforeVO.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
47
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfterVO.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
48
- }
43
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowBeforeVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('TOP'), list);
44
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowAfterVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('BOTTOM'), list);
45
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBeforeVO.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
46
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfterVO.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
49
47
  if (dragAndDropEnabled) {
50
48
  // Move row/column shortcuts
51
49
  /**
@@ -282,7 +282,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
282
282
  mousedown: (0, _eventHandlers.withCellTracking)(_eventHandlers.handleMouseDown),
283
283
  mouseover: (0, _eventHandlers.withCellTracking)((0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseOver)),
284
284
  mouseleave: _eventHandlers.handleMouseLeave,
285
- mouseout: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseOut),
285
+ mouseout: (0, _platformFeatureFlags.fg)('editor_react_18_fix_table_delete_col_decorations') ? undefined : (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseOut),
286
286
  mousemove: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseMove),
287
287
  mouseenter: _eventHandlers.handleMouseEnter,
288
288
  mouseup: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseUp),
@@ -21,6 +21,7 @@ var _tableAnalytics = require("../table-analytics");
21
21
  var _commands = require("./commands");
22
22
  var _pluginFactory2 = require("./plugin-factory");
23
23
  var _utils3 = require("./utils");
24
+ var _resizeColumn = require("./utils/resize-column");
24
25
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
26
  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; }
26
27
  var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, event, localResizeHandlePos, getEditorContainerWidth, getEditorFeatureFlags, isTableScalingEnabled, editorAnalyticsAPI, isNewColumnResizingEnabled, isTableAlignmentEnabled) {
@@ -29,7 +30,8 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
29
30
  var editorDisabled = !view.editable;
30
31
  var domAtPos = view.domAtPos.bind(view);
31
32
  var _getEditorContainerWi = getEditorContainerWidth(),
32
- lineLength = _getEditorContainerWi.lineLength;
33
+ lineLength = _getEditorContainerWi.lineLength,
34
+ editorWidth = _getEditorContainerWi.width;
33
35
  if (editorDisabled || localResizeHandlePos === null || !(0, _utils3.pointsAtCell)(state.doc.resolve(localResizeHandlePos))) {
34
36
  return false;
35
37
  }
@@ -95,6 +97,17 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
95
97
  // When we start resizing a column we need to ensure the underlying tooltip is removed from the decoration to avoid
96
98
  // unnecessary tooltips being displayed during drag.
97
99
  (0, _misc.updateResizeHandleDecorations)(undefined, undefined, false)(state, dispatch);
100
+
101
+ // for new column resizing, take the current scaled version of table widths and use those as the basis for resizing
102
+ // implication: the scaled version of the table becomes the source of truth
103
+ if (isNewColumnResizingEnabled && shouldScale) {
104
+ resizeState = (0, _resizeColumn.scaleResizeState)({
105
+ resizeState: resizeState,
106
+ tableRef: dom,
107
+ tableNode: originalTable,
108
+ editorWidth: editorWidth
109
+ });
110
+ }
98
111
  function finish(event) {
99
112
  window.removeEventListener('mouseup', finish);
100
113
  window.removeEventListener('mousemove', move);
@@ -154,18 +167,23 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
154
167
  var resizedDelta = clientX - startX;
155
168
  var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.fg)('platform.editor.table.use-increased-scaling-percent');
156
169
  if (isNewColumnResizingEnabled && !(0, _utils2.isTableNested)(state, tablePos)) {
157
- var newResizeState = (0, _utils3.resizeColumnAndTable)(resizeState, colIndex, resizedDelta, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale,
158
- // isTableScalingEnabled
159
- undefined,
160
- // originalTableWidth
161
- shouldUseIncreasedScalingPercent, lineLength, isTableAlignmentEnabled);
170
+ var newResizeState = (0, _utils3.resizeColumnAndTable)({
171
+ resizeState: resizeState,
172
+ colIndex: colIndex,
173
+ amount: resizedDelta,
174
+ tableRef: dom,
175
+ tableNode: originalTable,
176
+ width: editorWidth,
177
+ lineLength: lineLength,
178
+ isTableAlignmentEnabled: isTableAlignmentEnabled
179
+ });
162
180
  tr = (0, _transforms.updateColumnWidths)(newResizeState, table, start)(tr);
163
181
 
164
182
  // If the table is aligned to the start and the table width is greater than the line length, we should change the alignment to center
165
- var shouldChangeAlignment = (0, _alignment.shouldChangeAlignmentToCenterResized)(isTableAlignmentEnabled, originalTable, lineLength, newResizeState.tableWidth);
183
+ var shouldChangeAlignment = (0, _alignment.shouldChangeAlignmentToCenterResized)(isTableAlignmentEnabled, originalTable, lineLength, newResizeState.maxSize);
166
184
  if (shouldChangeAlignment) {
167
185
  tr = tr.setNodeMarkup(start - 1, state.schema.nodes.table, _objectSpread(_objectSpread({}, table.attrs), {}, {
168
- width: newResizeState.tableWidth,
186
+ width: newResizeState.maxSize,
169
187
  layout: _alignment.ALIGN_CENTER
170
188
  }));
171
189
  editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
@@ -173,7 +191,7 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
173
191
  actionSubject: _analytics.ACTION_SUBJECT.TABLE,
174
192
  actionSubjectId: null,
175
193
  attributes: {
176
- tableWidth: newResizeState.tableWidth,
194
+ tableWidth: newResizeState.maxSize,
177
195
  newAlignment: _alignment.ALIGN_CENTER,
178
196
  previousAlignment: _alignment.ALIGN_START,
179
197
  totalRowCount: totalRowCount,
@@ -184,7 +202,7 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
184
202
  eventType: _analytics.EVENT_TYPE.TRACK
185
203
  })(tr);
186
204
  } else {
187
- tr.setNodeAttribute(start - 1, 'width', newResizeState.tableWidth);
205
+ tr.setNodeAttribute(start - 1, 'width', newResizeState.maxSize);
188
206
  }
189
207
  } else {
190
208
  var _newResizeState = (0, _utils3.resizeColumn)(resizeState, colIndex, resizedDelta, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale, shouldUseIncreasedScalingPercent);
@@ -256,10 +274,20 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
256
274
  if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
257
275
  shouldScale = shouldScale && originalTable.attrs.displayMode !== 'fixed';
258
276
  }
277
+ var resizedDelta = clientX - dragging.startX;
259
278
  if (isNewColumnResizingEnabled && !(0, _utils2.isTableNested)(state, tablePos)) {
260
- (0, _utils3.resizeColumnAndTable)(resizeState, colIndex, clientX - dragging.startX, dom, table, undefined, shouldScale, undefined, shouldUseIncreasedScalingPercent, lineLength, isTableAlignmentEnabled);
279
+ (0, _utils3.resizeColumnAndTable)({
280
+ resizeState: resizeState,
281
+ colIndex: colIndex,
282
+ amount: resizedDelta,
283
+ tableRef: dom,
284
+ tableNode: originalTable,
285
+ width: editorWidth,
286
+ lineLength: lineLength,
287
+ isTableAlignmentEnabled: isTableAlignmentEnabled
288
+ });
261
289
  } else {
262
- (0, _utils3.resizeColumn)(resizeState, colIndex, clientX - dragging.startX, dom, table, undefined, shouldScale, shouldUseIncreasedScalingPercent);
290
+ (0, _utils3.resizeColumn)(resizeState, colIndex, resizedDelta, dom, table, undefined, shouldScale, shouldUseIncreasedScalingPercent);
263
291
  }
264
292
  (0, _utils3.updateControls)()(state);
265
293
  }
@@ -4,8 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.resizeColumnAndTable = exports.resizeColumn = void 0;
7
+ exports.scaleResizeState = exports.resizeColumnAndTable = exports.resizeColumn = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
9
10
  var _types = require("../../../types");
10
11
  var _alignment = require("../../../utils/alignment");
11
12
  var _misc = require("./misc");
@@ -26,68 +27,115 @@ var resizeColumn = exports.resizeColumn = function resizeColumn(resizeState, col
26
27
  (0, _resizeState.updateColgroup)(newState, tableRef, tableNode, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
27
28
  return newState;
28
29
  };
30
+ var resizeColumnAndTable = exports.resizeColumnAndTable = function resizeColumnAndTable(_ref) {
31
+ var resizeState = _ref.resizeState,
32
+ colIndex = _ref.colIndex,
33
+ amount = _ref.amount,
34
+ tableRef = _ref.tableRef,
35
+ tableNode = _ref.tableNode,
36
+ lineLength = _ref.lineLength,
37
+ editorWidth = _ref.width,
38
+ isTableAlignmentEnabled = _ref.isTableAlignmentEnabled;
39
+ var editorContainerWidth = getEditorContainerWidth(editorWidth);
40
+ var isTableLeftAligned = tableNode.attrs.layout === _alignment.ALIGN_START;
41
+ var resizeAmount = isTableLeftAligned ? amount : amount * 2;
42
+ var willTableHitEditorEdge = resizeState.maxSize + resizeAmount > editorContainerWidth;
43
+ var willResizedTableStayInOverflow = resizeState.overflow && resizeState.tableWidth + resizeAmount / 2 > resizeState.maxSize;
29
44
 
30
- // try not scale table during resize
31
- var resizeColumnAndTable = exports.resizeColumnAndTable = function resizeColumnAndTable(resizeState, colIndex, amount, tableRef, tableNode, selectedColumns) {
32
- var _tableRef$closest;
33
- var isTableScalingEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
34
- var originalTableWidth = arguments.length > 7 ? arguments[7] : undefined;
35
- var shouldUseIncreasedScalingPercent = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
36
- var lineLength = arguments.length > 9 ? arguments[9] : undefined;
37
- var isTableAlignmentEnabled = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
38
- // TODO: can we use document state, and apply scaling factor?
39
- var tableWidth = tableRef.clientWidth;
40
- var tableContainerWidth = (_tableRef$closest = tableRef.closest('.pm-table-container')) === null || _tableRef$closest === void 0 ? void 0 : _tableRef$closest.clientWidth;
41
- var isOverflowed = !!(tableWidth && tableContainerWidth && tableWidth > tableContainerWidth);
42
- var resizeAmount = tableNode.attrs.layout === _alignment.ALIGN_START && !isOverflowed ? amount : amount * 2;
43
-
44
- // todo: reimplement - use getTableScalingPercentFrozen to get scaled percent before table width changes dynamically
45
- // let scalePercent = 1;
46
- // if (isTableScalingEnabled) {
47
- // import from ./misc
48
- // scalePercent = getStaticTableScalingPercent(
49
- // tableNode,
50
- // originalTableWidth || resizeState.maxSize,
51
- // );
52
- // resizeAmount = amount / scalePercent;
53
- // }
54
-
55
- // need to look at the resize amount and try to adjust the colgroups
56
- if (isOverflowed) {
57
- resizeAmount = amount < 0 ? amount : resizeAmount - (tableNode.attrs.width + resizeAmount - tableContainerWidth) / 2;
45
+ // STEP 1: Update col width
46
+ if (willTableHitEditorEdge || willResizedTableStayInOverflow) {
47
+ var _tableRef$closest;
48
+ var tableContainerWidth = (_tableRef$closest = tableRef.closest('.pm-table-container')) === null || _tableRef$closest === void 0 ? void 0 : _tableRef$closest.clientWidth;
49
+ resizeAmount = amount < 0 ? amount : resizeAmount - (resizeState.maxSize + resizeAmount - tableContainerWidth) / 2;
50
+ }
51
+ if (!willResizedTableStayInOverflow && !willTableHitEditorEdge) {
52
+ var diff = -(resizeState.tableWidth - resizeState.maxSize);
53
+ var rest = amount - diff;
54
+ var final = isTableLeftAligned ? diff + rest : diff + rest * 2;
55
+ resizeAmount = final;
58
56
  }
59
57
  var newState = (0, _resizeLogic.updateAffectedColumn)(resizeState, colIndex, resizeAmount);
60
58
 
61
- // this function only updates the colgroup in DOM, it reverses the scalePercent
62
- // todo: change isScalingEnabled to true when reimplementing scaling
63
- (0, _resizeState.updateColgroup)(newState, tableRef, tableNode, false, shouldUseIncreasedScalingPercent);
64
-
65
- // use the difference in width from affected column to update overall table width
59
+ // STEP 2: Update table container width
60
+ // columns have a min width, so delta !== resizeAmount when this is reached, use this for calculations
66
61
  var delta = newState.cols[colIndex].width - resizeState.cols[colIndex].width;
67
- if (!isOverflowed) {
68
- // If the table is aligned to the start and the table width is greater than the line length, we should change the alignment to center
69
- var shouldChangeAlignment = (0, _alignment.shouldChangeAlignmentToCenterResized)(isTableAlignmentEnabled, tableNode, lineLength, newState.tableWidth + delta);
70
- shouldChangeAlignment ? updateTablePreview(delta, tableRef, tableNode, _alignment.ALIGN_CENTER) : updateTablePreview(delta, tableRef, tableNode);
62
+ newState.maxSize = Math.round(resizeState.overflow ? willResizedTableStayInOverflow ?
63
+ // CASE 1A: table will stay in overflow
64
+ // do not grow the table because resize is happening in the overflow region
65
+ // and the overall table container needs to be retained
66
+ resizeState.maxSize :
67
+ // CASE 1B: table will no longer be in overflow, so adjust container width
68
+ // ensure the table is resized without any 'big jumps' by working out
69
+ // the difference between the new table width and the max size and adding the resize
70
+ resizeState.maxSize + (resizeState.tableWidth - resizeState.maxSize + delta) : willTableHitEditorEdge ?
71
+ // CASE 2: table will hit editor edge
72
+ editorContainerWidth :
73
+ // CASE 3: table is being resized from a non-overflow state
74
+ resizeState.maxSize + delta);
75
+
76
+ // do not apply scaling logic because resize state is already scaled
77
+ (0, _resizeState.updateColgroup)(newState, tableRef, tableNode, false, false);
78
+ if (!willTableHitEditorEdge && !willResizedTableStayInOverflow) {
79
+ updateTablePreview(tableRef, newState.maxSize, (0, _alignment.shouldChangeAlignmentToCenterResized)(isTableAlignmentEnabled, tableNode, lineLength, newState.maxSize));
71
80
  }
72
- return _objectSpread(_objectSpread({}, newState), {}, {
73
- // resizeState.tableWidth sometimes is off by ~3px on load on resized table when !isOverflowed, using resizeState.maxSize instead
74
- tableWidth: isOverflowed ? tableContainerWidth : resizeState.maxSize + delta
75
- });
81
+ return newState;
76
82
  };
77
- var updateTablePreview = function updateTablePreview(resizeAmount, tableRef, tableNode, tableAligment) {
78
- var currentWidth = (0, _misc.getTableContainerElementWidth)(tableNode);
79
- var resizingContainer = tableRef === null || tableRef === void 0 ? void 0 : tableRef.closest(".".concat(_types.TableCssClassName.TABLE_RESIZER_CONTAINER));
83
+ var updateTablePreview = function updateTablePreview(tableRef, newTableWidth, shouldChangeAlignment) {
84
+ var resizingContainer = tableRef.closest(".".concat(_types.TableCssClassName.TABLE_RESIZER_CONTAINER));
80
85
  var resizingItem = resizingContainer === null || resizingContainer === void 0 ? void 0 : resizingContainer.querySelector('.resizer-item');
81
86
  var alignmentContainer = resizingContainer === null || resizingContainer === void 0 ? void 0 : resizingContainer.parentElement;
82
87
  if (resizingItem) {
83
- var newWidth = "".concat(currentWidth + resizeAmount, "px");
84
- if (tableRef) {
85
- tableRef.style.width = newWidth;
86
- }
88
+ var newWidth = "".concat(newTableWidth, "px");
87
89
  resizingContainer.style.width = newWidth;
88
90
  resizingItem.style.width = newWidth;
89
- if (tableAligment && alignmentContainer) {
90
- alignmentContainer.style.justifyContent = tableAligment;
91
+ if (shouldChangeAlignment && alignmentContainer) {
92
+ alignmentContainer.style.justifyContent = _alignment.ALIGN_CENTER;
91
93
  }
92
94
  }
95
+ };
96
+ var getEditorContainerWidth = function getEditorContainerWidth(editorWidth) {
97
+ return Math.min(editorWidth - (0, _editorSharedStyles.akEditorGutterPaddingDynamic)() * 2, _editorSharedStyles.akEditorFullWidthLayoutWidth);
98
+ };
99
+
100
+ /**
101
+ * Apply a scaling factor to resize state
102
+ */
103
+ var scaleResizeState = exports.scaleResizeState = function scaleResizeState(_ref2) {
104
+ var resizeState = _ref2.resizeState,
105
+ tableRef = _ref2.tableRef,
106
+ tableNode = _ref2.tableNode,
107
+ editorWidth = _ref2.editorWidth;
108
+ // check if table is scaled, if not then avoid applying scaling values down
109
+ if (resizeState.maxSize < getEditorContainerWidth(editorWidth)) {
110
+ return resizeState;
111
+ }
112
+ var scalePercent = (0, _misc.getTableScalingPercent)(tableNode, tableRef);
113
+ var cols = resizeState.cols.map(function (col) {
114
+ return _objectSpread(_objectSpread({}, col), {}, {
115
+ width: Math.round(Math.max(col.width * scalePercent, col.minWidth))
116
+ });
117
+ });
118
+ var scaledTableWidth = Math.round(resizeState.tableWidth * scalePercent);
119
+ var calculatedTableWidth = cols.reduce(function (prev, curr) {
120
+ return prev + curr.width;
121
+ }, 0);
122
+
123
+ // using Math.round can cause the sum of col widths to be larger than the table width
124
+ // distribute the difference to the smallest column
125
+ if (calculatedTableWidth > scaledTableWidth) {
126
+ var diff = calculatedTableWidth - scaledTableWidth;
127
+ cols = cols.map(function (col) {
128
+ return col.width - diff >= col.minWidth ? _objectSpread(_objectSpread({}, col), {}, {
129
+ width: col.width - diff
130
+ }) : col;
131
+ });
132
+ }
133
+ return _objectSpread(_objectSpread({}, resizeState), {}, {
134
+ widths: cols.map(function (col) {
135
+ return col.width;
136
+ }),
137
+ tableWidth: scaledTableWidth,
138
+ maxSize: Math.round(resizeState.maxSize * scalePercent),
139
+ cols: cols
140
+ });
93
141
  };
@@ -42,7 +42,10 @@ var _alignment = require("./utils/alignment");
42
42
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
43
43
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
44
44
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
45
- 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; } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
45
+ 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; } /**
46
+ * @jsxRuntime classic
47
+ * @jsx jsx
48
+ */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
46
49
  var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _ref, editorAnalyticsAPI) {
47
50
  var formatMessage = _ref.formatMessage;
48
51
  var isTableScalingWithFixedColumnWidthsOptionShown = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
@@ -12,7 +12,10 @@ var _keymaps = require("@atlaskit/editor-common/keymaps");
12
12
  var _messages = require("@atlaskit/editor-common/messages");
13
13
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
14
14
  var _types = require("../../types");
15
- /** @jsx jsx */
15
+ /**
16
+ * @jsxRuntime classic
17
+ * @jsx jsx
18
+ */
16
19
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
17
20
 
18
21
  var ColumnResizeWidget = exports.ColumnResizeWidget = function ColumnResizeWidget(_ref) {
@@ -8,7 +8,10 @@ var _react = require("@emotion/react");
8
8
  var _button = require("@atlaskit/button");
9
9
  var _ui = require("@atlaskit/editor-common/ui");
10
10
  var _primitives = require("@atlaskit/primitives");
11
- /** @jsx jsx */
11
+ /**
12
+ * @jsxRuntime classic
13
+ * @jsx jsx
14
+ */
12
15
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
13
16
 
14
17
  var containerStyles = (0, _primitives.xcss)({
@@ -25,7 +25,10 @@ var _FixedButton = _interopRequireDefault(require("./FixedButton"));
25
25
  var _styles = require("./styles");
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
- /** @jsx jsx */
28
+ /**
29
+ * @jsxRuntime classic
30
+ * @jsx jsx
31
+ */
29
32
 
30
33
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
31
34
 
@@ -48,7 +48,10 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
48
48
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
49
49
  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; }
50
50
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
51
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @atlaskit/design-system/prefer-primitives */ /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
51
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @atlaskit/design-system/prefer-primitives */ /**
52
+ * @jsxRuntime classic
53
+ * @jsx jsx
54
+ */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
52
55
  var arrowsList = new Set(['ArrowRight', 'ArrowLeft']);
53
56
  var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component) {
54
57
  (0, _inherits2.default)(ContextualMenu, _Component);
@@ -14,7 +14,10 @@ var _pluginFactory = require("../../pm-plugins/plugin-factory");
14
14
  var _consts = require("../consts");
15
15
  var _ContextualMenu = _interopRequireDefault(require("./ContextualMenu"));
16
16
  var _styles = require("./styles");
17
- /** @jsx jsx */
17
+ /**
18
+ * @jsxRuntime classic
19
+ * @jsx jsx
20
+ */
18
21
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
19
22
 
20
23
  var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
@@ -38,7 +38,10 @@ var _styles2 = require("./styles");
38
38
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
39
39
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
40
40
  /* eslint-disable @atlaskit/design-system/prefer-primitives */
41
- /** @jsx jsx */
41
+ /**
42
+ * @jsxRuntime classic
43
+ * @jsx jsx
44
+ */
42
45
  /** @jsxFrag */
43
46
 
44
47
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
@@ -20,5 +20,5 @@ var normaliseAlignment = exports.normaliseAlignment = function normaliseAlignmen
20
20
  * We don't want to switch alignment in Full-width editor
21
21
  */
22
22
  var shouldChangeAlignmentToCenterResized = exports.shouldChangeAlignmentToCenterResized = function shouldChangeAlignmentToCenterResized(isTableAlignmentEnabled, tableNode, lineLength, updatedTableWidth) {
23
- return isTableAlignmentEnabled && tableNode && tableNode.attrs.layout === ALIGN_START && lineLength && updatedTableWidth > lineLength && lineLength < _consts.FULL_WIDTH_EDITOR_CONTENT_WIDTH;
23
+ return Boolean(isTableAlignmentEnabled && tableNode && tableNode.attrs.layout === ALIGN_START && lineLength && updatedTableWidth > lineLength && lineLength < _consts.FULL_WIDTH_EDITOR_CONTENT_WIDTH);
24
24
  };
@@ -14,6 +14,7 @@ import { findTable, isTableSelected } from '@atlaskit/editor-tables/utils';
14
14
  import { fg } from '@atlaskit/platform-feature-flags';
15
15
  import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
16
16
  import { autoSizeTable, clearHoverSelection } from '../commands';
17
+ import { handleMouseOut, isTableInFocus } from '../event-handlers';
17
18
  import { autoScrollerFactory } from '../pm-plugins/drag-and-drop/utils';
18
19
  import { getPluginState } from '../pm-plugins/plugin-factory';
19
20
  import { findStickyHeaderForTable, pluginKey as stickyHeadersPluginKey } from '../pm-plugins/sticky-headers';
@@ -52,6 +53,12 @@ class TableComponent extends React.Component {
52
53
  tableWrapperWidth: undefined,
53
54
  tableWrapperHeight: undefined
54
55
  });
56
+ _defineProperty(this, "handleMouseOut", event => {
57
+ if (!isTableInFocus(this.props.view)) {
58
+ return false;
59
+ }
60
+ return handleMouseOut(this.props.view, event);
61
+ });
55
62
  _defineProperty(this, "handleMouseEnter", () => {
56
63
  const node = this.props.getNode();
57
64
  const pos = this.props.getPos();
@@ -348,6 +355,10 @@ class TableComponent extends React.Component {
348
355
  this === null || this === void 0 ? void 0 : (_this$table = this.table) === null || _this$table === void 0 ? void 0 : _this$table.addEventListener('mouseenter', this.handleMouseEnter);
349
356
  }
350
357
  }
358
+ if (fg('editor_react_18_fix_table_delete_col_decorations')) {
359
+ var _this$table2;
360
+ this === null || this === void 0 ? void 0 : (_this$table2 = this.table) === null || _this$table2 === void 0 ? void 0 : _this$table2.addEventListener('mouseout', this.handleMouseOut);
361
+ }
351
362
  const {
352
363
  tableWithFixedColumnWidthsOption = false,
353
364
  stickyScrollbar
@@ -429,8 +440,12 @@ class TableComponent extends React.Component {
429
440
  window.removeEventListener('resize', this.handleWindowResizeDebounced);
430
441
  }
431
442
  if (fg('platform.editor.table.live-pages-sorting_4malx')) {
432
- var _this$table2;
433
- this === null || this === void 0 ? void 0 : (_this$table2 = this.table) === null || _this$table2 === void 0 ? void 0 : _this$table2.removeEventListener('mouseenter', this.handleMouseEnter);
443
+ var _this$table3;
444
+ this === null || this === void 0 ? void 0 : (_this$table3 = this.table) === null || _this$table3 === void 0 ? void 0 : _this$table3.removeEventListener('mouseenter', this.handleMouseEnter);
445
+ }
446
+ if (fg('editor_react_18_fix_table_delete_col_decorations')) {
447
+ var _this$table4;
448
+ this === null || this === void 0 ? void 0 : (_this$table4 = this.table) === null || _this$table4 === void 0 ? void 0 : _this$table4.removeEventListener('mouseout', this.handleMouseOut);
434
449
  }
435
450
  if (this.overflowShadowsObserver) {
436
451
  this.overflowShadowsObserver.dispose();
@@ -23,12 +23,10 @@ export function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAn
23
23
  bindKeymapWithCommand(addRowAfter.common, addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'), list);
24
24
  bindKeymapWithCommand(addColumnBefore.common, addColumnBeforeCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
25
25
  bindKeymapWithCommand(addColumnAfter.common, addColumnAfterCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
26
- if (fg('platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg')) {
27
- bindKeymapWithCommand(addRowBeforeVO.common, addRowAroundSelection(editorAnalyticsAPI)('TOP'), list);
28
- bindKeymapWithCommand(addRowAfterVO.common, addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'), list);
29
- bindKeymapWithCommand(addColumnBeforeVO.common, addColumnBeforeCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
30
- bindKeymapWithCommand(addColumnAfterVO.common, addColumnAfterCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
31
- }
26
+ bindKeymapWithCommand(addRowBeforeVO.common, addRowAroundSelection(editorAnalyticsAPI)('TOP'), list);
27
+ bindKeymapWithCommand(addRowAfterVO.common, addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'), list);
28
+ bindKeymapWithCommand(addColumnBeforeVO.common, addColumnBeforeCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
29
+ bindKeymapWithCommand(addColumnAfterVO.common, addColumnAfterCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
32
30
  if (dragAndDropEnabled) {
33
31
  // Move row/column shortcuts
34
32
  /**
@@ -280,7 +280,7 @@ export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI
280
280
  mousedown: withCellTracking(handleMouseDown),
281
281
  mouseover: withCellTracking(whenTableInFocus(handleMouseOver)),
282
282
  mouseleave: handleMouseLeave,
283
- mouseout: whenTableInFocus(handleMouseOut),
283
+ mouseout: fg('editor_react_18_fix_table_delete_col_decorations') ? undefined : whenTableInFocus(handleMouseOut),
284
284
  mousemove: whenTableInFocus(handleMouseMove),
285
285
  mouseenter: handleMouseEnter,
286
286
  mouseup: whenTableInFocus(handleMouseUp),