@atlaskit/editor-plugin-table 5.3.15 → 5.3.16

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 (92) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/plugins/table/event-handlers.js +4 -3
  3. package/dist/cjs/plugins/table/pm-plugins/drag-and-drop/plugin.js +1 -0
  4. package/dist/cjs/plugins/table/types.js +5 -3
  5. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +5 -0
  6. package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +3 -11
  7. package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +2 -2
  8. package/dist/cjs/plugins/table/ui/TableFloatingColumnControls/index.js +1 -1
  9. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +114 -0
  10. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.js +60 -0
  11. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +11 -112
  12. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/types.js +5 -0
  13. package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +1 -7
  14. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +7 -2
  15. package/dist/cjs/plugins/table/ui/common-styles.js +1 -1
  16. package/dist/cjs/plugins/table/ui/messages.js +5 -0
  17. package/dist/cjs/plugins/table/ui/ui-styles.js +28 -25
  18. package/dist/cjs/plugins/table/utils/dom.js +16 -7
  19. package/dist/cjs/plugins/table/utils/index.js +12 -6
  20. package/dist/es2019/plugins/table/event-handlers.js +5 -4
  21. package/dist/es2019/plugins/table/pm-plugins/drag-and-drop/plugin.js +2 -1
  22. package/dist/es2019/plugins/table/types.js +5 -3
  23. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +5 -0
  24. package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +3 -11
  25. package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +2 -2
  26. package/dist/es2019/plugins/table/ui/TableFloatingColumnControls/index.js +1 -1
  27. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +93 -0
  28. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.js +61 -0
  29. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +2 -99
  30. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/types.js +1 -0
  31. package/dist/es2019/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +1 -7
  32. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +8 -3
  33. package/dist/es2019/plugins/table/ui/common-styles.js +8 -6
  34. package/dist/es2019/plugins/table/ui/messages.js +5 -0
  35. package/dist/es2019/plugins/table/ui/ui-styles.js +44 -3
  36. package/dist/es2019/plugins/table/utils/dom.js +13 -6
  37. package/dist/es2019/plugins/table/utils/index.js +1 -1
  38. package/dist/esm/plugins/table/event-handlers.js +5 -4
  39. package/dist/esm/plugins/table/pm-plugins/drag-and-drop/plugin.js +2 -1
  40. package/dist/esm/plugins/table/types.js +5 -3
  41. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +5 -0
  42. package/dist/esm/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.js +3 -11
  43. package/dist/esm/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +2 -2
  44. package/dist/esm/plugins/table/ui/TableFloatingColumnControls/index.js +1 -1
  45. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +104 -0
  46. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.js +50 -0
  47. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +2 -110
  48. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/types.js +1 -0
  49. package/dist/esm/plugins/table/ui/TableFloatingControls/RowControls/DragControls.js +1 -7
  50. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +8 -3
  51. package/dist/esm/plugins/table/ui/common-styles.js +2 -2
  52. package/dist/esm/plugins/table/ui/messages.js +5 -0
  53. package/dist/esm/plugins/table/ui/ui-styles.js +27 -24
  54. package/dist/esm/plugins/table/utils/dom.js +15 -6
  55. package/dist/esm/plugins/table/utils/index.js +1 -1
  56. package/dist/types/plugins/table/types.d.ts +5 -3
  57. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.d.ts +6 -0
  58. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +6 -0
  59. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +2 -16
  60. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/types.d.ts +11 -0
  61. package/dist/types/plugins/table/ui/messages.d.ts +5 -0
  62. package/dist/types/plugins/table/ui/ui-styles.d.ts +1 -0
  63. package/dist/types/plugins/table/utils/dom.d.ts +3 -2
  64. package/dist/types/plugins/table/utils/index.d.ts +1 -1
  65. package/dist/types-ts4.5/plugins/table/types.d.ts +5 -3
  66. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.d.ts +6 -0
  67. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +6 -0
  68. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +2 -16
  69. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/types.d.ts +11 -0
  70. package/dist/types-ts4.5/plugins/table/ui/messages.d.ts +5 -0
  71. package/dist/types-ts4.5/plugins/table/ui/ui-styles.d.ts +1 -0
  72. package/dist/types-ts4.5/plugins/table/utils/dom.d.ts +3 -2
  73. package/dist/types-ts4.5/plugins/table/utils/index.d.ts +1 -1
  74. package/package.json +2 -2
  75. package/src/plugins/table/event-handlers.ts +7 -2
  76. package/src/plugins/table/pm-plugins/drag-and-drop/plugin.ts +7 -1
  77. package/src/plugins/table/types.ts +7 -4
  78. package/src/plugins/table/ui/FloatingInsertButton/index.tsx +8 -0
  79. package/src/plugins/table/ui/TableFloatingColumnControls/ColumnControls/index.tsx +5 -7
  80. package/src/plugins/table/ui/TableFloatingColumnControls/ColumnDropTargets/index.tsx +2 -2
  81. package/src/plugins/table/ui/TableFloatingColumnControls/index.tsx +1 -1
  82. package/src/plugins/table/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +107 -0
  83. package/src/plugins/table/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +66 -0
  84. package/src/plugins/table/ui/TableFloatingControls/CornerControls/index.tsx +2 -125
  85. package/src/plugins/table/ui/TableFloatingControls/CornerControls/types.ts +12 -0
  86. package/src/plugins/table/ui/TableFloatingControls/RowControls/DragControls.tsx +3 -3
  87. package/src/plugins/table/ui/TableFloatingControls/index.tsx +22 -14
  88. package/src/plugins/table/ui/common-styles.ts +8 -5
  89. package/src/plugins/table/ui/messages.ts +6 -0
  90. package/src/plugins/table/ui/ui-styles.ts +45 -3
  91. package/src/plugins/table/utils/dom.ts +16 -4
  92. package/src/plugins/table/utils/index.ts +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 5.3.16
