@atlaskit/editor-plugin-table 7.16.17 → 7.16.19

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 (134) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/commands/column-resize.js +4 -3
  3. package/dist/cjs/commands/delete.js +3 -2
  4. package/dist/cjs/commands/insert.js +12 -8
  5. package/dist/cjs/commands-with-analytics.js +10 -7
  6. package/dist/cjs/event-handlers.js +3 -2
  7. package/dist/cjs/nodeviews/TableComponent.js +32 -19
  8. package/dist/cjs/nodeviews/TableContainer.js +4 -0
  9. package/dist/cjs/nodeviews/TableResizer.js +8 -7
  10. package/dist/cjs/nodeviews/table.js +6 -4
  11. package/dist/cjs/plugin.js +9 -6
  12. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +12 -13
  13. package/dist/cjs/pm-plugins/keymap.js +11 -9
  14. package/dist/cjs/pm-plugins/main.js +4 -1
  15. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +10 -9
  16. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +4 -3
  17. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +4 -3
  18. package/dist/cjs/toolbar.js +54 -37
  19. package/dist/cjs/transforms/column-width.js +3 -3
  20. package/dist/cjs/transforms/delete-columns.js +3 -2
  21. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +21 -15
  22. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -2
  23. package/dist/cjs/ui/FloatingDragMenu/index.js +6 -3
  24. package/dist/cjs/ui/FloatingInsertButton/index.js +7 -8
  25. package/dist/cjs/utils/drag-menu.js +5 -4
  26. package/dist/es2019/commands/column-resize.js +4 -3
  27. package/dist/es2019/commands/delete.js +2 -2
  28. package/dist/es2019/commands/insert.js +8 -8
  29. package/dist/es2019/commands-with-analytics.js +9 -8
  30. package/dist/es2019/event-handlers.js +2 -2
  31. package/dist/es2019/nodeviews/TableComponent.js +28 -17
  32. package/dist/es2019/nodeviews/TableContainer.js +4 -0
  33. package/dist/es2019/nodeviews/TableResizer.js +9 -8
  34. package/dist/es2019/nodeviews/table.js +5 -4
  35. package/dist/es2019/plugin.js +9 -6
  36. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +7 -10
  37. package/dist/es2019/pm-plugins/keymap.js +9 -9
  38. package/dist/es2019/pm-plugins/main.js +4 -1
  39. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +10 -9
  40. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  41. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +4 -4
  42. package/dist/es2019/toolbar.js +51 -39
  43. package/dist/es2019/transforms/column-width.js +2 -3
  44. package/dist/es2019/transforms/delete-columns.js +2 -2
  45. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +12 -7
  46. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -2
  47. package/dist/es2019/ui/FloatingDragMenu/index.js +5 -3
  48. package/dist/es2019/ui/FloatingInsertButton/index.js +6 -8
  49. package/dist/es2019/utils/drag-menu.js +4 -4
  50. package/dist/esm/commands/column-resize.js +4 -3
  51. package/dist/esm/commands/delete.js +3 -2
  52. package/dist/esm/commands/insert.js +12 -8
  53. package/dist/esm/commands-with-analytics.js +10 -7
  54. package/dist/esm/event-handlers.js +3 -2
  55. package/dist/esm/nodeviews/TableComponent.js +32 -19
  56. package/dist/esm/nodeviews/TableContainer.js +4 -0
  57. package/dist/esm/nodeviews/TableResizer.js +9 -8
  58. package/dist/esm/nodeviews/table.js +6 -4
  59. package/dist/esm/plugin.js +9 -6
  60. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +12 -13
  61. package/dist/esm/pm-plugins/keymap.js +11 -9
  62. package/dist/esm/pm-plugins/main.js +4 -1
  63. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +10 -9
  64. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +4 -3
  65. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +4 -3
  66. package/dist/esm/toolbar.js +54 -37
  67. package/dist/esm/transforms/column-width.js +3 -3
  68. package/dist/esm/transforms/delete-columns.js +3 -2
  69. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +21 -15
  70. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -2
  71. package/dist/esm/ui/FloatingDragMenu/index.js +6 -3
  72. package/dist/esm/ui/FloatingInsertButton/index.js +7 -8
  73. package/dist/esm/utils/drag-menu.js +5 -4
  74. package/dist/types/commands/column-resize.d.ts +2 -1
  75. package/dist/types/commands/delete.d.ts +1 -1
  76. package/dist/types/commands/insert.d.ts +4 -4
  77. package/dist/types/commands-with-analytics.d.ts +4 -4
  78. package/dist/types/event-handlers.d.ts +1 -1
  79. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  80. package/dist/types/nodeviews/TableResizer.d.ts +2 -1
  81. package/dist/types/nodeviews/table.d.ts +1 -0
  82. package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +1 -1
  83. package/dist/types/pm-plugins/keymap.d.ts +1 -1
  84. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  85. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +1 -1
  86. package/dist/types/toolbar.d.ts +5 -5
  87. package/dist/types/transforms/column-width.d.ts +1 -1
  88. package/dist/types/transforms/delete-columns.d.ts +1 -1
  89. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  90. package/dist/types/ui/FloatingInsertButton/index.d.ts +1 -0
  91. package/dist/types/utils/drag-menu.d.ts +1 -1
  92. package/dist/types-ts4.5/commands/column-resize.d.ts +2 -1
  93. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  94. package/dist/types-ts4.5/commands/insert.d.ts +4 -4
  95. package/dist/types-ts4.5/commands-with-analytics.d.ts +4 -4
  96. package/dist/types-ts4.5/event-handlers.d.ts +1 -1
  97. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  98. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
  99. package/dist/types-ts4.5/nodeviews/table.d.ts +1 -0
  100. package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +1 -1
  101. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +1 -1
  102. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  103. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +1 -1
  104. package/dist/types-ts4.5/toolbar.d.ts +5 -5
  105. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  106. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  107. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  108. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +1 -0
  109. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  110. package/package.json +5 -8
  111. package/src/commands/column-resize.ts +6 -6
  112. package/src/commands/delete.ts +7 -1
  113. package/src/commands/insert.ts +33 -5
  114. package/src/commands-with-analytics.ts +14 -2
  115. package/src/event-handlers.ts +2 -0
  116. package/src/nodeviews/TableComponent.tsx +28 -28
  117. package/src/nodeviews/TableContainer.tsx +6 -0
  118. package/src/nodeviews/TableResizer.tsx +16 -6
  119. package/src/nodeviews/table.tsx +4 -2
  120. package/src/plugin.tsx +17 -7
  121. package/src/pm-plugins/drag-and-drop/plugin.ts +26 -13
  122. package/src/pm-plugins/keymap.ts +30 -4
  123. package/src/pm-plugins/main.ts +2 -0
  124. package/src/pm-plugins/table-resizing/event-handlers.ts +12 -14
  125. package/src/pm-plugins/table-resizing/utils/resize-state.ts +5 -5
  126. package/src/pm-plugins/table-resizing/utils/scale-table.ts +6 -4
  127. package/src/toolbar.tsx +97 -40
  128. package/src/transforms/column-width.ts +7 -3
  129. package/src/transforms/delete-columns.ts +6 -2
  130. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +12 -4
  131. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -0
  132. package/src/ui/FloatingDragMenu/index.tsx +4 -4
  133. package/src/ui/FloatingInsertButton/index.tsx +12 -9
  134. package/src/utils/drag-menu.ts +13 -4
