@atlaskit/editor-plugin-table 24.3.14 → 24.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/nodeviews/TableResizer.js +4 -10
  3. package/dist/cjs/nodeviews/TableSSRReactContextsProvider.js +23 -0
  4. package/dist/cjs/nodeviews/table-node-views.js +1 -1
  5. package/dist/cjs/nodeviews/table.js +14 -21
  6. package/dist/cjs/pm-plugins/commands/insert.js +10 -1
  7. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +12 -25
  8. package/dist/cjs/pm-plugins/main.js +3 -1
  9. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +10 -22
  10. package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +2 -1
  11. package/dist/cjs/tablePlugin.js +10 -1
  12. package/dist/cjs/ui/TableMenu/cell/getCellMenuComponents.js +153 -1
  13. package/dist/cjs/ui/TableMenu/cell/keys.js +19 -5
  14. package/dist/cjs/ui/TableMenu/column/getColumnMenuComponents.js +166 -1
  15. package/dist/cjs/ui/TableMenu/column/items/AddColumnRightItem.js +2 -2
  16. package/dist/cjs/ui/TableMenu/column/items/DeleteColumnItem.js +3 -3
  17. package/dist/cjs/ui/TableMenu/column/items/DistributeColumnsItem.js +2 -2
  18. package/dist/cjs/ui/TableMenu/row/getRowMenuComponents.js +136 -1
  19. package/dist/cjs/ui/TableMenu/row/items/AddRowBelowItem.js +2 -2
  20. package/dist/cjs/ui/TableMenu/row/items/DeleteRowItem.js +3 -3
  21. package/dist/cjs/ui/TableMenu/shared/getSharedItems.js +141 -1
  22. package/dist/cjs/ui/TableMenu/shared/selection.js +19 -0
  23. package/dist/es2019/nodeviews/TableResizer.js +4 -10
  24. package/dist/es2019/nodeviews/TableSSRReactContextsProvider.js +17 -0
  25. package/dist/es2019/nodeviews/table-node-views.js +1 -1
  26. package/dist/es2019/nodeviews/table.js +15 -22
  27. package/dist/es2019/pm-plugins/commands/insert.js +10 -1
  28. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +12 -25
  29. package/dist/es2019/pm-plugins/main.js +4 -2
  30. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +10 -22
  31. package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +2 -1
  32. package/dist/es2019/tablePlugin.js +10 -1
  33. package/dist/es2019/ui/TableMenu/cell/getCellMenuComponents.js +134 -2
  34. package/dist/es2019/ui/TableMenu/cell/keys.js +25 -2
  35. package/dist/es2019/ui/TableMenu/column/getColumnMenuComponents.js +144 -1
  36. package/dist/es2019/ui/TableMenu/column/items/AddColumnRightItem.js +2 -2
  37. package/dist/es2019/ui/TableMenu/column/items/DeleteColumnItem.js +3 -3
  38. package/dist/es2019/ui/TableMenu/column/items/DistributeColumnsItem.js +2 -2
  39. package/dist/es2019/ui/TableMenu/row/getRowMenuComponents.js +118 -1
  40. package/dist/es2019/ui/TableMenu/row/items/AddRowBelowItem.js +2 -2
  41. package/dist/es2019/ui/TableMenu/row/items/DeleteRowItem.js +3 -3
  42. package/dist/es2019/ui/TableMenu/shared/getSharedItems.js +130 -4
  43. package/dist/es2019/ui/TableMenu/shared/selection.js +14 -0
  44. package/dist/esm/nodeviews/TableResizer.js +4 -10
  45. package/dist/esm/nodeviews/TableSSRReactContextsProvider.js +16 -0
  46. package/dist/esm/nodeviews/table-node-views.js +1 -1
  47. package/dist/esm/nodeviews/table.js +15 -22
  48. package/dist/esm/pm-plugins/commands/insert.js +10 -1
  49. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +12 -25
  50. package/dist/esm/pm-plugins/main.js +4 -2
  51. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +10 -22
  52. package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +2 -1
  53. package/dist/esm/tablePlugin.js +10 -1
  54. package/dist/esm/ui/TableMenu/cell/getCellMenuComponents.js +154 -2
  55. package/dist/esm/ui/TableMenu/cell/keys.js +16 -2
  56. package/dist/esm/ui/TableMenu/column/getColumnMenuComponents.js +166 -1
  57. package/dist/esm/ui/TableMenu/column/items/AddColumnRightItem.js +2 -2
  58. package/dist/esm/ui/TableMenu/column/items/DeleteColumnItem.js +3 -3
  59. package/dist/esm/ui/TableMenu/column/items/DistributeColumnsItem.js +2 -2
  60. package/dist/esm/ui/TableMenu/row/getRowMenuComponents.js +136 -1
  61. package/dist/esm/ui/TableMenu/row/items/AddRowBelowItem.js +2 -2
  62. package/dist/esm/ui/TableMenu/row/items/DeleteRowItem.js +3 -3
  63. package/dist/esm/ui/TableMenu/shared/getSharedItems.js +144 -4
  64. package/dist/esm/ui/TableMenu/shared/selection.js +14 -0
  65. package/dist/types/nodeviews/TableSSRReactContextsProvider.d.ts +8 -0
  66. package/dist/types/nodeviews/table-node-views.d.ts +2 -0
  67. package/dist/types/nodeviews/table.d.ts +3 -1
  68. package/dist/types/nodeviews/types.d.ts +2 -0
  69. package/dist/types/tablePluginType.d.ts +3 -2
  70. package/dist/types/ui/TableMenu/cell/keys.d.ts +2 -0
  71. package/dist/types/ui/TableMenu/column/getColumnMenuComponents.d.ts +1 -1
  72. package/dist/types/ui/TableMenu/shared/selection.d.ts +8 -0
  73. package/package.json +9 -3
