@atlaskit/editor-plugin-table 22.4.7 → 22.4.9

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 (124) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/pm-plugins/commands/split-cell.js +18 -1
  3. package/dist/cjs/pm-plugins/transforms/merge.js +5 -2
  4. package/dist/cjs/ui/FloatingContextualButton/index.js +5 -0
  5. package/dist/cjs/ui/FloatingContextualMenu/CellMenuPopup.js +104 -0
  6. package/dist/cjs/ui/FloatingContextualMenu/index.js +13 -2
  7. package/dist/cjs/ui/FloatingDragMenu/index.js +7 -2
  8. package/dist/cjs/ui/TableMenu/cell/getCellMenuComponents.js +70 -0
  9. package/dist/cjs/ui/TableMenu/cell/items/MergeCellsItem.js +33 -0
  10. package/dist/cjs/ui/TableMenu/cell/items/SplitCellItem.js +33 -0
  11. package/dist/cjs/ui/TableMenu/cell/keys.js +40 -0
  12. package/dist/cjs/ui/TableMenu/column/getColumnMenuComponents.js +4 -11
  13. package/dist/cjs/ui/TableMenu/column/items/ColumnBackgroundSection.js +25 -0
  14. package/dist/cjs/ui/TableMenu/column/items/ColumnToggleSection.js +24 -0
  15. package/dist/cjs/ui/TableMenu/column/items/DistributeColumnsItem.js +10 -0
  16. package/dist/cjs/ui/TableMenu/column/items/HeaderColumnToggleItem.js +17 -1
  17. package/dist/cjs/ui/TableMenu/column/items/MoveColumnRightItem.js +2 -6
  18. package/dist/cjs/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
  19. package/dist/cjs/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
  20. package/dist/cjs/ui/TableMenu/row/getRowMenuComponents.js +0 -7
  21. package/dist/cjs/ui/TableMenu/row/items/HeaderRowToggleItem.js +9 -0
  22. package/dist/cjs/ui/TableMenu/row/items/MoveRowDownItem.js +10 -0
  23. package/dist/cjs/ui/TableMenu/row/items/MoveRowUpItem.js +10 -0
  24. package/dist/cjs/ui/TableMenu/shared/TableMenu.js +53 -3
  25. package/dist/cjs/ui/TableMenu/shared/TableMenuContext.js +13 -0
  26. package/dist/cjs/ui/TableMenu/shared/consts.js +3 -2
  27. package/dist/cjs/ui/TableMenu/shared/getSharedItems.js +28 -19
  28. package/dist/cjs/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
  29. package/dist/cjs/ui/event-handlers.js +6 -1
  30. package/dist/es2019/pm-plugins/commands/split-cell.js +17 -1
  31. package/dist/es2019/pm-plugins/transforms/merge.js +4 -4
  32. package/dist/es2019/ui/FloatingContextualButton/index.js +5 -0
  33. package/dist/es2019/ui/FloatingContextualMenu/CellMenuPopup.js +100 -0
  34. package/dist/es2019/ui/FloatingContextualMenu/index.js +13 -3
  35. package/dist/es2019/ui/FloatingDragMenu/index.js +7 -2
  36. package/dist/es2019/ui/TableMenu/cell/getCellMenuComponents.js +53 -0
  37. package/dist/es2019/ui/TableMenu/cell/items/MergeCellsItem.js +26 -0
  38. package/dist/es2019/ui/TableMenu/cell/items/SplitCellItem.js +26 -0
  39. package/dist/es2019/ui/TableMenu/cell/keys.js +42 -0
  40. package/dist/es2019/ui/TableMenu/column/getColumnMenuComponents.js +4 -12
  41. package/dist/es2019/ui/TableMenu/column/items/ColumnBackgroundSection.js +20 -0
  42. package/dist/es2019/ui/TableMenu/column/items/ColumnToggleSection.js +19 -0
  43. package/dist/es2019/ui/TableMenu/column/items/DistributeColumnsItem.js +11 -0
  44. package/dist/es2019/ui/TableMenu/column/items/HeaderColumnToggleItem.js +15 -0
  45. package/dist/es2019/ui/TableMenu/column/items/MoveColumnRightItem.js +3 -5
  46. package/dist/es2019/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
  47. package/dist/es2019/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
  48. package/dist/es2019/ui/TableMenu/row/getRowMenuComponents.js +0 -8
  49. package/dist/es2019/ui/TableMenu/row/items/HeaderRowToggleItem.js +8 -0
  50. package/dist/es2019/ui/TableMenu/row/items/MoveRowDownItem.js +8 -0
  51. package/dist/es2019/ui/TableMenu/row/items/MoveRowUpItem.js +8 -0
  52. package/dist/es2019/ui/TableMenu/shared/TableMenu.js +51 -3
  53. package/dist/es2019/ui/TableMenu/shared/TableMenuContext.js +4 -0
  54. package/dist/es2019/ui/TableMenu/shared/consts.js +2 -1
  55. package/dist/es2019/ui/TableMenu/shared/getSharedItems.js +9 -0
  56. package/dist/es2019/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
  57. package/dist/es2019/ui/event-handlers.js +4 -1
  58. package/dist/esm/pm-plugins/commands/split-cell.js +17 -1
  59. package/dist/esm/pm-plugins/transforms/merge.js +4 -2
  60. package/dist/esm/ui/FloatingContextualButton/index.js +5 -0
  61. package/dist/esm/ui/FloatingContextualMenu/CellMenuPopup.js +96 -0
  62. package/dist/esm/ui/FloatingContextualMenu/index.js +13 -3
  63. package/dist/esm/ui/FloatingDragMenu/index.js +7 -2
  64. package/dist/esm/ui/TableMenu/cell/getCellMenuComponents.js +63 -0
  65. package/dist/esm/ui/TableMenu/cell/items/MergeCellsItem.js +27 -0
  66. package/dist/esm/ui/TableMenu/cell/items/SplitCellItem.js +27 -0
  67. package/dist/esm/ui/TableMenu/cell/keys.js +34 -0
  68. package/dist/esm/ui/TableMenu/column/getColumnMenuComponents.js +4 -12
  69. package/dist/esm/ui/TableMenu/column/items/ColumnBackgroundSection.js +19 -0
  70. package/dist/esm/ui/TableMenu/column/items/ColumnToggleSection.js +18 -0
  71. package/dist/esm/ui/TableMenu/column/items/DistributeColumnsItem.js +11 -0
  72. package/dist/esm/ui/TableMenu/column/items/HeaderColumnToggleItem.js +17 -0
  73. package/dist/esm/ui/TableMenu/column/items/MoveColumnRightItem.js +3 -7
  74. package/dist/esm/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
  75. package/dist/esm/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
  76. package/dist/esm/ui/TableMenu/row/getRowMenuComponents.js +0 -8
  77. package/dist/esm/ui/TableMenu/row/items/HeaderRowToggleItem.js +10 -0
  78. package/dist/esm/ui/TableMenu/row/items/MoveRowDownItem.js +10 -0
  79. package/dist/esm/ui/TableMenu/row/items/MoveRowUpItem.js +10 -0
  80. package/dist/esm/ui/TableMenu/shared/TableMenu.js +52 -3
  81. package/dist/esm/ui/TableMenu/shared/TableMenuContext.js +6 -0
  82. package/dist/esm/ui/TableMenu/shared/consts.js +2 -1
  83. package/dist/esm/ui/TableMenu/shared/getSharedItems.js +9 -0
  84. package/dist/esm/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
  85. package/dist/esm/ui/event-handlers.js +6 -1
  86. package/dist/types/pm-plugins/commands/split-cell.d.ts +2 -0
  87. package/dist/types/pm-plugins/transforms/merge.d.ts +2 -0
  88. package/dist/types/ui/FloatingContextualMenu/CellMenuPopup.d.ts +12 -0
  89. package/dist/types/ui/TableMenu/cell/getCellMenuComponents.d.ts +2 -0
  90. package/dist/types/ui/TableMenu/cell/items/MergeCellsItem.d.ts +2 -0
  91. package/dist/types/ui/TableMenu/cell/items/SplitCellItem.d.ts +2 -0
  92. package/dist/types/ui/TableMenu/cell/keys.d.ts +9 -0
  93. package/dist/types/ui/TableMenu/column/getColumnMenuComponents.d.ts +0 -7
  94. package/dist/types/ui/TableMenu/column/items/ColumnBackgroundSection.d.ts +10 -0
  95. package/dist/types/ui/TableMenu/column/items/ColumnToggleSection.d.ts +9 -0
  96. package/dist/types/ui/TableMenu/column/items/DistributeColumnsItem.d.ts +1 -1
  97. package/dist/types/ui/TableMenu/column/items/HeaderColumnToggleItem.d.ts +11 -1
  98. package/dist/types/ui/TableMenu/row/getRowMenuComponents.d.ts +0 -7
  99. package/dist/types/ui/TableMenu/row/items/HeaderRowToggleItem.d.ts +1 -1
  100. package/dist/types/ui/TableMenu/row/items/MoveRowDownItem.d.ts +1 -1
  101. package/dist/types/ui/TableMenu/row/items/MoveRowUpItem.d.ts +1 -1
  102. package/dist/types/ui/TableMenu/shared/TableMenu.d.ts +3 -1
  103. package/dist/types/ui/TableMenu/shared/TableMenuContext.d.ts +14 -0
  104. package/dist/types/ui/TableMenu/shared/consts.d.ts +1 -0
  105. package/dist/types-ts4.5/pm-plugins/commands/split-cell.d.ts +2 -0
  106. package/dist/types-ts4.5/pm-plugins/transforms/merge.d.ts +2 -0
  107. package/dist/types-ts4.5/ui/FloatingContextualMenu/CellMenuPopup.d.ts +12 -0
  108. package/dist/types-ts4.5/ui/TableMenu/cell/getCellMenuComponents.d.ts +2 -0
  109. package/dist/types-ts4.5/ui/TableMenu/cell/items/MergeCellsItem.d.ts +2 -0
  110. package/dist/types-ts4.5/ui/TableMenu/cell/items/SplitCellItem.d.ts +2 -0
  111. package/dist/types-ts4.5/ui/TableMenu/cell/keys.d.ts +9 -0
  112. package/dist/types-ts4.5/ui/TableMenu/column/getColumnMenuComponents.d.ts +0 -7
  113. package/dist/types-ts4.5/ui/TableMenu/column/items/ColumnBackgroundSection.d.ts +10 -0
  114. package/dist/types-ts4.5/ui/TableMenu/column/items/ColumnToggleSection.d.ts +9 -0
  115. package/dist/types-ts4.5/ui/TableMenu/column/items/DistributeColumnsItem.d.ts +1 -1
  116. package/dist/types-ts4.5/ui/TableMenu/column/items/HeaderColumnToggleItem.d.ts +11 -1
  117. package/dist/types-ts4.5/ui/TableMenu/row/getRowMenuComponents.d.ts +0 -7
  118. package/dist/types-ts4.5/ui/TableMenu/row/items/HeaderRowToggleItem.d.ts +1 -1
  119. package/dist/types-ts4.5/ui/TableMenu/row/items/MoveRowDownItem.d.ts +1 -1
  120. package/dist/types-ts4.5/ui/TableMenu/row/items/MoveRowUpItem.d.ts +1 -1
  121. package/dist/types-ts4.5/ui/TableMenu/shared/TableMenu.d.ts +3 -1
  122. package/dist/types-ts4.5/ui/TableMenu/shared/TableMenuContext.d.ts +14 -0
  123. package/dist/types-ts4.5/ui/TableMenu/shared/consts.d.ts +1 -0
  124. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 22.4.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0091cbd21d8f7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0091cbd21d8f7) -
