@atlaskit/editor-plugin-table 7.2.3 → 7.3.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.
- package/CHANGELOG.md +13 -0
- package/afm-cc/tsconfig.json +3 -0
- package/dist/cjs/commands/column-resize.js +115 -45
- package/dist/cjs/commands/go-to-next-cell.js +7 -11
- package/dist/cjs/commands/misc.js +7 -4
- package/dist/cjs/commands/selection.js +7 -5
- package/dist/cjs/event-handlers.js +38 -25
- package/dist/cjs/pm-plugins/drag-and-drop/commands.js +3 -1
- package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +33 -1
- package/dist/cjs/pm-plugins/drag-and-drop/reducer.js +2 -1
- package/dist/cjs/pm-plugins/keymap.js +1 -0
- package/dist/cjs/pm-plugins/main.js +43 -9
- package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +37 -7
- package/dist/cjs/pm-plugins/table-resizing/plugin.js +20 -6
- package/dist/cjs/pm-plugins/table-selection-keymap.js +2 -2
- package/dist/cjs/reducer.js +5 -2
- package/dist/cjs/ui/DragHandle/HandleIconComponent.js +1 -3
- package/dist/cjs/ui/DragHandle/index.js +22 -10
- package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +75 -33
- package/dist/cjs/ui/FloatingDragMenu/DropdownMenu.js +123 -0
- package/dist/cjs/ui/FloatingDragMenu/index.js +2 -2
- package/dist/cjs/ui/TableFloatingColumnControls/ColumnControls/index.js +24 -35
- package/dist/cjs/ui/TableFloatingColumnControls/index.js +1 -2
- package/dist/cjs/ui/TableFloatingControls/CornerControls/DragCornerControls.js +4 -0
- package/dist/cjs/ui/TableFloatingControls/RowControls/DragControls.js +26 -33
- package/dist/cjs/ui/common-styles.js +1 -1
- package/dist/cjs/ui/consts.js +3 -2
- package/dist/es2019/commands/column-resize.js +100 -35
- package/dist/es2019/commands/go-to-next-cell.js +7 -9
- package/dist/es2019/commands/misc.js +7 -6
- package/dist/es2019/commands/selection.js +9 -9
- package/dist/es2019/event-handlers.js +17 -3
- package/dist/es2019/pm-plugins/drag-and-drop/commands.js +3 -3
- package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +34 -1
- package/dist/es2019/pm-plugins/drag-and-drop/reducer.js +2 -1
- package/dist/es2019/pm-plugins/keymap.js +3 -2
- package/dist/es2019/pm-plugins/main.js +41 -5
- package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +37 -4
- package/dist/es2019/pm-plugins/table-resizing/plugin.js +16 -1
- package/dist/es2019/pm-plugins/table-selection-keymap.js +2 -2
- package/dist/es2019/reducer.js +5 -2
- package/dist/es2019/ui/DragHandle/HandleIconComponent.js +1 -3
- package/dist/es2019/ui/DragHandle/index.js +25 -10
- package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +72 -32
- package/dist/es2019/ui/FloatingDragMenu/DropdownMenu.js +109 -0
- package/dist/es2019/ui/FloatingDragMenu/index.js +2 -2
- package/dist/es2019/ui/TableFloatingColumnControls/ColumnControls/index.js +24 -35
- package/dist/es2019/ui/TableFloatingColumnControls/index.js +1 -2
- package/dist/es2019/ui/TableFloatingControls/CornerControls/DragCornerControls.js +4 -0
- package/dist/es2019/ui/TableFloatingControls/RowControls/DragControls.js +26 -33
- package/dist/es2019/ui/common-styles.js +11 -1
- package/dist/es2019/ui/consts.js +2 -1
- package/dist/esm/commands/column-resize.js +105 -35
- package/dist/esm/commands/go-to-next-cell.js +7 -11
- package/dist/esm/commands/misc.js +7 -4
- package/dist/esm/commands/selection.js +9 -7
- package/dist/esm/event-handlers.js +38 -25
- package/dist/esm/pm-plugins/drag-and-drop/commands.js +3 -2
- package/dist/esm/pm-plugins/drag-and-drop/plugin.js +33 -1
- package/dist/esm/pm-plugins/drag-and-drop/reducer.js +2 -1
- package/dist/esm/pm-plugins/keymap.js +3 -2
- package/dist/esm/pm-plugins/main.js +38 -4
- package/dist/esm/pm-plugins/table-resizing/event-handlers.js +34 -4
- package/dist/esm/pm-plugins/table-resizing/plugin.js +15 -1
- package/dist/esm/pm-plugins/table-selection-keymap.js +2 -2
- package/dist/esm/reducer.js +5 -2
- package/dist/esm/ui/DragHandle/HandleIconComponent.js +1 -3
- package/dist/esm/ui/DragHandle/index.js +21 -9
- package/dist/esm/ui/FloatingDragMenu/DragMenu.js +74 -35
- package/dist/esm/ui/FloatingDragMenu/DropdownMenu.js +116 -0
- package/dist/esm/ui/FloatingDragMenu/index.js +2 -2
- package/dist/esm/ui/TableFloatingColumnControls/ColumnControls/index.js +24 -35
- package/dist/esm/ui/TableFloatingColumnControls/index.js +1 -2
- package/dist/esm/ui/TableFloatingControls/CornerControls/DragCornerControls.js +4 -0
- package/dist/esm/ui/TableFloatingControls/RowControls/DragControls.js +26 -33
- package/dist/esm/ui/common-styles.js +1 -1
- package/dist/esm/ui/consts.js +2 -1
- package/dist/types/commands/column-resize.d.ts +2 -0
- package/dist/types/commands/misc.d.ts +3 -3
- package/dist/types/commands/selection.d.ts +2 -2
- package/dist/types/pm-plugins/drag-and-drop/actions.d.ts +1 -0
- package/dist/types/pm-plugins/drag-and-drop/commands.d.ts +2 -1
- package/dist/types/pm-plugins/drag-and-drop/types.d.ts +2 -0
- package/dist/types/types.d.ts +16 -0
- package/dist/types/ui/DragHandle/HandleIconComponent.d.ts +1 -2
- package/dist/types/ui/DragHandle/index.d.ts +3 -2
- package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +7 -8
- package/dist/types/ui/FloatingDragMenu/DropdownMenu.d.ts +30 -0
- package/dist/types/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +1 -2
- package/dist/types/ui/TableFloatingControls/RowControls/DragControls.d.ts +1 -1
- package/dist/types/ui/consts.d.ts +1 -0
- package/dist/types-ts4.5/commands/column-resize.d.ts +2 -0
- package/dist/types-ts4.5/commands/misc.d.ts +3 -3
- package/dist/types-ts4.5/commands/selection.d.ts +2 -2
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/actions.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/commands.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/types.d.ts +2 -0
- package/dist/types-ts4.5/types.d.ts +16 -0
- package/dist/types-ts4.5/ui/DragHandle/HandleIconComponent.d.ts +1 -2
- package/dist/types-ts4.5/ui/DragHandle/index.d.ts +3 -2
- package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +7 -8
- package/dist/types-ts4.5/ui/FloatingDragMenu/DropdownMenu.d.ts +30 -0
- package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +1 -2
- package/dist/types-ts4.5/ui/TableFloatingControls/RowControls/DragControls.d.ts +1 -1
- package/dist/types-ts4.5/ui/consts.d.ts +1 -0
- package/package.json +4 -3
- package/src/commands/column-resize.ts +155 -40
- package/src/commands/go-to-next-cell.ts +6 -15
- package/src/commands/misc.ts +19 -4
- package/src/commands/selection.ts +17 -9
- package/src/event-handlers.ts +21 -4
- package/src/pm-plugins/drag-and-drop/actions.ts +1 -0
- package/src/pm-plugins/drag-and-drop/commands.ts +3 -0
- package/src/pm-plugins/drag-and-drop/plugin.ts +47 -0
- package/src/pm-plugins/drag-and-drop/reducer.ts +1 -0
- package/src/pm-plugins/drag-and-drop/types.ts +3 -0
- package/src/pm-plugins/keymap.ts +3 -0
- package/src/pm-plugins/main.ts +47 -2
- package/src/pm-plugins/table-resizing/event-handlers.ts +33 -5
- package/src/pm-plugins/table-resizing/plugin.ts +18 -1
- package/src/pm-plugins/table-selection-keymap.ts +2 -2
- package/src/reducer.ts +5 -2
- package/src/types.ts +16 -0
- package/src/ui/DragHandle/HandleIconComponent.tsx +2 -9
- package/src/ui/DragHandle/index.tsx +37 -16
- package/src/ui/FloatingDragMenu/DragMenu.tsx +362 -310
- package/src/ui/FloatingDragMenu/DropdownMenu.tsx +150 -0
- package/src/ui/FloatingDragMenu/index.tsx +3 -3
- package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +72 -91
- package/src/ui/TableFloatingColumnControls/index.tsx +1 -2
- package/src/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +5 -0
- package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +89 -104
- package/src/ui/common-styles.ts +11 -1
- package/src/ui/consts.ts +1 -0
- package/tsconfig.app.json +3 -0
|
@@ -57,6 +57,7 @@ function keymapPlugin(getEditorContainerWidth, editorAnalyticsAPI, dragAndDropEn
|
|
|
57
57
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.moveLeft.common, (0, _columnResize.activateNextResizeArea)(-1), list);
|
|
58
58
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.decreaseMediaSize.common, (0, _columnResize.changeColumnWidthByStep)(-10, getEditorContainerWidth), list);
|
|
59
59
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.increaseMediaSize.common, (0, _columnResize.changeColumnWidthByStep)(10, getEditorContainerWidth), list);
|
|
60
|
+
(0, _keymaps.bindKeymapWithCommand)(_keymaps.escape.common, (0, _columnResize.stopKeyboardColumnResizing)(), list);
|
|
60
61
|
}
|
|
61
62
|
return (0, _keymap.keymap)(list);
|
|
62
63
|
}
|
|
@@ -12,7 +12,11 @@ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
|
12
12
|
var _transforms = require("@atlaskit/editor-common/transforms");
|
|
13
13
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
14
14
|
var _utils2 = require("@atlaskit/editor-prosemirror/utils");
|
|
15
|
+
var _editorTables = require("@atlaskit/editor-tables");
|
|
16
|
+
var _utils3 = require("@atlaskit/editor-tables/utils");
|
|
17
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
18
|
var _commands = require("../commands");
|
|
19
|
+
var _columnResize = require("../commands/column-resize");
|
|
16
20
|
var _misc = require("../commands/misc");
|
|
17
21
|
var _eventHandlers = require("../event-handlers");
|
|
18
22
|
var _table = require("../nodeviews/table");
|
|
@@ -21,7 +25,7 @@ var _TableRow = _interopRequireDefault(require("../nodeviews/TableRow"));
|
|
|
21
25
|
var _plugin = require("../pm-plugins/decorations/plugin");
|
|
22
26
|
var _transforms2 = require("../transforms");
|
|
23
27
|
var _types = require("../types");
|
|
24
|
-
var
|
|
28
|
+
var _utils4 = require("../utils");
|
|
25
29
|
var _paste = require("../utils/paste");
|
|
26
30
|
var _defaultTableSelection = require("./default-table-selection");
|
|
27
31
|
var _pluginFactory = require("./plugin-factory");
|
|
@@ -106,7 +110,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
106
110
|
var domAtPos = editorView.domAtPos.bind(editorView);
|
|
107
111
|
editorViewRef = editorView;
|
|
108
112
|
return {
|
|
109
|
-
update: function update(view) {
|
|
113
|
+
update: function update(view, prevState) {
|
|
110
114
|
var state = view.state,
|
|
111
115
|
dispatch = view.dispatch;
|
|
112
116
|
var selection = state.selection;
|
|
@@ -117,6 +121,28 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
117
121
|
if (parent) {
|
|
118
122
|
tableRef = parent.querySelector('table') || undefined;
|
|
119
123
|
}
|
|
124
|
+
var tableNode = (0, _utils3.findTable)(state.selection);
|
|
125
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
126
|
+
// when cursor leaves the table we need to stop column resizing
|
|
127
|
+
var pluginPrevState = (0, _pluginFactory.getPluginState)(prevState);
|
|
128
|
+
var isStopKeyboardColumResizing = pluginPrevState.isResizeHandleWidgetAdded && pluginPrevState.isKeyboardResize;
|
|
129
|
+
if (isStopKeyboardColumResizing) {
|
|
130
|
+
var isTableNodesDifferent = (pluginPrevState === null || pluginPrevState === void 0 ? void 0 : pluginPrevState.tableNode) !== (tableNode === null || tableNode === void 0 ? void 0 : tableNode.node);
|
|
131
|
+
if (pluginPrevState !== null && pluginPrevState !== void 0 && pluginPrevState.tableNode && tableNode && isTableNodesDifferent) {
|
|
132
|
+
var oldRowsNumber = _editorTables.TableMap.get(pluginPrevState.tableNode).height;
|
|
133
|
+
var newRowsNumber = _editorTables.TableMap.get(tableNode.node).height;
|
|
134
|
+
if (oldRowsNumber !== newRowsNumber ||
|
|
135
|
+
// Add/delete row
|
|
136
|
+
tableNode.node.attrs.localId !== pluginPrevState.tableNode.attrs.localId) {
|
|
137
|
+
// Jump to another table
|
|
138
|
+
(0, _columnResize.stopKeyboardColumnResizing)()(state, dispatch);
|
|
139
|
+
}
|
|
140
|
+
} else if (!tableNode) {
|
|
141
|
+
// selection outside of table
|
|
142
|
+
(0, _columnResize.stopKeyboardColumnResizing)()(state, dispatch);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
120
146
|
}
|
|
121
147
|
if (pluginState.tableRef !== tableRef) {
|
|
122
148
|
(0, _commands.setTableRef)(tableRef)(state, dispatch);
|
|
@@ -156,7 +182,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
156
182
|
if (!(0, _coreUtils.insideTable)(editorState) && (0, _paste.isHeaderRowRequired)(editorState)) {
|
|
157
183
|
slice = (0, _misc.transformSliceToAddTableHeaders)(slice, schema);
|
|
158
184
|
}
|
|
159
|
-
slice = (0,
|
|
185
|
+
slice = (0, _utils4.transformSliceToFixHardBreakProblemOnCopyFromCell)(slice, schema);
|
|
160
186
|
|
|
161
187
|
// We do this separately, so it also applies to drag/drop events
|
|
162
188
|
// This needs to go before `transformSliceToRemoveOpenExpand`
|
|
@@ -167,14 +193,14 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
167
193
|
slice = (0, _transforms.transformSliceToRemoveOpenExpand)(slice, schema);
|
|
168
194
|
|
|
169
195
|
/** If a partial paste of table, paste only table's content */
|
|
170
|
-
slice = (0,
|
|
196
|
+
slice = (0, _utils4.transformSliceToRemoveOpenTable)(slice, schema);
|
|
171
197
|
|
|
172
198
|
/** If a partial paste of bodied extension, paste only text */
|
|
173
199
|
slice = (0, _transforms.transformSliceToRemoveOpenBodiedExtension)(slice, schema);
|
|
174
200
|
|
|
175
201
|
/** If a partial paste of multi bodied extension, paste only children */
|
|
176
202
|
slice = (0, _transforms.transformSliceToRemoveOpenMultiBodiedExtension)(slice, schema);
|
|
177
|
-
slice = (0,
|
|
203
|
+
slice = (0, _utils4.transformSliceToCorrectEmptyTableCells)(slice, schema);
|
|
178
204
|
if (!pluginConfig.allowColumnResizing) {
|
|
179
205
|
slice = (0, _misc.transformSliceToRemoveColumnsWidths)(slice, schema);
|
|
180
206
|
}
|
|
@@ -190,7 +216,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
190
216
|
var state = _ref2.state,
|
|
191
217
|
dispatch = _ref2.dispatch;
|
|
192
218
|
var decorationSet = _plugin.pluginKey.getState(state);
|
|
193
|
-
if ((0,
|
|
219
|
+
if ((0, _utils4.findControlsHoverDecoration)(decorationSet).length) {
|
|
194
220
|
(0, _commands.clearHoverSelection)()(state, dispatch);
|
|
195
221
|
}
|
|
196
222
|
|
|
@@ -213,9 +239,17 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
|
|
|
213
239
|
var maybeTr = (0, _utils.closestElement)(domRef, 'tr');
|
|
214
240
|
return maybeTr ? maybeTr.classList.contains('sticky') : false;
|
|
215
241
|
},
|
|
216
|
-
handleTextInput: function handleTextInput(
|
|
217
|
-
var state =
|
|
218
|
-
dispatch =
|
|
242
|
+
handleTextInput: function handleTextInput(view, _from, _to, text) {
|
|
243
|
+
var state = view.state,
|
|
244
|
+
dispatch = view.dispatch;
|
|
245
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
246
|
+
var _getPluginState = (0, _pluginFactory.getPluginState)(state),
|
|
247
|
+
isKeyboardResize = _getPluginState.isKeyboardResize;
|
|
248
|
+
if (isKeyboardResize) {
|
|
249
|
+
(0, _columnResize.stopKeyboardColumnResizing)()(state, dispatch);
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
219
253
|
var tr = (0, _transforms2.replaceSelectedTable)(state, text, _analytics.INPUT_METHOD.KEYBOARD, editorAnalyticsAPI);
|
|
220
254
|
if (tr.selectionSet) {
|
|
221
255
|
dispatch(tr);
|
|
@@ -11,12 +11,14 @@ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
|
11
11
|
var _tableMap = require("@atlaskit/editor-tables/table-map");
|
|
12
12
|
var _utils = require("@atlaskit/editor-tables/utils");
|
|
13
13
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
|
+
var _columnResize = require("../../commands/column-resize");
|
|
14
15
|
var _misc = require("../../commands/misc");
|
|
15
16
|
var _transforms = require("../../transforms");
|
|
16
17
|
var _utils2 = require("../../utils");
|
|
18
|
+
var _pluginFactory = require("../plugin-factory");
|
|
17
19
|
var _tableAnalytics = require("../table-analytics");
|
|
18
20
|
var _commands = require("./commands");
|
|
19
|
-
var
|
|
21
|
+
var _pluginFactory2 = require("./plugin-factory");
|
|
20
22
|
var _utils3 = require("./utils");
|
|
21
23
|
var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, event, localResizeHandlePos, getEditorContainerWidth, getEditorFeatureFlags, editorAnalyticsAPI) {
|
|
22
24
|
var state = view.state,
|
|
@@ -26,6 +28,8 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
|
|
|
26
28
|
if (editorDisabled || localResizeHandlePos === null || !(0, _utils3.pointsAtCell)(state.doc.resolve(localResizeHandlePos))) {
|
|
27
29
|
return false;
|
|
28
30
|
}
|
|
31
|
+
var _getTablePluginState = (0, _pluginFactory.getPluginState)(state),
|
|
32
|
+
isKeyboardResize = _getTablePluginState.isKeyboardResize;
|
|
29
33
|
event.preventDefault();
|
|
30
34
|
var tr = view.state.tr;
|
|
31
35
|
tr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_TRIGGER, {
|
|
@@ -92,9 +96,11 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
|
|
|
92
96
|
var clientX = event.clientX;
|
|
93
97
|
var state = view.state,
|
|
94
98
|
dispatch = view.dispatch;
|
|
95
|
-
var _getPluginState = (0,
|
|
99
|
+
var _getPluginState = (0, _pluginFactory2.getPluginState)(state),
|
|
96
100
|
dragging = _getPluginState.dragging,
|
|
97
101
|
resizeHandlePos = _getPluginState.resizeHandlePos;
|
|
102
|
+
var _getTablePluginState2 = (0, _pluginFactory.getPluginState)(state),
|
|
103
|
+
isTableHovered = _getTablePluginState2.isTableHovered;
|
|
98
104
|
if (resizeHandlePos === null) {
|
|
99
105
|
return (0, _commands.stopResizing)()(state, dispatch);
|
|
100
106
|
}
|
|
@@ -107,9 +113,20 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
|
|
|
107
113
|
var start = $cell.start(-1);
|
|
108
114
|
var table = $cell.node(-1);
|
|
109
115
|
|
|
110
|
-
// If we let go in the same place we started,
|
|
116
|
+
// If we let go in the same place we started, don't need to do anything.
|
|
111
117
|
if (dragging && clientX === dragging.startX) {
|
|
112
|
-
|
|
118
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
119
|
+
if (isKeyboardResize || !isTableHovered) {
|
|
120
|
+
/** if column resize had started via keyboard but continued by mouse
|
|
121
|
+
* or mouse pointer leaves the table but mouse button still pressed
|
|
122
|
+
*/
|
|
123
|
+
return (0, _columnResize.stopKeyboardColumnResizing)()(state, dispatch, view);
|
|
124
|
+
} else {
|
|
125
|
+
return (0, _commands.stopResizing)()(state, dispatch);
|
|
126
|
+
}
|
|
127
|
+
} else {
|
|
128
|
+
return (0, _commands.stopResizing)()(state, dispatch);
|
|
129
|
+
}
|
|
113
130
|
}
|
|
114
131
|
var tr = state.tr;
|
|
115
132
|
if (dragging) {
|
|
@@ -143,17 +160,30 @@ var handleMouseDown = exports.handleMouseDown = function handleMouseDown(view, e
|
|
|
143
160
|
})(tr);
|
|
144
161
|
}
|
|
145
162
|
}
|
|
146
|
-
|
|
163
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
164
|
+
if (isKeyboardResize || !isTableHovered) {
|
|
165
|
+
/** if column resize had started via keyboard but continued by mouse
|
|
166
|
+
* or mouse pointer leaves the table but mouse button still pressed
|
|
167
|
+
*/
|
|
168
|
+
return (0, _columnResize.stopKeyboardColumnResizing)(tr)(state, dispatch, view);
|
|
169
|
+
} else {
|
|
170
|
+
return (0, _commands.stopResizing)(tr)(state, dispatch);
|
|
171
|
+
}
|
|
172
|
+
} else {
|
|
173
|
+
return (0, _commands.stopResizing)(tr)(state, dispatch);
|
|
174
|
+
}
|
|
147
175
|
}
|
|
148
176
|
}
|
|
149
177
|
function move(event) {
|
|
150
178
|
var clientX = event.clientX,
|
|
151
179
|
which = event.which;
|
|
152
180
|
var state = view.state;
|
|
153
|
-
var _getPluginState2 = (0,
|
|
181
|
+
var _getPluginState2 = (0, _pluginFactory2.getPluginState)(state),
|
|
154
182
|
dragging = _getPluginState2.dragging,
|
|
155
183
|
resizeHandlePos = _getPluginState2.resizeHandlePos;
|
|
156
|
-
|
|
184
|
+
var _getTablePluginState3 = (0, _pluginFactory.getPluginState)(state),
|
|
185
|
+
isTableHovered = _getTablePluginState3.isTableHovered;
|
|
186
|
+
if (!which || !dragging || resizeHandlePos === null || !(0, _utils3.pointsAtCell)(state.doc.resolve(resizeHandlePos)) || !isTableHovered && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
157
187
|
return finish(event);
|
|
158
188
|
}
|
|
159
189
|
var $cell = state.doc.resolve(resizeHandlePos);
|
|
@@ -8,10 +8,12 @@ exports.createPlugin = createPlugin;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
12
|
var _types = require("../../types");
|
|
13
|
+
var _pluginFactory = require("../plugin-factory");
|
|
12
14
|
var _commands = require("./commands");
|
|
13
15
|
var _eventHandlers = require("./event-handlers");
|
|
14
|
-
var
|
|
16
|
+
var _pluginFactory2 = require("./plugin-factory");
|
|
15
17
|
var _pluginKey = require("./plugin-key");
|
|
16
18
|
var _utils = require("./utils");
|
|
17
19
|
function createPlugin(dispatch, _ref, getEditorContainerWidth, getEditorFeatureFlags, editorAnalyticsAPI) {
|
|
@@ -19,7 +21,7 @@ function createPlugin(dispatch, _ref, getEditorContainerWidth, getEditorFeatureF
|
|
|
19
21
|
lastColumnResizable = _ref$lastColumnResiza === void 0 ? true : _ref$lastColumnResiza;
|
|
20
22
|
return new _safePlugin.SafePlugin({
|
|
21
23
|
key: _pluginKey.pluginKey,
|
|
22
|
-
state: (0,
|
|
24
|
+
state: (0, _pluginFactory2.createPluginState)(dispatch, {
|
|
23
25
|
lastColumnResizable: lastColumnResizable,
|
|
24
26
|
resizeHandlePos: null,
|
|
25
27
|
dragging: null,
|
|
@@ -28,7 +30,7 @@ function createPlugin(dispatch, _ref, getEditorContainerWidth, getEditorFeatureF
|
|
|
28
30
|
props: {
|
|
29
31
|
attributes: function attributes(state) {
|
|
30
32
|
var _classnames;
|
|
31
|
-
var pluginState = (0,
|
|
33
|
+
var pluginState = (0, _pluginFactory2.getPluginState)(state);
|
|
32
34
|
return {
|
|
33
35
|
class: (0, _classnames2.default)(_types.TableCssClassName.RESIZING_PLUGIN, (_classnames = {}, (0, _defineProperty2.default)(_classnames, _types.TableCssClassName.RESIZE_CURSOR, pluginState.resizeHandlePos !== null), (0, _defineProperty2.default)(_classnames, _types.TableCssClassName.IS_RESIZING, !!pluginState.dragging), _classnames))
|
|
34
36
|
};
|
|
@@ -38,10 +40,22 @@ function createPlugin(dispatch, _ref, getEditorContainerWidth, getEditorFeatureF
|
|
|
38
40
|
var state = view.state;
|
|
39
41
|
var resizeHandlePos =
|
|
40
42
|
// we're setting `resizeHandlePos` via command in unit tests
|
|
41
|
-
(0,
|
|
42
|
-
var _getPluginState = (0,
|
|
43
|
+
(0, _pluginFactory2.getPluginState)(state).resizeHandlePos || (0, _utils.getResizeCellPos)(view, event);
|
|
44
|
+
var _getPluginState = (0, _pluginFactory2.getPluginState)(state),
|
|
43
45
|
dragging = _getPluginState.dragging;
|
|
44
|
-
|
|
46
|
+
var isColumnKeyboardResizeStarted = false;
|
|
47
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
|
|
48
|
+
/*
|
|
49
|
+
We need to start listening mouse events if column resize started from keyboard.
|
|
50
|
+
This will allow continue resizing via mouse
|
|
51
|
+
*/
|
|
52
|
+
var _getTablePluginState = (0, _pluginFactory.getPluginState)(state),
|
|
53
|
+
isKeyboardResize = _getTablePluginState.isKeyboardResize;
|
|
54
|
+
if (isKeyboardResize) {
|
|
55
|
+
isColumnKeyboardResizeStarted = isKeyboardResize;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (resizeHandlePos !== null && (!dragging || isColumnKeyboardResizeStarted)) {
|
|
45
59
|
if ((0, _eventHandlers.handleMouseDown)(view, event, resizeHandlePos, getEditorContainerWidth, getEditorFeatureFlags, editorAnalyticsAPI)) {
|
|
46
60
|
var _state = view.state,
|
|
47
61
|
_dispatch = view.dispatch;
|
|
@@ -14,8 +14,8 @@ function tableSelectionKeymapPlugin(editorSelectionAPI) {
|
|
|
14
14
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.moveRight.common, (0, _selection.arrowRightFromTable)(editorSelectionAPI)(), list);
|
|
15
15
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.moveLeft.common, (0, _selection.arrowLeftFromTable)(editorSelectionAPI)(), list);
|
|
16
16
|
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y.table-selection_9uv33')) {
|
|
17
|
-
(0, _keymaps.bindKeymapArrayWithCommand)(_keymaps.selectColumn, (0, _selection.selectColumns)(editorSelectionAPI)(), list);
|
|
18
|
-
(0, _keymaps.bindKeymapArrayWithCommand)(_keymaps.selectRow, (0, _selection.selectRows)(editorSelectionAPI)(), list);
|
|
17
|
+
(0, _keymaps.bindKeymapArrayWithCommand)(_keymaps.selectColumn, (0, _selection.selectColumns)(editorSelectionAPI)(true), list);
|
|
18
|
+
(0, _keymaps.bindKeymapArrayWithCommand)(_keymaps.selectRow, (0, _selection.selectRows)(editorSelectionAPI)(true), list);
|
|
19
19
|
}
|
|
20
20
|
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.shift-arrowup-fix')) {
|
|
21
21
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.shiftArrowUp.common, (0, _selection.shiftArrowUpFromTable)(editorSelectionAPI)(), list);
|
package/dist/cjs/reducer.js
CHANGED
|
@@ -64,8 +64,9 @@ var _default = exports.default = function _default(pluginState, action) {
|
|
|
64
64
|
resizeHandleColumnIndex: undefined,
|
|
65
65
|
resizeHandleRowIndex: undefined
|
|
66
66
|
});
|
|
67
|
+
case 'START_KEYBOARD_COLUMN_RESIZE':
|
|
67
68
|
case 'ADD_RESIZE_HANDLE_DECORATIONS':
|
|
68
|
-
if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex && action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex && action.data.resizeHandleIncludeTooltip === pluginState.resizeHandleIncludeTooltip) {
|
|
69
|
+
if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex && action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex && action.data.resizeHandleIncludeTooltip === pluginState.resizeHandleIncludeTooltip && action.data.isKeyboardResize === pluginState.isKeyboardResize) {
|
|
69
70
|
return pluginState;
|
|
70
71
|
}
|
|
71
72
|
return _objectSpread(_objectSpread(_objectSpread({}, pluginState), action.data), {}, {
|
|
@@ -84,6 +85,7 @@ var _default = exports.default = function _default(pluginState, action) {
|
|
|
84
85
|
resizeHandleRowIndex: resizeHandleRowIndex !== null && resizeHandleRowIndex !== void 0 ? resizeHandleRowIndex : pluginState.resizeHandleRowIndex,
|
|
85
86
|
resizeHandleIncludeTooltip: resizeHandleIncludeTooltip !== null && resizeHandleIncludeTooltip !== void 0 ? resizeHandleIncludeTooltip : pluginState.resizeHandleIncludeTooltip
|
|
86
87
|
});
|
|
88
|
+
case 'STOP_KEYBOARD_COLUMN_RESIZE':
|
|
87
89
|
case 'REMOVE_RESIZE_HANDLE_DECORATIONS':
|
|
88
90
|
if (!pluginState.isResizeHandleWidgetAdded) {
|
|
89
91
|
return pluginState;
|
|
@@ -91,7 +93,8 @@ var _default = exports.default = function _default(pluginState, action) {
|
|
|
91
93
|
return _objectSpread(_objectSpread(_objectSpread({}, pluginState), action.data), {}, {
|
|
92
94
|
resizeHandleColumnIndex: undefined,
|
|
93
95
|
resizeHandleRowIndex: undefined,
|
|
94
|
-
isResizeHandleWidgetAdded: false
|
|
96
|
+
isResizeHandleWidgetAdded: false,
|
|
97
|
+
isKeyboardResize: undefined
|
|
95
98
|
});
|
|
96
99
|
case 'SET_TABLE_REF':
|
|
97
100
|
case 'HOVER_ROWS':
|
|
@@ -9,10 +9,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _icons = require("../icons");
|
|
10
10
|
var HandleIconComponent = exports.HandleIconComponent = function HandleIconComponent(props) {
|
|
11
11
|
var forceDefaultHandle = props.forceDefaultHandle,
|
|
12
|
-
|
|
13
|
-
isColumnHandleHovered = props.isColumnHandleHovered,
|
|
12
|
+
isHandleHovered = props.isHandleHovered,
|
|
14
13
|
hasMergedCells = props.hasMergedCells;
|
|
15
|
-
var isHandleHovered = isRowHandleHovered || isColumnHandleHovered;
|
|
16
14
|
if (isHandleHovered || forceDefaultHandle) {
|
|
17
15
|
return hasMergedCells ? /*#__PURE__*/_react.default.createElement(_icons.DragHandleDisabledIcon, null) : /*#__PURE__*/_react.default.createElement(_icons.DragHandleIcon, null);
|
|
18
16
|
}
|
|
@@ -16,7 +16,8 @@ var _messages = require("@atlaskit/editor-common/messages");
|
|
|
16
16
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
17
17
|
var _element = require("@atlaskit/pragmatic-drag-and-drop/adapter/element");
|
|
18
18
|
var _setCustomNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview");
|
|
19
|
-
var _pluginFactory = require("../../pm-plugins/plugin-factory");
|
|
19
|
+
var _pluginFactory = require("../../pm-plugins/drag-and-drop/plugin-factory");
|
|
20
|
+
var _pluginFactory2 = require("../../pm-plugins/plugin-factory");
|
|
20
21
|
var _types = require("../../types");
|
|
21
22
|
var _utils2 = require("../../utils");
|
|
22
23
|
var _consts = require("../consts");
|
|
@@ -38,7 +39,7 @@ var DragHandleComponent = function DragHandleComponent(_ref) {
|
|
|
38
39
|
previewHeight = _ref.previewHeight,
|
|
39
40
|
onMouseOver = _ref.onMouseOver,
|
|
40
41
|
onMouseOut = _ref.onMouseOut,
|
|
41
|
-
|
|
42
|
+
toggleDragMenu = _ref.toggleDragMenu,
|
|
42
43
|
onClick = _ref.onClick,
|
|
43
44
|
editorView = _ref.editorView,
|
|
44
45
|
formatMessage = _ref.intl.formatMessage;
|
|
@@ -47,10 +48,13 @@ var DragHandleComponent = function DragHandleComponent(_ref) {
|
|
|
47
48
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
48
49
|
previewContainer = _useState2[0],
|
|
49
50
|
setPreviewContainer = _useState2[1];
|
|
50
|
-
var
|
|
51
|
+
var state = editorView.state,
|
|
52
|
+
selection = editorView.state.selection;
|
|
53
|
+
var _getPluginState = (0, _pluginFactory2.getPluginState)(state),
|
|
51
54
|
hoveredColumns = _getPluginState.hoveredColumns,
|
|
52
55
|
hoveredRows = _getPluginState.hoveredRows;
|
|
53
|
-
var
|
|
56
|
+
var _getDnDPluginState = (0, _pluginFactory.getPluginState)(state),
|
|
57
|
+
isDragMenuOpen = _getDnDPluginState.isDragMenuOpen;
|
|
54
58
|
var isRow = direction === 'row';
|
|
55
59
|
var isColumn = direction === 'column';
|
|
56
60
|
var isRowHandleHovered = isRow && hoveredRows.length > 0;
|
|
@@ -60,8 +64,7 @@ var DragHandleComponent = function DragHandleComponent(_ref) {
|
|
|
60
64
|
}, [indexes, isRow, selection]);
|
|
61
65
|
var handleIconProps = {
|
|
62
66
|
forceDefaultHandle: forceDefaultHandle,
|
|
63
|
-
|
|
64
|
-
isRowHandleHovered: isRowHandleHovered,
|
|
67
|
+
isHandleHovered: isColumnHandleHovered || isRowHandleHovered,
|
|
65
68
|
hasMergedCells: hasMergedCells
|
|
66
69
|
};
|
|
67
70
|
(0, _react.useEffect)(function () {
|
|
@@ -144,20 +147,29 @@ var DragHandleComponent = function DragHandleComponent(_ref) {
|
|
|
144
147
|
},
|
|
145
148
|
"data-testid": "table-drag-handle-button",
|
|
146
149
|
"aria-label": formatMessage(isRow ? _messages.tableMessages.rowDragHandle : _messages.tableMessages.columnDragHandle),
|
|
150
|
+
"aria-expanded": isDragMenuOpen && isDragMenuTarget ? 'true' : 'false',
|
|
151
|
+
"aria-haspopup": "menu",
|
|
147
152
|
onMouseOver: onMouseOver,
|
|
148
153
|
onMouseOut: onMouseOut,
|
|
149
154
|
onMouseUp: function onMouseUp(e) {
|
|
150
155
|
// return focus to editor so copying table selections whilst still works, i cannot call e.preventDefault in a mousemove event as this stops dragstart events from firing
|
|
151
156
|
// -> this is bad for a11y but is the current standard new copy/paste keyboard shortcuts should be introduced instead
|
|
152
157
|
editorView.focus();
|
|
153
|
-
|
|
158
|
+
toggleDragMenu && toggleDragMenu('mouse', e);
|
|
154
159
|
},
|
|
155
|
-
onClick: onClick
|
|
156
|
-
|
|
160
|
+
onClick: onClick,
|
|
161
|
+
onKeyDown: function onKeyDown(e) {
|
|
162
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
163
|
+
toggleDragMenu && toggleDragMenu('keyboard');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}, appearance !== 'placeholder' ?
|
|
167
|
+
// cannot block pointer events in Firefox as it breaks Dragging functionality
|
|
168
|
+
_utils.browser.gecko ? /*#__PURE__*/_react.default.createElement(_HandleIconComponent.HandleIconComponent, handleIconProps) : /*#__PURE__*/_react.default.createElement("span", {
|
|
157
169
|
style: {
|
|
158
170
|
pointerEvents: 'none'
|
|
159
171
|
}
|
|
160
|
-
}, /*#__PURE__*/_react.default.createElement(_HandleIconComponent.HandleIconComponent, handleIconProps))), previewContainer && previewWidth !== undefined && previewHeight !== undefined && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_DragPreview.DragPreview, {
|
|
172
|
+
}, /*#__PURE__*/_react.default.createElement(_HandleIconComponent.HandleIconComponent, handleIconProps)) : null), previewContainer && previewWidth !== undefined && previewHeight !== undefined && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_DragPreview.DragPreview, {
|
|
161
173
|
direction: direction,
|
|
162
174
|
width: previewWidth,
|
|
163
175
|
height: previewHeight
|