@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.
Files changed (72) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/plugins/table/nodeviews/TableRow.js +1 -1
  3. package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
  4. package/dist/cjs/plugins/table/pm-plugins/keymap.js +1 -1
  5. package/dist/cjs/plugins/table/ui/FloatingDragMenu/DragMenu.js +24 -6
  6. package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
  7. package/dist/es2019/plugins/table/nodeviews/TableRow.js +1 -1
  8. package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
  9. package/dist/es2019/plugins/table/pm-plugins/keymap.js +1 -1
  10. package/dist/es2019/plugins/table/ui/FloatingDragMenu/DragMenu.js +18 -6
  11. package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
  12. package/dist/esm/plugins/table/nodeviews/TableRow.js +1 -1
  13. package/dist/esm/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -1
  14. package/dist/esm/plugins/table/pm-plugins/keymap.js +1 -1
  15. package/dist/esm/plugins/table/ui/FloatingDragMenu/DragMenu.js +23 -6
  16. package/dist/esm/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +1 -1
  17. package/package.json +3 -3
  18. package/src/__tests__/unit/analytics.ts +2 -1
  19. package/src/__tests__/unit/collab.ts +2 -1
  20. package/src/__tests__/unit/commands/go-to-next-cell.ts +1 -0
  21. package/src/__tests__/unit/commands/insert.ts +1 -0
  22. package/src/__tests__/unit/commands/misc.ts +1 -0
  23. package/src/__tests__/unit/commands/sort.ts +2 -1
  24. package/src/__tests__/unit/commands.ts +1 -0
  25. package/src/__tests__/unit/copy-paste.ts +2 -1
  26. package/src/__tests__/unit/event-handlers/index.ts +2 -1
  27. package/src/__tests__/unit/event-handlers.ts +2 -1
  28. package/src/__tests__/unit/fix-tables.ts +2 -1
  29. package/src/__tests__/unit/get-toolbar-config.ts +1 -0
  30. package/src/__tests__/unit/handlers.ts +2 -1
  31. package/src/__tests__/unit/hover-selection.ts +2 -1
  32. package/src/__tests__/unit/index.ts +2 -1
  33. package/src/__tests__/unit/layout.ts +2 -1
  34. package/src/__tests__/unit/nodeviews/TableComponent.tsx +1 -1
  35. package/src/__tests__/unit/nodeviews/TableContainer.tsx +1 -1
  36. package/src/__tests__/unit/nodeviews/cell.ts +2 -1
  37. package/src/__tests__/unit/nodeviews/table.ts +1 -0
  38. package/src/__tests__/unit/pm-plugins/decorations/column-resizing.ts +1 -0
  39. package/src/__tests__/unit/pm-plugins/decorations/plugin.ts +1 -0
  40. package/src/__tests__/unit/pm-plugins/main.ts +1 -0
  41. package/src/__tests__/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +2 -1
  42. package/src/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +1 -0
  43. package/src/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +1 -0
  44. package/src/__tests__/unit/pm-plugins/table-width.ts +2 -1
  45. package/src/__tests__/unit/sort-column.ts +2 -1
  46. package/src/__tests__/unit/toolbar.ts +1 -0
  47. package/src/__tests__/unit/transforms/delete-columns.ts +2 -1
  48. package/src/__tests__/unit/transforms/delete-rows.ts +2 -1
  49. package/src/__tests__/unit/transforms/merging.ts +2 -1
  50. package/src/__tests__/unit/ui/ContextualMenu.tsx +2 -1
  51. package/src/__tests__/unit/ui/CornerControls.tsx +2 -1
  52. package/src/__tests__/unit/ui/FloatingContextualButton.tsx +2 -1
  53. package/src/__tests__/unit/ui/FloatingContextualMenu.tsx +2 -1
  54. package/src/__tests__/unit/ui/FloatingDeleteButton.tsx +1 -1
  55. package/src/__tests__/unit/ui/FloatingDragMenu.tsx +195 -0
  56. package/src/__tests__/unit/ui/FloatingInsertButton.tsx +1 -1
  57. package/src/__tests__/unit/ui/NumberColumn.tsx +2 -1
  58. package/src/__tests__/unit/ui/RowControls.tsx +2 -1
  59. package/src/__tests__/unit/ui/RowDragControls.tsx +2 -1
  60. package/src/__tests__/unit/ui/TableFloatingColumnControls.tsx +2 -1
  61. package/src/__tests__/unit/ui/TableFloatingControls.tsx +2 -1
  62. package/src/__tests__/unit/undo-redo.ts +1 -0
  63. package/src/__tests__/unit/utils/collapse.ts +1 -0
  64. package/src/__tests__/unit/utils/nodes.ts +2 -1
  65. package/src/__tests__/unit/utils/row-controls.ts +2 -1
  66. package/src/__tests__/unit/utils.ts +1 -0
  67. package/src/plugins/table/nodeviews/TableRow.ts +1 -1
  68. package/src/plugins/table/pm-plugins/drag-and-drop/plugin.ts +1 -1
  69. package/src/plugins/table/pm-plugins/drag-and-drop/utils/monitor.ts +1 -1
  70. package/src/plugins/table/pm-plugins/keymap.ts +4 -4
  71. package/src/plugins/table/ui/FloatingDragMenu/DragMenu.tsx +33 -7
  72. package/src/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +1 -1