4
+
5
+ ### Patch Changes
6
+
7
+ - [#42211](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42211) [`feef33e6e7e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/feef33e6e7e) - Add new corner button for tables to support drag and drop
8
+ - [#42213](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42213) [`1daf5ff634c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1daf5ff634c) - Fixed and issue where a drag could occur with the menu open. When a drag starts if a menu is open then it wil be closed.
9
+ - Updated dependencies
10
+
3
11
  ## 5.3.15
4
12
 
5
13
  ### Patch Changes
@@ -142,7 +142,7 @@ var handleMouseOver = exports.handleMouseOver = function handleMouseOver(view, m
142
142
  // Ignore any `mousedown` `event` from control and numbered column buttons
143
143
  // PM end up changing selection during shift selection if not prevented
144
144
  var handleMouseDown = exports.handleMouseDown = function handleMouseDown(_, event) {
145
- var isControl = !!(event.target && event.target instanceof HTMLElement && ((0, _utils3.isTableContainerOrWrapper)(event.target) || (0, _utils3.isColumnControlsDecorations)(event.target) || (0, _utils3.isRowControlsButton)(event.target)));
145
+ var isControl = !!(event.target && event.target instanceof HTMLElement && ((0, _utils3.isTableContainerOrWrapper)(event.target) || (0, _utils3.isColumnControlsDecorations)(event.target) || (0, _utils3.isRowControlsButton)(event.target) || (0, _utils3.isDragCornerButton)(event.target)));
146
146
  if (isControl) {
147
147
  event.preventDefault();
148
148
  }
@@ -199,12 +199,13 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, e
199
199
  var state = view.state,
200
200
  dispatch = view.dispatch;
201
201
  var _getPluginState3 = (0, _pluginFactory.getPluginState)(state),
202
- insertColumnButtonIndex = _getPluginState3.insertColumnButtonIndex;
202
+ insertColumnButtonIndex = _getPluginState3.insertColumnButtonIndex,
203
+ isDragAndDropEnabled = _getPluginState3.isDragAndDropEnabled;
203
204
  var _getColumnOrRowIndex9 = (0, _utils3.getColumnOrRowIndex)(element),
204
205
  _getColumnOrRowIndex10 = (0, _slicedToArray2.default)(_getColumnOrRowIndex9, 2),
205
206
  startIndex = _getColumnOrRowIndex10[0],
206
207
  endIndex = _getColumnOrRowIndex10[1];
207
- var positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, elementContentRects) === 'right' ? endIndex : startIndex;
208
+ var positionColumn = (0, _utils3.getMousePositionHorizontalRelativeByElement)(event, elementContentRects, undefined, isDragAndDropEnabled) === 'right' ? endIndex : startIndex;
208
209
  if (positionColumn !== insertColumnButtonIndex) {
209
210
  return (0, _commands.showInsertColumnButton)(positionColumn)(state, dispatch);
210
211
  }
@@ -93,6 +93,7 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatch, eventD
93
93
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.start({
94
94
  input: location.current.input
95
95
  });
96
+ (0, _commands.toggleDragMenu)(false)(editorView.state, editorView.dispatch);
96
97
  },
97
98
  onDrag: function onDrag(event) {
98
99
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.updateInput({
@@ -58,9 +58,6 @@ var TableCssClassName = exports.TableCssClassName = _objectSpread(_objectSpread(
58
58
  COLUMN_CONTROLS: "".concat(_adfSchema.tablePrefixSelector, "-column-controls"),
59
59
  COLUMN_CONTROLS_DECORATIONS: "".concat(_adfSchema.tablePrefixSelector, "-column-controls-decoration"),
60
60
  COLUMN_SELECTED: "".concat(_adfSchema.tablePrefixSelector, "-column__selected"),
61
- COLUMN_CONTROLS_WRAPPER: "".concat(_adfSchema.tablePrefixSelector, "-col-controls-wrapper"),
62
- COLUMN_DROP_TARGET_CONTROLS: "".concat(_adfSchema.tablePrefixSelector, "-col-drop-target-controls"),
63
- COLUMN_CONTROLS_INNER: "".concat(_adfSchema.tablePrefixSelector, "-col-controls__inner"),
64
61
  ROW_CONTROLS_WRAPPER: "".concat(_adfSchema.tablePrefixSelector, "-row-controls-wrapper"),
65
62
  ROW_CONTROLS: "".concat(_adfSchema.tablePrefixSelector, "-row-controls"),
66
63
  ROW_CONTROLS_INNER: "".concat(_adfSchema.tablePrefixSelector, "-row-controls__inner"),
@@ -95,7 +92,12 @@ var TableCssClassName = exports.TableCssClassName = _objectSpread(_objectSpread(
95
92
  DRAG_COLUMN_CONTROLS: "".concat(_adfSchema.tablePrefixSelector, "-drag-column-controls"),
96
93
  DRAG_COLUMN_FLOATING_INSERT_DOT_WRAPPER: "".concat(_adfSchema.tablePrefixSelector, "-drag-columns-floating-insert-dot-wrapper"),
97
94
  DRAG_COLUMN_FLOATING_INSERT_DOT: "".concat(_adfSchema.tablePrefixSelector, "-drag-columns-floating-insert-dot"),
95
+ DRAG_COLUMN_CONTROLS_WRAPPER: "".concat(_adfSchema.tablePrefixSelector, "-col-controls-wrapper"),
96
+ DRAG_COLUMN_DROP_TARGET_CONTROLS: "".concat(_adfSchema.tablePrefixSelector, "-col-drop-target-controls"),
97
+ DRAG_COLUMN_CONTROLS_INNER: "".concat(_adfSchema.tablePrefixSelector, "-col-controls__inner"),
98
98
  DRAG_HANDLE_BUTTON_CONTAINER: "".concat(_adfSchema.tablePrefixSelector, "-drag-handle-button-container"),
99
+ DRAG_CORNER_BUTTON: "".concat(_adfSchema.tablePrefixSelector, "-drag-corner-button"),
100
+ DRAG_CORNER_BUTTON_INNER: "".concat(_adfSchema.tablePrefixSelector, "-drag-corner-button-inner"),
99
101
  /** Other classes */
100
102
  NUMBERED_COLUMN: "".concat(_adfSchema.tablePrefixSelector, "-numbered-column"),
101
103
  NUMBERED_COLUMN_BUTTON: "".concat(_adfSchema.tablePrefixSelector, "-numbered-column__button"),
@@ -59,6 +59,11 @@ var FloatingInsertButton = exports.FloatingInsertButton = /*#__PURE__*/function
59
59
  isHeaderRowEnabled = _this$props.isHeaderRowEnabled,
60
60
  isDragAndDropEnabled = _this$props.isDragAndDropEnabled,
61
61
  dispatchAnalyticsEvent = _this$props.dispatchAnalyticsEvent;
62
+
63
+ // TODO: temporarily disable insert button for first column and row https://atlassian.slack.com/archives/C05U8HRQM50/p1698363744682219?thread_ts=1698209039.104909&cid=C05U8HRQM50
64
+ if (isDragAndDropEnabled && (insertColumnButtonIndex === 0 || insertRowButtonIndex === 0)) {
65
+ return null;
66
+ }
62
67
  var type = typeof insertColumnButtonIndex !== 'undefined' ? 'column' : typeof insertRowButtonIndex !== 'undefined' ? 'row' : null;
63
68
  if (!tableNode || !tableRef || !type) {
64
69
  return null;
@@ -80,7 +80,7 @@ var ColumnControls = exports.ColumnControls = function ColumnControls(_ref) {
80
80
  return /*#__PURE__*/_react.default.createElement("div", {
81
81
  className: _types.TableCssClassName.DRAG_COLUMN_CONTROLS
82
82
  }, /*#__PURE__*/_react.default.createElement("div", {
83
- className: _types.TableCssClassName.COLUMN_CONTROLS_INNER,
83
+ className: _types.TableCssClassName.DRAG_COLUMN_CONTROLS_INNER,
84
84
  "data-testid": "table-floating-column-controls",
85
85
  style: {
86
86
  gridTemplateColumns: widths,
@@ -98,13 +98,7 @@ var ColumnControls = exports.ColumnControls = function ColumnControls(_ref) {
98
98
  className: _types.TableCssClassName.DRAG_COLUMN_FLOATING_INSERT_DOT_WRAPPER,
99
99
  contentEditable: false,
100
100
  key: index
101
- }, !hasHeaderColumn && index === 0 && /*#__PURE__*/_react.default.createElement("div", {
102
- style: {
103
- left: '0px',
104
- right: 'unset'
105
- },
106
- className: _types.TableCssClassName.DRAG_COLUMN_FLOATING_INSERT_DOT
107
- }), /*#__PURE__*/_react.default.createElement("div", {
101
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
102
  className: _types.TableCssClassName.DRAG_COLUMN_FLOATING_INSERT_DOT,
109
103
  style: columnParams.length - 1 === index ? {
110
104
  right: '0'
@@ -113,12 +107,10 @@ var ColumnControls = exports.ColumnControls = function ColumnControls(_ref) {
113
107
  }), tableActive && !isResizing && !!hoveredCell && Number.isFinite(hoveredCell.colIndex) && /*#__PURE__*/_react.default.createElement("div", {
114
108
  style: {
115
109
  gridColumn: gridColumnPosition,
116
- zIndex: 99,
117
110
  display: 'flex',
118
- width: '100%',
119
111
  justifyContent: 'center',
120
112
  alignItems: 'center',
121
- marginTop: "var(--ds-space-negative-025, -2px)"
113
+ zIndex: 99
122
114
  },
123
115
  "data-column-control-index": hoveredCell.colIndex,
124
116
  "data-testid": "table-floating-column-control"
@@ -23,10 +23,10 @@ var ColumnDropTargets = exports.ColumnDropTargets = function ColumnDropTargets(_
23
23
  var hasHeaderRow = firstRow ? firstRow.getAttribute('data-header-row') : false;
24
24
  var marginTop = hasHeaderRow && stickyTop !== undefined ? (_rowHeights$ = rowHeights === null || rowHeights === void 0 ? void 0 : rowHeights[0]) !== null && _rowHeights$ !== void 0 ? _rowHeights$ : 0 : 0;
25
25
  return /*#__PURE__*/_react.default.createElement("div", {
26
- className: _types.TableCssClassName.COLUMN_DROP_TARGET_CONTROLS,
26
+ className: _types.TableCssClassName.DRAG_COLUMN_DROP_TARGET_CONTROLS,
27
27
  contentEditable: false
28
28
  }, /*#__PURE__*/_react.default.createElement("div", {
29
- className: _types.TableCssClassName.COLUMN_CONTROLS_INNER,
29
+ className: _types.TableCssClassName.DRAG_COLUMN_CONTROLS_INNER,
30
30
  "data-testid": "table-floating-column-controls-drop-targets"
31
31
  }, colWidths === null || colWidths === void 0 ? void 0 : colWidths.map(function (width, index) {
32
32
  return /*#__PURE__*/_react.default.createElement(_ColumnDropTarget.ColumnDropTarget, {
@@ -110,7 +110,7 @@ var TableFloatingColumnControls = exports.TableFloatingColumnControls = function
110
110
  return null;
111
111
  }
112
112
  return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement("div", {
113
- className: _types.TableCssClassName.COLUMN_CONTROLS_WRAPPER,
113
+ className: _types.TableCssClassName.DRAG_COLUMN_CONTROLS_WRAPPER,
114
114
  "data-testid": "table-floating-column-controls-wrapper"
115
115
  }, /*#__PURE__*/_react.default.createElement(_ColumnControls.ColumnControls, {
116
116
  editorView: editorView,
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CornerControls = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _classnames = _interopRequireDefault(require("classnames"));
18
+ var _reactIntlNext = require("react-intl-next");
19
+ var _tableMap = require("@atlaskit/editor-tables/table-map");
20
+ var _utils = require("@atlaskit/editor-tables/utils");
21
+ var _commands = require("../../../commands");
22
+ var _types = require("../../../types");
23
+ var _messages = _interopRequireDefault(require("../../messages"));
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
28
+ var CornerControlComponent = /*#__PURE__*/function (_Component) {
29
+ (0, _inherits2.default)(CornerControlComponent, _Component);
30
+ var _super = _createSuper(CornerControlComponent);
31
+ function CornerControlComponent() {
32
+ var _this;
33
+ (0, _classCallCheck2.default)(this, CornerControlComponent);
34
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
+ args[_key] = arguments[_key];
36
+ }
37
+ _this = _super.call.apply(_super, [this].concat(args));
38
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isActive", function () {
39
+ var _this$props = _this.props,
40
+ editorView = _this$props.editorView,
41
+ hoveredRows = _this$props.hoveredRows,
42
+ isResizing = _this$props.isResizing;
43
+ var selection = editorView.state.selection;
44
+ var table = (0, _utils.findTable)(selection);
45
+ if (!table) {
46
+ return false;
47
+ }
48
+ return (0, _utils.isTableSelected)(selection) || hoveredRows && hoveredRows.length === _tableMap.TableMap.get(table.node).height && !isResizing;
49
+ });
50
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clearHoverSelection", function () {
51
+ var _this$props$editorVie = _this.props.editorView,
52
+ state = _this$props$editorVie.state,
53
+ dispatch = _this$props$editorVie.dispatch;
54
+ (0, _commands.clearHoverSelection)()(state, dispatch);
55
+ });
56
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selectTable", function () {
57
+ var _this$props$editorVie2 = _this.props.editorView,
58
+ state = _this$props$editorVie2.state,
59
+ dispatch = _this$props$editorVie2.dispatch;
60
+ dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
61
+ });
62
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hoverTable", function () {
63
+ var _this$props$editorVie3 = _this.props.editorView,
64
+ state = _this$props$editorVie3.state,
65
+ dispatch = _this$props$editorVie3.dispatch;
66
+ (0, _commands.hoverTable)()(state, dispatch);
67
+ });
68
+ return _this;
69
+ }
70
+ (0, _createClass2.default)(CornerControlComponent, [{
71
+ key: "render",
72
+ value: function render() {
73
+ var _this$props2 = this.props,
74
+ isInDanger = _this$props2.isInDanger,
75
+ tableRef = _this$props2.tableRef,
76
+ isHeaderColumnEnabled = _this$props2.isHeaderColumnEnabled,
77
+ isHeaderRowEnabled = _this$props2.isHeaderRowEnabled,
78
+ formatMessage = _this$props2.intl.formatMessage;
79
+ if (!tableRef) {
80
+ return null;
81
+ }
82
+ var isActive = this.isActive();
83
+ return /*#__PURE__*/_react.default.createElement("div", {
84
+ className: (0, _classnames.default)(_types.TableCssClassName.CORNER_CONTROLS, {
85
+ active: isActive,
86
+ sticky: this.props.stickyTop !== undefined
87
+ }),
88
+ style: {
89
+ top: this.props.stickyTop !== undefined ? "".concat(this.props.stickyTop, "px") : undefined
90
+ },
91
+ contentEditable: false
92
+ }, /*#__PURE__*/_react.default.createElement("button", {
93
+ "aria-label": formatMessage(_messages.default.cornerControl),
94
+ type: "button",
95
+ className: (0, _classnames.default)(_types.TableCssClassName.CONTROLS_CORNER_BUTTON, {
96
+ danger: isActive && isInDanger
97
+ }),
98
+ onClick: this.selectTable,
99
+ onMouseOver: this.hoverTable,
100
+ onMouseOut: this.clearHoverSelection
101
+ }), !isHeaderRowEnabled && /*#__PURE__*/_react.default.createElement("div", {
102
+ className: _types.TableCssClassName.CORNER_CONTROLS_INSERT_ROW_MARKER
103
+ }, /*#__PURE__*/_react.default.createElement("div", {
104
+ className: _types.TableCssClassName.CONTROLS_INSERT_MARKER
105
+ })), !isHeaderColumnEnabled && /*#__PURE__*/_react.default.createElement("div", {
106
+ className: _types.TableCssClassName.CORNER_CONTROLS_INSERT_COLUMN_MARKER
107
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
+ className: _types.TableCssClassName.CONTROLS_INSERT_MARKER
109
+ })));
110
+ }
111
+ }]);
112
+ return CornerControlComponent;
113
+ }(_react.Component);
114
+ var CornerControls = exports.CornerControls = (0, _reactIntlNext.injectIntl)(CornerControlComponent);
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DragCornerControls = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _reactIntlNext = require("react-intl-next");
12
+ var _utils = require("@atlaskit/editor-tables/utils");
13
+ var _commands = require("../../../commands");
14
+ var _types = require("../../../types");
15
+ var _messages = _interopRequireDefault(require("../../messages"));
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ var DragCornerControlsComponent = function DragCornerControlsComponent(_ref) {
19
+ var editorView = _ref.editorView,
20
+ isInDanger = _ref.isInDanger,
21
+ formatMessage = _ref.intl.formatMessage;
22
+ var handleOnClick = function handleOnClick() {
23
+ var state = editorView.state,
24
+ dispatch = editorView.dispatch;
25
+ dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
26
+ };
27
+ var handleMouseOver = function handleMouseOver() {
28
+ var state = editorView.state,
29
+ dispatch = editorView.dispatch;
30
+ (0, _commands.hoverTable)()(state, dispatch);
31
+ };
32
+ var handleMouseOut = function handleMouseOut() {
33
+ var state = editorView.state,
34
+ dispatch = editorView.dispatch;
35
+ (0, _commands.clearHoverSelection)()(state, dispatch);
36
+ };
37
+ var isActive = (0, _react.useMemo)(function () {
38
+ var selection = editorView.state.selection;
39
+ var table = (0, _utils.findTable)(selection);
40
+ if (!table) {
41
+ return false;
42
+ }
43
+ return (0, _utils.isTableSelected)(selection);
44
+ }, [editorView.state]);
45
+ return /*#__PURE__*/_react.default.createElement("button", {
46
+ className: (0, _classnames.default)(_types.TableCssClassName.DRAG_CORNER_BUTTON, {
47
+ active: isActive,
48
+ danger: isActive && isInDanger
49
+ }),
50
+ "aria-label": formatMessage(_messages.default.cornerControl),
51
+ type: "button",
52
+ onClick: handleOnClick,
53
+ onMouseOver: handleMouseOver,
54
+ onMouseOut: handleMouseOut,
55
+ contentEditable: false
56
+ }, /*#__PURE__*/_react.default.createElement("div", {
57
+ className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
58
+ }));
59
+ };
60
+ var DragCornerControls = exports.DragCornerControls = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponent);
@@ -1,120 +1,19 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.CornerControls = void 0;
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _react = _interopRequireWildcard(require("react"));
17
- var _classnames = _interopRequireDefault(require("classnames"));
18
- var _reactIntlNext = require("react-intl-next");
19
- var _tableMap = require("@atlaskit/editor-tables/table-map");
20
- var _utils = require("@atlaskit/editor-tables/utils");
21
- var _commands = require("../../../commands");
22
- var _types = require("../../../types");
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
26
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
- var messages = (0, _reactIntlNext.defineMessages)({
28
- cornerControl: {
29
- id: 'fabric.editor.cornerControl',
30
- defaultMessage: 'Highlight table',
31
- description: 'A button on the upper left corner of the table that shows up when the table is in focus. Clicking on it will select the entire table.'
6
+ Object.defineProperty(exports, "CornerControls", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ClassicCornerControls.CornerControls;
32
10
  }
33
11
  });
34
- var CornerControlComponent = /*#__PURE__*/function (_Component) {
35
- (0, _inherits2.default)(CornerControlComponent, _Component);
36
- var _super = _createSuper(CornerControlComponent);
37
- function CornerControlComponent() {
38
- var _this;
39
- (0, _classCallCheck2.default)(this, CornerControlComponent);
40
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
41
- args[_key] = arguments[_key];
42
- }
43
- _this = _super.call.apply(_super, [this].concat(args));
44
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isActive", function () {
45
- var _this$props = _this.props,
46
- editorView = _this$props.editorView,
47
- hoveredRows = _this$props.hoveredRows,
48
- isResizing = _this$props.isResizing;
49
- var selection = editorView.state.selection;
50
- var table = (0, _utils.findTable)(selection);
51
- if (!table) {
52
- return false;
53
- }
54
- return (0, _utils.isTableSelected)(selection) || hoveredRows && hoveredRows.length === _tableMap.TableMap.get(table.node).height && !isResizing;
55
- });
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clearHoverSelection", function () {
57
- var _this$props$editorVie = _this.props.editorView,
58
- state = _this$props$editorVie.state,
59
- dispatch = _this$props$editorVie.dispatch;
60
- (0, _commands.clearHoverSelection)()(state, dispatch);
61
- });
62
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selectTable", function () {
63
- var _this$props$editorVie2 = _this.props.editorView,
64
- state = _this$props$editorVie2.state,
65
- dispatch = _this$props$editorVie2.dispatch;
66
- dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
67
- });
68
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hoverTable", function () {
69
- var _this$props$editorVie3 = _this.props.editorView,
70
- state = _this$props$editorVie3.state,
71
- dispatch = _this$props$editorVie3.dispatch;
72
- (0, _commands.hoverTable)()(state, dispatch);
73
- });
74
- return _this;
12
+ Object.defineProperty(exports, "DragCornerControls", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _DragCornerControls.DragCornerControls;
75
16
  }
76
- (0, _createClass2.default)(CornerControlComponent, [{
77
- key: "render",
78
- value: function render() {
79
- var _this$props2 = this.props,
80
- isInDanger = _this$props2.isInDanger,
81
- tableRef = _this$props2.tableRef,
82
- isHeaderColumnEnabled = _this$props2.isHeaderColumnEnabled,
83
- isHeaderRowEnabled = _this$props2.isHeaderRowEnabled,
84
- formatMessage = _this$props2.intl.formatMessage;
85
- if (!tableRef) {
86
- return null;
87
- }
88
- var isActive = this.isActive();
89
- return /*#__PURE__*/_react.default.createElement("div", {
90
- className: (0, _classnames.default)(_types.TableCssClassName.CORNER_CONTROLS, {
91
- active: isActive,
92
- sticky: this.props.stickyTop !== undefined
93
- }),
94
- style: {
95
- top: this.props.stickyTop !== undefined ? "".concat(this.props.stickyTop, "px") : undefined
96
- },
97
- contentEditable: false
98
- }, /*#__PURE__*/_react.default.createElement("button", {
99
- "aria-label": formatMessage(messages.cornerControl),
100
- type: "button",
101
- className: (0, _classnames.default)(_types.TableCssClassName.CONTROLS_CORNER_BUTTON, {
102
- danger: isActive && isInDanger
103
- }),
104
- onClick: this.selectTable,
105
- onMouseOver: this.hoverTable,
106
- onMouseOut: this.clearHoverSelection
107
- }), !isHeaderRowEnabled && /*#__PURE__*/_react.default.createElement("div", {
108
- className: _types.TableCssClassName.CORNER_CONTROLS_INSERT_ROW_MARKER
109
- }, /*#__PURE__*/_react.default.createElement("div", {
110
- className: _types.TableCssClassName.CONTROLS_INSERT_MARKER
111
- })), !isHeaderColumnEnabled && /*#__PURE__*/_react.default.createElement("div", {
112
- className: _types.TableCssClassName.CORNER_CONTROLS_INSERT_COLUMN_MARKER
113
- }, /*#__PURE__*/_react.default.createElement("div", {
114
- className: _types.TableCssClassName.CONTROLS_INSERT_MARKER
115
- })));
116
- }
117
- }]);
118
- return CornerControlComponent;
119
- }(_react.Component);
120
- var CornerControls = exports.CornerControls = (0, _reactIntlNext.injectIntl)(CornerControlComponent);
17
+ });
18
+ var _ClassicCornerControls = require("./ClassicCornerControls");
19
+ var _DragCornerControls = require("./DragCornerControls");
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -98,13 +98,7 @@ var DragControlsComponent = function DragControlsComponent(_ref) {
98
98
  className: _types.TableCssClassName.DRAG_ROW_FLOATING_INSERT_DOT_WRAPPER,
99
99
  contentEditable: false,
100
100
  key: index
101
- }, !hasHeaderRow && index === 0 && /*#__PURE__*/_react.default.createElement("div", {
102
- style: {
103
- top: '0px',
104
- left: "var(--ds-space-075, 6px)"
105
- },
106
- className: _types.TableCssClassName.DRAG_ROW_FLOATING_INSERT_DOT
107
- }), /*#__PURE__*/_react.default.createElement("div", {
101
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
102
  className: _types.TableCssClassName.DRAG_ROW_FLOATING_INSERT_DOT
109
103
  }));
110
104
  }), !isResizing && Number.isFinite(rowIndex) && /*#__PURE__*/_react.default.createElement("div", {
@@ -177,7 +177,12 @@ var TableFloatingControls = exports.default = /*#__PURE__*/function (_Component)
177
177
  updateCellHoverLocation: this.updateCellHoverLocation,
178
178
  stickyTop: stickyTop,
179
179
  isDragAndDropEnabled: isDragAndDropEnabled
180
- }) : null, tableActive && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isDragAndDropEnabled ? /*#__PURE__*/_react.default.createElement(_RowControls.DragControls, {
180
+ }) : null, tableActive && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isDragAndDropEnabled ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.DragCornerControls, {
181
+ editorView: editorView,
182
+ tableRef: tableRef,
183
+ isInDanger: isInDanger,
184
+ isResizing: isResizing
185
+ }), /*#__PURE__*/_react.default.createElement(_RowControls.DragControls, {
181
186
  tableRef: tableRef,
182
187
  tableNode: tableNode,
183
188
  hoveredCell: hoveredCell,
@@ -189,7 +194,7 @@ var TableFloatingControls = exports.default = /*#__PURE__*/function (_Component)
189
194
  hoverRows: this.hoverRows,
190
195
  selectRow: this.selectRow,
191
196
  updateCellHoverLocation: this.updateCellHoverLocation
192
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.CornerControls, {
197
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.CornerControls, {
193
198
  editorView: editorView,
194
199
  tableRef: tableRef,
195
200
  isInDanger: isInDanger,