@atlaskit/editor-plugin-table 5.3.22 → 5.3.24
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/nodeviews/TableRow.js +1 -1
- package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/cjs/plugins/table/pm-plugins/keymap.js +1 -1
- package/dist/cjs/plugins/table/ui/FloatingDragMenu/DragMenu.js +24 -6
- package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
- package/dist/es2019/plugins/table/nodeviews/TableRow.js +1 -1
- package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/es2019/plugins/table/pm-plugins/keymap.js +1 -1
- package/dist/es2019/plugins/table/ui/FloatingDragMenu/DragMenu.js +18 -6
- package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
- package/dist/esm/plugins/table/nodeviews/TableRow.js +1 -1
- package/dist/esm/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
- package/dist/esm/plugins/table/pm-plugins/keymap.js +1 -1
- package/dist/esm/plugins/table/ui/FloatingDragMenu/DragMenu.js +23 -6
- package/dist/esm/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
- package/package.json +3 -3
- package/src/__tests__/unit/analytics.ts +2 -1
- package/src/__tests__/unit/collab.ts +2 -1
- package/src/__tests__/unit/commands/go-to-next-cell.ts +1 -0
- package/src/__tests__/unit/commands/insert.ts +1 -0
- package/src/__tests__/unit/commands/misc.ts +1 -0
- package/src/__tests__/unit/commands/sort.ts +2 -1
- package/src/__tests__/unit/commands.ts +1 -0
- package/src/__tests__/unit/copy-paste.ts +2 -1
- package/src/__tests__/unit/event-handlers/index.ts +2 -1
- package/src/__tests__/unit/event-handlers.ts +2 -1
- package/src/__tests__/unit/fix-tables.ts +2 -1
- package/src/__tests__/unit/get-toolbar-config.ts +1 -0
- package/src/__tests__/unit/handlers.ts +2 -1
- package/src/__tests__/unit/hover-selection.ts +2 -1
- package/src/__tests__/unit/index.ts +2 -1
- package/src/__tests__/unit/layout.ts +2 -1
- package/src/__tests__/unit/nodeviews/TableComponent.tsx +1 -1
- package/src/__tests__/unit/nodeviews/TableContainer.tsx +1 -1
- package/src/__tests__/unit/nodeviews/cell.ts +2 -1
- package/src/__tests__/unit/nodeviews/table.ts +1 -0
- package/src/__tests__/unit/pm-plugins/decorations/column-resizing.ts +1 -0
- package/src/__tests__/unit/pm-plugins/decorations/plugin.ts +1 -0
- package/src/__tests__/unit/pm-plugins/main.ts +1 -0
- package/src/__tests__/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +2 -1
- package/src/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +1 -0
- package/src/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +1 -0
- package/src/__tests__/unit/pm-plugins/table-width.ts +2 -1
- package/src/__tests__/unit/sort-column.ts +2 -1
- package/src/__tests__/unit/toolbar.ts +1 -0
- package/src/__tests__/unit/transforms/delete-columns.ts +2 -1
- package/src/__tests__/unit/transforms/delete-rows.ts +2 -1
- package/src/__tests__/unit/transforms/merging.ts +2 -1
- package/src/__tests__/unit/ui/ContextualMenu.tsx +2 -1
- package/src/__tests__/unit/ui/CornerControls.tsx +2 -1
- package/src/__tests__/unit/ui/FloatingContextualButton.tsx +2 -1
- package/src/__tests__/unit/ui/FloatingContextualMenu.tsx +2 -1
- package/src/__tests__/unit/ui/FloatingDeleteButton.tsx +1 -1
- package/src/__tests__/unit/ui/FloatingDragMenu.tsx +195 -0
- package/src/__tests__/unit/ui/FloatingInsertButton.tsx +1 -1
- package/src/__tests__/unit/ui/NumberColumn.tsx +2 -1
- package/src/__tests__/unit/ui/RowControls.tsx +2 -1
- package/src/__tests__/unit/ui/RowDragControls.tsx +2 -1
- package/src/__tests__/unit/ui/TableFloatingColumnControls.tsx +2 -1
- package/src/__tests__/unit/ui/TableFloatingControls.tsx +2 -1
- package/src/__tests__/unit/undo-redo.ts +1 -0
- package/src/__tests__/unit/utils/collapse.ts +1 -0
- package/src/__tests__/unit/utils/nodes.ts +2 -1
- package/src/__tests__/unit/utils/row-controls.ts +2 -1
- package/src/__tests__/unit/utils.ts +1 -0
- package/src/plugins/table/nodeviews/TableRow.ts +1 -1
- package/src/plugins/table/pm-plugins/drag-and-drop/plugin.ts +1 -1
- package/src/plugins/table/pm-plugins/drag-and-drop/utils/monitor.ts +1 -1
- package/src/plugins/table/pm-plugins/keymap.ts +4 -4
- package/src/plugins/table/ui/FloatingDragMenu/DragMenu.tsx +33 -7
- package/src/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +1 -1
|
@@ -14,6 +14,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
|
14
14
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
15
15
|
import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
16
16
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
17
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
17
18
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
18
19
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
19
20
|
import {
|
|
@@ -29,10 +30,10 @@ import {
|
|
|
29
30
|
tr,
|
|
30
31
|
} from '@atlaskit/editor-test-helpers/doc-builder';
|
|
31
32
|
|
|
32
|
-
import tablePlugin from '../../../plugins/table-plugin';
|
|
33
33
|
import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
|
|
34
34
|
import type { TablePluginState } from '../../../plugins/table/types';
|
|
35
35
|
import TableFloatingColumnControls from '../../../plugins/table/ui/TableFloatingColumnControls';
|
|
36
|
+
import tablePlugin from '../../../plugins/table-plugin';
|
|
36
37
|
|
|
37
38
|
describe('TableFloatingColumnControls', () => {
|
|
38
39
|
const createEditor = createProsemirrorEditorFactory();
|
|
@@ -12,6 +12,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
|
|
|
12
12
|
import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
13
13
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
14
14
|
import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
15
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
15
16
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
16
17
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
17
18
|
import {
|
|
@@ -28,12 +29,12 @@ import {
|
|
|
28
29
|
tr,
|
|
29
30
|
} from '@atlaskit/editor-test-helpers/doc-builder';
|
|
30
31
|
|
|
31
|
-
import tablePlugin from '../../../plugins/table-plugin';
|
|
32
32
|
import { hoverTable } from '../../../plugins/table/commands';
|
|
33
33
|
import { getDecorations } from '../../../plugins/table/pm-plugins/decorations/plugin';
|
|
34
34
|
import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
|
|
35
35
|
import type { TablePluginState } from '../../../plugins/table/types';
|
|
36
36
|
import TableFloatingControls from '../../../plugins/table/ui/TableFloatingControls';
|
|
37
|
+
import tablePlugin from '../../../plugins/table-plugin';
|
|
37
38
|
|
|
38
39
|
describe('TableFloatingControls', () => {
|
|
39
40
|
const createEditor = createProsemirrorEditorFactory();
|
|
@@ -10,6 +10,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
|
10
10
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
11
11
|
import { redo, undo } from '@atlaskit/editor-prosemirror/history';
|
|
12
12
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
13
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
13
14
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
14
15
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
15
16
|
import {
|
|
@@ -6,6 +6,7 @@ import { featureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
|
|
|
6
6
|
import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
|
|
7
7
|
import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
8
8
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
9
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
10
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
10
11
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
11
12
|
import {
|
|
@@ -7,6 +7,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
|
|
|
7
7
|
import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
8
8
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
9
9
|
import { findTable } from '@atlaskit/editor-tables/utils';
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
11
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
11
12
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
12
13
|
import {
|
|
@@ -25,9 +26,9 @@ import {
|
|
|
25
26
|
tr,
|
|
26
27
|
} from '@atlaskit/editor-test-helpers/doc-builder';
|
|
27
28
|
|
|
28
|
-
import tablePlugin from '../../../plugins/table-plugin';
|
|
29
29
|
import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
|
|
30
30
|
import { containsHeaderColumn } from '../../../plugins/table/utils/nodes';
|
|
31
|
+
import tablePlugin from '../../../plugins/table-plugin';
|
|
31
32
|
|
|
32
33
|
describe('table merging logic', () => {
|
|
33
34
|
const createEditor = createProsemirrorEditorFactory();
|
|
@@ -9,6 +9,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
|
9
9
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
10
10
|
import { TableMap } from '@atlaskit/editor-tables/table-map';
|
|
11
11
|
import { findTable } from '@atlaskit/editor-tables/utils';
|
|
12
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
12
13
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
13
14
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
14
15
|
import {
|
|
@@ -25,9 +26,9 @@ import {
|
|
|
25
26
|
th,
|
|
26
27
|
} from '@atlaskit/editor-test-helpers/doc-builder';
|
|
27
28
|
|
|
28
|
-
import tablePlugin from '../../../plugins/table-plugin';
|
|
29
29
|
import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
|
|
30
30
|
import { copyPreviousRow } from '../../../plugins/table/utils/row-controls';
|
|
31
|
+
import tablePlugin from '../../../plugins/table-plugin';
|
|
31
32
|
|
|
32
33
|
const TABLE_LOCAL_ID = 'test-table-local-id';
|
|
33
34
|
|
|
@@ -7,6 +7,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
|
|
|
7
7
|
import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
|
|
8
8
|
import { widthPlugin } from '@atlaskit/editor-plugin-width';
|
|
9
9
|
import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
11
|
import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
|
|
11
12
|
// eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
|
|
12
13
|
import {
|
|
@@ -6,8 +6,8 @@ import { findOverflowScrollParent } from '@atlaskit/editor-common/ui';
|
|
|
6
6
|
import { browser } from '@atlaskit/editor-common/utils';
|
|
7
7
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
8
8
|
import type { EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
|
|
9
|
-
import { attachClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
10
9
|
import { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
10
|
+
import { attachClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
11
11
|
|
|
12
12
|
import { getPluginState } from '../pm-plugins/plugin-factory';
|
|
13
13
|
import { pluginKey as tablePluginKey } from '../pm-plugins/plugin-key';
|
|
@@ -6,8 +6,8 @@ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
|
6
6
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
7
7
|
import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
8
8
|
import { getCellsInRow } from '@atlaskit/editor-tables/utils';
|
|
9
|
-
import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll';
|
|
10
9
|
import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
10
|
+
import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll';
|
|
11
11
|
|
|
12
12
|
import type { DraggableSourceData } from '../../types';
|
|
13
13
|
import {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { ElementEventBasePayload } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
1
2
|
import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
2
3
|
import type { Edge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
3
|
-
import type { ElementEventBasePayload } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
4
4
|
|
|
5
5
|
import type {
|
|
6
6
|
DraggableData,
|
|
@@ -28,15 +28,15 @@ import {
|
|
|
28
28
|
moveCursorBackward,
|
|
29
29
|
triggerUnlessTableHeader,
|
|
30
30
|
} from '../commands';
|
|
31
|
+
import {
|
|
32
|
+
addColumnAfter as addColumnAfterCommand,
|
|
33
|
+
addColumnBefore as addColumnBeforeCommand,
|
|
34
|
+
} from '../commands/insert';
|
|
31
35
|
import {
|
|
32
36
|
addRowAroundSelection,
|
|
33
37
|
deleteTableIfSelectedWithAnalytics,
|
|
34
38
|
emptyMultipleCellsWithAnalytics,
|
|
35
39
|
} from '../commands-with-analytics';
|
|
36
|
-
import {
|
|
37
|
-
addColumnAfter as addColumnAfterCommand,
|
|
38
|
-
addColumnBefore as addColumnBeforeCommand,
|
|
39
|
-
} from '../commands/insert';
|
|
40
40
|
import { withEditorAnalyticsAPI } from '../utils/analytics';
|
|
41
41
|
|
|
42
42
|
const createTableWithAnalytics = (
|
|
@@ -44,11 +44,35 @@ type DragMenuProps = {
|
|
|
44
44
|
getEditorContainerWidth: GetEditorContainerWidth;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
const groupedDragMenuConfig = [
|
|
48
|
+
[
|
|
49
|
+
'add_row_above',
|
|
50
|
+
'add_row_below',
|
|
51
|
+
'add_column_left',
|
|
52
|
+
'add_column_right',
|
|
53
|
+
'distribute_columns',
|
|
54
|
+
'clear_cells',
|
|
55
|
+
'delete_row',
|
|
56
|
+
'delete_column',
|
|
57
|
+
],
|
|
58
|
+
['move_column_left', 'move_column_right', 'move_row_up', 'move_row_down'],
|
|
59
|
+
['sort_column_asc', 'sort_column_desc'],
|
|
60
|
+
];
|
|
61
|
+
|
|
47
62
|
const convertToDropdownItems = (dragMenuConfig: DragMenuConfig[]) => {
|
|
48
|
-
let
|
|
63
|
+
let menuItemsArr: MenuItem[][] = [...Array(groupedDragMenuConfig.length)].map(
|
|
64
|
+
() => [],
|
|
65
|
+
);
|
|
49
66
|
let menuCallback: { [key: string]: Command } = {};
|
|
50
67
|
dragMenuConfig.forEach((item) => {
|
|
51
|
-
|
|
68
|
+
const menuGroupIndex = groupedDragMenuConfig.findIndex((group) =>
|
|
69
|
+
group.includes(item.id),
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
if (menuGroupIndex === -1) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
menuItemsArr[menuGroupIndex].push({
|
|
52
76
|
key: item.id,
|
|
53
77
|
content: item.title,
|
|
54
78
|
value: { name: item.id },
|
|
@@ -69,6 +93,11 @@ const convertToDropdownItems = (dragMenuConfig: DragMenuConfig[]) => {
|
|
|
69
93
|
});
|
|
70
94
|
item.onClick && (menuCallback[item.id] = item.onClick);
|
|
71
95
|
});
|
|
96
|
+
|
|
97
|
+
const menuItems = menuItemsArr.reduce((acc, curr) => {
|
|
98
|
+
curr?.length > 0 && acc.push({ items: curr });
|
|
99
|
+
return acc;
|
|
100
|
+
}, [] as { items: MenuItem[] }[]);
|
|
72
101
|
return { menuItems, menuCallback };
|
|
73
102
|
};
|
|
74
103
|
|
|
@@ -149,11 +178,7 @@ export const DragMenu = ({
|
|
|
149
178
|
type: ArrowKeyNavigationType.MENU,
|
|
150
179
|
disableArrowKeyNavigation: true,
|
|
151
180
|
}}
|
|
152
|
-
items={
|
|
153
|
-
{
|
|
154
|
-
items: menuItems,
|
|
155
|
-
},
|
|
156
|
-
]}
|
|
181
|
+
items={menuItems}
|
|
157
182
|
isOpen={isOpen}
|
|
158
183
|
onOpenChange={closeMenu}
|
|
159
184
|
onItemActivated={handleMenuItemActivated}
|
|
@@ -161,6 +186,7 @@ export const DragMenu = ({
|
|
|
161
186
|
onMouseLeave={handleItemMouseLeave}
|
|
162
187
|
fitWidth={dragMenuDropdownWidth}
|
|
163
188
|
boundariesElement={boundariesElement}
|
|
189
|
+
section={{ hasSeparator: true }}
|
|
164
190
|
/>
|
|
165
191
|
);
|
|
166
192
|
};
|
package/src/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
|
|
3
|
-
import { attachClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
4
3
|
import { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
4
|
+
import { attachClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
5
5
|
|
|
6
6
|
import type { DraggableSourceData } from '../../../types';
|
|
7
7
|
|