@atlaskit/editor-plugin-table 7.5.4 → 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 (236) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/commands/column-resize.js +3 -3
  3. package/dist/cjs/commands/delete.js +2 -2
  4. package/dist/cjs/commands/insert.js +15 -15
  5. package/dist/cjs/commands-with-analytics.js +7 -7
  6. package/dist/cjs/event-handlers.js +27 -11
  7. package/dist/cjs/nodeviews/OverflowShadowsObserver.js +24 -15
  8. package/dist/cjs/nodeviews/TableCell.js +5 -30
  9. package/dist/cjs/nodeviews/TableComponent.js +120 -83
  10. package/dist/cjs/nodeviews/TableContainer.js +23 -21
  11. package/dist/cjs/nodeviews/TableResizer.js +13 -13
  12. package/dist/cjs/nodeviews/table.js +9 -9
  13. package/dist/cjs/plugin.js +60 -59
  14. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +13 -13
  15. package/dist/cjs/pm-plugins/keymap.js +6 -8
  16. package/dist/cjs/pm-plugins/main.js +7 -24
  17. package/dist/cjs/pm-plugins/sticky-headers/plugin.js +2 -3
  18. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +12 -12
  19. package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  20. package/dist/cjs/pm-plugins/table-resizing/utils/consts.js +4 -2
  21. package/dist/cjs/pm-plugins/table-resizing/utils/index.js +2 -2
  22. package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +3 -3
  23. package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +3 -3
  24. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +11 -12
  25. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  26. package/dist/cjs/pm-plugins/table-width.js +6 -2
  27. package/dist/cjs/toolbar.js +21 -21
  28. package/dist/cjs/transforms/column-width.js +4 -4
  29. package/dist/cjs/transforms/delete-columns.js +2 -2
  30. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
  31. package/dist/cjs/ui/FloatingContextualMenu/index.js +2 -4
  32. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +2 -2
  33. package/dist/cjs/ui/FloatingDragMenu/index.js +6 -6
  34. package/dist/cjs/ui/FloatingInsertButton/index.js +6 -7
  35. package/dist/cjs/ui/TableFloatingColumnControls/index.js +8 -48
  36. package/dist/cjs/ui/TableFloatingControls/index.js +113 -223
  37. package/dist/cjs/utils/column-controls.js +5 -5
  38. package/dist/cjs/utils/create.js +2 -5
  39. package/dist/cjs/utils/dom.js +13 -15
  40. package/dist/cjs/utils/drag-menu.js +4 -4
  41. package/dist/es2019/commands/column-resize.js +3 -3
  42. package/dist/es2019/commands/delete.js +2 -2
  43. package/dist/es2019/commands/insert.js +12 -12
  44. package/dist/es2019/commands-with-analytics.js +6 -6
  45. package/dist/es2019/event-handlers.js +27 -11
  46. package/dist/es2019/nodeviews/OverflowShadowsObserver.js +24 -15
  47. package/dist/es2019/nodeviews/TableCell.js +1 -24
  48. package/dist/es2019/nodeviews/TableComponent.js +88 -63
  49. package/dist/es2019/nodeviews/TableContainer.js +20 -22
  50. package/dist/es2019/nodeviews/TableResizer.js +13 -13
  51. package/dist/es2019/nodeviews/table.js +9 -9
  52. package/dist/es2019/plugin.js +19 -20
  53. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +6 -6
  54. package/dist/es2019/pm-plugins/keymap.js +5 -8
  55. package/dist/es2019/pm-plugins/main.js +6 -23
  56. package/dist/es2019/pm-plugins/sticky-headers/plugin.js +1 -1
  57. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +5 -5
  58. package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  59. package/dist/es2019/pm-plugins/table-resizing/utils/consts.js +3 -1
  60. package/dist/es2019/pm-plugins/table-resizing/utils/index.js +1 -1
  61. package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +2 -2
  62. package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +3 -2
  63. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +12 -13
  64. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  65. package/dist/es2019/pm-plugins/table-width.js +6 -2
  66. package/dist/es2019/toolbar.js +15 -15
  67. package/dist/es2019/transforms/column-width.js +5 -5
  68. package/dist/es2019/transforms/delete-columns.js +2 -2
  69. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +9 -12
  70. package/dist/es2019/ui/FloatingContextualMenu/index.js +2 -4
  71. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +2 -2
  72. package/dist/es2019/ui/FloatingDragMenu/index.js +5 -5
  73. package/dist/es2019/ui/FloatingInsertButton/index.js +5 -6
  74. package/dist/es2019/ui/TableFloatingColumnControls/index.js +5 -27
  75. package/dist/es2019/ui/TableFloatingControls/index.js +119 -193
  76. package/dist/es2019/utils/column-controls.js +6 -6
  77. package/dist/es2019/utils/create.js +2 -5
  78. package/dist/es2019/utils/dom.js +13 -15
  79. package/dist/es2019/utils/drag-menu.js +4 -4
  80. package/dist/esm/commands/column-resize.js +3 -3
  81. package/dist/esm/commands/delete.js +2 -2
  82. package/dist/esm/commands/insert.js +15 -15
  83. package/dist/esm/commands-with-analytics.js +7 -7
  84. package/dist/esm/event-handlers.js +27 -11
  85. package/dist/esm/nodeviews/OverflowShadowsObserver.js +24 -15
  86. package/dist/esm/nodeviews/TableCell.js +5 -30
  87. package/dist/esm/nodeviews/TableComponent.js +119 -82
  88. package/dist/esm/nodeviews/TableContainer.js +24 -22
  89. package/dist/esm/nodeviews/TableResizer.js +13 -13
  90. package/dist/esm/nodeviews/table.js +9 -9
  91. package/dist/esm/plugin.js +60 -59
  92. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +13 -13
  93. package/dist/esm/pm-plugins/keymap.js +6 -8
  94. package/dist/esm/pm-plugins/main.js +7 -24
  95. package/dist/esm/pm-plugins/sticky-headers/plugin.js +2 -3
  96. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +12 -12
  97. package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  98. package/dist/esm/pm-plugins/table-resizing/utils/consts.js +3 -1
  99. package/dist/esm/pm-plugins/table-resizing/utils/index.js +1 -1
  100. package/dist/esm/pm-plugins/table-resizing/utils/misc.js +2 -2
  101. package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +4 -3
  102. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +13 -14
  103. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +13 -13
  104. package/dist/esm/pm-plugins/table-width.js +6 -2
  105. package/dist/esm/toolbar.js +21 -21
  106. package/dist/esm/transforms/column-width.js +5 -5
  107. package/dist/esm/transforms/delete-columns.js +2 -2
  108. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
  109. package/dist/esm/ui/FloatingContextualMenu/index.js +2 -4
  110. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +2 -2
  111. package/dist/esm/ui/FloatingDragMenu/index.js +6 -6
  112. package/dist/esm/ui/FloatingInsertButton/index.js +6 -7
  113. package/dist/esm/ui/TableFloatingColumnControls/index.js +8 -48
  114. package/dist/esm/ui/TableFloatingControls/index.js +113 -224
  115. package/dist/esm/utils/column-controls.js +6 -6
  116. package/dist/esm/utils/create.js +2 -5
  117. package/dist/esm/utils/dom.js +13 -15
  118. package/dist/esm/utils/drag-menu.js +4 -4
  119. package/dist/types/commands/column-resize.d.ts +1 -1
  120. package/dist/types/commands/delete.d.ts +1 -1
  121. package/dist/types/commands/insert.d.ts +7 -7
  122. package/dist/types/commands-with-analytics.d.ts +3 -3
  123. package/dist/types/event-handlers.d.ts +4 -5
  124. package/dist/types/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  125. package/dist/types/nodeviews/TableCell.d.ts +1 -5
  126. package/dist/types/nodeviews/TableComponent.d.ts +6 -3
  127. package/dist/types/nodeviews/TableContainer.d.ts +6 -4
  128. package/dist/types/nodeviews/TableResizer.d.ts +2 -2
  129. package/dist/types/nodeviews/table.d.ts +1 -1
  130. package/dist/types/nodeviews/types.d.ts +1 -0
  131. package/dist/types/plugin.d.ts +1 -0
  132. package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
  133. package/dist/types/pm-plugins/keymap.d.ts +2 -2
  134. package/dist/types/pm-plugins/main.d.ts +1 -1
  135. package/dist/types/pm-plugins/sticky-headers/plugin.d.ts +2 -3
  136. package/dist/types/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
  137. package/dist/types/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  138. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  139. package/dist/types/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
  140. package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
  141. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
  142. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  143. package/dist/types/pm-plugins/table-width.d.ts +1 -2
  144. package/dist/types/toolbar.d.ts +2 -2
  145. package/dist/types/transforms/column-width.d.ts +1 -1
  146. package/dist/types/transforms/delete-columns.d.ts +1 -1
  147. package/dist/types/types.d.ts +1 -3
  148. package/dist/types/ui/FloatingContextualMenu/index.d.ts +1 -1
  149. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  150. package/dist/types/ui/FloatingDragMenu/index.d.ts +2 -3
  151. package/dist/types/ui/FloatingInsertButton/index.d.ts +1 -2
  152. package/dist/types/ui/TableFloatingColumnControls/index.d.ts +2 -1
  153. package/dist/types/ui/TableFloatingControls/index.d.ts +5 -22
  154. package/dist/types/utils/create.d.ts +1 -2
  155. package/dist/types/utils/dom.d.ts +10 -2
  156. package/dist/types/utils/drag-menu.d.ts +1 -1
  157. package/dist/types-ts4.5/commands/column-resize.d.ts +1 -1
  158. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  159. package/dist/types-ts4.5/commands/insert.d.ts +7 -7
  160. package/dist/types-ts4.5/commands-with-analytics.d.ts +3 -3
  161. package/dist/types-ts4.5/event-handlers.d.ts +4 -5
  162. package/dist/types-ts4.5/nodeviews/OverflowShadowsObserver.d.ts +3 -1
  163. package/dist/types-ts4.5/nodeviews/TableCell.d.ts +1 -5
  164. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +6 -3
  165. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +6 -4
  166. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -2
  167. package/dist/types-ts4.5/nodeviews/table.d.ts +1 -1
  168. package/dist/types-ts4.5/nodeviews/types.d.ts +1 -0
  169. package/dist/types-ts4.5/plugin.d.ts +1 -0
  170. package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
  171. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +2 -2
  172. package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -1
  173. package/dist/types-ts4.5/pm-plugins/sticky-headers/plugin.d.ts +2 -3
  174. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
  175. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  176. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  177. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
  178. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
  179. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
  180. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
  181. package/dist/types-ts4.5/pm-plugins/table-width.d.ts +1 -2
  182. package/dist/types-ts4.5/toolbar.d.ts +2 -2
  183. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  184. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  185. package/dist/types-ts4.5/types.d.ts +1 -3
  186. package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +1 -1
  187. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  188. package/dist/types-ts4.5/ui/FloatingDragMenu/index.d.ts +2 -3
  189. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +1 -2
  190. package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +2 -1
  191. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +5 -22
  192. package/dist/types-ts4.5/utils/create.d.ts +1 -2
  193. package/dist/types-ts4.5/utils/dom.d.ts +10 -2
  194. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  195. package/package.json +3 -4
  196. package/src/commands/column-resize.ts +4 -3
  197. package/src/commands/delete.ts +2 -2
  198. package/src/commands/insert.ts +15 -27
  199. package/src/commands-with-analytics.ts +6 -9
  200. package/src/event-handlers.ts +107 -105
  201. package/src/nodeviews/OverflowShadowsObserver.ts +32 -21
  202. package/src/nodeviews/TableCell.ts +0 -26
  203. package/src/nodeviews/TableComponent.tsx +107 -78
  204. package/src/nodeviews/TableContainer.tsx +26 -32
  205. package/src/nodeviews/TableResizer.tsx +15 -18
  206. package/src/nodeviews/table.tsx +6 -5
  207. package/src/nodeviews/types.ts +1 -0
  208. package/src/plugin.tsx +17 -32
  209. package/src/pm-plugins/drag-and-drop/plugin.ts +10 -15
  210. package/src/pm-plugins/keymap.ts +6 -13
  211. package/src/pm-plugins/main.ts +6 -25
  212. package/src/pm-plugins/sticky-headers/plugin.ts +2 -11
  213. package/src/pm-plugins/table-resizing/event-handlers.ts +6 -4
  214. package/src/pm-plugins/table-resizing/utils/colgroup.ts +2 -2
  215. package/src/pm-plugins/table-resizing/utils/consts.ts +2 -0
  216. package/src/pm-plugins/table-resizing/utils/index.ts +1 -1
  217. package/src/pm-plugins/table-resizing/utils/misc.ts +2 -2
  218. package/src/pm-plugins/table-resizing/utils/resize-column.ts +5 -2
  219. package/src/pm-plugins/table-resizing/utils/resize-state.ts +18 -13
  220. package/src/pm-plugins/table-resizing/utils/scale-table.ts +14 -14
  221. package/src/pm-plugins/table-width.ts +4 -6
  222. package/src/toolbar.tsx +16 -19
  223. package/src/transforms/column-width.ts +7 -6
  224. package/src/transforms/delete-columns.ts +2 -2
  225. package/src/types.ts +1 -4
  226. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +11 -16
  227. package/src/ui/FloatingContextualMenu/index.tsx +0 -2
  228. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -3
  229. package/src/ui/FloatingDragMenu/index.tsx +4 -8
  230. package/src/ui/FloatingInsertButton/index.tsx +11 -22
  231. package/src/ui/TableFloatingColumnControls/index.tsx +5 -29
  232. package/src/ui/TableFloatingControls/index.tsx +155 -241
  233. package/src/utils/column-controls.ts +5 -6
  234. package/src/utils/create.ts +2 -5
  235. package/src/utils/dom.ts +12 -19
  236. package/src/utils/drag-menu.ts +7 -12
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Popup } from '@atlaskit/editor-common/ui';
3
3
  import { akEditorFloatingDialogZIndex, akEditorFloatingOverlapPanelZIndex } from '@atlaskit/editor-shared-styles';