@@ -22,7 +22,9 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
22
22
  var isFullWidthEnabled = arguments.length > 5 ? arguments[5] : undefined;
23
23
  var pluginInjectionApi = arguments.length > 6 ? arguments[6] : undefined;
24
24
  var getIntl = arguments.length > 7 ? arguments[7] : undefined;
25
- var shouldUseIncreasedScalingPercent = arguments.length > 8 ? arguments[8] : undefined;
25
+ var isCellBackgroundDuplicated = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
26
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
27
+ var shouldUseIncreasedScalingPercent = arguments.length > 10 ? arguments[10] : undefined;
26
28
  var list = {};
27
29
  var ariaNotifyPlugin = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.accessibilityUtils) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions.ariaNotify;
28
30
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.nextCell.common, (0, _commands2.goToNextCell)(editorAnalyticsAPI, ariaNotifyPlugin, getIntl)(1), list);
@@ -34,13 +36,13 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
34
36
  // Add row/column shortcuts
35
37
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowBefore.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('TOP'), list);
36
38
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowAfter.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('BOTTOM'), list);
37
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBefore.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
38
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfter.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
39
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBefore.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
40
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfter.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
39
41
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg')) {
40
42
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowBeforeVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('TOP'), list);
41
43
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.addRowAfterVO.common, (0, _commandsWithAnalytics.addRowAroundSelection)(editorAnalyticsAPI)('BOTTOM'), list);
42
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBeforeVO.common, (0, _insert.addColumnBefore)(isTableScalingEnabled), list);
43
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfterVO.common, (0, _insert.addColumnAfter)(isTableScalingEnabled), list);
44
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnBeforeVO.common, (0, _insert.addColumnBefore)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
45
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.addColumnAfterVO.common, (0, _insert.addColumnAfter)(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
44
46
  }
45
47
  if (dragAndDropEnabled) {
46
48
  // Move row/column shortcuts
@@ -57,8 +59,8 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
57
59
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.moveColumnRight.common, (0, _commandsWithAnalytics2.moveSourceWithAnalyticsViaShortcut)(editorAnalyticsAPI)('table-column', 1), list);
58
60
 
59
61
  // Delete row/column shortcuts
