@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
@@ -18,7 +18,7 @@ import { DropTargetType } from './consts';
18
18
  import { createPluginState, getPluginState } from './plugin-factory';
19
19
  import { pluginKey } from './plugin-key';
20
20
  import { getDraggableDataFromEvent } from './utils/monitor';
21
- var destroyFn = function destroyFn(editorView, editorAnalyticsAPI) {
21
+ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled) {
22
22
  var editorPageScrollContainer = document.querySelector('.fabric-editor-popup-scroll-parent');
23
23
  var rowAutoScrollers = editorPageScrollContainer ? [monitorForElements({
24
24
  canMonitor: function canMonitor(_ref) {
@@ -154,16 +154,13 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI) {
154
154
  tableRef = _getTablePluginState3.tableRef,
155
155
  tableNode = _getTablePluginState3.tableNode;
156
156
  if (tableRef && tableNode) {
157
- var _getTablePluginState4 = getTablePluginState(editorView.state),
158
- _getTablePluginState5 = _getTablePluginState4.isTableScalingEnabled,
159
- isTableScalingEnabled = _getTablePluginState5 === void 0 ? false : _getTablePluginState5;
160
157
  var isTableScalingEnabledOnCurrentTable = isTableScalingEnabled;
161
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
162
- var shouldUseIncreasedScalingPercent = isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
163
- if (isTableScalingEnabledWithLockButton) {
158
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled;
159
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
164
160
  isTableScalingEnabledOnCurrentTable = tableNode.attrs.displayMode !== 'fixed';
165
161
  }
166
- insertColgroupFromNode(tableRef, tableNode, isTableScalingEnabledOnCurrentTable, shouldUseIncreasedScalingPercent);
162
+ var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
163
+ insertColgroupFromNode(tableRef, tableNode, isTableScalingEnabledOnCurrentTable, undefined, shouldUseIncreasedScalingPercent);
167
164
  }
168
165
  }
169
166
  editorView.focus();
@@ -172,6 +169,8 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI) {
172
169
  })]));
173
170
  };
174
171
  export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