4
4
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
5
+ import { getPluginState } from '../../pm-plugins/plugin-factory';
5
6
  import { dragMenuDropdownWidth, tablePopupMenuFitHeight } from '../consts';
6
7
  import DragMenu from './DragMenu';
7
8
  var FloatingDragMenu = function FloatingDragMenu(_ref) {
@@ -17,8 +18,7 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
17
18
  getEditorContainerWidth = _ref.getEditorContainerWidth,
18
19
  editorAnalyticsAPI = _ref.editorAnalyticsAPI,
19
20
  stickyHeaders = _ref.stickyHeaders,
20
- pluginConfig = _ref.pluginConfig,
21
- getEditorFeatureFlags = _ref.getEditorFeatureFlags;
21
+ pluginConfig = _ref.pluginConfig;
22
22
  if (!isOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
23
23
  return null;
24
24
  }
@@ -28,9 +28,9 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
28
28
  if (!targetHandleRef || !(editorView.state.selection instanceof CellSelection)) {
29
29
  return null;
30
30
  }
31
- var _getEditorFeatureFlag = getEditorFeatureFlags(),
32
- _getEditorFeatureFlag2 = _getEditorFeatureFlag.tablePreserveWidth,
33
- tablePreserveWidth = _getEditorFeatureFlag2 === void 0 ? false : _getEditorFeatureFlag2;
31
+ var _getPluginState = getPluginState(editorView.state),
32
+ _getPluginState$isTab = _getPluginState.isTableScalingEnabled,
33
+ isTableScalingEnabled = _getPluginState$isTab === void 0 ? false : _getPluginState$isTab;
34
34
  return /*#__PURE__*/React.createElement(Popup, {
35
35
  alignX: direction === 'row' ? 'right' : undefined,
36
36
  alignY: direction === 'row' ? 'start' : undefined,
@@ -64,7 +64,7 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
64
64
  mountPoint: mountPoint,
65
65
  boundariesElement: boundariesElement,
66
66
  scrollableElement: scrollableElement,
67
- tablePreserveWidth: tablePreserveWidth
67
+ isTableScalingEnabled: isTableScalingEnabled
68
68
  }));
