@atlaskit/editor-plugin-table 22.4.8 → 22.4.10
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 +16 -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/FloatingContextualMenu/CellMenuPopup.js +1 -0
- package/dist/cjs/ui/FloatingDragMenu/index.js +7 -2
- package/dist/cjs/ui/TableMenu/cell/getCellMenuComponents.js +2 -9
- package/dist/cjs/ui/TableMenu/cell/items/MergeCellsItem.js +12 -0
- package/dist/cjs/ui/TableMenu/cell/items/SplitCellItem.js +12 -0
- package/dist/cjs/ui/TableMenu/cell/keys.js +2 -2
- 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/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 +51 -2
- package/dist/cjs/ui/TableMenu/shared/TableMenuContext.js +13 -0
- package/dist/cjs/ui/TableMenu/shared/consts.js +3 -2
- 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/FloatingContextualMenu/CellMenuPopup.js +1 -0
- package/dist/es2019/ui/FloatingDragMenu/index.js +7 -2
- package/dist/es2019/ui/TableMenu/cell/getCellMenuComponents.js +3 -11
- package/dist/es2019/ui/TableMenu/cell/items/MergeCellsItem.js +11 -0
- package/dist/es2019/ui/TableMenu/cell/items/SplitCellItem.js +11 -0
- package/dist/es2019/ui/TableMenu/cell/keys.js +1 -1
- 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/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 +49 -2
- package/dist/es2019/ui/TableMenu/shared/TableMenuContext.js +4 -0
- package/dist/es2019/ui/TableMenu/shared/consts.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/FloatingContextualMenu/CellMenuPopup.js +1 -0
- package/dist/esm/ui/FloatingDragMenu/index.js +7 -2
- package/dist/esm/ui/TableMenu/cell/getCellMenuComponents.js +3 -11
- package/dist/esm/ui/TableMenu/cell/items/MergeCellsItem.js +13 -0
- package/dist/esm/ui/TableMenu/cell/items/SplitCellItem.js +13 -0
- package/dist/esm/ui/TableMenu/cell/keys.js +1 -1
- 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/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 +50 -2
- package/dist/esm/ui/TableMenu/shared/TableMenuContext.js +6 -0
- package/dist/esm/ui/TableMenu/shared/consts.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/TableMenu/cell/getCellMenuComponents.d.ts +0 -7
- package/dist/types/ui/TableMenu/cell/items/MergeCellsItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/cell/items/SplitCellItem.d.ts +1 -1
- package/dist/types/ui/TableMenu/cell/keys.d.ts +1 -1
- 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/TableMenu/cell/getCellMenuComponents.d.ts +0 -7
- package/dist/types-ts4.5/ui/TableMenu/cell/items/MergeCellsItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/cell/items/SplitCellItem.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableMenu/cell/keys.d.ts +1 -1
- 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 +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-table
|
|
2
2
|
|
|
3
|
+
## 22.4.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 22.4.9
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`0091cbd21d8f7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0091cbd21d8f7) -
|
|
14
|
+
[ux] Add conditional visibility to row, column, and cell handle menu items behind the
|
|
15
|
+
`platform_editor_table_menu_updates` experiment, so menu surfaces only show options that apply to
|
|
16
|
+
the current selection.
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 22.4.8
|
|
4
20
|
|
|
5
21
|
### 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;
|
|
@@ -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,
|
|
@@ -10,13 +10,6 @@ var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
|
10
10
|
var _MergeCellsItem = require("./items/MergeCellsItem");
|
|
11
11
|
var _SplitCellItem = require("./items/SplitCellItem");
|
|
12
12
|
var _keys = require("./keys");
|
|
13
|
-
/**
|
|
14
|
-
* Returns the RegisterComponent[] array defining the cell contextual menu surface.
|
|
15
|
-
*
|
|
16
|
-
* This is a **UI-only stub** — all items are always visible with no conditional
|
|
17
|
-
* logic and no wired actions. Functional behaviour (actions, conditional visibility)
|
|
18
|
-
* will be connected in follow-up tickets.
|
|
19
|
-
*/
|
|
20
13
|
var getCellMenuComponents = exports.getCellMenuComponents = function getCellMenuComponents() {
|
|
21
14
|
return [
|
|
22
15
|
// --- Menu surface ---
|
|
@@ -31,7 +24,7 @@ var getCellMenuComponents = exports.getCellMenuComponents = function getCellMenu
|
|
|
31
24
|
parents: [{
|
|
32
25
|
type: _keys.CELL_MENU.type,
|
|
33
26
|
key: _keys.CELL_MENU.key,
|
|
34
|
-
rank: _keys.
|
|
27
|
+
rank: _keys.CELL_MENU_RANK[_keys.CELL_ACTION_SECTION.key]
|
|
35
28
|
}],
|
|
36
29
|
component: function component(props) {
|
|
37
30
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, props.children);
|
|
@@ -66,7 +59,7 @@ var getCellMenuComponents = exports.getCellMenuComponents = function getCellMenu
|
|
|
66
59
|
parents: [{
|
|
67
60
|
type: _keys.CELL_MENU.type,
|
|
68
61
|
key: _keys.CELL_MENU.key,
|
|
69
|
-
rank: _keys.
|
|
62
|
+
rank: _keys.CELL_MENU_RANK[_keys.CELL_DANGER_SECTION.key]
|
|
70
63
|
}],
|
|
71
64
|
component: function component(props) {
|
|
72
65
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
|
|
@@ -9,9 +9,21 @@ 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
|
+
/**
|
|
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
|
+
};
|
|
12
20
|
var MergeCellsItem = exports.MergeCellsItem = function MergeCellsItem() {
|
|
21
|
+
var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
|
|
13
22
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
14
23
|
formatMessage = _useIntl.formatMessage;
|
|
24
|
+
if (!shouldShowMergeCells(tableMenuContext)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
15
27
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
|
|
16
28
|
elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableCellMergeIcon, {
|
|
17
29
|
label: "",
|
|
@@ -9,9 +9,21 @@ 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
|
+
/**
|
|
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
|
+
};
|
|
12
20
|
var SplitCellItem = exports.SplitCellItem = function SplitCellItem() {
|
|
21
|
+
var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
|
|
13
22
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
14
23
|
formatMessage = _useIntl.formatMessage;
|
|
24
|
+
if (!shouldShowSplitCell(tableMenuContext)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
15
27
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
|
|
16
28
|
elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableCellSplitIcon, {
|
|
17
29
|
label: "",
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.SPLIT_CELL_ITEM = exports.MERGE_CELLS_ITEM = exports.
|
|
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
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _keys = require("../shared/keys");
|
|
10
10
|
// --- Menu surface ---
|
|
@@ -24,7 +24,7 @@ var CELL_DANGER_SECTION = exports.CELL_DANGER_SECTION = {
|
|
|
24
24
|
type: 'menu-section',
|
|
25
25
|
key: 'cell-danger-section'
|
|
26
26
|
};
|
|
27
|
-
var
|
|
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
28
|
var MERGE_CELLS_ITEM = exports.MERGE_CELLS_ITEM = {
|
|
29
29
|
type: 'menu-item',
|
|
30
30
|
key: 'merge-cells'
|
|
@@ -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,
|
|
@@ -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: "",
|
|
@@ -15,13 +15,6 @@ var _MoveRowDownItem = require("./items/MoveRowDownItem");
|
|
|
15
15
|
var _MoveRowUpItem = require("./items/MoveRowUpItem");
|
|
16
16
|
var _NumberedRowsToggleItem = require("./items/NumberedRowsToggleItem");
|
|
17
17
|
var _keys = require("./keys");
|
|
18
|
-
/**
|
|
19
|
-
* Returns the RegisterComponent[] array defining the row menu surface.
|
|
20
|
-
*
|
|
21
|
-
* This is a **UI-only stub** — all items are always visible with no conditional
|
|
22
|
-
* logic and no wired actions. Functional behaviour (actions, conditional visibility)
|
|
23
|
-
* will be connected in follow-up tickets.
|
|
24
|
-
*/
|
|
25
18
|
var getRowMenuComponents = exports.getRowMenuComponents = function getRowMenuComponents() {
|
|
26
19
|
return [
|
|
27
20
|
// --- Menu surface ---
|
|
@@ -10,10 +10,19 @@ 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
|
+
/** Header row toggle is only visible when the first row is the entire selection. */
|
|
15
|
+
var shouldShowHeaderRowToggle = function shouldShowHeaderRowToggle(tableMenuContext) {
|
|
16
|
+
return (tableMenuContext === null || tableMenuContext === void 0 ? void 0 : tableMenuContext.isFirstRow) === true && tableMenuContext.selectedRowCount === 1;
|
|
17
|
+
};
|
|
13
18
|
var HeaderRowToggleItem = exports.HeaderRowToggleItem = function HeaderRowToggleItem() {
|
|
19
|
+
var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
|
|
14
20
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
15
21
|
formatMessage = _useIntl.formatMessage;
|
|
16
22
|
var label = formatMessage(_messages.tableMessages.headerRow);
|
|
23
|
+
if (!shouldShowHeaderRowToggle(tableMenuContext)) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
17
26
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
|
|
18
27
|
elemAfter: /*#__PURE__*/_react.default.createElement(_toggle.default, {
|
|
19
28
|
label: label,
|
|
@@ -11,13 +11,23 @@ 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
13
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
14
|
+
var _TableMenuContext = require("../../shared/TableMenuContext");
|
|
14
15
|
var getMoveRowDownShortcut = function getMoveRowDownShortcut() {
|
|
15
16
|
return (0, _keymaps.tooltip)((0, _expValEquals.expValEquals)('editor-a11y-fy26-keyboard-move-row-column', 'isEnabled', true) ? _keymaps.moveRowDown : _keymaps.moveRowDownOld);
|
|
16
17
|
};
|
|
18
|
+
|
|
19
|
+
/** Move row down is hidden when the selection includes the last row (cannot move further down). */
|
|
20
|
+
var shouldShowMoveRowDown = function shouldShowMoveRowDown(tableMenuContext) {
|
|
21
|
+
return !(tableMenuContext !== null && tableMenuContext !== void 0 && tableMenuContext.isLastRow);
|
|
22
|
+
};
|
|
17
23
|
var MoveRowDownItem = exports.MoveRowDownItem = function MoveRowDownItem() {
|
|
18
24
|
var _getMoveRowDownShortc;
|
|
25
|
+
var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
|
|
19
26
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
20
27
|
formatMessage = _useIntl.formatMessage;
|
|
28
|
+
if (!shouldShowMoveRowDown(tableMenuContext)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
21
31
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
|
|
22
32
|
elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableRowMoveDownIcon, {
|
|
23
33
|
color: "currentColor",
|
|
@@ -11,13 +11,23 @@ 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
13
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
14
|
+
var _TableMenuContext = require("../../shared/TableMenuContext");
|
|
14
15
|
var getMoveRowUpShortcut = function getMoveRowUpShortcut() {
|
|
15
16
|
return (0, _keymaps.tooltip)((0, _expValEquals.expValEquals)('editor-a11y-fy26-keyboard-move-row-column', 'isEnabled', true) ? _keymaps.moveRowUp : _keymaps.moveRowUpOld);
|
|
16
17
|
};
|
|
18
|
+
|
|
19
|
+
/** Move row up is hidden when the selection includes row 0 (cannot move further up). */
|
|
20
|
+
var shouldShowMoveRowUp = function shouldShowMoveRowUp(tableMenuContext) {
|
|
21
|
+
return !(tableMenuContext !== null && tableMenuContext !== void 0 && tableMenuContext.isFirstRow);
|
|
22
|
+
};
|
|
17
23
|
var MoveRowUpItem = exports.MoveRowUpItem = function MoveRowUpItem() {
|
|
18
24
|
var _getMoveRowUpShortcut;
|
|
25
|
+
var tableMenuContext = (0, _TableMenuContext.useTableMenuContext)();
|
|
19
26
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
20
27
|
formatMessage = _useIntl.formatMessage;
|
|
28
|
+
if (!shouldShowMoveRowUp(tableMenuContext)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
21
31
|
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
|
|
22
32
|
elemBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableRowMoveUpIcon, {
|
|
23
33
|
color: "currentColor",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* TableMenu.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
@@ -8,29 +9,77 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
9
|
exports.TableMenu = void 0;
|
|
9
10
|
require("./TableMenu.compiled.css");
|
|
10
11
|
var _runtime = require("@compiled/react/runtime");
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
15
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
16
|
+
var _tableMap = require("@atlaskit/editor-tables/table-map");
|
|
17
|
+
var _utils = require("@atlaskit/editor-tables/utils");
|
|
12
18
|
var _editorUiControlModel = require("@atlaskit/editor-ui-control-model");
|
|
13
19
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
20
|
+
var _splitCell = require("../../../pm-plugins/commands/split-cell");
|
|
21
|
+
var _merge = require("../../../pm-plugins/transforms/merge");
|
|
22
|
+
var _TableMenuContext = require("./TableMenuContext");
|
|
14
23
|
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); }
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
26
|
var tableMenuContainerStyles = {
|
|
16
27
|
container: "_2rko1qi0 _1reo15vq _18m915vq _1bsb1178 _16qs130s _bfhk1bhr"
|
|
17
28
|
};
|
|
29
|
+
var EMPTY_CONTEXT = {};
|
|
18
30
|
var TableMenu = exports.TableMenu = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
19
31
|
var api = _ref.api,
|
|
32
|
+
editorView = _ref.editorView,
|
|
20
33
|
surface = _ref.surface;
|
|
21
34
|
var components = (0, _react.useMemo)(function () {
|
|
22
35
|
var _api$uiControlRegistr, _api$uiControlRegistr2;
|
|
23
36
|
return (_api$uiControlRegistr = api === null || api === void 0 || (_api$uiControlRegistr2 = api.uiControlRegistry) === null || _api$uiControlRegistr2 === void 0 ? void 0 : _api$uiControlRegistr2.actions.getComponents(surface.key)) !== null && _api$uiControlRegistr !== void 0 ? _api$uiControlRegistr : [];
|
|
24
37
|
}, [api, surface.key]);
|
|
38
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api !== null && api !== void 0 ? api : undefined, ['table', 'selection'], function (states) {
|
|
39
|
+
var _states$tableState, _states$selectionStat;
|
|
40
|
+
return {
|
|
41
|
+
tableNode: (_states$tableState = states.tableState) === null || _states$tableState === void 0 ? void 0 : _states$tableState.tableNode,
|
|
42
|
+
selection: (_states$selectionStat = states.selectionState) === null || _states$selectionStat === void 0 ? void 0 : _states$selectionStat.selection
|
|
43
|
+
};
|
|
44
|
+
}),
|
|
45
|
+
tableNode = _useSharedPluginState.tableNode,
|
|
46
|
+
selection = _useSharedPluginState.selection;
|
|
47
|
+
var tableMenuContext = (0, _react.useMemo)(function () {
|
|
48
|
+
if (!selection || !tableNode) {
|
|
49
|
+
return EMPTY_CONTEXT;
|
|
50
|
+
}
|
|
51
|
+
var tableMap = _tableMap.TableMap.get(tableNode);
|
|
52
|
+
var selectionRect = (0, _utils.getSelectionRect)(selection);
|
|
53
|
+
var cellOps = {
|
|
54
|
+
canMergeCells: (0, _merge.canMergeCellSelection)(selection),
|
|
55
|
+
canSplitCell: (0, _splitCell.canSplitCellSelection)(selection),
|
|
56
|
+
hasMergedCellsInTable: tableMap.hasMergedCells()
|
|
57
|
+
};
|
|
58
|
+
if (!selectionRect) {
|
|
59
|
+
return cellOps;
|
|
60
|
+
}
|
|
61
|
+
return _objectSpread(_objectSpread({}, cellOps), {}, {
|
|
62
|
+
isFirstRow: selectionRect.top === 0,
|
|
63
|
+
isLastRow: selectionRect.bottom === tableMap.height,
|
|
64
|
+
selectedRowCount: selectionRect.bottom - selectionRect.top,
|
|
65
|
+
isFirstColumn: selectionRect.left === 0,
|
|
66
|
+
isLastColumn: selectionRect.right === tableMap.width,
|
|
67
|
+
selectedColumnCount: selectionRect.right - selectionRect.left
|
|
68
|
+
});
|
|
69
|
+
}, [selection, tableNode]);
|
|
25
70
|
if (components.length === 0) {
|
|
26
71
|
return null;
|
|
27
72
|
}
|
|
28
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement(_toolbar.EditorToolbarProvider, {
|
|
74
|
+
editorView: editorView !== null && editorView !== void 0 ? editorView : null
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement(_TableMenuContext.TableMenuProvider, {
|
|
76
|
+
value: tableMenuContext
|
|
77
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
29
78
|
xcss: tableMenuContainerStyles.container,
|
|
30
79
|
testId: surface.key
|
|
31
80
|
}, /*#__PURE__*/_react.default.createElement(_editorUiControlModel.SurfaceRenderer, {
|
|
32
81
|
surface: surface,
|
|
33
82
|
components: components
|
|
34
|
-
}));
|
|
83
|
+
}))));
|
|
35
84
|
});
|
|
36
85
|
TableMenu.displayName = 'TableMenu';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useTableMenuContext = exports.TableMenuProvider = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var TableMenuContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
10
|
+
var TableMenuProvider = exports.TableMenuProvider = TableMenuContext.Provider;
|
|
11
|
+
var useTableMenuContext = exports.useTableMenuContext = function useTableMenuContext() {
|
|
12
|
+
return _react.default.useContext(TableMenuContext);
|
|
13
|
+
};
|
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TABLE_MENU_WIDTH = void 0;
|
|
7
|
-
var TABLE_MENU_WIDTH = exports.TABLE_MENU_WIDTH = 280;
|
|
6
|
+
exports.TABLE_MENU_WIDTH = exports.TABLE_MENU_SELECTOR = void 0;
|
|
7
|
+
var TABLE_MENU_WIDTH = exports.TABLE_MENU_WIDTH = 280;
|
|
8
|
+
var TABLE_MENU_SELECTOR = exports.TABLE_MENU_SELECTOR = '[data-testid="column-handle-menu"], [data-testid="row-handle-menu"], [data-toolbar-nested-dropdown-menu]';
|
|
@@ -18,6 +18,7 @@ var _utils2 = require("@atlaskit/editor-prosemirror/utils");
|
|
|
18
18
|
var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
|
|
19
19
|
var _tableMap = require("@atlaskit/editor-tables/table-map");
|
|
20
20
|
var _utils3 = require("@atlaskit/editor-tables/utils");
|
|
21
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
21
22
|
var _commands = require("../pm-plugins/commands");
|
|
22
23
|
var _pluginFactory = require("../pm-plugins/drag-and-drop/plugin-factory");
|
|
23
24
|
var _pluginFactory2 = require("../pm-plugins/plugin-factory");
|
|
@@ -29,6 +30,7 @@ var _columnControls = require("../pm-plugins/utils/column-controls");
|
|
|
29
30
|
var _dom = require("../pm-plugins/utils/dom");
|
|
30
31
|
var _getAllowAddColumnCustomStep = require("../pm-plugins/utils/get-allow-add-column-custom-step");
|
|
31
32
|
var _types = require("../types");
|
|
33
|
+
var _consts = require("./TableMenu/shared/consts");
|
|
32
34
|
var isFocusingCalendar = function isFocusingCalendar(event) {
|
|
33
35
|
return event instanceof FocusEvent && event.relatedTarget instanceof HTMLElement && event.relatedTarget.getAttribute('aria-label') === 'calendar';
|
|
34
36
|
};
|
|
@@ -44,12 +46,15 @@ var isFocusingDragHandles = function isFocusingDragHandles(event) {
|
|
|
44
46
|
var isFocusingDragHandlesClickableZone = function isFocusingDragHandlesClickableZone(event) {
|
|
45
47
|
return event instanceof FocusEvent && event.relatedTarget instanceof HTMLElement && event.relatedTarget.closest('button') && event.relatedTarget.classList.contains(_types.TableCssClassName.DRAG_HANDLE_BUTTON_CLICKABLE_ZONE);
|
|
46
48
|
};
|
|
49
|
+
var isFocusingTableMenu = function isFocusingTableMenu(event) {
|
|
50
|
+
return (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) && event instanceof FocusEvent && event.relatedTarget instanceof HTMLElement && Boolean(event.relatedTarget.closest(_consts.TABLE_MENU_SELECTOR));
|
|
51
|
+
};
|
|
47
52
|
var handleBlur = exports.handleBlur = function handleBlur(view, event) {
|
|
48
53
|
var state = view.state,
|
|
49
54
|
dispatch = view.dispatch;
|
|
50
55
|
// IE version check for ED-4665
|
|
51
56
|
// Calendar focus check for ED-10466
|
|
52
|
-
if ((0, _browser.getBrowserInfo)().ie_version !== 11 && !isFocusingCalendar(event) && !isFocusingModal(event) && !isFocusingFloatingToolbar(event) && !isFocusingDragHandles(event) && !isFocusingDragHandlesClickableZone(event)) {
|
|
57
|
+
if ((0, _browser.getBrowserInfo)().ie_version !== 11 && !isFocusingCalendar(event) && !isFocusingModal(event) && !isFocusingFloatingToolbar(event) && !isFocusingDragHandles(event) && !isFocusingDragHandlesClickableZone(event) && !isFocusingTableMenu(event)) {
|
|
53
58
|
(0, _commands.setEditorFocus)(false)(state, dispatch);
|
|
54
59
|
}
|
|
55
60
|
event.preventDefault();
|