@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
@@ -6,109 +6,97 @@ import { injectIntl } from 'react-intl-next';
6
6
 
7
7
  import { tableMessages as messages } from '@atlaskit/editor-common/messages';
8
8
  import { TableMap } from '@atlaskit/editor-tables/table-map';
9
- import {
10
- findTable,
11
- isTableSelected,
12
- selectTable,
13
- } from '@atlaskit/editor-tables/utils';
9
+ import { findTable, isTableSelected, selectTable } from '@atlaskit/editor-tables/utils';
14
10
 
15
11
  import { clearHoverSelection, hoverTable } from '../../../commands';
16
12
  import { TableCssClassName as ClassName } from '../../../types';
17
13
 
18
14
  import type { CornerControlProps } from './types';
19
15
 
20
- class CornerControlComponent extends Component<
21
- CornerControlProps & WrappedComponentProps,
22
- any
23
- > {
24
- render() {
25
- const {
26
- isInDanger,
27
- tableRef,
28
- isHeaderColumnEnabled,
29
- isHeaderRowEnabled,
30
- intl: { formatMessage },
31
- } = this.props;
32
- if (!tableRef) {
33
- return null;
34
- }
35
- const isActive = this.isActive();
16
+ class CornerControlComponent extends Component<CornerControlProps & WrappedComponentProps, any> {
17
+ render() {
18
+ const {
19
+ isInDanger,
20
+ tableRef,
21
+ isHeaderColumnEnabled,
22
+ isHeaderRowEnabled,
23
+ intl: { formatMessage },
24
+ } = this.props;
25
+ if (!tableRef) {
26
+ return null;
27
+ }
28
+ const isActive = this.isActive();
36
29
 
37
- return (
38
- <div
39
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
40
- className={classnames(ClassName.CORNER_CONTROLS, {
41
- active: isActive,
42
- sticky: this.props.stickyTop !== undefined,
43
- })}
44
- style={{
45
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
46
- top:
47
- this.props.stickyTop !== undefined
48
- ? `${this.props.stickyTop}px`
49
- : undefined,
50
- }}
51
- contentEditable={false}
52
- >
53
- <button
54
- aria-label={formatMessage(messages.cornerControl)}
55
- type="button"
56
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
57
- className={classnames(ClassName.CONTROLS_CORNER_BUTTON, {
58
- danger: isActive && isInDanger,
59
- })}
60
- onClick={this.selectTable}
61
- onMouseOver={this.hoverTable}
62
- onMouseOut={this.clearHoverSelection}
63
- />
30
+ return (
31
+ <div
32
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
33
+ className={classnames(ClassName.CORNER_CONTROLS, {
34
+ active: isActive,
35
+ sticky: this.props.stickyTop !== undefined,
36
+ })}
37
+ style={{
38
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
39
+ top: this.props.stickyTop !== undefined ? `${this.props.stickyTop}px` : undefined,
40
+ }}
41
+ contentEditable={false}
42
+ >
43
+ <button
44
+ aria-label={formatMessage(messages.cornerControl)}
45
+ type="button"
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
47
+ className={classnames(ClassName.CONTROLS_CORNER_BUTTON, {
48
+ danger: isActive && isInDanger,
49
+ })}
50
+ onClick={this.selectTable}
51
+ onMouseOver={this.hoverTable}
52
+ onMouseOut={this.clearHoverSelection}
53
+ />
64
54
 
65
- {!isHeaderRowEnabled && (
66
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
67
- <div className={ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER}>
68
- {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
69
- <div className={ClassName.CONTROLS_INSERT_MARKER} />
70
- </div>
71
- )}
72
- {!isHeaderColumnEnabled && (
73
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
74
- <div className={ClassName.CORNER_CONTROLS_INSERT_COLUMN_MARKER}>
75
- {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
76
- <div className={ClassName.CONTROLS_INSERT_MARKER} />
77
- </div>
78
- )}
79
- </div>
80
- );
81
- }
55
+ {!isHeaderRowEnabled && (
56
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
57
+ <div className={ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER}>
58
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
59
+ <div className={ClassName.CONTROLS_INSERT_MARKER} />
60
+ </div>
61
+ )}
62
+ {!isHeaderColumnEnabled && (
63
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
64
+ <div className={ClassName.CORNER_CONTROLS_INSERT_COLUMN_MARKER}>
65
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
66
+ <div className={ClassName.CONTROLS_INSERT_MARKER} />
67
+ </div>
68
+ )}
69
+ </div>
70
+ );
71
+ }
82
72
 
83
- private isActive = () => {
84
- const { editorView, hoveredRows, isResizing } = this.props;
85
- const { selection } = editorView.state;
86
- const table = findTable(selection);
87
- if (!table) {
88
- return false;
89
- }
90
- return (
91
- isTableSelected(selection) ||
92
- (hoveredRows &&
93
- hoveredRows.length === TableMap.get(table.node).height &&
94
- !isResizing)
95
- );
96
- };
73
+ private isActive = () => {
74
+ const { editorView, hoveredRows, isResizing } = this.props;
75
+ const { selection } = editorView.state;
76
+ const table = findTable(selection);
77
+ if (!table) {
78
+ return false;
79
+ }
80
+ return (
81
+ isTableSelected(selection) ||
82
+ (hoveredRows && hoveredRows.length === TableMap.get(table.node).height && !isResizing)
83
+ );
84
+ };
97
85
 
98
- private clearHoverSelection = () => {
99
- const { state, dispatch } = this.props.editorView;
100
- clearHoverSelection()(state, dispatch);
101
- };
86
+ private clearHoverSelection = () => {
87
+ const { state, dispatch } = this.props.editorView;
88
+ clearHoverSelection()(state, dispatch);
89
+ };
102
90
 
103
- private selectTable = () => {
104
- const { state, dispatch } = this.props.editorView;
105
- dispatch(selectTable(state.tr).setMeta('addToHistory', false));
106
- };
91
+ private selectTable = () => {
92
+ const { state, dispatch } = this.props.editorView;
93
+ dispatch(selectTable(state.tr).setMeta('addToHistory', false));
94
+ };
107
95
 
108
- private hoverTable = () => {
109
- const { state, dispatch } = this.props.editorView;
110
- hoverTable()(state, dispatch);
111
- };
96
+ private hoverTable = () => {
97
+ const { state, dispatch } = this.props.editorView;
98
+ hoverTable()(state, dispatch);
99
+ };
112
100
  }
113
101
 
114
102
  export const CornerControls = injectIntl(CornerControlComponent);
@@ -7,11 +7,7 @@ import { injectIntl } from 'react-intl-next';
7
7
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
8
8
  import { tableMessages as messages } from '@atlaskit/editor-common/messages';
9
9
  import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
10
- import {
11
- findTable,
12
- isTableSelected,
13
- selectTable,
14
- } from '@atlaskit/editor-tables/utils';
10
+ import { findTable, isTableSelected, selectTable } from '@atlaskit/editor-tables/utils';
15
11
 
16
12
  import { clearHoverSelection } from '../../../commands';
17
13
  import type { TablePlugin } from '../../../plugin';
@@ -20,108 +16,105 @@ import { TableCssClassName as ClassName } from '../../../types';
20
16
  import type { CornerControlProps } from './types';
21
17
 
22
18
  const DragCornerControlsComponent = ({
23
- editorView,
24
- isInDanger,
25
- isResizing,
26
- intl: { formatMessage },
19
+ editorView,
20
+ isInDanger,
21
+ isResizing,
22
+ intl: { formatMessage },
27
23
  }: CornerControlProps & WrappedComponentProps) => {
28
- const handleOnClick = () => {
29
- const { state, dispatch } = editorView;
30
- dispatch(selectTable(state.tr).setMeta('addToHistory', false));
31
- };
32
-
33
- const handleMouseOut = () => {
34
- const { state, dispatch } = editorView;
35
- clearHoverSelection()(state, dispatch);
36
- };
37
-
38
- const isActive = useMemo(() => {
39
- const { selection } = editorView.state;
40
- const table = findTable(selection);
41
- if (!table) {
42
- return false;
43
- }
44
- return isTableSelected(selection);
45
- }, [editorView.state]);
46
-
47
- if (isResizing) {
48
- return null;
49
- }
50
-
51
- return (
52
- <button
53
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
54
- className={classnames(ClassName.DRAG_CORNER_BUTTON, {
55
- active: isActive,
56
- danger: isActive && isInDanger,
57
- })}
58
- aria-label={formatMessage(messages.cornerControl)}
59
- type="button"
60
- onClick={handleOnClick}
61
- onMouseOut={handleMouseOut}
62
- contentEditable={false}
63
- >
64
- {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
65
- <div className={ClassName.DRAG_CORNER_BUTTON_INNER} />
66
- </button>
67
- );
24
+ const handleOnClick = () => {
25
+ const { state, dispatch } = editorView;
26
+ dispatch(selectTable(state.tr).setMeta('addToHistory', false));
27
+ };
28
+
29
+ const handleMouseOut = () => {
30
+ const { state, dispatch } = editorView;
31
+ clearHoverSelection()(state, dispatch);
32
+ };
33
+
34
+ const isActive = useMemo(() => {
35
+ const { selection } = editorView.state;
36
+ const table = findTable(selection);
37
+ if (!table) {
38
+ return false;
39
+ }
40
+ return isTableSelected(selection);
41
+ }, [editorView.state]);
42
+
43
+ if (isResizing) {
44
+ return null;
45
+ }
46
+
47
+ return (
48
+ <button
49
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
50
+ className={classnames(ClassName.DRAG_CORNER_BUTTON, {
51
+ active: isActive,
52
+ danger: isActive && isInDanger,
53
+ })}
54
+ aria-label={formatMessage(messages.cornerControl)}
55
+ type="button"
56
+ onClick={handleOnClick}
57
+ onMouseOut={handleMouseOut}
58
+ contentEditable={false}
59
+ >
60
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
61
+ <div className={ClassName.DRAG_CORNER_BUTTON_INNER} />
62
+ </button>
63
+ );
68
64
  };
69
65
 
70
66
  const DragCornerControlsComponentWithSelection = ({
71
- editorView,
72
- isInDanger,
73
- isResizing,
74
- intl: { formatMessage },
75
- api,
76
- }: CornerControlProps &
77
- WrappedComponentProps & { api?: ExtractInjectionAPI<TablePlugin> }) => {
78
- const { selectionState } = useSharedPluginState(api, ['selection']);
79
-
80
- const handleOnClick = () => {
81
- const { state, dispatch } = editorView;
82
- dispatch(selectTable(state.tr).setMeta('addToHistory', false));
83
- };
84
-
85
- const handleMouseOut = () => {
86
- const { state, dispatch } = editorView;
87
- clearHoverSelection()(state, dispatch);
88
- };
89
- const isActive = useMemo(() => {
90
- if (!selectionState?.selection) {
91
- return;
92
- }
93
- const table = findTable(selectionState.selection);
94
- if (!table) {
95
- return false;
96
- }
97
- return isTableSelected(selectionState.selection);
98
- }, [selectionState]);
99
-
100
- if (isResizing) {
101
- return null;
102
- }
103
-
104
- return (
105
- <button
106
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
107
- className={classnames(ClassName.DRAG_CORNER_BUTTON, {
108
- active: isActive,
109
- danger: isActive && isInDanger,
110
- })}
111
- aria-label={formatMessage(messages.cornerControl)}
112
- type="button"
113
- onClick={handleOnClick}
114
- onMouseOut={handleMouseOut}
115
- contentEditable={false}
116
- >
117
- {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
118
- <div className={ClassName.DRAG_CORNER_BUTTON_INNER} />
119
- </button>
120
- );
67
+ editorView,
68
+ isInDanger,
69
+ isResizing,
70
+ intl: { formatMessage },
71
+ api,
72
+ }: CornerControlProps & WrappedComponentProps & { api?: ExtractInjectionAPI<TablePlugin> }) => {
73
+ const { selectionState } = useSharedPluginState(api, ['selection']);
74
+
75
+ const handleOnClick = () => {
76
+ const { state, dispatch } = editorView;
77
+ dispatch(selectTable(state.tr).setMeta('addToHistory', false));
78
+ };
79
+
80
+ const handleMouseOut = () => {
81
+ const { state, dispatch } = editorView;
82
+ clearHoverSelection()(state, dispatch);
83
+ };
84
+ const isActive = useMemo(() => {
85
+ if (!selectionState?.selection) {
86
+ return;
87
+ }
88
+ const table = findTable(selectionState.selection);
89
+ if (!table) {
90
+ return false;
91
+ }
92
+ return isTableSelected(selectionState.selection);
93
+ }, [selectionState]);
94
+
95
+ if (isResizing) {
96
+ return null;
97
+ }
98
+
99
+ return (
100
+ <button
101
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
102
+ className={classnames(ClassName.DRAG_CORNER_BUTTON, {
103
+ active: isActive,
104
+ danger: isActive && isInDanger,
105
+ })}
106
+ aria-label={formatMessage(messages.cornerControl)}
107
+ type="button"
108
+ onClick={handleOnClick}
109
+ onMouseOut={handleMouseOut}
110
+ contentEditable={false}
111
+ >
112
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 */}
113
+ <div className={ClassName.DRAG_CORNER_BUTTON_INNER} />
114
+ </button>
115
+ );
121
116
  };
122
117
 
123
- export const DragCornerControlsWithSelection = injectIntl(
124
- DragCornerControlsComponentWithSelection,
125
- );
118
+ export const DragCornerControlsWithSelection = injectIntl(DragCornerControlsComponentWithSelection);
126
119
 
127
120
  export const DragCornerControls = injectIntl(DragCornerControlsComponent);
@@ -1,5 +1,2 @@
1
1
  export { CornerControls } from './ClassicCornerControls';
2
- export {
3
- DragCornerControls,
4
- DragCornerControlsWithSelection,
5
- } from './DragCornerControls';
2
+ export { DragCornerControls, DragCornerControlsWithSelection } from './DragCornerControls';
@@ -1,12 +1,12 @@
1
1
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
2
2
 
3
3
  export type CornerControlProps = {
4
- editorView: EditorView;
5
- tableRef?: HTMLTableElement;
6
- isInDanger?: boolean;
7
- isResizing?: boolean;
8
- hoveredRows?: number[];
9
- isHeaderColumnEnabled?: boolean;
10
- isHeaderRowEnabled?: boolean;
11
- stickyTop?: number;
4
+ editorView: EditorView;
5
+ tableRef?: HTMLTableElement;
6
+ isInDanger?: boolean;
7
+ isResizing?: boolean;
8
+ hoveredRows?: number[];
9
+ isHeaderColumnEnabled?: boolean;
10
+ isHeaderRowEnabled?: boolean;
11
+ stickyTop?: number;
12
12
  };
@@ -10,59 +10,59 @@ import { CornerControls } from './CornerControls';
10
10
  import { RowControls } from './RowControls';
11
11
 
12
12
  type FloatingControlsWithSelectionProps = {
13
- editorView: EditorView;
14
- tableRef: HTMLTableElement;
15
- isInDanger?: boolean;
16
- isResizing?: boolean;
17
- isHeaderRowEnabled?: boolean;
18
- isHeaderColumnEnabled?: boolean;
19
- hoveredRows?: number[];
20
- stickyTop?: number;
21
- hoverRows: (rows: number[]) => void;
22
- selectRow: (row: number, expand: boolean) => void;
23
- tableActive: boolean;
24
- api?: ExtractInjectionAPI<TablePlugin>;
13
+ editorView: EditorView;
14
+ tableRef: HTMLTableElement;
15
+ isInDanger?: boolean;
16
+ isResizing?: boolean;
17
+ isHeaderRowEnabled?: boolean;
18
+ isHeaderColumnEnabled?: boolean;
19
+ hoveredRows?: number[];
20
+ stickyTop?: number;
21
+ hoverRows: (rows: number[]) => void;
22
+ selectRow: (row: number, expand: boolean) => void;
23
+ tableActive: boolean;
24
+ api?: ExtractInjectionAPI<TablePlugin>;
25
25
  };
26
26
 
27
27
  export const FloatingControlsWithSelection = ({
28
- editorView,
29
- tableRef,
30
- isInDanger,
31
- isResizing,
32
- isHeaderRowEnabled,
33
- isHeaderColumnEnabled,
34
- hoveredRows,
35
- stickyTop,
36
- hoverRows,
37
- selectRow,
38
- tableActive,
39
- api,
28
+ editorView,
29
+ tableRef,
30
+ isInDanger,
31
+ isResizing,
32
+ isHeaderRowEnabled,
33
+ isHeaderColumnEnabled,
34
+ hoveredRows,
35
+ stickyTop,
36
+ hoverRows,
37
+ selectRow,
38
+ tableActive,
39
+ api,
40
40
  }: FloatingControlsWithSelectionProps) => {
41
- const { selectionState } = useSharedPluginState(api, ['selection']);
41
+ const { selectionState } = useSharedPluginState(api, ['selection']);
42
42
 
43
- return (
44
- <>
45
- <CornerControls
46
- editorView={editorView}
47
- tableRef={tableRef}
48
- isInDanger={isInDanger}
49
- isResizing={isResizing}
50
- isHeaderRowEnabled={isHeaderRowEnabled}
51
- isHeaderColumnEnabled={isHeaderColumnEnabled}
52
- hoveredRows={hoveredRows}
53
- stickyTop={tableActive ? stickyTop : undefined}
54
- />
55
- <RowControls
56
- selection={selectionState?.selection}
57
- editorView={editorView}
58
- tableRef={tableRef}
59
- hoverRows={hoverRows}
60
- hoveredRows={hoveredRows}
61
- isInDanger={isInDanger}
62
- isResizing={isResizing}
63
- selectRow={selectRow}
64
- stickyTop={tableActive ? stickyTop : undefined}
65
- />
66
- </>
67
- );
43
+ return (
44
+ <>
45
+ <CornerControls
46
+ editorView={editorView}
47
+ tableRef={tableRef}
48
+ isInDanger={isInDanger}
49
+ isResizing={isResizing}
50
+ isHeaderRowEnabled={isHeaderRowEnabled}
51
+ isHeaderColumnEnabled={isHeaderColumnEnabled}
52
+ hoveredRows={hoveredRows}
53
+ stickyTop={tableActive ? stickyTop : undefined}
54
+ />
55
+ <RowControls
56
+ selection={selectionState?.selection}
57
+ editorView={editorView}
58
+ tableRef={tableRef}
59
+ hoverRows={hoverRows}
60
+ hoveredRows={hoveredRows}
61
+ isInDanger={isInDanger}
62
+ isResizing={isResizing}
63
+ selectRow={selectRow}
64
+ stickyTop={tableActive ? stickyTop : undefined}
65
+ />
66
+ </>
67
+ );
68
68
  };