69
69
  };
70
70
  FloatingDragMenu.displayName = 'FloatingDragMenu';
@@ -19,6 +19,7 @@ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
19
19
  import { TableMap } from '@atlaskit/editor-tables/table-map';
20
20
  import { findTable } from '@atlaskit/editor-tables/utils';
21
21
  import { insertColumnWithAnalytics, insertRowWithAnalytics } from '../../commands-with-analytics';
22
+ import { getPluginState } from '../../pm-plugins/plugin-factory';
22
23
  import { TableCssClassName as ClassName } from '../../types';
23
24
  import { checkIfNumberColumnEnabled } from '../../utils';
24
25
  import getPopupOptions from './getPopupOptions';
@@ -185,17 +186,15 @@ export var FloatingInsertButton = /*#__PURE__*/function (_React$Component) {
185
186
  var _this$props4 = this.props,
186
187
  editorView = _this$props4.editorView,
187
188
  insertColumnButtonIndex = _this$props4.insertColumnButtonIndex,
188
- editorAnalyticsAPI = _this$props4.editorAnalyticsAPI,
189
- getEditorContainerWidth = _this$props4.getEditorContainerWidth;
189
+ editorAnalyticsAPI = _this$props4.editorAnalyticsAPI;
190
190
  if (typeof insertColumnButtonIndex !== 'undefined') {
191
- var _this$props$getEditor, _this$props5;
192
191
  event.preventDefault();
193
- var _ref = ((_this$props$getEditor = (_this$props5 = this.props).getEditorFeatureFlags) === null || _this$props$getEditor === void 0 ? void 0 : _this$props$getEditor.call(_this$props5)) || {},
194
- _ref$tablePreserveWid = _ref.tablePreserveWidth,
195
- tablePreserveWidth = _ref$tablePreserveWid === void 0 ? false : _ref$tablePreserveWid;
192
+ var _getPluginState = getPluginState(editorView.state),
193
+ _getPluginState$isTab = _getPluginState.isTableScalingEnabled,
194
+ isTableScalingEnabled = _getPluginState$isTab === void 0 ? false : _getPluginState$isTab;
196
195
  var state = editorView.state,
197
196
  dispatch = editorView.dispatch;
198
- insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
197
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
199
198
  }
200
199
  }