8
+ [ux] Add conditional visibility to row, column, and cell handle menu items behind the
9
+ `platform_editor_table_menu_updates` experiment, so menu surfaces only show options that apply to
10
+ the current selection.
11
+ - Updated dependencies
12
+
13
+ ## 22.4.8
14
+
15
+ ### Patch Changes
16
+
17
+ - [`98ee7ca379f42`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/98ee7ca379f42) -
18
+ Add experiment-gated table menu updates for cell menu
19
+ - Updated dependencies
20
+
3
21
  ## 22.4.7
4
22
 
5
23
  ### Patch Changes
@@ -3,9 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.splitCell = void 0;
6
+ exports.splitCell = exports.canSplitCellSelection = void 0;
7
+ var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
7
8
  var _utils = require("@atlaskit/editor-tables/utils");
8
9
  var _pluginFactory = require("../plugin-factory");
10
+ var canSplitCellSelection = exports.canSplitCellSelection = function canSplitCellSelection(selection) {
11
+ var cellNode;
12
+ if (!(selection instanceof _cellSelection.CellSelection)) {
13
+ cellNode = (0, _utils.cellWrapping)(selection.$from);
14
+ if (!cellNode) {
15
+ return false;
16
+ }
17
+ } else {
18
+ if (selection.$anchorCell.pos !== selection.$headCell.pos) {
19
+ return false;
20
+ }
21
+ cellNode = selection.$anchorCell.nodeAfter;
22
+ }
23
+ return Boolean(cellNode && (cellNode.attrs.colspan !== 1 || cellNode.attrs.rowspan !== 1));
24
+ };
25
+
9
26
  /**
10
27
  * We need to split cell keeping the right type of cell given current table configuration.
11
28
  * We are using editor-tables splitCellWithType that allows you to choose what cell type should be.
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.canMergeCellSelection = canMergeCellSelection;
7
8
  exports.canMergeCells = canMergeCells;
8
9
  exports.mergeCells = mergeCells;
9
10
  exports.mergeEmptyColumns = mergeEmptyColumns;
@@ -121,8 +122,7 @@ function mergeCells(tr) {
121
122
  }
122
123
  return tr.replaceWith(table.pos, table.pos + table.node.nodeSize, fixedTable).setSelection(_state.Selection.near(tr.doc.resolve((mergedCellPos || 0) + table.start)));
123
124
  }
124
- function canMergeCells(tr) {
125
- var selection = tr.selection;
125
+ function canMergeCellSelection(selection) {
126
126
  if (!(selection instanceof _cellSelection.CellSelection) || selection.$anchorCell.pos === selection.$headCell.pos) {
127
127
  return false;
128
128
  }
@@ -137,6 +137,9 @@ function canMergeCells(tr) {
137
137
  }
138
138
  return true;
139
139
  }
140
+ function canMergeCells(tr) {
141
+ return canMergeCellSelection(tr.selection);
142
+ }
140
143
  function isEmptyCell(cell) {
141
144
  var content = cell.content;
142
145
  return content.childCount === 1 && content.firstChild && content.firstChild.isTextblock && content.firstChild.childCount === 0;
@@ -57,6 +57,11 @@ var FloatingContextualButtonInner = /*#__PURE__*/_react.default.memo(function (p
57
57
  var handleClick = function handleClick() {
58
58
  var state = editorView.state,
59
59
  dispatch = editorView.dispatch;
60
+ if ((0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true)) {
61
+ (0, _commands.toggleContextualMenu)()(state, dispatch);
62
+ return;
63
+ }
64
+
60
65
  // Clicking outside the dropdown handles toggling the menu closed
61
66
  // (otherwise these two toggles combat each other).
62
67
  // In the event a user clicks the chevron button again
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CellMenuPopup = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _bindEventListener = require("bind-event-listener");
10
+ var _hooks = require("@atlaskit/editor-common/hooks");
11
+ var _userIntent = require("@atlaskit/editor-common/user-intent");
12
+ var _commands = require("../../pm-plugins/commands");
13
+ var _types = require("../../types");
14
+ var _keys = require("../TableMenu/cell/keys");
15
+ var _TableMenu = require("../TableMenu/shared/TableMenu");
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
+ var CellMenuPopup = exports.CellMenuPopup = function CellMenuPopup(_ref) {
18
+ var api = _ref.api,
19
+ editorView = _ref.editorView,
20
+ isCellMenuOpenByKeyboard = _ref.isCellMenuOpenByKeyboard,
21
+ isOpen = _ref.isOpen,
22
+ targetCellRef = _ref.targetCellRef;
23
+ var tableMenuRef = (0, _react.useRef)(null);
24
+ var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['userIntent'], function (states) {
25
+ var _states$userIntentSta;
26
+ return {
27
+ currentUserIntent: (_states$userIntentSta = states.userIntentState) === null || _states$userIntentSta === void 0 ? void 0 : _states$userIntentSta.currentUserIntent
28
+ };
29
+ }),
30
+ currentUserIntent = _useSharedPluginState.currentUserIntent;
31
+ var closeCellMenu = (0, _react.useCallback)(function () {
32
+ var state = editorView.state,
33
+ dispatch = editorView.dispatch,
34
+ dom = editorView.dom;
35
+ (0, _commands.toggleContextualMenu)()(state, dispatch);
36
+ if (isCellMenuOpenByKeyboard) {
37
+ (0, _commands.setFocusToCellMenu)(false)(state, dispatch);
38
+ dom.focus();
39
+ }
40
+ }, [editorView, isCellMenuOpenByKeyboard]);
41
+ (0, _react.useEffect)(function () {
42
+ if (!isOpen || currentUserIntent !== 'tableDragMenuPopupOpen') {
43
+ return;
44
+ }
45
+ closeCellMenu();
46
+ }, [closeCellMenu, currentUserIntent, isOpen]);
47
+ (0, _react.useEffect)(function () {
48
+ if (!isOpen) {
49
+ return;
50
+ }
51
+ if (!(targetCellRef instanceof HTMLElement)) {
52
+ return;
53
+ }
54
+ var ownerDocument = targetCellRef.ownerDocument;
55
+ var handlePointerDown = function handlePointerDown(event) {
56
+ var _tableMenuRef$current;
57
+ var target = event.target;
58
+ if (!(target instanceof Node)) {
59
+ return;
60
+ }
61
+ if ((_tableMenuRef$current = tableMenuRef.current) !== null && _tableMenuRef$current !== void 0 && _tableMenuRef$current.contains(target)) {
62
+ return;
63
+ }
64
+ var cellMenuButton = ownerDocument.querySelector(".".concat(_types.TableCssClassName.CONTEXTUAL_MENU_BUTTON));
65
+ if (cellMenuButton !== null && cellMenuButton !== void 0 && cellMenuButton.contains(target)) {
66
+ return;
67
+ }
68
+ closeCellMenu();
69
+ };
70
+ var handleKeyDown = function handleKeyDown(event) {
71
+ if (event.key === 'Escape') {
72
+ closeCellMenu();
73
+ }
74
+ };
75
+ var unbindPointerDown = (0, _bindEventListener.bind)(ownerDocument, {
76
+ type: 'pointerdown',
77
+ listener: handlePointerDown,
78
+ options: {
79
+ capture: true
80
+ }
81
+ });
82
+ var unbindKeyDown = (0, _bindEventListener.bind)(ownerDocument, {
83
+ type: 'keydown',
84
+ listener: handleKeyDown,
85
+ options: {
86
+ capture: true
87
+ }
88
+ });
89
+ return function () {
90
+ unbindPointerDown();
91
+ unbindKeyDown();
92
+ };
93
+ }, [closeCellMenu, isOpen, targetCellRef]);
94
+ return /*#__PURE__*/_react.default.createElement(_userIntent.UserIntentPopupWrapper, {
95
+ api: api,
96
+ userIntent: "tableContextualMenuPopupOpen"
97
+ }, /*#__PURE__*/_react.default.createElement("div", {
98
+ ref: tableMenuRef
99
+ }, /*#__PURE__*/_react.default.createElement(_TableMenu.TableMenu, {
100
+ api: api,
101
+ editorView: editorView,
102
+ surface: _keys.CELL_MENU
103
+ })));
104
+ };
@@ -10,8 +10,11 @@ var _ui = require("@atlaskit/editor-common/ui");
10
10
  var _utils = require("@atlaskit/editor-prosemirror/utils");
11
11
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
12
12
  var _utils2 = require("@atlaskit/editor-tables/utils");
13
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
13
14
  var _pluginFactory = require("../../pm-plugins/plugin-factory");
14
15
  var _consts = require("../consts");
16
+ var _consts2 = require("../TableMenu/shared/consts");
17
+ var _CellMenuPopup = require("./CellMenuPopup");
15
18
  var _ContextualMenu = _interopRequireDefault(require("./ContextualMenu"));
16
19
  var _styles = require("./styles");
17
20
  /**
@@ -72,7 +75,7 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
72
75
  boundariesElement: boundariesElement,
73
76
  scrollableElement: scrollableElement,
74
77
  fitHeight: _consts.tablePopupMenuFitHeight,
75
- fitWidth: _consts.contextualMenuDropdownWidthDnD
78
+ fitWidth: (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? _consts2.TABLE_MENU_WIDTH : _consts.contextualMenuDropdownWidthDnD
76
79
  // z-index value below is to ensure that this menu is above other floating menu
77
80
  // in table, but below floating dialogs like typeaheads, pickers, etc.
78
81
  ,
@@ -82,7 +85,15 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
82
85
  ,
83
86
  offset: [-7, 0],
84
87
  stick: true
85
- }, (0, _react.jsx)("div", {
88
+ }, (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? (0, _react.jsx)(_CellMenuPopup.CellMenuPopup, {
89
+ api: api,
90
+ editorView: editorView,
91
+ isCellMenuOpenByKeyboard: isCellMenuOpenByKeyboard,
92
+ isOpen: isOpen,
93
+ targetCellRef: targetCellRef
94
+ }) :
95
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
96
+ (0, _react.jsx)("div", {
86
97
  css: (0, _styles.tablePopupStyles)()
87
98
  }, (0, _react.jsx)(_ContextualMenu.default, {
88
99
  editorView: editorView
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _ui = require("@atlaskit/editor-common/ui");
10
+ var _userIntent = require("@atlaskit/editor-common/user-intent");
10
11
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
12
  var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
12
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -72,10 +73,14 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
72
73
  forcePlacement: true,
73
74
  offset: (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? [TABLE_MENU_OFFSET, 0] : direction === 'row' ? [-9, 0] : [0, -7],
74
75
  stick: true
75
- }, (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? /*#__PURE__*/_react.default.createElement(_TableMenu.TableMenu, {
76
+ }, (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? /*#__PURE__*/_react.default.createElement(_userIntent.UserIntentPopupWrapper, {
76
77
  api: api,
78
+ userIntent: "tableDragMenuPopupOpen"
79
+ }, /*#__PURE__*/_react.default.createElement(_TableMenu.TableMenu, {
80
+ api: api,
81
+ editorView: editorView,
77
82
  surface: direction === 'row' ? _keys2.ROW_MENU : _keys.COLUMN_MENU
78
- }) : /*#__PURE__*/_react.default.createElement(_DragMenu.default, {
83
+ })) : /*#__PURE__*/_react.default.createElement(_DragMenu.default, {
79
84
  editorView: editorView,
80
85
  isOpen: isOpen,
81
86
  tableNode: tableNode,
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getCellMenuComponents = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
10
+ var _MergeCellsItem = require("./items/MergeCellsItem");
11
+ var _SplitCellItem = require("./items/SplitCellItem");
12
+ var _keys = require("./keys");
13
+ var getCellMenuComponents = exports.getCellMenuComponents = function getCellMenuComponents() {
14
+ return [
15
+ // --- Menu surface ---
16
+ {
17
+ type: _keys.CELL_MENU.type,
18
+ key: _keys.CELL_MENU.key
19
+ },
20
+ // --- Main action section (Background color, Merge cells, Split cell) ---
21
+ {
22
+ type: _keys.CELL_ACTION_SECTION.type,
23
+ key: _keys.CELL_ACTION_SECTION.key,
24
+ parents: [{
25
+ type: _keys.CELL_MENU.type,
26
+ key: _keys.CELL_MENU.key,
27
+ rank: _keys.CELL_MENU_RANK[_keys.CELL_ACTION_SECTION.key]
28
+ }],
29
+ component: function component(props) {
30
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, props.children);
31
+ }
32
+ }, {
33
+ type: _keys.MERGE_CELLS_ITEM.type,
34
+ key: _keys.MERGE_CELLS_ITEM.key,
35
+ parents: [{
36
+ type: _keys.CELL_ACTION_SECTION.type,
37
+ key: _keys.CELL_ACTION_SECTION.key,
38
+ rank: _keys.CELL_ACTION_SECTION_RANK[_keys.MERGE_CELLS_ITEM.key]
39
+ }],
40
+ component: function component() {
41
+ return /*#__PURE__*/_react.default.createElement(_MergeCellsItem.MergeCellsItem, null);
42
+ }
43
+ }, {
44
+ type: _keys.SPLIT_CELL_ITEM.type,
45
+ key: _keys.SPLIT_CELL_ITEM.key,
46
+ parents: [{
47
+ type: _keys.CELL_ACTION_SECTION.type,
48
+ key: _keys.CELL_ACTION_SECTION.key,
49
+ rank: _keys.CELL_ACTION_SECTION_RANK[_keys.SPLIT_CELL_ITEM.key]
50
+ }],
51
+ component: function component() {
52
+ return /*#__PURE__*/_react.default.createElement(_SplitCellItem.SplitCellItem, null);
53
+ }
54
+ },
55
+ // --- Danger section (Clear cell) ---
56
+ {
57
+ type: _keys.CELL_DANGER_SECTION.type,
58
+ key: _keys.CELL_DANGER_SECTION.key,
59
+ parents: [{
60
+ type: _keys.CELL_MENU.type,
61
+ key: _keys.CELL_MENU.key,
62
+ rank: _keys.CELL_MENU_RANK[_keys.CELL_DANGER_SECTION.key]
63
+ }],
64
+ component: function component(props) {
65
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
66
+ hasSeparator: true
67
+ }, props.children);
68
+ }
69
+ }];
70
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MergeCellsItem = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntl = require("react-intl");
10
+ var _messages = require("@atlaskit/editor-common/messages");
11
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
12
+ var _TableMenuContext = require("../../shared/TableMenuContext");
13
+ /**
14
+ * Merge cells is only visible when the active selection can actually be merged
15
+ * (multi-cell, non-overlapping).
16
+ */
17
+ var shouldShowMergeCells = function shouldShowMergeCells(tableMenuContext) {
18
+ return (tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.canMergeCells) === true;
19
+ };
20
+ var MergeCellsItem = exports.MergeCellsItem = function MergeCellsItem() {
21
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
22
+ var _useIntl = (0, _reactIntl.useIntl)(),
23
+ formatMessage = _useIntl.formatMessage;
24
+ if (!shouldShowMergeCells(tableMenuContext)) {
25
+ return null;
26
+ }
27
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
28
+ elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableCellMergeIcon, {
29
+ label: "",
30
+ size: "small"
31
+ })
32
+ }, formatMessage(_messages.tableMessages.mergeCells));
33
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SplitCellItem = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntl = require("react-intl");
10
+ var _messages = require("@atlaskit/editor-common/messages");
11
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
12
+ var _TableMenuContext = require("../../shared/TableMenuContext");
13
+ /**
14
+ * Split cell is only visible when the active selection sits in a cell whose
15
+ * `rowspan` or `colspan` is greater than one.
16
+ */
17
+ var shouldShowSplitCell = function shouldShowSplitCell(tableMenuContext) {
18
+ return (tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.canSplitCell) === true;
19
+ };
20
+ var SplitCellItem = exports.SplitCellItem = function SplitCellItem() {
21
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
22
+ var _useIntl = (0, _reactIntl.useIntl)(),
23
+ formatMessage = _useIntl.formatMessage;
24
+ if (!shouldShowSplitCell(tableMenuContext)) {
25
+ return null;
26
+ }
27
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
28
+ elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableCellSplitIcon, {
29
+ label: "",
30
+ size: "small"
31
+ })
32
+ }, formatMessage(_messages.tableMessages.splitCell));
33
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SPLIT_CELL_ITEM = exports.MERGE_CELLS_ITEM = exports.CELL_MENU_RANK = exports.CELL_MENU = exports.CELL_DANGER_SECTION_RANK = exports.CELL_DANGER_SECTION = exports.CELL_ACTION_SECTION_RANK = exports.CELL_ACTION_SECTION = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _keys = require("../shared/keys");
10
+ // --- Menu surface ---
11
+
12
+ var CELL_MENU = exports.CELL_MENU = {
13
+ type: 'menu',
14
+ key: 'cell-contextual-menu'
15
+ };
16
+
17
+ // --- Sections ---
18
+
19
+ var CELL_ACTION_SECTION = exports.CELL_ACTION_SECTION = {
20
+ type: 'menu-section',
21
+ key: 'cell-action-section'
22
+ };
23
+ var CELL_DANGER_SECTION = exports.CELL_DANGER_SECTION = {
24
+ type: 'menu-section',
25
+ key: 'cell-danger-section'
26
+ };
27
+ var CELL_MENU_RANK = exports.CELL_MENU_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, CELL_ACTION_SECTION.key, 100), CELL_DANGER_SECTION.key, 200);
28
+ var MERGE_CELLS_ITEM = exports.MERGE_CELLS_ITEM = {
29
+ type: 'menu-item',
30
+ key: 'merge-cells'
31
+ };
32
+ var SPLIT_CELL_ITEM = exports.SPLIT_CELL_ITEM = {
33
+ type: 'menu-item',
34
+ key: 'split-cell'
35
+ };
36
+
37
+ // --- Item ranks within their sections ---
38
+
39
+ var CELL_ACTION_SECTION_RANK = exports.CELL_ACTION_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys.BACKGROUND_COLOR_ITEM.key, 100), MERGE_CELLS_ITEM.key, 200), SPLIT_CELL_ITEM.key, 300);
40
+ var CELL_DANGER_SECTION_RANK = exports.CELL_DANGER_SECTION_RANK = (0, _defineProperty2.default)({}, _keys.CLEAR_CELLS_ITEM.key, 100);
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _editorToolbar = require("@atlaskit/editor-toolbar");
10
10
  var _AddColumnLeftItem = require("./items/AddColumnLeftItem");
