@atlaskit/editor-plugin-table 7.5.5 → 7.5.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 (69) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/event-handlers.js +25 -9
  3. package/dist/cjs/nodeviews/OverflowShadowsObserver.js +24 -15
  4. package/dist/cjs/nodeviews/TableCell.js +5 -30
  5. package/dist/cjs/nodeviews/TableComponent.js +74 -24
  6. package/dist/cjs/nodeviews/TableContainer.js +19 -17
  7. package/dist/cjs/nodeviews/TableResizer.js +1 -1
  8. package/dist/cjs/plugin.js +2 -3
  9. package/dist/cjs/pm-plugins/main.js +3 -18
  10. package/dist/cjs/ui/TableFloatingColumnControls/index.js +8 -48
  11. package/dist/cjs/ui/TableFloatingControls/index.js +113 -223
  12. package/dist/cjs/utils/column-controls.js +5 -5
  13. package/dist/cjs/utils/dom.js +13 -15
  14. package/dist/es2019/event-handlers.js +25 -9
  15. package/dist/es2019/nodeviews/OverflowShadowsObserver.js +24 -15
  16. package/dist/es2019/nodeviews/TableCell.js +1 -24
  17. package/dist/es2019/nodeviews/TableComponent.js +63 -27
  18. package/dist/es2019/nodeviews/TableContainer.js +16 -18
  19. package/dist/es2019/nodeviews/TableResizer.js +1 -1
  20. package/dist/es2019/plugin.js +2 -3
  21. package/dist/es2019/pm-plugins/main.js +3 -18
  22. package/dist/es2019/ui/TableFloatingColumnControls/index.js +5 -27
  23. package/dist/es2019/ui/TableFloatingControls/index.js +119 -193
  24. package/dist/es2019/utils/column-controls.js +6 -6
  25. package/dist/es2019/utils/dom.js +13 -15
  26. package/dist/esm/event-handlers.js +25 -9
  27. package/dist/esm/nodeviews/OverflowShadowsObserver.js +24 -15
  28. package/dist/esm/nodeviews/TableCell.js +5 -30
  29. package/dist/esm/nodeviews/TableComponent.js +74 -24
  30. package/dist/esm/nodeviews/TableContainer.js +20 -18
  31. package/dist/esm/nodeviews/TableResizer.js +1 -1
  32. package/dist/esm/plugin.js +2 -3
  33. package/dist/esm/pm-plugins/main.js +3 -18
  34. package/dist/esm/ui/TableFloatingColumnControls/index.js +8 -48
  35. package/dist/esm/ui/TableFloatingControls/index.js +113 -224
  36. package/dist/esm/utils/column-controls.js +6 -6
  37. package/dist/esm/utils/dom.js +13 -15
  38. package/dist/types/event-handlers.d.ts +3 -4
  39. package/dist/types/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  40. package/dist/types/nodeviews/TableCell.d.ts +1 -5
  41. package/dist/types/nodeviews/TableComponent.d.ts +4 -0
  42. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  43. package/dist/types/types.d.ts +0 -3
  44. package/dist/types/ui/TableFloatingColumnControls/index.d.ts +2 -1
  45. package/dist/types/ui/TableFloatingControls/index.d.ts +5 -22
  46. package/dist/types/utils/dom.d.ts +10 -2
  47. package/dist/types-ts4.5/event-handlers.d.ts +3 -4
  48. package/dist/types-ts4.5/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  49. package/dist/types-ts4.5/nodeviews/TableCell.d.ts +1 -5
  50. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +4 -0
  51. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  52. package/dist/types-ts4.5/types.d.ts +0 -3
  53. package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +2 -1
  54. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +5 -22
  55. package/dist/types-ts4.5/utils/dom.d.ts +10 -2
  56. package/package.json +3 -4
  57. package/src/event-handlers.ts +105 -103
  58. package/src/nodeviews/OverflowShadowsObserver.ts +32 -21
  59. package/src/nodeviews/TableCell.ts +0 -26
  60. package/src/nodeviews/TableComponent.tsx +76 -32
  61. package/src/nodeviews/TableContainer.tsx +19 -25
  62. package/src/nodeviews/TableResizer.tsx +1 -4
  63. package/src/plugin.tsx +5 -4
  64. package/src/pm-plugins/main.ts +3 -22
  65. package/src/types.ts +0 -4
  66. package/src/ui/TableFloatingColumnControls/index.tsx +5 -29
  67. package/src/ui/TableFloatingControls/index.tsx +155 -241
  68. package/src/utils/column-controls.ts +5 -6
  69. package/src/utils/dom.ts +12 -19
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 7.5.6
4
+
5
+ ### Patch Changes
6
+
7
+ - [#72764](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/72764) [`1a23abba80b0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1a23abba80b0) - Minor performance improvements to reduce reflows and re-renders
8
+
3
9
  ## 7.5.5
4
10
 
5
11
  ### Patch Changes
@@ -8,6 +8,7 @@ exports.handleMouseUp = exports.handleMouseOver = exports.handleMouseOut = expor
8
8
  exports.handleTripleClick = handleTripleClick;
9
9
  exports.withCellTracking = exports.whenTableInFocus = exports.isTableInFocus = void 0;
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _rafSchd = _interopRequireDefault(require("raf-schd"));
11
12
  var _analytics = require("@atlaskit/editor-common/analytics");
12
13
  var _utils = require("@atlaskit/editor-common/utils");
13
14
  var _state5 = require("@atlaskit/editor-prosemirror/state");
@@ -257,7 +258,10 @@ var handleMouseLeave = exports.handleMouseLeave = function handleMouseLeave(view
257
258
  }
258
259
  return false;
259
260
  };