201
200
  }]);
@@ -1,7 +1,4 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- 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; } } }; }
3
- 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); }
4
- 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; }
5
2
  import React, { useEffect, useMemo, useRef, useState } from 'react';
6
3
  import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
7
4
  import { TableCssClassName as ClassName } from '../../types';
@@ -22,54 +19,17 @@ export var TableFloatingColumnControls = function TableFloatingColumnControls(_r
22
19
  isTableHovered = _ref.isTableHovered,
23
20
  tableContainerWidth = _ref.tableContainerWidth,
24
21
  isNumberColumnEnabled = _ref.isNumberColumnEnabled,
25
- getScrollOffset = _ref.getScrollOffset;
26
- var _useState = useState({
27
- width: 0,
28
- height: 0
29
- }),
22
+ getScrollOffset = _ref.getScrollOffset,
23
+ tableWrapperHeight = _ref.tableWrapperHeight;
24
+ var _useState = useState(false),
30
25
  _useState2 = _slicedToArray(_useState, 2),
31
- tableRect = _useState2[0],
32
- setTableRect = _useState2[1];
33
- var _useState3 = useState(false),
34
- _useState4 = _slicedToArray(_useState3, 2),
35
- isDragging = _useState4[0],
36
- setIsDragging = _useState4[1];
26
+ isDragging = _useState2[0],
27
+ setIsDragging = _useState2[1];
37
28
  var containerRef = useRef(null);
38
29
  var node = getNode();
39
30
  var currentNodeLocalId = node === null || node === void 0 ? void 0 : node.attrs.localId;
40
31
  var hasHeaderColumn = containsHeaderColumn(node);
41
32
  var stickyTop = stickyHeader && stickyHeader.sticky && hasHeaderRow ? stickyHeader.top : undefined;
42
- useEffect(function () {
43
- var _window;
44
- if (tableRef && (_window = window) !== null && _window !== void 0 && _window.ResizeObserver) {
45
- var resizeObserver = new ResizeObserver(function (entries) {
46
- var _iterator = _createForOfIteratorHelper(entries),
47
- _step;
48
- try {
49
- var _loop = function _loop() {
50
- var entry = _step.value;
51
- setTableRect(function (prev) {
52
- if (prev.width !== entry.contentRect.width || prev.height !== entry.contentRect.height) {
53
- return entry.contentRect;
54
- }
55
- return prev;
56
- });
57
- };
58
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
59
- _loop();
60
- }
61
- } catch (err) {
62
- _iterator.e(err);
63
- } finally {
64
- _iterator.f();
65
- }
66
- });
67
- resizeObserver.observe(tableRef);
68
- return function () {
69
- resizeObserver.disconnect();
70
- };
71
- }
72
- }, [tableRef]);
73
33
  useEffect(function () {
74
34
  return monitorForElements({
75
35
  canMonitor: function canMonitor(_ref2) {
@@ -90,11 +50,11 @@ export var TableFloatingColumnControls = function TableFloatingColumnControls(_r
90
50
  }, [editorView, currentNodeLocalId]);
91
51
  var rowHeights = useMemo(function () {
92
52
  // NOTE: we don't care so much as to what tableHeight is, we only care that it changed and is a sane value.
93
- if (tableRef && !!tableRect.height) {
53
+ if (tableRef && !!tableWrapperHeight) {
94
54
  return getRowHeights(tableRef);
95
55
  }
96
56
  return [0];
97
- }, [tableRef, tableRect.height]);
57
+ }, [tableRef, tableWrapperHeight]);
98
58
  if (!tableRef || !tableActive || isResizing) {
99
59
  return null;
100
60
  }
@@ -131,7 +91,7 @@ export var TableFloatingColumnControls = function TableFloatingColumnControls(_r
131
91
  }), isDragging && /*#__PURE__*/React.createElement(ColumnDropTargets, {
132
92
  tableRef: tableRef,
133
93
  isHeaderSticky: (stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.sticky) && hasHeaderRow,
134
- tableHeight: tableRect.height,
94
+ tableHeight: tableWrapperHeight,
135
95
  localId: currentNodeLocalId,
136
96
  colWidths: colWidths,
137
97
  getScrollOffset: getScrollOffset
@@ -1,235 +1,124 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
- 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; } } }; }
9
- 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); }
10
- 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; }
11
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
- import React, { Component } from 'react';
1
+ import React, { useCallback } from 'react';
14
2
  import { browser } from '@atlaskit/editor-common/utils';
15
3
  import { hoverCell, hoverRows, selectRow, selectRows } from '../../commands';
16
4
  import { TableCssClassName as ClassName } from '../../types';
17
- import { isSelectionUpdated } from '../../utils';
18
5
  import { CornerControls, DragCornerControls } from './CornerControls';
19
6
  import NumberColumn from './NumberColumn';
20
7
  import { DragControls, RowControls } from './RowControls';