11
11
  var _AddColumnRightItem = require("./items/AddColumnRightItem");
12
+ var _ColumnBackgroundSection = require("./items/ColumnBackgroundSection");
13
+ var _ColumnToggleSection = require("./items/ColumnToggleSection");
12
14
  var _DeleteColumnItem = require("./items/DeleteColumnItem");
13
15
  var _DistributeColumnsItem = require("./items/DistributeColumnsItem");
14
16
  var _HeaderColumnToggleItem = require("./items/HeaderColumnToggleItem");
@@ -16,13 +18,6 @@ var _MoveColumnRightItem = require("./items/MoveColumnRightItem");
16
18
  var _SortDecreasingItem = require("./items/SortDecreasingItem");
17
19
  var _SortIncreasingItem = require("./items/SortIncreasingItem");
18
20
  var _keys = require("./keys");
19
- /**
20
- * Returns the RegisterComponent[] array defining the column menu surface.
21
- *
22
- * This is a **UI-only stub** — all items are always visible with no conditional
23
- * logic and no wired actions. Functional behaviour (actions, conditional visibility)
24
- * will be connected in follow-up tickets.
25
- */
26
21
  var getColumnMenuComponents = exports.getColumnMenuComponents = function getColumnMenuComponents() {
27
22
  return [
28
23
  // --- Menu surface ---
@@ -40,7 +35,7 @@ var getColumnMenuComponents = exports.getColumnMenuComponents = function getColu
40
35
  rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_TOGGLE_SECTION.key]
41
36
  }],
