@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.
- package/CHANGELOG.md +18 -0
- package/dist/cjs/pm-plugins/commands/split-cell.js +18 -1
- package/dist/cjs/pm-plugins/transforms/merge.js +5 -2
- package/dist/cjs/ui/FloatingContextualButton/index.js +5 -0
- package/dist/cjs/ui/FloatingContextualMenu/CellMenuPopup.js +104 -0
- package/dist/cjs/ui/FloatingContextualMenu/index.js +13 -2
- package/dist/cjs/ui/FloatingDragMenu/index.js +7 -2
- package/dist/cjs/ui/TableMenu/cell/getCellMenuComponents.js +70 -0
- package/dist/cjs/ui/TableMenu/cell/items/MergeCellsItem.js +33 -0
- package/dist/cjs/ui/TableMenu/cell/items/SplitCellItem.js +33 -0
- package/dist/cjs/ui/TableMenu/cell/keys.js +40 -0
- package/dist/cjs/ui/TableMenu/column/getColumnMenuComponents.js +4 -11
- package/dist/cjs/ui/TableMenu/column/items/ColumnBackgroundSection.js +25 -0
- package/dist/cjs/ui/TableMenu/column/items/ColumnToggleSection.js +24 -0
- package/dist/cjs/ui/TableMenu/column/items/DistributeColumnsItem.js +10 -0
- package/dist/cjs/ui/TableMenu/column/items/HeaderColumnToggleItem.js +17 -1
- package/dist/cjs/ui/TableMenu/column/items/MoveColumnRightItem.js +2 -6
- package/dist/cjs/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
- package/dist/cjs/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
- package/dist/cjs/ui/TableMenu/row/getRowMenuComponents.js +0 -7
- package/dist/cjs/ui/TableMenu/row/items/HeaderRowToggleItem.js +9 -0
- package/dist/cjs/ui/TableMenu/row/items/MoveRowDownItem.js +10 -0
- package/dist/cjs/ui/TableMenu/row/items/MoveRowUpItem.js +10 -0
- package/dist/cjs/ui/TableMenu/shared/TableMenu.js +53 -3
- package/dist/cjs/ui/TableMenu/shared/TableMenuContext.js +13 -0
- package/dist/cjs/ui/TableMenu/shared/consts.js +3 -2
- package/dist/cjs/ui/TableMenu/shared/getSharedItems.js +28 -19
- package/dist/cjs/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
- package/dist/cjs/ui/event-handlers.js +6 -1
- package/dist/es2019/pm-plugins/commands/split-cell.js +17 -1
- package/dist/es2019/pm-plugins/transforms/merge.js +4 -4
- package/dist/es2019/ui/FloatingContextualButton/index.js +5 -0
- package/dist/es2019/ui/FloatingContextualMenu/CellMenuPopup.js +100 -0
- package/dist/es2019/ui/FloatingContextualMenu/index.js +13 -3
- package/dist/es2019/ui/FloatingDragMenu/index.js +7 -2
- package/dist/es2019/ui/TableMenu/cell/getCellMenuComponents.js +53 -0
- package/dist/es2019/ui/TableMenu/cell/items/MergeCellsItem.js +26 -0
- package/dist/es2019/ui/TableMenu/cell/items/SplitCellItem.js +26 -0
- package/dist/es2019/ui/TableMenu/cell/keys.js +42 -0
- package/dist/es2019/ui/TableMenu/column/getColumnMenuComponents.js +4 -12
- package/dist/es2019/ui/TableMenu/column/items/ColumnBackgroundSection.js +20 -0
- package/dist/es2019/ui/TableMenu/column/items/ColumnToggleSection.js +19 -0
- package/dist/es2019/ui/TableMenu/column/items/DistributeColumnsItem.js +11 -0
- package/dist/es2019/ui/TableMenu/column/items/HeaderColumnToggleItem.js +15 -0
- package/dist/es2019/ui/TableMenu/column/items/MoveColumnRightItem.js +3 -5
- package/dist/es2019/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
- package/dist/es2019/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
- package/dist/es2019/ui/TableMenu/row/getRowMenuComponents.js +0 -8
- package/dist/es2019/ui/TableMenu/row/items/HeaderRowToggleItem.js +8 -0
- package/dist/es2019/ui/TableMenu/row/items/MoveRowDownItem.js +8 -0
- package/dist/es2019/ui/TableMenu/row/items/MoveRowUpItem.js +8 -0
- package/dist/es2019/ui/TableMenu/shared/TableMenu.js +51 -3
- package/dist/es2019/ui/TableMenu/shared/TableMenuContext.js +4 -0
- package/dist/es2019/ui/TableMenu/shared/consts.js +2 -1
- package/dist/es2019/ui/TableMenu/shared/getSharedItems.js +9 -0
- package/dist/es2019/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
- package/dist/es2019/ui/event-handlers.js +4 -1
- package/dist/esm/pm-plugins/commands/split-cell.js +17 -1
- package/dist/esm/pm-plugins/transforms/merge.js +4 -2
- package/dist/esm/ui/FloatingContextualButton/index.js +5 -0
- package/dist/esm/ui/FloatingContextualMenu/CellMenuPopup.js +96 -0
- package/dist/esm/ui/FloatingContextualMenu/index.js +13 -3
- package/dist/esm/ui/FloatingDragMenu/index.js +7 -2
- package/dist/esm/ui/TableMenu/cell/getCellMenuComponents.js +63 -0
- package/dist/esm/ui/TableMenu/cell/items/MergeCellsItem.js +27 -0
- package/dist/esm/ui/TableMenu/cell/items/SplitCellItem.js +27 -0
- package/dist/esm/ui/TableMenu/cell/keys.js +34 -0
- package/dist/esm/ui/TableMenu/column/getColumnMenuComponents.js +4 -12
- package/dist/esm/ui/TableMenu/column/items/ColumnBackgroundSection.js +19 -0
- package/dist/esm/ui/TableMenu/column/items/ColumnToggleSection.js +18 -0
- package/dist/esm/ui/TableMenu/column/items/DistributeColumnsItem.js +11 -0
- package/dist/esm/ui/TableMenu/column/items/HeaderColumnToggleItem.js +17 -0
- package/dist/esm/ui/TableMenu/column/items/MoveColumnRightItem.js +3 -7
- package/dist/esm/ui/TableMenu/column/items/SortDecreasingItem.js +3 -1
- package/dist/esm/ui/TableMenu/column/items/SortIncreasingItem.js +3 -1
- package/dist/esm/ui/TableMenu/row/getRowMenuComponents.js +0 -8
- package/dist/esm/ui/TableMenu/row/items/HeaderRowToggleItem.js +10 -0
- package/dist/esm/ui/TableMenu/row/items/MoveRowDownItem.js +10 -0
- package/dist/esm/ui/TableMenu/row/items/MoveRowUpItem.js +10 -0
- package/dist/esm/ui/TableMenu/shared/TableMenu.js +52 -3
- package/dist/esm/ui/TableMenu/shared/TableMenuContext.js +6 -0
- package/dist/esm/ui/TableMenu/shared/consts.js +2 -1
- package/dist/esm/ui/TableMenu/shared/getSharedItems.js +9 -0
- package/dist/esm/ui/TableMenu/shared/getTableMenuComponents.js +2 -1
- package/dist/esm/ui/event-handlers.js +6 -1
- package/dist/types/pm-plugins/commands/split-cell.d.ts +2 -0
- package/dist/types/pm-plugins/transforms/merge.d.ts +2 -0
- package/dist/types/ui/FloatingContextualMenu/CellMenuPopup.d.ts +12 -0
- package/dist/types/ui/TableMenu/cell/getCellMenuComponents.d.ts +2 -0
- package/dist/types/ui/TableMenu/cell/items/MergeCellsItem.d.ts +2 -0
- package/dist/types/ui/TableMenu/cell/items/SplitCellItem.d.ts +2 -0
- package/dist/types/ui/TableMenu/cell/keys.d.ts +9 -0
- package/dist/types/ui/TableMenu/column/getColumnMenuComponents.d.ts +0 -7
- package/dist/types/ui/TableMenu/column/items/ColumnBackgroundSection.d.ts +10 -0
- package/dist/types/ui/TableMenu/column/items/ColumnToggleSection.d.ts +9 -0
- package/dist/types/ui/TableMenu/column/items/DistributeColumnsItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/column/items/HeaderColumnToggleItem.d.ts +11 -1
- package/dist/types/ui/TableMenu/row/getRowMenuComponents.d.ts +0 -7
- package/dist/types/ui/TableMenu/row/items/HeaderRowToggleItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/row/items/MoveRowDownItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/row/items/MoveRowUpItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/shared/TableMenu.d.ts +3 -1
- package/dist/types/ui/TableMenu/shared/TableMenuContext.d.ts +14 -0
- package/dist/types/ui/TableMenu/shared/consts.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/commands/split-cell.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/transforms/merge.d.ts +2 -0
- package/dist/types-ts4.5/ui/FloatingContextualMenu/CellMenuPopup.d.ts +12 -0
- package/dist/types-ts4.5/ui/TableMenu/cell/getCellMenuComponents.d.ts +2 -0
- package/dist/types-ts4.5/ui/TableMenu/cell/items/MergeCellsItem.d.ts +2 -0
- package/dist/types-ts4.5/ui/TableMenu/cell/items/SplitCellItem.d.ts +2 -0
- package/dist/types-ts4.5/ui/TableMenu/cell/keys.d.ts +9 -0
- package/dist/types-ts4.5/ui/TableMenu/column/getColumnMenuComponents.d.ts +0 -7
- package/dist/types-ts4.5/ui/TableMenu/column/items/ColumnBackgroundSection.d.ts +10 -0
- package/dist/types-ts4.5/ui/TableMenu/column/items/ColumnToggleSection.d.ts +9 -0
- package/dist/types-ts4.5/ui/TableMenu/column/items/DistributeColumnsItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/column/items/HeaderColumnToggleItem.d.ts +11 -1
- package/dist/types-ts4.5/ui/TableMenu/row/getRowMenuComponents.d.ts +0 -7
- package/dist/types-ts4.5/ui/TableMenu/row/items/HeaderRowToggleItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/row/items/MoveRowDownItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/row/items/MoveRowUpItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/shared/TableMenu.d.ts +3 -1
- package/dist/types-ts4.5/ui/TableMenu/shared/TableMenuContext.d.ts +14 -0
- package/dist/types-ts4.5/ui/TableMenu/shared/consts.d.ts +1 -0
- 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
|
|
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)(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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: (
|
|
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:
|
|
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:
|
|
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: "",
|