@atlaskit/editor-plugin-table 7.16.11 → 7.16.12

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 (242) hide show
  1. package/.eslintrc.js +3 -3
  2. package/CHANGELOG.md +8 -0
  3. package/dist/cjs/commands/misc.js +3 -3
  4. package/dist/cjs/nodeviews/TableCell.js +10 -10
  5. package/dist/cjs/nodeviews/TableContainer.js +41 -6
  6. package/dist/cjs/nodeviews/TableResizer.js +7 -7
  7. package/dist/cjs/nodeviews/TableRow.js +23 -23
  8. package/dist/cjs/pm-plugins/table-resizing/plugin.js +3 -3
  9. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  10. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +3 -3
  11. package/dist/cjs/ui/FloatingContextualMenu/styles.js +1 -1
  12. package/dist/cjs/ui/FloatingDragMenu/styles.js +1 -1
  13. package/dist/cjs/ui/common-styles.js +13 -13
  14. package/dist/cjs/ui/ui-styles.js +25 -25
  15. package/dist/cjs/utils/merged-cells.js +3 -3
  16. package/dist/es2019/commands/misc.js +3 -3
  17. package/dist/es2019/nodeviews/TableContainer.js +43 -5
  18. package/dist/es2019/nodeviews/TableResizer.js +7 -7
  19. package/dist/es2019/nodeviews/TableRow.js +21 -21
  20. package/dist/es2019/pm-plugins/table-resizing/plugin.js +3 -3
  21. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  22. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +3 -3
  23. package/dist/es2019/ui/FloatingContextualMenu/styles.js +47 -47
  24. package/dist/es2019/ui/FloatingDragMenu/styles.js +30 -30
  25. package/dist/es2019/ui/common-styles.js +802 -816
  26. package/dist/es2019/ui/ui-styles.js +665 -678
  27. package/dist/es2019/utils/merged-cells.js +3 -3
  28. package/dist/esm/commands/misc.js +3 -3
  29. package/dist/esm/nodeviews/TableCell.js +10 -10
  30. package/dist/esm/nodeviews/TableContainer.js +42 -7
  31. package/dist/esm/nodeviews/TableResizer.js +7 -7
  32. package/dist/esm/nodeviews/TableRow.js +23 -23
  33. package/dist/esm/pm-plugins/table-resizing/plugin.js +3 -3
  34. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  35. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +3 -3
  36. package/dist/esm/ui/FloatingContextualMenu/styles.js +1 -1
  37. package/dist/esm/ui/FloatingDragMenu/styles.js +1 -1
  38. package/dist/esm/ui/common-styles.js +13 -13
  39. package/dist/esm/ui/ui-styles.js +25 -25
  40. package/dist/esm/utils/merged-cells.js +3 -3
  41. package/dist/types/pm-plugins/decorations/utils/index.d.ts +1 -1
  42. package/dist/types/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
  43. package/dist/types/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
  44. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  45. package/dist/types/ui/ColumnResizeWidget/index.d.ts +1 -1
  46. package/dist/types/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
  47. package/dist/types/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
  48. package/dist/types/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
  49. package/dist/types/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  50. package/dist/types/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
  51. package/dist/types-ts4.5/pm-plugins/decorations/utils/index.d.ts +1 -1
  52. package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
  53. package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
  54. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  55. package/dist/types-ts4.5/ui/ColumnResizeWidget/index.d.ts +1 -1
  56. package/dist/types-ts4.5/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
  57. package/dist/types-ts4.5/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
  58. package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
  59. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  60. package/dist/types-ts4.5/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
  61. package/docs/0-intro.tsx +9 -7
  62. package/package.json +2 -2
  63. package/report.api.md +67 -66
  64. package/src/commands/clear.ts +36 -44
  65. package/src/commands/collapse.ts +8 -8
  66. package/src/commands/column-resize.ts +412 -452
  67. package/src/commands/delete.ts +14 -14
  68. package/src/commands/display-mode.ts +10 -11
  69. package/src/commands/go-to-next-cell.ts +48 -54
  70. package/src/commands/hover.ts +210 -227
  71. package/src/commands/index.ts +35 -35
  72. package/src/commands/insert.ts +208 -235
  73. package/src/commands/misc.ts +655 -748
  74. package/src/commands/referentiality.ts +9 -9
  75. package/src/commands/selection.ts +433 -563
  76. package/src/commands/sort.ts +68 -86
  77. package/src/commands/split-cell.ts +14 -14
  78. package/src/commands/toggle.ts +69 -67
  79. package/src/commands-with-analytics.ts +570 -639
  80. package/src/create-plugin-config.ts +13 -13
  81. package/src/event-handlers.ts +513 -612
  82. package/src/handlers.ts +120 -133
  83. package/src/nodeviews/ExternalDropTargets.tsx +68 -73
  84. package/src/nodeviews/OverflowShadowsObserver.ts +148 -157
  85. package/src/nodeviews/TableCell.ts +47 -54
  86. package/src/nodeviews/TableComponent.tsx +1018 -1112
  87. package/src/nodeviews/TableComponentWithSharedState.tsx +91 -94
  88. package/src/nodeviews/TableContainer.tsx +363 -339
  89. package/src/nodeviews/TableNodeViewBase.ts +19 -24
  90. package/src/nodeviews/TableResizer.tsx +565 -657
  91. package/src/nodeviews/TableRow.ts +580 -629
  92. package/src/nodeviews/TableStickyScrollbar.ts +173 -190
  93. package/src/nodeviews/__mocks__/OverflowShadowsObserver.ts +8 -8
  94. package/src/nodeviews/__mocks__/OverridableMock.ts +14 -15
  95. package/src/nodeviews/table.tsx +345 -375
  96. package/src/nodeviews/types.ts +21 -24
  97. package/src/nodeviews/update-overflow-shadows.ts +8 -14
  98. package/src/plugin.tsx +578 -603
  99. package/src/pm-plugins/analytics/actions.ts +10 -12
  100. package/src/pm-plugins/analytics/commands.ts +31 -37
  101. package/src/pm-plugins/analytics/plugin-factory.ts +4 -2
  102. package/src/pm-plugins/analytics/plugin-key.ts +1 -3
  103. package/src/pm-plugins/analytics/plugin.ts +60 -70
  104. package/src/pm-plugins/analytics/reducer.ts +19 -19
  105. package/src/pm-plugins/analytics/types.ts +10 -10
  106. package/src/pm-plugins/analytics/utils/moved-event.ts +38 -38
  107. package/src/pm-plugins/decorations/plugin.ts +58 -77
  108. package/src/pm-plugins/decorations/utils/column-controls.ts +59 -71
  109. package/src/pm-plugins/decorations/utils/column-resizing.ts +50 -57
  110. package/src/pm-plugins/decorations/utils/compose-decorations.ts +6 -6
  111. package/src/pm-plugins/decorations/utils/index.ts +3 -6
  112. package/src/pm-plugins/decorations/utils/types.ts +7 -12
  113. package/src/pm-plugins/default-table-selection.ts +3 -3
  114. package/src/pm-plugins/drag-and-drop/actions.ts +25 -25
  115. package/src/pm-plugins/drag-and-drop/commands-with-analytics.ts +158 -190
  116. package/src/pm-plugins/drag-and-drop/commands.ts +154 -170
  117. package/src/pm-plugins/drag-and-drop/consts.ts +4 -5
  118. package/src/pm-plugins/drag-and-drop/plugin-factory.ts +23 -20
  119. package/src/pm-plugins/drag-and-drop/plugin-key.ts +1 -3
  120. package/src/pm-plugins/drag-and-drop/plugin.ts +329 -383
  121. package/src/pm-plugins/drag-and-drop/reducer.ts +30 -30
  122. package/src/pm-plugins/drag-and-drop/types.ts +8 -8
  123. package/src/pm-plugins/drag-and-drop/utils/autoscrollers.ts +38 -41
  124. package/src/pm-plugins/drag-and-drop/utils/getDragBehaviour.ts +3 -6
  125. package/src/pm-plugins/drag-and-drop/utils/monitor.ts +57 -70
  126. package/src/pm-plugins/keymap.ts +208 -220
  127. package/src/pm-plugins/main.ts +348 -400
  128. package/src/pm-plugins/plugin-factory.ts +32 -34
  129. package/src/pm-plugins/safari-delete-composition-text-issue-workaround.ts +83 -97
  130. package/src/pm-plugins/sticky-headers/commands.ts +2 -6
  131. package/src/pm-plugins/sticky-headers/plugin-key.ts +1 -3
  132. package/src/pm-plugins/sticky-headers/plugin-state.ts +41 -44
  133. package/src/pm-plugins/sticky-headers/plugin.ts +4 -4
  134. package/src/pm-plugins/sticky-headers/types.ts +8 -8
  135. package/src/pm-plugins/sticky-headers/util.ts +10 -10
  136. package/src/pm-plugins/table-analytics.ts +70 -72
  137. package/src/pm-plugins/table-local-id.ts +180 -184
  138. package/src/pm-plugins/table-resizing/commands.ts +72 -85
  139. package/src/pm-plugins/table-resizing/event-handlers.ts +298 -317
  140. package/src/pm-plugins/table-resizing/plugin-factory.ts +10 -10
  141. package/src/pm-plugins/table-resizing/plugin-key.ts +1 -3
  142. package/src/pm-plugins/table-resizing/plugin.ts +61 -68
  143. package/src/pm-plugins/table-resizing/reducer.ts +30 -33
  144. package/src/pm-plugins/table-resizing/utils/colgroup.ts +84 -84
  145. package/src/pm-plugins/table-resizing/utils/column-state.ts +78 -81
  146. package/src/pm-plugins/table-resizing/utils/content-width.ts +94 -114
  147. package/src/pm-plugins/table-resizing/utils/dom.ts +93 -110
  148. package/src/pm-plugins/table-resizing/utils/index.ts +29 -34
  149. package/src/pm-plugins/table-resizing/utils/misc.ts +94 -119
  150. package/src/pm-plugins/table-resizing/utils/resize-column.ts +93 -106
  151. package/src/pm-plugins/table-resizing/utils/resize-logic.ts +240 -257
  152. package/src/pm-plugins/table-resizing/utils/resize-state.ts +343 -372
  153. package/src/pm-plugins/table-resizing/utils/scale-table.ts +202 -207
  154. package/src/pm-plugins/table-resizing/utils/types.ts +17 -17
  155. package/src/pm-plugins/table-resizing/utils/unit-to-number.ts +1 -2
  156. package/src/pm-plugins/table-selection-keymap.ts +25 -51
  157. package/src/pm-plugins/table-width.ts +191 -204
  158. package/src/pm-plugins/view-mode-sort/index.ts +223 -227
  159. package/src/pm-plugins/view-mode-sort/plugin-key.ts +3 -2
  160. package/src/pm-plugins/view-mode-sort/types.ts +12 -12
  161. package/src/pm-plugins/view-mode-sort/utils.ts +108 -117
  162. package/src/reducer.ts +139 -155
  163. package/src/toolbar.tsx +815 -905
  164. package/src/transforms/column-width.ts +186 -213
  165. package/src/transforms/delete-columns.ts +208 -222
  166. package/src/transforms/delete-rows.ts +117 -121
  167. package/src/transforms/fix-tables.ts +190 -215
  168. package/src/transforms/merge.ts +263 -269
  169. package/src/transforms/replace-table.ts +27 -43
  170. package/src/transforms/split.ts +65 -75
  171. package/src/types.ts +421 -427
  172. package/src/ui/ColumnResizeWidget/index.tsx +40 -47
  173. package/src/ui/DragHandle/HandleIconComponent.tsx +9 -13
  174. package/src/ui/DragHandle/index.tsx +221 -250
  175. package/src/ui/DragPreview/index.tsx +35 -35
  176. package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +33 -41
  177. package/src/ui/FloatingContextualButton/FixedButton.tsx +154 -157
  178. package/src/ui/FloatingContextualButton/index.tsx +109 -115
  179. package/src/ui/FloatingContextualButton/styles.ts +43 -46
  180. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +634 -694
  181. package/src/ui/FloatingContextualMenu/index.tsx +83 -101
  182. package/src/ui/FloatingContextualMenu/styles.ts +57 -65
  183. package/src/ui/FloatingDeleteButton/DeleteButton.tsx +37 -37
  184. package/src/ui/FloatingDeleteButton/getPopUpOptions.ts +47 -57
  185. package/src/ui/FloatingDeleteButton/index.tsx +319 -350
  186. package/src/ui/FloatingDragMenu/DragMenu.tsx +555 -596
  187. package/src/ui/FloatingDragMenu/DropdownMenu.tsx +152 -162
  188. package/src/ui/FloatingDragMenu/index.tsx +88 -102
  189. package/src/ui/FloatingDragMenu/styles.ts +51 -54
  190. package/src/ui/FloatingInsertButton/InsertButton.tsx +204 -217
  191. package/src/ui/FloatingInsertButton/getPopupOptions.ts +100 -115
  192. package/src/ui/FloatingInsertButton/index.tsx +248 -292
  193. package/src/ui/FloatingToolbarLabel/FloatingToolbarLabel.tsx +24 -29
  194. package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +308 -329
  195. package/src/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +85 -94
  196. package/src/ui/TableFloatingColumnControls/ColumnDropTargets/index.tsx +46 -46
  197. package/src/ui/TableFloatingColumnControls/index.tsx +116 -136
  198. package/src/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +79 -91
  199. package/src/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +95 -102
  200. package/src/ui/TableFloatingControls/CornerControls/index.tsx +1 -4
  201. package/src/ui/TableFloatingControls/CornerControls/types.ts +8 -8
  202. package/src/ui/TableFloatingControls/FloatingControlsWithSelection.tsx +50 -50
  203. package/src/ui/TableFloatingControls/NumberColumn/index.tsx +111 -124
  204. package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +86 -105
  205. package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +305 -341
  206. package/src/ui/TableFloatingControls/RowDropTarget/index.tsx +72 -75
  207. package/src/ui/TableFloatingControls/index.tsx +191 -193
  208. package/src/ui/TableFullWidthLabel/index.tsx +20 -20
  209. package/src/ui/common-styles.ts +880 -912
  210. package/src/ui/consts.ts +29 -74
  211. package/src/ui/icons/AddColLeftIcon.tsx +33 -39
  212. package/src/ui/icons/AddColRightIcon.tsx +33 -39
  213. package/src/ui/icons/AddRowAboveIcon.tsx +16 -22
  214. package/src/ui/icons/AddRowBelowIcon.tsx +33 -39
  215. package/src/ui/icons/DisplayModeIcon.tsx +31 -31
  216. package/src/ui/icons/DragHandleDisabledIcon.tsx +19 -21
  217. package/src/ui/icons/DragHandleIcon.tsx +12 -12
  218. package/src/ui/icons/DragInMotionIcon.tsx +45 -52
  219. package/src/ui/icons/MergeCellsIcon.tsx +22 -28
  220. package/src/ui/icons/MinimisedHandle.tsx +9 -9
  221. package/src/ui/icons/SplitCellIcon.tsx +30 -36
  222. package/src/ui/ui-styles.ts +769 -798
  223. package/src/utils/alignment.ts +1 -1
  224. package/src/utils/analytics.ts +192 -208
  225. package/src/utils/collapse.ts +55 -64
  226. package/src/utils/column-controls.ts +237 -254
  227. package/src/utils/create.ts +30 -30
  228. package/src/utils/decoration.ts +482 -502
  229. package/src/utils/dom.ts +127 -134
  230. package/src/utils/drag-menu.ts +322 -373
  231. package/src/utils/get-allow-add-column-custom-step.ts +4 -5
  232. package/src/utils/guidelines.ts +10 -21
  233. package/src/utils/index.ts +68 -68
  234. package/src/utils/merged-cells.ts +245 -254
  235. package/src/utils/nodes.ts +91 -106
  236. package/src/utils/paste.ts +119 -135
  237. package/src/utils/row-controls.ts +199 -213
  238. package/src/utils/selection.ts +77 -87
  239. package/src/utils/snapping.ts +84 -97
  240. package/src/utils/table.ts +44 -44
  241. package/src/utils/transforms.ts +5 -5
  242. package/src/utils/update-plugin-state-decorations.ts +5 -9