21
- var TableFloatingControls = /*#__PURE__*/function (_Component) {
22
- _inherits(TableFloatingControls, _Component);
23
- var _super = _createSuper(TableFloatingControls);
24
- function TableFloatingControls(props) {
25
- var _this;
26
- _classCallCheck(this, TableFloatingControls);
27
- _this = _super.call(this, props);
28
- _defineProperty(_assertThisInitialized(_this), "selectRow", function (row, expand) {
29
- var editorView = _this.props.editorView;
30
- var state = editorView.state,
31
- dispatch = editorView.dispatch;
32
- // fix for issue ED-4665
33
- if (browser.ie_version === 11) {
34
- editorView.dom.blur();
35
- }
36
- selectRow(row, expand)(state, dispatch);
37
- });
38
- _defineProperty(_assertThisInitialized(_this), "selectRows", function (rowIndexes) {
39
- var editorView = _this.props.editorView;
40
- var state = editorView.state,
41
- dispatch = editorView.dispatch;
42
- // fix for issue ED-4665
43
- if (browser.ie_version === 11) {
44
- editorView.dom.blur();
45
- }
46
- selectRows(rowIndexes)(state, dispatch);
47
- });
48
- _defineProperty(_assertThisInitialized(_this), "hoverRows", function (rows, danger) {
49
- var _this$props$editorVie = _this.props.editorView,
50
- state = _this$props$editorVie.state,
51
- dispatch = _this$props$editorVie.dispatch;
52
- hoverRows(rows, danger)(state, dispatch);
53
- });
54
- // re-use across numbered columns and row controls
55
- _defineProperty(_assertThisInitialized(_this), "updateCellHoverLocation", function (rowIndex) {
56
- var _this$props = _this.props,
57
- editorView = _this$props.editorView,
58
- tableActive = _this$props.tableActive;
59
- var state = editorView.state,
60
- dispatch = editorView.dispatch;
61
- if (tableActive) {
62
- // For context: Whenever we mouse over a column or row drag handle, we will ALWAYS be hovering over the 0 index
63
- // of the opposite dimension. For example; here when we mouse over the row drag handle then we're technically
64
- // also hovering over column 0 index. And vice-versa with columns. This means we don't need to worry about knowing the
65
- // current column index. We can just force it to 0.
66
- hoverCell(rowIndex, 0)(state, dispatch);
67
- }
68
- });
69
- _this.state = {
70
- tableWrapperWidth: 0,
71
- /** Height needs to be tracked to re-render decorations correctly, do not remove */
72
- tableWrapperHeight: 0
73
- };
74
- return _this;
75
- }
76
- _createClass(TableFloatingControls, [{
77
- key: "componentDidMount",
78
- value: function componentDidMount() {
79
- this.tryInitResizeObserver();
8
+ export var TableFloatingControls = function TableFloatingControls(_ref) {
9
+ var editorView = _ref.editorView,
10
+ tableRef = _ref.tableRef,
11
+ tableNode = _ref.tableNode,
12
+ isInDanger = _ref.isInDanger,
13
+ isResizing = _ref.isResizing,
14
+ isNumberColumnEnabled = _ref.isNumberColumnEnabled,
15
+ isHeaderRowEnabled = _ref.isHeaderRowEnabled,
16
+ isHeaderColumnEnabled = _ref.isHeaderColumnEnabled,
17
+ tableActive = _ref.tableActive,
18
+ hasHeaderRow = _ref.hasHeaderRow,
19
+ hoveredRows = _ref.hoveredRows,
20
+ stickyHeader = _ref.stickyHeader,
21
+ isDragAndDropEnabled = _ref.isDragAndDropEnabled,
22
+ hoveredCell = _ref.hoveredCell,
23
+ isTableHovered = _ref.isTableHovered,
24
+ tableWrapperWidth = _ref.tableWrapperWidth;
25
+ var _selectRow = useCallback(function (row, expand) {
26
+ var state = editorView.state,
27
+ dispatch = editorView.dispatch;
28
+ // fix for issue ED-4665
29
+ if (browser.ie_version === 11) {
30
+ editorView.dom.blur();
80
31
  }
81
- }, {
82
- key: "componentDidUpdate",
83
- value: function componentDidUpdate() {
84
- // tableRef prop is not guaranteed to be defined after componentDidMount, so retry to init resize observer on update
85
- this.tryInitResizeObserver();
32
+ selectRow(row, expand)(state, dispatch);
33
+ }, [editorView]);
34
+ var _selectRows = useCallback(function (rowIndexes) {
35
+ var state = editorView.state,
36
+ dispatch = editorView.dispatch;
37
+ // fix for issue ED-4665
38
+ if (browser.ie_version === 11) {
39
+ editorView.dom.blur();
86
40
  }
41
+ selectRows(rowIndexes)(state, dispatch);
42
+ }, [editorView]);
43
+ var _hoverRows = useCallback(function (rows, danger) {
44
+ var state = editorView.state,
45
+ dispatch = editorView.dispatch;
46
+ hoverRows(rows, danger)(state, dispatch);
47
+ }, [editorView]);
87
48
 
88
- // tracking the table height changes to update floating controls
89
- }, {
90
- key: "tryInitResizeObserver",
91
- value: function tryInitResizeObserver() {
92
- var _window,
93
- _this2 = this;
94
- var tableRef = this.props.tableRef;
95
- if (tableRef && !this.resizeObserver && (_window = window) !== null && _window !== void 0 && _window.ResizeObserver) {
96
- var tableWrapper = tableRef.closest(".".concat(ClassName.TABLE_NODE_WRAPPER));
97
- this.resizeObserver = new ResizeObserver(function (entries) {
98
- var _iterator = _createForOfIteratorHelper(entries),
99
- _step;
100
- try {
101
- var _loop = function _loop() {
102
- var entry = _step.value;
103
- _this2.setState(function (prev) {
104
- return (prev === null || prev === void 0 ? void 0 : prev.tableWrapperWidth) === entry.contentRect.width && prev.tableWrapperHeight === entry.contentRect.height ? prev : {
105
- tableWrapperWidth: entry.contentRect.width,
106
- tableWrapperHeight: entry.contentRect.height
107
- };
108
- });
109
- };
110
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
111
- _loop();
112
- }
113
- } catch (err) {
114
- _iterator.e(err);
115
- } finally {
116
- _iterator.f();
117
- }
118
- });
119
- this.resizeObserver.observe(tableWrapper);
120
- }
121
- }
122
- }, {
123
- key: "shouldComponentUpdate",
124
- value: function shouldComponentUpdate(nextProps, nextState) {
125
- var _this$props2 = this.props,
126
- tableRef = _this$props2.tableRef,
127
- isInDanger = _this$props2.isInDanger,
128
- isResizing = _this$props2.isResizing,
129
- isHeaderRowEnabled = _this$props2.isHeaderRowEnabled,
130
- isNumberColumnEnabled = _this$props2.isNumberColumnEnabled,
131
- hoveredRows = _this$props2.hoveredRows,
132
- selection = _this$props2.selection,
133
- tableActive = _this$props2.tableActive,
134
- isHeaderColumnEnabled = _this$props2.isHeaderColumnEnabled,
135
- ordering = _this$props2.ordering,
136
- headerRowHeight = _this$props2.headerRowHeight,
137
- stickyHeader = _this$props2.stickyHeader,
138
- hoveredCell = _this$props2.hoveredCell,
139
- isTableHovered = _this$props2.isTableHovered;
140
- return this.state.tableWrapperWidth !== nextState.tableWrapperWidth || this.state.tableWrapperHeight !== nextState.tableWrapperHeight || ordering !== nextProps.ordering || tableRef !== nextProps.tableRef || tableActive !== nextProps.tableActive || isInDanger !== nextProps.isInDanger || isResizing !== nextProps.isResizing || hoveredRows !== nextProps.hoveredRows || isHeaderRowEnabled !== nextProps.isHeaderRowEnabled || isHeaderColumnEnabled !== nextProps.isHeaderColumnEnabled || isNumberColumnEnabled !== nextProps.isNumberColumnEnabled || isSelectionUpdated(selection, nextProps.selection) || headerRowHeight !== nextProps.headerRowHeight || stickyHeader !== nextProps.stickyHeader || hoveredCell !== nextProps.hoveredCell || isTableHovered !== nextProps.isTableHovered;
49
+ // re-use across numbered columns and row controls
50
+ var updateCellHoverLocation = useCallback(function (rowIndex) {
51
+ var state = editorView.state,
52
+ dispatch = editorView.dispatch;
53
+ if (tableActive) {
54
+ // For context: Whenever we mouse over a column or row drag handle, we will ALWAYS be hovering over the 0 index
55
+ // of the opposite dimension. For example; here when we mouse over the row drag handle then we're technically
56
+ // also hovering over column 0 index. And vice-versa with columns. This means we don't need to worry about knowing the
57
+ // current column index. We can just force it to 0.
58
+ hoverCell(rowIndex, 0)(state, dispatch);
141
59
  }
142
- }, {
143
- key: "componentWillUnmount",
144
- value: function componentWillUnmount() {
145
- if (this.resizeObserver) {
146
- this.resizeObserver.disconnect();
147
- }
148
- }
149
- }, {
150
- key: "render",
151
- value: function render() {
152
- var _this$props3 = this.props,
153
- editorView = _this$props3.editorView,
154
- tableRef = _this$props3.tableRef,
155
- tableNode = _this$props3.tableNode,
156
- isInDanger = _this$props3.isInDanger,
157
- isResizing = _this$props3.isResizing,
158
- isNumberColumnEnabled = _this$props3.isNumberColumnEnabled,
159
- isHeaderRowEnabled = _this$props3.isHeaderRowEnabled,
160
- isHeaderColumnEnabled = _this$props3.isHeaderColumnEnabled,
161
- tableActive = _this$props3.tableActive,
162
- hasHeaderRow = _this$props3.hasHeaderRow,
163
- hoveredRows = _this$props3.hoveredRows,
164
- stickyHeader = _this$props3.stickyHeader,
165
- isDragAndDropEnabled = _this$props3.isDragAndDropEnabled,
166
- hoveredCell = _this$props3.hoveredCell,
167
- isTableHovered = _this$props3.isTableHovered;
168
- if (!tableRef) {
169
- return null;
170
- }
171
- var stickyTop = stickyHeader && stickyHeader.sticky && hasHeaderRow ? stickyHeader.top : undefined;
172
- var wrapperClassName = isDragAndDropEnabled ? ClassName.DRAG_ROW_CONTROLS_WRAPPER : ClassName.ROW_CONTROLS_WRAPPER;
173
- return /*#__PURE__*/React.createElement("div", {
174
- className: wrapperClassName
175
- }, /*#__PURE__*/React.createElement("div", {
176
- onMouseDown: function onMouseDown(e) {
177
- return !isDragAndDropEnabled && e.preventDefault();
178
- }
179
- }, isNumberColumnEnabled ? /*#__PURE__*/React.createElement(NumberColumn, {
180
- editorView: editorView,
181
- hoverRows: this.hoverRows,
182
- tableRef: tableRef,
183
- tableActive: tableActive,
184
- hoveredRows: hoveredRows,
185
- hasHeaderRow: hasHeaderRow,
186
- isInDanger: isInDanger,
187
- isResizing: isResizing,
188
- selectRow: this.selectRow,
189
- updateCellHoverLocation: this.updateCellHoverLocation,
190
- stickyTop: stickyTop,
191
- isDragAndDropEnabled: isDragAndDropEnabled
192
- }) : null, tableActive && /*#__PURE__*/React.createElement(React.Fragment, null, isDragAndDropEnabled ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DragCornerControls, {
193
- editorView: editorView,
194
- tableRef: tableRef,
195
- isInDanger: isInDanger,
196
- isResizing: isResizing
197
- }), /*#__PURE__*/React.createElement(DragControls, {
198
- tableRef: tableRef,
199
- tableNode: tableNode,
200
- hoveredCell: hoveredCell,
201
- isTableHovered: isTableHovered,
202
- editorView: editorView,
203
- tableActive: tableActive,
204
- isInDanger: isInDanger,
205
- isResizing: isResizing,
206
- tableWidth: this.state.tableWrapperWidth,
207
- hoverRows: this.hoverRows,
208
- selectRow: this.selectRow,
209
- selectRows: this.selectRows,
210
- updateCellHoverLocation: this.updateCellHoverLocation
211
- })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CornerControls, {
212
- editorView: editorView,
213
- tableRef: tableRef,
214
- isInDanger: isInDanger,
215
- isResizing: isResizing,
216
- isHeaderRowEnabled: isHeaderRowEnabled,
217
- isHeaderColumnEnabled: isHeaderColumnEnabled,
218
- hoveredRows: hoveredRows,
219
- stickyTop: tableActive ? stickyTop : undefined
220
- }), /*#__PURE__*/React.createElement(RowControls, {
221
- editorView: editorView,
222
- tableRef: tableRef,
223
- hoverRows: this.hoverRows,
224
- hoveredRows: hoveredRows,
225
- isInDanger: isInDanger,
226
- isResizing: isResizing,
227
- selectRow: this.selectRow,
228
- stickyTop: tableActive ? stickyTop : undefined
229
- })))));
60
+ }, [editorView, tableActive]);
61
+ if (!tableRef) {
62
+ return null;
63
+ }
64
+ var stickyTop = stickyHeader && stickyHeader.sticky && hasHeaderRow ? stickyHeader.top : undefined;
65
+ var wrapperClassName = isDragAndDropEnabled ? ClassName.DRAG_ROW_CONTROLS_WRAPPER : ClassName.ROW_CONTROLS_WRAPPER;
66
+ return /*#__PURE__*/React.createElement("div", {
67
+ className: wrapperClassName
68
+ }, /*#__PURE__*/React.createElement("div", {
69
+ onMouseDown: function onMouseDown(e) {
70
+ return !isDragAndDropEnabled && e.preventDefault();
230
71
  }
231
- }]);
232
- return TableFloatingControls;
233
- }(Component);
234
- _defineProperty(TableFloatingControls, "displayName", 'TableFloatingControls');
235
- export { TableFloatingControls as default };
72
+ }, isNumberColumnEnabled ? /*#__PURE__*/React.createElement(NumberColumn, {
73
+ editorView: editorView,
74
+ hoverRows: _hoverRows,
75
+ tableRef: tableRef,
76
+ tableActive: tableActive,
77
+ hoveredRows: hoveredRows,
78
+ hasHeaderRow: hasHeaderRow,
79
+ isInDanger: isInDanger,
80
+ isResizing: isResizing,
81
+ selectRow: _selectRow,
82
+ updateCellHoverLocation: updateCellHoverLocation,
83
+ stickyTop: stickyTop,
84
+ isDragAndDropEnabled: isDragAndDropEnabled
85
+ }) : null, tableActive && /*#__PURE__*/React.createElement(React.Fragment, null, isDragAndDropEnabled ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DragCornerControls, {
86
+ editorView: editorView,
87
+ tableRef: tableRef,
88
+ isInDanger: isInDanger,
89
+ isResizing: isResizing
90
+ }), /*#__PURE__*/React.createElement(DragControls, {
91
+ tableRef: tableRef,
92
+ tableNode: tableNode,
93
+ hoveredCell: hoveredCell,
94
+ isTableHovered: isTableHovered,
95
+ editorView: editorView,
96
+ tableActive: tableActive,
97
+ isInDanger: isInDanger,
98
+ isResizing: isResizing,
99
+ tableWidth: tableWrapperWidth,
100
+ hoverRows: _hoverRows,
101
+ selectRow: _selectRow,
102
+ selectRows: _selectRows,
103
+ updateCellHoverLocation: updateCellHoverLocation
104
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CornerControls, {
105
+ editorView: editorView,
106
+ tableRef: tableRef,
107
+ isInDanger: isInDanger,
108
+ isResizing: isResizing,
109
+ isHeaderRowEnabled: isHeaderRowEnabled,
110
+ isHeaderColumnEnabled: isHeaderColumnEnabled,
111
+ hoveredRows: hoveredRows,
112
+ stickyTop: tableActive ? stickyTop : undefined
113
+ }), /*#__PURE__*/React.createElement(RowControls, {
114
+ editorView: editorView,
115
+ tableRef: tableRef,
116
+ hoverRows: _hoverRows,
117
+ hoveredRows: hoveredRows,
118
+ isInDanger: isInDanger,
119
+ isResizing: isResizing,
120
+ selectRow: _selectRow,
121
+ stickyTop: tableActive ? stickyTop : undefined
122
+ })))));
123
+ };
124
+ export default TableFloatingControls;
@@ -3,7 +3,7 @@ import { maphElem } from '@atlaskit/editor-common/utils';
3
3
  import { findDomRefAtPos } from '@atlaskit/editor-prosemirror/utils';
