@atlaskit/editor-tables 2.2.4 → 2.2.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 +12 -0
- package/dist/cjs/cell-bookmark.js +0 -10
- package/dist/cjs/cell-selection.js +37 -102
- package/dist/cjs/index.js +0 -4
- package/dist/cjs/pm-plugins/input.js +17 -83
- package/dist/cjs/pm-plugins/plugin-key.js +0 -2
- package/dist/cjs/pm-plugins/table-editing.js +17 -18
- package/dist/cjs/pm-plugins.js +0 -2
- package/dist/cjs/table-map.js +67 -138
- package/dist/cjs/utils/add-column-at.js +0 -9
- package/dist/cjs/utils/add-column.js +8 -24
- package/dist/cjs/utils/add-row-at.js +8 -37
- package/dist/cjs/utils/add-row.js +2 -23
- package/dist/cjs/utils/analytics-helpers.js +4 -15
- package/dist/cjs/utils/cells.js +0 -12
- package/dist/cjs/utils/clone-tr.js +0 -2
- package/dist/cjs/utils/colspan.js +2 -18
- package/dist/cjs/utils/copy-paste.js +51 -139
- package/dist/cjs/utils/create-table.js +14 -28
- package/dist/cjs/utils/draw-cell-selection.js +0 -4
- package/dist/cjs/utils/empty-cells.js +0 -6
- package/dist/cjs/utils/find.js +6 -18
- package/dist/cjs/utils/fix-tables.js +13 -56
- package/dist/cjs/utils/for-each-cell.js +3 -17
- package/dist/cjs/utils/get-cell-selection-ranges.js +2 -9
- package/dist/cjs/utils/get-cells-in-column.js +0 -7
- package/dist/cjs/utils/get-cells-in-row.js +0 -7
- package/dist/cjs/utils/get-cells-in-table.js +0 -8
- package/dist/cjs/utils/get-selection-range-in-column.js +6 -27
- package/dist/cjs/utils/get-selection-range-in-row.js +6 -27
- package/dist/cjs/utils/get-selection-rect.js +0 -7
- package/dist/cjs/utils/go-to-next-cell.js +3 -22
- package/dist/cjs/utils/handle-paste.js +5 -34
- package/dist/cjs/utils/is-selected.js +6 -23
- package/dist/cjs/utils/is-selection-type.js +0 -2
- package/dist/cjs/utils/move-column.js +0 -12
- package/dist/cjs/utils/move-row.js +0 -11
- package/dist/cjs/utils/normalize-selection.js +3 -27
- package/dist/cjs/utils/remove-column.js +10 -46
- package/dist/cjs/utils/remove-row.js +8 -49
- package/dist/cjs/utils/remove-table.js +0 -6
- package/dist/cjs/utils/reorder-utils.js +13 -37
- package/dist/cjs/utils/replace-table.js +0 -8
- package/dist/cjs/utils/select-nodes.js +11 -31
- package/dist/cjs/utils/selection-cell.js +0 -5
- package/dist/cjs/utils/selection-rect.js +0 -10
- package/dist/cjs/utils/set-cell-attrs.js +0 -4
- package/dist/cjs/utils/split-cell-with-type.js +2 -35
- package/dist/cjs/utils/split-cell.js +0 -4
- package/dist/cjs/utils/table-node-types.js +4 -8
- package/dist/cjs/utils/tables.js +0 -4
- package/dist/cjs/utils/test-utils.js +9 -26
- package/dist/cjs/utils/toggle-header.js +3 -16
- package/dist/cjs/utils/uuid.js +0 -3
- package/dist/cjs/utils.js +0 -42
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/cell-bookmark.js +0 -5
- package/dist/es2019/cell-selection.js +37 -81
- package/dist/es2019/index.js +1 -0
- package/dist/es2019/pm-plugins/input.js +15 -67
- package/dist/es2019/pm-plugins/table-editing.js +3 -12
- package/dist/es2019/table-map.js +57 -127
- package/dist/es2019/utils/add-column-at.js +2 -4
- package/dist/es2019/utils/add-column.js +6 -16
- package/dist/es2019/utils/add-row-at.js +8 -22
- package/dist/es2019/utils/add-row.js +2 -17
- package/dist/es2019/utils/analytics-helpers.js +0 -5
- package/dist/es2019/utils/cells.js +4 -9
- package/dist/es2019/utils/colspan.js +6 -11
- package/dist/es2019/utils/copy-paste.js +41 -115
- package/dist/es2019/utils/create-table.js +3 -12
- package/dist/es2019/utils/draw-cell-selection.js +0 -1
- package/dist/es2019/utils/empty-cells.js +2 -3
- package/dist/es2019/utils/find.js +8 -8
- package/dist/es2019/utils/fix-tables.js +17 -47
- package/dist/es2019/utils/for-each-cell.js +6 -11
- package/dist/es2019/utils/get-cell-selection-ranges.js +2 -4
- package/dist/es2019/utils/get-cells-in-column.js +2 -3
- package/dist/es2019/utils/get-cells-in-row.js +2 -3
- package/dist/es2019/utils/get-cells-in-table.js +2 -4
- package/dist/es2019/utils/get-selection-range-in-column.js +8 -22
- package/dist/es2019/utils/get-selection-range-in-row.js +8 -22
- package/dist/es2019/utils/get-selection-rect.js +2 -2
- package/dist/es2019/utils/go-to-next-cell.js +3 -19
- package/dist/es2019/utils/handle-paste.js +3 -14
- package/dist/es2019/utils/is-selected.js +8 -10
- package/dist/es2019/utils/is-selection-type.js +0 -1
- package/dist/es2019/utils/move-column.js +3 -8
- package/dist/es2019/utils/move-row.js +3 -7
- package/dist/es2019/utils/normalize-selection.js +0 -16
- package/dist/es2019/utils/remove-column.js +10 -27
- package/dist/es2019/utils/remove-row.js +12 -32
- package/dist/es2019/utils/remove-table.js +2 -4
- package/dist/es2019/utils/reorder-utils.js +11 -26
- package/dist/es2019/utils/replace-table.js +0 -2
- package/dist/es2019/utils/select-nodes.js +9 -20
- package/dist/es2019/utils/selection-cell.js +0 -2
- package/dist/es2019/utils/selection-rect.js +0 -4
- package/dist/es2019/utils/set-cell-attrs.js +2 -2
- package/dist/es2019/utils/split-cell-with-type.js +8 -28
- package/dist/es2019/utils/split-cell.js +3 -2
- package/dist/es2019/utils/table-node-types.js +4 -7
- package/dist/es2019/utils/tables.js +0 -2
- package/dist/es2019/utils/test-utils.js +12 -16
- package/dist/es2019/utils/toggle-header.js +3 -10
- package/dist/es2019/utils/uuid.js +0 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/cell-bookmark.js +0 -5
- package/dist/esm/cell-selection.js +37 -79
- package/dist/esm/index.js +1 -0
- package/dist/esm/pm-plugins/input.js +17 -71
- package/dist/esm/pm-plugins/table-editing.js +8 -13
- package/dist/esm/table-map.js +68 -133
- package/dist/esm/utils/add-column-at.js +2 -4
- package/dist/esm/utils/add-column.js +8 -20
- package/dist/esm/utils/add-row-at.js +8 -23
- package/dist/esm/utils/add-row.js +2 -21
- package/dist/esm/utils/analytics-helpers.js +4 -10
- package/dist/esm/utils/cells.js +0 -5
- package/dist/esm/utils/colspan.js +2 -14
- package/dist/esm/utils/copy-paste.js +44 -125
- package/dist/esm/utils/create-table.js +14 -25
- package/dist/esm/utils/draw-cell-selection.js +0 -1
- package/dist/esm/utils/empty-cells.js +2 -3
- package/dist/esm/utils/find.js +8 -8
- package/dist/esm/utils/fix-tables.js +13 -49
- package/dist/esm/utils/for-each-cell.js +6 -11
- package/dist/esm/utils/get-cell-selection-ranges.js +2 -4
- package/dist/esm/utils/get-cells-in-column.js +2 -3
- package/dist/esm/utils/get-cells-in-row.js +2 -3
- package/dist/esm/utils/get-cells-in-table.js +2 -4
- package/dist/esm/utils/get-selection-range-in-column.js +8 -24
- package/dist/esm/utils/get-selection-range-in-row.js +8 -24
- package/dist/esm/utils/get-selection-rect.js +2 -2
- package/dist/esm/utils/go-to-next-cell.js +3 -19
- package/dist/esm/utils/handle-paste.js +5 -23
- package/dist/esm/utils/is-selected.js +8 -10
- package/dist/esm/utils/is-selection-type.js +0 -1
- package/dist/esm/utils/move-column.js +3 -8
- package/dist/esm/utils/move-row.js +3 -7
- package/dist/esm/utils/normalize-selection.js +3 -22
- package/dist/esm/utils/remove-column.js +10 -31
- package/dist/esm/utils/remove-row.js +8 -35
- package/dist/esm/utils/remove-table.js +2 -4
- package/dist/esm/utils/reorder-utils.js +11 -26
- package/dist/esm/utils/replace-table.js +0 -2
- package/dist/esm/utils/select-nodes.js +11 -22
- package/dist/esm/utils/selection-cell.js +0 -2
- package/dist/esm/utils/selection-rect.js +0 -4
- package/dist/esm/utils/set-cell-attrs.js +2 -2
- package/dist/esm/utils/split-cell-with-type.js +2 -28
- package/dist/esm/utils/split-cell.js +3 -2
- package/dist/esm/utils/table-node-types.js +4 -7
- package/dist/esm/utils/tables.js +0 -2
- package/dist/esm/utils/test-utils.js +12 -16
- package/dist/esm/utils/toggle-header.js +3 -10
- package/dist/esm/version.json +1 -1
- package/package.json +6 -4
|
@@ -6,25 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.handleKeyDown = void 0;
|
|
7
7
|
exports.handleMouseDown = handleMouseDown;
|
|
8
8
|
exports.handleTripleClick = handleTripleClick;
|
|
9
|
-
|
|
10
9
|
var _prosemirrorKeymap = require("prosemirror-keymap");
|
|
11
|
-
|
|
12
10
|
var _prosemirrorModel = require("prosemirror-model");
|
|
13
|
-
|
|
14
11
|
var _prosemirrorState = require("prosemirror-state");
|
|
15
|
-
|
|
16
12
|
var _cellSelection = require("../cell-selection");
|
|
17
|
-
|
|
18
13
|
var _utils = require("../utils");
|
|
19
|
-
|
|
20
14
|
var _cells = require("../utils/cells");
|
|
21
|
-
|
|
22
15
|
var _tables = require("../utils/tables");
|
|
23
|
-
|
|
24
16
|
var _pluginKey = require("./plugin-key");
|
|
25
|
-
|
|
26
17
|
// This file defines a number of helpers for wiring up user input to
|
|
27
18
|
// table-related functionality.
|
|
19
|
+
|
|
28
20
|
var handleKeyDown = (0, _prosemirrorKeymap.keydownHandler)({
|
|
29
21
|
ArrowLeft: arrow('horiz', -1),
|
|
30
22
|
ArrowRight: arrow('horiz', 1),
|
|
@@ -40,46 +32,35 @@ var handleKeyDown = (0, _prosemirrorKeymap.keydownHandler)({
|
|
|
40
32
|
'Mod-Delete': deleteCellSelection
|
|
41
33
|
});
|
|
42
34
|
exports.handleKeyDown = handleKeyDown;
|
|
43
|
-
|
|
44
35
|
function maybeSetSelection(state, dispatch, selection) {
|
|
45
36
|
if (selection.eq(state.selection)) {
|
|
46
37
|
return false;
|
|
47
38
|
}
|
|
48
|
-
|
|
49
39
|
if (dispatch) {
|
|
50
40
|
dispatch(state.tr.setSelection(selection).scrollIntoView());
|
|
51
41
|
}
|
|
52
|
-
|
|
53
42
|
return true;
|
|
54
43
|
}
|
|
55
|
-
|
|
56
44
|
function arrow(axis, dir) {
|
|
57
45
|
return function (state, dispatch, view) {
|
|
58
46
|
if (dispatch) {
|
|
59
47
|
var sel = state.selection;
|
|
60
|
-
|
|
61
48
|
if (sel instanceof _cellSelection.CellSelection) {
|
|
62
49
|
return maybeSetSelection(state, dispatch, _prosemirrorState.Selection.near(sel.$headCell, dir));
|
|
63
50
|
}
|
|
64
|
-
|
|
65
51
|
if (axis !== 'horiz' && !sel.empty) {
|
|
66
52
|
return false;
|
|
67
53
|
}
|
|
68
|
-
|
|
69
54
|
var end = view ? atEndOfCell(view, axis, dir) : null;
|
|
70
|
-
|
|
71
55
|
if (end === null) {
|
|
72
56
|
return false;
|
|
73
57
|
}
|
|
74
|
-
|
|
75
58
|
if (axis === 'horiz') {
|
|
76
59
|
return maybeSetSelection(state, dispatch, _prosemirrorState.Selection.near(state.doc.resolve(sel.head + dir), dir));
|
|
77
60
|
}
|
|
78
|
-
|
|
79
61
|
var $cell = state.doc.resolve(end);
|
|
80
62
|
var $next = (0, _cells.nextCell)($cell, axis, dir);
|
|
81
63
|
var newSel;
|
|
82
|
-
|
|
83
64
|
if ($next) {
|
|
84
65
|
newSel = _prosemirrorState.Selection.near($next, 1);
|
|
85
66
|
} else if (dir < 0) {
|
|
@@ -87,64 +68,47 @@ function arrow(axis, dir) {
|
|
|
87
68
|
} else {
|
|
88
69
|
newSel = _prosemirrorState.Selection.near(state.doc.resolve($cell.after(-1)), 1);
|
|
89
70
|
}
|
|
90
|
-
|
|
91
71
|
return maybeSetSelection(state, dispatch, newSel);
|
|
92
72
|
}
|
|
93
|
-
|
|
94
73
|
return true;
|
|
95
74
|
};
|
|
96
75
|
}
|
|
97
|
-
|
|
98
76
|
function shiftArrow(axis, dir) {
|
|
99
77
|
return function (state, dispatch, view) {
|
|
100
78
|
var sel = state.selection;
|
|
101
|
-
|
|
102
79
|
if (!(sel instanceof _cellSelection.CellSelection)) {
|
|
103
80
|
var _maybeTableCell$paren;
|
|
104
|
-
|
|
105
81
|
var end = view ? atEndOfCell(view, axis, dir) : null;
|
|
106
|
-
|
|
107
82
|
if (end === null) {
|
|
108
83
|
return false;
|
|
109
84
|
}
|
|
110
|
-
|
|
111
85
|
var _state$selection = state.selection,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var maybeTableCell = _$head.blockRange($anchor); // Make sure the selection is coming from the same cell
|
|
116
|
-
|
|
86
|
+
_$head = _state$selection.$head,
|
|
87
|
+
$anchor = _state$selection.$anchor;
|
|
88
|
+
var maybeTableCell = _$head.blockRange($anchor);
|
|
117
89
|
|
|
90
|
+
// Make sure the selection is coming from the same cell
|
|
118
91
|
var sameCell = ['tableCell', 'tableHeader'].includes((maybeTableCell === null || maybeTableCell === void 0 ? void 0 : (_maybeTableCell$paren = maybeTableCell.parent) === null || _maybeTableCell$paren === void 0 ? void 0 : _maybeTableCell$paren.type.name) || '');
|
|
119
|
-
|
|
120
92
|
if (!sameCell) {
|
|
121
93
|
return false;
|
|
122
94
|
}
|
|
123
|
-
|
|
124
95
|
sel = new _cellSelection.CellSelection(state.doc.resolve(end));
|
|
125
96
|
}
|
|
126
|
-
|
|
127
97
|
var $head = (0, _cells.nextCell)(sel.$headCell, axis, dir);
|
|
128
|
-
|
|
129
98
|
if (!$head) {
|
|
130
99
|
return false;
|
|
131
100
|
}
|
|
132
|
-
|
|
133
101
|
if (dispatch) {
|
|
134
102
|
return maybeSetSelection(state, dispatch, new _cellSelection.CellSelection(sel.$anchorCell, $head));
|
|
135
103
|
}
|
|
136
|
-
|
|
137
104
|
return true;
|
|
138
105
|
};
|
|
139
106
|
}
|
|
140
|
-
|
|
141
107
|
function deleteCellSelection(state, dispatch) {
|
|
142
108
|
var sel = state.selection;
|
|
143
|
-
|
|
144
109
|
if (!(sel instanceof _cellSelection.CellSelection)) {
|
|
145
110
|
return false;
|
|
146
111
|
}
|
|
147
|
-
|
|
148
112
|
if (dispatch) {
|
|
149
113
|
var tr = state.tr;
|
|
150
114
|
var baseContent = (0, _utils.tableNodeTypes)(state.schema).cell.createAndFill().content;
|
|
@@ -153,38 +117,30 @@ function deleteCellSelection(state, dispatch) {
|
|
|
153
117
|
tr.replace(tr.mapping.map(pos + 1), tr.mapping.map(pos + cell.nodeSize - 1), new _prosemirrorModel.Slice(baseContent, 0, 0));
|
|
154
118
|
}
|
|
155
119
|
});
|
|
156
|
-
|
|
157
120
|
if (tr.docChanged) {
|
|
158
121
|
dispatch(tr);
|
|
159
122
|
}
|
|
160
123
|
}
|
|
161
|
-
|
|
162
124
|
return true;
|
|
163
125
|
}
|
|
164
|
-
|
|
165
126
|
function handleTripleClick(view, pos) {
|
|
166
127
|
var doc = view.state.doc;
|
|
167
128
|
var $cell = (0, _cells.cellAround)(doc.resolve(pos));
|
|
168
|
-
|
|
169
129
|
if (!$cell) {
|
|
170
130
|
return false;
|
|
171
131
|
}
|
|
172
|
-
|
|
173
132
|
view.dispatch(view.state.tr.setSelection(new _cellSelection.CellSelection($cell)));
|
|
174
133
|
return true;
|
|
175
134
|
}
|
|
176
|
-
|
|
177
135
|
function handleMouseDown(view, event) {
|
|
178
|
-
var startEvent = event;
|
|
179
|
-
|
|
136
|
+
var startEvent = event;
|
|
137
|
+
// Prevent right clicks from making a cell selection https://product-fabric.atlassian.net/browse/ED-12527
|
|
180
138
|
if (startEvent.ctrlKey || startEvent.metaKey || startEvent.button === 2 // right mouse click
|
|
181
139
|
) {
|
|
182
140
|
return false;
|
|
183
141
|
}
|
|
184
|
-
|
|
185
142
|
var startDOMCell = domInCell(view, startEvent.target);
|
|
186
143
|
var $anchor = (0, _cells.cellAround)(view.state.selection.$anchor);
|
|
187
|
-
|
|
188
144
|
if (startEvent.shiftKey && view.state.selection instanceof _cellSelection.CellSelection) {
|
|
189
145
|
// Adding to an existing cell selection
|
|
190
146
|
setCellSelection(view.state.selection.$anchorCell, startEvent);
|
|
@@ -197,14 +153,13 @@ function handleMouseDown(view, event) {
|
|
|
197
153
|
} else if (!startDOMCell) {
|
|
198
154
|
// Not in a cell, let the default behavior happen.
|
|
199
155
|
return false;
|
|
200
|
-
}
|
|
201
|
-
// the position under the mouse.
|
|
202
|
-
|
|
156
|
+
}
|
|
203
157
|
|
|
158
|
+
// Create and dispatch a cell selection between the given anchor and
|
|
159
|
+
// the position under the mouse.
|
|
204
160
|
function setCellSelection($selectionAnchor, event) {
|
|
205
161
|
var $head = cellUnderMouse(view, event);
|
|
206
162
|
var starting = _pluginKey.tableEditingKey.getState(view.state) == null;
|
|
207
|
-
|
|
208
163
|
if (!$head || !(0, _tables.inSameTable)($selectionAnchor, $head)) {
|
|
209
164
|
if (starting) {
|
|
210
165
|
$head = $selectionAnchor;
|
|
@@ -212,109 +167,88 @@ function handleMouseDown(view, event) {
|
|
|
212
167
|
return false;
|
|
213
168
|
}
|
|
214
169
|
}
|
|
215
|
-
|
|
216
170
|
var selection = new _cellSelection.CellSelection($selectionAnchor, $head);
|
|
217
|
-
|
|
218
171
|
if (starting || !view.state.selection.eq(selection)) {
|
|
219
172
|
var tr = view.state.tr.setSelection(selection);
|
|
220
|
-
|
|
221
173
|
if (starting) {
|
|
222
174
|
tr.setMeta(_pluginKey.tableEditingKey, $selectionAnchor.pos);
|
|
223
175
|
}
|
|
224
|
-
|
|
225
176
|
view.dispatch(tr);
|
|
226
177
|
}
|
|
227
|
-
}
|
|
228
|
-
|
|
178
|
+
}
|
|
229
179
|
|
|
180
|
+
// Stop listening to mouse motion events.
|
|
230
181
|
function stop() {
|
|
231
182
|
view.root.removeEventListener('mouseup', stop);
|
|
232
183
|
view.root.removeEventListener('dragstart', stop);
|
|
233
184
|
view.root.removeEventListener('mousemove', move);
|
|
234
|
-
|
|
235
185
|
if (_pluginKey.tableEditingKey.getState(view.state) != null) {
|
|
236
186
|
view.dispatch(view.state.tr.setMeta(_pluginKey.tableEditingKey, -1));
|
|
237
187
|
}
|
|
238
188
|
}
|
|
239
|
-
|
|
240
189
|
function move(event) {
|
|
241
190
|
var anchor = _pluginKey.tableEditingKey.getState(view.state);
|
|
242
|
-
|
|
243
191
|
var $moveAnchor;
|
|
244
|
-
|
|
245
192
|
if (anchor != null) {
|
|
246
193
|
// Continuing an existing cross-cell selection
|
|
247
194
|
$moveAnchor = view.state.doc.resolve(anchor);
|
|
248
195
|
} else if (domInCell(view, event.target) !== startDOMCell) {
|
|
249
196
|
// Moving out of the initial cell -- start a new cell selection
|
|
250
197
|
$moveAnchor = cellUnderMouse(view, startEvent);
|
|
251
|
-
|
|
252
198
|
if (!$moveAnchor) {
|
|
253
199
|
stop();
|
|
254
200
|
return;
|
|
255
201
|
}
|
|
256
202
|
}
|
|
257
|
-
|
|
258
203
|
if ($moveAnchor) {
|
|
259
204
|
setCellSelection($moveAnchor, event);
|
|
260
205
|
}
|
|
261
206
|
}
|
|
262
|
-
|
|
263
207
|
view.root.addEventListener('mouseup', stop);
|
|
264
208
|
view.root.addEventListener('dragstart', stop);
|
|
265
209
|
view.root.addEventListener('mousemove', move);
|
|
266
210
|
return false;
|
|
267
|
-
}
|
|
268
|
-
// motion would move out of the cell)
|
|
269
|
-
|
|
211
|
+
}
|
|
270
212
|
|
|
213
|
+
// Check whether the cursor is at the end of a cell (so that further
|
|
214
|
+
// motion would move out of the cell)
|
|
271
215
|
function atEndOfCell(view, axis, dir) {
|
|
272
216
|
if (!(view.state.selection instanceof _prosemirrorState.TextSelection)) {
|
|
273
217
|
return null;
|
|
274
218
|
}
|
|
275
|
-
|
|
276
219
|
var $head = view.state.selection.$head;
|
|
277
|
-
|
|
278
220
|
for (var d = $head.depth - 1; d >= 0; d--) {
|
|
279
221
|
var parent = $head.node(d);
|
|
280
222
|
var index = dir < 0 ? $head.index(d) : $head.indexAfter(d);
|
|
281
|
-
|
|
282
223
|
if (index !== (dir < 0 ? 0 : parent.childCount)) {
|
|
283
224
|
return null;
|
|
284
225
|
}
|
|
285
|
-
|
|
286
226
|
if (parent.type.spec.tableRole === 'cell' || parent.type.spec.tableRole === 'header_cell') {
|
|
287
227
|
var cellPos = $head.before(d);
|
|
288
|
-
var dirStr =
|
|
228
|
+
var dirStr =
|
|
229
|
+
// eslint-disable-next-line no-nested-ternary
|
|
289
230
|
axis === 'vert' ? dir > 0 ? 'down' : 'up' : dir > 0 ? 'right' : 'left';
|
|
290
231
|
return view.endOfTextblock(dirStr) ? cellPos : null;
|
|
291
232
|
}
|
|
292
233
|
}
|
|
293
|
-
|
|
294
234
|
return null;
|
|
295
235
|
}
|
|
296
|
-
|
|
297
236
|
function domInCell(view, inputDom) {
|
|
298
237
|
var dom = inputDom;
|
|
299
|
-
|
|
300
238
|
for (; dom && dom !== view.dom; dom = dom.parentNode) {
|
|
301
239
|
if (dom.nodeName === 'TD' || dom.nodeName === 'TH') {
|
|
302
240
|
return dom;
|
|
303
241
|
}
|
|
304
242
|
}
|
|
305
|
-
|
|
306
243
|
return null;
|
|
307
244
|
}
|
|
308
|
-
|
|
309
245
|
function cellUnderMouse(view, event) {
|
|
310
246
|
var mousePos = view.posAtCoords({
|
|
311
247
|
left: event.clientX,
|
|
312
248
|
top: event.clientY
|
|
313
249
|
});
|
|
314
|
-
|
|
315
250
|
if (!mousePos) {
|
|
316
251
|
return null;
|
|
317
252
|
}
|
|
318
|
-
|
|
319
253
|
return (0, _cells.cellAround)(view.state.doc.resolve(mousePos.pos));
|
|
320
254
|
}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.tableEditingKey = exports.fixTablesKey = void 0;
|
|
7
|
-
|
|
8
7
|
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
-
|
|
10
8
|
var tableEditingKey = new _prosemirrorState.PluginKey('selectingCells');
|
|
11
9
|
exports.tableEditingKey = tableEditingKey;
|
|
12
10
|
var fixTablesKey = new _prosemirrorState.PluginKey('fix-tables');
|
|
@@ -4,27 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.tableEditing = tableEditing;
|
|
7
|
-
|
|
8
7
|
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
-
|
|
10
8
|
var _utils = require("../utils");
|
|
11
|
-
|
|
12
9
|
var _drawCellSelection = require("../utils/draw-cell-selection");
|
|
13
|
-
|
|
14
10
|
var _fixTables = require("../utils/fix-tables");
|
|
15
|
-
|
|
16
11
|
var _normalizeSelection = require("../utils/normalize-selection");
|
|
17
|
-
|
|
18
12
|
var _input = require("./input");
|
|
19
|
-
|
|
20
13
|
var _pluginKey = require("./plugin-key");
|
|
14
|
+
// :: () → Plugin
|
|
15
|
+
//
|
|
16
|
+
// Creates a [plugin](http://prosemirror.net/docs/ref/#state.Plugin)
|
|
17
|
+
// that, when added to an editor, enables cell-selection, handles
|
|
18
|
+
// cell-based copy/paste, and makes sure tables stay well-formed (each
|
|
19
|
+
// row has the same width, and cells don't overlap).
|
|
20
|
+
//
|
|
21
|
+
// You should probably put this plugin near the end of your array of
|
|
22
|
+
// plugins, since it handles mouse and arrow key events in tables
|
|
23
|
+
// rather broadly, and other plugins, like the gap cursor or the
|
|
24
|
+
// column-width dragging plugin, might want to get a turn first to
|
|
25
|
+
// perform more specific behavior.
|
|
21
26
|
|
|
22
27
|
function tableEditing() {
|
|
23
28
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
_ref$allowTableNodeSe = _ref.allowTableNodeSelection,
|
|
30
|
+
allowTableNodeSelection = _ref$allowTableNodeSe === void 0 ? false : _ref$allowTableNodeSe,
|
|
31
|
+
reportFixedTable = _ref.reportFixedTable;
|
|
28
32
|
return new _prosemirrorState.Plugin({
|
|
29
33
|
key: _pluginKey.tableEditingKey,
|
|
30
34
|
// This piece of state is used to remember when a mouse-drag
|
|
@@ -37,19 +41,15 @@ function tableEditing() {
|
|
|
37
41
|
apply: function apply(unsafeTr, cur) {
|
|
38
42
|
var tr = unsafeTr;
|
|
39
43
|
var set = tr.getMeta(_pluginKey.tableEditingKey);
|
|
40
|
-
|
|
41
44
|
if (set != null) {
|
|
42
45
|
return set === -1 ? null : set;
|
|
43
46
|
}
|
|
44
|
-
|
|
45
47
|
if (cur == null || !tr.docChanged) {
|
|
46
48
|
return cur;
|
|
47
49
|
}
|
|
48
|
-
|
|
49
50
|
var _tr$mapping$mapResult = tr.mapping.mapResult(cur),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
deleted = _tr$mapping$mapResult.deleted,
|
|
52
|
+
pos = _tr$mapping$mapResult.pos;
|
|
53
53
|
return deleted ? null : pos;
|
|
54
54
|
}
|
|
55
55
|
},
|
|
@@ -62,7 +62,6 @@ function tableEditing() {
|
|
|
62
62
|
if (_pluginKey.tableEditingKey.getState(view.state) != null) {
|
|
63
63
|
return view.state.selection;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
65
|
return null;
|
|
67
66
|
},
|
|
68
67
|
handleTripleClick: _input.handleTripleClick,
|
package/dist/cjs/pm-plugins.js
CHANGED