@atlaskit/editor-plugin-table 23.3.4 → 23.3.6
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 +13 -0
- package/dist/cjs/pm-plugins/commands/active-table-menu.js +19 -8
- package/dist/cjs/pm-plugins/commands/commands-with-analytics.js +9 -49
- package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/cjs/pm-plugins/handlers.js +1 -1
- package/dist/cjs/pm-plugins/main.js +4 -1
- package/dist/cjs/ui/ContentComponent.js +11 -1
- package/dist/cjs/ui/FloatingContextualButton/index.js +2 -2
- package/dist/cjs/ui/FloatingContextualMenu/CellMenuPopup.js +2 -2
- package/dist/cjs/ui/FloatingDragMenu/index.js +10 -38
- package/dist/cjs/ui/FloatingTableMenu/index.js +175 -0
- package/dist/cjs/ui/TableFloatingColumnControls/ColumnControls/index.js +43 -11
- package/dist/cjs/ui/TableFloatingControls/RowControls/DragControls.js +57 -26
- package/dist/cjs/ui/TableMenu/cell/items/MergeCellsItem.js +1 -1
- package/dist/cjs/ui/TableMenu/cell/items/SplitCellItem.js +1 -1
- package/dist/cjs/ui/TableMenu/cell/items/VerticalAlignDropdownItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/AddColumnLeftItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/AddColumnRightItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/DeleteColumnItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/DistributeColumnsItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/MoveColumnLeftItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/MoveColumnRightItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/SortDecreasingItem.js +1 -1
- package/dist/cjs/ui/TableMenu/column/items/SortIncreasingItem.js +1 -1
- package/dist/cjs/ui/TableMenu/row/items/AddRowAboveItem.js +1 -1
- package/dist/cjs/ui/TableMenu/row/items/AddRowBelowItem.js +1 -1
- package/dist/cjs/ui/TableMenu/row/items/DeleteRowItem.js +1 -1
- package/dist/cjs/ui/TableMenu/row/items/MoveRowDownItem.js +1 -1
- package/dist/cjs/ui/TableMenu/row/items/MoveRowUpItem.js +1 -1
- package/dist/cjs/ui/TableMenu/shared/TableMenu.js +8 -8
- package/dist/cjs/ui/TableMenu/shared/consts.js +1 -1
- package/dist/cjs/ui/TableMenu/shared/items/BackgroundColorItem.js +1 -1
- package/dist/cjs/ui/TableMenu/shared/items/ClearCellsItem.js +1 -1
- package/dist/es2019/pm-plugins/commands/active-table-menu.js +19 -8
- package/dist/es2019/pm-plugins/commands/commands-with-analytics.js +0 -39
- package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/es2019/pm-plugins/handlers.js +1 -1
- package/dist/es2019/pm-plugins/main.js +3 -0
- package/dist/es2019/ui/ContentComponent.js +11 -1
- package/dist/es2019/ui/FloatingContextualButton/index.js +2 -2
- package/dist/es2019/ui/FloatingContextualMenu/CellMenuPopup.js +2 -2
- package/dist/es2019/ui/FloatingDragMenu/index.js +11 -40
- package/dist/es2019/ui/FloatingTableMenu/index.js +165 -0
- package/dist/es2019/ui/TableFloatingColumnControls/ColumnControls/index.js +41 -7
- package/dist/es2019/ui/TableFloatingControls/RowControls/DragControls.js +40 -7
- package/dist/es2019/ui/TableMenu/cell/items/MergeCellsItem.js +1 -1
- package/dist/es2019/ui/TableMenu/cell/items/SplitCellItem.js +1 -1
- package/dist/es2019/ui/TableMenu/cell/items/VerticalAlignDropdownItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/AddColumnLeftItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/AddColumnRightItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/DeleteColumnItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/DistributeColumnsItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/MoveColumnLeftItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/MoveColumnRightItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/SortDecreasingItem.js +1 -1
- package/dist/es2019/ui/TableMenu/column/items/SortIncreasingItem.js +1 -1
- package/dist/es2019/ui/TableMenu/row/items/AddRowAboveItem.js +1 -1
- package/dist/es2019/ui/TableMenu/row/items/AddRowBelowItem.js +1 -1
- package/dist/es2019/ui/TableMenu/row/items/DeleteRowItem.js +1 -1
- package/dist/es2019/ui/TableMenu/row/items/MoveRowDownItem.js +1 -1
- package/dist/es2019/ui/TableMenu/row/items/MoveRowUpItem.js +1 -1
- package/dist/es2019/ui/TableMenu/shared/TableMenu.js +8 -8
- package/dist/es2019/ui/TableMenu/shared/consts.js +1 -1
- package/dist/es2019/ui/TableMenu/shared/items/BackgroundColorItem.js +1 -1
- package/dist/es2019/ui/TableMenu/shared/items/ClearCellsItem.js +1 -1
- package/dist/esm/pm-plugins/commands/active-table-menu.js +19 -8
- package/dist/esm/pm-plugins/commands/commands-with-analytics.js +8 -48
- package/dist/esm/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/esm/pm-plugins/handlers.js +1 -1
- package/dist/esm/pm-plugins/main.js +4 -1
- package/dist/esm/ui/ContentComponent.js +11 -1
- package/dist/esm/ui/FloatingContextualButton/index.js +2 -2
- package/dist/esm/ui/FloatingContextualMenu/CellMenuPopup.js +2 -2
- package/dist/esm/ui/FloatingDragMenu/index.js +11 -39
- package/dist/esm/ui/FloatingTableMenu/index.js +167 -0
- package/dist/esm/ui/TableFloatingColumnControls/ColumnControls/index.js +42 -10
- package/dist/esm/ui/TableFloatingControls/RowControls/DragControls.js +56 -25
- package/dist/esm/ui/TableMenu/cell/items/MergeCellsItem.js +1 -1
- package/dist/esm/ui/TableMenu/cell/items/SplitCellItem.js +1 -1
- package/dist/esm/ui/TableMenu/cell/items/VerticalAlignDropdownItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/AddColumnLeftItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/AddColumnRightItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/DeleteColumnItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/DistributeColumnsItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/MoveColumnLeftItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/MoveColumnRightItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/SortDecreasingItem.js +1 -1
- package/dist/esm/ui/TableMenu/column/items/SortIncreasingItem.js +1 -1
- package/dist/esm/ui/TableMenu/row/items/AddRowAboveItem.js +1 -1
- package/dist/esm/ui/TableMenu/row/items/AddRowBelowItem.js +1 -1
- package/dist/esm/ui/TableMenu/row/items/DeleteRowItem.js +1 -1
- package/dist/esm/ui/TableMenu/row/items/MoveRowDownItem.js +1 -1
- package/dist/esm/ui/TableMenu/row/items/MoveRowUpItem.js +1 -1
- package/dist/esm/ui/TableMenu/shared/TableMenu.js +8 -8
- package/dist/esm/ui/TableMenu/shared/consts.js +1 -1
- package/dist/esm/ui/TableMenu/shared/items/BackgroundColorItem.js +1 -1
- package/dist/esm/ui/TableMenu/shared/items/ClearCellsItem.js +1 -1
- package/dist/types/pm-plugins/commands/active-table-menu.d.ts +3 -3
- package/dist/types/pm-plugins/commands/commands-with-analytics.d.ts +1 -3
- package/dist/types/ui/FloatingTableMenu/index.d.ts +23 -0
- package/dist/types/ui/TableMenu/shared/consts.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/commands/active-table-menu.d.ts +3 -3
- package/dist/types-ts4.5/pm-plugins/commands/commands-with-analytics.d.ts +1 -3
- package/dist/types-ts4.5/ui/FloatingTableMenu/index.d.ts +23 -0
- package/dist/types-ts4.5/ui/TableMenu/shared/consts.d.ts +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-table
|
|
2
2
|
|
|
3
|
+
## 23.3.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 23.3.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`473e6619e9af8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/473e6619e9af8) -
|
|
14
|
+
Fix shift selection + state update in table menu
|
|
15
|
+
|
|
3
16
|
## 23.3.4
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -5,17 +5,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.toggleActiveTableMenu = exports.closeActiveTableMenu = void 0;
|
|
7
7
|
var _pluginKey = require("../plugin-key");
|
|
8
|
-
var
|
|
8
|
+
var applyMenuUserIntent = function applyMenuUserIntent(tr, api, nextActiveTableMenu) {
|
|
9
|
+
var _api$userIntent;
|
|
10
|
+
var isRowOrColumnMenuOpen = nextActiveTableMenu.type === 'row' || nextActiveTableMenu.type === 'column';
|
|
11
|
+
api === null || api === void 0 || (_api$userIntent = api.userIntent) === null || _api$userIntent === void 0 || _api$userIntent.commands.setCurrentUserIntent(isRowOrColumnMenuOpen ? 'tableDragMenuPopupOpen' : 'default')({
|
|
12
|
+
tr: tr
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var closeActiveTableMenu = exports.closeActiveTableMenu = function closeActiveTableMenu(api) {
|
|
9
16
|
return function (_ref) {
|
|
10
17
|
var tr = _ref.tr;
|
|
18
|
+
var nextActiveTableMenu = {
|
|
19
|
+
type: 'none'
|
|
20
|
+
};
|
|
11
21
|
tr.setMeta(_pluginKey.pluginKey, {
|
|
12
22
|
type: 'SET_ACTIVE_TABLE_MENU',
|
|
13
23
|
data: {
|
|
14
|
-
activeTableMenu:
|
|
15
|
-
type: 'none'
|
|
16
|
-
}
|
|
24
|
+
activeTableMenu: nextActiveTableMenu
|
|
17
25
|
}
|
|
18
26
|
});
|
|
27
|
+
applyMenuUserIntent(tr, api, nextActiveTableMenu);
|
|
19
28
|
if (!tr.docChanged) {
|
|
20
29
|
tr.setMeta('addToHistory', false);
|
|
21
30
|
}
|
|
@@ -31,17 +40,19 @@ var isSameActiveTableMenu = function isSameActiveTableMenu(current, next) {
|
|
|
31
40
|
}
|
|
32
41
|
return true;
|
|
33
42
|
};
|
|
34
|
-
var toggleActiveTableMenu = exports.toggleActiveTableMenu = function toggleActiveTableMenu(activeTableMenu, currentActiveTableMenu) {
|
|
43
|
+
var toggleActiveTableMenu = exports.toggleActiveTableMenu = function toggleActiveTableMenu(activeTableMenu, currentActiveTableMenu, api) {
|
|
35
44
|
return function (_ref2) {
|
|
36
45
|
var tr = _ref2.tr;
|
|
46
|
+
var nextActiveTableMenu = isSameActiveTableMenu(currentActiveTableMenu, activeTableMenu) ? {
|
|
47
|
+
type: 'none'
|
|
48
|
+
} : activeTableMenu;
|
|
37
49
|
tr.setMeta(_pluginKey.pluginKey, {
|
|
38
50
|
type: 'SET_ACTIVE_TABLE_MENU',
|
|
39
51
|
data: {
|
|
40
|
-
activeTableMenu:
|
|
41
|
-
type: 'none'
|
|
42
|
-
} : activeTableMenu
|
|
52
|
+
activeTableMenu: nextActiveTableMenu
|
|
43
53
|
}
|
|
44
54
|
});
|
|
55
|
+
applyMenuUserIntent(tr, api, nextActiveTableMenu);
|
|
45
56
|
tr.setMeta('addToHistory', false);
|
|
46
57
|
return tr;
|
|
47
58
|
};
|
|
@@ -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.wrapTableInExpandWithAnalytics = exports.toggleNumberColumnWithAnalytics = exports.toggleHeaderRowWithAnalytics = exports.toggleHeaderColumnWithAnalytics = exports.toggleFixedColumnWidthsOptionAnalytics = exports.
|
|
7
|
+
exports.wrapTableInExpandWithAnalytics = exports.toggleNumberColumnWithAnalytics = exports.toggleHeaderRowWithAnalytics = exports.toggleHeaderColumnWithAnalytics = exports.toggleFixedColumnWidthsOptionAnalytics = exports.splitCellWithAnalytics = exports.sortColumnWithAnalytics = exports.setTableAlignmentWithTableContentWithPosWithAnalytics = exports.setTableAlignmentWithAnalytics = exports.setColorWithAnalytics = exports.mergeCellsWithAnalytics = exports.insertRowWithAnalytics = exports.insertColumnWithAnalytics = exports.emptyMultipleCellsWithAnalytics = exports.distributeColumnsWidthsWithAnalytics = exports.deleteTableWithAnalytics = exports.deleteTableIfSelectedWithAnalytics = exports.deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut = exports.deleteRowsWithAnalytics = exports.deleteColumnsWithAnalytics = exports.changeColumnWidthByStepWithAnalytics = exports.addRowAroundSelection = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
10
10
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
@@ -18,7 +18,6 @@ var _deleteRows = require("../transforms/delete-rows");
|
|
|
18
18
|
var _merge = require("../transforms/merge");
|
|
19
19
|
var _analytics2 = require("../utils/analytics");
|
|
20
20
|
var _nodes = require("../utils/nodes");
|
|
21
|
-
var _activeTableMenu = require("./active-table-menu");
|
|
22
21
|
var _clear = require("./clear");
|
|
23
22
|
var _collapse = require("./collapse");
|
|
24
23
|
var _columnResize = require("./column-resize");
|
|
@@ -31,45 +30,6 @@ var _splitCell = require("./split-cell");
|
|
|
31
30
|
var _toggle = require("./toggle");
|
|
32
31
|
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; }
|
|
33
32
|
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; }
|
|
34
|
-
var toggleActiveTableMenuWithAnalytics = exports.toggleActiveTableMenuWithAnalytics = function toggleActiveTableMenuWithAnalytics(editorAnalyticsAPI) {
|
|
35
|
-
return function (direction, index) {
|
|
36
|
-
var trigger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mouse';
|
|
37
|
-
return (0, _analytics2.withEditorAnalyticsAPI)(function (state) {
|
|
38
|
-
var _getPluginState = (0, _pluginFactory.getPluginState)(state),
|
|
39
|
-
previousActiveTableMenu = _getPluginState.activeTableMenu;
|
|
40
|
-
var isSameActiveMenu = (previousActiveTableMenu === null || previousActiveTableMenu === void 0 ? void 0 : previousActiveTableMenu.type) === direction && previousActiveTableMenu.index === index;
|
|
41
|
-
if (isSameActiveMenu) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
action: _analytics.TABLE_ACTION.DRAG_MENU_OPENED,
|
|
46
|
-
actionSubject: _analytics.ACTION_SUBJECT.TABLE,
|
|
47
|
-
actionSubjectId: null,
|
|
48
|
-
eventType: _analytics.EVENT_TYPE.TRACK,
|
|
49
|
-
attributes: {
|
|
50
|
-
inputMethod: trigger === 'keyboard' ? _analytics.INPUT_METHOD.KEYBOARD : _analytics.INPUT_METHOD.MOUSE,
|
|
51
|
-
direction: direction
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
})(editorAnalyticsAPI)(function (state, dispatch) {
|
|
55
|
-
if (dispatch) {
|
|
56
|
-
var _getPluginState2 = (0, _pluginFactory.getPluginState)(state),
|
|
57
|
-
currentActiveTableMenu = _getPluginState2.activeTableMenu;
|
|
58
|
-
var newTr = (0, _activeTableMenu.toggleActiveTableMenu)({
|
|
59
|
-
type: direction,
|
|
60
|
-
index: index,
|
|
61
|
-
openedBy: trigger
|
|
62
|
-
}, currentActiveTableMenu)({
|
|
63
|
-
tr: state.tr
|
|
64
|
-
});
|
|
65
|
-
if (newTr) {
|
|
66
|
-
dispatch(newTr);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
33
|
var emptyMultipleCellsWithAnalytics = exports.emptyMultipleCellsWithAnalytics = function emptyMultipleCellsWithAnalytics(editorAnalyticsAPI) {
|
|
74
34
|
return function (inputMethod, targetCellPosition) {
|
|
75
35
|
return (0, _analytics2.withEditorAnalyticsAPI)(function (_ref) {
|
|
@@ -234,8 +194,8 @@ var changeColumnWidthByStepWithAnalytics = exports.changeColumnWidthByStepWithAn
|
|
|
234
194
|
table = _getSelectedTableInfo2.table,
|
|
235
195
|
totalRowCount = _getSelectedTableInfo2.totalRowCount,
|
|
236
196
|
totalColumnCount = _getSelectedTableInfo2.totalColumnCount;
|
|
237
|
-
var
|
|
238
|
-
colIndex =
|
|
197
|
+
var _getPluginState = (0, _pluginFactory.getPluginState)(state),
|
|
198
|
+
colIndex = _getPluginState.hoveredCell.colIndex;
|
|
239
199
|
return {
|
|
240
200
|
action: _analytics.TABLE_ACTION.COLUMN_RESIZED,
|
|
241
201
|
actionSubject: _analytics.ACTION_SUBJECT.TABLE,
|
|
@@ -355,8 +315,8 @@ var deleteSelectedRowsOrColumnsWithAnalyticsViaShortcut = exports.deleteSelected
|
|
|
355
315
|
}
|
|
356
316
|
var selectionType = (0, _misc.getTableSelectionType)(selection);
|
|
357
317
|
if (selectionType === 'row') {
|
|
358
|
-
var
|
|
359
|
-
pluginConfig =
|
|
318
|
+
var _getPluginState2 = (0, _pluginFactory.getPluginState)(state),
|
|
319
|
+
pluginConfig = _getPluginState2.pluginConfig;
|
|
360
320
|
var isHeaderRowRequired = pluginConfig.isHeaderRowRequired || false;
|
|
361
321
|
return deleteRowsWithAnalytics(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT, rect, isHeaderRowRequired)(state, dispatch);
|
|
362
322
|
} else if (selectionType === 'column') {
|
|
@@ -400,8 +360,8 @@ var toggleHeaderRowWithAnalytics = exports.toggleHeaderRowWithAnalytics = functi
|
|
|
400
360
|
var _getSelectedTableInfo7 = (0, _analytics2.getSelectedTableInfo)(state.selection),
|
|
401
361
|
totalRowCount = _getSelectedTableInfo7.totalRowCount,
|
|
402
362
|
totalColumnCount = _getSelectedTableInfo7.totalColumnCount;
|
|
403
|
-
var
|
|
404
|
-
isHeaderRowEnabled =
|
|
363
|
+
var _getPluginState3 = (0, _pluginFactory.getPluginState)(state),
|
|
364
|
+
isHeaderRowEnabled = _getPluginState3.isHeaderRowEnabled;
|
|
405
365
|
return {
|
|
406
366
|
action: _analytics.TABLE_ACTION.TOGGLED_HEADER_ROW,
|
|
407
367
|
actionSubject: _analytics.ACTION_SUBJECT.TABLE,
|
|
@@ -420,8 +380,8 @@ var toggleHeaderColumnWithAnalytics = exports.toggleHeaderColumnWithAnalytics =
|
|
|
420
380
|
var _getSelectedTableInfo8 = (0, _analytics2.getSelectedTableInfo)(state.selection),
|
|
421
381
|
totalRowCount = _getSelectedTableInfo8.totalRowCount,
|
|
422
382
|
totalColumnCount = _getSelectedTableInfo8.totalColumnCount;
|
|
423
|
-
var
|
|
424
|
-
isHeaderColumnEnabled =
|
|
383
|
+
var _getPluginState4 = (0, _pluginFactory.getPluginState)(state),
|
|
384
|
+
isHeaderColumnEnabled = _getPluginState4.isHeaderColumnEnabled;
|
|
425
385
|
return {
|
|
426
386
|
action: _analytics.TABLE_ACTION.TOGGLED_HEADER_COLUMN,
|
|
427
387
|
actionSubject: _analytics.ACTION_SUBJECT.TABLE,
|
|
@@ -96,7 +96,7 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI, isTableScalin
|
|
|
96
96
|
api === null || api === void 0 || api.core.actions.execute(function (_ref7) {
|
|
97
97
|
var _api$userIntent;
|
|
98
98
|
var tr = _ref7.tr;
|
|
99
|
-
(0, _activeTableMenu.closeActiveTableMenu)()({
|
|
99
|
+
(0, _activeTableMenu.closeActiveTableMenu)(api)({
|
|
100
100
|
tr: tr
|
|
101
101
|
});
|
|
102
102
|
api === null || api === void 0 || (_api$userIntent = api.userIntent) === null || _api$userIntent === void 0 || _api$userIntent.commands.setCurrentUserIntent('dragging')({
|
|
@@ -53,7 +53,7 @@ var updateTargetCellPosition = function updateTargetCellPosition(_ref2) {
|
|
|
53
53
|
}
|
|
54
54
|
var hasTargetCellChanged = pluginState.targetCellPosition !== _targetCellPosition;
|
|
55
55
|
var hasActiveTableMenu = pluginState.activeTableMenu != null && pluginState.activeTableMenu.type !== 'none';
|
|
56
|
-
var shouldCloseMenu = hasActiveTableMenu && (!tableNode || hasTargetCellChanged || !(tr.selection instanceof _cellSelection.CellSelection));
|
|
56
|
+
var shouldCloseMenu = hasActiveTableMenu && tr.selectionSet && (!tableNode || hasTargetCellChanged || !(tr.selection instanceof _cellSelection.CellSelection));
|
|
57
57
|
if (!hasTargetCellChanged && !shouldCloseMenu) {
|
|
58
58
|
return pluginState;
|
|
59
59
|
}
|
|
@@ -50,7 +50,10 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
50
50
|
wasFullWidthModeEnabled: previousFullWidthModeEnabled,
|
|
51
51
|
isHeaderRowEnabled: !!pluginConfig.allowHeaderRow,
|
|
52
52
|
isHeaderColumnEnabled: false,
|
|
53
|
-
isTableScalingEnabled: isTableScalingEnabled
|
|
53
|
+
isTableScalingEnabled: isTableScalingEnabled,
|
|
54
|
+
activeTableMenu: {
|
|
55
|
+
type: 'none'
|
|
56
|
+
}
|
|
54
57
|
}, _defaultTableSelection.defaultHoveredCell), _defaultTableSelection.defaultTableSelection), {}, {
|
|
55
58
|
getIntl: getIntl
|
|
56
59
|
}));
|
|
@@ -12,11 +12,13 @@ var _getDomRefFromSelection = require("@atlaskit/editor-common/get-dom-ref-from-
|
|
|
12
12
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
13
13
|
var _resizer = require("@atlaskit/editor-common/resizer");
|
|
14
14
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
15
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
15
16
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
16
17
|
var _FloatingContextualButton = _interopRequireDefault(require("./FloatingContextualButton"));
|
|
17
18
|
var _FloatingContextualMenu = _interopRequireDefault(require("./FloatingContextualMenu"));
|
|
18
19
|
var _FloatingDragMenu = _interopRequireDefault(require("./FloatingDragMenu"));
|
|
19
20
|
var _FloatingInsertButton = _interopRequireDefault(require("./FloatingInsertButton"));
|
|
21
|
+
var _FloatingTableMenu = _interopRequireDefault(require("./FloatingTableMenu"));
|
|
20
22
|
var _FloatingToolbarLabel = require("./FloatingToolbarLabel/FloatingToolbarLabel");
|
|
21
23
|
var _globalStyles = require("./global-styles");
|
|
22
24
|
var _SizeSelector = require("./SizeSelector");
|
|
@@ -143,7 +145,15 @@ var ContentComponentInternal = function ContentComponentInternal(_ref) {
|
|
|
143
145
|
isCommentEditor: options === null || options === void 0 ? void 0 : options.isCommentEditor,
|
|
144
146
|
api: api,
|
|
145
147
|
isDragMenuOpen: isDragMenuOpen
|
|
146
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
148
|
+
}), (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? /*#__PURE__*/_react.default.createElement(_FloatingTableMenu.default, {
|
|
149
|
+
api: api,
|
|
150
|
+
boundariesElement: popupsBoundariesElement,
|
|
151
|
+
editorView: editorView,
|
|
152
|
+
mountPoint: popupsMountPoint,
|
|
153
|
+
stickyHeaders: stickyHeader,
|
|
154
|
+
tableWrapper: tableWrapperTarget,
|
|
155
|
+
targetCellPosition: targetCellPosition
|
|
156
|
+
}) : /*#__PURE__*/_react.default.createElement(_FloatingDragMenu.default, {
|
|
147
157
|
editorView: editorView,
|
|
148
158
|
mountPoint: popupsMountPoint,
|
|
149
159
|
boundariesElement: popupsBoundariesElement,
|
|
@@ -78,7 +78,7 @@ var FloatingContextualButtonInner = /*#__PURE__*/_react.default.memo(function (p
|
|
|
78
78
|
(0, _commands.toggleActiveTableMenu)({
|
|
79
79
|
type: 'cell',
|
|
80
80
|
openedBy: 'mouse'
|
|
81
|
-
}, currentActiveTableMenu)({
|
|
81
|
+
}, currentActiveTableMenu, api)({
|
|
82
82
|
tr: tr
|
|
83
83
|
});
|
|
84
84
|
return tr;
|
|
@@ -113,7 +113,7 @@ var FloatingContextualButtonInner = /*#__PURE__*/_react.default.memo(function (p
|
|
|
113
113
|
(0, _commands.toggleActiveTableMenu)({
|
|
114
114
|
type: 'cell',
|
|
115
115
|
openedBy: 'keyboard'
|
|
116
|
-
}, currentActiveTableMenu)({
|
|
116
|
+
}, currentActiveTableMenu, api)({
|
|
117
117
|
tr: tr
|
|
118
118
|
});
|
|
119
119
|
return tr;
|
|
@@ -43,11 +43,11 @@ var CellMenuPopup = exports.CellMenuPopup = function CellMenuPopup(_ref) {
|
|
|
43
43
|
var closeCellMenu = (0, _react.useCallback)(function () {
|
|
44
44
|
var _getPluginState = (0, _pluginFactory.getPluginState)(editorView.state),
|
|
45
45
|
isCellMenuOpenByKeyboard = _getPluginState.isCellMenuOpenByKeyboard;
|
|
46
|
-
api === null || api === void 0 || api.core.actions.execute((0, _commands.closeActiveTableMenu)());
|
|
46
|
+
api === null || api === void 0 || api.core.actions.execute((0, _commands.closeActiveTableMenu)(api));
|
|
47
47
|
if (isCellMenuOpenByKeyboard) {
|
|
48
48
|
(0, _commands.setFocusToCellMenu)(false)(editorView.state, editorView.dispatch);
|
|
49
49
|
}
|
|
50
|
-
}, [api
|
|
50
|
+
}, [api, editorView]);
|
|
51
51
|
var isEventInsideCellMenu = (0, _react.useCallback)(function (event) {
|
|
52
52
|
var _popupContentRef$curr;
|
|
53
53
|
var target = event.target;
|
|
@@ -6,21 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
10
9
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
11
|
-
var _userIntent = require("@atlaskit/editor-common/user-intent");
|
|
12
10
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
13
11
|
var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
|
|
14
12
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
|
-
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
16
13
|
var _types = require("../../types");
|
|
17
14
|
var _consts = require("../consts");
|
|
18
|
-
var _keys = require("../TableMenu/column/keys");
|
|
19
|
-
var _keys2 = require("../TableMenu/row/keys");
|
|
20
|
-
var _consts2 = require("../TableMenu/shared/consts");
|
|
21
|
-
var _TableMenu = require("../TableMenu/shared/TableMenu");
|
|
22
15
|
var _DragMenu = _interopRequireDefault(require("./DragMenu"));
|
|
23
|
-
var TABLE_MENU_OFFSET = _consts.dragTableInsertColumnButtonSize + 4;
|
|
24
16
|
var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
25
17
|
var _getEditorFeatureFlag;
|
|
26
18
|
var mountPoint = _ref.mountPoint,
|
|
@@ -42,23 +34,11 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
42
34
|
api = _ref.api,
|
|
43
35
|
isCommentEditor = _ref.isCommentEditor,
|
|
44
36
|
tableWrapper = _ref.tableWrapper;
|
|
45
|
-
|
|
46
|
-
var _states$tableState;
|
|
47
|
-
return {
|
|
48
|
-
activeTableMenu: (_states$tableState = states.tableState) === null || _states$tableState === void 0 ? void 0 : _states$tableState.activeTableMenu
|
|
49
|
-
};
|
|
50
|
-
}),
|
|
51
|
-
activeTableMenu = _useSharedPluginState.activeTableMenu;
|
|
52
|
-
var isActiveTableMenuDragMenu = (activeTableMenu === null || activeTableMenu === void 0 ? void 0 : activeTableMenu.type) === 'row' || (activeTableMenu === null || activeTableMenu === void 0 ? void 0 : activeTableMenu.type) === 'column';
|
|
53
|
-
var hasActiveTableMenuState = activeTableMenu !== undefined;
|
|
54
|
-
var isDragMenuOpen = (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) && hasActiveTableMenuState ? isActiveTableMenuDragMenu : isOpen;
|
|
55
|
-
var dragMenuDirection = (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) && hasActiveTableMenuState ? isActiveTableMenuDragMenu ? activeTableMenu.type : undefined : direction;
|
|
56
|
-
var dragMenuIndex = (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) && hasActiveTableMenuState ? isActiveTableMenuDragMenu ? activeTableMenu.index : undefined : index;
|
|
57
|
-
if (!isDragMenuOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
|
|
37
|
+
if (!isOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
|
|
58
38
|
return null;
|
|
59
39
|
}
|
|
60
40
|
var inStickyMode = (stickyHeaders === null || stickyHeaders === void 0 ? void 0 : stickyHeaders.sticky) || (tableWrapper === null || tableWrapper === void 0 ? void 0 : tableWrapper.classList.contains(_types.TableCssClassName.TABLE_NODE_WRAPPER_NO_OVERFLOW)) && (0, _platformFeatureFlags.fg)('platform_editor_table_sticky_header_patch_7');
|
|
61
|
-
var targetHandleRef =
|
|
41
|
+
var targetHandleRef = direction === 'row' ? document.querySelector('#drag-handle-button-row') : document.querySelector('#drag-handle-button-column');
|
|
62
42
|
if (!targetHandleRef || !(editorView.state.selection instanceof _cellSelection.CellSelection)) {
|
|
63
43
|
return null;
|
|
64
44
|
}
|
|
@@ -67,8 +47,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
67
47
|
tableWithFixedColumnWidthsOption = _ref2$tableWithFixedC === void 0 ? false : _ref2$tableWithFixedC;
|
|
68
48
|
var shouldUseIncreasedScalingPercent = isTableScalingEnabled && (tableWithFixedColumnWidthsOption || isCommentEditor);
|
|
69
49
|
return /*#__PURE__*/_react.default.createElement(_ui.Popup, {
|
|
70
|
-
alignX:
|
|
71
|
-
alignY:
|
|
50
|
+
alignX: direction === 'row' ? 'right' : undefined,
|
|
51
|
+
alignY: direction === 'row' ? 'start' : undefined
|
|
72
52
|
// Ignored via go/ees005
|
|
73
53
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
74
54
|
,
|
|
@@ -76,7 +56,7 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
76
56
|
mountTo: mountPoint,
|
|
77
57
|
boundariesElement: boundariesElement,
|
|
78
58
|
scrollableElement: scrollableElement,
|
|
79
|
-
fitWidth:
|
|
59
|
+
fitWidth: _consts.dragMenuDropdownWidth,
|
|
80
60
|
fitHeight: _consts.tablePopupMenuFitHeight
|
|
81
61
|
// z-index value below is to ensure that this menu is above other floating menu
|
|
82
62
|
// in table, but below floating dialogs like typeaheads, pickers, etc.
|
|
@@ -84,22 +64,14 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
84
64
|
,
|
|
85
65
|
zIndex: inStickyMode ? _editorSharedStyles.akEditorFloatingDialogZIndex : _editorSharedStyles.akEditorFloatingOverlapPanelZIndex,
|
|
86
66
|
forcePlacement: true,
|
|
87
|
-
|
|
88
|
-
offset: (0, _expValEquals.expValEquals)('platform_editor_table_menu_updates', 'isEnabled', true) ? [TABLE_MENU_OFFSET, 0] : direction === 'row' ? [-9, 0] : [0, -7],
|
|
67
|
+
offset: direction === 'row' ? [-9, 0] : [0, -7],
|
|
89
68
|
stick: true
|
|
90
|
-
},
|
|
91
|
-
api: api,
|
|
92
|
-
userIntent: "tableDragMenuPopupOpen"
|
|
93
|
-
}, /*#__PURE__*/_react.default.createElement(_TableMenu.TableMenu, {
|
|
94
|
-
api: api,
|
|
95
|
-
editorView: editorView,
|
|
96
|
-
surface: dragMenuDirection === 'row' ? _keys2.ROW_MENU : _keys.COLUMN_MENU
|
|
97
|
-
})) : /*#__PURE__*/_react.default.createElement(_DragMenu.default, {
|
|
69
|
+
}, /*#__PURE__*/_react.default.createElement(_DragMenu.default, {
|
|
98
70
|
editorView: editorView,
|
|
99
|
-
isOpen:
|
|
71
|
+
isOpen: isOpen,
|
|
100
72
|
tableNode: tableNode,
|
|
101
|
-
direction:
|
|
102
|
-
index:
|
|
73
|
+
direction: direction,
|
|
74
|
+
index: index,
|
|
103
75
|
target: targetHandleRef || undefined,
|
|
104
76
|
targetCellPosition: targetCellPosition,
|
|
105
77
|
getEditorContainerWidth: getEditorContainerWidth,
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
10
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
11
|
+
var _uiReact = require("@atlaskit/editor-common/ui-react");
|
|
12
|
+
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
13
|
+
var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
|
|
14
|
+
var _toolbarKeyboardNavigationProvider = require("@atlaskit/editor-toolbar/toolbar-keyboard-navigation-provider");
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
+
var _commands = require("../../pm-plugins/commands");
|
|
17
|
+
var _types = require("../../types");
|
|
18
|
+
var _consts = require("../consts");
|
|
19
|
+
var _keys = require("../TableMenu/column/keys");
|
|
20
|
+
var _keys2 = require("../TableMenu/row/keys");
|
|
21
|
+
var _consts2 = require("../TableMenu/shared/consts");
|
|
22
|
+
var _TableMenu = require("../TableMenu/shared/TableMenu");
|
|
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
|
+
var PopupWithListeners = (0, _uiReact.withReactEditorViewOuterListeners)(_ui.Popup);
|
|
25
|
+
|
|
26
|
+
// Defer drag-handle clicks to the drag handle's own toggle/select handlers — those own
|
|
27
|
+
// the open/switch/close semantics for moving between rows/columns.
|
|
28
|
+
var DRAG_HANDLE_CONTROLS_SELECTOR = ".".concat(_types.TableCssClassName.DRAG_ROW_CONTROLS, ", .").concat(_types.TableCssClassName.DRAG_COLUMN_CONTROLS);
|
|
29
|
+
var NESTED_DROPDOWN_SELECTOR = '[data-toolbar-nested-dropdown-menu]';
|
|
30
|
+
|
|
31
|
+
// Marks the menu subtree that ToolbarKeyboardNavigationProvider scopes its
|
|
32
|
+
// keyboard handling to. The provider only reacts to events whose target sits
|
|
33
|
+
// inside this selector.
|
|
34
|
+
var TABLE_MENU_NAV_SELECTOR = '[data-table-drag-menu-nav="true"]';
|
|
35
|
+
var TABLE_MENU_OFFSET = _consts.dragTableInsertColumnButtonSize + 4;
|
|
36
|
+
var POPUP_OFFSET = [TABLE_MENU_OFFSET, 0];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Row and column menu for table.
|
|
40
|
+
*/
|
|
41
|
+
var FloatingTableMenu = function FloatingTableMenu(_ref) {
|
|
42
|
+
var api = _ref.api,
|
|
43
|
+
boundariesElement = _ref.boundariesElement,
|
|
44
|
+
editorView = _ref.editorView,
|
|
45
|
+
mountPoint = _ref.mountPoint,
|
|
46
|
+
scrollableElement = _ref.scrollableElement,
|
|
47
|
+
stickyHeaders = _ref.stickyHeaders,
|
|
48
|
+
tableWrapper = _ref.tableWrapper,
|
|
49
|
+
targetCellPosition = _ref.targetCellPosition;
|
|
50
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['table'], function (states) {
|
|
51
|
+
var _states$tableState;
|
|
52
|
+
return {
|
|
53
|
+
activeTableMenu: (_states$tableState = states.tableState) === null || _states$tableState === void 0 ? void 0 : _states$tableState.activeTableMenu
|
|
54
|
+
};
|
|
55
|
+
}),
|
|
56
|
+
activeTableMenu = _useSharedPluginState.activeTableMenu;
|
|
57
|
+
var isDragMenuOpen = (activeTableMenu === null || activeTableMenu === void 0 ? void 0 : activeTableMenu.type) === 'row' || (activeTableMenu === null || activeTableMenu === void 0 ? void 0 : activeTableMenu.type) === 'column';
|
|
58
|
+
var dragMenuDirection = isDragMenuOpen ? activeTableMenu.type : undefined;
|
|
59
|
+
var isOpenedByKeyboard = isDragMenuOpen && activeTableMenu.openedBy === 'keyboard';
|
|
60
|
+
var popupContentRef = (0, _react.useRef)(null);
|
|
61
|
+
var setOutsideClickTargetRef = (0, _react.useContext)(_uiReact.OutsideClickTargetRefContext);
|
|
62
|
+
var navWrapperRef = (0, _react.useRef)(null);
|
|
63
|
+
var handlePopupRef = (0, _react.useCallback)(function (el) {
|
|
64
|
+
popupContentRef.current = el;
|
|
65
|
+
setOutsideClickTargetRef === null || setOutsideClickTargetRef === void 0 || setOutsideClickTargetRef(el);
|
|
66
|
+
}, [setOutsideClickTargetRef]);
|
|
67
|
+
var dismiss = (0, _react.useCallback)(function () {
|
|
68
|
+
api === null || api === void 0 || api.core.actions.execute((0, _commands.closeActiveTableMenu)(api));
|
|
69
|
+
}, [api]);
|
|
70
|
+
var returnFocusToDragHandle = (0, _react.useCallback)(function () {
|
|
71
|
+
// Match legacy DragMenu's closeMenu('handle') behaviour.
|
|
72
|
+
var handleId = dragMenuDirection === 'row' ? '#drag-handle-button-row' : '#drag-handle-button-column';
|
|
73
|
+
var handle = document.querySelector(handleId);
|
|
74
|
+
handle === null || handle === void 0 || handle.focus();
|
|
75
|
+
}, [dragMenuDirection]);
|
|
76
|
+
var focusFirstMenuItem = (0, _react.useCallback)(function () {
|
|
77
|
+
var root = navWrapperRef.current;
|
|
78
|
+
if (!root) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
var firstItem = root.querySelector('[role="menuitem"]:not([disabled]), [role="menuitemcheckbox"]:not([disabled]), [role="menuitemradio"]:not([disabled]), button:not([disabled])');
|
|
82
|
+
firstItem === null || firstItem === void 0 || firstItem.focus();
|
|
83
|
+
}, []);
|
|
84
|
+
|
|
85
|
+
// Focus the first menu item when the menu opens via keyboard (Enter/Space on
|
|
86
|
+
// the drag handle). Mouse-opened menus leave focus where the user clicked.
|
|
87
|
+
var setNavWrapperRef = (0, _react.useCallback)(function (el) {
|
|
88
|
+
navWrapperRef.current = el;
|
|
89
|
+
if (el && isOpenedByKeyboard) {
|
|
90
|
+
// rAF allows the popup to finish positioning before focusing.
|
|
91
|
+
requestAnimationFrame(function () {
|
|
92
|
+
focusFirstMenuItem();
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}, [focusFirstMenuItem, isOpenedByKeyboard]);
|
|
96
|
+
var handleKeyboardFocus = (0, _react.useCallback)(function (_event) {
|
|
97
|
+
focusFirstMenuItem();
|
|
98
|
+
}, [focusFirstMenuItem]);
|
|
99
|
+
var handleEscape = (0, _react.useCallback)(function (event) {
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
event.stopPropagation();
|
|
102
|
+
dismiss();
|
|
103
|
+
returnFocusToDragHandle();
|
|
104
|
+
}, [dismiss, returnFocusToDragHandle]);
|
|
105
|
+
|
|
106
|
+
// Memoize the editor DOM reference so the provider doesn't re-bind listeners
|
|
107
|
+
// on every render (the provider depends on `dom` in its effect's deps).
|
|
108
|
+
var editorDom = (0, _react.useMemo)(function () {
|
|
109
|
+
return editorView.dom instanceof HTMLElement ? editorView.dom : undefined;
|
|
110
|
+
}, [editorView.dom]);
|
|
111
|
+
|
|
112
|
+
// The drag menu is opened by interacting with the drag handle directly, not
|
|
113
|
+
// by a global page-level shortcut.
|
|
114
|
+
var isShortcutToFocusToolbar = (0, _react.useCallback)(function () {
|
|
115
|
+
return false;
|
|
116
|
+
}, []);
|
|
117
|
+
var handleClickOutside = (0, _react.useCallback)(function (event) {
|
|
118
|
+
var _popupContentRef$curr;
|
|
119
|
+
var target = event.target;
|
|
120
|
+
// Ignore clicks handled by this popup, drag handles, or nested portalled
|
|
121
|
+
// dropdowns so those controls can manage their own open/close behavior.
|
|
122
|
+
if (target instanceof Node && (_popupContentRef$curr = popupContentRef.current) !== null && _popupContentRef$curr !== void 0 && _popupContentRef$curr.contains(target) || target instanceof Element && (target.closest(DRAG_HANDLE_CONTROLS_SELECTOR) || target.closest(NESTED_DROPDOWN_SELECTOR))) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
dismiss();
|
|
126
|
+
}, [dismiss]);
|
|
127
|
+
if (!isDragMenuOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
var inStickyMode = (stickyHeaders === null || stickyHeaders === void 0 ? void 0 : stickyHeaders.sticky) || (tableWrapper === null || tableWrapper === void 0 ? void 0 : tableWrapper.classList.contains(_types.TableCssClassName.TABLE_NODE_WRAPPER_NO_OVERFLOW)) && (0, _platformFeatureFlags.fg)('platform_editor_table_sticky_header_patch_7');
|
|
131
|
+
var targetHandleRef = dragMenuDirection === 'row' ? document.querySelector('#drag-handle-button-row') : document.querySelector('#drag-handle-button-column');
|
|
132
|
+
if (!targetHandleRef || !(editorView.state.selection instanceof _cellSelection.CellSelection)) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return /*#__PURE__*/_react.default.createElement(PopupWithListeners, {
|
|
136
|
+
alignX: dragMenuDirection === 'row' ? 'right' : undefined,
|
|
137
|
+
alignY: dragMenuDirection === 'row' ? 'start' : undefined
|
|
138
|
+
// Ignored via go/ees005
|
|
139
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
140
|
+
,
|
|
141
|
+
target: targetHandleRef,
|
|
142
|
+
mountTo: mountPoint,
|
|
143
|
+
boundariesElement: boundariesElement,
|
|
144
|
+
scrollableElement: scrollableElement,
|
|
145
|
+
fitWidth: _consts2.TABLE_MENU_WIDTH,
|
|
146
|
+
fitHeight: _consts.tablePopupMenuFitHeight
|
|
147
|
+
// z-index value below is to ensure that this menu is above other floating menu
|
|
148
|
+
// in table, but below floating dialogs like typeaheads, pickers, etc.
|
|
149
|
+
// In sticky mode, we want to show the menu above the sticky header
|
|
150
|
+
,
|
|
151
|
+
zIndex: inStickyMode ? _editorSharedStyles.akEditorFloatingDialogZIndex : _editorSharedStyles.akEditorFloatingOverlapPanelZIndex,
|
|
152
|
+
forcePlacement: true,
|
|
153
|
+
preventOverflow: dragMenuDirection === 'row',
|
|
154
|
+
offset: POPUP_OFFSET,
|
|
155
|
+
stick: true,
|
|
156
|
+
handleClickOutside: handleClickOutside
|
|
157
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
158
|
+
ref: handlePopupRef
|
|
159
|
+
}, /*#__PURE__*/_react.default.createElement(_toolbarKeyboardNavigationProvider.ToolbarKeyboardNavigationProvider, {
|
|
160
|
+
childComponentSelector: TABLE_MENU_NAV_SELECTOR,
|
|
161
|
+
dom: editorDom,
|
|
162
|
+
isShortcutToFocusToolbar: isShortcutToFocusToolbar,
|
|
163
|
+
handleFocus: handleKeyboardFocus,
|
|
164
|
+
handleEscape: handleEscape
|
|
165
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
166
|
+
"data-table-drag-menu-nav": "true",
|
|
167
|
+
ref: setNavWrapperRef
|
|
168
|
+
}, /*#__PURE__*/_react.default.createElement(_TableMenu.TableMenu, {
|
|
169
|
+
api: api,
|
|
170
|
+
editorView: editorView,
|
|
171
|
+
surface: dragMenuDirection === 'row' ? _keys2.ROW_MENU : _keys.COLUMN_MENU
|
|
172
|
+
})))));
|
|
173
|
+
};
|
|
174
|
+
FloatingTableMenu.displayName = 'FloatingTableMenu';
|
|
175
|
+
var _default = exports.default = FloatingTableMenu;
|