4
4
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
5
5
  import { TableMap } from '@atlaskit/editor-tables/table-map';
6
- import { findTable, getCellsInColumn, getSelectionRect, isColumnSelected, isTableSelected } from '@atlaskit/editor-tables/utils';
6
+ import { findTable, getSelectionRect, isColumnSelected, isTableSelected } from '@atlaskit/editor-tables/utils';
7
7
  import { TableCssClassName as ClassName } from '../types';
8
8
  import { tableDeleteButtonSize } from '../ui/consts';
9
9
  export var getColumnsWidths = function getColumnsWidths(view) {
@@ -19,13 +19,13 @@ export var getColumnsWidths = function getColumnsWidths(view) {
19
19
  length: map.width
20
20
  });
21
21
  for (var i = 0; i < map.width; i++) {
22
- var cells = getCellsInColumn(i)(selection);
23
- var cell = cells[0];
24
- if (cell) {
25
- var cellRef = findDomRefAtPos(cell.pos, domAtPos);
22
+ if (!map.isCellMergedTopLeft(0, i)) {
23
+ var node = table.node.nodeAt(map.map[i]);
24
+ var pos = map.map[i] + table.start;
25
+ var cellRef = findDomRefAtPos(pos, domAtPos);
26
26
  var rect = cellRef.getBoundingClientRect();
27
27
  widths[i] = (rect ? rect.width : cellRef.offsetWidth) + 1;
28
- i += cell.node.attrs.colspan - 1;
28
+ i += node.attrs.colspan - 1;
29
29
  }
30
30
  }
31
31
  }