260
- var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, event, elementContentRects) {
261
+
262
+ // IMPORTANT: The mouse move handler has been setup with RAF schedule to avoid Reflows which will occur as some methods
263
+ // need to access the mouse event offset position and also the target clientWidth vallue.
264
+ var handleMouseMoveDebounce = (0, _rafSchd.default)(function (view, event, offsetX) {
261
265
  if (!(event.target instanceof HTMLElement)) {
262
266
  return false;
263
267
  }
@@ -266,13 +270,12 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, e
266
270
  var state = view.state,
267
271
  dispatch = view.dispatch;
268
272
  var _getPluginState6 = (0, _pluginFactory2.getPluginState)(state),
269
- insertColumnButtonIndex = _getPluginState6.insertColumnButtonIndex,
270
- isDragAndDropEnabled = _getPluginState6.isDragAndDropEnabled;
273
+ insertColumnButtonIndex = _getPluginState6.insertColumnButtonIndex;
271
274
  var _getColumnOrRowIndex9 = (0, _utils3.getColumnOrRowIndex)(element),
272
275
  _getColumnOrRowIndex10 = (0, _slicedToArray2.default)(_getColumnOrRowIndex9, 2),
273
276
  startIndex = _getColumnOrRowIndex10[0],
274
277
  endIndex = _getColumnOrRowIndex10[1];
275
- var positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, elementContentRects, undefined, isDragAndDropEnabled) === 'right' ? endIndex : startIndex;
278
+ var positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, offsetX, undefined) === 'right' ? endIndex : startIndex;
276
279
  if (positionColumn !== insertColumnButtonIndex) {
277
280
  return (0, _commands.showInsertColumnButton)(positionColumn)(state, dispatch);
278
281
  }
@@ -292,7 +295,7 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, e
292
295
  }
293
296
  }
294
297
  if (!(0, _utils3.isResizeHandleDecoration)(element) && (0, _utils3.isCell)(element)) {
295
- var _positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, elementContentRects, _types.RESIZE_HANDLE_AREA_DECORATION_GAP);
298
+ var _positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, offsetX, _types.RESIZE_HANDLE_AREA_DECORATION_GAP);
296
299
  if (_positionColumn !== null) {
297
300
  var _state4 = view.state,
298
301
  _dispatch5 = view.dispatch;
@@ -317,6 +320,19 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, e
317
320
  }
318
321
  }
319
322
  return false;
323
+ });
324
+ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, event) {
325
+ if (!(event.target instanceof HTMLElement)) {
326
+ return false;
327
+ }
328
+
329
+ // NOTE: When accessing offsetX in gecko from a deferred callback, it will return 0. However it will be non-zero if accessed
330
+ // within the scope of it's initial mouse move handler. Also Chrome does return the correct value, however it could trigger
331
+ // a reflow. So for now this will just grab the offsetX value immediately for gecko and chrome will calculate later
332
+ // in the deferred callback handler.
333
+ // Bug Tracking: https://bugzilla.mozilla.org/show_bug.cgi?id=1882903
334
+ handleMouseMoveDebounce(view, event, _utils.browser.gecko ? event.offsetX : NaN);
335
+ return false;
320
336
  };
