@atlaskit/editor-plugin-table 7.16.11 → 7.16.13

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 (254) hide show
  1. package/.eslintrc.js +3 -3
  2. package/CHANGELOG.md +16 -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 +83 -27
  6. package/dist/cjs/nodeviews/TableResizer.js +40 -19
  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/guidelines.js +7 -4
  16. package/dist/cjs/utils/merged-cells.js +3 -3
  17. package/dist/cjs/utils/snapping.js +7 -8
  18. package/dist/es2019/commands/misc.js +3 -3
  19. package/dist/es2019/nodeviews/TableContainer.js +70 -9
  20. package/dist/es2019/nodeviews/TableResizer.js +42 -21
  21. package/dist/es2019/nodeviews/TableRow.js +21 -21
  22. package/dist/es2019/pm-plugins/table-resizing/plugin.js +3 -3
  23. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  24. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +3 -3
  25. package/dist/es2019/ui/FloatingContextualMenu/styles.js +47 -47
  26. package/dist/es2019/ui/FloatingDragMenu/styles.js +30 -30
  27. package/dist/es2019/ui/common-styles.js +802 -816
  28. package/dist/es2019/ui/ui-styles.js +665 -678
  29. package/dist/es2019/utils/guidelines.js +5 -2
  30. package/dist/es2019/utils/merged-cells.js +3 -3
  31. package/dist/es2019/utils/snapping.js +5 -6
  32. package/dist/esm/commands/misc.js +3 -3
  33. package/dist/esm/nodeviews/TableCell.js +10 -10
  34. package/dist/esm/nodeviews/TableContainer.js +85 -29
  35. package/dist/esm/nodeviews/TableResizer.js +42 -21
  36. package/dist/esm/nodeviews/TableRow.js +23 -23
  37. package/dist/esm/pm-plugins/table-resizing/plugin.js +3 -3
  38. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  39. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +3 -3
  40. package/dist/esm/ui/FloatingContextualMenu/styles.js +1 -1
  41. package/dist/esm/ui/FloatingDragMenu/styles.js +1 -1
  42. package/dist/esm/ui/common-styles.js +13 -13
  43. package/dist/esm/ui/ui-styles.js +25 -25
  44. package/dist/esm/utils/guidelines.js +6 -3
  45. package/dist/esm/utils/merged-cells.js +3 -3
  46. package/dist/esm/utils/snapping.js +6 -7
  47. package/dist/types/nodeviews/TableResizer.d.ts +2 -1
  48. package/dist/types/pm-plugins/decorations/utils/index.d.ts +1 -1
  49. package/dist/types/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
  50. package/dist/types/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
  51. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  52. package/dist/types/ui/ColumnResizeWidget/index.d.ts +1 -1
  53. package/dist/types/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
  54. package/dist/types/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
  55. package/dist/types/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
  56. package/dist/types/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  57. package/dist/types/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
  58. package/dist/types/utils/guidelines.d.ts +2 -1
  59. package/dist/types/utils/snapping.d.ts +3 -2
  60. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
  61. package/dist/types-ts4.5/pm-plugins/decorations/utils/index.d.ts +1 -1
  62. package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
  63. package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
  64. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  65. package/dist/types-ts4.5/ui/ColumnResizeWidget/index.d.ts +1 -1
  66. package/dist/types-ts4.5/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
  67. package/dist/types-ts4.5/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
  68. package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
  69. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  70. package/dist/types-ts4.5/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
  71. package/dist/types-ts4.5/utils/guidelines.d.ts +2 -1
  72. package/dist/types-ts4.5/utils/snapping.d.ts +3 -2
  73. package/docs/0-intro.tsx +9 -7
  74. package/package.json +3 -3
  75. package/report.api.md +67 -66
  76. package/src/commands/clear.ts +36 -44
  77. package/src/commands/collapse.ts +8 -8
  78. package/src/commands/column-resize.ts +412 -452
  79. package/src/commands/delete.ts +14 -14
  80. package/src/commands/display-mode.ts +10 -11
  81. package/src/commands/go-to-next-cell.ts +48 -54
  82. package/src/commands/hover.ts +210 -227
  83. package/src/commands/index.ts +35 -35
  84. package/src/commands/insert.ts +208 -235
  85. package/src/commands/misc.ts +655 -748
  86. package/src/commands/referentiality.ts +9 -9
  87. package/src/commands/selection.ts +433 -563
  88. package/src/commands/sort.ts +68 -86
  89. package/src/commands/split-cell.ts +14 -14
  90. package/src/commands/toggle.ts +69 -67
  91. package/src/commands-with-analytics.ts +570 -639
  92. package/src/create-plugin-config.ts +13 -13
  93. package/src/event-handlers.ts +513 -612
  94. package/src/handlers.ts +120 -133
  95. package/src/nodeviews/ExternalDropTargets.tsx +68 -73
  96. package/src/nodeviews/OverflowShadowsObserver.ts +148 -157
  97. package/src/nodeviews/TableCell.ts +47 -54
  98. package/src/nodeviews/TableComponent.tsx +1018 -1112
  99. package/src/nodeviews/TableComponentWithSharedState.tsx +91 -94
  100. package/src/nodeviews/TableContainer.tsx +384 -340
  101. package/src/nodeviews/TableNodeViewBase.ts +19 -24
  102. package/src/nodeviews/TableResizer.tsx +642 -653
  103. package/src/nodeviews/TableRow.ts +580 -629
  104. package/src/nodeviews/TableStickyScrollbar.ts +173 -190
  105. package/src/nodeviews/__mocks__/OverflowShadowsObserver.ts +8 -8
  106. package/src/nodeviews/__mocks__/OverridableMock.ts +14 -15
  107. package/src/nodeviews/table.tsx +345 -375
  108. package/src/nodeviews/types.ts +21 -24
  109. package/src/nodeviews/update-overflow-shadows.ts +8 -14
  110. package/src/plugin.tsx +578 -603
  111. package/src/pm-plugins/analytics/actions.ts +10 -12
  112. package/src/pm-plugins/analytics/commands.ts +31 -37
  113. package/src/pm-plugins/analytics/plugin-factory.ts +4 -2
  114. package/src/pm-plugins/analytics/plugin-key.ts +1 -3
  115. package/src/pm-plugins/analytics/plugin.ts +60 -70
  116. package/src/pm-plugins/analytics/reducer.ts +19 -19
  117. package/src/pm-plugins/analytics/types.ts +10 -10
  118. package/src/pm-plugins/analytics/utils/moved-event.ts +38 -38
  119. package/src/pm-plugins/decorations/plugin.ts +58 -77
  120. package/src/pm-plugins/decorations/utils/column-controls.ts +59 -71
  121. package/src/pm-plugins/decorations/utils/column-resizing.ts +50 -57
  122. package/src/pm-plugins/decorations/utils/compose-decorations.ts +6 -6
  123. package/src/pm-plugins/decorations/utils/index.ts +3 -6
  124. package/src/pm-plugins/decorations/utils/types.ts +7 -12
  125. package/src/pm-plugins/default-table-selection.ts +3 -3
  126. package/src/pm-plugins/drag-and-drop/actions.ts +25 -25
  127. package/src/pm-plugins/drag-and-drop/commands-with-analytics.ts +158 -190
  128. package/src/pm-plugins/drag-and-drop/commands.ts +154 -170
  129. package/src/pm-plugins/drag-and-drop/consts.ts +4 -5
  130. package/src/pm-plugins/drag-and-drop/plugin-factory.ts +23 -20
  131. package/src/pm-plugins/drag-and-drop/plugin-key.ts +1 -3
  132. package/src/pm-plugins/drag-and-drop/plugin.ts +329 -383
  133. package/src/pm-plugins/drag-and-drop/reducer.ts +30 -30
  134. package/src/pm-plugins/drag-and-drop/types.ts +8 -8
  135. package/src/pm-plugins/drag-and-drop/utils/autoscrollers.ts +38 -41
  136. package/src/pm-plugins/drag-and-drop/utils/getDragBehaviour.ts +3 -6
  137. package/src/pm-plugins/drag-and-drop/utils/monitor.ts +57 -70
  138. package/src/pm-plugins/keymap.ts +208 -220
  139. package/src/pm-plugins/main.ts +348 -400
  140. package/src/pm-plugins/plugin-factory.ts +32 -34
  141. package/src/pm-plugins/safari-delete-composition-text-issue-workaround.ts +83 -97
  142. package/src/pm-plugins/sticky-headers/commands.ts +2 -6
  143. package/src/pm-plugins/sticky-headers/plugin-key.ts +1 -3
  144. package/src/pm-plugins/sticky-headers/plugin-state.ts +41 -44
  145. package/src/pm-plugins/sticky-headers/plugin.ts +4 -4
  146. package/src/pm-plugins/sticky-headers/types.ts +8 -8
  147. package/src/pm-plugins/sticky-headers/util.ts +10 -10
  148. package/src/pm-plugins/table-analytics.ts +70 -72
  149. package/src/pm-plugins/table-local-id.ts +180 -184
  150. package/src/pm-plugins/table-resizing/commands.ts +72 -85
  151. package/src/pm-plugins/table-resizing/event-handlers.ts +298 -317
  152. package/src/pm-plugins/table-resizing/plugin-factory.ts +10 -10
  153. package/src/pm-plugins/table-resizing/plugin-key.ts +1 -3
  154. package/src/pm-plugins/table-resizing/plugin.ts +61 -68
  155. package/src/pm-plugins/table-resizing/reducer.ts +30 -33
  156. package/src/pm-plugins/table-resizing/utils/colgroup.ts +84 -84
  157. package/src/pm-plugins/table-resizing/utils/column-state.ts +78 -81
  158. package/src/pm-plugins/table-resizing/utils/content-width.ts +94 -114
  159. package/src/pm-plugins/table-resizing/utils/dom.ts +93 -110
  160. package/src/pm-plugins/table-resizing/utils/index.ts +29 -34
  161. package/src/pm-plugins/table-resizing/utils/misc.ts +94 -119
  162. package/src/pm-plugins/table-resizing/utils/resize-column.ts +93 -106
  163. package/src/pm-plugins/table-resizing/utils/resize-logic.ts +240 -257
  164. package/src/pm-plugins/table-resizing/utils/resize-state.ts +343 -372
  165. package/src/pm-plugins/table-resizing/utils/scale-table.ts +202 -207
  166. package/src/pm-plugins/table-resizing/utils/types.ts +17 -17
  167. package/src/pm-plugins/table-resizing/utils/unit-to-number.ts +1 -2
  168. package/src/pm-plugins/table-selection-keymap.ts +25 -51
  169. package/src/pm-plugins/table-width.ts +191 -204
  170. package/src/pm-plugins/view-mode-sort/index.ts +223 -227
  171. package/src/pm-plugins/view-mode-sort/plugin-key.ts +3 -2
  172. package/src/pm-plugins/view-mode-sort/types.ts +12 -12
  173. package/src/pm-plugins/view-mode-sort/utils.ts +108 -117
  174. package/src/reducer.ts +139 -155
  175. package/src/toolbar.tsx +815 -905
  176. package/src/transforms/column-width.ts +186 -213
  177. package/src/transforms/delete-columns.ts +208 -222
  178. package/src/transforms/delete-rows.ts +117 -121
  179. package/src/transforms/fix-tables.ts +190 -215
  180. package/src/transforms/merge.ts +263 -269
  181. package/src/transforms/replace-table.ts +27 -43
  182. package/src/transforms/split.ts +65 -75
  183. package/src/types.ts +421 -427
  184. package/src/ui/ColumnResizeWidget/index.tsx +40 -47
  185. package/src/ui/DragHandle/HandleIconComponent.tsx +9 -13
  186. package/src/ui/DragHandle/index.tsx +221 -250
  187. package/src/ui/DragPreview/index.tsx +35 -35
  188. package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +33 -41
  189. package/src/ui/FloatingContextualButton/FixedButton.tsx +154 -157
  190. package/src/ui/FloatingContextualButton/index.tsx +109 -115
  191. package/src/ui/FloatingContextualButton/styles.ts +43 -46
  192. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +634 -694
  193. package/src/ui/FloatingContextualMenu/index.tsx +83 -101
  194. package/src/ui/FloatingContextualMenu/styles.ts +57 -65
  195. package/src/ui/FloatingDeleteButton/DeleteButton.tsx +37 -37
  196. package/src/ui/FloatingDeleteButton/getPopUpOptions.ts +47 -57
  197. package/src/ui/FloatingDeleteButton/index.tsx +319 -350
  198. package/src/ui/FloatingDragMenu/DragMenu.tsx +555 -596
  199. package/src/ui/FloatingDragMenu/DropdownMenu.tsx +152 -162
  200. package/src/ui/FloatingDragMenu/index.tsx +88 -102
  201. package/src/ui/FloatingDragMenu/styles.ts +51 -54
  202. package/src/ui/FloatingInsertButton/InsertButton.tsx +204 -217
  203. package/src/ui/FloatingInsertButton/getPopupOptions.ts +100 -115
  204. package/src/ui/FloatingInsertButton/index.tsx +248 -292
  205. package/src/ui/FloatingToolbarLabel/FloatingToolbarLabel.tsx +24 -29
  206. package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +308 -329
  207. package/src/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +85 -94
  208. package/src/ui/TableFloatingColumnControls/ColumnDropTargets/index.tsx +46 -46
  209. package/src/ui/TableFloatingColumnControls/index.tsx +116 -136
  210. package/src/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +79 -91
  211. package/src/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +95 -102
  212. package/src/ui/TableFloatingControls/CornerControls/index.tsx +1 -4
  213. package/src/ui/TableFloatingControls/CornerControls/types.ts +8 -8
  214. package/src/ui/TableFloatingControls/FloatingControlsWithSelection.tsx +50 -50
  215. package/src/ui/TableFloatingControls/NumberColumn/index.tsx +111 -124
  216. package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +86 -105
  217. package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +305 -341
  218. package/src/ui/TableFloatingControls/RowDropTarget/index.tsx +72 -75
  219. package/src/ui/TableFloatingControls/index.tsx +191 -193
  220. package/src/ui/TableFullWidthLabel/index.tsx +20 -20
  221. package/src/ui/common-styles.ts +880 -912
  222. package/src/ui/consts.ts +29 -74
  223. package/src/ui/icons/AddColLeftIcon.tsx +33 -39
  224. package/src/ui/icons/AddColRightIcon.tsx +33 -39
  225. package/src/ui/icons/AddRowAboveIcon.tsx +16 -22
  226. package/src/ui/icons/AddRowBelowIcon.tsx +33 -39
  227. package/src/ui/icons/DisplayModeIcon.tsx +31 -31
  228. package/src/ui/icons/DragHandleDisabledIcon.tsx +19 -21
  229. package/src/ui/icons/DragHandleIcon.tsx +12 -12
  230. package/src/ui/icons/DragInMotionIcon.tsx +45 -52
  231. package/src/ui/icons/MergeCellsIcon.tsx +22 -28
  232. package/src/ui/icons/MinimisedHandle.tsx +9 -9
  233. package/src/ui/icons/SplitCellIcon.tsx +30 -36
  234. package/src/ui/ui-styles.ts +769 -798
  235. package/src/utils/alignment.ts +1 -1
  236. package/src/utils/analytics.ts +192 -208
  237. package/src/utils/collapse.ts +55 -64
  238. package/src/utils/column-controls.ts +237 -254
  239. package/src/utils/create.ts +30 -30
  240. package/src/utils/decoration.ts +482 -502
  241. package/src/utils/dom.ts +127 -134
  242. package/src/utils/drag-menu.ts +322 -373
  243. package/src/utils/get-allow-add-column-custom-step.ts +4 -5
  244. package/src/utils/guidelines.ts +16 -21
  245. package/src/utils/index.ts +68 -68
  246. package/src/utils/merged-cells.ts +245 -254
  247. package/src/utils/nodes.ts +91 -106
  248. package/src/utils/paste.ts +119 -135
  249. package/src/utils/row-controls.ts +199 -213
  250. package/src/utils/selection.ts +77 -87
  251. package/src/utils/snapping.ts +87 -100
  252. package/src/utils/table.ts +44 -44
  253. package/src/utils/transforms.ts +5 -5
  254. package/src/utils/update-plugin-state-decorations.ts +5 -9
