@atlaskit/editor-plugin-table 7.21.3 → 7.21.5
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 +22 -0
- package/dist/cjs/nodeviews/TableComponent.js +17 -2
- package/dist/cjs/pm-plugins/keymap.js +4 -6
- package/dist/cjs/pm-plugins/main.js +1 -1
- package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +40 -12
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +99 -51
- package/dist/cjs/toolbar.js +4 -1
- package/dist/cjs/ui/ColumnResizeWidget/index.js +4 -1
- package/dist/cjs/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
- package/dist/cjs/ui/FloatingContextualButton/index.js +4 -1
- package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
- package/dist/cjs/ui/FloatingContextualMenu/index.js +4 -1
- package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +4 -1
- package/dist/cjs/utils/alignment.js +1 -1
- package/dist/es2019/nodeviews/TableComponent.js +17 -2
- package/dist/es2019/pm-plugins/keymap.js +4 -6
- package/dist/es2019/pm-plugins/main.js +1 -1
- package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +41 -13
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +97 -48
- package/dist/es2019/toolbar.js +4 -1
- package/dist/es2019/ui/ColumnResizeWidget/index.js +4 -1
- package/dist/es2019/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
- package/dist/es2019/ui/FloatingContextualButton/index.js +4 -1
- package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
- package/dist/es2019/ui/FloatingContextualMenu/index.js +4 -1
- package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +4 -1
- package/dist/es2019/utils/alignment.js +1 -1
- package/dist/esm/nodeviews/TableComponent.js +17 -2
- package/dist/esm/pm-plugins/keymap.js +4 -6
- package/dist/esm/pm-plugins/main.js +1 -1
- package/dist/esm/pm-plugins/table-resizing/event-handlers.js +40 -12
- package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +99 -51
- package/dist/esm/toolbar.js +4 -1
- package/dist/esm/ui/ColumnResizeWidget/index.js +4 -1
- package/dist/esm/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +4 -1
- package/dist/esm/ui/FloatingContextualButton/index.js +4 -1
- package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +4 -1
- package/dist/esm/ui/FloatingContextualMenu/index.js +4 -1
- package/dist/esm/ui/FloatingDragMenu/DragMenu.js +4 -1
- package/dist/esm/utils/alignment.js +1 -1
- package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +23 -1
- package/dist/types/ui/ColumnResizeWidget/index.d.ts +4 -1
- package/dist/types/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +4 -1
- package/dist/types/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -1
- package/dist/types/ui/FloatingContextualMenu/index.d.ts +4 -1
- package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +4 -1
- package/dist/types/utils/alignment.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +23 -1
- package/dist/types-ts4.5/ui/ColumnResizeWidget/index.d.ts +4 -1
- package/dist/types-ts4.5/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +4 -1
- package/dist/types-ts4.5/ui/FloatingContextualMenu/ContextualMenu.d.ts +4 -1
- package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +4 -1
- package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +4 -1
- package/dist/types-ts4.5/utils/alignment.d.ts +1 -1
- package/package.json +6 -6
- package/src/nodeviews/TableComponent.tsx +14 -0
- package/src/pm-plugins/keymap.ts +30 -32
- package/src/pm-plugins/main.ts +3 -1
- package/src/pm-plugins/table-resizing/event-handlers.ts +37 -25
- package/src/pm-plugins/table-resizing/utils/resize-column.ts +142 -70
- package/src/toolbar.tsx +4 -1
- package/src/ui/ColumnResizeWidget/index.tsx +4 -1
- package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +4 -1
- package/src/ui/FloatingContextualButton/index.tsx +4 -1
- package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +4 -1
- package/src/ui/FloatingContextualMenu/index.tsx +4 -1
- package/src/ui/FloatingDragMenu/DragMenu.tsx +4 -1
- package/src/utils/alignment.ts +8 -6
|
@@ -3,9 +3,10 @@ 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
|
// Resize a given column by an amount from the current state
|
|
5
5
|
|
|
6
|
+
import { akEditorFullWidthLayoutWidth, akEditorGutterPaddingDynamic } from '@atlaskit/editor-shared-styles';
|
|
6
7
|
import { TableCssClassName as ClassName } from '../../../types';
|
|
7
8
|
import { ALIGN_CENTER, ALIGN_START, shouldChangeAlignmentToCenterResized } from '../../../utils/alignment';
|
|
8
|
-
import {
|
|
9
|
+
import { getTableScalingPercent } from './misc';
|
|
9
10
|
import { growColumn, shrinkColumn, updateAffectedColumn } from './resize-logic';
|
|
10
11
|
import { updateColgroup } from './resize-state';
|
|
11
12
|
export var resizeColumn = function resizeColumn(resizeState, colIndex, amount, tableRef, tableNode, selectedColumns) {
|
|
@@ -21,68 +22,115 @@ export var resizeColumn = function resizeColumn(resizeState, colIndex, amount, t
|
|
|
21
22
|
updateColgroup(newState, tableRef, tableNode, isTableScalingEnabled, shouldUseIncreasedScalingPercent);
|
|
22
23
|
return newState;
|
|
23
24
|
};
|
|
25
|
+
export var resizeColumnAndTable = function resizeColumnAndTable(_ref) {
|
|
26
|
+
var resizeState = _ref.resizeState,
|
|
27
|
+
colIndex = _ref.colIndex,
|
|
28
|
+
amount = _ref.amount,
|
|
29
|
+
tableRef = _ref.tableRef,
|
|
30
|
+
tableNode = _ref.tableNode,
|
|
31
|
+
lineLength = _ref.lineLength,
|
|
32
|
+
editorWidth = _ref.width,
|
|
33
|
+
isTableAlignmentEnabled = _ref.isTableAlignmentEnabled;
|
|
34
|
+
var editorContainerWidth = getEditorContainerWidth(editorWidth);
|
|
35
|
+
var isTableLeftAligned = tableNode.attrs.layout === ALIGN_START;
|
|
36
|
+
var resizeAmount = isTableLeftAligned ? amount : amount * 2;
|
|
37
|
+
var willTableHitEditorEdge = resizeState.maxSize + resizeAmount > editorContainerWidth;
|
|
38
|
+
var willResizedTableStayInOverflow = resizeState.overflow && resizeState.tableWidth + resizeAmount / 2 > resizeState.maxSize;
|
|
24
39
|
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
var isOverflowed = !!(tableWidth && tableContainerWidth && tableWidth > tableContainerWidth);
|
|
37
|
-
var resizeAmount = tableNode.attrs.layout === ALIGN_START && !isOverflowed ? amount : amount * 2;
|
|
38
|
-
|
|
39
|
-
// todo: reimplement - use getTableScalingPercentFrozen to get scaled percent before table width changes dynamically
|
|
40
|
-
// let scalePercent = 1;
|
|
41
|
-
// if (isTableScalingEnabled) {
|
|
42
|
-
// import from ./misc
|
|
43
|
-
// scalePercent = getStaticTableScalingPercent(
|
|
44
|
-
// tableNode,
|
|
45
|
-
// originalTableWidth || resizeState.maxSize,
|
|
46
|
-
// );
|
|
47
|
-
// resizeAmount = amount / scalePercent;
|
|
48
|
-
// }
|
|
49
|
-
|
|
50
|
-
// need to look at the resize amount and try to adjust the colgroups
|
|
51
|
-
if (isOverflowed) {
|
|
52
|
-
resizeAmount = amount < 0 ? amount : resizeAmount - (tableNode.attrs.width + resizeAmount - tableContainerWidth) / 2;
|
|
40
|
+
// STEP 1: Update col width
|
|
41
|
+
if (willTableHitEditorEdge || willResizedTableStayInOverflow) {
|
|
42
|
+
var _tableRef$closest;
|
|
43
|
+
var tableContainerWidth = (_tableRef$closest = tableRef.closest('.pm-table-container')) === null || _tableRef$closest === void 0 ? void 0 : _tableRef$closest.clientWidth;
|
|
44
|
+
resizeAmount = amount < 0 ? amount : resizeAmount - (resizeState.maxSize + resizeAmount - tableContainerWidth) / 2;
|
|
45
|
+
}
|
|
46
|
+
if (!willResizedTableStayInOverflow && !willTableHitEditorEdge) {
|
|
47
|
+
var diff = -(resizeState.tableWidth - resizeState.maxSize);
|
|
48
|
+
var rest = amount - diff;
|
|
49
|
+
var final = isTableLeftAligned ? diff + rest : diff + rest * 2;
|
|
50
|
+
resizeAmount = final;
|
|
53
51
|
}
|
|
54
52
|
var newState = updateAffectedColumn(resizeState, colIndex, resizeAmount);
|
|
55
53
|
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
updateColgroup(newState, tableRef, tableNode, false, shouldUseIncreasedScalingPercent);
|
|
59
|
-
|
|
60
|
-
// use the difference in width from affected column to update overall table width
|
|
54
|
+
// STEP 2: Update table container width
|
|
55
|
+
// columns have a min width, so delta !== resizeAmount when this is reached, use this for calculations
|
|
61
56
|
var delta = newState.cols[colIndex].width - resizeState.cols[colIndex].width;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
newState.maxSize = Math.round(resizeState.overflow ? willResizedTableStayInOverflow ?
|
|
58
|
+
// CASE 1A: table will stay in overflow
|
|
59
|
+
// do not grow the table because resize is happening in the overflow region
|
|
60
|
+
// and the overall table container needs to be retained
|
|
61
|
+
resizeState.maxSize :
|
|
62
|
+
// CASE 1B: table will no longer be in overflow, so adjust container width
|
|
63
|
+
// ensure the table is resized without any 'big jumps' by working out
|
|
64
|
+
// the difference between the new table width and the max size and adding the resize
|
|
65
|
+
resizeState.maxSize + (resizeState.tableWidth - resizeState.maxSize + delta) : willTableHitEditorEdge ?
|
|
66
|
+
// CASE 2: table will hit editor edge
|
|
67
|
+
editorContainerWidth :
|
|
68
|
+
// CASE 3: table is being resized from a non-overflow state
|
|
69
|
+
resizeState.maxSize + delta);
|
|
70
|
+
|
|
71
|
+
// do not apply scaling logic because resize state is already scaled
|
|
72
|
+
updateColgroup(newState, tableRef, tableNode, false, false);
|
|
73
|
+
if (!willTableHitEditorEdge && !willResizedTableStayInOverflow) {
|
|
74
|
+
updateTablePreview(tableRef, newState.maxSize, shouldChangeAlignmentToCenterResized(isTableAlignmentEnabled, tableNode, lineLength, newState.maxSize));
|
|
66
75
|
}
|
|
67
|
-
return
|
|
68
|
-
// resizeState.tableWidth sometimes is off by ~3px on load on resized table when !isOverflowed, using resizeState.maxSize instead
|
|
69
|
-
tableWidth: isOverflowed ? tableContainerWidth : resizeState.maxSize + delta
|
|
70
|
-
});
|
|
76
|
+
return newState;
|
|
71
77
|
};
|
|
72
|
-
var updateTablePreview = function updateTablePreview(
|
|
73
|
-
var
|
|
74
|
-
var resizingContainer = tableRef === null || tableRef === void 0 ? void 0 : tableRef.closest(".".concat(ClassName.TABLE_RESIZER_CONTAINER));
|
|
78
|
+
var updateTablePreview = function updateTablePreview(tableRef, newTableWidth, shouldChangeAlignment) {
|
|
79
|
+
var resizingContainer = tableRef.closest(".".concat(ClassName.TABLE_RESIZER_CONTAINER));
|
|
75
80
|
var resizingItem = resizingContainer === null || resizingContainer === void 0 ? void 0 : resizingContainer.querySelector('.resizer-item');
|
|
76
81
|
var alignmentContainer = resizingContainer === null || resizingContainer === void 0 ? void 0 : resizingContainer.parentElement;
|
|
77
82
|
if (resizingItem) {
|
|
78
|
-
var newWidth = "".concat(
|
|
79
|
-
if (tableRef) {
|
|
80
|
-
tableRef.style.width = newWidth;
|
|
81
|
-
}
|
|
83
|
+
var newWidth = "".concat(newTableWidth, "px");
|
|
82
84
|
resizingContainer.style.width = newWidth;
|
|
83
85
|
resizingItem.style.width = newWidth;
|
|
84
|
-
if (
|
|
85
|
-
alignmentContainer.style.justifyContent =
|
|
86
|
+
if (shouldChangeAlignment && alignmentContainer) {
|
|
87
|
+
alignmentContainer.style.justifyContent = ALIGN_CENTER;
|
|
86
88
|
}
|
|
87
89
|
}
|
|
90
|
+
};
|
|
91
|
+
var getEditorContainerWidth = function getEditorContainerWidth(editorWidth) {
|
|
92
|
+
return Math.min(editorWidth - akEditorGutterPaddingDynamic() * 2, akEditorFullWidthLayoutWidth);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Apply a scaling factor to resize state
|
|
97
|
+
*/
|
|
98
|
+
export var scaleResizeState = function scaleResizeState(_ref2) {
|
|
99
|
+
var resizeState = _ref2.resizeState,
|
|
100
|
+
tableRef = _ref2.tableRef,
|
|
101
|
+
tableNode = _ref2.tableNode,
|
|
102
|
+
editorWidth = _ref2.editorWidth;
|
|
103
|
+
// check if table is scaled, if not then avoid applying scaling values down
|
|
104
|
+
if (resizeState.maxSize < getEditorContainerWidth(editorWidth)) {
|
|
105
|
+
return resizeState;
|
|
106
|
+
}
|
|
107
|
+
var scalePercent = getTableScalingPercent(tableNode, tableRef);
|
|
108
|
+
var cols = resizeState.cols.map(function (col) {
|
|
109
|
+
return _objectSpread(_objectSpread({}, col), {}, {
|
|
110
|
+
width: Math.round(Math.max(col.width * scalePercent, col.minWidth))
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
var scaledTableWidth = Math.round(resizeState.tableWidth * scalePercent);
|
|
114
|
+
var calculatedTableWidth = cols.reduce(function (prev, curr) {
|
|
115
|
+
return prev + curr.width;
|
|
116
|
+
}, 0);
|
|
117
|
+
|
|
118
|
+
// using Math.round can cause the sum of col widths to be larger than the table width
|
|
119
|
+
// distribute the difference to the smallest column
|
|
120
|
+
if (calculatedTableWidth > scaledTableWidth) {
|
|
121
|
+
var diff = calculatedTableWidth - scaledTableWidth;
|
|
122
|
+
cols = cols.map(function (col) {
|
|
123
|
+
return col.width - diff >= col.minWidth ? _objectSpread(_objectSpread({}, col), {}, {
|
|
124
|
+
width: col.width - diff
|
|
125
|
+
}) : col;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return _objectSpread(_objectSpread({}, resizeState), {}, {
|
|
129
|
+
widths: cols.map(function (col) {
|
|
130
|
+
return col.width;
|
|
131
|
+
}),
|
|
132
|
+
tableWidth: scaledTableWidth,
|
|
133
|
+
maxSize: Math.round(resizeState.maxSize * scalePercent),
|
|
134
|
+
cols: cols
|
|
135
|
+
});
|
|
88
136
|
};
|
package/dist/esm/toolbar.js
CHANGED
|
@@ -3,7 +3,10 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
3
3
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
4
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
5
|
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; }
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* @jsxRuntime classic
|
|
8
|
+
* @jsx jsx
|
|
9
|
+
*/
|
|
7
10
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
8
11
|
import { jsx } from '@emotion/react';
|
|
9
12
|
import { TableSortOrder as SortOrder } from '@atlaskit/custom-steps';
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* @jsxRuntime classic
|
|
4
|
+
* @jsx jsx
|
|
5
|
+
*/
|
|
3
6
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
4
7
|
import { jsx } from '@emotion/react';
|
|
5
8
|
import { useIntl } from 'react-intl-next';
|
|
@@ -11,7 +11,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
11
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
12
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
13
13
|
/* eslint-disable @atlaskit/design-system/prefer-primitives */
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* @jsxRuntime classic
|
|
16
|
+
* @jsx jsx
|
|
17
|
+
*/
|
|
15
18
|
import React, { Component } from 'react';
|
|
16
19
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
17
20
|
import { jsx } from '@emotion/react';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
3
|
/* eslint-disable @atlaskit/design-system/prefer-primitives */
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* @jsxRuntime classic
|
|
6
|
+
* @jsx jsx
|
|
7
|
+
*/
|
|
5
8
|
/** @jsxFrag */
|
|
6
9
|
import React, { useEffect, useState } from 'react';
|
|
7
10
|
|
|
@@ -14,5 +14,5 @@ export var normaliseAlignment = function normaliseAlignment(layout) {
|
|
|
14
14
|
* We don't want to switch alignment in Full-width editor
|
|
15
15
|
*/
|
|
16
16
|
export var shouldChangeAlignmentToCenterResized = function shouldChangeAlignmentToCenterResized(isTableAlignmentEnabled, tableNode, lineLength, updatedTableWidth) {
|
|
17
|
-
return isTableAlignmentEnabled && tableNode && tableNode.attrs.layout === ALIGN_START && lineLength && updatedTableWidth > lineLength && lineLength < FULL_WIDTH_EDITOR_CONTENT_WIDTH;
|
|
17
|
+
return Boolean(isTableAlignmentEnabled && tableNode && tableNode.attrs.layout === ALIGN_START && lineLength && updatedTableWidth > lineLength && lineLength < FULL_WIDTH_EDITOR_CONTENT_WIDTH);
|
|
18
18
|
};
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
+
import { type EditorContainerWidth } from '@atlaskit/editor-common/types';
|
|
1
2
|
import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
3
|
import type { ResizeState } from './types';
|
|
3
4
|
export declare const resizeColumn: (resizeState: ResizeState, colIndex: number, amount: number, tableRef: HTMLElement | null, tableNode: PmNode, selectedColumns?: number[], isTableScalingEnabled?: boolean, shouldUseIncreasedScalingPercent?: boolean) => ResizeState;
|
|
4
|
-
|
|
5
|
+
type ResizeInformation = {
|
|
6
|
+
resizeState: ResizeState;
|
|
7
|
+
colIndex: number;
|
|
8
|
+
amount: number;
|
|
9
|
+
};
|
|
10
|
+
type TableReferences = {
|
|
11
|
+
tableRef: HTMLElement;
|
|
12
|
+
tableNode: PmNode;
|
|
13
|
+
};
|
|
14
|
+
type TableResizingPluginOptions = {
|
|
15
|
+
isTableAlignmentEnabled?: boolean;
|
|
16
|
+
};
|
|
17
|
+
type ResizeColumnAndTable = ResizeInformation & TableResizingPluginOptions & TableReferences & EditorContainerWidth;
|
|
18
|
+
export declare const resizeColumnAndTable: ({ resizeState, colIndex, amount, tableRef, tableNode, lineLength, width: editorWidth, isTableAlignmentEnabled, }: ResizeColumnAndTable) => ResizeState;
|
|
19
|
+
/**
|
|
20
|
+
* Apply a scaling factor to resize state
|
|
21
|
+
*/
|
|
22
|
+
export declare const scaleResizeState: ({ resizeState, tableRef, tableNode, editorWidth, }: TableReferences & {
|
|
23
|
+
resizeState: ResizeState;
|
|
24
|
+
editorWidth: number;
|
|
25
|
+
}) => ResizeState;
|
|
26
|
+
export {};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
2
5
|
import { jsx } from '@emotion/react';
|
|
3
6
|
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
4
7
|
import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
|
|
@@ -11,4 +11,4 @@ export declare const normaliseAlignment: (layout: TableLayout) => AlignmentOptio
|
|
|
11
11
|
/**
|
|
12
12
|
* We don't want to switch alignment in Full-width editor
|
|
13
13
|
*/
|
|
14
|
-
export declare const shouldChangeAlignmentToCenterResized: (isTableAlignmentEnabled: boolean | undefined, tableNode: PmNode, lineLength: number | undefined, updatedTableWidth: number) => boolean
|
|
14
|
+
export declare const shouldChangeAlignmentToCenterResized: (isTableAlignmentEnabled: boolean | undefined, tableNode: PmNode, lineLength: number | undefined, updatedTableWidth: number) => boolean;
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
+
import { type EditorContainerWidth } from '@atlaskit/editor-common/types';
|
|
1
2
|
import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
3
|
import type { ResizeState } from './types';
|
|
3
4
|
export declare const resizeColumn: (resizeState: ResizeState, colIndex: number, amount: number, tableRef: HTMLElement | null, tableNode: PmNode, selectedColumns?: number[], isTableScalingEnabled?: boolean, shouldUseIncreasedScalingPercent?: boolean) => ResizeState;
|
|
4
|
-
|
|
5
|
+
type ResizeInformation = {
|
|
6
|
+
resizeState: ResizeState;
|
|
7
|
+
colIndex: number;
|
|
8
|
+
amount: number;
|
|
9
|
+
};
|
|
10
|
+
type TableReferences = {
|
|
11
|
+
tableRef: HTMLElement;
|
|
12
|
+
tableNode: PmNode;
|
|
13
|
+
};
|
|
14
|
+
type TableResizingPluginOptions = {
|
|
15
|
+
isTableAlignmentEnabled?: boolean;
|
|
16
|
+
};
|
|
17
|
+
type ResizeColumnAndTable = ResizeInformation & TableResizingPluginOptions & TableReferences & EditorContainerWidth;
|
|
18
|
+
export declare const resizeColumnAndTable: ({ resizeState, colIndex, amount, tableRef, tableNode, lineLength, width: editorWidth, isTableAlignmentEnabled, }: ResizeColumnAndTable) => ResizeState;
|
|
19
|
+
/**
|
|
20
|
+
* Apply a scaling factor to resize state
|
|
21
|
+
*/
|
|
22
|
+
export declare const scaleResizeState: ({ resizeState, tableRef, tableNode, editorWidth, }: TableReferences & {
|
|
23
|
+
resizeState: ResizeState;
|
|
24
|
+
editorWidth: number;
|
|
25
|
+
}) => ResizeState;
|
|
26
|
+
export {};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
2
5
|
import { jsx } from '@emotion/react';
|
|
3
6
|
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
4
7
|
import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
|
|
@@ -11,4 +11,4 @@ export declare const normaliseAlignment: (layout: TableLayout) => AlignmentOptio
|
|
|
11
11
|
/**
|
|
12
12
|
* We don't want to switch alignment in Full-width editor
|
|
13
13
|
*/
|
|
14
|
-
export declare const shouldChangeAlignmentToCenterResized: (isTableAlignmentEnabled: boolean | undefined, tableNode: PmNode, lineLength: number | undefined, updatedTableWidth: number) => boolean
|
|
14
|
+
export declare const shouldChangeAlignmentToCenterResized: (isTableAlignmentEnabled: boolean | undefined, tableNode: PmNode, lineLength: number | undefined, updatedTableWidth: number) => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-table",
|
|
3
|
-
"version": "7.21.
|
|
3
|
+
"version": "7.21.5",
|
|
4
4
|
"description": "Table plugin for the @atlaskit/editor",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@atlaskit/adf-schema": "^39.0.3",
|
|
32
32
|
"@atlaskit/button": "^19.0.0",
|
|
33
33
|
"@atlaskit/custom-steps": "^0.4.0",
|
|
34
|
-
"@atlaskit/editor-common": "^86.
|
|
34
|
+
"@atlaskit/editor-common": "^86.5.0",
|
|
35
35
|
"@atlaskit/editor-palette": "1.6.0",
|
|
36
36
|
"@atlaskit/editor-plugin-accessibility-utils": "^1.1.0",
|
|
37
37
|
"@atlaskit/editor-plugin-analytics": "^1.4.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@atlaskit/editor-prosemirror": "4.0.1",
|
|
44
44
|
"@atlaskit/editor-shared-styles": "^2.13.0",
|
|
45
45
|
"@atlaskit/editor-tables": "^2.7.0",
|
|
46
|
-
"@atlaskit/icon": "^22.
|
|
46
|
+
"@atlaskit/icon": "^22.7.0",
|
|
47
47
|
"@atlaskit/menu": "^2.8.0",
|
|
48
48
|
"@atlaskit/platform-feature-flags": "^0.3.0",
|
|
49
49
|
"@atlaskit/pragmatic-drag-and-drop": "^1.2.0",
|
|
@@ -105,9 +105,6 @@
|
|
|
105
105
|
"platform_editor_lazy-node-views": {
|
|
106
106
|
"type": "boolean"
|
|
107
107
|
},
|
|
108
|
-
"platform.editor.a11y-help-dialog-shortcut-keys-position_aghfg": {
|
|
109
|
-
"type": "boolean"
|
|
110
|
-
},
|
|
111
108
|
"platform.editor.transform-slice-for-nested-expand": {
|
|
112
109
|
"type": "boolean"
|
|
113
110
|
},
|
|
@@ -128,6 +125,9 @@
|
|
|
128
125
|
},
|
|
129
126
|
"platform_editor_element_drag_and_drop_ed_24041": {
|
|
130
127
|
"type": "boolean"
|
|
128
|
+
},
|
|
129
|
+
"editor_react_18_fix_table_delete_col_decorations": {
|
|
130
|
+
"type": "boolean"
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
}
|
|
@@ -26,6 +26,7 @@ import type { CleanupFn } from '@atlaskit/pragmatic-drag-and-drop/types';
|
|
|
26
26
|
import { token } from '@atlaskit/tokens';
|
|
27
27
|
|
|
28
28
|
import { autoSizeTable, clearHoverSelection } from '../commands';
|
|
29
|
+
import { handleMouseOut, isTableInFocus } from '../event-handlers';
|
|
29
30
|
import { autoScrollerFactory } from '../pm-plugins/drag-and-drop/utils';
|
|
30
31
|
import { getPluginState } from '../pm-plugins/plugin-factory';
|
|
31
32
|
import type { RowStickyState, StickyPluginState } from '../pm-plugins/sticky-headers';
|
|
@@ -186,6 +187,13 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
|
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
189
|
|
|
190
|
+
private handleMouseOut = (event: Event) => {
|
|
191
|
+
if (!isTableInFocus(this.props.view)) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return handleMouseOut(this.props.view, event);
|
|
195
|
+
};
|
|
196
|
+
|
|
189
197
|
componentDidMount() {
|
|
190
198
|
const {
|
|
191
199
|
allowColumnResizing,
|
|
@@ -204,6 +212,9 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
|
|
|
204
212
|
this?.table?.addEventListener('mouseenter', this.handleMouseEnter);
|
|
205
213
|
}
|
|
206
214
|
}
|
|
215
|
+
if (fg('editor_react_18_fix_table_delete_col_decorations')) {
|
|
216
|
+
this?.table?.addEventListener('mouseout', this.handleMouseOut);
|
|
217
|
+
}
|
|
207
218
|
|
|
208
219
|
const { tableWithFixedColumnWidthsOption = false, stickyScrollbar } = getEditorFeatureFlags();
|
|
209
220
|
|
|
@@ -308,6 +319,9 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
|
|
|
308
319
|
if (fg('platform.editor.table.live-pages-sorting_4malx')) {
|
|
309
320
|
this?.table?.removeEventListener('mouseenter', this.handleMouseEnter);
|
|
310
321
|
}
|
|
322
|
+
if (fg('editor_react_18_fix_table_delete_col_decorations')) {
|
|
323
|
+
this?.table?.removeEventListener('mouseout', this.handleMouseOut);
|
|
324
|
+
}
|
|
311
325
|
|
|
312
326
|
if (this.overflowShadowsObserver) {
|
|
313
327
|
this.overflowShadowsObserver.dispose();
|
package/src/pm-plugins/keymap.ts
CHANGED
|
@@ -143,41 +143,39 @@ export function keymapPlugin(
|
|
|
143
143
|
list,
|
|
144
144
|
);
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
);
|
|
146
|
+
bindKeymapWithCommand(
|
|
147
|
+
addRowBeforeVO.common!,
|
|
148
|
+
addRowAroundSelection(editorAnalyticsAPI)('TOP'),
|
|
149
|
+
list,
|
|
150
|
+
);
|
|
152
151
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
bindKeymapWithCommand(
|
|
153
|
+
addRowAfterVO.common!,
|
|
154
|
+
addRowAroundSelection(editorAnalyticsAPI)('BOTTOM'),
|
|
155
|
+
list,
|
|
156
|
+
);
|
|
158
157
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
158
|
+
bindKeymapWithCommand(
|
|
159
|
+
addColumnBeforeVO.common!,
|
|
160
|
+
addColumnBeforeCommand(
|
|
161
|
+
isTableScalingEnabled,
|
|
162
|
+
isCellBackgroundDuplicated,
|
|
163
|
+
isTableFixedColumnWidthsOptionEnabled,
|
|
164
|
+
shouldUseIncreasedScalingPercent,
|
|
165
|
+
),
|
|
166
|
+
list,
|
|
167
|
+
);
|
|
169
168
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
169
|
+
bindKeymapWithCommand(
|
|
170
|
+
addColumnAfterVO.common!,
|
|
171
|
+
addColumnAfterCommand(
|
|
172
|
+
isTableScalingEnabled,
|
|
173
|
+
isCellBackgroundDuplicated,
|
|
174
|
+
isTableFixedColumnWidthsOptionEnabled,
|
|
175
|
+
shouldUseIncreasedScalingPercent,
|
|
176
|
+
),
|
|
177
|
+
list,
|
|
178
|
+
);
|
|
181
179
|
|
|
182
180
|
if (dragAndDropEnabled) {
|
|
183
181
|
// Move row/column shortcuts
|
package/src/pm-plugins/main.ts
CHANGED
|
@@ -374,7 +374,9 @@ export const createPlugin = (
|
|
|
374
374
|
mousedown: withCellTracking(handleMouseDown),
|
|
375
375
|
mouseover: withCellTracking(whenTableInFocus(handleMouseOver)),
|
|
376
376
|
mouseleave: handleMouseLeave,
|
|
377
|
-
mouseout:
|
|
377
|
+
mouseout: fg('editor_react_18_fix_table_delete_col_decorations')
|
|
378
|
+
? undefined
|
|
379
|
+
: whenTableInFocus(handleMouseOut),
|
|
378
380
|
mousemove: whenTableInFocus(handleMouseMove),
|
|
379
381
|
mouseenter: handleMouseEnter,
|
|
380
382
|
mouseup: whenTableInFocus(handleMouseUp),
|