321
337
  function handleTripleClick(view, pos) {
322
338
  var state = view.state,
@@ -392,12 +408,12 @@ var isTableInFocus = exports.isTableInFocus = function isTableInFocus(view) {
392
408
  var _getPluginState10, _getResizePluginState;
393
409
  return !!((_getPluginState10 = (0, _pluginFactory2.getPluginState)(view.state)) !== null && _getPluginState10 !== void 0 && _getPluginState10.tableNode) && !((_getResizePluginState = (0, _pluginFactory3.getPluginState)(view.state)) !== null && _getResizePluginState !== void 0 && _getResizePluginState.dragging);
394
410
  };
395
- var whenTableInFocus = exports.whenTableInFocus = function whenTableInFocus(eventHandler, elementContentRects) {
411
+ var whenTableInFocus = exports.whenTableInFocus = function whenTableInFocus(eventHandler) {
396
412
  return function (view, mouseEvent) {
397
413
  if (!isTableInFocus(view)) {
398
414
  return false;
399
415
  }
400
- return eventHandler(view, mouseEvent, elementContentRects);
416
+ return eventHandler(view, mouseEvent);
401
417
  };
402
418
  };
403
419
  var trackCellLocation = function trackCellLocation(view, mouseEvent) {
@@ -427,11 +443,11 @@ var trackCellLocation = function trackCellLocation(view, mouseEvent) {
427
443
  }
428
444
  (0, _commands.hoverCell)(htmlRowIndex, colIndex)(view.state, view.dispatch);
429
445
  };
430
- var withCellTracking = exports.withCellTracking = function withCellTracking(eventHandler, elementContentRects) {
446
+ var withCellTracking = exports.withCellTracking = function withCellTracking(eventHandler) {
431
447
  return function (view, mouseEvent) {
432
448
  if ((0, _pluginFactory2.getPluginState)(view.state).isDragAndDropEnabled && !(0, _pluginFactory.getPluginState)(view.state).isDragging) {
433
449
  trackCellLocation(view, mouseEvent);
434
450
  }
435
- return eventHandler(view, mouseEvent, elementContentRects);
451
+ return eventHandler(view, mouseEvent);
436
452
  };
437
453
  };
@@ -8,6 +8,7 @@ exports.OverflowShadowsObserver = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _rafSchd = _interopRequireDefault(require("raf-schd"));
11
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
13
  var _types = require("../types");
13
14
  var _consts = require("../ui/consts");
@@ -49,8 +50,13 @@ var OverflowShadowsObserver = exports.OverflowShadowsObserver = /*#__PURE__*/fun
49
50
  });
50
51
  (0, _defineProperty2.default)(this, "observeShadowSentinels", function (isSticky) {
51
52
  var _this$table, _this$table2;
53
+ if (_this.isSticky === isSticky) {
54
+ return;
55
+ }
52
56
  _this.isSticky = !!isSticky;
53
57
 
58
+ // reset height
59
+ _this.stickyRowHeight = 0;
54
60
  // update sticky shadows
55
61
  _this.updateStickyShadowsHeightIfChanged();
56
62
  _this.leftShadowSentinel = (_this$table = _this.table) === null || _this$table === void 0 ? void 0 : _this$table.querySelector(".".concat(_types.TableCssClassName.TABLE_SHADOW_SENTINEL_LEFT));
@@ -67,8 +73,8 @@ var OverflowShadowsObserver = exports.OverflowShadowsObserver = /*#__PURE__*/fun
67
73
  * e.g. bounds on an IntersectionObserverEntry, otherwise proceed with
68
74
  * reading it from sticky cell
69
75
  */
70
- (0, _defineProperty2.default)(this, "updateStickyShadows", function (stickyRowHeight) {
71
- var _this$wrapper, _this$wrapper2, _this$wrapper3;
76
+ (0, _defineProperty2.default)(this, "updateStickyShadows", (0, _rafSchd.default)(function (stickyRowHeight) {
77
+ var _this$wrapper;
72
78
  if (!_this.isSticky) {
73
79
  return;
74
80
  }
@@ -76,14 +82,21 @@ var OverflowShadowsObserver = exports.OverflowShadowsObserver = /*#__PURE__*/fun
76
82
  if (!stickyCell || !((_this$wrapper = _this.wrapper) !== null && _this$wrapper !== void 0 && _this$wrapper.parentElement)) {
77
83
  return;
78
84
  }
79
- var heightStyleOrCompute = "".concat(stickyRowHeight || stickyCell.clientHeight + 1, "px");
80
- // Use getElementsByClassName here for a live node list to capture
81
- // sticky shadows
82
- var liveRightShadows = (_this$wrapper2 = _this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.getElementsByClassName("".concat(_types.TableCssClassName.TABLE_RIGHT_SHADOW));
83
- var liveLeftShadows = (_this$wrapper3 = _this.wrapper) === null || _this$wrapper3 === void 0 || (_this$wrapper3 = _this$wrapper3.parentElement) === null || _this$wrapper3 === void 0 ? void 0 : _this$wrapper3.getElementsByClassName("".concat(_types.TableCssClassName.TABLE_LEFT_SHADOW));
84
- (0, _updateOverflowShadows.updateShadowListForStickyStyles)(heightStyleOrCompute, liveLeftShadows);
85
- (0, _updateOverflowShadows.updateShadowListForStickyStyles)(heightStyleOrCompute, liveRightShadows);
86
- });
85
+
86
+ // Reflow Warning! - stickyCell.clientHeight
87
+ var newStickyRowHeight = stickyRowHeight || stickyCell.clientHeight + 1;
88
+ if (newStickyRowHeight !== _this.stickyRowHeight) {
89
+ var _this$wrapper2, _this$wrapper3;
90
+ _this.stickyRowHeight = newStickyRowHeight;
91
+ var heightStyleOrCompute = "".concat(newStickyRowHeight, "px");
92
+ // Use getElementsByClassName here for a live node list to capture
93
+ // sticky shadows
94
+ var liveRightShadows = (_this$wrapper2 = _this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.getElementsByClassName("".concat(_types.TableCssClassName.TABLE_RIGHT_SHADOW));
95
+ var liveLeftShadows = (_this$wrapper3 = _this.wrapper) === null || _this$wrapper3 === void 0 || (_this$wrapper3 = _this$wrapper3.parentElement) === null || _this$wrapper3 === void 0 ? void 0 : _this$wrapper3.getElementsByClassName("".concat(_types.TableCssClassName.TABLE_LEFT_SHADOW));
96
+ (0, _updateOverflowShadows.updateShadowListForStickyStyles)(heightStyleOrCompute, liveLeftShadows);
97
+ (0, _updateOverflowShadows.updateShadowListForStickyStyles)(heightStyleOrCompute, liveRightShadows);
98
+ }
99
+ }));
87
100
  this.updateShadowState = updateShadowState;
88
101
  this.table = _table;
89
102
  this.wrapper = wrapper;
@@ -99,11 +112,7 @@ var OverflowShadowsObserver = exports.OverflowShadowsObserver = /*#__PURE__*/fun
99
112
  if (!stickyCell) {
100
113
  return;
101
114
  }
102
- var newStickyRowHeight = stickyCell.clientHeight + 1;
103
- if (newStickyRowHeight === this.stickyRowHeight) {
104
- this.stickyRowHeight = newStickyRowHeight;
105
- this.updateStickyShadows(this.stickyRowHeight);
106
- }
115
+ this.updateStickyShadows();
107
116
  }
108
117
  }, {
109
118
  key: "getStickyCell",
@@ -11,9 +11,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
11
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
- var _uuid = _interopRequireDefault(require("uuid"));
15
14
  var _adfSchema = require("@atlaskit/adf-schema");
16
- var _pluginFactory = require("../pm-plugins/plugin-factory");
17
15
  var _TableNodeViewBase = _interopRequireDefault(require("./TableNodeViewBase"));
18
16
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
19
17
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
@@ -22,26 +20,10 @@ var DEFAULT_ROW_SPAN = 1;
22
20
  var TableCell = exports.default = /*#__PURE__*/function (_ref) {
23
21
  (0, _inherits2.default)(TableCell, _ref);
24
22
  var _super = _createSuper(TableCell);
25
- function TableCell(node, view, getPos, eventDispatcher, observer) {
26
- var _this;
23
+ function TableCell(node, view, getPos, eventDispatcher) {
27
24
  (0, _classCallCheck2.default)(this, TableCell);
28
- _this = _super.call(this, node, view, getPos, eventDispatcher);
29
- _this.observer = observer;
30
- var _getPluginState = (0, _pluginFactory.getPluginState)(view.state),
31
- pluginConfig = _getPluginState.pluginConfig,
32
- isDragAndDropEnabled = _getPluginState.isDragAndDropEnabled;
33
- _this.isStickyHeaderEnabled = !!pluginConfig.stickyHeaders;
34
- _this.isDragAndDropEnabled = !!isDragAndDropEnabled;
35
- if (observer) {
36
- _this.contentDOM.id = (0, _uuid.default)();
37
- observer.observe(_this.contentDOM);
38
- }
39
- return _this;
25
+ return _super.call(this, node, view, getPos, eventDispatcher);
40
26
  }
41
-
42
- // @ts-ignore
43
-
44
- // @ts-ignore
45
27
  (0, _createClass2.default)(TableCell, [{
46
28
  key: "update",
47
29
  value: function update(node) {
@@ -51,17 +33,10 @@ var TableCell = exports.default = /*#__PURE__*/function (_ref) {
51
33
  }
52
34
  return didUpdate;
53
35
  }
54
- }, {
55
- key: "destroy",
56
- value: function destroy() {
57
- if (this.observer) {
58
- this.observer.unobserve(this.contentDOM);
59
- }
60
- }
61
36
  }, {
62
37
  key: "updateNodeView",
63
38
  value: function updateNodeView(node) {
64
- var _this2 = this;
39
+ var _this = this;
65
40
  if (this.node.type !== node.type) {
66
41
  return false;
67
42
  }
@@ -92,10 +67,10 @@ var TableCell = exports.default = /*#__PURE__*/function (_ref) {
92
67
  var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
93
68
  key = _ref5[0],
94
69
  value = _ref5[1];
95
- return _this2.dom.setAttribute(key, value || '');
70
+ return _this.dom.setAttribute(key, value || '');
96
71
  });
97
72
  removedAttrs.forEach(function (key) {
98
- return _this2.dom.removeAttribute(key);
73
+ return _this.dom.removeAttribute(key);
99
74
  });
100
75
  return true;
101
76
  }
@@ -43,6 +43,9 @@ var _ExternalDropTargets = require("./ExternalDropTargets");
43
43
  var _OverflowShadowsObserver = require("./OverflowShadowsObserver");
44
44
  var _TableContainer = require("./TableContainer");
45
45
  var _TableStickyScrollbar = require("./TableStickyScrollbar");
46
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
47
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
48
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
46
49
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
47
50
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty3.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
51
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
@@ -52,6 +55,12 @@ var isIE11 = _utils.browser.ie_version === 11;
52
55
  // componentDidUpdate is called multiple times. The isOverflowing value is correct only on the last update.
53
56
  // To make sure we capture the last update, we use setTimeout.
54
57
  var initialOverflowCaptureTimeroutDelay = 300;
58
+
59
+ // This is a hard switch for controlling whether the overflow analytics should be dispatched. There has been 6months of data
60
+ // already collected which we could use but have not. This has been disabled rather then removed entirely in the event that
61
+ // the current collected data becomes stale and we want to start collecting fresh data again in future.
62
+ // PLEASE NOTE: that the current way this alaytics has been configured WILL cause reflows to occur. This is why the has been disabled.
63
+ var isOverflowAnalyticsEnabled = false;
55
64
  var TableComponent = /*#__PURE__*/function (_React$Component) {
56
65
  (0, _inherits2.default)(TableComponent, _React$Component);
57
66
  var _super = _createSuper(TableComponent);
@@ -63,7 +72,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
63
72
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "state", (_defineProperty2 = {
64
73
  scroll: 0,
65
74
  parentWidth: undefined
66
- }, (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_BEFORE_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_AFTER_SHADOW, false), _defineProperty2));
75
+ }, (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_BEFORE_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_AFTER_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, "tableWrapperWidth", undefined), (0, _defineProperty3.default)(_defineProperty2, "tableWrapperHeight", undefined), _defineProperty2));
67
76
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateShadowState", function (shadowKey, value) {
68
77
  if (_this.state[shadowKey] === value) {
69
78
  return;
@@ -295,6 +304,29 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
295
304
  _this.layoutSize = _this.tableNodeLayoutSize(_this.node, _containerWidth.width, {
296
305
  isFullWidthModeEnabled: isFullWidthModeEnabled
297
306
  });
307
+ _this.resizeObserver = new ResizeObserver(function (entries) {
308
+ var _iterator = _createForOfIteratorHelper(entries),
309
+ _step;
310
+ try {
311
+ var _loop = function _loop() {
312
+ var entry = _step.value;
313
+ _this.setState(function (prev) {
314
+ var _entry$contentRect, _entry$contentRect2;
315
+ return (prev === null || prev === void 0 ? void 0 : prev.tableWrapperWidth) === ((_entry$contentRect = entry.contentRect) === null || _entry$contentRect === void 0 ? void 0 : _entry$contentRect.width) && (prev === null || prev === void 0 ? void 0 : prev.tableWrapperHeight) === ((_entry$contentRect2 = entry.contentRect) === null || _entry$contentRect2 === void 0 ? void 0 : _entry$contentRect2.height) ? prev : _objectSpread(_objectSpread({}, prev), {}, {
316
+ tableWrapperWidth: entry.contentRect.width,
317
+ tableWrapperHeight: entry.contentRect.height
318
+ });
319
+ });
320
+ };
321
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
322
+ _loop();
323
+ }
324
+ } catch (err) {
325
+ _iterator.e(err);
326
+ } finally {
327
+ _iterator.f();
328
+ }
329
+ });
298
330
 
299
331
  // Disable inline table editing and resizing controls in Firefox
300
332
  // https://github.com/ProseMirror/prosemirror/issues/432
@@ -354,12 +386,15 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
354
386
  this.onStickyState(currentStickyState);
355
387
  }
356
388
  eventDispatcher.on(_stickyHeaders.pluginKey.key, this.onStickyState);
357
- var initialIsOveflowing = this.state[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || this.state[_types.ShadowEvent.SHOW_AFTER_SHADOW];
358
- this.setTimerToSendInitialOverflowCaptured(initialIsOveflowing);
389
+ if (isOverflowAnalyticsEnabled) {
390
+ var initialIsOveflowing = this.state[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || this.state[_types.ShadowEvent.SHOW_AFTER_SHADOW];
391
+ this.setTimerToSendInitialOverflowCaptured(initialIsOveflowing);
392
+ }
359
393
  }
360
394
  }, {
361
395
  key: "componentWillUnmount",
362
396
  value: function componentWillUnmount() {
397
+ var _this$resizeObserver;
363
398
  var _this$props8 = this.props,
364
399
  allowColumnResizing = _this$props8.allowColumnResizing,
365
400
  eventDispatcher = _this$props8.eventDispatcher,
@@ -372,6 +407,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
372
407
  if (isDragAndDropEnabled && this.dragAndDropCleanupFn) {
373
408
  this.dragAndDropCleanupFn();
374
409
  }
410
+ (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.disconnect();
375
411
  var _getEditorFeatureFlag2 = getEditorFeatureFlags(),
376
412
  stickyScrollbar = _getEditorFeatureFlag2.stickyScrollbar;
377
413
  if (stickyScrollbar) {
@@ -500,26 +536,36 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
500
536
  }
501
537
  this.handleTableResizingDebounced();
502
538
  }
503
- var newIsOverflowing = this.state[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || this.state[_types.ShadowEvent.SHOW_AFTER_SHADOW];
504
- var prevIsOverflowing = prevState[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || prevState[_types.ShadowEvent.SHOW_AFTER_SHADOW];
505
- if (this.initialOverflowCaptureTimerId) {
506
- clearTimeout(this.initialOverflowCaptureTimerId);
539
+ if (isOverflowAnalyticsEnabled) {
540
+ var newIsOverflowing = this.state[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || this.state[_types.ShadowEvent.SHOW_AFTER_SHADOW];
541
+ var prevIsOverflowing = prevState[_types.ShadowEvent.SHOW_BEFORE_SHADOW] || prevState[_types.ShadowEvent.SHOW_AFTER_SHADOW];
542
+ if (this.initialOverflowCaptureTimerId) {
543
+ clearTimeout(this.initialOverflowCaptureTimerId);
544
+ }
545
+ if (!this.isInitialOverflowSent) {
546
+ this.setTimerToSendInitialOverflowCaptured(newIsOverflowing);
547
+ }
548
+ if (this.isInitialOverflowSent && prevIsOverflowing !== newIsOverflowing) {
549
+ var _this$state2;
550
+ var _this$props$view = this.props.view,
551
+ dispatch = _this$props$view.dispatch,
552
+ tr = _this$props$view.state.tr;
553
+ dispatch(tr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_STATE_CHANGED, {
554
+ isOverflowing: newIsOverflowing,
555
+ wasOverflowing: prevIsOverflowing,
556
+ editorWidth: this.props.containerWidth.width || 0,
557
+ width: this.node.attrs.width || 0,
558
+ parentWidth: ((_this$state2 = this.state) === null || _this$state2 === void 0 ? void 0 : _this$state2.parentWidth) || 0
559
+ }));
560
+ }
507
561
  }
508
- if (!this.isInitialOverflowSent) {
509
- this.setTimerToSendInitialOverflowCaptured(newIsOverflowing);
510
- }
511
- if (this.isInitialOverflowSent && prevIsOverflowing !== newIsOverflowing) {
512
- var _this$state2;
513
- var _this$props$view = this.props.view,
514
- dispatch = _this$props$view.dispatch,
515
- tr = _this$props$view.state.tr;
516
- dispatch(tr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_STATE_CHANGED, {
517
- isOverflowing: newIsOverflowing,
518
- wasOverflowing: prevIsOverflowing,
519
- editorWidth: this.props.containerWidth.width || 0,
520
- width: this.node.attrs.width || 0,
521
- parentWidth: ((_this$state2 = this.state) === null || _this$state2 === void 0 ? void 0 : _this$state2.parentWidth) || 0
522
- }));
562
+ }
563
+ }, {
564
+ key: "observeTable",
565
+ value: function observeTable(table) {
566
+ if (table) {
567
+ var _this$resizeObserver2;
568
+ (_this$resizeObserver2 = this.resizeObserver) === null || _this$resizeObserver2 === void 0 || _this$resizeObserver2.observe(table);
523
569
  }
524
570
  }
525
571
  }, {
@@ -577,7 +623,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
577
623
  ,
578
624
  selection: view.state.selection,
579
625
  headerRowHeight: headerRow ? headerRow.offsetHeight : undefined,
580
- stickyHeader: this.state.stickyHeader
626
+ stickyHeader: this.state.stickyHeader,
627
+ tableWrapperWidth: this.state.tableWrapperWidth
581
628
  });
582
629
  var tableContainerWidth = (0, _nodeWidth.getTableContainerWidth)(node);
583
630
  var colControls = isDragAndDropEnabled ? /*#__PURE__*/_react.default.createElement(_TableFloatingColumnControls.default, {
@@ -603,7 +650,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
603
650
  getScrollOffset: function getScrollOffset() {
604
651
  var _this3$wrapper;
605
652
  return ((_this3$wrapper = _this3.wrapper) === null || _this3$wrapper === void 0 ? void 0 : _this3$wrapper.scrollLeft) || 0;
606
- }
653
+ },
654
+ tableWrapperHeight: this.state.tableWrapperHeight
607
655
  }) : null;
608
656
  var shadowPadding = allowControls && tableActive ? -_editorSharedStyles.akEditorTableToolbarSize : _styles.tableMarginSides;
609
657
  var shadowStyle = (0, _memoizeOne.default)(function (visible) {
@@ -637,6 +685,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
637
685
  isBreakoutEnabled: options === null || options === void 0 ? void 0 : options.isBreakoutEnabled,
638
686
  isNested: isNested,
639
687
  pluginInjectionApi: pluginInjectionApi,
688
+ tableWrapperHeight: this.state.tableWrapperHeight,
640
689
  isTableResizingEnabled: options === null || options === void 0 ? void 0 : options.isTableResizingEnabled,
641
690
  isResizing: isResizing,
642
691
  isTableScalingEnabled: isTableScalingEnabled
@@ -677,6 +726,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
677
726
  if (tableElement !== _this3.table) {
678
727
  _this3.table = tableElement;
679
728
  _this3.createShadowSentinels(_this3.table);
729
+ _this3.observeTable(_this3.table);
680
730
  }
681
731
  }
682
732
  }
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.TableContainer = exports.ResizableTableContainer = exports.InnerContainer = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _nodeWidth = require("@atlaskit/editor-common/node-width");
@@ -54,9 +55,14 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
54
55
  tableRef = _ref2.tableRef,
55
56
  isResizing = _ref2.isResizing,
56
57
  pluginInjectionApi = _ref2.pluginInjectionApi,
57
- isTableScalingEnabled = _ref2.isTableScalingEnabled;
58
+ isTableScalingEnabled = _ref2.isTableScalingEnabled,
59
+ tableWrapperHeight = _ref2.tableWrapperHeight;
58
60
  var containerRef = (0, _react.useRef)(null);
59
61
  var tableWidthRef = (0, _react.useRef)(_editorSharedStyles.akEditorDefaultLayoutWidth);
62
+ var _useState = (0, _react.useState)(false),
63
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
64
+ resizing = _useState2[0],
65
+ setIsResizing = _useState2[1];
60
66
  var updateContainerHeight = (0, _react.useCallback)(function (height) {
61
67
  var _containerRef$current;
62
68
  // current StickyHeader State is not stable to be fetch.
@@ -64,31 +70,24 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
64
70
  // consistently fetch and refactor below
65
71
  var stickyHeaders = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.getElementsByClassName('pm-table-sticky');
66
72
  if (!stickyHeaders || stickyHeaders.length < 1) {
67
- var _containerRef$current2;
68
73
  // when starting to drag, we need to keep the original space,
69
74
  // -- When sticky header not appear, margin top(24px) and margin bottom(16px), should be 40px,
70
75
  // 1px is border width but collapse make it 0.5.
71
76
  // -- When sticky header appear, we should add first row height but reduce
72
77
  // collapsed border
73
- (_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 || _containerRef$current2.style.setProperty('height', typeof height === 'number' ? "".concat(height + 40.5, "px") : 'auto');
78
+ return typeof height === 'number' ? "".concat(height + 40.5, "px") : 'auto';
74
79
  } else {
75
- var _containerRef$current3, _containerRef$current4;
76
- var stickyHeaderHeight = ((_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.getElementsByTagName('th')[0].getBoundingClientRect().height) || 0;
77
- (_containerRef$current4 = containerRef.current) === null || _containerRef$current4 === void 0 || _containerRef$current4.style.setProperty('height', typeof height === 'number' ? "".concat(height + stickyHeaderHeight + 39.5, "px") : 'auto');
80
+ var _containerRef$current2;
81
+ var stickyHeaderHeight = ((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.getElementsByTagName('th')[0].getBoundingClientRect().height) || 0;
82
+ return typeof height === 'number' ? "".concat(height + stickyHeaderHeight + 39.5, "px") : 'auto';
78
83
  }
79
84
  }, []);
80
- var resizeObserverRef = (0, _react.useRef)(new ResizeObserver(function (entries) {
81
- updateContainerHeight(entries[entries.length - 1].contentRect.height);
82
- }));
83
85
  var onResizeStart = (0, _react.useCallback)(function () {
84
- if (tableRef) {
85
- resizeObserverRef.current.observe(tableRef);
86
- }
87
- }, [tableRef]);
86
+ setIsResizing(true);
87
+ }, []);
88
88
  var onResizeStop = (0, _react.useCallback)(function () {
89
- updateContainerHeight('auto');
90
- resizeObserverRef.current.disconnect();
91
- }, [updateContainerHeight]);
89
+ setIsResizing(false);
90
+ }, []);
92
91
  var updateWidth = (0, _react.useCallback)(function (width) {
93
92
  if (!containerRef.current) {
94
93
  return;
@@ -151,7 +150,8 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
151
150
  }
152
151
  }, /*#__PURE__*/_react.default.createElement("div", {
153
152
  style: {
154
- width: tableWidthRef.current
153
+ width: tableWidthRef.current,
154
+ height: resizing ? updateContainerHeight(tableWrapperHeight !== null && tableWrapperHeight !== void 0 ? tableWrapperHeight : 'auto') : 'auto'
155
155
  },
156
156
  className: _types.TableCssClassName.TABLE_RESIZER_CONTAINER,
157
157
  ref: containerRef
@@ -173,6 +173,7 @@ var TableContainer = exports.TableContainer = function TableContainer(_ref3) {
173
173
  getPos = _ref3.getPos,
174
174
  tableRef = _ref3.tableRef,
175
175
  isNested = _ref3.isNested,
176
+ tableWrapperHeight = _ref3.tableWrapperHeight,
176
177
  isResizing = _ref3.isResizing,
177
178
  pluginInjectionApi = _ref3.pluginInjectionApi,
178
179
  isTableScalingEnabled = _ref3.isTableScalingEnabled;
@@ -184,6 +185,7 @@ var TableContainer = exports.TableContainer = function TableContainer(_ref3) {
184
185
  editorView: editorView,
185
186
  getPos: getPos,
186
187
  tableRef: tableRef,
188
+ tableWrapperHeight: tableWrapperHeight,
187
189
  isResizing: isResizing,
188
190
  pluginInjectionApi: pluginInjectionApi,
189
191
  isTableScalingEnabled: isTableScalingEnabled
@@ -65,7 +65,7 @@ var getResizerHandleHeight = function getResizerHandleHeight(tableRef) {
65
65
  };
66
66
  var getResizerMinWidth = function getResizerMinWidth(node) {
67
67
  var currentColumnCount = (0, _utils3.getColgroupChildrenLength)(node);
68
- var minColumnWidth = currentColumnCount <= 3 ? currentColumnCount * _utils3.COLUMN_MIN_WIDTH : 3 * _utils3.COLUMN_MIN_WIDTH;
68
+ var minColumnWidth = Math.min(3, currentColumnCount) * _utils3.COLUMN_MIN_WIDTH;
69
69
  // add an extra pixel as the scale table logic will scale columns to be tableContainerWidth - 1
70
70
  // the table can't scale past its min-width, so instead restrict table container min width to avoid that situation
71
71
  return minColumnWidth + 1;
@@ -57,11 +57,10 @@ var tablesPlugin = function tablesPlugin(_ref) {
57
57
  current: null
58
58
  };
59
59
  var defaultGetEditorContainerWidth = function defaultGetEditorContainerWidth() {
60
- var _document$body$offset, _document, _api$width$sharedStat, _api$width;
61
- var defaultState = {
60
+ var _api$width$sharedStat, _api$width, _document$body$offset, _document;
61
+ return (_api$width$sharedStat = api === null || api === void 0 || (_api$width = api.width) === null || _api$width === void 0 ? void 0 : _api$width.sharedState.currentState()) !== null && _api$width$sharedStat !== void 0 ? _api$width$sharedStat : {
62
62
  width: (_document$body$offset = (_document = document) === null || _document === void 0 || (_document = _document.body) === null || _document === void 0 ? void 0 : _document.offsetWidth) !== null && _document$body$offset !== void 0 ? _document$body$offset : 500
63
63
  };
64
- return (_api$width$sharedStat = api === null || api === void 0 || (_api$width = api.width) === null || _api$width === void 0 ? void 0 : _api$width.sharedState.currentState()) !== null && _api$width$sharedStat !== void 0 ? _api$width$sharedStat : defaultState;
65
64
  };
66
65
  var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
67
66
  return {
@@ -33,7 +33,6 @@ var _pluginKey = require("./plugin-key");
33
33
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
34
34
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35
35
  var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, breakoutEnabled, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled) {
36
- var _window;
37
36
  var state = (0, _pluginFactory.createPluginState)(dispatch, _objectSpread(_objectSpread(_objectSpread({
38
37
  pluginConfig: pluginConfig,
39
38
  isTableHovered: false,
@@ -50,15 +49,6 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
50
49
  }, _defaultTableSelection.defaultHoveredCell), _defaultTableSelection.defaultTableSelection), {}, {
51
50
  getIntl: getIntl
52
51
  }));
53
- var elementContentRects = {};
54
- var observer = (_window = window) !== null && _window !== void 0 && _window.ResizeObserver ? new ResizeObserver(function (entries) {
55
- entries.forEach(function (entry) {
56
- if (!entry.target.id) {
57
- return;
58
- }
59
- elementContentRects[entry.target.id] = entry.contentRect;
60
- });
61
- }) : undefined;
62
52
 
63
53
  // Used to prevent invalid table cell spans being reported more than once per editor/document
64
54
  var invalidTableIds = [];
@@ -161,11 +151,6 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
161
151
  } else if (pluginState.isResizeHandleWidgetAdded) {
162
152
  (0, _misc.removeResizeHandleDecorations)()(state, dispatch);
163
153
  }
164
- },
165
- destroy: function destroy() {
166
- if (observer) {
167
- observer.disconnect();
168
- }
169
154
  }
170
155
  };
171
156
  },
@@ -271,10 +256,10 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
271
256
  return new _TableRow.default(node, view, getPos, eventDispatcher);
272
257
  },
273
258
  tableCell: function tableCell(node, view, getPos) {
274
- return new _TableCell.default(node, view, getPos, eventDispatcher, observer);
259
+ return new _TableCell.default(node, view, getPos, eventDispatcher);
275
260
  },
276
261
  tableHeader: function tableHeader(node, view, getPos) {
277
- return new _TableCell.default(node, view, getPos, eventDispatcher, observer);
262
+ return new _TableCell.default(node, view, getPos, eventDispatcher);
278
263
  }
279
264
  },
280
265
  handleDOMEvents: {
@@ -284,7 +269,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalytic
284
269
  mouseover: (0, _eventHandlers.withCellTracking)((0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseOver)),
285
270
  mouseleave: _eventHandlers.handleMouseLeave,
286
271
  mouseout: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseOut),
287
- mousemove: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseMove, elementContentRects),
272
+ mousemove: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseMove),
288
273
  mouseenter: _eventHandlers.handleMouseEnter,
289
274
  mouseup: (0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleMouseUp),
290
275
  click: (0, _eventHandlers.withCellTracking)((0, _eventHandlers.whenTableInFocus)(_eventHandlers.handleClick))