@@ -4,9 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.VERTICAL_ALIGN_TOP_ITEM = exports.VERTICAL_ALIGN_MIDDLE_ITEM = exports.VERTICAL_ALIGN_MENU_SECTION_RANK = exports.VERTICAL_ALIGN_MENU_SECTION = exports.VERTICAL_ALIGN_MENU_RANK = exports.VERTICAL_ALIGN_MENU = exports.VERTICAL_ALIGN_BOTTOM_ITEM = 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;
7
+ exports.VERTICAL_ALIGN_TOP_ITEM = exports.VERTICAL_ALIGN_MIDDLE_ITEM = exports.VERTICAL_ALIGN_MENU_SECTION_RANK = exports.VERTICAL_ALIGN_MENU_SECTION = exports.VERTICAL_ALIGN_MENU_RANK = exports.VERTICAL_ALIGN_MENU = exports.VERTICAL_ALIGN_BOTTOM_ITEM = 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_ADD_SECTION_RANK = exports.CELL_ADD_SECTION = exports.CELL_ACTION_SECTION_RANK = exports.CELL_ACTION_SECTION = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _keys = require("../shared/keys");
9
+ var _keys = require("../column/keys");
10
+ var _keys2 = require("../row/keys");
11
+ var _keys3 = require("../shared/keys");
10
12
  // --- Menu surface ---
11
13
 
12
14
  var CELL_MENU = exports.CELL_MENU = {
@@ -20,11 +22,15 @@ var CELL_ACTION_SECTION = exports.CELL_ACTION_SECTION = {
20
22
  type: 'menu-section',
21
23
  key: 'cell-action-section'
22
24
  };
25
+ var CELL_ADD_SECTION = exports.CELL_ADD_SECTION = {
26
+ type: 'menu-section',
27
+ key: 'cell-add-section'
28
+ };
23
29
  var CELL_DANGER_SECTION = exports.CELL_DANGER_SECTION = {
24
30
  type: 'menu-section',
25
31
  key: 'cell-danger-section'
26
32
  };
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);
33
+ var CELL_MENU_RANK = exports.CELL_MENU_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, CELL_ACTION_SECTION.key, 100), CELL_ADD_SECTION.key, 200), CELL_DANGER_SECTION.key, 300);
28
34
  var MERGE_CELLS_ITEM = exports.MERGE_CELLS_ITEM = {
29
35
  type: 'menu-item',
30
36
  key: 'merge-cells'
@@ -55,8 +61,16 @@ var VERTICAL_ALIGN_BOTTOM_ITEM = exports.VERTICAL_ALIGN_BOTTOM_ITEM = {
55
61
  };
56
62
 
57
63
  // --- Item ranks within their sections ---
64
+ //
65
+ // The add/delete items rendered in the cell menu are shared with the row/column
66
+ // menus (registered once in `../shared/getSharedItems` with multiple parents), so
67
+ // we reuse their existing keys here rather than declaring cell-specific ones.
58
68
 
59
- var CELL_ACTION_SECTION_RANK = exports.CELL_ACTION_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys.BACKGROUND_COLOR_ITEM.key, 100), VERTICAL_ALIGN_MENU.key, 200), MERGE_CELLS_ITEM.key, 300), SPLIT_CELL_ITEM.key, 400);
69
+ var CELL_ACTION_SECTION_RANK = exports.CELL_ACTION_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys3.BACKGROUND_COLOR_ITEM.key, 100), VERTICAL_ALIGN_MENU.key, 200), MERGE_CELLS_ITEM.key, 300), SPLIT_CELL_ITEM.key, 400);
60
70
  var VERTICAL_ALIGN_MENU_RANK = exports.VERTICAL_ALIGN_MENU_RANK = (0, _defineProperty2.default)({}, VERTICAL_ALIGN_MENU_SECTION.key, 100);
61
71
  var VERTICAL_ALIGN_MENU_SECTION_RANK = exports.VERTICAL_ALIGN_MENU_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, VERTICAL_ALIGN_TOP_ITEM.key, 100), VERTICAL_ALIGN_MIDDLE_ITEM.key, 200), VERTICAL_ALIGN_BOTTOM_ITEM.key, 300);
62
- var CELL_DANGER_SECTION_RANK = exports.CELL_DANGER_SECTION_RANK = (0, _defineProperty2.default)({}, _keys.CLEAR_CELLS_ITEM.key, 100);
72
+
73
+ // Merge/Split cells are relocated from the action section into the add section when the
74
+ // cell menu update gate is on; they sit at the top of the section.
75
+ var CELL_ADD_SECTION_RANK = exports.CELL_ADD_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, MERGE_CELLS_ITEM.key, 100), SPLIT_CELL_ITEM.key, 200), _keys.ADD_COLUMN_RIGHT_ITEM.key, 300), _keys2.ADD_ROW_BELOW_ITEM.key, 400), _keys.DISTRIBUTE_COLUMNS_ITEM.key, 500);
76
+ var CELL_DANGER_SECTION_RANK = exports.CELL_DANGER_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys3.CLEAR_CELLS_ITEM.key, 100), _keys.DELETE_COLUMN_ITEM.key, 200), _keys2.DELETE_ROW_ITEM.key, 300);
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getColumnMenuComponents = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _editorToolbar = require("@atlaskit/editor-toolbar");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _AddColumnLeftItem = require("./items/AddColumnLeftItem");
11
12
  var _AddColumnRightItem = require("./items/AddColumnRightItem");
