@atlaskit/editor-plugin-table 5.4.18 → 5.4.20
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 +12 -0
- package/dist/cjs/plugins/table/index.js +1 -0
- package/dist/cjs/plugins/table/nodeviews/TableComponent.js +5 -2
- package/dist/cjs/plugins/table/nodeviews/table.js +7 -2
- package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/actions.js +2 -1
- package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/consts.js +3 -2
- package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/plugin.js +38 -14
- package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/reducer.js +2 -0
- package/dist/cjs/plugins/table/ui/DragHandle/HandleIconComponent.js +4 -2
- package/dist/cjs/plugins/table/ui/DragHandle/index.js +16 -4
- package/dist/cjs/plugins/table/ui/FloatingDragMenu/DragMenu.js +3 -2
- package/dist/cjs/plugins/table/ui/FloatingDragMenu/index.js +4 -2
- package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +6 -3
- package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/index.js +4 -2
- package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +5 -3
- package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +7 -4
- package/dist/cjs/plugins/table/utils/drag-menu.js +10 -6
- package/dist/es2019/plugins/table/index.js +1 -0
- package/dist/es2019/plugins/table/nodeviews/TableComponent.js +5 -2
- package/dist/es2019/plugins/table/nodeviews/table.js +7 -2
- package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/actions.js +2 -1
- package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/consts.js +2 -1
- package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/plugin.js +39 -15
- package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/reducer.js +5 -0
- package/dist/es2019/plugins/table/ui/DragHandle/HandleIconComponent.js +3 -1
- package/dist/es2019/plugins/table/ui/DragHandle/index.js +15 -4
- package/dist/es2019/plugins/table/ui/FloatingDragMenu/DragMenu.js +3 -2
- package/dist/es2019/plugins/table/ui/FloatingDragMenu/index.js +4 -2
- package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +6 -3
- package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/index.js +4 -2
- package/dist/es2019/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +5 -3
- package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +7 -4
- package/dist/es2019/plugins/table/utils/drag-menu.js +6 -6
- package/dist/esm/plugins/table/index.js +1 -0
- package/dist/esm/plugins/table/nodeviews/TableComponent.js +5 -2
- package/dist/esm/plugins/table/nodeviews/table.js +7 -2
- package/dist/esm/plugins/table/pm-plugins/drag-and-drop/actions.js +2 -1
- package/dist/esm/plugins/table/pm-plugins/drag-and-drop/consts.js +2 -1
- package/dist/esm/plugins/table/pm-plugins/drag-and-drop/plugin.js +39 -15
- package/dist/esm/plugins/table/pm-plugins/drag-and-drop/reducer.js +2 -0
- package/dist/esm/plugins/table/ui/DragHandle/HandleIconComponent.js +4 -2
- package/dist/esm/plugins/table/ui/DragHandle/index.js +16 -4
- package/dist/esm/plugins/table/ui/FloatingDragMenu/DragMenu.js +3 -2
- package/dist/esm/plugins/table/ui/FloatingDragMenu/index.js +4 -2
- package/dist/esm/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +6 -3
- package/dist/esm/plugins/table/ui/TableFloatingColumnControls/index.js +4 -2
- package/dist/esm/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +5 -3
- package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +7 -4
- package/dist/esm/plugins/table/utils/drag-menu.js +10 -6
- package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +1 -0
- package/dist/types/plugins/table/pm-plugins/drag-and-drop/actions.d.ts +4 -1
- package/dist/types/plugins/table/pm-plugins/drag-and-drop/consts.d.ts +1 -0
- package/dist/types/plugins/table/pm-plugins/drag-and-drop/plugin.d.ts +2 -1
- package/dist/types/plugins/table/pm-plugins/drag-and-drop/types.d.ts +1 -0
- package/dist/types/plugins/table/ui/DragHandle/HandleIconComponent.d.ts +1 -0
- package/dist/types/plugins/table/ui/DragHandle/index.d.ts +2 -1
- package/dist/types/plugins/table/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
- package/dist/types/plugins/table/ui/FloatingDragMenu/index.d.ts +2 -1
- package/dist/types/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +2 -1
- package/dist/types/plugins/table/ui/TableFloatingColumnControls/index.d.ts +1 -0
- package/dist/types/plugins/table/ui/TableFloatingControls/RowControls/DragControls.d.ts +1 -0
- package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +1 -0
- package/dist/types/plugins/table/utils/drag-menu.d.ts +1 -1
- package/dist/types-ts4.5/plugins/table/nodeviews/TableComponent.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/pm-plugins/drag-and-drop/actions.d.ts +4 -1
- package/dist/types-ts4.5/plugins/table/pm-plugins/drag-and-drop/consts.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/pm-plugins/drag-and-drop/plugin.d.ts +2 -1
- package/dist/types-ts4.5/plugins/table/pm-plugins/drag-and-drop/types.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/ui/DragHandle/HandleIconComponent.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/ui/DragHandle/index.d.ts +2 -1
- package/dist/types-ts4.5/plugins/table/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
- package/dist/types-ts4.5/plugins/table/ui/FloatingDragMenu/index.d.ts +2 -1
- package/dist/types-ts4.5/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +2 -1
- package/dist/types-ts4.5/plugins/table/ui/TableFloatingColumnControls/index.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/RowControls/DragControls.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/index.d.ts +1 -0
- package/dist/types-ts4.5/plugins/table/utils/drag-menu.d.ts +1 -1
- package/package.json +1 -1
- package/src/__tests__/unit/pm-plugins/drag-and-drop/plugin.ts +112 -0
- package/src/plugins/table/index.tsx +1 -0
- package/src/plugins/table/nodeviews/TableComponent.tsx +4 -0
- package/src/plugins/table/nodeviews/table.tsx +4 -0
- package/src/plugins/table/pm-plugins/drag-and-drop/actions.ts +9 -1
- package/src/plugins/table/pm-plugins/drag-and-drop/consts.ts +2 -0
- package/src/plugins/table/pm-plugins/drag-and-drop/plugin.ts +49 -17
- package/src/plugins/table/pm-plugins/drag-and-drop/reducer.ts +5 -0
- package/src/plugins/table/pm-plugins/drag-and-drop/types.ts +1 -0
- package/src/plugins/table/ui/DragHandle/HandleIconComponent.tsx +5 -1
- package/src/plugins/table/ui/DragHandle/index.tsx +15 -2
- package/src/plugins/table/ui/FloatingDragMenu/DragMenu.tsx +3 -1
- package/src/plugins/table/ui/FloatingDragMenu/index.tsx +3 -0
- package/src/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.tsx +5 -1
- package/src/plugins/table/ui/TableFloatingColumnControls/index.tsx +3 -0
- package/src/plugins/table/ui/TableFloatingControls/RowControls/DragControls.tsx +5 -2
- package/src/plugins/table/ui/TableFloatingControls/index.tsx +6 -1
- package/src/plugins/table/utils/drag-menu.ts +6 -6
|
@@ -25,7 +25,9 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
25
25
|
onMouseOut = _ref.onMouseOut,
|
|
26
26
|
_onMouseUp = _ref.onMouseUp,
|
|
27
27
|
onClick = _ref.onClick,
|
|
28
|
-
editorView = _ref.editorView
|
|
28
|
+
editorView = _ref.editorView,
|
|
29
|
+
_ref$canDrag = _ref.canDrag,
|
|
30
|
+
_canDrag = _ref$canDrag === void 0 ? false : _ref$canDrag;
|
|
29
31
|
var dragHandleDivRef = useRef(null);
|
|
30
32
|
var _useState = useState(null),
|
|
31
33
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -48,6 +50,7 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
48
50
|
return direction === 'row' ? hasMergedCellsInRow(indexes[0])(selection) : hasMergedCellsInColumn(indexes[0])(selection);
|
|
49
51
|
}, [indexes, direction, selection]);
|
|
50
52
|
var handleIconProps = {
|
|
53
|
+
canDrag: _canDrag,
|
|
51
54
|
hasMergedCells: hasMergedCells,
|
|
52
55
|
direction: direction,
|
|
53
56
|
isDragMenuOpen: isDragMenuOpen,
|
|
@@ -63,7 +66,7 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
63
66
|
return draggable({
|
|
64
67
|
element: dragHandleDivRefCurrent,
|
|
65
68
|
canDrag: function canDrag() {
|
|
66
|
-
return !hasMergedCells;
|
|
69
|
+
return _canDrag && !hasMergedCells;
|
|
67
70
|
},
|
|
68
71
|
getInitialData: function getInitialData() {
|
|
69
72
|
return {
|
|
@@ -78,6 +81,15 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
78
81
|
getOffset: function getOffset(_ref3) {
|
|
79
82
|
var container = _ref3.container;
|
|
80
83
|
var rect = container.getBoundingClientRect();
|
|
84
|
+
if (browser.safari) {
|
|
85
|
+
// See: https://product-fabric.atlassian.net/browse/ED-21442
|
|
86
|
+
// We need to ensure that the preview is not overlaying screen content when the snapshot is taken, otherwise
|
|
87
|
+
// safari will composite the screen text elements into the bitmap snapshot. The container is a wrapper which is already
|
|
88
|
+
// positioned fixed at top/left 0.
|
|
89
|
+
// IMPORTANT: we must not exceed more then the width of the container off-screen otherwise not preview will
|
|
90
|
+
// be generated.
|
|
91
|
+
container.style.left = "-".concat(rect.width - 0.0001, "px");
|
|
92
|
+
}
|
|
81
93
|
if (direction === 'row') {
|
|
82
94
|
return {
|
|
83
95
|
x: 16,
|
|
@@ -102,9 +114,9 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
102
114
|
}
|
|
103
115
|
});
|
|
104
116
|
}
|
|
105
|
-
}, [tableLocalId, direction, indexes, editorView.state.selection, hasMergedCells]);
|
|
117
|
+
}, [tableLocalId, direction, indexes, editorView.state.selection, hasMergedCells, _canDrag]);
|
|
106
118
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
|
|
107
|
-
className: classnames(ClassName.DRAG_HANDLE_BUTTON_CONTAINER, appearance, _defineProperty({}, ClassName.DRAG_HANDLE_DISABLED, hasMergedCells)),
|
|
119
|
+
className: classnames(ClassName.DRAG_HANDLE_BUTTON_CONTAINER, appearance, _defineProperty({}, ClassName.DRAG_HANDLE_DISABLED, !_canDrag || hasMergedCells)),
|
|
108
120
|
ref: dragHandleDivRef,
|
|
109
121
|
style: {
|
|
110
122
|
transform: direction === 'column' ? 'none' : 'rotate(90deg)'
|
|
@@ -67,7 +67,8 @@ export var DragMenu = function DragMenu(_ref) {
|
|
|
67
67
|
boundariesElement = _ref.boundariesElement,
|
|
68
68
|
scrollableElement = _ref.scrollableElement,
|
|
69
69
|
targetCellPosition = _ref.targetCellPosition,
|
|
70
|
-
getEditorContainerWidth = _ref.getEditorContainerWidth
|
|
70
|
+
getEditorContainerWidth = _ref.getEditorContainerWidth,
|
|
71
|
+
canDrag = _ref.canDrag;
|
|
71
72
|
var tableMap = tableNode ? TableMap.get(tableNode) : undefined;
|
|
72
73
|
var state = editorView.state,
|
|
73
74
|
dispatch = editorView.dispatch;
|
|
@@ -75,7 +76,7 @@ export var DragMenu = function DragMenu(_ref) {
|
|
|
75
76
|
var selectionRect = isSelectionType(selection, 'cell') ? getSelectionRect(selection) : findCellRectClosestToPos(selection.$from);
|
|
76
77
|
var hasMergedCells = direction === 'row' ? hasMergedCellsInRow : hasMergedCellsInColumn;
|
|
77
78
|
var shouldMoveDisabled = index !== undefined && hasMergedCells(index)(selection);
|
|
78
|
-
var dragMenuConfig = getDragMenuConfig(direction, getEditorContainerWidth, shouldMoveDisabled, tableMap, index, targetCellPosition, selectionRect);
|
|
79
|
+
var dragMenuConfig = getDragMenuConfig(direction, getEditorContainerWidth, !!canDrag && !shouldMoveDisabled, tableMap, index, targetCellPosition, selectionRect);
|
|
79
80
|
var _convertToDropdownIte = convertToDropdownItems(dragMenuConfig),
|
|
80
81
|
menuItems = _convertToDropdownIte.menuItems,
|
|
81
82
|
menuCallback = _convertToDropdownIte.menuCallback;
|
|
@@ -16,7 +16,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
16
16
|
direction = _ref.direction,
|
|
17
17
|
index = _ref.index,
|
|
18
18
|
targetCellPosition = _ref.targetCellPosition,
|
|
19
|
-
getEditorContainerWidth = _ref.getEditorContainerWidth
|
|
19
|
+
getEditorContainerWidth = _ref.getEditorContainerWidth,
|
|
20
|
+
canDrag = _ref.canDrag;
|
|
20
21
|
if (!isOpen || !targetCellPosition || editorView.state.doc.nodeSize <= targetCellPosition) {
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
@@ -51,7 +52,8 @@ var FloatingDragMenu = function FloatingDragMenu(_ref) {
|
|
|
51
52
|
direction: direction,
|
|
52
53
|
index: index,
|
|
53
54
|
targetCellPosition: targetCellPosition,
|
|
54
|
-
getEditorContainerWidth: getEditorContainerWidth
|
|
55
|
+
getEditorContainerWidth: getEditorContainerWidth,
|
|
56
|
+
canDrag: canDrag
|
|
55
57
|
}));
|
|
56
58
|
};
|
|
57
59
|
FloatingDragMenu.displayName = 'FloatingDragMenu';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useMemo } from 'react';
|
|
2
|
+
import { tableCellMinWidth } from '@atlaskit/editor-common/styles';
|
|
2
3
|
import { CellSelection } from '@atlaskit/editor-tables';
|
|
3
4
|
import { getSelectionRect } from '@atlaskit/editor-tables/utils';
|
|
4
5
|
import { clearHoverSelection, hoverCell, hoverColumns, selectColumn } from '../../../commands';
|
|
@@ -29,7 +30,8 @@ export var ColumnControls = function ColumnControls(_ref) {
|
|
|
29
30
|
rowHeights = _ref.rowHeights,
|
|
30
31
|
colWidths = _ref.colWidths,
|
|
31
32
|
hasHeaderColumn = _ref.hasHeaderColumn,
|
|
32
|
-
isTableHovered = _ref.isTableHovered
|
|
33
|
+
isTableHovered = _ref.isTableHovered,
|
|
34
|
+
canDrag = _ref.canDrag;
|
|
33
35
|
var widths = (_colWidths$map$join = colWidths === null || colWidths === void 0 ? void 0 : colWidths.map(function (width) {
|
|
34
36
|
return width ? "".concat(width - 1, "px") : '0px';
|
|
35
37
|
}).join(' ')) !== null && _colWidths$map$join !== void 0 ? _colWidths$map$join : '0px';
|
|
@@ -139,14 +141,15 @@ export var ColumnControls = function ColumnControls(_ref) {
|
|
|
139
141
|
direction: "column",
|
|
140
142
|
tableLocalId: localId || '',
|
|
141
143
|
indexes: colIndexes,
|
|
142
|
-
previewWidth: (_colWidths = colWidths === null || colWidths === void 0 ? void 0 : colWidths[colIndex]) !== null && _colWidths !== void 0 ? _colWidths :
|
|
144
|
+
previewWidth: (_colWidths = colWidths === null || colWidths === void 0 ? void 0 : colWidths[colIndex]) !== null && _colWidths !== void 0 ? _colWidths : tableCellMinWidth,
|
|
143
145
|
previewHeight: previewHeight,
|
|
144
146
|
appearance: selectedColIndexes.includes(hoveredCell.colIndex) ? isInDanger ? 'danger' : 'selected' : 'default',
|
|
145
147
|
onClick: handleClick,
|
|
146
148
|
onMouseOver: handleMouseOver,
|
|
147
149
|
onMouseOut: handleMouseOut,
|
|
148
150
|
onMouseUp: handleMouseUp,
|
|
149
|
-
editorView: editorView
|
|
151
|
+
editorView: editorView,
|
|
152
|
+
canDrag: canDrag
|
|
150
153
|
}))));
|
|
151
154
|
};
|
|
152
155
|
export default ColumnControls;
|
|
@@ -19,7 +19,8 @@ export var TableFloatingColumnControls = function TableFloatingColumnControls(_r
|
|
|
19
19
|
stickyHeader = _ref.stickyHeader,
|
|
20
20
|
selection = _ref.selection,
|
|
21
21
|
isInDanger = _ref.isInDanger,
|
|
22
|
-
isTableHovered = _ref.isTableHovered
|
|
22
|
+
isTableHovered = _ref.isTableHovered,
|
|
23
|
+
canDrag = _ref.canDrag;
|
|
23
24
|
var _useState = useState({
|
|
24
25
|
width: 0,
|
|
25
26
|
height: 0
|
|
@@ -110,7 +111,8 @@ export var TableFloatingColumnControls = function TableFloatingColumnControls(_r
|
|
|
110
111
|
isInDanger: isInDanger,
|
|
111
112
|
rowHeights: rowHeights,
|
|
112
113
|
colWidths: colWidths,
|
|
113
|
-
hasHeaderColumn: hasHeaderColumn
|
|
114
|
+
hasHeaderColumn: hasHeaderColumn,
|
|
115
|
+
canDrag: canDrag
|
|
114
116
|
}), hasDropTargets && /*#__PURE__*/React.createElement(ColumnDropTargets, {
|
|
115
117
|
tableRef: tableRef,
|
|
116
118
|
stickyTop: tableActive ? stickyTop : undefined,
|
|
@@ -33,6 +33,7 @@ var DragControlsComponent = function DragControlsComponent(_ref) {
|
|
|
33
33
|
isInDanger = _ref.isInDanger,
|
|
34
34
|
isResizing = _ref.isResizing,
|
|
35
35
|
isTableHovered = _ref.isTableHovered,
|
|
36
|
+
canDrag = _ref.canDrag,
|
|
36
37
|
hoverRows = _ref.hoverRows,
|
|
37
38
|
selectRow = _ref.selectRow,
|
|
38
39
|
updateCellHoverLocation = _ref.updateCellHoverLocation;
|
|
@@ -132,11 +133,11 @@ var DragControlsComponent = function DragControlsComponent(_ref) {
|
|
|
132
133
|
"data-end-index": endIndex,
|
|
133
134
|
className: ClassName.DRAG_ROW_FLOATING_INSERT_DOT_WRAPPER,
|
|
134
135
|
contentEditable: false,
|
|
135
|
-
key: index
|
|
136
|
+
key: "insert-dot-".concat(index)
|
|
136
137
|
}, /*#__PURE__*/React.createElement("div", {
|
|
137
138
|
className: ClassName.DRAG_ROW_FLOATING_INSERT_DOT
|
|
138
139
|
})), isDragging && /*#__PURE__*/React.createElement(RowDropTarget, {
|
|
139
|
-
key: index,
|
|
140
|
+
key: "drop-target-".concat(index),
|
|
140
141
|
index: index,
|
|
141
142
|
localId: currentNodeLocalId,
|
|
142
143
|
style: {
|
|
@@ -168,7 +169,8 @@ var DragControlsComponent = function DragControlsComponent(_ref) {
|
|
|
168
169
|
onMouseOver: handleMouseOver,
|
|
169
170
|
onMouseOut: handleMouseOut,
|
|
170
171
|
onMouseUp: onMouseUp,
|
|
171
|
-
editorView: editorView
|
|
172
|
+
editorView: editorView,
|
|
173
|
+
canDrag: canDrag
|
|
172
174
|
})));
|
|
173
175
|
};
|
|
174
176
|
export var DragControls = injectIntl(DragControlsComponent);
|
|
@@ -126,8 +126,9 @@ var TableFloatingControls = /*#__PURE__*/function (_Component) {
|
|
|
126
126
|
headerRowHeight = _this$props2.headerRowHeight,
|
|
127
127
|
stickyHeader = _this$props2.stickyHeader,
|
|
128
128
|
hoveredCell = _this$props2.hoveredCell,
|
|
129
|
-
isTableHovered = _this$props2.isTableHovered
|
|
130
|
-
|
|
129
|
+
isTableHovered = _this$props2.isTableHovered,
|
|
130
|
+
canDrag = _this$props2.canDrag;
|
|
131
|
+
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 || canDrag !== nextProps.canDrag;
|
|
131
132
|
}
|
|
132
133
|
}, {
|
|
133
134
|
key: "componentWillUnmount",
|
|
@@ -154,7 +155,8 @@ var TableFloatingControls = /*#__PURE__*/function (_Component) {
|
|
|
154
155
|
stickyHeader = _this$props3.stickyHeader,
|
|
155
156
|
isDragAndDropEnabled = _this$props3.isDragAndDropEnabled,
|
|
156
157
|
hoveredCell = _this$props3.hoveredCell,
|
|
157
|
-
isTableHovered = _this$props3.isTableHovered
|
|
158
|
+
isTableHovered = _this$props3.isTableHovered,
|
|
159
|
+
canDrag = _this$props3.canDrag;
|
|
158
160
|
if (!tableRef) {
|
|
159
161
|
return null;
|
|
160
162
|
}
|
|
@@ -196,7 +198,8 @@ var TableFloatingControls = /*#__PURE__*/function (_Component) {
|
|
|
196
198
|
tableWidth: this.state.tableWrapperWidth,
|
|
197
199
|
hoverRows: this.hoverRows,
|
|
198
200
|
selectRow: this.selectRow,
|
|
199
|
-
updateCellHoverLocation: this.updateCellHoverLocation
|
|
201
|
+
updateCellHoverLocation: this.updateCellHoverLocation,
|
|
202
|
+
canDrag: canDrag
|
|
200
203
|
})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CornerControls, {
|
|
201
204
|
editorView: editorView,
|
|
202
205
|
tableRef: tableRef,
|
|
@@ -23,7 +23,7 @@ var canIncrease = function canIncrease(index) {
|
|
|
23
23
|
var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
24
24
|
return index !== undefined && index < max;
|
|
25
25
|
};
|
|
26
|
-
export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorContainerWidth,
|
|
26
|
+
export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorContainerWidth, canDrag, tableMap, index, targetCellPosition, selectionRect) {
|
|
27
27
|
var addOptions = direction === 'row' ? [{
|
|
28
28
|
label: 'above',
|
|
29
29
|
offset: 0,
|
|
@@ -48,27 +48,31 @@ export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorCo
|
|
|
48
48
|
var moveOptions = direction === 'row' ? [{
|
|
49
49
|
label: 'up',
|
|
50
50
|
offset: -1,
|
|
51
|
-
canMove:
|
|
51
|
+
canMove: function canMove(index) {
|
|
52
|
+
return canDrag && canDecrease(index);
|
|
53
|
+
},
|
|
52
54
|
icon: ArrowUpIcon
|
|
53
55
|
}, {
|
|
54
56
|
label: 'down',
|
|
55
57
|
offset: 1,
|
|
56
58
|
canMove: function canMove(index) {
|
|
57
59
|
var _tableMap$height;
|
|
58
|
-
return canIncrease(index, ((_tableMap$height = tableMap === null || tableMap === void 0 ? void 0 : tableMap.height) !== null && _tableMap$height !== void 0 ? _tableMap$height : 0) - 1);
|
|
60
|
+
return canDrag && canIncrease(index, ((_tableMap$height = tableMap === null || tableMap === void 0 ? void 0 : tableMap.height) !== null && _tableMap$height !== void 0 ? _tableMap$height : 0) - 1);
|
|
59
61
|
},
|
|
60
62
|
icon: ArrowDownIcon
|
|
61
63
|
}] : [{
|
|
62
64
|
label: 'left',
|
|
63
65
|
offset: -1,
|
|
64
|
-
canMove:
|
|
66
|
+
canMove: function canMove(index) {
|
|
67
|
+
return canDrag && canDecrease(index);
|
|
68
|
+
},
|
|
65
69
|
icon: ArrowLeftIcon
|
|
66
70
|
}, {
|
|
67
71
|
label: 'right',
|
|
68
72
|
offset: 1,
|
|
69
73
|
canMove: function canMove(index) {
|
|
70
74
|
var _tableMap$width;
|
|
71
|
-
return canIncrease(index, ((_tableMap$width = tableMap === null || tableMap === void 0 ? void 0 : tableMap.width) !== null && _tableMap$width !== void 0 ? _tableMap$width : 0) - 1);
|
|
75
|
+
return canDrag && canIncrease(index, ((_tableMap$width = tableMap === null || tableMap === void 0 ? void 0 : tableMap.width) !== null && _tableMap$width !== void 0 ? _tableMap$width : 0) - 1);
|
|
72
76
|
},
|
|
73
77
|
icon: ArrowRightIcon
|
|
74
78
|
}];
|
|
@@ -137,7 +141,7 @@ export var getDragMenuConfig = function getDragMenuConfig(direction, getEditorCo
|
|
|
137
141
|
return {
|
|
138
142
|
id: "move_".concat(direction, "_").concat(label),
|
|
139
143
|
title: "Move ".concat(direction, " ").concat(label),
|
|
140
|
-
disabled:
|
|
144
|
+
disabled: !canMove(index),
|
|
141
145
|
icon: icon,
|
|
142
146
|
onClick: function onClick(state, dispatch) {
|
|
143
147
|
if (canMove(index)) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
2
2
|
import type { TableDirection } from '../../types';
|
|
3
3
|
import type { DropTargetType } from './consts';
|
|
4
|
+
import type { DragAndDropPluginState } from './types';
|
|
4
5
|
export interface DragAndDropAction<T, D> {
|
|
5
6
|
type: T;
|
|
6
7
|
data: D;
|
|
@@ -9,6 +10,7 @@ export declare const DragAndDropActionType: {
|
|
|
9
10
|
readonly SET_DROP_TARGET: "SET_DROP_TARGET";
|
|
10
11
|
readonly CLEAR_DROP_TARGET: "CLEAR_DROP_TARGET";
|
|
11
12
|
readonly TOGGLE_DRAG_MENU: "TOGGLE_DRAG_MENU";
|
|
13
|
+
readonly UPDATE: "UPDATE";
|
|
12
14
|
};
|
|
13
15
|
export type DragAndDropSetDropTargetAction = DragAndDropAction<typeof DragAndDropActionType.SET_DROP_TARGET, {
|
|
14
16
|
type: DropTargetType;
|
|
@@ -23,4 +25,5 @@ export type DragAndDropToggleDragMenuAction = DragAndDropAction<typeof DragAndDr
|
|
|
23
25
|
direction: TableDirection;
|
|
24
26
|
index: number;
|
|
25
27
|
}>;
|
|
26
|
-
export type
|
|
28
|
+
export type DragAndDropUpdateAction = DragAndDropAction<typeof DragAndDropActionType.UPDATE, Partial<DragAndDropPluginState>>;
|
|
29
|
+
export type DragAndDropPluginAction = DragAndDropSetDropTargetAction | DragAndDropClearDropTargetAction | DragAndDropToggleDragMenuAction | DragAndDropUpdateAction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { Dispatch, EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
|
|
2
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
3
|
-
|
|
3
|
+
import type { DragAndDropPluginState } from './types';
|
|
4
|
+
export declare const createPlugin: (dispatch: Dispatch, eventDispatcher: EventDispatcher) => SafePlugin<DragAndDropPluginState>;
|
|
@@ -14,6 +14,7 @@ type DragHandleProps = {
|
|
|
14
14
|
onMouseOut?: MouseEventHandler;
|
|
15
15
|
onMouseUp?: MouseEventHandler;
|
|
16
16
|
editorView: EditorView;
|
|
17
|
+
canDrag?: boolean;
|
|
17
18
|
};
|
|
18
|
-
export declare const DragHandle: ({ tableLocalId, direction, appearance, indexes, previewWidth, previewHeight, onMouseOver, onMouseOut, onMouseUp, onClick, editorView, }: DragHandleProps) => JSX.Element;
|
|
19
|
+
export declare const DragHandle: ({ tableLocalId, direction, appearance, indexes, previewWidth, previewHeight, onMouseOver, onMouseOut, onMouseUp, onClick, editorView, canDrag, }: DragHandleProps) => JSX.Element;
|
|
19
20
|
export {};
|
|
@@ -17,6 +17,7 @@ type DragMenuProps = {
|
|
|
17
17
|
scrollableElement?: HTMLElement;
|
|
18
18
|
pluginConfig?: PluginConfig;
|
|
19
19
|
getEditorContainerWidth: GetEditorContainerWidth;
|
|
20
|
+
canDrag?: boolean;
|
|
20
21
|
};
|
|
21
|
-
export declare const DragMenu: ({ direction, index, isOpen, editorView, tableNode, mountPoint, boundariesElement, scrollableElement, targetCellPosition, getEditorContainerWidth, }: DragMenuProps) => jsx.JSX.Element | null;
|
|
22
|
+
export declare const DragMenu: ({ direction, index, isOpen, editorView, tableNode, mountPoint, boundariesElement, scrollableElement, targetCellPosition, getEditorContainerWidth, canDrag, }: DragMenuProps) => jsx.JSX.Element | null;
|
|
22
23
|
export {};
|
|
@@ -15,9 +15,10 @@ export interface Props {
|
|
|
15
15
|
index?: number;
|
|
16
16
|
targetCellPosition?: number;
|
|
17
17
|
getEditorContainerWidth: GetEditorContainerWidth;
|
|
18
|
+
canDrag?: boolean;
|
|
18
19
|
}
|
|
19
20
|
declare const FloatingDragMenu: {
|
|
20
|
-
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, tableRef, tableNode, direction, index, targetCellPosition, getEditorContainerWidth, }: Props): JSX.Element | null;
|
|
21
|
+
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, tableRef, tableNode, direction, index, targetCellPosition, getEditorContainerWidth, canDrag, }: Props): JSX.Element | null;
|
|
21
22
|
displayName: string;
|
|
22
23
|
};
|
|
23
24
|
export default FloatingDragMenu;
|
|
@@ -14,6 +14,7 @@ export interface ColumnControlsProps {
|
|
|
14
14
|
colWidths?: (number | undefined)[];
|
|
15
15
|
hasHeaderColumn?: boolean;
|
|
16
16
|
isTableHovered?: boolean;
|
|
17
|
+
canDrag?: boolean;
|
|
17
18
|
}
|
|
18
|
-
export declare const ColumnControls: ({ editorView, tableActive, tableRef, hoveredCell, isResizing, stickyTop, localId, isInDanger, rowHeights, colWidths, hasHeaderColumn, isTableHovered, }: ColumnControlsProps) => JSX.Element;
|
|
19
|
+
export declare const ColumnControls: ({ editorView, tableActive, tableRef, hoveredCell, isResizing, stickyTop, localId, isInDanger, rowHeights, colWidths, hasHeaderColumn, isTableHovered, canDrag, }: ColumnControlsProps) => JSX.Element;
|
|
19
20
|
export default ColumnControls;
|
|
@@ -22,6 +22,7 @@ export interface Props {
|
|
|
22
22
|
ordering?: TableColumnOrdering;
|
|
23
23
|
stickyHeader?: RowStickyState;
|
|
24
24
|
isTableHovered?: boolean;
|
|
25
|
+
canDrag?: boolean;
|
|
25
26
|
}
|
|
26
27
|
export declare const TableFloatingColumnControls: React.FC<Props>;
|
|
27
28
|
export default TableFloatingColumnControls;
|
|
@@ -13,6 +13,7 @@ type DragControlsProps = {
|
|
|
13
13
|
isInDanger?: boolean;
|
|
14
14
|
isResizing?: boolean;
|
|
15
15
|
isTableHovered?: boolean;
|
|
16
|
+
canDrag?: boolean;
|
|
16
17
|
hoverRows: (rows: number[], danger?: boolean) => void;
|
|
17
18
|
selectRow: (row: number, expand: boolean) => void;
|
|
18
19
|
updateCellHoverLocation: (rowIndex: number) => void;
|
|
@@ -7,4 +7,4 @@ export interface DragMenuConfig extends DropdownOptionT<Command> {
|
|
|
7
7
|
icon?: React.ComponentType<IconProps>;
|
|
8
8
|
keymap?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const getDragMenuConfig: (direction: TableDirection, getEditorContainerWidth: GetEditorContainerWidth,
|
|
10
|
+
export declare const getDragMenuConfig: (direction: TableDirection, getEditorContainerWidth: GetEditorContainerWidth, canDrag: boolean, tableMap?: TableMap, index?: number, targetCellPosition?: number, selectionRect?: Rect) => DragMenuConfig[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
2
2
|
import type { TableDirection } from '../../types';
|
|
3
3
|
import type { DropTargetType } from './consts';
|
|
4
|
+
import type { DragAndDropPluginState } from './types';
|
|
4
5
|
export interface DragAndDropAction<T, D> {
|
|
5
6
|
type: T;
|
|
6
7
|
data: D;
|
|
@@ -9,6 +10,7 @@ export declare const DragAndDropActionType: {
|
|
|
9
10
|
readonly SET_DROP_TARGET: "SET_DROP_TARGET";
|
|
10
11
|
readonly CLEAR_DROP_TARGET: "CLEAR_DROP_TARGET";
|
|
11
12
|
readonly TOGGLE_DRAG_MENU: "TOGGLE_DRAG_MENU";
|
|
13
|
+
readonly UPDATE: "UPDATE";
|
|
12
14
|
};
|
|
13
15
|
export type DragAndDropSetDropTargetAction = DragAndDropAction<typeof DragAndDropActionType.SET_DROP_TARGET, {
|
|
14
16
|
type: DropTargetType;
|
|
@@ -23,4 +25,5 @@ export type DragAndDropToggleDragMenuAction = DragAndDropAction<typeof DragAndDr
|
|
|
23
25
|
direction: TableDirection;
|
|
24
26
|
index: number;
|
|
25
27
|
}>;
|
|
26
|
-
export type
|
|
28
|
+
export type DragAndDropUpdateAction = DragAndDropAction<typeof DragAndDropActionType.UPDATE, Partial<DragAndDropPluginState>>;
|
|
29
|
+
export type DragAndDropPluginAction = DragAndDropSetDropTargetAction | DragAndDropClearDropTargetAction | DragAndDropToggleDragMenuAction | DragAndDropUpdateAction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { Dispatch, EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
|
|
2
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
3
|
-
|
|
3
|
+
import type { DragAndDropPluginState } from './types';
|
|
4
|
+
export declare const createPlugin: (dispatch: Dispatch, eventDispatcher: EventDispatcher) => SafePlugin<DragAndDropPluginState>;
|
|
@@ -14,6 +14,7 @@ type DragHandleProps = {
|
|
|
14
14
|
onMouseOut?: MouseEventHandler;
|
|
15
15
|
onMouseUp?: MouseEventHandler;
|
|
16
16
|
editorView: EditorView;
|
|
17
|
+
canDrag?: boolean;
|
|
17
18
|
};
|
|
18
|
-
export declare const DragHandle: ({ tableLocalId, direction, appearance, indexes, previewWidth, previewHeight, onMouseOver, onMouseOut, onMouseUp, onClick, editorView, }: DragHandleProps) => JSX.Element;
|
|
19
|
+
export declare const DragHandle: ({ tableLocalId, direction, appearance, indexes, previewWidth, previewHeight, onMouseOver, onMouseOut, onMouseUp, onClick, editorView, canDrag, }: DragHandleProps) => JSX.Element;
|
|
19
20
|
export {};
|
|
@@ -17,6 +17,7 @@ type DragMenuProps = {
|
|
|
17
17
|
scrollableElement?: HTMLElement;
|
|
18
18
|
pluginConfig?: PluginConfig;
|
|
19
19
|
getEditorContainerWidth: GetEditorContainerWidth;
|
|
20
|
+
canDrag?: boolean;
|
|
20
21
|
};
|
|
21
|
-
export declare const DragMenu: ({ direction, index, isOpen, editorView, tableNode, mountPoint, boundariesElement, scrollableElement, targetCellPosition, getEditorContainerWidth, }: DragMenuProps) => jsx.JSX.Element | null;
|
|
22
|
+
export declare const DragMenu: ({ direction, index, isOpen, editorView, tableNode, mountPoint, boundariesElement, scrollableElement, targetCellPosition, getEditorContainerWidth, canDrag, }: DragMenuProps) => jsx.JSX.Element | null;
|
|
22
23
|
export {};
|
|
@@ -15,9 +15,10 @@ export interface Props {
|
|
|
15
15
|
index?: number;
|
|
16
16
|
targetCellPosition?: number;
|
|
17
17
|
getEditorContainerWidth: GetEditorContainerWidth;
|
|
18
|
+
canDrag?: boolean;
|
|
18
19
|
}
|
|
19
20
|
declare const FloatingDragMenu: {
|
|
20
|
-
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, tableRef, tableNode, direction, index, targetCellPosition, getEditorContainerWidth, }: Props): JSX.Element | null;
|
|
21
|
+
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, tableRef, tableNode, direction, index, targetCellPosition, getEditorContainerWidth, canDrag, }: Props): JSX.Element | null;
|
|
21
22
|
displayName: string;
|
|
22
23
|
};
|
|
23
24
|
export default FloatingDragMenu;
|
package/dist/types-ts4.5/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface ColumnControlsProps {
|
|
|
14
14
|
colWidths?: (number | undefined)[];
|
|
15
15
|
hasHeaderColumn?: boolean;
|
|
16
16
|
isTableHovered?: boolean;
|
|
17
|
+
canDrag?: boolean;
|
|
17
18
|
}
|
|
18
|
-
export declare const ColumnControls: ({ editorView, tableActive, tableRef, hoveredCell, isResizing, stickyTop, localId, isInDanger, rowHeights, colWidths, hasHeaderColumn, isTableHovered, }: ColumnControlsProps) => JSX.Element;
|
|
19
|
+
export declare const ColumnControls: ({ editorView, tableActive, tableRef, hoveredCell, isResizing, stickyTop, localId, isInDanger, rowHeights, colWidths, hasHeaderColumn, isTableHovered, canDrag, }: ColumnControlsProps) => JSX.Element;
|
|
19
20
|
export default ColumnControls;
|
|
@@ -22,6 +22,7 @@ export interface Props {
|
|
|
22
22
|
ordering?: TableColumnOrdering;
|
|
23
23
|
stickyHeader?: RowStickyState;
|
|
24
24
|
isTableHovered?: boolean;
|
|
25
|
+
canDrag?: boolean;
|
|
25
26
|
}
|
|
26
27
|
export declare const TableFloatingColumnControls: React.FC<Props>;
|
|
27
28
|
export default TableFloatingColumnControls;
|
package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/RowControls/DragControls.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ type DragControlsProps = {
|
|
|
13
13
|
isInDanger?: boolean;
|
|
14
14
|
isResizing?: boolean;
|
|
15
15
|
isTableHovered?: boolean;
|
|
16
|
+
canDrag?: boolean;
|
|
16
17
|
hoverRows: (rows: number[], danger?: boolean) => void;
|
|
17
18
|
selectRow: (row: number, expand: boolean) => void;
|
|
18
19
|
updateCellHoverLocation: (rowIndex: number) => void;
|
|
@@ -7,4 +7,4 @@ export interface DragMenuConfig extends DropdownOptionT<Command> {
|
|
|
7
7
|
icon?: React.ComponentType<IconProps>;
|
|
8
8
|
keymap?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const getDragMenuConfig: (direction: TableDirection, getEditorContainerWidth: GetEditorContainerWidth,
|
|
10
|
+
export declare const getDragMenuConfig: (direction: TableDirection, getEditorContainerWidth: GetEditorContainerWidth, canDrag: boolean, tableMap?: TableMap, index?: number, targetCellPosition?: number, selectionRect?: Rect) => DragMenuConfig[];
|