60
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.deleteColumn.common, (0, _commandsWithAnalytics.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut)(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
61
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.deleteRow.common, (0, _commandsWithAnalytics.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut)(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
62
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.deleteColumn.common, (0, _commandsWithAnalytics.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut)(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
63
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.deleteRow.common, (0, _commandsWithAnalytics.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut)(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
62
64
  }
63
65
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
64
66
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.startColumnResizing.common, (0, _columnResize.initiateKeyboardColumnResizing)({
@@ -75,8 +77,8 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
75
77
  ariaNotify: ariaNotifyPlugin,
76
78
  getIntl: getIntl
77
79
  }), list);
78
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.decreaseMediaSize.common, (0, _commandsWithAnalytics.changeColumnWidthByStepWithAnalytics)(editorAnalyticsAPI)(-10, getEditorContainerWidth, isTableScalingEnabled, _analytics.INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
79
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.increaseMediaSize.common, (0, _commandsWithAnalytics.changeColumnWidthByStepWithAnalytics)(editorAnalyticsAPI)(10, getEditorContainerWidth, isTableScalingEnabled, _analytics.INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
80
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.decreaseMediaSize.common, (0, _commandsWithAnalytics.changeColumnWidthByStepWithAnalytics)(editorAnalyticsAPI)(-10, getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, _analytics.INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
81
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.increaseMediaSize.common, (0, _commandsWithAnalytics.changeColumnWidthByStepWithAnalytics)(editorAnalyticsAPI)(10, getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, _analytics.INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
80
82
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.escape.common, (0, _columnResize.stopKeyboardColumnResizing)({
81
83
  ariaNotify: ariaNotifyPlugin,
82
84
  getIntl: getIntl
@@ -88,8 +88,11 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
88
88
  });
89
89
  }
90
90
  if (tr) {
91
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
92
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tableWithFixedColumnWidthsOption,
93
+ tableWithFixedColumnWidthsOption = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
91
94
  // "fixTables" removes empty rows as we don't allow that in schema
92
- var updatedTr = (0, _eventHandlers.handleCut)(tr, oldState, newState, editorAnalyticsAPI, editorViewRef || undefined, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
95
+ var updatedTr = (0, _eventHandlers.handleCut)(tr, oldState, newState, editorAnalyticsAPI, editorViewRef || undefined, isTableScalingEnabled, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent);
93
96
  return (0, _transforms2.fixTables)(updatedTr) || updatedTr;
94
97
  }
95
98
  if (transactions.find(function (tr) {
@@ -53,8 +53,11 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
53
53
  getEditorContainerWidth: getEditorContainerWidth
54
54
  });
55
55
  var shouldScale = tableDepth === 0 && isTableScalingEnabled;
56
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button');
57
- if (isTableScalingEnabledWithLockButton) {
56
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
57
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tableWithFixedColumnWidthsOption,
58
+ tableWithFixedColumnWidthsOption = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
59
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && tableWithFixedColumnWidthsOption;
60
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
58
61
  shouldScale = shouldScale && originalTable.attrs.displayMode !== 'fixed';
59
62
  }
60
63
  var resizeState = (0, _utils3.getResizeState)({
@@ -65,7 +68,7 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
65
68
  start: start,
66
69
  domAtPos: domAtPos,
67
70
  isTableScalingEnabled: shouldScale,
68
- shouldUseIncreasedScalingPercent: isTableScalingEnabledWithLockButton && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent')
71
+ shouldUseIncreasedScalingPercent: isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent')
69
72
  });
70
73
  if ((0, _commands.evenColumns)({
71
74
  resizeState: resizeState,
@@ -140,8 +143,7 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
140
143
  // only selected (or selected - 1) columns should be distributed
141
144
  var resizingSelectedColumns = selectedColumns.indexOf(colIndex) > -1 || selectedColumns.indexOf(colIndex + 1) > -1;
142
145
  var _shouldScale = tableDepth === 0 && isTableScalingEnabled;
143
- var _isTableScalingEnabledWithLockButton = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button');
144
- if (_isTableScalingEnabledWithLockButton) {
146
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
145
147
  _shouldScale = _shouldScale && originalTable.attrs.displayMode !== 'fixed';
146
148
  }
147
149
  var resizedDelta = clientX - startX;
@@ -150,7 +152,7 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
150
152
  tr = (0, _transforms.updateColumnWidths)(newResizeState, table, start)(tr);
151
153
  tr.setNodeAttribute(start - 1, 'width', newResizeState.tableWidth);
152
154
  } else {
153
- var _newResizeState = (0, _utils3.resizeColumn)(resizeState, colIndex, clientX - startX, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale, _isTableScalingEnabledWithLockButton && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent'));
155
+ var _newResizeState = (0, _utils3.resizeColumn)(resizeState, colIndex, clientX - startX, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale, isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent'));
154
156
  tr = (0, _transforms.updateColumnWidths)(_newResizeState, table, start)(tr);
155
157
  }
156
158
  if (colIndex === map.width - 1) {
@@ -218,9 +220,8 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
218
220
  var map = _tableMap.TableMap.get(table);
219
221
  var colIndex = map.colCount($cell.pos - $cell.start(-1)) + $cell.nodeAfter.attrs.colspan - 1;
220
222
  var shouldScale = tableDepth === 0 && isTableScalingEnabled;
221
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button');
222
- var shouldUseIncreasedScalingPercent = isTableScalingEnabledWithLockButton && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
223
- if (isTableScalingEnabledWithLockButton) {
223
+ var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
224
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
224
225
  shouldScale = shouldScale && originalTable.attrs.displayMode !== 'fixed';
225
226
  }
226
227
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.colum-resizing-improvements')) {
@@ -305,6 +305,7 @@ var normaliseTableLayout = exports.normaliseTableLayout = function normaliseTabl
305
305
  };
306
306
  var getNewResizeStateFromSelectedColumns = exports.getNewResizeStateFromSelectedColumns = function getNewResizeStateFromSelectedColumns(rect, state, domAtPos, getEditorContainerWidth) {
307
307
  var isTableScalingEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
308
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
308
309
  // Fail early so that we don't do complex calculations for no reason
309
310
  var numColumnsSelected = rect.right - rect.left;
310
311
  if (numColumnsSelected <= 1) {
@@ -338,8 +339,8 @@ var getNewResizeStateFromSelectedColumns = exports.getNewResizeStateFromSelected
338
339
  });
339
340
  var resizeState;
340
341
  var isTableScalingEnabledOnCurrentTable = isTableScalingEnabled;
341
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button');
342
- if (isTableScalingEnabledWithLockButton) {
342
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled;
343
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
343
344
  isTableScalingEnabledOnCurrentTable = table.node.attrs.displayMode !== 'fixed';
344
345
  }
345
346
  resizeState = getResizeState({
@@ -350,7 +351,7 @@ var getNewResizeStateFromSelectedColumns = exports.getNewResizeStateFromSelected
350
351
  start: table.start,
351
352
  domAtPos: domAtPos,
352
353
  isTableScalingEnabled: isTableScalingEnabledOnCurrentTable,
353
- shouldUseIncreasedScalingPercent: isTableScalingEnabledWithLockButton && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent')
354
+ shouldUseIncreasedScalingPercent: isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent')
354
355
  });
355
356
  var newResizeState = evenSelectedColumnsWidths(resizeState, rect);
356
357
  var widthsBefore = resizeState.widths;
@@ -110,6 +110,7 @@ function scaleTableTo(state, maxSize) {
110
110
  }
111
111
  var previewScaleTable = exports.previewScaleTable = function previewScaleTable(tableRef, options, domAtPos) {
112
112
  var isTableScalingEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
113
+ var isTableWithFixedColumnWidthsOptionEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
113
114
  var node = options.node,
114
115
  start = options.start,
115
116
  parentWidth = options.parentWidth;
@@ -122,8 +123,8 @@ var previewScaleTable = exports.previewScaleTable = function previewScaleTable(t
122
123
  tableRef.style.width = "".concat(width, "px");
123
124
  }
124
125
  var isTableScalingEnabledOnCurrentTable = isTableScalingEnabled;
125
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button');
126
- if (isTableScalingEnabledWithLockButton) {
126
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && isTableWithFixedColumnWidthsOptionEnabled;
127
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
127
128
  isTableScalingEnabledOnCurrentTable = isTableScalingEnabled && node.attrs.displayMode !== 'fixed';
128
129
  }
129
130
  // If the table hasn't been resize, the colgroup 48px width values will gracefully scale down.
@@ -132,7 +133,7 @@ var previewScaleTable = exports.previewScaleTable = function previewScaleTable(t
132
133
  (0, _dom.syncStickyRowToTable)(tableRef);
133
134
  return;
134
135
  }
135
- var shouldUseIncreasedScalingPercent = isTableScalingEnabledWithLockButton && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
136
+ var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
136
137
  var resizeState = parentWidth ? scaleWithParent(tableRef, parentWidth, node, start, domAtPos, false,
137
138
  // Here isTableScalingEnabled = false
138
139
  shouldUseIncreasedScalingPercent) : scale(tableRef, options, domAtPos, false, shouldUseIncreasedScalingPercent);
@@ -32,6 +32,7 @@ var _commands = require("./commands");
32
32
  var _commandsWithAnalytics = require("./commands-with-analytics");
33
33
  var _pluginFactory = require("./pm-plugins/plugin-factory");
34
34
  var _tableResizing = require("./pm-plugins/table-resizing");
35
+ var _misc = require("./pm-plugins/table-resizing/utils/misc");
35
36
  var _resizeState = require("./pm-plugins/table-resizing/utils/resize-state");
36
37
  var _tableWidth = require("./pm-plugins/table-width");
37
38
  var _transforms = require("./transforms");
@@ -95,6 +96,7 @@ var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMen
95
96
  type: optionItem
96
97
  }
97
98
  }];
99
+ var tableOptionsDropdownWidth = isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined;
98
100
  if (state.isDragAndDropEnabled) {
99
101
  return {
100
102
  id: 'editor.table.tableOptions',
@@ -106,7 +108,7 @@ var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMen
106
108
  return option.hidden;
107
109
  }),
108
110
  options: options,
109
- dropdownWidth: isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined
111
+ dropdownWidth: tableOptionsDropdownWidth
110
112
  };
111
113
  } else {
112
114
  return {
@@ -118,7 +120,7 @@ var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMen
118
120
  return option.hidden;
119
121
  }),
120
122
  options: options,
121
- dropdownWidth: isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined
123
+ dropdownWidth: tableOptionsDropdownWidth
122
124
  };
123
125
  }
124
126
  };
@@ -130,7 +132,9 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
130
132
  var _pluginState$pluginCo, _pluginState$pluginCo2;
131
133
  var formatMessage = _ref2.formatMessage;
132
134
  var isTableScalingEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
133
- var shouldUseIncreasedScalingPercent = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
135
+ var isCellBackgroundDuplicated = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
136
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
137
+ var shouldUseIncreasedScalingPercent = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
134
138
  var top = initialSelectionRect.top,
135
139
  bottom = initialSelectionRect.bottom,
136
140
  right = initialSelectionRect.right,
@@ -145,7 +149,7 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
145
149
  var selectionRect = getClosestSelectionRect(state);
146
150
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
147
151
  if (index) {
148
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
152
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
149
153
  }
150
154
  return true;
151
155
  },
@@ -181,7 +185,7 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
181
185
  onClick: function onClick(state, dispatch, view) {
182
186
  var selectionRect = getClosestSelectionRect(state);
183
187
  if (selectionRect) {
184
- (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.FLOATING_TB, selectionRect)(state, dispatch, view);
188
+ (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.FLOATING_TB, selectionRect)(state, dispatch, view);
185
189
  }
186
190
  return true;
187
191
  },
@@ -224,7 +228,7 @@ var getToolbarCellOptionsConfig = exports.getToolbarCellOptionsConfig = function
224
228
  }];
225
229
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
226
230
  var _newResizeStateWithAn;
227
- var newResizeStateWithAnalytics = editorView ? (0, _resizeState.getNewResizeStateFromSelectedColumns)(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled) : undefined;
231
+ var newResizeStateWithAnalytics = editorView ? (0, _resizeState.getNewResizeStateFromSelectedColumns)(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled) : undefined;
228
232
  var wouldChange = (_newResizeStateWithAn = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn !== void 0 ? _newResizeStateWithAn : false;
229
233
  var distributeColumnWidths = function distributeColumnWidths(state, dispatch) {
230
234
  if (newResizeStateWithAnalytics) {
@@ -332,7 +336,7 @@ var getClosestSelectionOrTableRect = exports.getClosestSelectionOrTableRect = fu
332
336
  return (0, _utils3.isSelectionType)(selection, 'cell') ? (0, _utils3.getSelectionRect)(selection) : tableRect;
333
337
  };
334
338
  var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editorAnalyticsAPI, getEditorFeatureFlags, getEditorView, options) {
335
- var isTableScalingWithFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
339
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
336
340
  var shouldUseIncreasedScalingPercent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
337
341
  return function (config) {
338
342
  return function (state, intl) {
@@ -340,21 +344,33 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
340
344
  var pluginState = (0, _pluginFactory.getPluginState)(state);
341
345
  var resizeState = _tableResizing.pluginKey.getState(state);
342
346
  var tableWidthState = _tableWidth.pluginKey.getState(state);
347
+ var isTableScalingEnabled = (options === null || options === void 0 ? void 0 : options.isTableScalingEnabled) || false;
343
348
 
344
349
  // We don't want to show floating toolbar while resizing the table
345
350
  var isWidthResizing = tableWidthState === null || tableWidthState === void 0 ? void 0 : tableWidthState.resizing;
346
351
  if (tableObject && pluginState.editorHasFocus && !isWidthResizing) {
347
352
  var nodeType = state.schema.nodes.table;
348
353
  var isNested = pluginState.tablePos && (0, _utils4.isTableNested)(state, pluginState.tablePos);
349
- var isTableScalingWithFixedColumnWidthsOptionShown = isTableScalingWithFixedColumnWidthsOptionEnabled && !isNested;
354
+ var isTableScalingWithFixedColumnWidthsOptionShown = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled && !isNested;
350
355
  var areTableColumWidthsFixed = tableObject.node.attrs.displayMode === 'fixed';
356
+ var editorView = getEditorView();
357
+ var getDomRef = function getDomRef(editorView) {
358
+ var element;
359
+ var domAtPos = editorView.domAtPos.bind(editorView);
360
+ var parent = (0, _utils2.findParentDomRefOfType)(nodeType, domAtPos)(state.selection);
361
+ if (parent) {
362
+ var tableRef = parent.querySelector('table') || undefined;
363
+ if (tableRef) {
364
+ element = (0, _utils.closestElement)(tableRef, ".".concat(_types.TableCssClassName.TABLE_NODE_WRAPPER)) || undefined;
365
+ }
366
+ }
367
+ return element;
368
+ };
351
369
  var menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI, isTableScalingWithFixedColumnWidthsOptionShown, areTableColumWidthsFixed);
352
- var alignmentMenu;
353
- alignmentMenu = options !== null && options !== void 0 && options.isTableAlignmentEnabled && !isNested ? getAlignmentOptionsConfig(state, intl, editorAnalyticsAPI, getEditorContainerWidth) : [];
354
- var cellItems;
355
- cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, options === null || options === void 0 ? void 0 : options.isTableScalingEnabled, shouldUseIncreasedScalingPercent);
356
- var columnSettingsItems;
357
- columnSettingsItems = pluginState.isDragAndDropEnabled ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, options === null || options === void 0 ? void 0 : options.isTableScalingEnabled) : [];
370
+ var alignmentMenu = options !== null && options !== void 0 && options.isTableAlignmentEnabled && !isNested ? getAlignmentOptionsConfig(state, intl, editorAnalyticsAPI, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) : [];
371
+ var isCellBackgroundDuplicated = getEditorFeatureFlags().tableDuplicateCellColouring || false;
372
+ var cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, editorView, intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent);
373
+ var columnSettingsItems = pluginState.isDragAndDropEnabled ? getColumnSettingItems(state, editorView, intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled) : [];
358
374
  var colorPicker = getColorPicker(state, menu, intl, editorAnalyticsAPI, getEditorView);
359
375
 
360
376
  // Check if we need to show confirm dialog for delete button
@@ -381,18 +397,6 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
381
397
  };
382
398
  };
