@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.
- package/.eslintrc.js +3 -3
- package/CHANGELOG.md +16 -0
- package/dist/cjs/commands/misc.js +3 -3
- package/dist/cjs/nodeviews/TableCell.js +10 -10
- package/dist/cjs/nodeviews/TableContainer.js +83 -27
- package/dist/cjs/nodeviews/TableResizer.js +40 -19
- package/dist/cjs/nodeviews/TableRow.js +23 -23
- package/dist/cjs/pm-plugins/table-resizing/plugin.js +3 -3
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +4 -4
- package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +3 -3
- package/dist/cjs/ui/FloatingContextualMenu/styles.js +1 -1
- package/dist/cjs/ui/FloatingDragMenu/styles.js +1 -1
- package/dist/cjs/ui/common-styles.js +13 -13
- package/dist/cjs/ui/ui-styles.js +25 -25
- package/dist/cjs/utils/guidelines.js +7 -4
- package/dist/cjs/utils/merged-cells.js +3 -3
- package/dist/cjs/utils/snapping.js +7 -8
- package/dist/es2019/commands/misc.js +3 -3
- package/dist/es2019/nodeviews/TableContainer.js +70 -9
- package/dist/es2019/nodeviews/TableResizer.js +42 -21
- package/dist/es2019/nodeviews/TableRow.js +21 -21
- package/dist/es2019/pm-plugins/table-resizing/plugin.js +3 -3
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +4 -4
- package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +3 -3
- package/dist/es2019/ui/FloatingContextualMenu/styles.js +47 -47
- package/dist/es2019/ui/FloatingDragMenu/styles.js +30 -30
- package/dist/es2019/ui/common-styles.js +802 -816
- package/dist/es2019/ui/ui-styles.js +665 -678
- package/dist/es2019/utils/guidelines.js +5 -2
- package/dist/es2019/utils/merged-cells.js +3 -3
- package/dist/es2019/utils/snapping.js +5 -6
- package/dist/esm/commands/misc.js +3 -3
- package/dist/esm/nodeviews/TableCell.js +10 -10
- package/dist/esm/nodeviews/TableContainer.js +85 -29
- package/dist/esm/nodeviews/TableResizer.js +42 -21
- package/dist/esm/nodeviews/TableRow.js +23 -23
- package/dist/esm/pm-plugins/table-resizing/plugin.js +3 -3
- package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +4 -4
- package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +3 -3
- package/dist/esm/ui/FloatingContextualMenu/styles.js +1 -1
- package/dist/esm/ui/FloatingDragMenu/styles.js +1 -1
- package/dist/esm/ui/common-styles.js +13 -13
- package/dist/esm/ui/ui-styles.js +25 -25
- package/dist/esm/utils/guidelines.js +6 -3
- package/dist/esm/utils/merged-cells.js +3 -3
- package/dist/esm/utils/snapping.js +6 -7
- package/dist/types/nodeviews/TableResizer.d.ts +2 -1
- package/dist/types/pm-plugins/decorations/utils/index.d.ts +1 -1
- package/dist/types/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
- package/dist/types/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
- package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
- package/dist/types/ui/ColumnResizeWidget/index.d.ts +1 -1
- package/dist/types/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
- package/dist/types/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
- package/dist/types/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
- package/dist/types/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
- package/dist/types/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
- package/dist/types/utils/guidelines.d.ts +2 -1
- package/dist/types/utils/snapping.d.ts +3 -2
- package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/decorations/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/autoscrollers.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/drag-and-drop/utils/getDragBehaviour.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/ColumnResizeWidget/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingToolbarLabel/FloatingToolbarLabel.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/icons/DragHandleDisabledIcon.d.ts +1 -1
- package/dist/types-ts4.5/utils/guidelines.d.ts +2 -1
- package/dist/types-ts4.5/utils/snapping.d.ts +3 -2
- package/docs/0-intro.tsx +9 -7
- package/package.json +3 -3
- package/report.api.md +67 -66
- package/src/commands/clear.ts +36 -44
- package/src/commands/collapse.ts +8 -8
- package/src/commands/column-resize.ts +412 -452
- package/src/commands/delete.ts +14 -14
- package/src/commands/display-mode.ts +10 -11
- package/src/commands/go-to-next-cell.ts +48 -54
- package/src/commands/hover.ts +210 -227
- package/src/commands/index.ts +35 -35
- package/src/commands/insert.ts +208 -235
- package/src/commands/misc.ts +655 -748
- package/src/commands/referentiality.ts +9 -9
- package/src/commands/selection.ts +433 -563
- package/src/commands/sort.ts +68 -86
- package/src/commands/split-cell.ts +14 -14
- package/src/commands/toggle.ts +69 -67
- package/src/commands-with-analytics.ts +570 -639
- package/src/create-plugin-config.ts +13 -13
- package/src/event-handlers.ts +513 -612
- package/src/handlers.ts +120 -133
- package/src/nodeviews/ExternalDropTargets.tsx +68 -73
- package/src/nodeviews/OverflowShadowsObserver.ts +148 -157
- package/src/nodeviews/TableCell.ts +47 -54
- package/src/nodeviews/TableComponent.tsx +1018 -1112
- package/src/nodeviews/TableComponentWithSharedState.tsx +91 -94
- package/src/nodeviews/TableContainer.tsx +384 -340
- package/src/nodeviews/TableNodeViewBase.ts +19 -24
- package/src/nodeviews/TableResizer.tsx +642 -653
- package/src/nodeviews/TableRow.ts +580 -629
- package/src/nodeviews/TableStickyScrollbar.ts +173 -190
- package/src/nodeviews/__mocks__/OverflowShadowsObserver.ts +8 -8
- package/src/nodeviews/__mocks__/OverridableMock.ts +14 -15
- package/src/nodeviews/table.tsx +345 -375
- package/src/nodeviews/types.ts +21 -24
- package/src/nodeviews/update-overflow-shadows.ts +8 -14
- package/src/plugin.tsx +578 -603
- package/src/pm-plugins/analytics/actions.ts +10 -12
- package/src/pm-plugins/analytics/commands.ts +31 -37
- package/src/pm-plugins/analytics/plugin-factory.ts +4 -2
- package/src/pm-plugins/analytics/plugin-key.ts +1 -3
- package/src/pm-plugins/analytics/plugin.ts +60 -70
- package/src/pm-plugins/analytics/reducer.ts +19 -19
- package/src/pm-plugins/analytics/types.ts +10 -10
- package/src/pm-plugins/analytics/utils/moved-event.ts +38 -38
- package/src/pm-plugins/decorations/plugin.ts +58 -77
- package/src/pm-plugins/decorations/utils/column-controls.ts +59 -71
- package/src/pm-plugins/decorations/utils/column-resizing.ts +50 -57
- package/src/pm-plugins/decorations/utils/compose-decorations.ts +6 -6
- package/src/pm-plugins/decorations/utils/index.ts +3 -6
- package/src/pm-plugins/decorations/utils/types.ts +7 -12
- package/src/pm-plugins/default-table-selection.ts +3 -3
- package/src/pm-plugins/drag-and-drop/actions.ts +25 -25
- package/src/pm-plugins/drag-and-drop/commands-with-analytics.ts +158 -190
- package/src/pm-plugins/drag-and-drop/commands.ts +154 -170
- package/src/pm-plugins/drag-and-drop/consts.ts +4 -5
- package/src/pm-plugins/drag-and-drop/plugin-factory.ts +23 -20
- package/src/pm-plugins/drag-and-drop/plugin-key.ts +1 -3
- package/src/pm-plugins/drag-and-drop/plugin.ts +329 -383
- package/src/pm-plugins/drag-and-drop/reducer.ts +30 -30
- package/src/pm-plugins/drag-and-drop/types.ts +8 -8
- package/src/pm-plugins/drag-and-drop/utils/autoscrollers.ts +38 -41
- package/src/pm-plugins/drag-and-drop/utils/getDragBehaviour.ts +3 -6
- package/src/pm-plugins/drag-and-drop/utils/monitor.ts +57 -70
- package/src/pm-plugins/keymap.ts +208 -220
- package/src/pm-plugins/main.ts +348 -400
- package/src/pm-plugins/plugin-factory.ts +32 -34
- package/src/pm-plugins/safari-delete-composition-text-issue-workaround.ts +83 -97
- package/src/pm-plugins/sticky-headers/commands.ts +2 -6
- package/src/pm-plugins/sticky-headers/plugin-key.ts +1 -3
- package/src/pm-plugins/sticky-headers/plugin-state.ts +41 -44
- package/src/pm-plugins/sticky-headers/plugin.ts +4 -4
- package/src/pm-plugins/sticky-headers/types.ts +8 -8
- package/src/pm-plugins/sticky-headers/util.ts +10 -10
- package/src/pm-plugins/table-analytics.ts +70 -72
- package/src/pm-plugins/table-local-id.ts +180 -184
- package/src/pm-plugins/table-resizing/commands.ts +72 -85
- package/src/pm-plugins/table-resizing/event-handlers.ts +298 -317
- package/src/pm-plugins/table-resizing/plugin-factory.ts +10 -10
- package/src/pm-plugins/table-resizing/plugin-key.ts +1 -3
- package/src/pm-plugins/table-resizing/plugin.ts +61 -68
- package/src/pm-plugins/table-resizing/reducer.ts +30 -33
- package/src/pm-plugins/table-resizing/utils/colgroup.ts +84 -84
- package/src/pm-plugins/table-resizing/utils/column-state.ts +78 -81
- package/src/pm-plugins/table-resizing/utils/content-width.ts +94 -114
- package/src/pm-plugins/table-resizing/utils/dom.ts +93 -110
- package/src/pm-plugins/table-resizing/utils/index.ts +29 -34
- package/src/pm-plugins/table-resizing/utils/misc.ts +94 -119
- package/src/pm-plugins/table-resizing/utils/resize-column.ts +93 -106
- package/src/pm-plugins/table-resizing/utils/resize-logic.ts +240 -257
- package/src/pm-plugins/table-resizing/utils/resize-state.ts +343 -372
- package/src/pm-plugins/table-resizing/utils/scale-table.ts +202 -207
- package/src/pm-plugins/table-resizing/utils/types.ts +17 -17
- package/src/pm-plugins/table-resizing/utils/unit-to-number.ts +1 -2
- package/src/pm-plugins/table-selection-keymap.ts +25 -51
- package/src/pm-plugins/table-width.ts +191 -204
- package/src/pm-plugins/view-mode-sort/index.ts +223 -227
- package/src/pm-plugins/view-mode-sort/plugin-key.ts +3 -2
- package/src/pm-plugins/view-mode-sort/types.ts +12 -12
- package/src/pm-plugins/view-mode-sort/utils.ts +108 -117
- package/src/reducer.ts +139 -155
- package/src/toolbar.tsx +815 -905
- package/src/transforms/column-width.ts +186 -213
- package/src/transforms/delete-columns.ts +208 -222
- package/src/transforms/delete-rows.ts +117 -121
- package/src/transforms/fix-tables.ts +190 -215
- package/src/transforms/merge.ts +263 -269
- package/src/transforms/replace-table.ts +27 -43
- package/src/transforms/split.ts +65 -75
- package/src/types.ts +421 -427
- package/src/ui/ColumnResizeWidget/index.tsx +40 -47
- package/src/ui/DragHandle/HandleIconComponent.tsx +9 -13
- package/src/ui/DragHandle/index.tsx +221 -250
- package/src/ui/DragPreview/index.tsx +35 -35
- package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +33 -41
- package/src/ui/FloatingContextualButton/FixedButton.tsx +154 -157
- package/src/ui/FloatingContextualButton/index.tsx +109 -115
- package/src/ui/FloatingContextualButton/styles.ts +43 -46
- package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +634 -694
- package/src/ui/FloatingContextualMenu/index.tsx +83 -101
- package/src/ui/FloatingContextualMenu/styles.ts +57 -65
- package/src/ui/FloatingDeleteButton/DeleteButton.tsx +37 -37
- package/src/ui/FloatingDeleteButton/getPopUpOptions.ts +47 -57
- package/src/ui/FloatingDeleteButton/index.tsx +319 -350
- package/src/ui/FloatingDragMenu/DragMenu.tsx +555 -596
- package/src/ui/FloatingDragMenu/DropdownMenu.tsx +152 -162
- package/src/ui/FloatingDragMenu/index.tsx +88 -102
- package/src/ui/FloatingDragMenu/styles.ts +51 -54
- package/src/ui/FloatingInsertButton/InsertButton.tsx +204 -217
- package/src/ui/FloatingInsertButton/getPopupOptions.ts +100 -115
- package/src/ui/FloatingInsertButton/index.tsx +248 -292
- package/src/ui/FloatingToolbarLabel/FloatingToolbarLabel.tsx +24 -29
- package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +308 -329
- package/src/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +85 -94
- package/src/ui/TableFloatingColumnControls/ColumnDropTargets/index.tsx +46 -46
- package/src/ui/TableFloatingColumnControls/index.tsx +116 -136
- package/src/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +79 -91
- package/src/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +95 -102
- package/src/ui/TableFloatingControls/CornerControls/index.tsx +1 -4
- package/src/ui/TableFloatingControls/CornerControls/types.ts +8 -8
- package/src/ui/TableFloatingControls/FloatingControlsWithSelection.tsx +50 -50
- package/src/ui/TableFloatingControls/NumberColumn/index.tsx +111 -124
- package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +86 -105
- package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +305 -341
- package/src/ui/TableFloatingControls/RowDropTarget/index.tsx +72 -75
- package/src/ui/TableFloatingControls/index.tsx +191 -193
- package/src/ui/TableFullWidthLabel/index.tsx +20 -20
- package/src/ui/common-styles.ts +880 -912
- package/src/ui/consts.ts +29 -74
- package/src/ui/icons/AddColLeftIcon.tsx +33 -39
- package/src/ui/icons/AddColRightIcon.tsx +33 -39
- package/src/ui/icons/AddRowAboveIcon.tsx +16 -22
- package/src/ui/icons/AddRowBelowIcon.tsx +33 -39
- package/src/ui/icons/DisplayModeIcon.tsx +31 -31
- package/src/ui/icons/DragHandleDisabledIcon.tsx +19 -21
- package/src/ui/icons/DragHandleIcon.tsx +12 -12
- package/src/ui/icons/DragInMotionIcon.tsx +45 -52
- package/src/ui/icons/MergeCellsIcon.tsx +22 -28
- package/src/ui/icons/MinimisedHandle.tsx +9 -9
- package/src/ui/icons/SplitCellIcon.tsx +30 -36
- package/src/ui/ui-styles.ts +769 -798
- package/src/utils/alignment.ts +1 -1
- package/src/utils/analytics.ts +192 -208
- package/src/utils/collapse.ts +55 -64
- package/src/utils/column-controls.ts +237 -254
- package/src/utils/create.ts +30 -30
- package/src/utils/decoration.ts +482 -502
- package/src/utils/dom.ts +127 -134
- package/src/utils/drag-menu.ts +322 -373
- package/src/utils/get-allow-add-column-custom-step.ts +4 -5
- package/src/utils/guidelines.ts +16 -21
- package/src/utils/index.ts +68 -68
- package/src/utils/merged-cells.ts +245 -254
- package/src/utils/nodes.ts +91 -106
- package/src/utils/paste.ts +119 -135
- package/src/utils/row-controls.ts +199 -213
- package/src/utils/selection.ts +77 -87
- package/src/utils/snapping.ts +87 -100
- package/src/utils/table.ts +44 -44
- package/src/utils/transforms.ts +5 -5
- package/src/utils/update-plugin-state-decorations.ts +5 -9
package/.eslintrc.js
CHANGED
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
|
-
|
|
279
|
-
|
|
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 (
|
|
21
|
-
(0, _inherits2.default)(TableCell,
|
|
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 (
|
|
57
|
-
var
|
|
58
|
-
key =
|
|
59
|
-
value =
|
|
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 (
|
|
67
|
-
var
|
|
68
|
-
key =
|
|
69
|
-
value =
|
|
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
|
|
156
|
-
editorViewModeState =
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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(
|
|
215
|
-
var children =
|
|
216
|
-
node =
|
|
217
|
-
className =
|
|
218
|
-
|
|
219
|
-
editorWidth =
|
|
220
|
-
lineLength =
|
|
221
|
-
editorView =
|
|
222
|
-
getPos =
|
|
223
|
-
tableRef =
|
|
224
|
-
isNested =
|
|
225
|
-
tableWrapperHeight =
|
|
226
|
-
isResizing =
|
|
227
|
-
pluginInjectionApi =
|
|
228
|
-
isWholeTableInDanger =
|
|
229
|
-
isTableResizingEnabled =
|
|
230
|
-
isTableScalingEnabled =
|
|
231
|
-
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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) <
|
|
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)(
|
|
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
|
|
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)(
|
|
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 (
|
|
36
|
-
(0, _inherits2.default)(TableRow,
|
|
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
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
173
|
-
|
|
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
|
|
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
|
|
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']": {
|