@@ -9,6 +9,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
9
9
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
10
10
  import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
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 {
@@ -24,7 +25,6 @@ import {
24
25
  tr,
25
26
  } from '@atlaskit/editor-test-helpers/doc-builder';
26
27
 
27
- import tablePlugin from '../../plugins/table-plugin';
28
28
  import { toggleTableLayout } from '../../plugins/table/commands';
29
29
  import { getPluginState } from '../../plugins/table/pm-plugins/plugin-factory';
30
30
  import { pluginKey as tablePluginKey } from '../../plugins/table/pm-plugins/plugin-key';
@@ -32,6 +32,7 @@ import type {
32
32
  PermittedLayoutsDescriptor,
33
33
  TablePluginState,
34
34
  } from '../../plugins/table/types';
35
+ import tablePlugin from '../../plugins/table-plugin';
35
36
 
36
37
  describe('table toolbar', () => {
37
38
  const tableOptions = {
@@ -27,7 +27,6 @@ import {
27
27
  tr,
28
28
  } from '@atlaskit/editor-test-helpers/doc-builder';
29
29
 
30
- import tablePlugin from '../../../plugins/table-plugin';
31
30
  import * as commands from '../../../plugins/table/commands';
32
31
  import {
33
32
  hoverTable,
@@ -37,6 +36,7 @@ import TableComponent from '../../../plugins/table/nodeviews/TableComponent';
37
36
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
38
37
  import type { TablePluginState } from '../../../plugins/table/types';
39
38
  import { TableCssClassName as ClassName } from '../../../plugins/table/types';
39
+ import tablePlugin from '../../../plugins/table-plugin';
40
40
 
41
41
  jest.mock('../../../plugins/table/utils/nodes', () =>
42
42
  Object.assign({}, jest.requireActual('../../../plugins/table/utils/nodes'), {
@@ -23,7 +23,6 @@ import {
23
23
  tr,
24
24
  } from '@atlaskit/editor-test-helpers/doc-builder';
25
25
 
26
- import tablePlugin from '../../../plugins/table-plugin';
27
26
  import {
28
27
  ResizableTableContainer,
29
28
  TableContainer,
@@ -31,6 +30,7 @@ import {
31
30
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
32
31
  import { pluginKey as tableResizingPluginKey } from '../../../plugins/table/pm-plugins/table-width';
33
32
  import type { TablePluginState } from '../../../plugins/table/types';
33
+ import tablePlugin from '../../../plugins/table-plugin';
34
34
 
35
35
  const mockStartMeasure = jest.fn();
36
36
  const mockEndMeasure = jest.fn(() => {
@@ -15,6 +15,7 @@ import {
15
15
  findCellClosestToPos,
16
16
  setCellAttrs,
17
17
  } from '@atlaskit/editor-tables/utils';
18
+ // eslint-disable-next-line import/no-extraneous-dependencies
18
19
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
19
20
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
20
21
  import {
@@ -31,10 +32,10 @@ import {
31
32
  tr,
32
33
  } from '@atlaskit/editor-test-helpers/doc-builder';
33
34
 
34
- import tablePlugin from '../../../plugins/table-plugin';
35
35
  import TableCell from '../../../plugins/table/nodeviews/TableCell';
36
36
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
37
37
  import type { PluginConfig } from '../../../plugins/table/types';
38
+ import tablePlugin from '../../../plugins/table-plugin';
38
39
 
39
40
  jest.mock('@atlaskit/editor-common/utils', () => ({
40
41
  ...jest.requireActual<Object>('@atlaskit/editor-common/utils'),
@@ -9,6 +9,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
9
9
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
10
10
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
11
11
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
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 {
@@ -11,6 +11,7 @@ import type { ContentNodeWithPos } from '@atlaskit/editor-prosemirror/utils';
11
11
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
12
12
  import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
13
13
  import { getCellsInColumn } from '@atlaskit/editor-tables/utils';
14
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
15
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
15
16
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
16
17
  import {
@@ -9,6 +9,7 @@ import { widthPlugin } from '@atlaskit/editor-plugin-width';
9
9
  import { Selection } from '@atlaskit/editor-prosemirror/state';
10
10
  import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
11
11
  import { addColumnAt } 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 {
@@ -10,6 +10,7 @@ import { undo } from '@atlaskit/editor-prosemirror/history';
10
10
  import type { NodeType } from '@atlaskit/editor-prosemirror/model';
11
11
  import type { Selection } from '@atlaskit/editor-prosemirror/state';
12
12
  import * as pmUtils from '@atlaskit/editor-prosemirror/utils';
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 {
@@ -21,8 +22,8 @@ import {
21
22
  tr,
22
23
  } from '@atlaskit/editor-test-helpers/doc-builder';
23
24
 
24
- import tablePlugin from '../../../plugins/table-plugin';
25
25
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
26
+ import tablePlugin from '../../../plugins/table-plugin';
26
27
 
27
28
  describe('table/safari-delete-composition-text-issue-workaround', () => {
28
29
  let editor: any;
@@ -16,6 +16,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
16
16
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
17
17
  import type { Node as ProseMirrorNode } from '@atlaskit/editor-prosemirror/model';
18
18
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
19
+ // eslint-disable-next-line import/no-extraneous-dependencies
19
20
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
20
21
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
21
22
  import {
@@ -19,6 +19,7 @@ import {
19
19
  akEditorDefaultLayoutWidth,
20
20
  akEditorFullPageMaxWidth,
21
21
  } from '@atlaskit/editor-shared-styles/consts';
22
+ // eslint-disable-next-line import/no-extraneous-dependencies
22
23
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
23
24
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
24
25
  import {
@@ -8,6 +8,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
8
8
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
9
9
  import { undo } from '@atlaskit/editor-prosemirror/history';
10
10
  import { TextSelection } from '@atlaskit/editor-prosemirror/state';
11
+ // eslint-disable-next-line import/no-extraneous-dependencies
11
12
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
12
13
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
13
14
  import {
@@ -24,8 +25,8 @@ import {
24
25
  tr,
25
26
  } from '@atlaskit/editor-test-helpers/doc-builder';
26
27
 
27
- import tablePlugin from '../../../plugins/table-plugin';
28
28
  import { pluginKey as tablePluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
29
+ import tablePlugin from '../../../plugins/table-plugin';
29
30
 
30
31
  const createDoc = (attrs: any) =>
31
32
  doc(
@@ -9,6 +9,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
9
9
  import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
10
10
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
11
11
  import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
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,13 +26,13 @@ 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 { sortByColumn } from '../../plugins/table/commands';
30
30
  import { pluginKey as tablePluginKey } from '../../plugins/table/pm-plugins/plugin-key';
31
31
  import type {
32
32
  PermittedLayoutsDescriptor,
33
33
  TablePluginState,
34
34
  } from '../../plugins/table/types';
35
+ import tablePlugin from '../../plugins/table-plugin';
35
36
 
36
37
  const TABLE_LOCAL_ID = 'test-table-local-id';
37
38
 
@@ -12,6 +12,7 @@ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
12
12
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
13
13
  import { Rect } from '@atlaskit/editor-tables/table-map';
14
14
  import { splitCell } from '@atlaskit/editor-tables/utils';
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 {
@@ -10,6 +10,7 @@ import { widthPlugin } from '@atlaskit/editor-plugin-width';
10
10
  import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
11
11
  import type { Rect } from '@atlaskit/editor-tables/table-map';
12
12
  import { getSelectionRect } from '@atlaskit/editor-tables/utils';
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 {
@@ -28,10 +29,10 @@ import {
28
29
  } from '@atlaskit/editor-test-helpers/doc-builder';
29
30
  import { ffTest } from '@atlassian/feature-flags-test-utils';
30
31
 
31
- import tablePlugin from '../../../plugins/table-plugin';
32
32
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
33
33
  import { deleteColumns } from '../../../plugins/table/transforms';
34
34
  import type { TablePluginState } from '../../../plugins/table/types';
35
+ import tablePlugin from '../../../plugins/table-plugin';
35
36
 
36
37
  const colsToRect = (cols: Array<number>, noOfRows: number): Rect => ({
37
38
  left: Math.min(...cols),
@@ -10,6 +10,7 @@ import { widthPlugin } from '@atlaskit/editor-plugin-width';
10
10
  import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
11
11
  import type { Rect } from '@atlaskit/editor-tables/table-map';
12
12
  import { getSelectionRect } from '@atlaskit/editor-tables/utils';
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 {
@@ -28,10 +29,10 @@ 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 { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
33
33
  import { deleteRows } from '../../../plugins/table/transforms';
34
34
  import type { TablePluginState } from '../../../plugins/table/types';
35
+ import tablePlugin from '../../../plugins/table-plugin';
35
36
 
36
37
  const rowsToRect = (rows: Array<number>, noOfColumns: number): Rect => ({
37
38
  left: 0,
@@ -8,6 +8,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
8
8
  import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
9
9
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
10
10
  import type { PluginKey } from '@atlaskit/editor-prosemirror/state';
11
+ // eslint-disable-next-line import/no-extraneous-dependencies
11
12
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
12
13
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
13
14
  import {
@@ -24,10 +25,10 @@ import {
24
25
  tr,
25
26
  } from '@atlaskit/editor-test-helpers/doc-builder';
26
27
 
27
- import tablePlugin from '../../../plugins/table-plugin';
28
28
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
29
29
  import { mergeCells } from '../../../plugins/table/transforms';
30
30
  import type { TablePluginState } from '../../../plugins/table/types';
31
+ import tablePlugin from '../../../plugins/table-plugin';
31
32
 
32
33
  const TABLE_LOCAL_ID = 'test-table-local-id';
33
34
 
@@ -11,6 +11,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
11
11
  import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
12
12
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
13
13
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
14
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
15
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
15
16
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
16
17
  import {
@@ -28,8 +29,8 @@ 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 { ContextualMenu } from '../../../plugins/table/ui/FloatingContextualMenu/ContextualMenu';
33
+ import tablePlugin from '../../../plugins/table-plugin';
33
34
 
34
35
  describe('ContextualMenu', () => {
35
36
  const getEditorContainerWidth = () => ({ width: 500 });
@@ -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 { isTableSelected } from '@atlaskit/editor-tables/utils';
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 {
@@ -26,10 +27,10 @@ import {
26
27
  tr,
27
28
  } from '@atlaskit/editor-test-helpers/doc-builder';
28
29
 
29
- import tablePlugin from '../../../plugins/table-plugin';
30
30
  import { getPluginState } from '../../../plugins/table/pm-plugins/plugin-factory';
31
31
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
32
32
  import { CornerControls } from '../../../plugins/table/ui/TableFloatingControls/CornerControls';
33
+ import tablePlugin from '../../../plugins/table-plugin';
33
34
 
34
35
  describe('CornerControls', () => {
35
36
  const createEditor = createProsemirrorEditorFactory();
@@ -15,6 +15,7 @@ import { widthPlugin } from '@atlaskit/editor-plugin-width';
15
15
  import type { ContentNodeWithPos } from '@atlaskit/editor-prosemirror/utils';
16
16
  import * as prosemirrorUtils from '@atlaskit/editor-prosemirror/utils';
17
17
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
18
+ // eslint-disable-next-line import/no-extraneous-dependencies
18
19
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
19
20
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
20
21
  import {
@@ -31,9 +32,9 @@ import {
31
32
  tr,
32
33
  } from '@atlaskit/editor-test-helpers/doc-builder';
33
34
 
34
- import tablePlugin from '../../../plugins/table-plugin';
35
35
  import type { Props as FloatingContextualButtonProps } from '../../../plugins/table/ui/FloatingContextualButton';
36
36
  import FloatingContextualButton from '../../../plugins/table/ui/FloatingContextualButton';
37
+ import tablePlugin from '../../../plugins/table-plugin';
37
38
 
38
39
  jest.mock('@atlaskit/editor-prosemirror/utils', () => {
39
40
  // Unblock prosemirror bump:
@@ -11,6 +11,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
11
11
  import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
12
12
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
13
13
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
14
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
15
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
15
16
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
16
17
  import {
@@ -28,9 +29,9 @@ 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 { getPluginState } from '../../../plugins/table/pm-plugins/plugin-factory';
33
33
  import FloatingContextualMenu from '../../../plugins/table/ui/FloatingContextualMenu';
34
+ import tablePlugin from '../../../plugins/table-plugin';
34
35
 
35
36
  describe('FloatingContextualMenu', () => {
36
37
  const createEditor = createProsemirrorEditorFactory();
@@ -20,13 +20,13 @@ import {
20
20
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
21
21
  import { selectColumns, selectRows } from '@atlaskit/editor-test-helpers/table';
22
22
 
23
- import tablePlugin from '../../../plugins/table-plugin';
24
23
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
25
24
  import type { TablePluginState } from '../../../plugins/table/types';
26
25
  import { TableCssClassName } from '../../../plugins/table/types';
27
26
  import type { Props as FloatingDeleteButtonProps } from '../../../plugins/table/ui/FloatingDeleteButton';
28
27
  import FloatingDeleteButton from '../../../plugins/table/ui/FloatingDeleteButton';
29
28
  import * as tableColumnControlsUtils from '../../../plugins/table/utils/column-controls';
29
+ import tablePlugin from '../../../plugins/table-plugin';
30
30
 
31
31
  describe('Floating Delete Button', () => {
32
32
  const createEditor = createEditorFactory<TablePluginState>();
@@ -0,0 +1,195 @@
1
+ import React from 'react';
2
+
3
+ import { render, screen } from '@testing-library/react';
4
+
5
+ import { ReactEditorViewContext } from '@atlaskit/editor-common/ui-react';
6
+ // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
7
+ import { analyticsPlugin } from '@atlaskit/editor-plugin-analytics';
8
+ import { contentInsertionPlugin } from '@atlaskit/editor-plugin-content-insertion';
9
+ import { featureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
10
+ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
11
+ import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
12
+ import { widthPlugin } from '@atlaskit/editor-plugin-width';
13
+ import * as prosemirrorUtils from '@atlaskit/editor-prosemirror/utils';
14
+ import type { ContentNodeWithPos } from '@atlaskit/editor-prosemirror/utils';
15
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
16
+ // eslint-disable-next-line import/no-extraneous-dependencies
17
+ import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
18
+ // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
19
+ import {
20
+ createProsemirrorEditorFactory,
21
+ Preset,
22
+ } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
23
+ // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
24
+ import {
25
+ doc,
26
+ p,
27
+ table,
28
+ tdCursor,
29
+ tdEmpty,
30
+ th,
31
+ tr,
32
+ } from '@atlaskit/editor-test-helpers/doc-builder';
33
+ import { ffTest } from '@atlassian/feature-flags-test-utils';
34
+
35
+ import FloatingDragMenu from '../../../plugins/table/ui/FloatingDragMenu';
36
+ import tablePlugin from '../../../plugins/table-plugin';
37
+
38
+ describe('FloatingDragMenu', () => {
39
+ const createEditor = createProsemirrorEditorFactory();
40
+ let editorView: EditorView;
41
+ let tableNode: ContentNodeWithPos | undefined;
42
+ beforeEach(() => {
43
+ ({ editorView } = createEditor({
44
+ doc: doc(table()(tr(th()(p('')), th()(p(''))), tr(tdCursor, tdEmpty))),
45
+ preset: new Preset<LightEditorPlugin>()
46
+ .add([featureFlagsPlugin, {}])
47
+ .add([analyticsPlugin, {}])
48
+ .add(contentInsertionPlugin)
49
+ .add(widthPlugin)
50
+ .add(guidelinePlugin)
51
+ .add(selectionPlugin)
52
+ .add(tablePlugin),
53
+ }));
54
+
55
+ tableNode = prosemirrorUtils.findParentNodeOfTypeClosestToPos(
56
+ editorView.state.selection.$from,
57
+ editorView.state.schema.nodes.table,
58
+ );
59
+ });
60
+ describe('should group the menu items correctly', () => {
61
+ ffTest(
62
+ 'platform.editor.menu.group-items',
63
+ () => {
64
+ // Run test case when FF platform.editor..menu.group-items is true
65
+ const tableRef = editorView.dom.querySelector('table');
66
+ const editorRef = {
67
+ current: document.createElement('div'),
68
+ };
69
+ render(
70
+ <ReactEditorViewContext.Provider
71
+ value={{
72
+ editorRef,
73
+ }}
74
+ >
75
+ <FloatingDragMenu
76
+ editorView={editorView}
77
+ isOpen
78
+ getEditorContainerWidth={jest.fn()}
79
+ tableRef={tableRef as HTMLTableElement}
80
+ tableNode={tableNode?.node}
81
+ direction="row"
82
+ targetCellPosition={1}
83
+ />
84
+ </ReactEditorViewContext.Provider>,
85
+ );
86
+ expect(screen.getAllByRole('menu')).toHaveLength(1);
87
+ expect(screen.getAllByRole('group')).toHaveLength(2);
88
+ },
89
+ () => {
90
+ // Run test case when FF platform.editor..menu.group-items is false
91
+ const tableRef = editorView.dom.querySelector('table');
92
+ const editorRef = {
93
+ current: document.createElement('div'),
94
+ };
95
+ render(
96
+ <ReactEditorViewContext.Provider
97
+ value={{
98
+ editorRef,
99
+ }}
100
+ >
101
+ <FloatingDragMenu
102
+ editorView={editorView}
103
+ isOpen
104
+ getEditorContainerWidth={jest.fn()}
105
+ tableRef={tableRef as HTMLTableElement}
106
+ tableNode={tableNode?.node}
107
+ direction="row"
108
+ targetCellPosition={1}
109
+ />
110
+ </ReactEditorViewContext.Provider>,
111
+ );
112
+ expect(screen.getAllByRole('menu')).toHaveLength(2);
113
+ expect(screen.queryByRole('group')).toBeNull();
114
+ },
115
+ );
116
+ });
117
+ describe('menu items', () => {
118
+ it('should render the right menu items for row', () => {
119
+ // Run test case when FF platform.editor..menu.group-items is true
120
+ const tableRef = editorView.dom.querySelector('table');
121
+ const editorRef = {
122
+ current: document.createElement('div'),
123
+ };
124
+ render(
125
+ <ReactEditorViewContext.Provider
126
+ value={{
127
+ editorRef,
128
+ }}
129
+ >
130
+ <FloatingDragMenu
131
+ editorView={editorView}
132
+ isOpen
133
+ getEditorContainerWidth={jest.fn()}
134
+ tableRef={tableRef as HTMLTableElement}
135
+ tableNode={tableNode?.node}
136
+ direction="row"
137
+ targetCellPosition={1}
138
+ />
139
+ </ReactEditorViewContext.Provider>,
140
+ );
141
+
142
+ const items = screen.getAllByRole('menuitem');
143
+ const menuitemTextArray = items.map((item) => item.textContent);
144
+ expect(menuitemTextArray).toMatchInlineSnapshot(`
145
+ Array [
146
+ "Add row aboveCtrl+Alt+↑",
147
+ "Add row belowCtrl+Alt+↓",
148
+ "Clear cells⌫",
149
+ "Delete row",
150
+ "Move row up",
151
+ "Move row down",
152
+ ]
153
+ `);
154
+ });
155
+ it('should render the right menu items for column', () => {
156
+ const tableRef = editorView.dom.querySelector('table');
157
+ const editorRef = {
158
+ current: document.createElement('div'),
159
+ };
160
+ render(
161
+ <ReactEditorViewContext.Provider
162
+ value={{
163
+ editorRef,
164
+ }}
165
+ >
166
+ <FloatingDragMenu
167
+ editorView={editorView}
168
+ isOpen
169
+ getEditorContainerWidth={jest.fn()}
170
+ tableRef={tableRef as HTMLTableElement}
171
+ tableNode={tableNode?.node}
172
+ direction="column"
173
+ targetCellPosition={1}
174
+ />
175
+ </ReactEditorViewContext.Provider>,
176
+ );
177
+
178
+ const items = screen.getAllByRole('menuitem');
179
+ const menuitemTextArray = items.map((item) => item.textContent);
180
+ expect(menuitemTextArray).toMatchInlineSnapshot(`
181
+ Array [
182
+ "Add column leftCtrl+Alt+←",
183
+ "Add column rightCtrl+Alt+→",
184
+ "Distribute columns",
185
+ "Clear cells⌫",
186
+ "Delete column",
187
+ "Move column left",
188
+ "Move column right",
189
+ "Sort increasing",
190
+ "Sort decreasing",
191
+ ]
192
+ `);
193
+ });
194
+ });
195
+ });
@@ -32,13 +32,13 @@ import {
32
32
  selectRows,
33
33
  } from '@atlaskit/editor-test-helpers/table';
34
34
 
35
- import tablePlugin from '../../../plugins/table-plugin';
36
35
  import { setEditorFocus, setTableRef } from '../../../plugins/table/commands';
37
36
  import { getPluginState } from '../../../plugins/table/pm-plugins/plugin-factory';
38
37
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
39
38
  import type { TablePluginState } from '../../../plugins/table/types';
40
39
  import type { Props as FloatingInsertButtonProps } from '../../../plugins/table/ui/FloatingInsertButton';
41
40
  import { FloatingInsertButton } from '../../../plugins/table/ui/FloatingInsertButton';
41
+ import tablePlugin from '../../../plugins/table-plugin';
42
42
 
43
43
  jest.mock('@atlaskit/editor-prosemirror/utils', () => {
44
44
  // Unblock prosemirror bump:
@@ -11,6 +11,7 @@ import { featureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
11
11
  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
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
15
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
15
16
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
16
17
  import {
@@ -26,10 +27,10 @@ import {
26
27
  tr,
27
28
  } from '@atlaskit/editor-test-helpers/doc-builder';
28
29
 
29
- import tablePlugin from '../../../plugins/table-plugin';
30
30
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
31
31
  import { TableCssClassName as ClassName } from '../../../plugins/table/types';
32
32
  import NumberColumn from '../../../plugins/table/ui/TableFloatingControls/NumberColumn';
33
+ import tablePlugin from '../../../plugins/table-plugin';
33
34
 
34
35
  describe('NumberColumn', () => {
35
36
  const createEditor = createProsemirrorEditorFactory();
@@ -13,6 +13,7 @@ import { guidelinePlugin } from '@atlaskit/editor-plugin-guideline';
13
13
  import { selectionPlugin } from '@atlaskit/editor-plugin-selection';
14
14
  import { widthPlugin } from '@atlaskit/editor-plugin-width';
15
15
  import { getSelectionRect, selectRow } from '@atlaskit/editor-tables/utils';
16
+ // eslint-disable-next-line import/no-extraneous-dependencies
16
17
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
17
18
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
18
19
  import {
@@ -33,11 +34,11 @@ import {
33
34
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
34
35
  import { selectRows } from '@atlaskit/editor-test-helpers/table';
35
36
 
36
- import tablePlugin from '../../../plugins/table-plugin';
37
37
  import { hoverRows } from '../../../plugins/table/commands';
38
38
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
39
39
  import TableFloatingControls from '../../../plugins/table/ui/TableFloatingControls';
40
40
  import { RowControls } from '../../../plugins/table/ui/TableFloatingControls/RowControls';
41
+ import tablePlugin from '../../../plugins/table-plugin';
41
42
 
42
43
  describe('RowControls', () => {
43
44
  const createEditor = createProsemirrorEditorFactory();
@@ -11,6 +11,7 @@ import { featureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
11
11
  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
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
15
  import type { LightEditorPlugin } from '@atlaskit/editor-test-helpers/create-prosemirror-editor';
15
16
  // eslint-disable-next-line import/no-extraneous-dependencies -- Removed import for fixing circular dependencies
16
17
  import {
@@ -27,10 +28,10 @@ import {
27
28
  tr,
28
29
  } from '@atlaskit/editor-test-helpers/doc-builder';
29
30
 
30
- import tablePlugin from '../../../plugins/table-plugin';
31
31
  import { pluginKey } from '../../../plugins/table/pm-plugins/plugin-key';
32
32
  // import { TableCssClassName as ClassName } from '../../../plugins/table/types';
33
33
  import { DragControls } from '../../../plugins/table/ui/TableFloatingControls/RowControls';
34
+ import tablePlugin from '../../../plugins/table-plugin';
34
35
 
35
36
  describe('NumberColumn', () => {
36
37
  const createEditor = createProsemirrorEditorFactory();