@@ -1,8 +1,8 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
2
 
3
3
  import {
4
- attachClosestEdge,
5
- type Edge,
4
+ attachClosestEdge,
5
+ type Edge,
6
6
  } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
7
7
  import { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
8
8
 
@@ -10,90 +10,87 @@ import { getDragBehaviour } from '../../../pm-plugins/drag-and-drop/utils/getDra
10
10
  import type { DraggableSourceData } from '../../../types';
11
11
 
12
12
  export type RowDropTargetProps = {
13
- index: number;
14
- localId?: string;
15
- style?: React.CSSProperties;
13
+ index: number;
14
+ localId?: string;
15
+ style?: React.CSSProperties;
16
16
  };
17
17
 
18
18
  const RowDropTarget = ({ index, localId, style }: RowDropTargetProps) => {
19
- const dropTargetRef = useRef<HTMLDivElement | null>(null);
19
+ const dropTargetRef = useRef<HTMLDivElement | null>(null);
20
20
 
21
- useEffect(() => {
22
- if (!dropTargetRef.current) {
23
- return;
24
- }
21
+ useEffect(() => {
22
+ if (!dropTargetRef.current) {
23
+ return;
24
+ }
25
25
 
26
- return dropTargetForElements({
27
- element: dropTargetRef.current,
28
- canDrop({ source, input }) {
29
- const data = source.data as DraggableSourceData;
30
- const behaviour = getDragBehaviour(input);
26
+ return dropTargetForElements({
27
+ element: dropTargetRef.current,
28
+ canDrop({ source, input }) {
29
+ const data = source.data as DraggableSourceData;
30
+ const behaviour = getDragBehaviour(input);
31
31
 
32
- // A move drop is limited too where it can go, however a clone can drop can go anywhere.
33
- const isDropValid =
34
- behaviour === 'move'
35
- ? data.indexes?.indexOf(index) === -1
36
- : behaviour === 'clone';
32
+ // A move drop is limited too where it can go, however a clone can drop can go anywhere.
33
+ const isDropValid =
34
+ behaviour === 'move' ? data.indexes?.indexOf(index) === -1 : behaviour === 'clone';
37
35
 
38
- return (
39
- // Only draggables of row type can be dropped on this target
40
- data.type === 'table-row' &&
41
- // Only draggables which came from the same table can be dropped on this target
42
- data.localId === localId &&
43
- // Only draggables which DO NOT include this drop targets index can be dropped
44
- !!data.indexes?.length &&
45
- isDropValid
46
- );
47
- },
48
- getDropEffect: ({ input }) =>
49
- getDragBehaviour(input) === 'clone' ? 'copy' : 'move',
50
- getIsSticky: () => true,
51
- getData({ source, input, element }) {
52
- const data = {
53
- localId,
54
- type: 'table-row',
55
- targetIndex: index,
56
- };
36
+ return (
37
+ // Only draggables of row type can be dropped on this target
38
+ data.type === 'table-row' &&
39
+ // Only draggables which came from the same table can be dropped on this target
40
+ data.localId === localId &&
41
+ // Only draggables which DO NOT include this drop targets index can be dropped
42
+ !!data.indexes?.length &&
43
+ isDropValid
44
+ );
45
+ },
46
+ getDropEffect: ({ input }) => (getDragBehaviour(input) === 'clone' ? 'copy' : 'move'),
47
+ getIsSticky: () => true,
48
+ getData({ source, input, element }) {
49
+ const data = {
50
+ localId,
51
+ type: 'table-row',
52
+ targetIndex: index,
53
+ };
57
54
 
58
- const srcData = source.data as DraggableSourceData;
59
- const behaviour = getDragBehaviour(input);
55
+ const srcData = source.data as DraggableSourceData;
56
+ const behaviour = getDragBehaviour(input);
60
57
 
61
- // During a move op there's no point in allowing edges to be dropped on which result in no change/move to occur.
62
- const allowedEdges: Edge[] =
63
- behaviour === 'move'
64
- ? srcData.indexes?.reduce(
65
- (acc, v) => {
66
- if (v - index === -1) {
67
- acc.shift();
68
- }
69
- if (v - index === 1) {
70
- acc.pop();
71
- }
72
- return acc;
73
- },
74
- ['top', 'bottom'],
75
- )
76
- : ['top', 'bottom'];
58
+ // During a move op there's no point in allowing edges to be dropped on which result in no change/move to occur.
59
+ const allowedEdges: Edge[] =
60
+ behaviour === 'move'
61
+ ? srcData.indexes?.reduce(
62
+ (acc, v) => {
63
+ if (v - index === -1) {
64
+ acc.shift();
65
+ }
66
+ if (v - index === 1) {
67
+ acc.pop();
68
+ }
69
+ return acc;
70
+ },
71
+ ['top', 'bottom'],
72
+ )
73
+ : ['top', 'bottom'];
77
74
 
78
- return attachClosestEdge(data, {
79
- input,
80
- element,
81
- allowedEdges,
82
- });
83
- },
84
- });
85
- }, [index, localId]);
75
+ return attachClosestEdge(data, {
76
+ input,
77
+ element,
78
+ allowedEdges,
79
+ });
80
+ },
81
+ });
82
+ }, [index, localId]);
86
83
 
87
- return (
88
- <div
89
- ref={dropTargetRef}
90
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
91
- style={style}
92
- data-drop-target-index={index}
93
- data-drop-target-localid={localId}
94
- data-testid="table-floating-row-controls-drop-target"
95
- ></div>
96
- );
84
+ return (
85
+ <div
86
+ ref={dropTargetRef}
87
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
88
+ style={style}
89
+ data-drop-target-index={index}
90
+ data-drop-target-localid={localId}
91
+ data-testid="table-floating-row-controls-drop-target"
92
+ ></div>
93
+ );
97
94
  };
98
95
 
99
96
  export default RowDropTarget;
@@ -15,218 +15,216 @@ import { TableCssClassName as ClassName } from '../../types';
15
15
  import type { CellHoverMeta } from '../../types';
16
16
 
17
17
  import {
18
- CornerControls,
19
- DragCornerControls,
20
- DragCornerControlsWithSelection,
18
+ CornerControls,
19
+ DragCornerControls,
20
+ DragCornerControlsWithSelection,
21
21
  } from './CornerControls';
22
22
  import { FloatingControlsWithSelection } from './FloatingControlsWithSelection';
23
23
  import NumberColumn from './NumberColumn';
24
24
  import { DragControls, RowControls } from './RowControls';
25
25
 
26
26
  export interface TableFloatingControlsProps {
27
- editorView: EditorView;
28
- selection?: Selection;
29
- tableRef?: HTMLTableElement;
30
- tableNode?: PmNode;
31
- tableActive?: boolean;
32
- isInDanger?: boolean;
33
- isTableHovered?: boolean;
34
- isResizing?: boolean;
35
- isHeaderRowEnabled?: boolean;
36
- isHeaderColumnEnabled?: boolean;
37
- isNumberColumnEnabled?: boolean;
38
- isDragAndDropEnabled?: boolean;
39
- hasHeaderRow?: boolean;
40
- headerRowHeight?: number;
41
- hoveredRows?: number[];
42
- hoveredCell?: CellHoverMeta;
43
- ordering?: TableColumnOrdering;
44
- stickyHeader?: RowStickyState;
45
- insertRowButtonIndex?: number;
46
- tableWrapperWidth?: number;
27
+ editorView: EditorView;
28
+ selection?: Selection;
29
+ tableRef?: HTMLTableElement;
30
+ tableNode?: PmNode;
31
+ tableActive?: boolean;
32
+ isInDanger?: boolean;
33
+ isTableHovered?: boolean;
34
+ isResizing?: boolean;
35
+ isHeaderRowEnabled?: boolean;
36
+ isHeaderColumnEnabled?: boolean;
37
+ isNumberColumnEnabled?: boolean;
38
+ isDragAndDropEnabled?: boolean;
39
+ hasHeaderRow?: boolean;
40
+ headerRowHeight?: number;
41
+ hoveredRows?: number[];
42
+ hoveredCell?: CellHoverMeta;
43
+ ordering?: TableColumnOrdering;
44
+ stickyHeader?: RowStickyState;
45
+ insertRowButtonIndex?: number;
46
+ tableWrapperWidth?: number;
47
47
  }
48
48
 
49
49
  export const TableFloatingControls = ({
50
- editorView,
51
- tableRef,
52
- tableNode,
53
- isInDanger,
54
- isResizing,
55
- isNumberColumnEnabled,
56
- isHeaderRowEnabled,
57
- isHeaderColumnEnabled,
58
- tableActive,
59
- hasHeaderRow,
60
- hoveredRows,
61
- stickyHeader,
62
- isDragAndDropEnabled,
63
- hoveredCell,
64
- isTableHovered,
65
- tableWrapperWidth,
66
- api,
50
+ editorView,
51
+ tableRef,
52
+ tableNode,
53
+ isInDanger,
54
+ isResizing,
55
+ isNumberColumnEnabled,
56
+ isHeaderRowEnabled,
57
+ isHeaderColumnEnabled,
58
+ tableActive,
59
+ hasHeaderRow,
60
+ hoveredRows,
61
+ stickyHeader,
62
+ isDragAndDropEnabled,
63
+ hoveredCell,
64
+ isTableHovered,
65
+ tableWrapperWidth,
66
+ api,
67
67
  }: TableFloatingControlsProps & { api?: ExtractInjectionAPI<TablePlugin> }) => {
68
- const _selectRow = useCallback(
69
- (row: number, expand: boolean) => {
70
- const { state, dispatch } = editorView;
71
- // fix for issue ED-4665
72
- if (browser.ie_version === 11) {
73
- (editorView.dom as HTMLElement).blur();
74
- }
75
- selectRow(row, expand)(state, dispatch);
76
- },
77
- [editorView],
78
- );
68
+ const _selectRow = useCallback(
69
+ (row: number, expand: boolean) => {
70
+ const { state, dispatch } = editorView;
71
+ // fix for issue ED-4665
72
+ if (browser.ie_version === 11) {
73
+ (editorView.dom as HTMLElement).blur();
74
+ }
75
+ selectRow(row, expand)(state, dispatch);
76
+ },
77
+ [editorView],
78
+ );
79
79
 
80
- const _selectRows = useCallback(
81
- (rowIndexes: number[]) => {
82
- const { state, dispatch } = editorView;
83
- // fix for issue ED-4665
84
- if (browser.ie_version === 11) {
85
- (editorView.dom as HTMLElement).blur();
86
- }
87
- selectRows(rowIndexes)(state, dispatch);
88
- },
89
- [editorView],
90
- );
80
+ const _selectRows = useCallback(
81
+ (rowIndexes: number[]) => {
82
+ const { state, dispatch } = editorView;
83
+ // fix for issue ED-4665
84
+ if (browser.ie_version === 11) {
85
+ (editorView.dom as HTMLElement).blur();
86
+ }
87
+ selectRows(rowIndexes)(state, dispatch);
88
+ },
89
+ [editorView],
90
+ );
91
91
 
92
- const _hoverRows = useCallback(
93
- (rows: Array<number>, danger?: boolean) => {
94
- const { state, dispatch } = editorView;
95
- hoverRows(rows, danger)(state, dispatch);
96
- },
97
- [editorView],
98
- );
92
+ const _hoverRows = useCallback(
93
+ (rows: Array<number>, danger?: boolean) => {
94
+ const { state, dispatch } = editorView;
95
+ hoverRows(rows, danger)(state, dispatch);
96
+ },
97
+ [editorView],
98
+ );
99
99
 
100
- // re-use across numbered columns and row controls
101
- const updateCellHoverLocation = useCallback(
102
- (rowIndex: number) => {
103
- const { state, dispatch } = editorView;
100
+ // re-use across numbered columns and row controls
101
+ const updateCellHoverLocation = useCallback(
102
+ (rowIndex: number) => {
103
+ const { state, dispatch } = editorView;
104
104
 
105
- if (tableActive) {
106
- // For context: Whenever we mouse over a column or row drag handle, we will ALWAYS be hovering over the 0 index
107
- // of the opposite dimension. For example; here when we mouse over the row drag handle then we're technically
108
- // also hovering over column 0 index. And vice-versa with columns. This means we don't need to worry about knowing the
109
- // current column index. We can just force it to 0.
110
- hoverCell(rowIndex, 0)(state, dispatch);
111
- }
112
- },
113
- [editorView, tableActive],
114
- );
105
+ if (tableActive) {
106
+ // For context: Whenever we mouse over a column or row drag handle, we will ALWAYS be hovering over the 0 index
107
+ // of the opposite dimension. For example; here when we mouse over the row drag handle then we're technically
108
+ // also hovering over column 0 index. And vice-versa with columns. This means we don't need to worry about knowing the
109
+ // current column index. We can just force it to 0.
110
+ hoverCell(rowIndex, 0)(state, dispatch);
111
+ }
112
+ },
113
+ [editorView, tableActive],
114
+ );
115
115
 
116
- if (!tableRef) {
117
- return null;
118
- }
116
+ if (!tableRef) {
117
+ return null;
118
+ }
119
119
 
120
- const stickyTop =
121
- stickyHeader && stickyHeader.sticky && hasHeaderRow
122
- ? stickyHeader.top
123
- : undefined;
120
+ const stickyTop =
121
+ stickyHeader && stickyHeader.sticky && hasHeaderRow ? stickyHeader.top : undefined;
124
122
 
125
- const wrapperClassName = isDragAndDropEnabled
126
- ? ClassName.DRAG_ROW_CONTROLS_WRAPPER
127
- : ClassName.ROW_CONTROLS_WRAPPER;
123
+ const wrapperClassName = isDragAndDropEnabled
124
+ ? ClassName.DRAG_ROW_CONTROLS_WRAPPER
125
+ : ClassName.ROW_CONTROLS_WRAPPER;
128
126
 
129
- return (
130
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
131
- <div className={wrapperClassName}>
132
- <div onMouseDown={(e) => !isDragAndDropEnabled && e.preventDefault()}>
133
- {isNumberColumnEnabled ? (
134
- <NumberColumn
135
- editorView={editorView}
136
- hoverRows={_hoverRows}
137
- tableRef={tableRef}
138
- tableActive={tableActive}
139
- hoveredRows={hoveredRows}
140
- hasHeaderRow={hasHeaderRow}
141
- isInDanger={isInDanger}
142
- isResizing={isResizing}
143
- selectRow={_selectRow}
144
- updateCellHoverLocation={updateCellHoverLocation}
145
- stickyTop={stickyTop}
146
- isDragAndDropEnabled={isDragAndDropEnabled}
147
- />
148
- ) : null}
127
+ return (
128
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
129
+ <div className={wrapperClassName}>
130
+ <div onMouseDown={(e) => !isDragAndDropEnabled && e.preventDefault()}>
131
+ {isNumberColumnEnabled ? (
132
+ <NumberColumn
133
+ editorView={editorView}
134
+ hoverRows={_hoverRows}
135
+ tableRef={tableRef}
136
+ tableActive={tableActive}
137
+ hoveredRows={hoveredRows}
138
+ hasHeaderRow={hasHeaderRow}
139
+ isInDanger={isInDanger}
140
+ isResizing={isResizing}
141
+ selectRow={_selectRow}
142
+ updateCellHoverLocation={updateCellHoverLocation}
143
+ stickyTop={stickyTop}
144
+ isDragAndDropEnabled={isDragAndDropEnabled}
145
+ />
146
+ ) : null}
149
147
 
150
- {tableActive && (
151
- <>
152
- {isDragAndDropEnabled ? (
153
- <>
154
- {getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
155
- <DragCornerControlsWithSelection
156
- editorView={editorView}
157
- tableRef={tableRef}
158
- isInDanger={isInDanger}
159
- isResizing={isResizing}
160
- api={api}
161
- />
162
- ) : (
163
- <DragCornerControls
164
- editorView={editorView}
165
- tableRef={tableRef}
166
- isInDanger={isInDanger}
167
- isResizing={isResizing}
168
- />
169
- )}
170
- <DragControls
171
- tableRef={tableRef}
172
- tableNode={tableNode}
173
- hoveredCell={hoveredCell}
174
- isTableHovered={isTableHovered}
175
- editorView={editorView}
176
- tableActive={tableActive}
177
- isInDanger={isInDanger}
178
- isResizing={isResizing}
179
- tableWidth={tableWrapperWidth!}
180
- hoverRows={_hoverRows}
181
- selectRow={_selectRow}
182
- selectRows={_selectRows}
183
- updateCellHoverLocation={updateCellHoverLocation}
184
- />
185
- </>
186
- ) : getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
187
- <FloatingControlsWithSelection
188
- editorView={editorView}
189
- tableRef={tableRef}
190
- isInDanger={isInDanger}
191
- isResizing={isResizing}
192
- isHeaderRowEnabled={isHeaderRowEnabled}
193
- isHeaderColumnEnabled={isHeaderColumnEnabled}
194
- hoveredRows={hoveredRows}
195
- stickyTop={tableActive ? stickyTop : undefined}
196
- tableActive={tableActive}
197
- hoverRows={_hoverRows}
198
- selectRow={_selectRow}
199
- api={api}
200
- />
201
- ) : (
202
- <>
203
- <CornerControls
204
- editorView={editorView}
205
- tableRef={tableRef}
206
- isInDanger={isInDanger}
207
- isResizing={isResizing}
208
- isHeaderRowEnabled={isHeaderRowEnabled}
209
- isHeaderColumnEnabled={isHeaderColumnEnabled}
210
- hoveredRows={hoveredRows}
211
- stickyTop={tableActive ? stickyTop : undefined}
212
- />
213
- <RowControls
214
- editorView={editorView}
215
- tableRef={tableRef}
216
- hoverRows={_hoverRows}
217
- hoveredRows={hoveredRows}
218
- isInDanger={isInDanger}
219
- isResizing={isResizing}
220
- selectRow={_selectRow}
221
- stickyTop={tableActive ? stickyTop : undefined}
222
- />
223
- </>
224
- )}
225
- </>
226
- )}
227
- </div>
228
- </div>
229
- );
148
+ {tableActive && (
149
+ <>
150
+ {isDragAndDropEnabled ? (
151
+ <>
152
+ {getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
153
+ <DragCornerControlsWithSelection
154
+ editorView={editorView}
155
+ tableRef={tableRef}
156
+ isInDanger={isInDanger}
157
+ isResizing={isResizing}
158
+ api={api}
159
+ />
160
+ ) : (
161
+ <DragCornerControls
162
+ editorView={editorView}
163
+ tableRef={tableRef}
164
+ isInDanger={isInDanger}
165
+ isResizing={isResizing}
166
+ />
167
+ )}
168
+ <DragControls
169
+ tableRef={tableRef}
170
+ tableNode={tableNode}
171
+ hoveredCell={hoveredCell}
172
+ isTableHovered={isTableHovered}
173
+ editorView={editorView}
174
+ tableActive={tableActive}
175
+ isInDanger={isInDanger}
176
+ isResizing={isResizing}
177
+ tableWidth={tableWrapperWidth!}
178
+ hoverRows={_hoverRows}
179
+ selectRow={_selectRow}
180
+ selectRows={_selectRows}
181
+ updateCellHoverLocation={updateCellHoverLocation}
182
+ />
183
+ </>
184
+ ) : getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
185
+ <FloatingControlsWithSelection
186
+ editorView={editorView}
187
+ tableRef={tableRef}
188
+ isInDanger={isInDanger}
189
+ isResizing={isResizing}
190
+ isHeaderRowEnabled={isHeaderRowEnabled}
191
+ isHeaderColumnEnabled={isHeaderColumnEnabled}
192
+ hoveredRows={hoveredRows}
193
+ stickyTop={tableActive ? stickyTop : undefined}
194
+ tableActive={tableActive}
195
+ hoverRows={_hoverRows}
196
+ selectRow={_selectRow}
197
+ api={api}
198
+ />
199
+ ) : (
200
+ <>
201
+ <CornerControls
202
+ editorView={editorView}
203
+ tableRef={tableRef}
204
+ isInDanger={isInDanger}
205
+ isResizing={isResizing}
206
+ isHeaderRowEnabled={isHeaderRowEnabled}
207
+ isHeaderColumnEnabled={isHeaderColumnEnabled}
208
+ hoveredRows={hoveredRows}
209
+ stickyTop={tableActive ? stickyTop : undefined}
210
+ />
211
+ <RowControls
212
+ editorView={editorView}
213
+ tableRef={tableRef}
214
+ hoverRows={_hoverRows}
215
+ hoveredRows={hoveredRows}
216
+ isInDanger={isInDanger}
217
+ isResizing={isResizing}
218
+ selectRow={_selectRow}
219
+ stickyTop={tableActive ? stickyTop : undefined}
220
+ />
221
+ </>
222
+ )}
223
+ </>
224
+ )}
225
+ </div>
226
+ </div>
227
+ );
230
228
  };
