@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.
Files changed (158) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/cell-bookmark.js +0 -10
  3. package/dist/cjs/cell-selection.js +37 -102
  4. package/dist/cjs/index.js +0 -4
  5. package/dist/cjs/pm-plugins/input.js +17 -83
  6. package/dist/cjs/pm-plugins/plugin-key.js +0 -2
  7. package/dist/cjs/pm-plugins/table-editing.js +17 -18
  8. package/dist/cjs/pm-plugins.js +0 -2
  9. package/dist/cjs/table-map.js +67 -138
  10. package/dist/cjs/utils/add-column-at.js +0 -9
  11. package/dist/cjs/utils/add-column.js +8 -24
  12. package/dist/cjs/utils/add-row-at.js +8 -37
  13. package/dist/cjs/utils/add-row.js +2 -23
  14. package/dist/cjs/utils/analytics-helpers.js +4 -15
  15. package/dist/cjs/utils/cells.js +0 -12
  16. package/dist/cjs/utils/clone-tr.js +0 -2
  17. package/dist/cjs/utils/colspan.js +2 -18
  18. package/dist/cjs/utils/copy-paste.js +51 -139
  19. package/dist/cjs/utils/create-table.js +14 -28
  20. package/dist/cjs/utils/draw-cell-selection.js +0 -4
  21. package/dist/cjs/utils/empty-cells.js +0 -6
  22. package/dist/cjs/utils/find.js +6 -18
  23. package/dist/cjs/utils/fix-tables.js +13 -56
  24. package/dist/cjs/utils/for-each-cell.js +3 -17
  25. package/dist/cjs/utils/get-cell-selection-ranges.js +2 -9
  26. package/dist/cjs/utils/get-cells-in-column.js +0 -7
  27. package/dist/cjs/utils/get-cells-in-row.js +0 -7
  28. package/dist/cjs/utils/get-cells-in-table.js +0 -8
  29. package/dist/cjs/utils/get-selection-range-in-column.js +6 -27
  30. package/dist/cjs/utils/get-selection-range-in-row.js +6 -27
  31. package/dist/cjs/utils/get-selection-rect.js +0 -7
  32. package/dist/cjs/utils/go-to-next-cell.js +3 -22
  33. package/dist/cjs/utils/handle-paste.js +5 -34
  34. package/dist/cjs/utils/is-selected.js +6 -23
  35. package/dist/cjs/utils/is-selection-type.js +0 -2
  36. package/dist/cjs/utils/move-column.js +0 -12
  37. package/dist/cjs/utils/move-row.js +0 -11
  38. package/dist/cjs/utils/normalize-selection.js +3 -27
  39. package/dist/cjs/utils/remove-column.js +10 -46
  40. package/dist/cjs/utils/remove-row.js +8 -49
  41. package/dist/cjs/utils/remove-table.js +0 -6
  42. package/dist/cjs/utils/reorder-utils.js +13 -37
  43. package/dist/cjs/utils/replace-table.js +0 -8
  44. package/dist/cjs/utils/select-nodes.js +11 -31
  45. package/dist/cjs/utils/selection-cell.js +0 -5
  46. package/dist/cjs/utils/selection-rect.js +0 -10
  47. package/dist/cjs/utils/set-cell-attrs.js +0 -4
  48. package/dist/cjs/utils/split-cell-with-type.js +2 -35
  49. package/dist/cjs/utils/split-cell.js +0 -4
  50. package/dist/cjs/utils/table-node-types.js +4 -8
  51. package/dist/cjs/utils/tables.js +0 -4
  52. package/dist/cjs/utils/test-utils.js +9 -26
  53. package/dist/cjs/utils/toggle-header.js +3 -16
  54. package/dist/cjs/utils/uuid.js +0 -3
  55. package/dist/cjs/utils.js +0 -42
  56. package/dist/cjs/version.json +1 -1
  57. package/dist/es2019/cell-bookmark.js +0 -5
  58. package/dist/es2019/cell-selection.js +37 -81
  59. package/dist/es2019/index.js +1 -0
  60. package/dist/es2019/pm-plugins/input.js +15 -67
  61. package/dist/es2019/pm-plugins/table-editing.js +3 -12
  62. package/dist/es2019/table-map.js +57 -127
  63. package/dist/es2019/utils/add-column-at.js +2 -4
  64. package/dist/es2019/utils/add-column.js +6 -16
  65. package/dist/es2019/utils/add-row-at.js +8 -22
  66. package/dist/es2019/utils/add-row.js +2 -17
  67. package/dist/es2019/utils/analytics-helpers.js +0 -5
  68. package/dist/es2019/utils/cells.js +4 -9
  69. package/dist/es2019/utils/colspan.js +6 -11
  70. package/dist/es2019/utils/copy-paste.js +41 -115
  71. package/dist/es2019/utils/create-table.js +3 -12
  72. package/dist/es2019/utils/draw-cell-selection.js +0 -1
  73. package/dist/es2019/utils/empty-cells.js +2 -3
  74. package/dist/es2019/utils/find.js +8 -8
  75. package/dist/es2019/utils/fix-tables.js +17 -47
  76. package/dist/es2019/utils/for-each-cell.js +6 -11
  77. package/dist/es2019/utils/get-cell-selection-ranges.js +2 -4
  78. package/dist/es2019/utils/get-cells-in-column.js +2 -3
  79. package/dist/es2019/utils/get-cells-in-row.js +2 -3
  80. package/dist/es2019/utils/get-cells-in-table.js +2 -4
  81. package/dist/es2019/utils/get-selection-range-in-column.js +8 -22
  82. package/dist/es2019/utils/get-selection-range-in-row.js +8 -22
  83. package/dist/es2019/utils/get-selection-rect.js +2 -2
  84. package/dist/es2019/utils/go-to-next-cell.js +3 -19
  85. package/dist/es2019/utils/handle-paste.js +3 -14
  86. package/dist/es2019/utils/is-selected.js +8 -10
  87. package/dist/es2019/utils/is-selection-type.js +0 -1
  88. package/dist/es2019/utils/move-column.js +3 -8
  89. package/dist/es2019/utils/move-row.js +3 -7
  90. package/dist/es2019/utils/normalize-selection.js +0 -16
  91. package/dist/es2019/utils/remove-column.js +10 -27
  92. package/dist/es2019/utils/remove-row.js +12 -32
  93. package/dist/es2019/utils/remove-table.js +2 -4
  94. package/dist/es2019/utils/reorder-utils.js +11 -26
  95. package/dist/es2019/utils/replace-table.js +0 -2
  96. package/dist/es2019/utils/select-nodes.js +9 -20
  97. package/dist/es2019/utils/selection-cell.js +0 -2
  98. package/dist/es2019/utils/selection-rect.js +0 -4
  99. package/dist/es2019/utils/set-cell-attrs.js +2 -2
  100. package/dist/es2019/utils/split-cell-with-type.js +8 -28
  101. package/dist/es2019/utils/split-cell.js +3 -2
  102. package/dist/es2019/utils/table-node-types.js +4 -7
  103. package/dist/es2019/utils/tables.js +0 -2
  104. package/dist/es2019/utils/test-utils.js +12 -16
  105. package/dist/es2019/utils/toggle-header.js +3 -10
  106. package/dist/es2019/utils/uuid.js +0 -2
  107. package/dist/es2019/version.json +1 -1
  108. package/dist/esm/cell-bookmark.js +0 -5
  109. package/dist/esm/cell-selection.js +37 -79
  110. package/dist/esm/index.js +1 -0
  111. package/dist/esm/pm-plugins/input.js +17 -71
  112. package/dist/esm/pm-plugins/table-editing.js +8 -13
  113. package/dist/esm/table-map.js +68 -133
  114. package/dist/esm/utils/add-column-at.js +2 -4
  115. package/dist/esm/utils/add-column.js +8 -20
  116. package/dist/esm/utils/add-row-at.js +8 -23
  117. package/dist/esm/utils/add-row.js +2 -21
  118. package/dist/esm/utils/analytics-helpers.js +4 -10
  119. package/dist/esm/utils/cells.js +0 -5
  120. package/dist/esm/utils/colspan.js +2 -14
  121. package/dist/esm/utils/copy-paste.js +44 -125
  122. package/dist/esm/utils/create-table.js +14 -25
  123. package/dist/esm/utils/draw-cell-selection.js +0 -1
  124. package/dist/esm/utils/empty-cells.js +2 -3
  125. package/dist/esm/utils/find.js +8 -8
  126. package/dist/esm/utils/fix-tables.js +13 -49
  127. package/dist/esm/utils/for-each-cell.js +6 -11
  128. package/dist/esm/utils/get-cell-selection-ranges.js +2 -4
  129. package/dist/esm/utils/get-cells-in-column.js +2 -3
  130. package/dist/esm/utils/get-cells-in-row.js +2 -3
  131. package/dist/esm/utils/get-cells-in-table.js +2 -4
  132. package/dist/esm/utils/get-selection-range-in-column.js +8 -24
  133. package/dist/esm/utils/get-selection-range-in-row.js +8 -24
  134. package/dist/esm/utils/get-selection-rect.js +2 -2
  135. package/dist/esm/utils/go-to-next-cell.js +3 -19
  136. package/dist/esm/utils/handle-paste.js +5 -23
  137. package/dist/esm/utils/is-selected.js +8 -10
  138. package/dist/esm/utils/is-selection-type.js +0 -1
  139. package/dist/esm/utils/move-column.js +3 -8
  140. package/dist/esm/utils/move-row.js +3 -7
  141. package/dist/esm/utils/normalize-selection.js +3 -22
  142. package/dist/esm/utils/remove-column.js +10 -31
  143. package/dist/esm/utils/remove-row.js +8 -35
  144. package/dist/esm/utils/remove-table.js +2 -4
  145. package/dist/esm/utils/reorder-utils.js +11 -26
  146. package/dist/esm/utils/replace-table.js +0 -2
  147. package/dist/esm/utils/select-nodes.js +11 -22
  148. package/dist/esm/utils/selection-cell.js +0 -2
  149. package/dist/esm/utils/selection-rect.js +0 -4
  150. package/dist/esm/utils/set-cell-attrs.js +2 -2
  151. package/dist/esm/utils/split-cell-with-type.js +2 -28
  152. package/dist/esm/utils/split-cell.js +3 -2
  153. package/dist/esm/utils/table-node-types.js +4 -7
  154. package/dist/esm/utils/tables.js +0 -2
  155. package/dist/esm/utils/test-utils.js +12 -16
  156. package/dist/esm/utils/toggle-header.js +3 -10
  157. package/dist/esm/version.json +1 -1
  158. 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
- _$head = _state$selection.$head,
113
- $anchor = _state$selection.$anchor;
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; // Prevent right clicks from making a cell selection https://product-fabric.atlassian.net/browse/ED-12527
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
- } // Create and dispatch a cell selection between the given anchor and
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
- } // Stop listening to mouse motion events.
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
- } // Check whether the cursor is at the end of a cell (so that further
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 = // eslint-disable-next-line no-nested-ternary
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
- _ref$allowTableNodeSe = _ref.allowTableNodeSelection,
25
- allowTableNodeSelection = _ref$allowTableNodeSe === void 0 ? false : _ref$allowTableNodeSe,
26
- reportFixedTable = _ref.reportFixedTable;
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
- deleted = _tr$mapping$mapResult.deleted,
51
- pos = _tr$mapping$mapResult.pos;
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,
@@ -15,7 +15,5 @@ Object.defineProperty(exports, "tableEditingKey", {
15
15
  return _pluginKey.tableEditingKey;
16
16
  }
17
17
  });
18
-
19
18
  var _tableEditing = require("./pm-plugins/table-editing");
20
-
21
19
  var _pluginKey = require("./pm-plugins/plugin-key");