383
399
  }
384
- var getDomRef = function getDomRef(editorView) {
385
- var element;
386
- var domAtPos = editorView.domAtPos.bind(editorView);
387
- var parent = (0, _utils2.findParentDomRefOfType)(nodeType, domAtPos)(state.selection);
388
- if (parent) {
389
- var tableRef = parent.querySelector('table') || undefined;
390
- if (tableRef) {
391
- element = (0, _utils.closestElement)(tableRef, ".".concat(_types.TableCssClassName.TABLE_NODE_WRAPPER)) || undefined;
392
- }
393
- }
394
- return element;
395
- };
396
400
  var _getEditorFeatureFlag = getEditorFeatureFlags(),
397
401
  stickyScrollbar = _getEditorFeatureFlag.stickyScrollbar;
398
402
  return {
@@ -455,24 +459,27 @@ var separator = function separator(hidden) {
455
459
  var getCellItems = function getCellItems(state, view, _ref3, getEditorContainerWidth, editorAnalyticsAPI) {
456
460
  var formatMessage = _ref3.formatMessage;
457
461
  var isTableScalingEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
458
- var shouldUseIncreasedScalingPercent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
462
+ var isCellBackgroundDuplicated = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
463
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
464
+ var shouldUseIncreasedScalingPercent = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
459
465
  var initialSelectionRect = getClosestSelectionRect(state);
460
466
  if (initialSelectionRect) {
461
467
  var cellOptions = getToolbarCellOptionsConfig(state, view, initialSelectionRect, {
462
468
  formatMessage: formatMessage
463
- }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
469
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent);
464
470
  return [cellOptions, separator(cellOptions.hidden)];
465
471
  }
466
472
  return [];
467
473
  };
468
474
  var getDistributeConfig = exports.getDistributeConfig = function getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI) {
469
475
  var isTableScalingEnabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
476
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
470
477
  return function (state, dispatch, editorView) {
471
478
  var selectionOrTableRect = getClosestSelectionOrTableRect(state);
472
479
  if (!editorView || !selectionOrTableRect) {
473
480
  return false;
474
481
  }
475
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
482
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled);
476
483
  if (newResizeStateWithAnalytics) {
477
484
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
478
485
  return true;
@@ -487,12 +494,13 @@ var getColumnSettingItems = function getColumnSettingItems(editorState, editorVi
487
494
  var _newResizeStateWithAn2, _pluginState$pluginCo3;
488
495
  var formatMessage = _ref4.formatMessage;
489
496
  var isTableScalingEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
497
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
490
498
  var pluginState = (0, _pluginFactory.getPluginState)(editorState);
491
499
  var selectionOrTableRect = getClosestSelectionOrTableRect(editorState);
492
500
  if (!selectionOrTableRect || !editorView) {
493
501
  return [];
494
502
  }
495
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
503
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled);
496
504
  var wouldChange = (_newResizeStateWithAn2 = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn2 !== void 0 ? _newResizeStateWithAn2 : false;
497
505
  var items = [];
498
506
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo3 = pluginState.pluginConfig) !== null && _pluginState$pluginCo3 !== void 0 && _pluginState$pluginCo3.allowDistributeColumns && pluginState.isDragAndDropEnabled) {
@@ -502,7 +510,7 @@ var getColumnSettingItems = function getColumnSettingItems(editorState, editorVi
502
510
  title: formatMessage(_messages.tableMessages.distributeColumns),
503
511
  icon: _layoutThreeEqual.default,
504
512
  onClick: function onClick(state, dispatch, view) {
505
- return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled)(state, dispatch, view);
513
+ return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled)(state, dispatch, view);
506
514
  },
507
515
  disabled: !wouldChange
508
516
  });
