@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
package/.eslintrc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- rules: {
3
- '@typescript-eslint/no-duplicate-imports': 'error',
4
- },
2
+ rules: {
3
+ '@typescript-eslint/no-duplicate-imports': 'error',
4
+ },
5
5
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 7.16.13
4
+
5
+ ### Patch Changes
6
+
7
+ - [#104756](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/104756)
8
+ [`bf2f24fa1ffa`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/bf2f24fa1ffa) -
9
+ [ux] Fix table container position on resize in full-width editor on smaller screens.
10
+
11
+ ## 7.16.12
12
+
13
+ ### Patch Changes
14
+
15
+ - [#105716](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/105716)
16
+ [`f25ac7b36499`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f25ac7b36499) -
17
+ [ux] Table - Change alignment from left to center when page changes from full-width to fixed
18
+
3
19
  ## 7.16.11
4
20
 
5
21
  ### Patch Changes
@@ -275,9 +275,9 @@ var moveCursorBackward = exports.moveCursorBackward = function moveCursorBackwar
275
275
  }
276
276
 
277
277
  /*
278
- ensure we're just at a top level paragraph
279
- otherwise, perform regular backspace behaviour
280
- */
278
+ ensure we're just at a top level paragraph
279
+ otherwise, perform regular backspace behaviour
280
+ */
281
281
  var grandparent = $cursor.node($cursor.depth - 1);
282
282
  if ($cursor.parent.type !== state.schema.nodes.paragraph || grandparent && grandparent.type !== state.schema.nodes.doc) {
283
283
  return false;
@@ -17,8 +17,8 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
17
17
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
18
18
  var DEFAULT_COL_SPAN = 1;
19
19
  var DEFAULT_ROW_SPAN = 1;
20
- var TableCell = exports.default = /*#__PURE__*/function (_ref) {
21
- (0, _inherits2.default)(TableCell, _ref);
20
+ var TableCell = exports.default = /*#__PURE__*/function (_TableNodeView) {
21
+ (0, _inherits2.default)(TableCell, _TableNodeView);
22
22
  var _super = _createSuper(TableCell);
23
23
  function TableCell(node, view, getPos, eventDispatcher) {
24
24
  (0, _classCallCheck2.default)(this, TableCell);
@@ -53,20 +53,20 @@ var TableCell = exports.default = /*#__PURE__*/function (_ref) {
53
53
  }
54
54
 
55
55
  // added + changed attributes
56
- var addedAttrs = Object.entries(nextAttrs).filter(function (_ref2) {
57
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
58
- key = _ref3[0],
59
- value = _ref3[1];
56
+ var addedAttrs = Object.entries(nextAttrs).filter(function (_ref) {
57
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
58
+ key = _ref2[0],
59
+ value = _ref2[1];
60
60
  return attrs[key] !== value;
61
61
  });
62
62
  var removedAttrs = Object.keys(attrs).filter(function (key) {
63
63
  return !nextAttrs.hasOwnProperty(key);
64
64
  });
65
65
  if (addedAttrs.length || removedAttrs.length) {
66
- addedAttrs.forEach(function (_ref4) {
67
- var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
68
- key = _ref5[0],
69
- value = _ref5[1];
66
+ addedAttrs.forEach(function (_ref3) {
67
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
68
+ key = _ref4[0],
69
+ value = _ref4[1];
70
70
  return _this.dom.setAttribute(key, value || '');
71
71
  });
72
72
  removedAttrs.forEach(function (key) {
@@ -12,6 +12,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _hooks = require("@atlaskit/editor-common/hooks");
13
13
  var _nodeWidth = require("@atlaskit/editor-common/node-width");
14
14
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
15
+ var _misc = require("../commands/misc");
15
16
  var _utils = require("../pm-plugins/table-resizing/utils");
16
17
  var _types = require("../types");
17
18
  var _TableResizer = require("./TableResizer");
@@ -45,8 +46,33 @@ var leftAlignStyle = {
45
46
  };
46
47
  var AlignmentTableContainer = function AlignmentTableContainer(_ref2) {
47
48
  var node = _ref2.node,
48
- children = _ref2.children;
49
+ children = _ref2.children,
50
+ pluginInjectionApi = _ref2.pluginInjectionApi,
51
+ getPos = _ref2.getPos,
52
+ editorView = _ref2.editorView;
49
53
  var alignment = node.attrs.layout;
54
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['table']),
55
+ tableState = _useSharedPluginState.tableState;
56
+ (0, _react.useEffect)(function () {
57
+ if (tableState && editorView && getPos) {
58
+ var wasFullWidthModeEnabled = tableState.wasFullWidthModeEnabled,
59
+ isFullWidthModeEnabled = tableState.isFullWidthModeEnabled;
60
+ if (wasFullWidthModeEnabled && !isFullWidthModeEnabled && node.attrs.width > _editorSharedStyles.akEditorDefaultLayoutWidth) {
61
+ var pos = getPos && getPos();
62
+ if (typeof pos !== 'number') {
63
+ return;
64
+ }
65
+ var tr = (0, _misc.setTableAlignmentWithTableContentWithPos)('center', {
66
+ pos: pos,
67
+ node: node
68
+ })(editorView.state);
69
+ if (tr) {
70
+ editorView.dispatch(tr);
71
+ }
72
+ }
73
+ }
74
+ // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ }, [editorView, tableState, node]);
50
76
  var style = (0, _react.useMemo)(function () {
51
77
  return alignment === 'align-start' ? leftAlignStyle : centerAlignStyle;
52
78
  }, [alignment]);
@@ -62,7 +88,10 @@ var AlignmentTableContainer = function AlignmentTableContainer(_ref2) {
62
88
  var AlignmentTableContainerWrapper = function AlignmentTableContainerWrapper(_ref3) {
63
89
  var isTableAlignmentEnabled = _ref3.isTableAlignmentEnabled,
64
90
  node = _ref3.node,
65
- children = _ref3.children;
91
+ children = _ref3.children,
92
+ pluginInjectionApi = _ref3.pluginInjectionApi,
93
+ getPos = _ref3.getPos,
94
+ editorView = _ref3.editorView;
66
95
  if (!isTableAlignmentEnabled) {
67
96
  return /*#__PURE__*/_react.default.createElement("div", {
68
97
  "data-testid": "table-alignment-container",
@@ -75,7 +104,10 @@ var AlignmentTableContainerWrapper = function AlignmentTableContainerWrapper(_re
75
104
  }, children);
76
105
  }
77
106
  return /*#__PURE__*/_react.default.createElement(AlignmentTableContainer, {
78
- node: node
107
+ node: node,
108
+ pluginInjectionApi: pluginInjectionApi,
109
+ getPos: getPos,
110
+ editorView: editorView
79
111
  }, children);
80
112
  };
81
113
  var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_react.default.memo(function (_ref4) {
@@ -99,6 +131,10 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
99
131
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
100
132
  resizing = _useState2[0],
101
133
  setIsResizing = _useState2[1];
134
+ var _useSharedPluginState2 = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['table']),
135
+ tableState = _useSharedPluginState2.tableState;
136
+ var _ref5 = tableState,
137
+ isFullWidthModeEnabled = _ref5.isFullWidthModeEnabled;
102
138
  var updateContainerHeight = (0, _react.useCallback)(function (height) {
103
139
  var _containerRef$current;
104
140
  // current StickyHeader State is not stable to be fetch.
@@ -152,11 +188,27 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
152
188
  return (_pluginInjectionApi$c = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c2 = pluginInjectionApi.core) === null || _pluginInjectionApi$c2 === void 0 ? void 0 : _pluginInjectionApi$c2.actions.execute(pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$s = pluginInjectionApi.selection) === null || _pluginInjectionApi$s === void 0 ? void 0 : _pluginInjectionApi$s.commands.displayGapCursor(toggle))) !== null && _pluginInjectionApi$c !== void 0 ? _pluginInjectionApi$c : false;
153
189
  }, [pluginInjectionApi]);
154
190
  var tableWidth = (0, _nodeWidth.getTableContainerWidth)(node);
155
- var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['editorViewMode']),
156
- editorViewModeState = _useSharedPluginState.editorViewModeState;
157
-
158
- // 76 is currently an accepted padding value considering the spacing for resizer handle
159
- var responsiveContainerWidth = isTableScalingEnabled ? containerWidth - _editorSharedStyles.akEditorGutterPadding * 2 - _editorSharedStyles.akEditorMediaResizeHandlerPaddingWide / 2 : containerWidth - _editorSharedStyles.akEditorGutterPadding * 2 - _editorSharedStyles.akEditorMediaResizeHandlerPaddingWide;
191
+ var _useSharedPluginState3 = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['editorViewMode']),
192
+ editorViewModeState = _useSharedPluginState3.editorViewModeState;
193
+ var responsiveContainerWidth = 0;
194
+ var resizeHandleSpacing = 12;
195
+ // When Full width editor enabled, a Mac OS user can change "ak-editor-content-area" width by
196
+ // updating Settings -> Appearance -> Show scroll bars from "When scrolling" to "Always". It causes
197
+ // issues when viwport width is less than full width Editor's width. To detect avoid them
198
+ // we need to use lineLength to defined responsiveWidth instead of containerWidth
199
+ // (which does not get updated when Mac setting changes) in Full-width editor.
200
+ if (isFullWidthModeEnabled) {
201
+ // When: Show scroll bars -> containerWidth = akEditorGutterPadding * 2 + lineLength;
202
+ // When: Always -> containerWidth = akEditorGutterPadding * 2 + lineLength + scrollbarWidth;
203
+ // scrollbarWidth can vary. Values can be 14, 15, 16 and up to 20px;
204
+ responsiveContainerWidth = isTableScalingEnabled ? lineLength : containerWidth - _editorSharedStyles.akEditorGutterPadding * 2 - resizeHandleSpacing;
205
+ } else {
206
+ // 76 is currently an accepted padding value considering the spacing for resizer handle
207
+ // containerWidth = width of a DIV with test id="ak-editor-fp-content-area". It is a parent of
208
+ // a DIV with className="ak-editor-content-area". This DIV has padding left and padding right.
209
+ // padding left = padding right = akEditorGutterPadding = 32
210
+ responsiveContainerWidth = isTableScalingEnabled ? containerWidth - _editorSharedStyles.akEditorGutterPadding * 2 : containerWidth - _editorSharedStyles.akEditorGutterPadding * 2 - resizeHandleSpacing;
211
+ }
160
212
  var width = Math.min(tableWidth, responsiveContainerWidth);
161
213
  if (!isResizing) {
162
214
  tableWidthRef.current = width;
@@ -176,6 +228,7 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
176
228
  attachAnalyticsEvent: attachAnalyticsEvent,
177
229
  displayGapCursor: displayGapCursor,
178
230
  isTableAlignmentEnabled: isTableAlignmentEnabled,
231
+ isFullWidthModeEnabled: isFullWidthModeEnabled,
179
232
  isTableScalingEnabled: isTableScalingEnabled,
180
233
  isWholeTableInDanger: isWholeTableInDanger,
181
234
  pluginInjectionApi: pluginInjectionApi,
@@ -185,7 +238,10 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
185
238
  var isLivePageViewMode = (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view';
186
239
  return /*#__PURE__*/_react.default.createElement(AlignmentTableContainerWrapper, {
187
240
  isTableAlignmentEnabled: isTableAlignmentEnabled,
188
- node: node
241
+ node: node,
242
+ pluginInjectionApi: pluginInjectionApi,
243
+ getPos: getPos,
244
+ editorView: editorView
189
245
  }, /*#__PURE__*/_react.default.createElement("div", {
190
246
  style: {
191
247
  width: tableWidthRef.current,
@@ -211,24 +267,24 @@ var ResizableTableContainer = exports.ResizableTableContainer = /*#__PURE__*/_re
211
267
  node: node
212
268
  }, children))));
213
269
  });
214
- var TableContainer = exports.TableContainer = function TableContainer(_ref5) {
215
- var children = _ref5.children,
216
- node = _ref5.node,
217
- className = _ref5.className,
218
- _ref5$containerWidth = _ref5.containerWidth,
219
- editorWidth = _ref5$containerWidth.width,
220
- lineLength = _ref5$containerWidth.lineLength,
221
- editorView = _ref5.editorView,
222
- getPos = _ref5.getPos,
223
- tableRef = _ref5.tableRef,
224
- isNested = _ref5.isNested,
225
- tableWrapperHeight = _ref5.tableWrapperHeight,
226
- isResizing = _ref5.isResizing,
227
- pluginInjectionApi = _ref5.pluginInjectionApi,
228
- isWholeTableInDanger = _ref5.isWholeTableInDanger,
229
- isTableResizingEnabled = _ref5.isTableResizingEnabled,
230
- isTableScalingEnabled = _ref5.isTableScalingEnabled,
231
- isTableAlignmentEnabled = _ref5.isTableAlignmentEnabled;
270
+ var TableContainer = exports.TableContainer = function TableContainer(_ref6) {
271
+ var children = _ref6.children,
272
+ node = _ref6.node,
273
+ className = _ref6.className,
274
+ _ref6$containerWidth = _ref6.containerWidth,
275
+ editorWidth = _ref6$containerWidth.width,
276
+ lineLength = _ref6$containerWidth.lineLength,
277
+ editorView = _ref6.editorView,
278
+ getPos = _ref6.getPos,
279
+ tableRef = _ref6.tableRef,
280
+ isNested = _ref6.isNested,
281
+ tableWrapperHeight = _ref6.tableWrapperHeight,
282
+ isResizing = _ref6.isResizing,
283
+ pluginInjectionApi = _ref6.pluginInjectionApi,
284
+ isWholeTableInDanger = _ref6.isWholeTableInDanger,
285
+ isTableResizingEnabled = _ref6.isTableResizingEnabled,
286
+ isTableScalingEnabled = _ref6.isTableScalingEnabled,
287
+ isTableAlignmentEnabled = _ref6.isTableAlignmentEnabled;
232
288
  if (isTableResizingEnabled && !isNested) {
233
289
  return /*#__PURE__*/_react.default.createElement(ResizableTableContainer
234
290
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
@@ -19,6 +19,7 @@ var _messages = require("@atlaskit/editor-common/messages");
19
19
  var _resizer = require("@atlaskit/editor-common/resizer");
20
20
  var _utils = require("@atlaskit/editor-common/utils");
21
21
  var _commands = require("@atlaskit/editor-prosemirror/commands");
22
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
22
23
  var _utils2 = require("@atlaskit/editor-tables/utils");
23
24
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
24
25
  var _misc = require("../commands/misc");
@@ -50,13 +51,13 @@ var getResizerHandleHeight = function getResizerHandleHeight(tableRef) {
50
51
  var _tableRef$clientHeigh;
51
52
  var tableHeight = (_tableRef$clientHeigh = tableRef === null || tableRef === void 0 ? void 0 : tableRef.clientHeight) !== null && _tableRef$clientHeigh !== void 0 ? _tableRef$clientHeigh : 0;
52
53
  /*
53
- - One row table height (minimum possible table height) ~ 45px
54
- - Two row table height ~ 90px
55
- - Three row table height ~ 134px
56
- In the if below we need to use:
57
- - > 46 because the height of the table can be a float number like 45.44.
58
- - < 96 is the height of large resize handle.
59
- */
54
+ - One row table height (minimum possible table height) ~ 45px
55
+ - Two row table height ~ 90px
56
+ - Three row table height ~ 134px
57
+ In the if below we need to use:
58
+ - > 46 because the height of the table can be a float number like 45.44.
59
+ - < 96 is the height of large resize handle.
60
+ */
60
61
  if (tableHeight >= 96) {
61
62
  return 'large';
62
63
  }
@@ -78,10 +79,26 @@ var getResizerMinWidth = function getResizerMinWidth(node) {
78
79
  * So the guideline container won't make the fabric-editor-popup-scroll-parent overflow
79
80
  * @param guidelines
80
81
  * @param containerWidth editorWidth
82
+ * @param lineLength
83
+ * @param isTableScalingEnabled
84
+ * @param isFullWidthModeEnabled
81
85
  */
82
- var getVisibleGuidelines = function getVisibleGuidelines(guidelines, containerWidth) {
86
+ var getVisibleGuidelines = function getVisibleGuidelines(guidelines, containerWidth, lineLength, isTableScalingEnabled, isFullWidthModeEnabled) {
87
+ var guidelineVisibleAdjustment = _consts.TABLE_GUIDELINE_VISIBLE_ADJUSTMENT;
88
+ if (isTableScalingEnabled) {
89
+ // Notes:
90
+ // Example: containerWidth = 1244, lineLength = 1180 (used for when editor full width mode is enabled)
91
+ // Full width/dynamic x coordinate can be float number.
92
+ // Ex: guideline.position.x can be 590.5. So 590.5 * 2 = 1181 (not 1180).
93
+ // For PTW we need to ensure that dynamic guideline never gets excluded: 1181 should be > width + guidelineVisibleAdjustment
94
+ // guidelineVisibleAdjustment is set as a negative value, so we making it positive and adding + 1
95
+ var preserve_table_widths_adjustment = -1 * _guidelines.PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET + 1;
96
+ guidelineVisibleAdjustment = isFullWidthModeEnabled ? preserve_table_widths_adjustment // guidelineVisibleAdjustment = -2, if lineLength = 1180, 1181 < 1180 + 2 is true.
97
+ : -2 * _editorSharedStyles.akEditorGutterPadding + preserve_table_widths_adjustment; // guidelineVisibleAdjustment = -62, if containerWidth is 1244, 1181 < 1244 - 62 = 1182 is true.
98
+ }
99
+ var width = isTableScalingEnabled && isFullWidthModeEnabled ? lineLength : containerWidth;
83
100
  return guidelines.filter(function (guideline) {
84
- return guideline.position && guideline.position.x !== undefined && typeof guideline.position.x === 'number' && Math.abs(guideline.position.x * 2) < containerWidth + _consts.TABLE_GUIDELINE_VISIBLE_ADJUSTMENT;
101
+ return guideline.position && guideline.position.x !== undefined && typeof guideline.position.x === 'number' && Math.abs(guideline.position.x * 2) < width + guidelineVisibleAdjustment;
85
102
  });
86
103
  };
87
104
  var TableResizer = exports.TableResizer = function TableResizer(_ref) {
@@ -104,7 +121,8 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
104
121
  isTableScalingEnabled = _ref.isTableScalingEnabled,
105
122
  isTableAlignmentEnabled = _ref.isTableAlignmentEnabled,
106
123
  isWholeTableInDanger = _ref.isWholeTableInDanger,
107
- pluginInjectionApi = _ref.pluginInjectionApi;
124
+ pluginInjectionApi = _ref.pluginInjectionApi,
125
+ isFullWidthModeEnabled = _ref.isFullWidthModeEnabled;
108
126
  var currentGap = (0, _react.useRef)(0);
109
127
  // track resizing state - use ref over state to avoid re-render
110
128
  var isResizing = (0, _react.useRef)(false);
@@ -141,15 +159,17 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
141
159
  keys = _ref3.keys;
142
160
  if (gap !== currentGap.current) {
143
161
  currentGap.current = gap;
144
- var visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(containerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, containerWidth);
162
+ var visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(_guidelines.PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, isFullWidthModeEnabled ? lineLength + 2 * _editorSharedStyles.akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, containerWidth, lineLength, Boolean(isTableScalingEnabled), Boolean(isFullWidthModeEnabled));
145
163
  displayGuideline((0, _guideline.getGuidelinesWithHighlights)(gap, _consts.TABLE_SNAP_GAP, keys, visibleGuidelines));
146
164
  }
147
- }, [isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline]);
165
+ }, [isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline, lineLength, isFullWidthModeEnabled]);
148
166
  var guidelineSnaps = (0, _react.useMemo)(function () {
149
167
  return snappingEnabled ? {
150
- x: isTableScalingEnabled ? (0, _snapping.defaultTablePreserveSnappingWidths)(containerWidth, excludeGuidelineConfig) : _snapping.defaultSnappingWidths
168
+ x: isTableScalingEnabled ? (0, _snapping.defaultTablePreserveSnappingWidths)(_snapping.PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET,
169
+ // was hardcoded to 0, using PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET instead.
170
+ isFullWidthModeEnabled ? lineLength + 2 * _editorSharedStyles.akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : _snapping.defaultSnappingWidths
151
171
  } : undefined;
152
- }, [snappingEnabled, isTableScalingEnabled, excludeGuidelineConfig, containerWidth]);
172
+ }, [snappingEnabled, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, isFullWidthModeEnabled]);
153
173
  var switchToCenterAlignment = (0, _react.useCallback)(function (pos, node, newWidth, state, dispatch) {
154
174
  if (isTableAlignmentEnabled && node && node.attrs.layout === _alignment.ALIGN_START && newWidth > lineLength && lineLength < FULL_WIDTH_EDITOR_CONTENT_WIDTH &&
155
175
  // We don't want to switch alignment in Full-width editor
@@ -199,12 +219,12 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
199
219
  name: _analytics.TABLE_OVERFLOW_CHANGE_TRIGGER.RESIZED
200
220
  });
201
221
  dispatch(tr);
202
- var visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(containerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, containerWidth);
222
+ var visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(_guidelines.PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, isFullWidthModeEnabled ? lineLength + 2 * _editorSharedStyles.akEditorGutterPadding : containerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, containerWidth, lineLength, Boolean(isTableScalingEnabled), Boolean(isFullWidthModeEnabled));
203
223
  setSnappingEnabled(displayGuideline(visibleGuidelines));
204
224
  if (onResizeStart) {
205
225
  onResizeStart();
206
226
  }
207
- }, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, displayGuideline, onResizeStart]);
227
+ }, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, displayGuideline, onResizeStart, isFullWidthModeEnabled]);
208
228
  var handleResize = (0, _react.useCallback)(function (originalState, delta) {
209
229
  var _node$attrs$localId, _node$attrs;
210
230
  countFrames();
@@ -224,14 +244,15 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
224
244
  start: pos + 1,
225
245
  parentWidth: newWidth
226
246
  }, editorView.domAtPos.bind(editorView), isTableScalingEnabled);
227
- var closestSnap = (0, _snapping.findClosestSnap)(newWidth, isTableScalingEnabled ? (0, _snapping.defaultTablePreserveSnappingWidths)(containerWidth, excludeGuidelineConfig) : _snapping.defaultSnappingWidths, isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(containerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, _consts.TABLE_HIGHLIGHT_GAP, _consts.TABLE_HIGHLIGHT_TOLERANCE);
247
+ var editorContainerWidth = isFullWidthModeEnabled ? lineLength + 2 * _editorSharedStyles.akEditorGutterPadding : containerWidth;
248
+ var closestSnap = (0, _snapping.findClosestSnap)(newWidth, isTableScalingEnabled ? (0, _snapping.defaultTablePreserveSnappingWidths)(_snapping.PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig) : _snapping.defaultSnappingWidths, isTableScalingEnabled ? (0, _guidelines.defaultGuidelinesForPreserveTable)(_guidelines.PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig) : _guidelines.defaultGuidelines, _consts.TABLE_HIGHLIGHT_GAP, _consts.TABLE_HIGHLIGHT_TOLERANCE);
228
249
  updateActiveGuidelines(closestSnap);
229
250
 
230
251
  // When snapping to the full width guideline, resize the table to be 1800px
231
252
  var state = editorView.state,
232
253
  dispatch = editorView.dispatch;
233
254
  var currentTableNodeLocalId = (_node$attrs$localId = node === null || node === 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 : '';
234
- var fullWidthGuideline = (0, _guidelines.defaultGuidelinesForPreserveTable)(containerWidth, excludeGuidelineConfig).filter(function (guideline) {
255
+ var fullWidthGuideline = (0, _guidelines.defaultGuidelinesForPreserveTable)(_guidelines.PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, editorContainerWidth, excludeGuidelineConfig).filter(function (guideline) {
235
256
  return guideline.isFullWidth;
236
257
  })[0];
237
258
  var isFullWidthGuidelineActive = closestSnap.keys.includes(fullWidthGuideline.key);
@@ -241,7 +262,7 @@ var TableResizer = exports.TableResizer = function TableResizer(_ref) {
241
262
  }, (0, _misc.updateWidthToWidest)((0, _defineProperty2.default)({}, currentTableNodeLocalId, shouldUpdateWidthToWidest)))(state, dispatch);
242
263
  updateWidth(shouldUpdateWidthToWidest ? _utils3.TABLE_MAX_WIDTH : newWidth);
243
264
  return newWidth;
244
- }, [countFrames, isTableScalingEnabled, excludeGuidelineConfig, tableRef, node, editorView, updateActiveGuidelines, containerWidth, updateWidth, getPos, switchToCenterAlignment]);
265
+ }, [countFrames, isTableScalingEnabled, isFullWidthModeEnabled, excludeGuidelineConfig, tableRef, node, editorView, updateActiveGuidelines, containerWidth, lineLength, updateWidth, getPos, switchToCenterAlignment]);
245
266
  var scheduleResize = (0, _react.useMemo)(function () {
246
267
  return (0, _rafSchd.default)(handleResize);
247
268
  }, [handleResize]);
@@ -32,8 +32,8 @@ var HEADER_ROW_SCROLL_THROTTLE_TIMEOUT = 200;
32
32
  // timeout for resetting the scroll class - if it’s too long then users won’t be able to click on the header cells,
33
33
  // if too short it would trigger too many dom updates.
34
34
  var HEADER_ROW_SCROLL_RESET_DEBOUNCE_TIMEOUT = 400;
35
- var TableRow = exports.default = /*#__PURE__*/function (_ref) {
36
- (0, _inherits2.default)(TableRow, _ref);
35
+ var TableRow = exports.default = /*#__PURE__*/function (_TableNodeView) {
36
+ (0, _inherits2.default)(TableRow, _TableNodeView);
37
37
  var _super = _createSuper(TableRow);
38
38
  function TableRow(node, view, getPos, eventDispatcher) {
39
39
  var _this;
@@ -330,27 +330,27 @@ var TableRow = exports.default = /*#__PURE__*/function (_ref) {
330
330
  value: function isHeaderSticky() {
331
331
  var _sentinelTop$rootBoun;
332
332
  /*
333
- # Overview
334
- I'm going to list all the view states associated with the sentinels and when they should trigger sticky headers.
335
- The format of the states are; {top|bottom}:{in|above|below}
336
- ie sentinel:view-position -- both "above" and "below" are equal to out of the viewport
337
- For example; "top:in" means top sentinel is within the viewport. "bottom:above" means the bottom sentinel is
338
- above and out of the viewport
339
- This will hopefully simplify things and make it easier to determine when sticky should/shouldn't be triggered.
340
- # States
341
- top:in / bottom:in - NOT sticky
342
- top:in / bottom:above - NOT sticky - NOTE: This is an inversion clause
343
- top:in / bottom:below - NOT sticky
344
- top:above / bottom:in - STICKY
345
- top:above / bottom:above - NOT sticky
346
- top:above / bottom:below - STICKY
347
- top:below / bottom:in - NOT sticky - NOTE: This is an inversion clause
348
- top:below / bottom:above - NOT sticky - NOTE: This is an inversion clause
349
- top:below / bottom:below - NOT sticky
350
- # Summary
351
- The only time the header should be sticky is when the top sentinel is above the view and the bottom sentinel
352
- is in or below it.
353
- */
333
+ # Overview
334
+ I'm going to list all the view states associated with the sentinels and when they should trigger sticky headers.
335
+ The format of the states are; {top|bottom}:{in|above|below}
336
+ ie sentinel:view-position -- both "above" and "below" are equal to out of the viewport
337
+ For example; "top:in" means top sentinel is within the viewport. "bottom:above" means the bottom sentinel is
338
+ above and out of the viewport
339
+ This will hopefully simplify things and make it easier to determine when sticky should/shouldn't be triggered.
340
+ # States
341
+ top:in / bottom:in - NOT sticky
342
+ top:in / bottom:above - NOT sticky - NOTE: This is an inversion clause
343
+ top:in / bottom:below - NOT sticky
344
+ top:above / bottom:in - STICKY
345
+ top:above / bottom:above - NOT sticky
346
+ top:above / bottom:below - STICKY
347
+ top:below / bottom:in - NOT sticky - NOTE: This is an inversion clause
348
+ top:below / bottom:above - NOT sticky - NOTE: This is an inversion clause
349
+ top:below / bottom:below - NOT sticky
350
+ # Summary
351
+ The only time the header should be sticky is when the top sentinel is above the view and the bottom sentinel
352
+ is in or below it.
353
+ */
354
354
 
355
355
  var _this$sentinelData = this.sentinelData,
356
356
  sentinelTop = _this$sentinelData.top,
@@ -46,9 +46,9 @@ function createPlugin(dispatch, _ref, getEditorContainerWidth, getEditorFeatureF
46
46
  var isColumnKeyboardResizeStarted = false;
47
47
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-column-resizing_emcvz')) {
48
48
  /*
49
- We need to start listening mouse events if column resize started from keyboard.
50
- This will allow continue resizing via mouse
51
- */
49
+ We need to start listening mouse events if column resize started from keyboard.
50
+ This will allow continue resizing via mouse
51
+ */
52
52
  var _getTablePluginState = (0, _pluginFactory.getPluginState)(state),
53
53
  isKeyboardResize = _getTablePluginState.isKeyboardResize;
54
54
  if (isKeyboardResize) {
@@ -96,10 +96,10 @@ var updateColgroup = exports.updateColgroup = function updateColgroup(state, tab
96
96
  var cols = tableRef === null || tableRef === void 0 ? void 0 : tableRef.querySelectorAll('col');
97
97
  var columnsCount = cols === null || cols === void 0 ? void 0 : cols.length;
98
98
  /**
99
- 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.
100
- We don't want to scale the table when resizing columns, only when viewpoint shrinks the table.
101
- We need to remove !isColumnResizing if we handled auto scale table when mouseUp event.
102
- * */
99
+ 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.
100
+ We don't want to scale the table when resizing columns, only when viewpoint shrinks the table.
101
+ We need to remove !isColumnResizing if we handled auto scale table when mouseUp event.
102
+ * */
103
103
  if (isTableScalingEnabled && tableNode) {
104
104
  var scalePercent = (0, _misc.getTableScalingPercent)(tableNode, tableRef);
105
105
  state.cols.filter(function (column) {
@@ -169,9 +169,9 @@ var scaleTable = exports.scaleTable = function scaleTable(tableRef, options, dom
169
169
  // We need to do this check to reduce the number of race conditions when working with tables.
170
170
  // This metadata is been used in the sendTransaction function in the Collab plugin
171
171
  /* Added !layoutChanged check here to solve unnecessary scroll bar after publish when click on breakout button multiple times and publish
172
- 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.
173
- Leaving the tr.setMeta('scaleTable', true) here for race conditions that we aren't aware of.
174
- */
172
+ 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.
173
+ Leaving the tr.setMeta('scaleTable', true) here for race conditions that we aren't aware of.
174
+ */
175
175
  !layoutChanged && tr.setMeta('scaleTable', true);
176
176
  return tr;
177
177
  }
@@ -29,5 +29,5 @@ var elementBeforeIconStyles = exports.elementBeforeIconStyles = (0, _react.css)(
29
29
  var tablePopupStyles = exports.tablePopupStyles = function tablePopupStyles(isDragAndDropEnabled
30
30
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
31
31
  ) {
32
- return (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n border-radius: ", ";\n background: ", ";\n box-shadow: ", ";\n display: block;\n position: absolute;\n top: 0;\n left: ", "px;\n padding: ", ";\n\n > div {\n padding: 0;\n }\n }\n\n .", " {\n display: flex;\n\n &::before {\n content: '';\n display: block;\n border: 1px solid ", ";\n border-radius: ", ";\n width: 20px;\n height: 20px;\n }\n\n &::after {\n content: '\u203A';\n margin-left: ", ";\n line-height: 20px;\n color: ", ";\n }\n }\n\n .", " {\n display: flex;\n\n &::before {\n content: '';\n display: block;\n border: 1px solid ", ";\n border-radius: ", ";\n width: 14px;\n height: 14px;\n }\n\n &::after {\n content: '\u203A';\n margin-left: ", ";\n line-height: 14px;\n color: ", ";\n }\n }\n"])), _types.TableCssClassName.CONTEXTUAL_SUBMENU, "var(--ds-border-radius, 3px)", "var(--ds-surface-overlay, white)", "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(_colors.N60A, ", 0 0 1px ").concat(_colors.N60A), ")"), isDragAndDropEnabled ? _consts.contextualMenuDropdownWidthDnD : _consts.contextualMenuDropdownWidth, "var(--ds-space-100, 8px)", _types.TableCssClassName.CONTEXTUAL_MENU_ICON, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"), _types.TableCssClassName.CONTEXTUAL_MENU_ICON_SMALL, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"));
32
+ return (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t.", " {\n\t\tborder-radius: ", ";\n\t\tbackground: ", ";\n\t\tbox-shadow: ", ";\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: ", "px;\n\t\tpadding: ", ";\n\n\t\t> div {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tborder: 1px solid ", ";\n\t\t\tborder-radius: ", ";\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t}\n\n\t\t&::after {\n\t\t\tcontent: '\u203A';\n\t\t\tmargin-left: ", ";\n\t\t\tline-height: 20px;\n\t\t\tcolor: ", ";\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tborder: 1px solid ", ";\n\t\t\tborder-radius: ", ";\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t}\n\n\t\t&::after {\n\t\t\tcontent: '\u203A';\n\t\t\tmargin-left: ", ";\n\t\t\tline-height: 14px;\n\t\t\tcolor: ", ";\n\t\t}\n\t}\n"])), _types.TableCssClassName.CONTEXTUAL_SUBMENU, "var(--ds-border-radius, 3px)", "var(--ds-surface-overlay, white)", "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(_colors.N60A, ", 0 0 1px ").concat(_colors.N60A), ")"), isDragAndDropEnabled ? _consts.contextualMenuDropdownWidthDnD : _consts.contextualMenuDropdownWidth, "var(--ds-space-100, 8px)", _types.TableCssClassName.CONTEXTUAL_MENU_ICON, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"), _types.TableCssClassName.CONTEXTUAL_MENU_ICON_SMALL, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"));
33
33
  };
@@ -25,7 +25,7 @@ var elementBeforeIconStyles = exports.elementBeforeIconStyles = (0, _react.css)(
25
25
  });
26
26
 
27
27
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
28
- var dragMenuBackgroundColorStyles = exports.dragMenuBackgroundColorStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n border-radius: ", ";\n background: ", ";\n box-shadow: ", ";\n display: block;\n position: absolute;\n top: 0;\n left: ", "px;\n padding: ", ";\n\n > div {\n padding: 0;\n }\n }\n\n .", " {\n display: flex;\n\n &::before {\n content: '';\n display: block;\n border: 1px solid ", ";\n border-radius: ", ";\n width: 14px;\n height: 14px;\n }\n\n &::after {\n content: '\u203A';\n margin-left: ", ";\n line-height: 14px;\n color: ", ";\n }\n }\n"])), _types.TableCssClassName.DRAG_SUBMENU, "var(--ds-border-radius, 3px)", "var(--ds-surface-overlay, white)", "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(_colors.N60A, ", 0 0 1px ").concat(_colors.N60A), ")"), _consts.dragMenuDropdownWidth, "var(--ds-space-100, 8px)", _types.TableCssClassName.DRAG_SUBMENU_ICON, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"));
28
+ var dragMenuBackgroundColorStyles = exports.dragMenuBackgroundColorStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t.", " {\n\t\tborder-radius: ", ";\n\t\tbackground: ", ";\n\t\tbox-shadow: ", ";\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: ", "px;\n\t\tpadding: ", ";\n\n\t\t> div {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tborder: 1px solid ", ";\n\t\t\tborder-radius: ", ";\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t}\n\n\t\t&::after {\n\t\t\tcontent: '\u203A';\n\t\t\tmargin-left: ", ";\n\t\t\tline-height: 14px;\n\t\t\tcolor: ", ";\n\t\t}\n\t}\n"])), _types.TableCssClassName.DRAG_SUBMENU, "var(--ds-border-radius, 3px)", "var(--ds-surface-overlay, white)", "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(_colors.N60A, ", 0 0 1px ").concat(_colors.N60A), ")"), _consts.dragMenuDropdownWidth, "var(--ds-space-100, 8px)", _types.TableCssClassName.DRAG_SUBMENU_ICON, _adfSchema.tableBackgroundBorderColor, "var(--ds-border-radius, 3px)", "var(--ds-space-050, 4px)", "var(--ds-icon, ".concat(_colors.N90, ")"));
29
29
  var toggleStyles = exports.toggleStyles = (0, _react.css)({
30
30
  display: 'flex',
31
31
  "input[type='checkbox']": {