42
37
  component: function component(props) {
43
- return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, props.children);
38
+ return /*#__PURE__*/_react.default.createElement(_ColumnToggleSection.ColumnToggleSection, null, props.children);
44
39
  }
45
40
  }, {
46
41
  type: _keys.HEADER_COLUMN_TOGGLE_ITEM.type,
@@ -64,9 +59,7 @@ var getColumnMenuComponents = exports.getColumnMenuComponents = function getColu
64
59
  rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_BACKGROUND_SECTION.key]
65
60
  }],
66
61
  component: function component(props) {
67
- return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
68
- hasSeparator: true
69
- }, props.children);
62
+ return /*#__PURE__*/_react.default.createElement(_ColumnBackgroundSection.ColumnBackgroundSection, null, props.children);
70
63
  }
71
64
  },
72
65
  // --- Sort section ---
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ColumnBackgroundSection = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
10
+ var _TableMenuContext = require("../../shared/TableMenuContext");
11
+ var _HeaderColumnToggleItem = require("./HeaderColumnToggleItem");
12
+ /**
13
+ * Background section sits directly below `ColumnToggleSection`. Its separator
14
+ * exists only to divide it from the toggle section; when the toggle section
15
+ * is hidden, the separator must drop too so we don't render a stray rule at
16
+ * the very top of the menu.
17
+ */
18
+ var ColumnBackgroundSection = exports.ColumnBackgroundSection = function ColumnBackgroundSection(_ref) {
19
+ var children = _ref.children;
20
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
21
+ var hasSeparator = (0, _HeaderColumnToggleItem.shouldShowHeaderColumnToggle)(tableMenuContext);
22
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
23
+ hasSeparator: hasSeparator
24
+ }, children);
25
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ColumnToggleSection = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
10
+ var _TableMenuContext = require("../../shared/TableMenuContext");
11
+ var _HeaderColumnToggleItem = require("./HeaderColumnToggleItem");
12
+ /**
13
+ * The toggle section currently contains only the Header column toggle. When
14
+ * that item is hidden, the whole section disappears so we don't render an
15
+ * empty wrapper (and so the section below can drop its leading separator).
16
+ */
17
+ var ColumnToggleSection = exports.ColumnToggleSection = function ColumnToggleSection(_ref) {
18
+ var children = _ref.children;
19
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
20
+ if (!(0, _HeaderColumnToggleItem.shouldShowHeaderColumnToggle)(tableMenuContext)) {
21
+ return null;
22
+ }
23
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, children);
24
+ };
@@ -9,9 +9,19 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _reactIntl = require("react-intl");
10
10
  var _messages = require("@atlaskit/editor-common/messages");