12
13
  var _ColumnBackgroundSection = require("./items/ColumnBackgroundSection");
@@ -21,7 +22,171 @@ var _SortIncreasingItem = require("./items/SortIncreasingItem");
21
22
  var _keys = require("./keys");
22
23
  var getColumnMenuComponents = exports.getColumnMenuComponents = function getColumnMenuComponents(_ref) {
23
24
  var api = _ref.api;
24
- return [
25
+ return (0, _platformFeatureFlags.fg)('platform_editor_table_cell_menu_update') ? [
26
+ // --- Cell menu update ON ---
27
+ // AddColumnRightItem/DistributeColumnsItem/DeleteColumnItem are registered in
28
+ // `../shared/getSharedItems` (shared with the cell menu), so they are omitted here.
29
+
30
+ // --- Menu surface ---
31
+ {
32
+ type: _keys.COLUMN_MENU.type,
33
+ key: _keys.COLUMN_MENU.key
34
+ },
35
+ // --- Toggle section (Header column) ---
36
+ {
37
+ type: _keys.COLUMN_TOGGLE_SECTION.type,
38
+ key: _keys.COLUMN_TOGGLE_SECTION.key,
39
+ parents: [{
40
+ type: _keys.COLUMN_MENU.type,
41
+ key: _keys.COLUMN_MENU.key,
42
+ rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_TOGGLE_SECTION.key]
43
+ }],
44
+ component: function component(props) {
45
+ return /*#__PURE__*/_react.default.createElement(_ColumnToggleSection.ColumnToggleSection, {
46
+ api: api
47
+ }, props.children);
48
+ }
49
+ }, {
50
+ type: _keys.HEADER_COLUMN_TOGGLE_ITEM.type,
51
+ key: _keys.HEADER_COLUMN_TOGGLE_ITEM.key,
52
+ parents: [{
53
+ type: _keys.COLUMN_TOGGLE_SECTION.type,
54
+ key: _keys.COLUMN_TOGGLE_SECTION.key,
55
+ rank: _keys.COLUMN_TOGGLE_SECTION_RANK[_keys.HEADER_COLUMN_TOGGLE_ITEM.key]
56
+ }],
57
+ component: function component() {
58
+ return /*#__PURE__*/_react.default.createElement(_HeaderColumnToggleItem.HeaderColumnToggleItem, {
59
+ api: api
60
+ });
61
+ }
62
+ },
63
+ // --- Background color section ---
64
+ {
65
+ type: _keys.COLUMN_BACKGROUND_SECTION.type,
66
+ key: _keys.COLUMN_BACKGROUND_SECTION.key,
67
+ parents: [{
68
+ type: _keys.COLUMN_MENU.type,
69
+ key: _keys.COLUMN_MENU.key,
70
+ rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_BACKGROUND_SECTION.key]
71
+ }],
72
+ component: function component(props) {
73
+ return /*#__PURE__*/_react.default.createElement(_ColumnBackgroundSection.ColumnBackgroundSection, {
74
+ api: api
75
+ }, props.children);
76
+ }
77
+ },
78
+ // --- Sort section ---
79
+ {
80
+ type: _keys.COLUMN_SORT_SECTION.type,
81
+ key: _keys.COLUMN_SORT_SECTION.key,
82
+ parents: [{
83
+ type: _keys.COLUMN_MENU.type,
84
+ key: _keys.COLUMN_MENU.key,
85
+ rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_SORT_SECTION.key]
86
+ }],
87
+ component: function component(props) {
88
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
89
+ hasSeparator: true
90
+ }, props.children);
91
+ }
92
+ }, {
93
+ type: _keys.SORT_INCREASING_ITEM.type,
94
+ key: _keys.SORT_INCREASING_ITEM.key,
95
+ parents: [{
96
+ type: _keys.COLUMN_SORT_SECTION.type,
97
+ key: _keys.COLUMN_SORT_SECTION.key,
98
+ rank: _keys.COLUMN_SORT_SECTION_RANK[_keys.SORT_INCREASING_ITEM.key]
99
+ }],
100
+ component: function component() {
101
+ return /*#__PURE__*/_react.default.createElement(_SortIncreasingItem.SortIncreasingItem, {
102
+ api: api
103
+ });
104
+ }
105
+ }, {
106
+ type: _keys.SORT_DECREASING_ITEM.type,
107
+ key: _keys.SORT_DECREASING_ITEM.key,
108
+ parents: [{
109
+ type: _keys.COLUMN_SORT_SECTION.type,
110
+ key: _keys.COLUMN_SORT_SECTION.key,
111
+ rank: _keys.COLUMN_SORT_SECTION_RANK[_keys.SORT_DECREASING_ITEM.key]
112
+ }],
113
+ component: function component() {
114
+ return /*#__PURE__*/_react.default.createElement(_SortDecreasingItem.SortDecreasingItem, {
115
+ api: api
116
+ });
117
+ }
118
+ },
119
+ // --- Add / Move section ---
120
+ {
121
+ type: _keys.COLUMN_ADD_SECTION.type,
122
+ key: _keys.COLUMN_ADD_SECTION.key,
123
+ parents: [{
124
+ type: _keys.COLUMN_MENU.type,
125
+ key: _keys.COLUMN_MENU.key,
126
+ rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_ADD_SECTION.key]
127
+ }],
128
+ component: function component(props) {
129
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
130
+ hasSeparator: true
131
+ }, props.children);
132
+ }
133
+ }, {
134
+ type: _keys.ADD_COLUMN_LEFT_ITEM.type,
135
+ key: _keys.ADD_COLUMN_LEFT_ITEM.key,
136
+ parents: [{
137
+ type: _keys.COLUMN_ADD_SECTION.type,
138
+ key: _keys.COLUMN_ADD_SECTION.key,
139
+ rank: _keys.COLUMN_ADD_SECTION_RANK[_keys.ADD_COLUMN_LEFT_ITEM.key]
140
+ }],
141
+ component: function component() {
142
+ return /*#__PURE__*/_react.default.createElement(_AddColumnLeftItem.AddColumnLeftItem, {
143
+ api: api
144
+ });
145
+ }
146
+ }, {
147
+ type: _keys.MOVE_COLUMN_LEFT_ITEM.type,
148
+ key: _keys.MOVE_COLUMN_LEFT_ITEM.key,
149
+ parents: [{
150
+ type: _keys.COLUMN_ADD_SECTION.type,
151
+ key: _keys.COLUMN_ADD_SECTION.key,
152
+ rank: _keys.COLUMN_ADD_SECTION_RANK[_keys.MOVE_COLUMN_LEFT_ITEM.key]
153
+ }],
154
+ component: function component() {
155
+ return /*#__PURE__*/_react.default.createElement(_MoveColumnLeftItem.MoveColumnLeftItem, {
156
+ api: api
157
+ });
158
+ }
159
+ }, {
160
+ type: _keys.MOVE_COLUMN_RIGHT_ITEM.type,
161
+ key: _keys.MOVE_COLUMN_RIGHT_ITEM.key,
162
+ parents: [{
163
+ type: _keys.COLUMN_ADD_SECTION.type,
164
+ key: _keys.COLUMN_ADD_SECTION.key,
165
+ rank: _keys.COLUMN_ADD_SECTION_RANK[_keys.MOVE_COLUMN_RIGHT_ITEM.key]
166
+ }],
167
+ component: function component() {
168
+ return /*#__PURE__*/_react.default.createElement(_MoveColumnRightItem.MoveColumnRightItem, {
169
+ api: api
170
+ });
171
+ }
172
+ },
173
+ // --- Danger section (Clear cells, Delete column) ---
174
+ {
175
+ type: _keys.COLUMN_DANGER_SECTION.type,
176
+ key: _keys.COLUMN_DANGER_SECTION.key,
177
+ parents: [{
178
+ type: _keys.COLUMN_MENU.type,
179
+ key: _keys.COLUMN_MENU.key,
180
+ rank: _keys.COLUMN_SECTION_RANK[_keys.COLUMN_DANGER_SECTION.key]
181
+ }],
182
+ component: function component(props) {
183
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
184
+ hasSeparator: true
185
+ }, props.children);
186
+ }
187
+ }] : [
188
+ // --- Cell menu update OFF: legacy column menu (registers its own add/delete items) ---
189
+
25
190
  // --- Menu surface ---
26
191
  {
27
192
  type: _keys.COLUMN_MENU.type,
@@ -11,10 +11,10 @@ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _hooks = require("@atlaskit/editor-common/hooks");
12
12
  var _keymaps = require("@atlaskit/editor-common/keymaps");
13
13
  var _messages = require("@atlaskit/editor-common/messages");
14
- var _utils = require("@atlaskit/editor-tables/utils");
15
14
  var _editorToolbar = require("@atlaskit/editor-toolbar");
16
15
  var _commands = require("../../../../pm-plugins/commands");
17
16
  var _commandsWithAnalytics = require("../../../../pm-plugins/commands/commands-with-analytics");
17
+ var _selection = require("../../shared/selection");
18
18
  var _TableMenuContext = require("../../shared/TableMenuContext");
19
19
  var AddColumnRightItem = exports.AddColumnRightItem = function AddColumnRightItem(_ref) {
20
20
  var _useTableMenuContext, _tooltip;
@@ -39,7 +39,7 @@ var AddColumnRightItem = exports.AddColumnRightItem = function AddColumnRightIte
39
39
  if (!editorView) {
40
40
  return;
41
41
  }
42
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
42
+ var selectionRect = (0, _selection.getMenuSelectionRect)(editorView.state.selection);
43
43
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
44
44
  if (index === undefined) {
45
45
  return;
@@ -11,11 +11,11 @@ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _hooks = require("@atlaskit/editor-common/hooks");
12
12
  var _keymaps = require("@atlaskit/editor-common/keymaps");
13
13
  var _messages = require("@atlaskit/editor-common/messages");
14
- var _utils = require("@atlaskit/editor-tables/utils");
15
14
  var _editorToolbar = require("@atlaskit/editor-toolbar");
16
15
  var _commands = require("../../../../pm-plugins/commands");
17
16
  var _commandsWithAnalytics = require("../../../../pm-plugins/commands/commands-with-analytics");
18
17
  var _selection = require("../../../../pm-plugins/utils/selection");
18
+ var _selection2 = require("../../shared/selection");
19
19
  var _TableMenuContext = require("../../shared/TableMenuContext");
20
20
  var DeleteColumnItem = exports.DeleteColumnItem = function DeleteColumnItem(_ref) {
21
21
  var _tableMenuContext$sel, _tooltip;
@@ -41,7 +41,7 @@ var DeleteColumnItem = exports.DeleteColumnItem = function DeleteColumnItem(_ref
41
41
  if (!editorView) {
42
42
  return;
43
43
  }
44
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
44
+ var selectionRect = (0, _selection2.getMenuSelectionRect)(editorView.state.selection);
45
45
  if (!selectionRect) {
46
46
  return;
47
47
  }
@@ -58,7 +58,7 @@ var DeleteColumnItem = exports.DeleteColumnItem = function DeleteColumnItem(_ref
58
58
  if (!editorView) {
59
59
  return;
60
60
  }
61
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
61
+ var selectionRect = (0, _selection2.getMenuSelectionRect)(editorView.state.selection);
62
62
  if (!selectionRect) {
63
63
  return;
64
64
  }
@@ -10,11 +10,11 @@ var _reactIntl = require("react-intl");
10
10
  var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _hooks = require("@atlaskit/editor-common/hooks");
12
12
  var _messages = require("@atlaskit/editor-common/messages");
13
- var _utils = require("@atlaskit/editor-tables/utils");
14
13
  var _editorToolbar = require("@atlaskit/editor-toolbar");
15
14
  var _commands = require("../../../../pm-plugins/commands");
16
15
  var _commandsWithAnalytics = require("../../../../pm-plugins/commands/commands-with-analytics");
17
16
  var _resizeState = require("../../../../pm-plugins/table-resizing/utils/resize-state");
17
+ var _selection = require("../../shared/selection");
18
18
  var _TableMenuContext = require("../../shared/TableMenuContext");
19
19
  /** Distribute columns is only visible when more than one column is selected. */
20
20
  var shouldShowDistributeColumns = function shouldShowDistributeColumns(selectedColumnCount) {
@@ -43,7 +43,7 @@ var DistributeColumnsItem = exports.DistributeColumnsItem = function DistributeC
43
43
  if (!editorView) {
44
44
  return;
45
45
  }
46
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
46
+ var selectionRect = (0, _selection.getMenuSelectionRect)(editorView.state.selection);
47
47
  var editorContainerWidth = api === null || api === void 0 || (_api$width = api.width) === null || _api$width === void 0 ? void 0 : _api$width.sharedState.currentState();
48
48
  if (!selectionRect || !editorContainerWidth) {
49
49
  return;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getRowMenuComponents = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _editorToolbar = require("@atlaskit/editor-toolbar");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _AddRowAboveItem = require("./items/AddRowAboveItem");
11
12
  var _AddRowBelowItem = require("./items/AddRowBelowItem");
12
13
  var _DeleteRowItem = require("./items/DeleteRowItem");
@@ -17,7 +18,141 @@ var _NumberedRowsToggleItem = require("./items/NumberedRowsToggleItem");
17
18
  var _keys = require("./keys");
18
19
  var getRowMenuComponents = exports.getRowMenuComponents = function getRowMenuComponents(_ref) {
19
20
  var api = _ref.api;
20
- return [
21
+ return (0, _platformFeatureFlags.fg)('platform_editor_table_cell_menu_update') ? [
22
+ // --- Cell menu update ON ---
23
+ // AddRowBelowItem/DeleteRowItem are registered in `../shared/getSharedItems`
24
+ // (shared with the cell menu), so they are omitted here.
25
+
26
+ // --- Menu surface ---
27
+ {
28
+ type: _keys.ROW_MENU.type,
29
+ key: _keys.ROW_MENU.key
30
+ },
31
+ // --- Toggle section (Header row, Numbered rows) ---
32
+ {
33
+ type: _keys.ROW_TOGGLE_SECTION.type,
34
+ key: _keys.ROW_TOGGLE_SECTION.key,
35
+ parents: [{
36
+ type: _keys.ROW_MENU.type,
37
+ key: _keys.ROW_MENU.key,
38
+ rank: _keys.ROW_MENU_SECTION_RANK[_keys.ROW_TOGGLE_SECTION.key]
39
+ }],
40
+ component: function component(props) {
41
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, props.children);
42
+ }
43
+ }, {
44
+ type: _keys.HEADER_ROW_TOGGLE_ITEM.type,
45
+ key: _keys.HEADER_ROW_TOGGLE_ITEM.key,
46
+ parents: [{
47
+ type: _keys.ROW_TOGGLE_SECTION.type,
48
+ key: _keys.ROW_TOGGLE_SECTION.key,
49
+ rank: _keys.ROW_TOGGLE_SECTION_RANK[_keys.HEADER_ROW_TOGGLE_ITEM.key]
50
+ }],
51
+ component: function component() {
52
+ return /*#__PURE__*/_react.default.createElement(_HeaderRowToggleItem.HeaderRowToggleItem, {
53
+ api: api
54
+ });
55
+ }
56
+ }, {
57
+ type: _keys.NUMBERED_ROWS_TOGGLE_ITEM.type,
58
+ key: _keys.NUMBERED_ROWS_TOGGLE_ITEM.key,
59
+ parents: [{
60
+ type: _keys.ROW_TOGGLE_SECTION.type,
61
+ key: _keys.ROW_TOGGLE_SECTION.key,
62
+ rank: _keys.ROW_TOGGLE_SECTION_RANK[_keys.NUMBERED_ROWS_TOGGLE_ITEM.key]
63
+ }],
64
+ component: function component() {
65
+ return /*#__PURE__*/_react.default.createElement(_NumberedRowsToggleItem.NumberedRowsToggleItem, {
66
+ api: api
67
+ });
68
+ }
69
+ },
70
+ // --- Background color section ---
71
+ {
72
+ type: _keys.ROW_BACKGROUND_SECTION.type,
73
+ key: _keys.ROW_BACKGROUND_SECTION.key,
74
+ parents: [{
75
+ type: _keys.ROW_MENU.type,
76
+ key: _keys.ROW_MENU.key,
77
+ rank: _keys.ROW_MENU_SECTION_RANK[_keys.ROW_BACKGROUND_SECTION.key]
78
+ }],
79
+ component: function component(props) {
80
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
81
+ hasSeparator: true
82
+ }, props.children);
83
+ }
84
+ },
85
+ // --- Add / Move section ---
86
+ {
87
+ type: _keys.ROW_ADD_SECTION.type,
88
+ key: _keys.ROW_ADD_SECTION.key,
89
+ parents: [{
90
+ type: _keys.ROW_MENU.type,
91
+ key: _keys.ROW_MENU.key,
92
+ rank: _keys.ROW_MENU_SECTION_RANK[_keys.ROW_ADD_SECTION.key]
93
+ }],
94
+ component: function component(props) {
95
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
96
+ hasSeparator: true
97
+ }, props.children);
98
+ }
99
+ }, {
100
+ type: _keys.ADD_ROW_ABOVE_ITEM.type,
101
+ key: _keys.ADD_ROW_ABOVE_ITEM.key,
102
+ parents: [{
103
+ type: _keys.ROW_ADD_SECTION.type,
104
+ key: _keys.ROW_ADD_SECTION.key,
105
+ rank: _keys.ROW_ADD_SECTION_RANK[_keys.ADD_ROW_ABOVE_ITEM.key]
106
+ }],
107
+ component: function component() {
108
+ return /*#__PURE__*/_react.default.createElement(_AddRowAboveItem.AddRowAboveItem, {
109
+ api: api
110
+ });
111
+ }
112
+ }, {
113
+ type: _keys.MOVE_ROW_UP_ITEM.type,
114
+ key: _keys.MOVE_ROW_UP_ITEM.key,
115
+ parents: [{
116
+ type: _keys.ROW_ADD_SECTION.type,
117
+ key: _keys.ROW_ADD_SECTION.key,
118
+ rank: _keys.ROW_ADD_SECTION_RANK[_keys.MOVE_ROW_UP_ITEM.key]
119
+ }],
120
+ component: function component() {
121
+ return /*#__PURE__*/_react.default.createElement(_MoveRowUpItem.MoveRowUpItem, {
122
+ api: api
123
+ });
124
+ }
125
+ }, {
126
+ type: _keys.MOVE_ROW_DOWN_ITEM.type,
127
+ key: _keys.MOVE_ROW_DOWN_ITEM.key,
128
+ parents: [{
129
+ type: _keys.ROW_ADD_SECTION.type,
130
+ key: _keys.ROW_ADD_SECTION.key,
131
+ rank: _keys.ROW_ADD_SECTION_RANK[_keys.MOVE_ROW_DOWN_ITEM.key]
132
+ }],
133
+ component: function component() {
134
+ return /*#__PURE__*/_react.default.createElement(_MoveRowDownItem.MoveRowDownItem, {
135
+ api: api
136
+ });
137
+ }
138
+ },
139
+ // --- Danger section (Clear cells, Delete row) ---
140
+ {
141
+ type: _keys.ROW_DANGER_SECTION.type,
142
+ key: _keys.ROW_DANGER_SECTION.key,
143
+ parents: [{
144
+ type: _keys.ROW_MENU.type,
145
+ key: _keys.ROW_MENU.key,
146
+ rank: _keys.ROW_MENU_SECTION_RANK[_keys.ROW_DANGER_SECTION.key]
147
+ }],
148
+ component: function component(props) {
149
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
150
+ hasSeparator: true
151
+ }, props.children);
152
+ }
153
+ }] : [
154
+ // --- Cell menu update OFF: legacy row menu (registers its own add/delete items) ---
155
+
21
156
  // --- Menu surface ---
22
157
  {
23
158
  type: _keys.ROW_MENU.type,
@@ -10,10 +10,10 @@ var _reactIntl = require("react-intl");
10
10
  var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _keymaps = require("@atlaskit/editor-common/keymaps");
12
12
  var _messages = require("@atlaskit/editor-common/messages");
13
- var _utils = require("@atlaskit/editor-tables/utils");
14
13
  var _editorToolbar = require("@atlaskit/editor-toolbar");
15
14
  var _commands = require("../../../../pm-plugins/commands");
16
15
  var _commandsWithAnalytics = require("../../../../pm-plugins/commands/commands-with-analytics");
16
+ var _selection = require("../../shared/selection");
17
17
  var _TableMenuContext = require("../../shared/TableMenuContext");
18
18
  var AddRowBelowItem = exports.AddRowBelowItem = function AddRowBelowItem(props) {
19
19
  var _useTableMenuContext, _tooltip;
@@ -27,7 +27,7 @@ var AddRowBelowItem = exports.AddRowBelowItem = function AddRowBelowItem(props)
27
27
  if (!editorView) {
28
28
  return;
29
29
  }
30
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
30
+ var selectionRect = (0, _selection.getMenuSelectionRect)(editorView.state.selection);
31
31
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.bottom;
32
32
  if (index === undefined) {
33
33
  return;
@@ -11,11 +11,11 @@ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _hooks = require("@atlaskit/editor-common/hooks");
12
12
  var _keymaps = require("@atlaskit/editor-common/keymaps");
13
13
  var _messages = require("@atlaskit/editor-common/messages");
14
- var _utils = require("@atlaskit/editor-tables/utils");
15
14
  var _editorToolbar = require("@atlaskit/editor-toolbar");
16
15
  var _commands = require("../../../../pm-plugins/commands");
17
16
  var _commandsWithAnalytics = require("../../../../pm-plugins/commands/commands-with-analytics");
18
17
  var _selection = require("../../../../pm-plugins/utils/selection");
18
+ var _selection2 = require("../../shared/selection");
19
19
  var _TableMenuContext = require("../../shared/TableMenuContext");
20
20
  var DeleteRowItem = exports.DeleteRowItem = function DeleteRowItem(props) {
21
21
  var _tableMenuContext$sel, _tooltip;
@@ -37,7 +37,7 @@ var DeleteRowItem = exports.DeleteRowItem = function DeleteRowItem(props) {
37
37
  if (!editorView) {
38
38
  return;
39
39
  }
40
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
40
+ var selectionRect = (0, _selection2.getMenuSelectionRect)(editorView.state.selection);
41
41
  if (!selectionRect) {
42
42
  return;
43
43
  }
@@ -54,7 +54,7 @@ var DeleteRowItem = exports.DeleteRowItem = function DeleteRowItem(props) {
54
54
  if (!editorView) {
55
55
  return;
56
56
  }
57
- var selectionRect = (0, _utils.getSelectionRect)(editorView.state.selection);
57
+ var selectionRect = (0, _selection2.getMenuSelectionRect)(editorView.state.selection);
58
58
  if (!selectionRect) {
59
59
  return;
60
60
  }
@@ -6,15 +6,155 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.getSharedItems = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
9
10
  var _keys = require("../cell/keys");
11
+ var _AddColumnRightItem = require("../column/items/AddColumnRightItem");
12
+ var _DeleteColumnItem = require("../column/items/DeleteColumnItem");
13
+ var _DistributeColumnsItem = require("../column/items/DistributeColumnsItem");
10
14
  var _keys2 = require("../column/keys");
15
+ var _AddRowBelowItem = require("../row/items/AddRowBelowItem");
16
+ var _DeleteRowItem = require("../row/items/DeleteRowItem");
11
17
  var _keys3 = require("../row/keys");
12
18
  var _BackgroundColorItem = require("./items/BackgroundColorItem");
13
19
  var _ClearCellsItem = require("./items/ClearCellsItem");
14
20
  var _keys4 = require("./keys");
15
21
  var getSharedItems = exports.getSharedItems = function getSharedItems(_ref) {
16
22
  var api = _ref.api;
17
- return [{
23
+ return (0, _platformFeatureFlags.fg)('platform_editor_table_cell_menu_update') ? [
24
+ // --- Cell menu update ON ---
25
+ // The add/delete items move out of the row/column menu files and are registered here
26
+ // once with an additional cell parent, so they render inside the cell menu too.
27
+ {
28
+ type: _keys4.BACKGROUND_COLOR_ITEM.type,
29
+ key: _keys4.BACKGROUND_COLOR_ITEM.key,
30
+ parents: [{
31
+ type: _keys3.ROW_BACKGROUND_SECTION.type,
32
+ key: _keys3.ROW_BACKGROUND_SECTION.key,
33
+ rank: _keys3.ROW_BACKGROUND_SECTION_RANK[_keys4.BACKGROUND_COLOR_ITEM.key]
34
+ }, {
35
+ type: _keys2.COLUMN_BACKGROUND_SECTION.type,
36
+ key: _keys2.COLUMN_BACKGROUND_SECTION.key,
37
+ rank: _keys2.COLUMN_BACKGROUND_SECTION_RANK[_keys4.BACKGROUND_COLOR_ITEM.key]
38
+ }, {
39
+ type: _keys.CELL_ACTION_SECTION.type,
40
+ key: _keys.CELL_ACTION_SECTION.key,
41
+ rank: _keys.CELL_ACTION_SECTION_RANK[_keys4.BACKGROUND_COLOR_ITEM.key]
42
+ }],
43
+ component: function component() {
44
+ return /*#__PURE__*/_react.default.createElement(_BackgroundColorItem.BackgroundColorItem, {
45
+ api: api
46
+ });
47
+ }
48
+ }, {
49
+ type: _keys2.ADD_COLUMN_RIGHT_ITEM.type,
50
+ key: _keys2.ADD_COLUMN_RIGHT_ITEM.key,
51
+ parents: [{
52
+ type: _keys2.COLUMN_ADD_SECTION.type,
53
+ key: _keys2.COLUMN_ADD_SECTION.key,
54
+ rank: _keys2.COLUMN_ADD_SECTION_RANK[_keys2.ADD_COLUMN_RIGHT_ITEM.key]
55
+ }, {
56
+ type: _keys.CELL_ADD_SECTION.type,
57
+ key: _keys.CELL_ADD_SECTION.key,
58
+ rank: _keys.CELL_ADD_SECTION_RANK[_keys2.ADD_COLUMN_RIGHT_ITEM.key]
59
+ }],
60
+ component: function component() {
61
+ return /*#__PURE__*/_react.default.createElement(_AddColumnRightItem.AddColumnRightItem, {
62
+ api: api
63
+ });
64
+ }
65
+ }, {
66
+ type: _keys3.ADD_ROW_BELOW_ITEM.type,
67
+ key: _keys3.ADD_ROW_BELOW_ITEM.key,
68
+ parents: [{
69
+ type: _keys3.ROW_ADD_SECTION.type,
70
+ key: _keys3.ROW_ADD_SECTION.key,
71
+ rank: _keys3.ROW_ADD_SECTION_RANK[_keys3.ADD_ROW_BELOW_ITEM.key]
72
+ }, {
73
+ type: _keys.CELL_ADD_SECTION.type,
74
+ key: _keys.CELL_ADD_SECTION.key,
75
+ rank: _keys.CELL_ADD_SECTION_RANK[_keys3.ADD_ROW_BELOW_ITEM.key]
76
+ }],
77
+ component: function component() {
78
+ return /*#__PURE__*/_react.default.createElement(_AddRowBelowItem.AddRowBelowItem, {
79
+ api: api
80
+ });
81
+ }
82
+ }, {
83
+ type: _keys2.DISTRIBUTE_COLUMNS_ITEM.type,
84
+ key: _keys2.DISTRIBUTE_COLUMNS_ITEM.key,
85
+ parents: [{
86
+ type: _keys2.COLUMN_ADD_SECTION.type,
87
+ key: _keys2.COLUMN_ADD_SECTION.key,
88
+ rank: _keys2.COLUMN_ADD_SECTION_RANK[_keys2.DISTRIBUTE_COLUMNS_ITEM.key]
89
+ }, {
90
+ type: _keys.CELL_ADD_SECTION.type,
91
+ key: _keys.CELL_ADD_SECTION.key,
92
+ rank: _keys.CELL_ADD_SECTION_RANK[_keys2.DISTRIBUTE_COLUMNS_ITEM.key]
93
+ }],
94
+ component: function component() {
95
+ return /*#__PURE__*/_react.default.createElement(_DistributeColumnsItem.DistributeColumnsItem, {
96
+ api: api
97
+ });
98
+ }
99
+ }, {
100
+ type: _keys4.CLEAR_CELLS_ITEM.type,
101
+ key: _keys4.CLEAR_CELLS_ITEM.key,
102
+ parents: [{
103
+ type: _keys3.ROW_DANGER_SECTION.type,
104
+ key: _keys3.ROW_DANGER_SECTION.key,
105
+ rank: _keys3.ROW_DANGER_SECTION_RANK[_keys4.CLEAR_CELLS_ITEM.key]
106
+ }, {
107
+ type: _keys2.COLUMN_DANGER_SECTION.type,
108
+ key: _keys2.COLUMN_DANGER_SECTION.key,
109
+ rank: _keys2.COLUMN_DANGER_SECTION_RANK[_keys4.CLEAR_CELLS_ITEM.key]
110
+ }, {
111
+ type: _keys.CELL_DANGER_SECTION.type,
112
+ key: _keys.CELL_DANGER_SECTION.key,
113
+ rank: _keys.CELL_DANGER_SECTION_RANK[_keys4.CLEAR_CELLS_ITEM.key]
114
+ }],
115
+ component: function component() {
116
+ return /*#__PURE__*/_react.default.createElement(_ClearCellsItem.ClearCellsItem, {
117
+ api: api
118
+ });
119
+ }
120
+ }, {
121
+ type: _keys2.DELETE_COLUMN_ITEM.type,
122
+ key: _keys2.DELETE_COLUMN_ITEM.key,
123
+ parents: [{
124
+ type: _keys2.COLUMN_DANGER_SECTION.type,
125
+ key: _keys2.COLUMN_DANGER_SECTION.key,
126
+ rank: _keys2.COLUMN_DANGER_SECTION_RANK[_keys2.DELETE_COLUMN_ITEM.key]
127
+ }, {
128
+ type: _keys.CELL_DANGER_SECTION.type,
129
+ key: _keys.CELL_DANGER_SECTION.key,
130
+ rank: _keys.CELL_DANGER_SECTION_RANK[_keys2.DELETE_COLUMN_ITEM.key]
131
+ }],
132
+ component: function component() {
133
+ return /*#__PURE__*/_react.default.createElement(_DeleteColumnItem.DeleteColumnItem, {
134
+ api: api
135
+ });
136
+ }
137
+ }, {
138
+ type: _keys3.DELETE_ROW_ITEM.type,
139
+ key: _keys3.DELETE_ROW_ITEM.key,
140
+ parents: [{
141
+ type: _keys3.ROW_DANGER_SECTION.type,
142
+ key: _keys3.ROW_DANGER_SECTION.key,
143
+ rank: _keys3.ROW_DANGER_SECTION_RANK[_keys3.DELETE_ROW_ITEM.key]
144
+ }, {
145
+ type: _keys.CELL_DANGER_SECTION.type,
146
+ key: _keys.CELL_DANGER_SECTION.key,
147
+ rank: _keys.CELL_DANGER_SECTION_RANK[_keys3.DELETE_ROW_ITEM.key]
148
+ }],
149
+ component: function component() {
150
+ return /*#__PURE__*/_react.default.createElement(_DeleteRowItem.DeleteRowItem, {
151
+ api: api
152
+ });
153
+ }
154
+ }] : [
155
+ // --- Cell menu update OFF: legacy shared items (background color + clear cells only).
156
+ // The add/delete items are registered by the row/column menu files in this mode.
157
+ {
18
158
  type: _keys4.BACKGROUND_COLOR_ITEM.type,
19
159
  key: _keys4.BACKGROUND_COLOR_ITEM.key,
20
160
  parents: [{