@@ -3,12 +3,9 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
3
3
  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) { _defineProperty(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; }
4
4
  import { createTable } from '@atlaskit/editor-tables/utils';
5
5
  import { TABLE_MAX_WIDTH } from '../pm-plugins/table-resizing/utils';
6
- export var createTableWithWidth = function createTableWithWidth(isFullWidthModeEnabled, getEditorFeatureFlags, createTableProps) {
6
+ export var createTableWithWidth = function createTableWithWidth(isTableScalingEnabled, isFullWidthModeEnabled, createTableProps) {
7
7
  return function (schema) {
8
- var _ref = (getEditorFeatureFlags === null || getEditorFeatureFlags === void 0 ? void 0 : getEditorFeatureFlags()) || {},
9
- _ref$tablePreserveWid = _ref.tablePreserveWidth,
10
- tablePreserveWidth = _ref$tablePreserveWid === void 0 ? false : _ref$tablePreserveWid;
11
- if (tablePreserveWidth && isFullWidthModeEnabled) {
8
+ if (isTableScalingEnabled && isFullWidthModeEnabled) {
12
9
  return createTable(_objectSpread({
13
10
  schema: schema,
14
11
  tableWidth: TABLE_MAX_WIDTH
@@ -1,6 +1,5 @@
1
1
  import { closestElement, containsClassName } from '@atlaskit/editor-common/utils';
2
2
  import { TableCssClassName as ClassName } from '../types';
3
- var SELECTOR_TABLE_LEAFS = ".".concat(ClassName.TABLE_CELL, ", .").concat(ClassName.TABLE_HEADER_CELL);
4
3
  export var isCell = function isCell(node) {
5
4
  return Boolean(node && (['TH', 'TD'].indexOf(node.tagName) > -1 || !!closestElement(node, ".".concat(ClassName.TABLE_HEADER_CELL)) || !!closestElement(node, ".".concat(ClassName.TABLE_CELL))));
6
5
  };
@@ -96,22 +95,21 @@ export var isDragCornerButton = function isDragCornerButton(node) {
96
95
  *
97
96
  * the same is valid to the right side.
98
97
  */
99
-
100
- export var getMousePositionHorizontalRelativeByElement = function getMousePositionHorizontalRelativeByElement(mouseEvent, elementContentRects, gapInPixels, isDragAndDropEnabled) {
98
+ /**
99
+ * This can be used with mouse events to determine the left/right side of the target the pointer is closest too.
100
+ *
101
+ * WARNING: This metod reads properties which can trigger a reflow; use this wisely.
102
+ *
103
+ * @param mouseEvent
104
+ * @param gapInPixels
105
+ * @returns
106
+ */
107
+ export var getMousePositionHorizontalRelativeByElement = function getMousePositionHorizontalRelativeByElement(mouseEvent, offsetX, gapInPixels) {
101
108
  var element = mouseEvent.target;
102
109
  if (element instanceof HTMLElement) {
103
- var width, x;
104
- if (isDragAndDropEnabled) {
105
- // mouse event fires for new overlapping column controls, so the cell can not get detected. Get width
106
- // directly from element that will be .pm-table-drag-columns-floating-insert-dot-wrapper
107
- width = element.clientWidth;
108
- } else {
109
- var _closestCell$id, _elementContentRects$, _elementContentRects$2;
110
- var closestCell = element.closest(SELECTOR_TABLE_LEAFS);
111
- var id = (_closestCell$id = closestCell === null || closestCell === void 0 ? void 0 : closestCell.id) !== null && _closestCell$id !== void 0 ? _closestCell$id : '';
112
- width = (_elementContentRects$ = elementContentRects === null || elementContentRects === void 0 || (_elementContentRects$2 = elementContentRects[id]) === null || _elementContentRects$2 === void 0 ? void 0 : _elementContentRects$2.width) !== null && _elementContentRects$ !== void 0 ? _elementContentRects$ : 0;
113
- }
114
- x = mouseEvent.offsetX;
110
+ var width = element.clientWidth; // reflow
111
+ var x = !Number.isNaN(offsetX) ? offsetX : mouseEvent.offsetX; // reflow
112
+
115
113
  if (width <= 0) {
116
114
  return null;
117
115
  }
@@ -63,7 +63,7 @@ var defaultSelectionRect = {
63
63
  };
64
64
  export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorContainerWidth, canDrag, hasMergedCellsInTable, editorView, tableMap, index, targetCellPosition, selectionRect, editorAnalyticsAPI, isHeaderRowRequired) {
65
65
  var _tableMap$height, _tableMap$height2, _tableMap$width, _tableMap$width2;
66
- var tablePreserveWidth = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : false;
66
+ var isTableScalingEnabled = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : false;
67
67
  var addOptions = direction === 'row' ? [{
68
68
  label: 'above',
69
69
  offset: 0,
@@ -148,7 +148,7 @@ export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorCo
148
148
  moveCursorToInsertedRow: true
149
149
  })(state, dispatch);
150
150
  } else {
151
- insertColumnWithAnalytics(getEditorContainerWidth, editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.TABLE_CONTEXT_MENU, (index !== null && index !== void 0 ? index : 0) + offset)(state, dispatch, editorView);
151
+ insertColumnWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.TABLE_CONTEXT_MENU, (index !== null && index !== void 0 ? index : 0) + offset)(state, dispatch, editorView);
152
152
  }
153
153
  return true;
154
154
  },
@@ -161,7 +161,7 @@ export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorCo
161
161
  onClick: function onClick(state, dispatch) {
162
162
  var selectionRect = getClosestSelectionRect(state);
163
163
  if (selectionRect) {
164
- var newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, tablePreserveWidth);
164
+ var newResizeState = getNewResizeStateFromSelectedColumns(selectionRect, state, editorView.domAtPos.bind(editorView), getEditorContainerWidth, isTableScalingEnabled);
165
165
  if (newResizeState) {
166
166
  distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.TABLE_CONTEXT_MENU, newResizeState)(state, dispatch);
167
167
  return true;
@@ -187,7 +187,7 @@ export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorCo
187
187
  if (direction === 'row') {
188
188
  deleteRowsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect, !!isHeaderRowRequired)(state, dispatch);
189
189
  } else {
190
- deleteColumnsWithAnalytics(editorAnalyticsAPI, tablePreserveWidth)(INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect)(state, dispatch, editorView);
190
+ deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect !== null && selectionRect !== void 0 ? selectionRect : defaultSelectionRect)(state, dispatch, editorView);
191
191
  }
192
192
  return true;
193
193
  },