231
229
 
232
230
  export default TableFloatingControls;
@@ -7,30 +7,30 @@ import { Box, Inline, xcss } from '@atlaskit/primitives';
7
7
  import { token } from '@atlaskit/tokens';
8
8
 
9
9
  const tableFullWidthLabelWrapperStyles = xcss({
10
- height: token('space.400', '32px'),
11
- display: 'flex',
12
- backgroundColor: 'elevation.surface.overlay',
13
- borderRadius: 'border.radius',
14
- boxShadow:'elevation.shadow.overlay',
15
- lineHeight: 1,
16
- boxSizing: 'border-box',
17
- alignItems: 'center',
10
+ height: token('space.400', '32px'),
11
+ display: 'flex',
12
+ backgroundColor: 'elevation.surface.overlay',
13
+ borderRadius: 'border.radius',
14
+ boxShadow: 'elevation.shadow.overlay',
15
+ lineHeight: 1,
16
+ boxSizing: 'border-box',
17
+ alignItems: 'center',
18
18
  });
19
19
 
20
20
  const tableFullWidthLabelStyles = xcss({
21
- marginLeft: 'space.100',
22
- marginRight: 'space.100',
23
- paddingLeft: 'space.075',
24
- paddingRight: 'space.075',
25
- paddingTop: 'space.050',
26
- paddingBottom: 'space.050',
21
+ marginLeft: 'space.100',
22
+ marginRight: 'space.100',
23
+ paddingLeft: 'space.075',
24
+ paddingRight: 'space.075',
25
+ paddingTop: 'space.050',
26
+ paddingBottom: 'space.050',
27
27
  });
28
28
 
29
29
  export const FullWidthDisplay = () => {
30
- const { formatMessage } = useIntl();
31
- return (
32
- <Box xcss={tableFullWidthLabelWrapperStyles}>
33
- <Inline xcss={tableFullWidthLabelStyles}>{formatMessage(messages.fullWidthLabel)}</Inline>
34
- </Box>
35
- );
30
+ const { formatMessage } = useIntl();
31
+ return (
32
+ <Box xcss={tableFullWidthLabelWrapperStyles}>
33
+ <Inline xcss={tableFullWidthLabelStyles}>{formatMessage(messages.fullWidthLabel)}</Inline>
34
+ </Box>
35
+ );
36
36
  };