@atlaskit/editor-tables 2.2.3 → 2.2.5
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 +14 -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 +24 -75
- 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 +63 -134
- 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 +94 -120
- 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 +4 -33
- 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 +4 -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 +27 -63
- package/dist/es2019/pm-plugins/table-editing.js +3 -12
- package/dist/es2019/table-map.js +54 -124
- 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 +85 -99
- 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 +4 -13
- 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 +24 -63
- package/dist/esm/pm-plugins/table-editing.js +8 -13
- package/dist/esm/table-map.js +65 -130
- 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 +88 -109
- 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 +4 -22
- 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 +4 -13
- package/dist/esm/version.json +1 -1
- package/dist/types/utils/toggle-header.d.ts +3 -0
- package/package.json +7 -5
- package/report.api.md +11 -0
|
@@ -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,49 +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)) {
|
|
80
|
+
var _maybeTableCell$paren;
|
|
103
81
|
var end = view ? atEndOfCell(view, axis, dir) : null;
|
|
104
|
-
|
|
105
82
|
if (end === null) {
|
|
106
83
|
return false;
|
|
107
84
|
}
|
|
108
|
-
|
|
85
|
+
var _state$selection = state.selection,
|
|
86
|
+
_$head = _state$selection.$head,
|
|
87
|
+
$anchor = _state$selection.$anchor;
|
|
88
|
+
var maybeTableCell = _$head.blockRange($anchor);
|
|
89
|
+
|
|
90
|
+
// Make sure the selection is coming from the same cell
|
|
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) || '');
|
|
92
|
+
if (!sameCell) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
109
95
|
sel = new _cellSelection.CellSelection(state.doc.resolve(end));
|
|
110
96
|
}
|
|
111
|
-
|
|
112
97
|
var $head = (0, _cells.nextCell)(sel.$headCell, axis, dir);
|
|
113
|
-
|
|
114
98
|
if (!$head) {
|
|
115
99
|
return false;
|
|
116
100
|
}
|
|
117
|
-
|
|
118
101
|
if (dispatch) {
|
|
119
102
|
return maybeSetSelection(state, dispatch, new _cellSelection.CellSelection(sel.$anchorCell, $head));
|
|
120
103
|
}
|
|
121
|
-
|
|
122
104
|
return true;
|
|
123
105
|
};
|
|
124
106
|
}
|
|
125
|
-
|
|
126
107
|
function deleteCellSelection(state, dispatch) {
|
|
127
108
|
var sel = state.selection;
|
|
128
|
-
|
|
129
109
|
if (!(sel instanceof _cellSelection.CellSelection)) {
|
|
130
110
|
return false;
|
|
131
111
|
}
|
|
132
|
-
|
|
133
112
|
if (dispatch) {
|
|
134
113
|
var tr = state.tr;
|
|
135
114
|
var baseContent = (0, _utils.tableNodeTypes)(state.schema).cell.createAndFill().content;
|
|
@@ -138,38 +117,30 @@ function deleteCellSelection(state, dispatch) {
|
|
|
138
117
|
tr.replace(tr.mapping.map(pos + 1), tr.mapping.map(pos + cell.nodeSize - 1), new _prosemirrorModel.Slice(baseContent, 0, 0));
|
|
139
118
|
}
|
|
140
119
|
});
|
|
141
|
-
|
|
142
120
|
if (tr.docChanged) {
|
|
143
121
|
dispatch(tr);
|
|
144
122
|
}
|
|
145
123
|
}
|
|
146
|
-
|
|
147
124
|
return true;
|
|
148
125
|
}
|
|
149
|
-
|
|
150
126
|
function handleTripleClick(view, pos) {
|
|
151
127
|
var doc = view.state.doc;
|
|
152
128
|
var $cell = (0, _cells.cellAround)(doc.resolve(pos));
|
|
153
|
-
|
|
154
129
|
if (!$cell) {
|
|
155
130
|
return false;
|
|
156
131
|
}
|
|
157
|
-
|
|
158
132
|
view.dispatch(view.state.tr.setSelection(new _cellSelection.CellSelection($cell)));
|
|
159
133
|
return true;
|
|
160
134
|
}
|
|
161
|
-
|
|
162
135
|
function handleMouseDown(view, event) {
|
|
163
|
-
var startEvent = event;
|
|
164
|
-
|
|
136
|
+
var startEvent = event;
|
|
137
|
+
// Prevent right clicks from making a cell selection https://product-fabric.atlassian.net/browse/ED-12527
|
|
165
138
|
if (startEvent.ctrlKey || startEvent.metaKey || startEvent.button === 2 // right mouse click
|
|
166
139
|
) {
|
|
167
140
|
return false;
|
|
168
141
|
}
|
|
169
|
-
|
|
170
142
|
var startDOMCell = domInCell(view, startEvent.target);
|
|
171
143
|
var $anchor = (0, _cells.cellAround)(view.state.selection.$anchor);
|
|
172
|
-
|
|
173
144
|
if (startEvent.shiftKey && view.state.selection instanceof _cellSelection.CellSelection) {
|
|
174
145
|
// Adding to an existing cell selection
|
|
175
146
|
setCellSelection(view.state.selection.$anchorCell, startEvent);
|
|
@@ -182,14 +153,13 @@ function handleMouseDown(view, event) {
|
|
|
182
153
|
} else if (!startDOMCell) {
|
|
183
154
|
// Not in a cell, let the default behavior happen.
|
|
184
155
|
return false;
|
|
185
|
-
}
|
|
186
|
-
// the position under the mouse.
|
|
187
|
-
|
|
156
|
+
}
|
|
188
157
|
|
|
158
|
+
// Create and dispatch a cell selection between the given anchor and
|
|
159
|
+
// the position under the mouse.
|
|
189
160
|
function setCellSelection($selectionAnchor, event) {
|
|
190
161
|
var $head = cellUnderMouse(view, event);
|
|
191
162
|
var starting = _pluginKey.tableEditingKey.getState(view.state) == null;
|
|
192
|
-
|
|
193
163
|
if (!$head || !(0, _tables.inSameTable)($selectionAnchor, $head)) {
|
|
194
164
|
if (starting) {
|
|
195
165
|
$head = $selectionAnchor;
|
|
@@ -197,109 +167,88 @@ function handleMouseDown(view, event) {
|
|
|
197
167
|
return false;
|
|
198
168
|
}
|
|
199
169
|
}
|
|
200
|
-
|
|
201
170
|
var selection = new _cellSelection.CellSelection($selectionAnchor, $head);
|
|
202
|
-
|
|
203
171
|
if (starting || !view.state.selection.eq(selection)) {
|
|
204
172
|
var tr = view.state.tr.setSelection(selection);
|
|
205
|
-
|
|
206
173
|
if (starting) {
|
|
207
174
|
tr.setMeta(_pluginKey.tableEditingKey, $selectionAnchor.pos);
|
|
208
175
|
}
|
|
209
|
-
|
|
210
176
|
view.dispatch(tr);
|
|
211
177
|
}
|
|
212
|
-
}
|
|
213
|
-
|
|
178
|
+
}
|
|
214
179
|
|
|
180
|
+
// Stop listening to mouse motion events.
|
|
215
181
|
function stop() {
|
|
216
182
|
view.root.removeEventListener('mouseup', stop);
|
|
217
183
|
view.root.removeEventListener('dragstart', stop);
|
|
218
184
|
view.root.removeEventListener('mousemove', move);
|
|
219
|
-
|
|
220
185
|
if (_pluginKey.tableEditingKey.getState(view.state) != null) {
|
|
221
186
|
view.dispatch(view.state.tr.setMeta(_pluginKey.tableEditingKey, -1));
|
|
222
187
|
}
|
|
223
188
|
}
|
|
224
|
-
|
|
225
189
|
function move(event) {
|
|
226
190
|
var anchor = _pluginKey.tableEditingKey.getState(view.state);
|
|
227
|
-
|
|
228
191
|
var $moveAnchor;
|
|
229
|
-
|
|
230
192
|
if (anchor != null) {
|
|
231
193
|
// Continuing an existing cross-cell selection
|
|
232
194
|
$moveAnchor = view.state.doc.resolve(anchor);
|
|
233
195
|
} else if (domInCell(view, event.target) !== startDOMCell) {
|
|
234
196
|
// Moving out of the initial cell -- start a new cell selection
|
|
235
197
|
$moveAnchor = cellUnderMouse(view, startEvent);
|
|
236
|
-
|
|
237
198
|
if (!$moveAnchor) {
|
|
238
199
|
stop();
|
|
239
200
|
return;
|
|
240
201
|
}
|
|
241
202
|
}
|
|
242
|
-
|
|
243
203
|
if ($moveAnchor) {
|
|
244
204
|
setCellSelection($moveAnchor, event);
|
|
245
205
|
}
|
|
246
206
|
}
|
|
247
|
-
|
|
248
207
|
view.root.addEventListener('mouseup', stop);
|
|
249
208
|
view.root.addEventListener('dragstart', stop);
|
|
250
209
|
view.root.addEventListener('mousemove', move);
|
|
251
210
|
return false;
|
|
252
|
-
}
|
|
253
|
-
// motion would move out of the cell)
|
|
254
|
-
|
|
211
|
+
}
|
|
255
212
|
|
|
213
|
+
// Check whether the cursor is at the end of a cell (so that further
|
|
214
|
+
// motion would move out of the cell)
|
|
256
215
|
function atEndOfCell(view, axis, dir) {
|
|
257
216
|
if (!(view.state.selection instanceof _prosemirrorState.TextSelection)) {
|
|
258
217
|
return null;
|
|
259
218
|
}
|
|
260
|
-
|
|
261
219
|
var $head = view.state.selection.$head;
|
|
262
|
-
|
|
263
220
|
for (var d = $head.depth - 1; d >= 0; d--) {
|
|
264
221
|
var parent = $head.node(d);
|
|
265
222
|
var index = dir < 0 ? $head.index(d) : $head.indexAfter(d);
|
|
266
|
-
|
|
267
223
|
if (index !== (dir < 0 ? 0 : parent.childCount)) {
|
|
268
224
|
return null;
|
|
269
225
|
}
|
|
270
|
-
|
|
271
226
|
if (parent.type.spec.tableRole === 'cell' || parent.type.spec.tableRole === 'header_cell') {
|
|
272
227
|
var cellPos = $head.before(d);
|
|
273
|
-
var dirStr =
|
|
228
|
+
var dirStr =
|
|
229
|
+
// eslint-disable-next-line no-nested-ternary
|
|
274
230
|
axis === 'vert' ? dir > 0 ? 'down' : 'up' : dir > 0 ? 'right' : 'left';
|
|
275
231
|
return view.endOfTextblock(dirStr) ? cellPos : null;
|
|
276
232
|
}
|
|
277
233
|
}
|
|
278
|
-
|
|
279
234
|
return null;
|
|
280
235
|
}
|
|
281
|
-
|
|
282
236
|
function domInCell(view, inputDom) {
|
|
283
237
|
var dom = inputDom;
|
|
284
|
-
|
|
285
238
|
for (; dom && dom !== view.dom; dom = dom.parentNode) {
|
|
286
239
|
if (dom.nodeName === 'TD' || dom.nodeName === 'TH') {
|
|
287
240
|
return dom;
|
|
288
241
|
}
|
|
289
242
|
}
|
|
290
|
-
|
|
291
243
|
return null;
|
|
292
244
|
}
|
|
293
|
-
|
|
294
245
|
function cellUnderMouse(view, event) {
|
|
295
246
|
var mousePos = view.posAtCoords({
|
|
296
247
|
left: event.clientX,
|
|
297
248
|
top: event.clientY
|
|
298
249
|
});
|
|
299
|
-
|
|
300
250
|
if (!mousePos) {
|
|
301
251
|
return null;
|
|
302
252
|
}
|
|
303
|
-
|
|
304
253
|
return (0, _cells.cellAround)(view.state.doc.resolve(mousePos.pos));
|
|
305
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