11
11
  var _editorToolbar = require("@atlaskit/editor-toolbar");
12
+ var _TableMenuContext = require("../../shared/TableMenuContext");
13
+ /** Distribute columns is only visible when more than one column is selected. */
14
+ var shouldShowDistributeColumns = function shouldShowDistributeColumns(tableMenuContext) {
15
+ var _tableMenuContext$sel;
16
+ return ((_tableMenuContext$sel = tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.selectedColumnCount) !== null && _tableMenuContext$sel !== void 0 ? _tableMenuContext$sel : 0) > 1;
17
+ };
12
18
  var DistributeColumnsItem = exports.DistributeColumnsItem = function DistributeColumnsItem() {
19
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
13
20
  var _useIntl = (0, _reactIntl.useIntl)(),
14
21
  formatMessage = _useIntl.formatMessage;
22
+ if (!shouldShowDistributeColumns(tableMenuContext)) {
23
+ return null;
24
+ }
15
25
  return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
16
26
  elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableColumnsDistributeIcon, {
17
27
  color: "currentColor",
@@ -4,16 +4,32 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.HeaderColumnToggleItem = void 0;
7
+ exports.shouldShowHeaderColumnToggle = exports.HeaderColumnToggleItem = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _reactIntl = require("react-intl");
10
10
  var _messages = require("@atlaskit/editor-common/messages");
11
11
  var _editorToolbar = require("@atlaskit/editor-toolbar");
12
12
  var _toggle = _interopRequireDefault(require("@atlaskit/toggle"));
13
+ var _TableMenuContext = require("../../shared/TableMenuContext");
14
+ /**
15
+ * Header column toggle is only visible when the first column is the entire
16
+ * selection.
17
+ *
18
+ * Exported so `ColumnToggleSection` (which can become empty) and
19
+ * `ColumnBackgroundSection` (which drops its leading separator alongside)
20
+ * can stay in lockstep with this rule without redefining it.
21
+ */
22
+ var shouldShowHeaderColumnToggle = exports.shouldShowHeaderColumnToggle = function shouldShowHeaderColumnToggle(tableMenuContext) {
23
+ return (tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.isFirstColumn) === true && tableMenuContext.selectedColumnCount === 1;
24
+ };
13
25
  var HeaderColumnToggleItem = exports.HeaderColumnToggleItem = function HeaderColumnToggleItem() {
26
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
14
27
  var _useIntl = (0, _reactIntl.useIntl)(),
15
28
  formatMessage = _useIntl.formatMessage;
16
29
  var label = formatMessage(_messages.tableMessages.headerColumn);
30
+ if (!shouldShowHeaderColumnToggle(tableMenuContext)) {
31
+ return null;
32
+ }
17
33
  return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
18
34
  elemAfter: /*#__PURE__*/_react.default.createElement(_toggle.default, {
19
35
  label: label,
@@ -10,12 +10,8 @@ var _reactIntl = require("react-intl");
10
10
  var _keymaps = require("@atlaskit/editor-common/keymaps");
11
11
  var _messages = require("@atlaskit/editor-common/messages");
12
12
  var _editorToolbar = require("@atlaskit/editor-toolbar");
13
- var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
14
- var getMoveColumnRightShortcut = function getMoveColumnRightShortcut() {
15
- return (0, _keymaps.tooltip)((0, _expValEquals.expValEquals)('editor-a11y-fy26-keyboard-move-row-column', 'isEnabled', true) ? _keymaps.moveColumnRight : _keymaps.moveColumnRightOld);
16
- };
17
13
  var MoveColumnRightItem = exports.MoveColumnRightItem = function MoveColumnRightItem() {
18
- var _getMoveColumnRightSh;
14
+ var _tooltip;
19
15
  var _useIntl = (0, _reactIntl.useIntl)(),
20
16
  formatMessage = _useIntl.formatMessage;
21
17
  return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
@@ -25,7 +21,7 @@ var MoveColumnRightItem = exports.MoveColumnRightItem = function MoveColumnRight
25
21
  size: "small"
26
22
  }),
27
23
  elemAfter: /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarKeyboardShortcutHint, {
28
- shortcut: (_getMoveColumnRightSh = getMoveColumnRightShortcut()) !== null && _getMoveColumnRightSh !== void 0 ? _getMoveColumnRightSh : ''
24
+ shortcut: (_tooltip = (0, _keymaps.tooltip)(_keymaps.moveColumnRight)) !== null && _tooltip !== void 0 ? _tooltip : ''
29
25
  })
30
26
  }, formatMessage(_messages.tableMessages.moveColumnRight, {
31
27
  0: 1
@@ -9,11 +9,13 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _reactIntl = require("react-intl");
10
10
  var _messages = require("@atlaskit/editor-common/messages");
11
11
  var _editorToolbar = require("@atlaskit/editor-toolbar");
12
+ var _TableMenuContext = require("../../shared/TableMenuContext");
12
13
  var SortDecreasingItem = exports.SortDecreasingItem = function SortDecreasingItem() {
14
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
13
15
  var _useIntl = (0, _reactIntl.useIntl)(),
14
16
  formatMessage = _useIntl.formatMessage;
15
17
  return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
16
- isDisabled: true,
18
+ isDisabled: Boolean(tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.hasMergedCellsInTable),
17
19
  elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.ArrowDownIcon, {
18
20
  color: "currentColor",
19
21
  label: "",
@@ -9,11 +9,13 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _reactIntl = require("react-intl");
10
10
  var _messages = require("@atlaskit/editor-common/messages");
11
11
  var _editorToolbar = require("@atlaskit/editor-toolbar");
12
+ var _TableMenuContext = require("../../shared/TableMenuContext");
12
13
  var SortIncreasingItem = exports.SortIncreasingItem = function SortIncreasingItem() {
14
+ var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
13
15
  var _useIntl = (0, _reactIntl.useIntl)(),
14
16
  formatMessage = _useIntl.formatMessage;
15
17
  return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
16
- isDisabled: true,
18
+ isDisabled: Boolean(tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.hasMergedCellsInTable),
17
19
  elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.ArrowUpIcon, {
18
20
  color: "currentColor",
19
21
  label: "",