@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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/commands/column-resize.js +3 -3
- package/dist/cjs/commands/delete.js +2 -2
- package/dist/cjs/commands/insert.js +15 -15
- package/dist/cjs/commands-with-analytics.js +7 -7
- package/dist/cjs/event-handlers.js +27 -11
- package/dist/cjs/nodeviews/OverflowShadowsObserver.js +24 -15
- package/dist/cjs/nodeviews/TableCell.js +5 -30
- package/dist/cjs/nodeviews/TableComponent.js +120 -83
- package/dist/cjs/nodeviews/TableContainer.js +23 -21
- package/dist/cjs/nodeviews/TableResizer.js +13 -13
- package/dist/cjs/nodeviews/table.js +9 -9
- package/dist/cjs/plugin.js +60 -59
- package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +13 -13
- package/dist/cjs/pm-plugins/keymap.js +6 -8
- package/dist/cjs/pm-plugins/main.js +7 -24
- package/dist/cjs/pm-plugins/sticky-headers/plugin.js +2 -3
- package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +12 -12
- package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +2 -2
- package/dist/cjs/pm-plugins/table-resizing/utils/consts.js +4 -2
- package/dist/cjs/pm-plugins/table-resizing/utils/index.js +2 -2
- package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +3 -3
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +3 -3
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +11 -12
- package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +13 -13
- package/dist/cjs/pm-plugins/table-width.js +6 -2
- package/dist/cjs/toolbar.js +21 -21
- package/dist/cjs/transforms/column-width.js +4 -4
- package/dist/cjs/transforms/delete-columns.js +2 -2
- package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
- package/dist/cjs/ui/FloatingContextualMenu/index.js +2 -4
- package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +2 -2
- package/dist/cjs/ui/FloatingDragMenu/index.js +6 -6
- package/dist/cjs/ui/FloatingInsertButton/index.js +6 -7
- package/dist/cjs/ui/TableFloatingColumnControls/index.js +8 -48
- package/dist/cjs/ui/TableFloatingControls/index.js +113 -223
- package/dist/cjs/utils/column-controls.js +5 -5
- package/dist/cjs/utils/create.js +2 -5
- package/dist/cjs/utils/dom.js +13 -15
- package/dist/cjs/utils/drag-menu.js +4 -4
- package/dist/es2019/commands/column-resize.js +3 -3
- package/dist/es2019/commands/delete.js +2 -2
- package/dist/es2019/commands/insert.js +12 -12
- package/dist/es2019/commands-with-analytics.js +6 -6
- package/dist/es2019/event-handlers.js +27 -11
- package/dist/es2019/nodeviews/OverflowShadowsObserver.js +24 -15
- package/dist/es2019/nodeviews/TableCell.js +1 -24
- package/dist/es2019/nodeviews/TableComponent.js +88 -63
- package/dist/es2019/nodeviews/TableContainer.js +20 -22
- package/dist/es2019/nodeviews/TableResizer.js +13 -13
- package/dist/es2019/nodeviews/table.js +9 -9
- package/dist/es2019/plugin.js +19 -20
- package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +6 -6
- package/dist/es2019/pm-plugins/keymap.js +5 -8
- package/dist/es2019/pm-plugins/main.js +6 -23
- package/dist/es2019/pm-plugins/sticky-headers/plugin.js +1 -1
- package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +5 -5
- package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +2 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/consts.js +3 -1
- package/dist/es2019/pm-plugins/table-resizing/utils/index.js +1 -1
- package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +2 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +3 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +12 -13
- package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +13 -13
- package/dist/es2019/pm-plugins/table-width.js +6 -2
- package/dist/es2019/toolbar.js +15 -15
- package/dist/es2019/transforms/column-width.js +5 -5
- package/dist/es2019/transforms/delete-columns.js +2 -2
- package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +9 -12
- package/dist/es2019/ui/FloatingContextualMenu/index.js +2 -4
- package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +2 -2
- package/dist/es2019/ui/FloatingDragMenu/index.js +5 -5
- package/dist/es2019/ui/FloatingInsertButton/index.js +5 -6
- package/dist/es2019/ui/TableFloatingColumnControls/index.js +5 -27
- package/dist/es2019/ui/TableFloatingControls/index.js +119 -193
- package/dist/es2019/utils/column-controls.js +6 -6
- package/dist/es2019/utils/create.js +2 -5
- package/dist/es2019/utils/dom.js +13 -15
- package/dist/es2019/utils/drag-menu.js +4 -4
- package/dist/esm/commands/column-resize.js +3 -3
- package/dist/esm/commands/delete.js +2 -2
- package/dist/esm/commands/insert.js +15 -15
- package/dist/esm/commands-with-analytics.js +7 -7
- package/dist/esm/event-handlers.js +27 -11
- package/dist/esm/nodeviews/OverflowShadowsObserver.js +24 -15
- package/dist/esm/nodeviews/TableCell.js +5 -30
- package/dist/esm/nodeviews/TableComponent.js +119 -82
- package/dist/esm/nodeviews/TableContainer.js +24 -22
- package/dist/esm/nodeviews/TableResizer.js +13 -13
- package/dist/esm/nodeviews/table.js +9 -9
- package/dist/esm/plugin.js +60 -59
- package/dist/esm/pm-plugins/drag-and-drop/plugin.js +13 -13
- package/dist/esm/pm-plugins/keymap.js +6 -8
- package/dist/esm/pm-plugins/main.js +7 -24
- package/dist/esm/pm-plugins/sticky-headers/plugin.js +2 -3
- package/dist/esm/pm-plugins/table-resizing/event-handlers.js +12 -12
- package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +2 -2
- package/dist/esm/pm-plugins/table-resizing/utils/consts.js +3 -1
- package/dist/esm/pm-plugins/table-resizing/utils/index.js +1 -1
- package/dist/esm/pm-plugins/table-resizing/utils/misc.js +2 -2
- package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +4 -3
- package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +13 -14
- package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +13 -13
- package/dist/esm/pm-plugins/table-width.js +6 -2
- package/dist/esm/toolbar.js +21 -21
- package/dist/esm/transforms/column-width.js +5 -5
- package/dist/esm/transforms/delete-columns.js +2 -2
- package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +53 -55
- package/dist/esm/ui/FloatingContextualMenu/index.js +2 -4
- package/dist/esm/ui/FloatingDragMenu/DragMenu.js +2 -2
- package/dist/esm/ui/FloatingDragMenu/index.js +6 -6
- package/dist/esm/ui/FloatingInsertButton/index.js +6 -7
- package/dist/esm/ui/TableFloatingColumnControls/index.js +8 -48
- package/dist/esm/ui/TableFloatingControls/index.js +113 -224
- package/dist/esm/utils/column-controls.js +6 -6
- package/dist/esm/utils/create.js +2 -5
- package/dist/esm/utils/dom.js +13 -15
- package/dist/esm/utils/drag-menu.js +4 -4
- package/dist/types/commands/column-resize.d.ts +1 -1
- package/dist/types/commands/delete.d.ts +1 -1
- package/dist/types/commands/insert.d.ts +7 -7
- package/dist/types/commands-with-analytics.d.ts +3 -3
- package/dist/types/event-handlers.d.ts +4 -5
- package/dist/types/nodeviews/OverflowShadowsObserver.d.ts +3 -1
- package/dist/types/nodeviews/TableCell.d.ts +1 -5
- package/dist/types/nodeviews/TableComponent.d.ts +6 -3
- package/dist/types/nodeviews/TableContainer.d.ts +6 -4
- package/dist/types/nodeviews/TableResizer.d.ts +2 -2
- package/dist/types/nodeviews/table.d.ts +1 -1
- package/dist/types/nodeviews/types.d.ts +1 -0
- package/dist/types/plugin.d.ts +1 -0
- package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
- package/dist/types/pm-plugins/keymap.d.ts +2 -2
- package/dist/types/pm-plugins/main.d.ts +1 -1
- package/dist/types/pm-plugins/sticky-headers/plugin.d.ts +2 -3
- package/dist/types/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
- package/dist/types/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
- package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
- package/dist/types/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
- package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
- package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
- package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
- package/dist/types/pm-plugins/table-width.d.ts +1 -2
- package/dist/types/toolbar.d.ts +2 -2
- package/dist/types/transforms/column-width.d.ts +1 -1
- package/dist/types/transforms/delete-columns.d.ts +1 -1
- package/dist/types/types.d.ts +1 -3
- package/dist/types/ui/FloatingContextualMenu/index.d.ts +1 -1
- package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
- package/dist/types/ui/FloatingDragMenu/index.d.ts +2 -3
- package/dist/types/ui/FloatingInsertButton/index.d.ts +1 -2
- package/dist/types/ui/TableFloatingColumnControls/index.d.ts +2 -1
- package/dist/types/ui/TableFloatingControls/index.d.ts +5 -22
- package/dist/types/utils/create.d.ts +1 -2
- package/dist/types/utils/dom.d.ts +10 -2
- package/dist/types/utils/drag-menu.d.ts +1 -1
- package/dist/types-ts4.5/commands/column-resize.d.ts +1 -1
- package/dist/types-ts4.5/commands/delete.d.ts +1 -1
- package/dist/types-ts4.5/commands/insert.d.ts +7 -7
- package/dist/types-ts4.5/commands-with-analytics.d.ts +3 -3
- package/dist/types-ts4.5/event-handlers.d.ts +4 -5
- package/dist/types-ts4.5/nodeviews/OverflowShadowsObserver.d.ts +3 -1
- package/dist/types-ts4.5/nodeviews/TableCell.d.ts +1 -5
- package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +6 -3
- package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +6 -4
- package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -2
- package/dist/types-ts4.5/nodeviews/table.d.ts +1 -1
- package/dist/types-ts4.5/nodeviews/types.d.ts +1 -0
- package/dist/types-ts4.5/plugin.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +1 -2
- package/dist/types-ts4.5/pm-plugins/keymap.d.ts +2 -2
- package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/sticky-headers/plugin.d.ts +2 -3
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/misc.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +4 -4
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +4 -4
- package/dist/types-ts4.5/pm-plugins/table-width.d.ts +1 -2
- package/dist/types-ts4.5/toolbar.d.ts +2 -2
- package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
- package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
- package/dist/types-ts4.5/types.d.ts +1 -3
- package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
- package/dist/types-ts4.5/ui/FloatingDragMenu/index.d.ts +2 -3
- package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +1 -2
- package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +5 -22
- package/dist/types-ts4.5/utils/create.d.ts +1 -2
- package/dist/types-ts4.5/utils/dom.d.ts +10 -2
- package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
- package/package.json +3 -4
- package/src/commands/column-resize.ts +4 -3
- package/src/commands/delete.ts +2 -2
- package/src/commands/insert.ts +15 -27
- package/src/commands-with-analytics.ts +6 -9
- package/src/event-handlers.ts +107 -105
- package/src/nodeviews/OverflowShadowsObserver.ts +32 -21
- package/src/nodeviews/TableCell.ts +0 -26
- package/src/nodeviews/TableComponent.tsx +107 -78
- package/src/nodeviews/TableContainer.tsx +26 -32
- package/src/nodeviews/TableResizer.tsx +15 -18
- package/src/nodeviews/table.tsx +6 -5
- package/src/nodeviews/types.ts +1 -0
- package/src/plugin.tsx +17 -32
- package/src/pm-plugins/drag-and-drop/plugin.ts +10 -15
- package/src/pm-plugins/keymap.ts +6 -13
- package/src/pm-plugins/main.ts +6 -25
- package/src/pm-plugins/sticky-headers/plugin.ts +2 -11
- package/src/pm-plugins/table-resizing/event-handlers.ts +6 -4
- package/src/pm-plugins/table-resizing/utils/colgroup.ts +2 -2
- package/src/pm-plugins/table-resizing/utils/consts.ts +2 -0
- package/src/pm-plugins/table-resizing/utils/index.ts +1 -1
- package/src/pm-plugins/table-resizing/utils/misc.ts +2 -2
- package/src/pm-plugins/table-resizing/utils/resize-column.ts +5 -2
- package/src/pm-plugins/table-resizing/utils/resize-state.ts +18 -13
- package/src/pm-plugins/table-resizing/utils/scale-table.ts +14 -14
- package/src/pm-plugins/table-width.ts +4 -6
- package/src/toolbar.tsx +16 -19
- package/src/transforms/column-width.ts +7 -6
- package/src/transforms/delete-columns.ts +2 -2
- package/src/types.ts +1 -4
- package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +11 -16
- package/src/ui/FloatingContextualMenu/index.tsx +0 -2
- package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -3
- package/src/ui/FloatingDragMenu/index.tsx +4 -8
- package/src/ui/FloatingInsertButton/index.tsx +11 -22
- package/src/ui/TableFloatingColumnControls/index.tsx +5 -29
- package/src/ui/TableFloatingControls/index.tsx +155 -241
- package/src/utils/column-controls.ts +5 -6
- package/src/utils/create.ts +2 -5
- package/src/utils/dom.ts +12 -19
- 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
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
|
194
|
-
|
|
195
|
-
|
|
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(
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
height: 0
|
|
29
|
-
}),
|
|
22
|
+
getScrollOffset = _ref.getScrollOffset,
|
|
23
|
+
tableWrapperHeight = _ref.tableWrapperHeight;
|
|
24
|
+
var _useState = useState(false),
|
|
30
25
|
_useState2 = _slicedToArray(_useState, 2),
|
|
31
|
-
|
|
32
|
-
|
|
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 && !!
|
|
53
|
+
if (tableRef && !!tableWrapperHeight) {
|
|
94
54
|
return getRowHeights(tableRef);
|
|
95
55
|
}
|
|
96
56
|
return [0];
|
|
97
|
-
}, [tableRef,
|
|
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:
|
|
94
|
+
tableHeight: tableWrapperHeight,
|
|
135
95
|
localId: currentNodeLocalId,
|
|
136
96
|
colWidths: colWidths,
|
|
137
97
|
getScrollOffset: getScrollOffset
|
|
@@ -1,235 +1,124 @@
|
|
|
1
|
-
import
|
|
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 =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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,
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var cellRef = findDomRefAtPos(
|
|
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 +=
|
|
28
|
+
i += node.attrs.colspan - 1;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
package/dist/esm/utils/create.js
CHANGED
|
@@ -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(
|
|
6
|
+
export var createTableWithWidth = function createTableWithWidth(isTableScalingEnabled, isFullWidthModeEnabled, createTableProps) {
|
|
7
7
|
return function (schema) {
|
|
8
|
-
|
|
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
|
package/dist/esm/utils/dom.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
104
|
-
|
|
105
|
-
|
|
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
|
|
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(
|
|
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,
|
|
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,
|
|
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
|
},
|