@@ -575,7 +583,7 @@ var highlightColumnsHandler = function highlightColumnsHandler(state, dispatch)
575
583
  }
576
584
  return false;
577
585
  };
578
- var getAlignmentOptionsConfig = exports.getAlignmentOptionsConfig = function getAlignmentOptionsConfig(editorState, _ref6, editorAnalyticsAPI, getEditorContainerWidth) {
586
+ var getAlignmentOptionsConfig = exports.getAlignmentOptionsConfig = function getAlignmentOptionsConfig(editorState, _ref6, editorAnalyticsAPI, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) {
579
587
  var formatMessage = _ref6.formatMessage;
580
588
  var tableObject = (0, _utils3.findTable)(editorState.selection);
581
589
  if (!tableObject) {
@@ -608,7 +616,7 @@ var getAlignmentOptionsConfig = exports.getAlignmentOptionsConfig = function get
608
616
  title: formatMessage(layoutToMessages[value]),
609
617
  selected: (0, _alignment.normaliseAlignment)(currentLayout) === value,
610
618
  onClick: (0, _commandsWithAnalytics.setTableAlignmentWithAnalytics)(editorAnalyticsAPI)(value, currentLayout, _analytics.INPUT_METHOD.FLOATING_TB, _analytics.CHANGE_ALIGNMENT_REASON.TOOLBAR_OPTION_CHANGED)
611
- }, isLayoutOptionDisabled(tableObject.node, getEditorContainerWidth) && {
619
+ }, isLayoutOptionDisabled(tableObject.node, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) && {
612
620
  disabled: value !== 'center'
613
621
  });
614
622
  });