172
+ var isTableScalingEnabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
173
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
175
174
  return new SafePlugin({
176
175
  state: createPluginState(dispatch, function (state) {
177
176
  return {
@@ -186,10 +185,10 @@ export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
186
185
  }),
187
186
  key: pluginKey,
188
187
  appendTransaction: function appendTransaction(transactions, oldState, newState) {
189
- var _getTablePluginState6 = getTablePluginState(oldState),
190
- oldTargetCellPosition = _getTablePluginState6.targetCellPosition;
191
- var _getTablePluginState7 = getTablePluginState(newState),
192
- newTargetCellPosition = _getTablePluginState7.targetCellPosition;
188
+ var _getTablePluginState4 = getTablePluginState(oldState),
189
+ oldTargetCellPosition = _getTablePluginState4.targetCellPosition;
190
+ var _getTablePluginState5 = getTablePluginState(newState),
191
+ newTargetCellPosition = _getTablePluginState5.targetCellPosition;
193
192
  var _getPluginState = getPluginState(newState),
194
193
  isDragMenuOpen = _getPluginState.isDragMenuOpen,
195
194
  dragMenuIndex = _getPluginState.dragMenuIndex;
@@ -239,7 +238,7 @@ export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
239
238
  },
240
239
  view: function view(editorView) {
241
240
  return {
242
- destroy: destroyFn(editorView, editorAnalyticsAPI)
241
+ destroy: destroyFn(editorView, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled)
243
242
  };
244
243
  },
245
244
  props: {
@@ -15,7 +15,9 @@ export function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAn
15
15
  var isFullWidthEnabled = arguments.length > 5 ? arguments[5] : undefined;
16
16
  var pluginInjectionApi = arguments.length > 6 ? arguments[6] : undefined;
17
17
  var getIntl = arguments.length > 7 ? arguments[7] : undefined;
18
- var shouldUseIncreasedScalingPercent = arguments.length > 8 ? arguments[8] : undefined;
18
+ var isCellBackgroundDuplicated = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
19
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
20
+ var shouldUseIncreasedScalingPercent = arguments.length > 10 ? arguments[10] : undefined;
19
21
  var list = {};
20
22
  var ariaNotifyPlugin = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.accessibilityUtils) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions.ariaNotify;
21
23
  bindKeymapWithCommand(nextCell.common, goToNextCell(editorAnalyticsAPI, ariaNotifyPlugin, getIntl)(1), list);
@@ -27,13 +29,13 @@ export function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAn
27
29
  // Add row/column shortcuts
28
30
  bindKeymapWithCommand(addRowBefore.common, addRowAroundSelection(editorAnalyticsAPI)('TOP'), list);
29
31
  bindKeymapWithCommand(addRowAfter.common, addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'), list);
30
- bindKeymapWithCommand(addColumnBefore.common, addColumnBeforeCommand(isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
31
- bindKeymapWithCommand(addColumnAfter.common, addColumnAfterCommand(isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
32
+ bindKeymapWithCommand(addColumnBefore.common, addColumnBeforeCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
33
+ bindKeymapWithCommand(addColumnAfter.common, addColumnAfterCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
32
34
  if (getBooleanFF('platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg')) {
33
35
  bindKeymapWithCommand(addRowBeforeVO.common, addRowAroundSelection(editorAnalyticsAPI)('TOP'), list);
34
36
  bindKeymapWithCommand(addRowAfterVO.common, addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'), list);
35
- bindKeymapWithCommand(addColumnBeforeVO.common, addColumnBeforeCommand(isTableScalingEnabled), list);
36
- bindKeymapWithCommand(addColumnAfterVO.common, addColumnAfterCommand(isTableScalingEnabled), list);
37
+ bindKeymapWithCommand(addColumnBeforeVO.common, addColumnBeforeCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
38
+ bindKeymapWithCommand(addColumnAfterVO.common, addColumnAfterCommand(isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
37
39
  }
38
40
  if (dragAndDropEnabled) {
39
41
  // Move row/column shortcuts
@@ -50,8 +52,8 @@ export function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAn
50
52
  bindKeymapWithCommand(moveColumnRight.common, moveSourceWithAnalyticsViaShortcut(editorAnalyticsAPI)('table-column', 1), list);
51
53
 
52
54
  // Delete row/column shortcuts
53
- bindKeymapWithCommand(deleteColumn.common, deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
54
- bindKeymapWithCommand(deleteRow.common, deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent), list);
55
+ bindKeymapWithCommand(deleteColumn.common, deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
56
+ bindKeymapWithCommand(deleteRow.common, deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent), list);
55
57
  }
56
58
  if (getBooleanFF('platform.editor.a11y-column-resizing_emcvz')) {
57
59
  bindKeymapWithCommand(startColumnResizing.common, initiateKeyboardColumnResizing({
@@ -68,8 +70,8 @@ export function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAn
68
70
  ariaNotify: ariaNotifyPlugin,
69
71
  getIntl: getIntl
70
72
  }), list);
71
- bindKeymapWithCommand(decreaseMediaSize.common, changeColumnWidthByStepWithAnalytics(editorAnalyticsAPI)(-10, getEditorContainerWidth, isTableScalingEnabled, INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
72
- bindKeymapWithCommand(increaseMediaSize.common, changeColumnWidthByStepWithAnalytics(editorAnalyticsAPI)(10, getEditorContainerWidth, isTableScalingEnabled, INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
73
+ bindKeymapWithCommand(decreaseMediaSize.common, changeColumnWidthByStepWithAnalytics(editorAnalyticsAPI)(-10, getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
74
+ bindKeymapWithCommand(increaseMediaSize.common, changeColumnWidthByStepWithAnalytics(editorAnalyticsAPI)(10, getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, INPUT_METHOD.SHORTCUT, ariaNotifyPlugin, getIntl), list);
73
75
  bindKeymapWithCommand(escape.common, stopKeyboardColumnResizing({
74
76
  ariaNotify: ariaNotifyPlugin,
75
77
  getIntl: getIntl
@@ -81,8 +81,11 @@ export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch
81
81
  });
82
82
  }
83
83
  if (tr) {
84
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
85
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tableWithFixedColumnWidthsOption,
86
+ tableWithFixedColumnWidthsOption = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
84
87
  // "fixTables" removes empty rows as we don't allow that in schema
85
- var updatedTr = handleCut(tr, oldState, newState, editorAnalyticsAPI, editorViewRef || undefined, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
88
+ var updatedTr = handleCut(tr, oldState, newState, editorAnalyticsAPI, editorViewRef || undefined, isTableScalingEnabled, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent);
86
89
  return fixTables(updatedTr) || updatedTr;
87
90
  }
88
91
  if (transactions.find(function (tr) {
@@ -47,8 +47,11 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
47
47
  getEditorContainerWidth: getEditorContainerWidth
48
48
  });
49
49
  var shouldScale = tableDepth === 0 && isTableScalingEnabled;
50
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
51
- if (isTableScalingEnabledWithLockButton) {
50
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
51
+ _getEditorFeatureFlag2 = _getEditorFeatureFlag.tableWithFixedColumnWidthsOption,
52
+ tableWithFixedColumnWidthsOption = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
53
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && tableWithFixedColumnWidthsOption;
54
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
52
55
  shouldScale = shouldScale && originalTable.attrs.displayMode !== 'fixed';
53
56
  }
54
57
  var resizeState = getResizeState({
@@ -59,7 +62,7 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
59
62
  start: start,
60
63
  domAtPos: domAtPos,
61
64
  isTableScalingEnabled: shouldScale,
62
- shouldUseIncreasedScalingPercent: isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent')
65
+ shouldUseIncreasedScalingPercent: isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent')
63
66
  });
64
67
  if (evenColumns({
65
68
  resizeState: resizeState,
@@ -134,8 +137,7 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
134
137
  // only selected (or selected - 1) columns should be distributed
135
138
  var resizingSelectedColumns = selectedColumns.indexOf(colIndex) > -1 || selectedColumns.indexOf(colIndex + 1) > -1;
136
139
  var _shouldScale = tableDepth === 0 && isTableScalingEnabled;
137
- var _isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
138
- if (_isTableScalingEnabledWithLockButton) {
140
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
139
141
  _shouldScale = _shouldScale && originalTable.attrs.displayMode !== 'fixed';
140
142
  }
141
143
  var resizedDelta = clientX - startX;
@@ -144,7 +146,7 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
144
146
  tr = updateColumnWidths(newResizeState, table, start)(tr);
145
147
  tr.setNodeAttribute(start - 1, 'width', newResizeState.tableWidth);
146
148
  } else {
147
- var _newResizeState = resizeColumn(resizeState, colIndex, clientX - startX, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale, _isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent'));
149
+ var _newResizeState = resizeColumn(resizeState, colIndex, clientX - startX, dom, originalTable, resizingSelectedColumns ? selectedColumns : undefined, _shouldScale, isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent'));
148
150
  tr = updateColumnWidths(_newResizeState, table, start)(tr);
149
151
  }
150
152
  if (colIndex === map.width - 1) {
@@ -212,9 +214,8 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
212
214
  var map = TableMap.get(table);
213
215
  var colIndex = map.colCount($cell.pos - $cell.start(-1)) + $cell.nodeAfter.attrs.colspan - 1;
214
216
  var shouldScale = tableDepth === 0 && isTableScalingEnabled;
215
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
216
- var shouldUseIncreasedScalingPercent = isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
217
- if (isTableScalingEnabledWithLockButton) {
217
+ var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
218
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
218
219
  shouldScale = shouldScale && originalTable.attrs.displayMode !== 'fixed';
219
220
  }
220
221
  if (getBooleanFF('platform.editor.table.colum-resizing-improvements')) {
@@ -298,6 +298,7 @@ export var normaliseTableLayout = function normaliseTableLayout(input) {
298
298
  };
299
299
  export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFromSelectedColumns(rect, state, domAtPos, getEditorContainerWidth) {
300
300
  var isTableScalingEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
301
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
301
302
  // Fail early so that we don't do complex calculations for no reason
302
303
  var numColumnsSelected = rect.right - rect.left;
303
304
  if (numColumnsSelected <= 1) {
@@ -331,8 +332,8 @@ export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFrom
331
332
  });
332
333
  var resizeState;
333
334
  var isTableScalingEnabledOnCurrentTable = isTableScalingEnabled;
334
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
335
- if (isTableScalingEnabledWithLockButton) {
335
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled;
336
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
336
337
  isTableScalingEnabledOnCurrentTable = table.node.attrs.displayMode !== 'fixed';
337
338
  }
338
339
  resizeState = getResizeState({
@@ -343,7 +344,7 @@ export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFrom
343
344
  start: table.start,
344
345
  domAtPos: domAtPos,
345
346
  isTableScalingEnabled: isTableScalingEnabledOnCurrentTable,
346
- shouldUseIncreasedScalingPercent: isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent')
347
+ shouldUseIncreasedScalingPercent: isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent')
347
348
  });
348
349
  var newResizeState = evenSelectedColumnsWidths(resizeState, rect);
349
350
  var widthsBefore = resizeState.widths;
@@ -101,6 +101,7 @@ export function scaleTableTo(state, maxSize) {
101
101
  }
102
102
  export var previewScaleTable = function previewScaleTable(tableRef, options, domAtPos) {
103
103
  var isTableScalingEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
104
+ var isTableWithFixedColumnWidthsOptionEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
104
105
  var node = options.node,
105
106
  start = options.start,
106
107
  parentWidth = options.parentWidth;
@@ -113,8 +114,8 @@ export var previewScaleTable = function previewScaleTable(tableRef, options, dom
113
114
  tableRef.style.width = "".concat(width, "px");
114
115
  }
115
116
  var isTableScalingEnabledOnCurrentTable = isTableScalingEnabled;
116
- var isTableScalingEnabledWithLockButton = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button');
117
- if (isTableScalingEnabledWithLockButton) {
117
+ var isTableScalingWithFixedColumnWidthsOptionEnabled = isTableScalingEnabled && isTableWithFixedColumnWidthsOptionEnabled;
118
+ if (isTableScalingWithFixedColumnWidthsOptionEnabled) {
118
119
  isTableScalingEnabledOnCurrentTable = isTableScalingEnabled && node.attrs.displayMode !== 'fixed';
119
120
  }
120
121
  // If the table hasn't been resize, the colgroup 48px width values will gracefully scale down.
@@ -123,7 +124,7 @@ export var previewScaleTable = function previewScaleTable(tableRef, options, dom
123
124
  syncStickyRowToTable(tableRef);
124
125
  return;
125
126
  }
126
- var shouldUseIncreasedScalingPercent = isTableScalingEnabledWithLockButton && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
127
+ var shouldUseIncreasedScalingPercent = isTableScalingWithFixedColumnWidthsOptionEnabled && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
127
128
  var resizeState = parentWidth ? scaleWithParent(tableRef, parentWidth, node, start, domAtPos, false,
128
129
  // Here isTableScalingEnabled = false
129
130
  shouldUseIncreasedScalingPercent) : scale(tableRef, options, domAtPos, false, shouldUseIncreasedScalingPercent);
@@ -27,6 +27,7 @@ import { clearHoverSelection, hoverColumns, hoverMergedCells, hoverRows, hoverTa
27
27
  import { deleteColumnsWithAnalytics, deleteRowsWithAnalytics, deleteTableWithAnalytics, distributeColumnsWidthsWithAnalytics, emptyMultipleCellsWithAnalytics, insertColumnWithAnalytics, insertRowWithAnalytics, mergeCellsWithAnalytics, setColorWithAnalytics, setTableAlignmentWithAnalytics, sortColumnWithAnalytics, splitCellWithAnalytics, toggleFixedColumnWidthsOptionAnalytics, toggleHeaderColumnWithAnalytics, toggleHeaderRowWithAnalytics, toggleNumberColumnWithAnalytics, wrapTableInExpandWithAnalytics } from './commands-with-analytics';
28
28
  import { getPluginState } from './pm-plugins/plugin-factory';
29
29
  import { pluginKey as tableResizingPluginKey } from './pm-plugins/table-resizing';
30
+ import { getStaticTableScalingPercent } from './pm-plugins/table-resizing/utils/misc';
30
31
  import { getNewResizeStateFromSelectedColumns } from './pm-plugins/table-resizing/utils/resize-state';
31
32
  import { pluginKey as tableWidthPluginKey } from './pm-plugins/table-width';
32
33
  import { canMergeCells } from './transforms';
@@ -86,6 +87,7 @@ export var getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _
86
87
  type: optionItem
87
88
  }
88
89
  }];
90
+ var tableOptionsDropdownWidth = isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined;
89
91
  if (state.isDragAndDropEnabled) {
90
92
  return {
91
93
  id: 'editor.table.tableOptions',
@@ -97,7 +99,7 @@ export var getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _
97
99
  return option.hidden;
98
100
  }),
99
101
  options: options,
100
- dropdownWidth: isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined
102
+ dropdownWidth: tableOptionsDropdownWidth
101
103
  };
102
104
  } else {
103
105
  return {
@@ -109,7 +111,7 @@ export var getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _
109
111
  return option.hidden;
110
112
  }),
111
113
  options: options,
112
- dropdownWidth: isTableScalingWithFixedColumnWidthsOptionShown ? 192 : undefined
114
+ dropdownWidth: tableOptionsDropdownWidth
113
115
  };
114
116
  }
115
117
  };
@@ -121,7 +123,9 @@ export var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(ed
121
123
  var _pluginState$pluginCo, _pluginState$pluginCo2;
122
124
  var formatMessage = _ref2.formatMessage;
123
125
  var isTableScalingEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
124
- var shouldUseIncreasedScalingPercent = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
126
+ var isCellBackgroundDuplicated = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
127
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
128
+ var shouldUseIncreasedScalingPercent = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
125
129
  var top = initialSelectionRect.top,
126
130
  bottom = initialSelectionRect.bottom,
127
131
  right = initialSelectionRect.right,
@@ -136,7 +140,7 @@ export var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(ed
136
140
  var selectionRect = getClosestSelectionRect(state);
137
141
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
138
142
  if (index) {
139
- insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
143
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
140
144
  }
141
145
  return true;
142
146
  },
@@ -172,7 +176,7 @@ export var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(ed
172
176
  onClick: function onClick(state, dispatch, view) {
173
177
  var selectionRect = getClosestSelectionRect(state);
174
178
  if (selectionRect) {
175
- deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(INPUT_METHOD.FLOATING_TB, selectionRect)(state, dispatch, view);
179
+ deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(INPUT_METHOD.FLOATING_TB, selectionRect)(state, dispatch, view);
176
180
  }
177
181
  return true;
178
182
  },
@@ -215,7 +219,7 @@ export var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(ed
215
219
  }];
216
220
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
217
221
  var _newResizeStateWithAn;
218
- var newResizeStateWithAnalytics = editorView ? getNewResizeStateFromSelectedColumns(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled) : undefined;
222
+ var newResizeStateWithAnalytics = editorView ? getNewResizeStateFromSelectedColumns(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled) : undefined;
219
223
  var wouldChange = (_newResizeStateWithAn = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn !== void 0 ? _newResizeStateWithAn : false;
220
224
  var distributeColumnWidths = function distributeColumnWidths(state, dispatch) {
221
225
  if (newResizeStateWithAnalytics) {
@@ -323,7 +327,7 @@ export var getClosestSelectionOrTableRect = function getClosestSelectionOrTableR
323
327
  return isSelectionType(selection, 'cell') ? getSelectionRect(selection) : tableRect;
324
328
  };
325
329
  export var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editorAnalyticsAPI, getEditorFeatureFlags, getEditorView, options) {
326
- var isTableScalingWithFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
330
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
327
331
  var shouldUseIncreasedScalingPercent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
328
332
  return function (config) {
329
333
  return function (state, intl) {
@@ -331,21 +335,33 @@ export var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth,
331
335
  var pluginState = getPluginState(state);
332
336
  var resizeState = tableResizingPluginKey.getState(state);
333
337
  var tableWidthState = tableWidthPluginKey.getState(state);
338
+ var isTableScalingEnabled = (options === null || options === void 0 ? void 0 : options.isTableScalingEnabled) || false;
334
339
 
335
340
  // We don't want to show floating toolbar while resizing the table
336
341
  var isWidthResizing = tableWidthState === null || tableWidthState === void 0 ? void 0 : tableWidthState.resizing;
337
342
  if (tableObject && pluginState.editorHasFocus && !isWidthResizing) {
338
343
  var nodeType = state.schema.nodes.table;
339
344
  var isNested = pluginState.tablePos && isTableNested(state, pluginState.tablePos);
340
- var isTableScalingWithFixedColumnWidthsOptionShown = isTableScalingWithFixedColumnWidthsOptionEnabled && !isNested;
345
+ var isTableScalingWithFixedColumnWidthsOptionShown = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled && !isNested;
341
346
  var areTableColumWidthsFixed = tableObject.node.attrs.displayMode === 'fixed';
347
+ var editorView = getEditorView();
348
+ var getDomRef = function getDomRef(editorView) {
349
+ var element;
350
+ var domAtPos = editorView.domAtPos.bind(editorView);
351
+ var parent = findParentDomRefOfType(nodeType, domAtPos)(state.selection);
352
+ if (parent) {
353
+ var tableRef = parent.querySelector('table') || undefined;
354
+ if (tableRef) {
355
+ element = closestElement(tableRef, ".".concat(TableCssClassName.TABLE_NODE_WRAPPER)) || undefined;
356
+ }
357
+ }
358
+ return element;
359
+ };
342
360
  var menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI, isTableScalingWithFixedColumnWidthsOptionShown, areTableColumWidthsFixed);
343
- var alignmentMenu;
344
- alignmentMenu = options !== null && options !== void 0 && options.isTableAlignmentEnabled && !isNested ? getAlignmentOptionsConfig(state, intl, editorAnalyticsAPI, getEditorContainerWidth) : [];
345
- var cellItems;
346
- cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, options === null || options === void 0 ? void 0 : options.isTableScalingEnabled, shouldUseIncreasedScalingPercent);
347
- var columnSettingsItems;
348
- columnSettingsItems = pluginState.isDragAndDropEnabled ? getColumnSettingItems(state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, options === null || options === void 0 ? void 0 : options.isTableScalingEnabled) : [];
361
+ var alignmentMenu = options !== null && options !== void 0 && options.isTableAlignmentEnabled && !isNested ? getAlignmentOptionsConfig(state, intl, editorAnalyticsAPI, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) : [];
362
+ var isCellBackgroundDuplicated = getEditorFeatureFlags().tableDuplicateCellColouring || false;
363
+ var cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, editorView, intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent);
364
+ var columnSettingsItems = pluginState.isDragAndDropEnabled ? getColumnSettingItems(state, editorView, intl, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled) : [];
349
365
  var colorPicker = getColorPicker(state, menu, intl, editorAnalyticsAPI, getEditorView);
350
366
 
351
367
  // Check if we need to show confirm dialog for delete button
@@ -372,18 +388,6 @@ export var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth,
372
388
  };
373
389
  };
374
390
  }
375
- var getDomRef = function getDomRef(editorView) {
376
- var element;
377
- var domAtPos = editorView.domAtPos.bind(editorView);
378
- var parent = findParentDomRefOfType(nodeType, domAtPos)(state.selection);
379
- if (parent) {
380
- var tableRef = parent.querySelector('table') || undefined;
381
- if (tableRef) {
382
- element = closestElement(tableRef, ".".concat(TableCssClassName.TABLE_NODE_WRAPPER)) || undefined;
383
- }
384
- }
385
- return element;
386
- };
387
391
  var _getEditorFeatureFlag = getEditorFeatureFlags(),
388
392
  stickyScrollbar = _getEditorFeatureFlag.stickyScrollbar;
389
393
  return {
@@ -446,24 +450,27 @@ var separator = function separator(hidden) {
446
450
  var getCellItems = function getCellItems(state, view, _ref3, getEditorContainerWidth, editorAnalyticsAPI) {
447
451
  var formatMessage = _ref3.formatMessage;
448
452
  var isTableScalingEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
449
- var shouldUseIncreasedScalingPercent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
453
+ var isCellBackgroundDuplicated = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
454
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
455
+ var shouldUseIncreasedScalingPercent = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
450
456
  var initialSelectionRect = getClosestSelectionRect(state);
451
457
  if (initialSelectionRect) {
452
458
  var cellOptions = getToolbarCellOptionsConfig(state, view, initialSelectionRect, {
453
459
  formatMessage: formatMessage
454
- }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
460
+ }, getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isCellBackgroundDuplicated, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent);
455
461
  return [cellOptions, separator(cellOptions.hidden)];
456
462
  }
457
463
  return [];
458
464
  };
459
465
  export var getDistributeConfig = function getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI) {
460
466
  var isTableScalingEnabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
467
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
461
468
  return function (state, dispatch, editorView) {
462
469
  var selectionOrTableRect = getClosestSelectionOrTableRect(state);
463
470
  if (!editorView || !selectionOrTableRect) {
464
471
  return false;
465
472
  }
466
- var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
473
+ var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled);
467
474
  if (newResizeStateWithAnalytics) {
468
475
  distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
469
476
  return true;
@@ -478,12 +485,13 @@ var getColumnSettingItems = function getColumnSettingItems(editorState, editorVi
478
485
  var _newResizeStateWithAn2, _pluginState$pluginCo3;
479
486
  var formatMessage = _ref4.formatMessage;
480
487
  var isTableScalingEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
488
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
481
489
  var pluginState = getPluginState(editorState);
482
490
  var selectionOrTableRect = getClosestSelectionOrTableRect(editorState);
483
491
  if (!selectionOrTableRect || !editorView) {
484
492
  return [];
485
493
  }
486
- var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
494
+ var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionOrTableRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled);
487
495
  var wouldChange = (_newResizeStateWithAn2 = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn2 !== void 0 ? _newResizeStateWithAn2 : false;
488
496
  var items = [];
489
497
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo3 = pluginState.pluginConfig) !== null && _pluginState$pluginCo3 !== void 0 && _pluginState$pluginCo3.allowDistributeColumns && pluginState.isDragAndDropEnabled) {
@@ -493,7 +501,7 @@ var getColumnSettingItems = function getColumnSettingItems(editorState, editorVi
493
501
  title: formatMessage(messages.distributeColumns),
494
502
  icon: DistributeColumnIcon,
495
503
  onClick: function onClick(state, dispatch, view) {
496
- return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled)(state, dispatch, view);
504
+ return getDistributeConfig(getEditorContainerWidth, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled)(state, dispatch, view);
497
505
  },
498
506
  disabled: !wouldChange
499
507
  });
@@ -566,7 +574,7 @@ var highlightColumnsHandler = function highlightColumnsHandler(state, dispatch)
566
574
  }
567
575
  return false;
568
576
  };
569
- export var getAlignmentOptionsConfig = function getAlignmentOptionsConfig(editorState, _ref6, editorAnalyticsAPI, getEditorContainerWidth) {
577
+ export var getAlignmentOptionsConfig = function getAlignmentOptionsConfig(editorState, _ref6, editorAnalyticsAPI, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) {
570
578
  var formatMessage = _ref6.formatMessage;
571
579
  var tableObject = findTable(editorState.selection);
572
580
  if (!tableObject) {
@@ -599,7 +607,7 @@ export var getAlignmentOptionsConfig = function getAlignmentOptionsConfig(editor
599
607
  title: formatMessage(layoutToMessages[value]),
600
608
  selected: normaliseAlignment(currentLayout) === value,
601
609
  onClick: setTableAlignmentWithAnalytics(editorAnalyticsAPI)(value, currentLayout, INPUT_METHOD.FLOATING_TB, CHANGE_ALIGNMENT_REASON.TOOLBAR_OPTION_CHANGED)
602
- }, isLayoutOptionDisabled(tableObject.node, getEditorContainerWidth) && {
610
+ }, isLayoutOptionDisabled(tableObject.node, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) && {
603
611
  disabled: value !== 'center'
604
612
  });
605
613
  });
@@ -629,10 +637,19 @@ export var getSelectedAlignmentIcon = function getSelectedAlignmentIcon(alignmen
629
637
  return icon.value === normaliseAlignment(selectedAlignment);
630
638
  });
631
639
  };
632
- export var isLayoutOptionDisabled = function isLayoutOptionDisabled(selectedNode, getEditorContainerWidth) {
633
- var lineLength = getEditorContainerWidth().lineLength;
634
- var tableWidth = getTableContainerWidth(selectedNode);
635
- if (selectedNode && lineLength && tableWidth > lineLength) {
640
+ export var isLayoutOptionDisabled = function isLayoutOptionDisabled(selectedNode, getEditorContainerWidth, getDomRef, editorView, shouldUseIncreasedScalingPercent) {
641
+ var _getEditorContainerWi = getEditorContainerWidth(),
642
+ lineLength = _getEditorContainerWi.lineLength;
643
+ var tableContainerWidth = getTableContainerWidth(selectedNode);
644
+
645
+ // table may be scaled, use the scale percent to calculate the table width
646
+ if (editorView) {
647
+ var tableWrapper = getDomRef(editorView);
648
+ var tableWrapperWidth = (tableWrapper === null || tableWrapper === void 0 ? void 0 : tableWrapper.clientWidth) || tableContainerWidth;
649
+ var scalePercent = getStaticTableScalingPercent(selectedNode, tableWrapperWidth, shouldUseIncreasedScalingPercent);
650
+ tableContainerWidth = tableContainerWidth * scalePercent;
651
+ }
652
+ if (selectedNode && lineLength && tableContainerWidth > lineLength) {
636
653
  return true;
637
654
  }
638
655
  return false;
@@ -92,7 +92,8 @@ export var updateColumnWidths = function updateColumnWidths(resizeState, table,
92
92
  */
93
93
  export var rescaleColumns = function rescaleColumns() {
94
94
  var isTableScalingEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
95
- var shouldUseIncreasedScalingPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
95
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
96
+ var shouldUseIncreasedScalingPercent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
96
97
  return function (table, view) {
97
98
  return function (tr) {
98
99
  if (!view) {
@@ -114,7 +115,7 @@ export var rescaleColumns = function rescaleColumns() {
114
115
  };
115
116
  var tableDepth = view.state.doc.resolve(table.pos).depth;
116
117
  var shouldScale = isTableScalingEnabled && tableDepth === 0;
117
- if (shouldScale && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button')) {
118
+ if (shouldScale && isTableFixedColumnWidthsOptionEnabled) {
118
119
  shouldScale = newTable.attrs.displayMode !== 'fixed';
119
120
  }
120
121
  if (shouldScale) {
@@ -181,7 +182,6 @@ export var rescaleColumns = function rescaleColumns() {
181
182
  isTableScalingEnabled: shouldScale,
182
183
  shouldUseIncreasedScalingPercent: shouldUseIncreasedScalingPercent
183
184
  });
184
-
185
185
  // Two scenarios that require scaling:
186
186
  // 1. If the new table width will result in the table going into overflow
187
187
  // we resize the cells to avoid it (e.g. adding a column)
@@ -206,7 +206,8 @@ function fixRowSpans(table) {
206
206
  }
207
207
  export var deleteColumns = function deleteColumns(rect, allowCustomStep, view) {
208
208
  var isTableScalingEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
209
- var shouldUseIncreasedScalingPercent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
209
+ var isTableFixedColumnWidthsOptionEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
210
+ var shouldUseIncreasedScalingPercent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
210
211
  return function (tr) {
211
212
  var updatedTr = tr;
212
213
  updatedTr.setMeta(META_KEYS.OVERFLOW_TRIGGER, {
@@ -219,7 +220,7 @@ export var deleteColumns = function deleteColumns(rect, allowCustomStep, view) {
219
220
  }
220
221
  var table = findTable(updatedTr.selection);
221
222
  if (table) {
222
- updatedTr = rescaleColumns(isTableScalingEnabled, shouldUseIncreasedScalingPercent)(table, view)(updatedTr);
223
+ updatedTr = rescaleColumns(isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent)(table, view)(updatedTr);
223
224
  }
224
225
  return updatedTr;
225
226
  };
@@ -274,7 +274,8 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
274
274
  selectionRect = _this$props8.selectionRect,
275
275
  formatMessage = _this$props8.intl.formatMessage,
276
276
  editorView = _this$props8.editorView,
277
- getEditorContainerWidth = _this$props8.getEditorContainerWidth;
277
+ getEditorContainerWidth = _this$props8.getEditorContainerWidth,
278
+ getEditorFeatureFlags = _this$props8.getEditorFeatureFlags;
278
279
  var _getPluginState8 = getPluginState(editorView.state),
279
280
  isDragAndDropEnabled = _getPluginState8.isDragAndDropEnabled,
280
281
  allowDistributeColumns = _getPluginState8.pluginConfig.allowDistributeColumns;
@@ -283,7 +284,10 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
283
284
  var _getPluginState9 = getPluginState(editorView.state),
284
285
  _getPluginState9$isTa = _getPluginState9.isTableScalingEnabled,
285
286
  isTableScalingEnabled = _getPluginState9$isTa === void 0 ? false : _getPluginState9$isTa;
286
- var newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
287
+ var _ref = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
288
+ _ref$tableWithFixedCo = _ref.tableWithFixedColumnWidthsOption,
289
+ tableWithFixedColumnWidthsOption = _ref$tableWithFixedCo === void 0 ? false : _ref$tableWithFixedCo;
290
+ var newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, editorView.state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, tableWithFixedColumnWidthsOption);
287
291
  var wouldChange = (_newResizeState$chang = newResizeState === null || newResizeState === void 0 ? void 0 : newResizeState.changed) !== null && _newResizeState$chang !== void 0 ? _newResizeState$chang : false;
288
292
  return {
289
293
  content: formatMessage(messages.distributeColumns),
@@ -365,8 +369,8 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
365
369
  items[1].items.push(deleteRowItem);
366
370
  return items;
367
371
  });
368
- _defineProperty(_assertThisInitialized(_this), "onMenuItemActivated", function (_ref) {
369
- var item = _ref.item;
372
+ _defineProperty(_assertThisInitialized(_this), "onMenuItemActivated", function (_ref2) {
373
+ var item = _ref2.item;
370
374
  var _this$props10 = _this.props,
371
375
  editorView = _this$props10.editorView,
372
376
  selectionRect = _this$props10.selectionRect,
@@ -380,10 +384,12 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
380
384
  targetCellPosition = _getPluginState11.targetCellPosition,
381
385
  _getPluginState11$isT = _getPluginState11.isTableScalingEnabled,
382
386
  isTableScalingEnabled = _getPluginState11$isT === void 0 ? false : _getPluginState11$isT;
383
- var _ref2 = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
384
- _ref2$tableDuplicateC = _ref2.tableDuplicateCellColouring,
385
- tableDuplicateCellColouring = _ref2$tableDuplicateC === void 0 ? false : _ref2$tableDuplicateC;
386
- var shouldUseIncreasedScalingPercent = isTableScalingEnabled && getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
387
+ var _ref3 = getEditorFeatureFlags ? getEditorFeatureFlags() : {},
388
+ _ref3$tableDuplicateC = _ref3.tableDuplicateCellColouring,
389
+ tableDuplicateCellColouring = _ref3$tableDuplicateC === void 0 ? false : _ref3$tableDuplicateC,
390
+ _ref3$tableWithFixedC = _ref3.tableWithFixedColumnWidthsOption,
391
+ tableWithFixedColumnWidthsOption = _ref3$tableWithFixedC === void 0 ? false : _ref3$tableWithFixedC;
392
+ var shouldUseIncreasedScalingPercent = isTableScalingEnabled && tableWithFixedColumnWidthsOption && getBooleanFF('platform.editor.table.use-increased-scaling-percent');
387
393
  switch (item.value.name) {
388
394
  case 'sort_column_desc':
389
395
  sortColumnWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, selectionRect.left, SortOrder.DESC)(state, dispatch);
@@ -402,7 +408,7 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
402
408
  _this.toggleOpen();
403
409
  break;
404
410
  case 'distribute_columns':
405
- var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
411
+ var newResizeStateWithAnalytics = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled, tableWithFixedColumnWidthsOption);
406
412
  if (newResizeStateWithAnalytics) {
407
413
  distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, newResizeStateWithAnalytics)(state, dispatch);
408
414
  _this.toggleOpen();
@@ -413,7 +419,7 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
413
419
  _this.toggleOpen();
414
420
  break;
415
421
  case 'insert_column':
416
- insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, tableDuplicateCellColouring, shouldUseIncreasedScalingPercent)(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
422
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, tableDuplicateCellColouring, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent)(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
417
423
  _this.toggleOpen();
418
424
  break;
419
425
  case 'insert_row':
@@ -424,7 +430,7 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
424
430
  _this.toggleOpen();
425
431
  break;
426
432
  case 'delete_column':
427
- deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, shouldUseIncreasedScalingPercent)(INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
433
+ deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled, tableWithFixedColumnWidthsOption, shouldUseIncreasedScalingPercent)(INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
428
434
  _this.toggleOpen();
429
435
  break;
430
436
  case 'delete_row':
@@ -457,8 +463,8 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
457
463
  isSubmenuOpen: false
458
464
  });
459
465
  });
460
- _defineProperty(_assertThisInitialized(_this), "handleItemMouseEnter", function (_ref3) {
461
- var item = _ref3.item;
466
+ _defineProperty(_assertThisInitialized(_this), "handleItemMouseEnter", function (_ref4) {
467
+ var item = _ref4.item;
462
468
  var _this$props12 = _this.props,
463
469
  _this$props12$editorV = _this$props12.editorView,
464
470
  state = _this$props12$editorV.state,
@@ -481,8 +487,8 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
481
487
  hoverMergedCells()(state, dispatch);
482
488
  }
483
489
  });
484
- _defineProperty(_assertThisInitialized(_this), "handleItemMouseLeave", function (_ref4) {
485
- var item = _ref4.item;
490
+ _defineProperty(_assertThisInitialized(_this), "handleItemMouseLeave", function (_ref5) {
491
+ var item = _ref5.item;
486
492
  var _this$props$editorVie2 = _this.props.editorView,
487
493
  state = _this$props$editorVie2.state,
488
494
  dispatch = _this$props$editorVie2.dispatch;