@@ -4,11 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.findClosestSnap = exports.defaultTablePreserveSnappingWidths = exports.defaultSnappingWidths = exports.calculateDefaultTablePreserveSnappings = exports.calculateDefaultSnappings = void 0;
7
+ exports.findClosestSnap = exports.defaultTablePreserveSnappingWidths = exports.defaultSnappingWidths = exports.calculateDefaultTablePreserveSnappings = exports.calculateDefaultSnappings = exports.PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _guideline = require("@atlaskit/editor-common/guideline");
10
10
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
- var _consts = require("../ui/consts");
12
11
  var numberOfLanesInDefaultLayoutWidth = 12;
13
12
  var calculateSubSnappingWidths = function calculateSubSnappingWidths(totalLanes, totalWidth) {
14
13
  return new Array(Math.round(totalLanes / 2) - 1).fill(totalWidth / totalLanes).map(function (v, i) {
@@ -27,7 +26,7 @@ var calculateDefaultTablePreserveSnappings = exports.calculateDefaultTablePreser
27
26
  innerGuidelines: false,
28
27
  breakoutPoints: false
29
28
  };
30
- var dynamicFullWidthLine = editorContainerWith - _editorSharedStyles.akEditorGutterPadding * 2 >= _editorSharedStyles.akEditorFullWidthLayoutWidth ? _editorSharedStyles.akEditorFullWidthLayoutWidth : editorContainerWith - _editorSharedStyles.akEditorGutterPadding * 2 - _consts.tableResizerWidth;
29
+ var dynamicFullWidthLine = editorContainerWith - _editorSharedStyles.akEditorGutterPadding * 2 >= _editorSharedStyles.akEditorFullWidthLayoutWidth ? _editorSharedStyles.akEditorFullWidthLayoutWidth : editorContainerWith - _editorSharedStyles.akEditorGutterPadding * 2;
31
30
  var guides = [dynamicFullWidthLine - lengthOffset];
32
31
  if (!exclude.breakoutPoints) {
33
32
  guides.unshift(_editorSharedStyles.akEditorDefaultLayoutWidth + lengthOffset, _editorSharedStyles.akEditorCalculatedWideLayoutWidth + lengthOffset);
@@ -38,18 +37,18 @@ var calculateDefaultTablePreserveSnappings = exports.calculateDefaultTablePreser
38
37
  return guides;
39
38
  };
40
39
  var defaultSnappingWidths = exports.defaultSnappingWidths = calculateDefaultSnappings();
41
-
40
+ var PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET = exports.PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET = 0;
42
41
  // FF TablePreserve for defaultSnappingWidths
43
- var defaultTablePreserveSnappingWidths = exports.defaultTablePreserveSnappingWidths = function defaultTablePreserveSnappingWidths(editorContainerWidth) {
44
- var exclude = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
42
+ var defaultTablePreserveSnappingWidths = exports.defaultTablePreserveSnappingWidths = function defaultTablePreserveSnappingWidths(lengthOffset, editorContainerWidth) {
43
+ var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
45
44
  innerGuidelines: false,
46
45
  breakoutPoints: false
47
46
  };
48
- return editorContainerWidth - _editorSharedStyles.akEditorGutterPadding * 2 > _editorSharedStyles.akEditorFullWidthLayoutWidth ? calculateDefaultSnappings() : calculateDefaultTablePreserveSnappings(0, editorContainerWidth, exclude);
47
+ return editorContainerWidth - _editorSharedStyles.akEditorGutterPadding * 2 > _editorSharedStyles.akEditorFullWidthLayoutWidth ? calculateDefaultSnappings() : calculateDefaultTablePreserveSnappings(lengthOffset, editorContainerWidth, exclude); // lengthOffset was hardcoded 0 here, created PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET instead.
49
48
  };
50
49
 
51
50
  /**
52
- * Returns keys of guidelines that are closest to the table and withthin the snapGap
51
+ * Returns keys of guidelines that are closest to the table and within the snapGap
53
52
  */
54
53
  var findClosestSnap = exports.findClosestSnap = function findClosestSnap(currentWidth, snapWidths, guidelines) {
55
54
  var snapGap = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
@@ -278,9 +278,9 @@ export const moveCursorBackward = (state, dispatch) => {
278
278
  }
279
279
 
280
280
  /*
281
- ensure we're just at a top level paragraph
282
- otherwise, perform regular backspace behaviour
283
- */
281
+ ensure we're just at a top level paragraph
282
+ otherwise, perform regular backspace behaviour
283
+ */
284
284
  const grandparent = $cursor.node($cursor.depth - 1);
285
285
  if ($cursor.parent.type !== state.schema.nodes.paragraph || grandparent && grandparent.type !== state.schema.nodes.doc) {
286
286
  return false;
@@ -1,8 +1,9 @@
1
- import React, { forwardRef, useCallback, useMemo, useRef, useState } from 'react';
1
+ import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
4
4
  import { getTableContainerWidth } from '@atlaskit/editor-common/node-width';
5
- import { akEditorDefaultLayoutWidth, akEditorGutterPadding, akEditorMediaResizeHandlerPaddingWide, akEditorMobileBreakoutPoint } from '@atlaskit/editor-shared-styles';
5
+ import { akEditorDefaultLayoutWidth, akEditorGutterPadding, akEditorMobileBreakoutPoint } from '@atlaskit/editor-shared-styles';
6
+ import { setTableAlignmentWithTableContentWithPos } from '../commands/misc';
6
7
  import { TABLE_MAX_WIDTH } from '../pm-plugins/table-resizing/utils';
7
8
  import { TableCssClassName as ClassName } from '../types';
8
9
  import { TableResizer } from './TableResizer';
@@ -35,9 +36,37 @@ const leftAlignStyle = {
35
36
  };
36
37
  const AlignmentTableContainer = ({
37
38
  node,
38
- children
39
+ children,
40
+ pluginInjectionApi,
41
+ getPos,
42
+ editorView
39
43
  }) => {
40
44
  const alignment = node.attrs.layout;
45
+ const {
46
+ tableState
47
+ } = useSharedPluginState(pluginInjectionApi, ['table']);
48
+ useEffect(() => {
49
+ if (tableState && editorView && getPos) {
50
+ const {
51
+ wasFullWidthModeEnabled,
52
+ isFullWidthModeEnabled
53
+ } = tableState;
54
+ if (wasFullWidthModeEnabled && !isFullWidthModeEnabled && node.attrs.width > akEditorDefaultLayoutWidth) {
55
+ const pos = getPos && getPos();
56
+ if (typeof pos !== 'number') {
57
+ return;
58
+ }
59
+ const tr = setTableAlignmentWithTableContentWithPos('center', {
60
+ pos,
61
+ node
62
+ })(editorView.state);
63
+ if (tr) {
64
+ editorView.dispatch(tr);
65
+ }
66
+ }
67
+ }
68
+ // eslint-disable-next-line react-hooks/exhaustive-deps
69
+ }, [editorView, tableState, node]);
41
70
  const style = useMemo(() => {
42
71
  return alignment === 'align-start' ? leftAlignStyle : centerAlignStyle;
43
72
  }, [alignment]);
@@ -53,7 +82,10 @@ const AlignmentTableContainer = ({
53
82
  const AlignmentTableContainerWrapper = ({
54
83
  isTableAlignmentEnabled,
55
84
  node,
56
- children
85
+ children,
86
+ pluginInjectionApi,
87
+ getPos,
88
+ editorView
57
89
  }) => {
58
90
  if (!isTableAlignmentEnabled) {
59
91
  return /*#__PURE__*/React.createElement("div", {
@@ -67,7 +99,10 @@ const AlignmentTableContainerWrapper = ({
67
99
  }, children);
68
100
  }
69
101
  return /*#__PURE__*/React.createElement(AlignmentTableContainer, {
70
- node: node
102
+ node: node,
103
+ pluginInjectionApi: pluginInjectionApi,
104
+ getPos: getPos,
105
+ editorView: editorView
71
106
  }, children);
72
107
  };
73
108
  export const ResizableTableContainer = /*#__PURE__*/React.memo(({
@@ -89,6 +124,12 @@ export const ResizableTableContainer = /*#__PURE__*/React.memo(({
89
124
  const containerRef = useRef(null);
90
125
  const tableWidthRef = useRef(akEditorDefaultLayoutWidth);
91
126
  const [resizing, setIsResizing] = useState(false);
127
+ const {
128
+ tableState
129
+ } = useSharedPluginState(pluginInjectionApi, ['table']);
130
+ const {
131
+ isFullWidthModeEnabled
132
+ } = tableState;
92
133
  const updateContainerHeight = useCallback(height => {
93
134
  var _containerRef$current;
94
135
  // current StickyHeader State is not stable to be fetch.
@@ -145,9 +186,25 @@ export const ResizableTableContainer = /*#__PURE__*/React.memo(({
145
186
  const {
146
187
  editorViewModeState
147
188
  } = useSharedPluginState(pluginInjectionApi, ['editorViewMode']);
148
-
149
- // 76 is currently an accepted padding value considering the spacing for resizer handle
150
- const responsiveContainerWidth = isTableScalingEnabled ? containerWidth - akEditorGutterPadding * 2 - akEditorMediaResizeHandlerPaddingWide / 2 : containerWidth - akEditorGutterPadding * 2 - akEditorMediaResizeHandlerPaddingWide;
189
+ let responsiveContainerWidth = 0;
190
+ const resizeHandleSpacing = 12;
191
+ // When Full width editor enabled, a Mac OS user can change "ak-editor-content-area" width by
192
+ // updating Settings -> Appearance -> Show scroll bars from "When scrolling" to "Always". It causes
193
+ // issues when viwport width is less than full width Editor's width. To detect avoid them
194
+ // we need to use lineLength to defined responsiveWidth instead of containerWidth
195
+ // (which does not get updated when Mac setting changes) in Full-width editor.
196
+ if (isFullWidthModeEnabled) {
197
+ // When: Show scroll bars -> containerWidth = akEditorGutterPadding * 2 + lineLength;
198
+ // When: Always -> containerWidth = akEditorGutterPadding * 2 + lineLength + scrollbarWidth;
199
+ // scrollbarWidth can vary. Values can be 14, 15, 16 and up to 20px;
200
+ responsiveContainerWidth = isTableScalingEnabled ? lineLength : containerWidth - akEditorGutterPadding * 2 - resizeHandleSpacing;
201
+ } else {
202
+ // 76 is currently an accepted padding value considering the spacing for resizer handle
203
+ // containerWidth = width of a DIV with test id="ak-editor-fp-content-area". It is a parent of
204
+ // a DIV with className="ak-editor-content-area". This DIV has padding left and padding right.
205
+ // padding left = padding right = akEditorGutterPadding = 32
206
+ responsiveContainerWidth = isTableScalingEnabled ? containerWidth - akEditorGutterPadding * 2 : containerWidth - akEditorGutterPadding * 2 - resizeHandleSpacing;
207
+ }
151
208
  let width = Math.min(tableWidth, responsiveContainerWidth);
152
209
  if (!isResizing) {
153
210
  tableWidthRef.current = width;
@@ -167,6 +224,7 @@ export const ResizableTableContainer = /*#__PURE__*/React.memo(({
167
224
  attachAnalyticsEvent,
168
225
  displayGapCursor,
169
226
  isTableAlignmentEnabled,
227
+ isFullWidthModeEnabled,
170
228
  isTableScalingEnabled,
171
229
  isWholeTableInDanger,
172
230
  pluginInjectionApi,
@@ -176,7 +234,10 @@ export const ResizableTableContainer = /*#__PURE__*/React.memo(({
176
234
  const isLivePageViewMode = (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view';
177
235
  return /*#__PURE__*/React.createElement(AlignmentTableContainerWrapper, {
178
236
  isTableAlignmentEnabled: isTableAlignmentEnabled,
179
- node: node
237
+ node: node,
238
+ pluginInjectionApi: pluginInjectionApi,
239
+ getPos: getPos,
240
+ editorView: editorView
180
241
  }, /*#__PURE__*/React.createElement("div", {
181
242
  style: {
182
243
  width: tableWidthRef.current,
@@ -9,6 +9,7 @@ import { tableMessages as messages } from '@atlaskit/editor-common/messages';
9
9
  import { ResizerNext } from '@atlaskit/editor-common/resizer';
10
10
  import { browser } from '@atlaskit/editor-common/utils';
11
11
  import { chainCommands } from '@atlaskit/editor-prosemirror/commands';
12
+ import { akEditorGutterPadding } from '@atlaskit/editor-shared-styles';
12
13
  import { findTable } from '@atlaskit/editor-tables/utils';
13
14
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
14
15
  import { setTableAlignmentWithTableContentWithPos, updateWidthToWidest } from '../commands/misc';
@@ -18,8 +19,8 @@ import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
18
19
  import { TABLE_GUIDELINE_VISIBLE_ADJUSTMENT, TABLE_HIGHLIGHT_GAP, TABLE_HIGHLIGHT_TOLERANCE, TABLE_SNAP_GAP } from '../ui/consts';
19
20
  import { ALIGN_CENTER, ALIGN_START, normaliseAlignment } from '../utils/alignment';
20
21
  import { generateResizedPayload, generateResizeFrameRatePayloads, useMeasureFramerate } from '../utils/analytics';
21
- import { defaultGuidelines, defaultGuidelinesForPreserveTable } from '../utils/guidelines';
22
- import { defaultSnappingWidths, defaultTablePreserveSnappingWidths, findClosestSnap } from '../utils/snapping';
22
+ import { defaultGuidelines, defaultGuidelinesForPreserveTable, PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET } from '../utils/guidelines';
23
+ import { defaultSnappingWidths, defaultTablePreserveSnappingWidths, findClosestSnap, PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET } from '../utils/snapping';
23
24
  const RESIZE_STEP_VALUE = 10;
24
25
  const FULL_WIDTH_EDITOR_CONTENT_WIDTH = 1800;
25
26
  const handles = {
@@ -36,13 +37,13 @@ const getResizerHandleHeight = tableRef => {
36
37
  var _tableRef$clientHeigh;
37
38
  const tableHeight = (_tableRef$clientHeigh = tableRef === null || tableRef === void 0 ? void 0 : tableRef.clientHeight) !== null && _tableRef$clientHeigh !== void 0 ? _tableRef$clientHeigh : 0;
38
39
  /*
39
- - One row table height (minimum possible table height) ~ 45px
40
- - Two row table height ~ 90px
41
- - Three row table height ~ 134px
42
- In the if below we need to use:
43
- - > 46 because the height of the table can be a float number like 45.44.
44
- - < 96 is the height of large resize handle.
45
- */
40
+ - One row table height (minimum possible table height) ~ 45px
41
+ - Two row table height ~ 90px
42
+ - Three row table height ~ 134px
43
+ In the if below we need to use:
44
+ - > 46 because the height of the table can be a float number like 45.44.
45
+ - < 96 is the height of large resize handle.
46
+ */
46
47
  if (tableHeight >= 96) {
47
48
  return 'large';
48
49
  }
@@ -64,10 +65,26 @@ const getResizerMinWidth = node => {
64
65
  * So the guideline container won't make the fabric-editor-popup-scroll-parent overflow
65
66
  * @param guidelines
66
67
  * @param containerWidth editorWidth
68
+ * @param lineLength
69
+ * @param isTableScalingEnabled
70
+ * @param isFullWidthModeEnabled
67
71
  */
68
- const getVisibleGuidelines = (guidelines, containerWidth) => {
72
+ const getVisibleGuidelines = (guidelines, containerWidth, lineLength, isTableScalingEnabled, isFullWidthModeEnabled) => {
73
+ let guidelineVisibleAdjustment = TABLE_GUIDELINE_VISIBLE_ADJUSTMENT;
74
+ if (isTableScalingEnabled) {
75
+ // Notes:
76
+ // Example: containerWidth = 1244, lineLength = 1180 (used for when editor full width mode is enabled)
77
+ // Full width/dynamic x coordinate can be float number.
78
+ // Ex: guideline.position.x can be 590.5. So 590.5 * 2 = 1181 (not 1180).
79
+ // For PTW we need to ensure that dynamic guideline never gets excluded: 1181 should be > width + guidelineVisibleAdjustment
80
+ // guidelineVisibleAdjustment is set as a negative value, so we making it positive and adding + 1
81
+ const preserve_table_widths_adjustment = -1 * PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET + 1;
82
+ guidelineVisibleAdjustment = isFullWidthModeEnabled ? preserve_table_widths_adjustment // guidelineVisibleAdjustment = -2, if lineLength = 1180, 1181 < 1180 + 2 is true.
83
+ : -2 * akEditorGutterPadding + preserve_table_widths_adjustment; // guidelineVisibleAdjustment = -62, if containerWidth is 1244, 1181 < 1244 - 62 = 1182 is true.
84
+ }
85
+ const width = isTableScalingEnabled && isFullWidthModeEnabled ? lineLength : containerWidth;
69
86
  return guidelines.filter(guideline => {
70
- return guideline.position && guideline.position.x !== undefined && typeof guideline.position.x === 'number' && Math.abs(guideline.position.x * 2) < containerWidth + TABLE_GUIDELINE_VISIBLE_ADJUSTMENT;
87
+ return guideline.position && guideline.position.x !== undefined && typeof guideline.position.x === 'number' && Math.abs(guideline.position.x * 2) < width + guidelineVisibleAdjustment;
71
88
  });
72
89
  };
73
90
  export const TableResizer = ({
@@ -89,7 +106,8 @@ export const TableResizer = ({
89
106
  isTableScalingEnabled,
90
107
  isTableAlignmentEnabled,
91
108
  isWholeTableInDanger,
92
- pluginInjectionApi
109
+ pluginInjectionApi,
110
+ isFullWidthModeEnabled
93
111
  }) => {
94
112
  var _findTable, _editorView$state;
95
113
  const currentGap = useRef(0);
@@ -128,13 +146,15 @@ export const TableResizer = ({
128
146
  }) => {
129
147
  if (gap !== currentGap.current) {
130
148
  currentGap.current = gap;
131
- const visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? defaultGuidelinesForPreserveTable(containerWidth, excludeGuidelineConfig) : defaultGuidelines, containerWidth);
149
+ const visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? defaultGuidelinesForPreserveTable(PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, isFullWidthModeEnabled ? lineLength + 2 * akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : defaultGuidelines, containerWidth, lineLength, Boolean(isTableScalingEnabled), Boolean(isFullWidthModeEnabled));
132
150
  displayGuideline(getGuidelinesWithHighlights(gap, TABLE_SNAP_GAP, keys, visibleGuidelines));
133
151
  }
134
- }, [isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline]);
152
+ }, [isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline, lineLength, isFullWidthModeEnabled]);
135
153
  const guidelineSnaps = useMemo(() => snappingEnabled ? {
136
- x: isTableScalingEnabled ? defaultTablePreserveSnappingWidths(containerWidth, excludeGuidelineConfig) : defaultSnappingWidths
137
- } : undefined, [snappingEnabled, isTableScalingEnabled, excludeGuidelineConfig, containerWidth]);
154
+ x: isTableScalingEnabled ? defaultTablePreserveSnappingWidths(PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET,
155
+ // was hardcoded to 0, using PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET instead.
156
+ isFullWidthModeEnabled ? lineLength + 2 * akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : defaultSnappingWidths
157
+ } : undefined, [snappingEnabled, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, isFullWidthModeEnabled]);
138
158
  const switchToCenterAlignment = useCallback((pos, node, newWidth, state, dispatch) => {
139
159
  if (isTableAlignmentEnabled && node && node.attrs.layout === ALIGN_START && newWidth > lineLength && lineLength < FULL_WIDTH_EDITOR_CONTENT_WIDTH &&
140
160
  // We don't want to switch alignment in Full-width editor
@@ -192,12 +212,12 @@ export const TableResizer = ({
192
212
  name: TABLE_OVERFLOW_CHANGE_TRIGGER.RESIZED
193
213
  });
194
214
  dispatch(tr);
195
- const visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? defaultGuidelinesForPreserveTable(containerWidth, excludeGuidelineConfig) : defaultGuidelines, containerWidth);
215
+ const visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? defaultGuidelinesForPreserveTable(PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, isFullWidthModeEnabled ? lineLength + 2 * akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : defaultGuidelines, containerWidth, lineLength, Boolean(isTableScalingEnabled), Boolean(isFullWidthModeEnabled));
196
216
  setSnappingEnabled(displayGuideline(visibleGuidelines));
197
217
  if (onResizeStart) {
198
218
  onResizeStart();
199
219
  }
200
- }, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline, onResizeStart]);
220
+ }, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, displayGuideline, onResizeStart, isFullWidthModeEnabled]);
201
221
  const handleResize = useCallback((originalState, delta) => {
202
222
  var _node$attrs$localId, _node$attrs;
203
223
  countFrames();
@@ -217,7 +237,8 @@ export const TableResizer = ({
217
237
  start: pos + 1,
218
238
  parentWidth: newWidth
219
239
  }, editorView.domAtPos.bind(editorView), isTableScalingEnabled);
220
- const closestSnap = findClosestSnap(newWidth, isTableScalingEnabled ? defaultTablePreserveSnappingWidths(containerWidth, excludeGuidelineConfig) : defaultSnappingWidths, isTableScalingEnabled ? defaultGuidelinesForPreserveTable(containerWidth, excludeGuidelineConfig) : defaultGuidelines, TABLE_HIGHLIGHT_GAP, TABLE_HIGHLIGHT_TOLERANCE);
240
+ const editorContainerWidth = isFullWidthModeEnabled ? lineLength + 2 * akEditorGutterPadding : containerWidth;
241
+ const closestSnap = findClosestSnap(newWidth, isTableScalingEnabled ? defaultTablePreserveSnappingWidths(PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig) : defaultSnappingWidths, isTableScalingEnabled ? defaultGuidelinesForPreserveTable(PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig) : defaultGuidelines, TABLE_HIGHLIGHT_GAP, TABLE_HIGHLIGHT_TOLERANCE);
221
242
  updateActiveGuidelines(closestSnap);
222
243
 
223
244
  // When snapping to the full width guideline, resize the table to be 1800px
@@ -226,7 +247,7 @@ export const TableResizer = ({
226
247
  dispatch
227
248
  } = editorView;
228
249
  const currentTableNodeLocalId = (_node$attrs$localId = node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId) !== null && _node$attrs$localId !== void 0 ? _node$attrs$localId : '';
229
- const fullWidthGuideline = defaultGuidelinesForPreserveTable(containerWidth, excludeGuidelineConfig).filter(guideline => guideline.isFullWidth)[0];
250
+ const fullWidthGuideline = defaultGuidelinesForPreserveTable(PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig).filter(guideline => guideline.isFullWidth)[0];
230
251
  const isFullWidthGuidelineActive = closestSnap.keys.includes(fullWidthGuideline.key);
231
252
  const shouldUpdateWidthToWidest = !!isTableScalingEnabled && isFullWidthGuidelineActive;
232
253
  chainCommands((state, dispatch) => {
@@ -236,7 +257,7 @@ export const TableResizer = ({
236
257
  }))(state, dispatch);
237
258
  updateWidth(shouldUpdateWidthToWidest ? TABLE_MAX_WIDTH : newWidth);
238
259
  return newWidth;
239
- }, [countFrames, isTableScalingEnabled, excludeGuidelineConfig, tableRef, node, editorView, updateActiveGuidelines, containerWidth, updateWidth, getPos, switchToCenterAlignment]);
260
+ }, [countFrames, isTableScalingEnabled, isFullWidthModeEnabled, excludeGuidelineConfig, tableRef, node, editorView, updateActiveGuidelines, containerWidth, lineLength, updateWidth, getPos, switchToCenterAlignment]);
240
261
  const scheduleResize = useMemo(() => rafSchd(handleResize), [handleResize]);
241
262
  const handleResizeStop = useCallback((originalState, delta) => {
242
263
  var _node$attrs$localId2, _node$attrs2;
@@ -294,27 +294,27 @@ export default class TableRow extends TableNodeView {
294
294
  isHeaderSticky() {
295
295
  var _sentinelTop$rootBoun;
296
296
  /*
297
- # Overview
298
- I'm going to list all the view states associated with the sentinels and when they should trigger sticky headers.
299
- The format of the states are; {top|bottom}:{in|above|below}
300
- ie sentinel:view-position -- both "above" and "below" are equal to out of the viewport
301
- For example; "top:in" means top sentinel is within the viewport. "bottom:above" means the bottom sentinel is
302
- above and out of the viewport
303
- This will hopefully simplify things and make it easier to determine when sticky should/shouldn't be triggered.
304
- # States
305
- top:in / bottom:in - NOT sticky
306
- top:in / bottom:above - NOT sticky - NOTE: This is an inversion clause
307
- top:in / bottom:below - NOT sticky
308
- top:above / bottom:in - STICKY
309
- top:above / bottom:above - NOT sticky
310
- top:above / bottom:below - STICKY
311
- top:below / bottom:in - NOT sticky - NOTE: This is an inversion clause
312
- top:below / bottom:above - NOT sticky - NOTE: This is an inversion clause
313
- top:below / bottom:below - NOT sticky
314
- # Summary
315
- The only time the header should be sticky is when the top sentinel is above the view and the bottom sentinel
316
- is in or below it.
317
- */
297
+ # Overview
298
+ I'm going to list all the view states associated with the sentinels and when they should trigger sticky headers.
299
+ The format of the states are; {top|bottom}:{in|above|below}
300
+ ie sentinel:view-position -- both "above" and "below" are equal to out of the viewport
301
+ For example; "top:in" means top sentinel is within the viewport. "bottom:above" means the bottom sentinel is
302
+ above and out of the viewport
303
+ This will hopefully simplify things and make it easier to determine when sticky should/shouldn't be triggered.
304
+ # States
305
+ top:in / bottom:in - NOT sticky
306
+ top:in / bottom:above - NOT sticky - NOTE: This is an inversion clause
307
+ top:in / bottom:below - NOT sticky
308
+ top:above / bottom:in - STICKY
309
+ top:above / bottom:above - NOT sticky
310
+ top:above / bottom:below - STICKY
311
+ top:below / bottom:in - NOT sticky - NOTE: This is an inversion clause
312
+ top:below / bottom:above - NOT sticky - NOTE: This is an inversion clause
313
+ top:below / bottom:below - NOT sticky
314
+ # Summary
315
+ The only time the header should be sticky is when the top sentinel is above the view and the bottom sentinel
316
+ is in or below it.
317
+ */
318
318
 
319
319
  const {
320
320
  top: sentinelTop,
@@ -43,9 +43,9 @@ export function createPlugin(dispatch, {
43
43
  let isColumnKeyboardResizeStarted = false;
44
44
  if (getBooleanFF('platform.editor.a11y-column-resizing_emcvz')) {
45
45
  /*
46
- We need to start listening mouse events if column resize started from keyboard.
47
- This will allow continue resizing via mouse
48
- */
46
+ We need to start listening mouse events if column resize started from keyboard.
47
+ This will allow continue resizing via mouse
48
+ */
49
49
  const {
50
50
  isKeyboardResize
51
51
  } = getTablePluginState(state);
@@ -76,10 +76,10 @@ export const updateColgroup = (state, tableRef, tableNode, isTableScalingEnabled
76
76
  const cols = tableRef === null || tableRef === void 0 ? void 0 : tableRef.querySelectorAll('col');
77
77
  const columnsCount = cols === null || cols === void 0 ? void 0 : cols.length;
78
78
  /**
79
- updateColgroup will update whole table scale when click the column resize handle, this behavior will affect when table overflowed, when now resize handle been dragged and extend to make table overflowed, table will show overflow. This need to be confirmed because it conflict with how isTableScalingEnabled work.
80
- We don't want to scale the table when resizing columns, only when viewpoint shrinks the table.
81
- We need to remove !isColumnResizing if we handled auto scale table when mouseUp event.
82
- * */
79
+ updateColgroup will update whole table scale when click the column resize handle, this behavior will affect when table overflowed, when now resize handle been dragged and extend to make table overflowed, table will show overflow. This need to be confirmed because it conflict with how isTableScalingEnabled work.
80
+ We don't want to scale the table when resizing columns, only when viewpoint shrinks the table.
81
+ We need to remove !isColumnResizing if we handled auto scale table when mouseUp event.
82
+ * */
83
83
  if (isTableScalingEnabled && tableNode) {
84
84
  const scalePercent = getTableScalingPercent(tableNode, tableRef);
85
85
  state.cols.filter(column => column && !!column.width) // if width is 0, we dont want to apply that.
@@ -162,9 +162,9 @@ export const scaleTable = (tableRef, options, domAtPos, isTableScalingEnabledOnC
162
162
  // We need to do this check to reduce the number of race conditions when working with tables.
163
163
  // This metadata is been used in the sendTransaction function in the Collab plugin
164
164
  /* Added !layoutChanged check here to solve unnecessary scroll bar after publish when click on breakout button multiple times and publish
165
- scaleTable is only called once every time a breakout button is clicked, so it is safe not to add the meta 'scaleTable' to the tr.
166
- Leaving the tr.setMeta('scaleTable', true) here for race conditions that we aren't aware of.
167
- */
165
+ scaleTable is only called once every time a breakout button is clicked, so it is safe not to add the meta 'scaleTable' to the tr.
166
+ Leaving the tr.setMeta('scaleTable', true) here for race conditions that we aren't aware of.
167
+ */
168
168
  !layoutChanged && tr.setMeta('scaleTable', true);
169
169
  return tr;
170
170
  }
@@ -18,58 +18,58 @@ export const elementBeforeIconStyles = css({
18
18
  export const tablePopupStyles = (isDragAndDropEnabled
19
19
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
20
20
  ) => css`
21
- .${ClassName.CONTEXTUAL_SUBMENU} {
22
- border-radius: ${"var(--ds-border-radius, 3px)"};
23
- background: ${"var(--ds-surface-overlay, white)"};
24
- box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
25
- display: block;
26
- position: absolute;
27
- top: 0;
28
- left: ${isDragAndDropEnabled ? contextualMenuDropdownWidthDnD : contextualMenuDropdownWidth}px;
29
- padding: ${"var(--ds-space-100, 8px)"};
21
+ .${ClassName.CONTEXTUAL_SUBMENU} {
22
+ border-radius: ${"var(--ds-border-radius, 3px)"};
23
+ background: ${"var(--ds-surface-overlay, white)"};
24
+ box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
25
+ display: block;
26
+ position: absolute;
27
+ top: 0;
28
+ left: ${isDragAndDropEnabled ? contextualMenuDropdownWidthDnD : contextualMenuDropdownWidth}px;
29
+ padding: ${"var(--ds-space-100, 8px)"};
30
30
 
31
- > div {
32
- padding: 0;
33
- }
34
- }
31
+ > div {
32
+ padding: 0;
33
+ }
34
+ }
35
35
 
36
- .${ClassName.CONTEXTUAL_MENU_ICON} {
37
- display: flex;
36
+ .${ClassName.CONTEXTUAL_MENU_ICON} {
37
+ display: flex;
38
38
 
39
- &::before {
40
- content: '';
41
- display: block;
42
- border: 1px solid ${tableBackgroundBorderColor};
43
- border-radius: ${"var(--ds-border-radius, 3px)"};
44
- width: 20px;
45
- height: 20px;
46
- }
39
+ &::before {
40
+ content: '';
41
+ display: block;
42
+ border: 1px solid ${tableBackgroundBorderColor};
43
+ border-radius: ${"var(--ds-border-radius, 3px)"};
44
+ width: 20px;
45
+ height: 20px;
46
+ }
47
47
 
48
- &::after {
49
- content: '›';
50
- margin-left: ${"var(--ds-space-050, 4px)"};
51
- line-height: 20px;
52
- color: ${`var(--ds-icon, ${N90})`};
53
- }
54
- }
48
+ &::after {
49
+ content: '›';
50
+ margin-left: ${"var(--ds-space-050, 4px)"};
51
+ line-height: 20px;
52
+ color: ${`var(--ds-icon, ${N90})`};
53
+ }
54
+ }
55
55
 
56
- .${ClassName.CONTEXTUAL_MENU_ICON_SMALL} {
57
- display: flex;
56
+ .${ClassName.CONTEXTUAL_MENU_ICON_SMALL} {
57
+ display: flex;
58
58
 
59
- &::before {
60
- content: '';
61
- display: block;
62
- border: 1px solid ${tableBackgroundBorderColor};
63
- border-radius: ${"var(--ds-border-radius, 3px)"};
64
- width: 14px;
65
- height: 14px;
66
- }
59
+ &::before {
60
+ content: '';
61
+ display: block;
62
+ border: 1px solid ${tableBackgroundBorderColor};
63
+ border-radius: ${"var(--ds-border-radius, 3px)"};
64
+ width: 14px;
65
+ height: 14px;
66
+ }
67
67
 
68
- &::after {
69
- content: '›';
70
- margin-left: ${"var(--ds-space-050, 4px)"};
71
- line-height: 14px;
72
- color: ${`var(--ds-icon, ${N90})`};
73
- }
74
- }
68
+ &::after {
69
+ content: '›';
70
+ margin-left: ${"var(--ds-space-050, 4px)"};
71
+ line-height: 14px;
72
+ color: ${`var(--ds-icon, ${N90})`};
73
+ }
74
+ }
75
75
  `;
@@ -15,40 +15,40 @@ export const elementBeforeIconStyles = css({
15
15
 
16
16
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
17
17
  export const dragMenuBackgroundColorStyles = css`
18
- .${ClassName.DRAG_SUBMENU} {
19
- border-radius: ${"var(--ds-border-radius, 3px)"};
20
- background: ${"var(--ds-surface-overlay, white)"};
21
- box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
22
- display: block;
23
- position: absolute;
24
- top: 0;
25
- left: ${dragMenuDropdownWidth}px;
26
- padding: ${"var(--ds-space-100, 8px)"};
18
+ .${ClassName.DRAG_SUBMENU} {
19
+ border-radius: ${"var(--ds-border-radius, 3px)"};
20
+ background: ${"var(--ds-surface-overlay, white)"};
21
+ box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
22
+ display: block;
23
+ position: absolute;
24
+ top: 0;
25
+ left: ${dragMenuDropdownWidth}px;
26
+ padding: ${"var(--ds-space-100, 8px)"};
27
27
 
28
- > div {
29
- padding: 0;
30
- }
31
- }
28
+ > div {
29
+ padding: 0;
30
+ }
31
+ }
32
32
 
33
- .${ClassName.DRAG_SUBMENU_ICON} {
34
- display: flex;
33
+ .${ClassName.DRAG_SUBMENU_ICON} {
34
+ display: flex;
35
35
 
36
- &::before {
37
- content: '';
38
- display: block;
39
- border: 1px solid ${tableBackgroundBorderColor};
40
- border-radius: ${"var(--ds-border-radius, 3px)"};
41
- width: 14px;
42
- height: 14px;
43
- }
36
+ &::before {
37
+ content: '';
38
+ display: block;
39
+ border: 1px solid ${tableBackgroundBorderColor};
40
+ border-radius: ${"var(--ds-border-radius, 3px)"};
41
+ width: 14px;
42
+ height: 14px;
43
+ }
44
44
 
45
- &::after {
46
- content: '›';
47
- margin-left: ${"var(--ds-space-050, 4px)"};
48
- line-height: 14px;
49
- color: ${`var(--ds-icon, ${N90})`};
50
- }
51
- }
45
+ &::after {
46
+ content: '›';
47
+ margin-left: ${"var(--ds-space-050, 4px)"};
48
+ line-height: 14px;
49
+ color: ${`var(--ds-icon, ${N90})`};
50
+ }
51
+ }
52
52
  `;
53
53
  export const toggleStyles = css({
54
54
  display: 'flex',