@@ -638,10 +646,19 @@ var getSelectedAlignmentIcon = exports.getSelectedAlignmentIcon = function getSe
638
646
  return icon.value === (0, _alignment.normaliseAlignment)(selectedAlignment);
639
647
  });
640
648
  };
641
- var isLayoutOptionDisabled = exports.isLayoutOptionDisabled = function isLayoutOptionDisabled(selectedNode, getEditorContainerWidth) {
642
- var lineLength = getEditorContainerWidth().lineLength;
643
- var tableWidth = (0, _nodeWidth.getTableContainerWidth)(selectedNode);
644
- if (selectedNode && lineLength && tableWidth > lineLength) {
649
+ var isLayoutOptionDisabled = exports.isLayoutOptionDisabled = function isLayoutOptionDisabled(selectedNode, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) {
650
+ var _getEditorContainerWi = getEditorContainerWidth(),
651
+ lineLength = _getEditorContainerWi.lineLength;
652
+ var tableContainerWidth = (0, _nodeWidth.getTableContainerWidth)(selectedNode);
653
+
654
+ // table may be scaled, use the scale percent to calculate the table width
655
+ if (editorView) {
656
+ var tableWrapper = getDomRef(editorView);
657
+ var tableWrapperWidth = (tableWrapper === null || tableWrapper === void 0 ? void 0 : tableWrapper.clientWidth) || tableContainerWidth;
658
+ var scalePercent = (0, _misc.getStaticTableScalingPercent)(selectedNode, tableWrapperWidth, shouldUseIncreasedScalingPercent);
659
+ tableContainerWidth = tableContainerWidth * scalePercent;
660
+ }
661
+ if (selectedNode && lineLength && tableContainerWidth > lineLength) {
645
662
  return true;
646
663
  }
647
664
  return false;
@@ -98,7 +98,8 @@ var updateColumnWidths = exports.updateColumnWidths = function updateColumnWidth
98
98
  */
99
99
  var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
100
100
  var isTableScalingEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
101
- var shouldUseIncreasedScalingPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
101
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
102
+ var shouldUseIncreasedScalingPercent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
102
103
  return function (table, view) {
103
104
  return function (tr) {
104
105
  if (!view) {
@@ -120,7 +121,7 @@ var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
120
121
  };
121
122
  var tableDepth = view.state.doc.resolve(table.pos).depth;
122
123
  var shouldScale = isTableScalingEnabled && tableDepth === 0;
123
- if (shouldScale && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button')) {
124
+ if (shouldScale && isTableFixedColumnWidthsOptionEnabled) {
124
125
  shouldScale = newTable.attrs.displayMode !== 'fixed';
125
126
  }
126
127
  if (shouldScale) {
@@ -187,7 +188,6 @@ var rescaleColumns = exports.rescaleColumns = function rescaleColumns() {
187
188
  isTableScalingEnabled: shouldScale,
188
189
  shouldUseIncreasedScalingPercent: shouldUseIncreasedScalingPercent
189
190
  });
190
-
191
191
  // Two scenarios that require scaling:
192
192
  // 1. If the new table width will result in the table going into overflow
193
193
  // we resize the cells to avoid it (e.g. adding a column)
@@ -213,7 +213,8 @@ function fixRowSpans(table) {
213
213
  }
214
214
  var deleteColumns = exports.deleteColumns = function deleteColumns(rect, allowCustomStep, view) {
215
215
  var isTableScalingEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
216
- var shouldUseIncreasedScalingPercent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
216
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
217
+ var shouldUseIncreasedScalingPercent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
217
218
  return function (tr) {
218
219
  var updatedTr = tr;
219
220
  updatedTr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_TRIGGER, {
@@ -226,7 +227,7 @@ var deleteColumns = exports.deleteColumns = function deleteColumns(rect, allowCu
226
227
  }
227
228
  var table = (0, _utils.findTable)(updatedTr.selection);
228
229
  if (table) {
229
- updatedTr = (0, _columnWidth.rescaleColumns)(isTableScalingEnabled, shouldUseIncreasedScalingPercent)(table, view)(updatedTr);
230
+ updatedTr = (0, _columnWidth.rescaleColumns)(isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(table, view)(updatedTr);
230
231
  }
231
232
  return updatedTr;
232
233
  };
@@ -279,7 +279,8 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
279
279
  selectionRect = _this$props8.selectionRect,
280
280
  formatMessage = _this$props8.intl.formatMessage,
281
281
  editorView = _this$props8.editorView,
282
- getEditorContainerWidth = _this$props8.getEditorContainerWidth;
282
+ getEditorContainerWidth = _this$props8.getEditorContainerWidth,
283
+ getEditorFeatureFlags = _this$props8.getEditorFeatureFlags;
283
284
  var _getPluginState8 = (0, _pluginFactory.getPluginState)(editorView.state),
284
285
  isDragAndDropEnabled = _getPluginState8.isDragAndDropEnabled,
285
286
  allowDistributeColumns = _getPluginState8.pluginConfig.allowDistributeColumns;
@@ -288,7 +289,10 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
288
289
  var _getPluginState9 = (0, _pluginFactory.getPluginState)(editorView.state),
289
290
  _getPluginState9$isTa = _getPluginState9.isTableScalingEnabled,
290
291
  isTableScalingEnabled = _getPluginState9$isTa === void 0 ? false : _getPluginState9$isTa;
291
- var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
292
+ var _ref = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
293
+ _ref$tableWithFixedCo = _ref.tableWithFixedColumnWidthsOption,
294
+ tableWithFixedColumnWidthsOption = _ref$tableWithFixedCo === void 0 ? false : _ref$tableWithFixedCo;
295
+ var newResizeState = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, tableWithFixedColumnWidthsOption);
292
296
  var wouldChange = (_newResizeState$chang = newResizeState === null || newResizeState === void 0 ? void 0 : newResizeState.changed) !== null && _newResizeState$chang !== void 0 ? _newResizeState$chang : false;
293
297
  return {
294
298
  content: formatMessage(_messages.tableMessages.distributeColumns),
@@ -370,8 +374,8 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
370
374
  items[1].items.push(deleteRowItem);
371
375
  return items;
372
376
  });
373
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMenuItemActivated", function (_ref) {
374
- var item = _ref.item;
377
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMenuItemActivated", function (_ref2) {
378
+ var item = _ref2.item;
375
379
  var _this$props10 = _this.props,
376
380
  editorView = _this$props10.editorView,
377
381
  selectionRect = _this$props10.selectionRect,
@@ -385,10 +389,12 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
385
389
  targetCellPosition = _getPluginState11.targetCellPosition,
386
390
  _getPluginState11$isT = _getPluginState11.isTableScalingEnabled,
387
391
  isTableScalingEnabled = _getPluginState11$isT === void 0 ? false : _getPluginState11$isT;
388
- var _ref2 = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
389
- _ref2$tableDuplicateC = _ref2.tableDuplicateCellColouring,
390
- tableDuplicateCellColouring = _ref2$tableDuplicateC === void 0 ? false : _ref2$tableDuplicateC;
391
- var shouldUseIncreasedScalingPercent = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button') && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
392
+ var _ref3 = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
393
+ _ref3$tableDuplicateC = _ref3.tableDuplicateCellColouring,
394
+ tableDuplicateCellColouring = _ref3$tableDuplicateC === void 0 ? false : _ref3$tableDuplicateC,
395
+ _ref3$tableWithFixedC = _ref3.tableWithFixedColumnWidthsOption,
396
+ tableWithFixedColumnWidthsOption = _ref3$tableWithFixedC === void 0 ? false : _ref3$tableWithFixedC;
397
+ var shouldUseIncreasedScalingPercent = isTableScalingEnabled && tableWithFixedColumnWidthsOption && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
392
398
  switch (item.value.name) {
393
399
  case 'sort_column_desc':
394
400
  (0, _commandsWithAnalytics.sortColumnWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.left, _customSteps.TableSortOrder.DESC)(state, dispatch);
@@ -407,7 +413,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
407
413
  _this.toggleOpen();
408
414
  break;
409
415
  case 'distribute_columns':
410
- var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
416
+ var newResizeStateWithAnalytics = (0, _resizeState.getNewResizeStateFromSelectedColumns)(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, tableWithFixedColumnWidthsOption);
411
417
  if (newResizeStateWithAnalytics) {
412
418
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.CONTEXT_MENU, newResizeStateWithAnalytics)(state, dispatch);
413
419
  _this.toggleOpen();
@@ -418,7 +424,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
418
424
  _this.toggleOpen();
419
425
  break;
420
426
  case 'insert_column':
421
- (0, _commandsWithAnalytics.insertColumnWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, tableDuplicateCellColouring, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
427
+ (0, _commandsWithAnalytics.insertColumnWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, tableDuplicateCellColouring, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
422
428
  _this.toggleOpen();
423
429
  break;
424
430
  case 'insert_row':
@@ -429,7 +435,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
429
435
  _this.toggleOpen();
430
436
  break;
431
437
  case 'delete_column':
432
- (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
438
+ (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI, isTableScalingEnabled, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent)(_analytics.INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
433
439
  _this.toggleOpen();
434
440
  break;
435
441
  case 'delete_row':
@@ -462,8 +468,8 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
462
468
  isSubmenuOpen: false
463
469
  });
464
470
  });
465
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseEnter", function (_ref3) {
466
- var item = _ref3.item;
471
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseEnter", function (_ref4) {
472
+ var item = _ref4.item;
467
473
  var _this$props12 = _this.props,
468
474
  _this$props12$editorV = _this$props12.editorView,
469
475
  state = _this$props12$editorV.state,
@@ -486,8 +492,8 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
486
492
  (0, _commands.hoverMergedCells)()(state, dispatch);
487
493
  }
488
494
  });
489
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseLeave", function (_ref4) {
490
- var item = _ref4.item;
495
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleItemMouseLeave", function (_ref5) {
496
+ var item = _ref5.item;
491
497
  var _this$props$editorVie2 = _this.props.editorView,
492
498
  state = _this$props$editorVie2.state,
493
499
  dispatch = _this$props$editorVie2.dispatch;
@@ -193,7 +193,8 @@ var DragMenu = exports.DragMenu = /*#__PURE__*/_react.default.memo(function (_re
193
193
  boundariesElement = _ref.boundariesElement,
194
194
  isTableScalingEnabled = _ref.isTableScalingEnabled,
195
195
  tableDuplicateCellColouring = _ref.tableDuplicateCellColouring,
196
- shouldUseIncreasedScalingPercent = _ref.shouldUseIncreasedScalingPercent;
196
+ shouldUseIncreasedScalingPercent = _ref.shouldUseIncreasedScalingPercent,
197
+ isTableFixedColumnWidthsOptionEnabled = _ref.isTableFixedColumnWidthsOptionEnabled;
197
198
  var state = editorView.state,
198
199
  dispatch = editorView.dispatch;
199
200
  var selection = state.selection;
@@ -217,7 +218,7 @@ var DragMenu = exports.DragMenu = /*#__PURE__*/_react.default.memo(function (_re
217
218
  hasMergedCellsInTable = (0, _utils3.getMergedCellsPositions)(state.tr).length > 0;
218
219
  }
219
220
  var allowBackgroundColor = (_pluginConfig$allowBa = pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.allowBackgroundColor) !== null && _pluginConfig$allowBa !== void 0 ? _pluginConfig$allowBa : false;
220
- var dragMenuConfig = (0, _dragMenu.getDragMenuConfig)(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired, isTableScalingEnabled, tableDuplicateCellColouring, shouldUseIncreasedScalingPercent);
221
+ var dragMenuConfig = (0, _dragMenu.getDragMenuConfig)(direction, getEditorContainerWidth, !shouldMoveDisabled, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.isHeaderRowRequired, isTableScalingEnabled, tableDuplicateCellColouring, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent);
221
222
  var _convertToDropdownIte = convertToDropdownItems(dragMenuConfig, formatMessage, selectionRect),
222
223
  menuItems = _convertToDropdownIte.menuItems,
223
224
  menuCallback = _convertToDropdownIte.menuCallback;
@@ -39,8 +39,10 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
39
39
  }
40
40
  var _ref2 = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
41
41
  _ref2$tableDuplicateC = _ref2.tableDuplicateCellColouring,
42
- tableDuplicateCellColouring = _ref2$tableDuplicateC === void 0 ? false : _ref2$tableDuplicateC;
43
- var shouldUseIncreasedScalingPercent = isTableScalingEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.preserve-widths-with-lock-button') && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
42
+ tableDuplicateCellColouring = _ref2$tableDuplicateC === void 0 ? false : _ref2$tableDuplicateC,
43
+ _ref2$tableWithFixedC = _ref2.tableWithFixedColumnWidthsOption,
44
+ tableWithFixedColumnWidthsOption = _ref2$tableWithFixedC === void 0 ? false : _ref2$tableWithFixedC;
45
+ var shouldUseIncreasedScalingPercent = isTableScalingEnabled && tableWithFixedColumnWidthsOption && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-increased-scaling-percent');
44
46
  return /*#__PURE__*/_react.default.createElement(_ui.Popup, {
45
47
  alignX: direction === 'row' ? 'right' : undefined,
46
48
  alignY: direction === 'row' ? 'start' : undefined,
@@ -76,7 +78,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
76
78
  scrollableElement: scrollableElement,
77
79
  isTableScalingEnabled: isTableScalingEnabled,
78
80
  tableDuplicateCellColouring: tableDuplicateCellColouring,
79
- shouldUseIncreasedScalingPercent: shouldUseIncreasedScalingPercent
81
+ shouldUseIncreasedScalingPercent: shouldUseIncreasedScalingPercent,
82
+ isTableFixedColumnWidthsOptionEnabled: tableWithFixedColumnWidthsOption
80
83
  }));
81
84
  };
82
85
  FloatingDragMenu.displayName = 'FloatingDragMenu';