@atlaskit/editor-plugin-table 7.6.2 → 7.6.4

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 (119) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/commands/misc.js +3 -2
  3. package/dist/cjs/nodeviews/TableComponent.js +25 -11
  4. package/dist/cjs/nodeviews/TableComponentWithSharedState.js +87 -0
  5. package/dist/cjs/nodeviews/TableContainer.js +37 -21
  6. package/dist/cjs/nodeviews/TableResizer.js +40 -29
  7. package/dist/cjs/nodeviews/table.js +21 -1
  8. package/dist/cjs/plugin.js +25 -2
  9. package/dist/cjs/toolbar.js +5 -4
  10. package/dist/cjs/types.js +3 -0
  11. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  12. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -3
  13. package/dist/cjs/ui/FloatingDragMenu/DropdownMenu.js +21 -28
  14. package/dist/cjs/ui/TableFloatingColumnControls/ColumnControls/index.js +6 -2
  15. package/dist/cjs/ui/TableFloatingColumnControls/index.js +5 -2
  16. package/dist/cjs/ui/TableFloatingControls/CornerControls/DragCornerControls.js +48 -1
  17. package/dist/cjs/ui/TableFloatingControls/CornerControls/index.js +6 -0
  18. package/dist/cjs/ui/TableFloatingControls/FloatingControlsWithSelection.js +47 -0
  19. package/dist/cjs/ui/TableFloatingControls/RowControls/ClassicControls.js +3 -2
  20. package/dist/cjs/ui/TableFloatingControls/index.js +25 -3
  21. package/dist/cjs/ui/common-styles.js +11 -6
  22. package/dist/cjs/utils/guidelines.js +1 -1
  23. package/dist/es2019/commands/misc.js +6 -2
  24. package/dist/es2019/nodeviews/TableComponent.js +27 -12
  25. package/dist/es2019/nodeviews/TableComponentWithSharedState.js +83 -0
  26. package/dist/es2019/nodeviews/TableContainer.js +24 -6
  27. package/dist/es2019/nodeviews/TableResizer.js +27 -19
  28. package/dist/es2019/nodeviews/table.js +21 -1
  29. package/dist/es2019/plugin.js +26 -3
  30. package/dist/es2019/toolbar.js +5 -4
  31. package/dist/es2019/types.js +3 -0
  32. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  33. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -3
  34. package/dist/es2019/ui/FloatingDragMenu/DropdownMenu.js +20 -27
  35. package/dist/es2019/ui/TableFloatingColumnControls/ColumnControls/index.js +7 -2
  36. package/dist/es2019/ui/TableFloatingColumnControls/index.js +5 -2
  37. package/dist/es2019/ui/TableFloatingControls/CornerControls/DragCornerControls.js +55 -0
  38. package/dist/es2019/ui/TableFloatingControls/CornerControls/index.js +1 -1
  39. package/dist/es2019/ui/TableFloatingControls/FloatingControlsWithSelection.js +42 -0
  40. package/dist/es2019/ui/TableFloatingControls/RowControls/ClassicControls.js +3 -2
  41. package/dist/es2019/ui/TableFloatingControls/index.js +26 -4
  42. package/dist/es2019/ui/common-styles.js +589 -588
  43. package/dist/es2019/utils/guidelines.js +1 -1
  44. package/dist/esm/commands/misc.js +3 -2
  45. package/dist/esm/nodeviews/TableComponent.js +25 -11
  46. package/dist/esm/nodeviews/TableComponentWithSharedState.js +80 -0
  47. package/dist/esm/nodeviews/TableContainer.js +37 -21
  48. package/dist/esm/nodeviews/TableResizer.js +41 -30
  49. package/dist/esm/nodeviews/table.js +21 -1
  50. package/dist/esm/plugin.js +26 -3
  51. package/dist/esm/toolbar.js +5 -4
  52. package/dist/esm/types.js +3 -0
  53. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  54. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -3
  55. package/dist/esm/ui/FloatingDragMenu/DropdownMenu.js +21 -28
  56. package/dist/esm/ui/TableFloatingColumnControls/ColumnControls/index.js +6 -2
  57. package/dist/esm/ui/TableFloatingColumnControls/index.js +5 -2
  58. package/dist/esm/ui/TableFloatingControls/CornerControls/DragCornerControls.js +47 -0
  59. package/dist/esm/ui/TableFloatingControls/CornerControls/index.js +1 -1
  60. package/dist/esm/ui/TableFloatingControls/FloatingControlsWithSelection.js +40 -0
  61. package/dist/esm/ui/TableFloatingControls/RowControls/ClassicControls.js +3 -2
  62. package/dist/esm/ui/TableFloatingControls/index.js +26 -4
  63. package/dist/esm/ui/common-styles.js +10 -5
  64. package/dist/esm/utils/guidelines.js +1 -1
  65. package/dist/types/commands/misc.d.ts +2 -1
  66. package/dist/types/nodeviews/TableComponent.d.ts +7 -2
  67. package/dist/types/nodeviews/TableComponentWithSharedState.d.ts +27 -0
  68. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  69. package/dist/types/nodeviews/TableResizer.d.ts +4 -1
  70. package/dist/types/nodeviews/types.d.ts +1 -0
  71. package/dist/types/plugin.d.ts +11 -7
  72. package/dist/types/types.d.ts +13 -4
  73. package/dist/types/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +113 -1
  74. package/dist/types/ui/TableFloatingColumnControls/index.d.ts +3 -2
  75. package/dist/types/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +223 -0
  76. package/dist/types/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  77. package/dist/types/ui/TableFloatingControls/FloatingControlsWithSelection.d.ts +20 -0
  78. package/dist/types/ui/TableFloatingControls/RowControls/ClassicControls.d.ts +2 -0
  79. package/dist/types/ui/TableFloatingControls/index.d.ts +113 -1
  80. package/dist/types/ui/common-styles.d.ts +3 -0
  81. package/dist/types-ts4.5/commands/misc.d.ts +2 -1
  82. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +7 -2
  83. package/dist/types-ts4.5/nodeviews/TableComponentWithSharedState.d.ts +27 -0
  84. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  85. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +4 -1
  86. package/dist/types-ts4.5/nodeviews/types.d.ts +1 -0
  87. package/dist/types-ts4.5/plugin.d.ts +11 -7
  88. package/dist/types-ts4.5/types.d.ts +13 -4
  89. package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +144 -1
  90. package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +3 -2
  91. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +285 -0
  92. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/index.d.ts +1 -1
  93. package/dist/types-ts4.5/ui/TableFloatingControls/FloatingControlsWithSelection.d.ts +20 -0
  94. package/dist/types-ts4.5/ui/TableFloatingControls/RowControls/ClassicControls.d.ts +2 -0
  95. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +144 -1
  96. package/dist/types-ts4.5/ui/common-styles.d.ts +3 -0
  97. package/package.json +6 -6
  98. package/src/commands/misc.ts +6 -3
  99. package/src/nodeviews/TableComponent.tsx +36 -7
  100. package/src/nodeviews/TableComponentWithSharedState.tsx +125 -0
  101. package/src/nodeviews/TableContainer.tsx +24 -3
  102. package/src/nodeviews/TableResizer.tsx +36 -21
  103. package/src/nodeviews/table.tsx +22 -1
  104. package/src/nodeviews/types.ts +1 -0
  105. package/src/plugin.tsx +47 -6
  106. package/src/toolbar.tsx +20 -19
  107. package/src/types.ts +33 -4
  108. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +66 -112
  109. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -12
  110. package/src/ui/FloatingDragMenu/DropdownMenu.tsx +19 -28
  111. package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +10 -2
  112. package/src/ui/TableFloatingColumnControls/index.tsx +13 -1
  113. package/src/ui/TableFloatingControls/CornerControls/DragCornerControls.tsx +58 -0
  114. package/src/ui/TableFloatingControls/CornerControls/index.tsx +4 -1
  115. package/src/ui/TableFloatingControls/FloatingControlsWithSelection.tsx +68 -0
  116. package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +4 -1
  117. package/src/ui/TableFloatingControls/index.tsx +42 -8
  118. package/src/ui/common-styles.ts +611 -610
  119. package/src/utils/guidelines.ts +5 -4
@@ -85,11 +85,11 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
85
85
  var node = isOpen && targetCellPosition ? state.doc.nodeAt(targetCellPosition) : null;
86
86
  var background = (0, _editorPalette.hexToEditorBackgroundPaletteColor)((node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.background) || '#ffffff');
87
87
  return {
88
- content: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? formatMessage(_messages.tableMessages.backgroundColor) : formatMessage(_messages.tableMessages.cellBackground),
88
+ content: isDragAndDropEnabled ? formatMessage(_messages.tableMessages.backgroundColor) : formatMessage(_messages.tableMessages.cellBackground),
89
89
  value: {
90
90
  name: 'background'
91
91
  },
92
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
92
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
93
93
  css: _styles2.elementBeforeIconStyles
94
94
  }, (0, _react2.jsx)(_backgroundColor.default, {
95
95
  label: formatMessage(_messages.tableMessages.backgroundColor),
@@ -99,7 +99,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
99
99
  className: _styles.DropdownMenuSharedCssClassName.SUBMENU
100
100
  }, (0, _react2.jsx)("div", {
101
101
  css: (0, _styles2.cellColourPreviewStyles)(background),
102
- className: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? _types.TableCssClassName.CONTEXTUAL_MENU_ICON_SMALL : _types.TableCssClassName.CONTEXTUAL_MENU_ICON
102
+ className: isDragAndDropEnabled ? _types.TableCssClassName.CONTEXTUAL_MENU_ICON_SMALL : _types.TableCssClassName.CONTEXTUAL_MENU_ICON
103
103
  }), isSubmenuOpen && (0, _react2.jsx)("div", {
104
104
  className: _types.TableCssClassName.CONTEXTUAL_SUBMENU,
105
105
  ref: _this.handleSubMenuRef
@@ -131,7 +131,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
131
131
  name: 'merge'
132
132
  },
133
133
  isDisabled: !(0, _transforms.canMergeCells)(state.tr),
134
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
134
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
135
135
  css: _styles2.elementBeforeIconStyles
136
136
  }, (0, _react2.jsx)(_icons.MergeCellsIcon, null)) : undefined
137
137
  }, {
@@ -140,7 +140,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
140
140
  name: 'split'
141
141
  },
142
142
  isDisabled: !(0, _utils2.splitCell)(state),
143
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
143
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
144
144
  css: _styles2.elementBeforeIconStyles
145
145
  }, (0, _react2.jsx)(_icons.SplitCellIcon, null)) : undefined
146
146
  }];
@@ -154,14 +154,14 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
154
154
  var _getPluginState3 = (0, _pluginFactory.getPluginState)(editorView.state),
155
155
  isDragAndDropEnabled = _getPluginState3.isDragAndDropEnabled;
156
156
  return {
157
- content: formatMessage(isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? _messages.tableMessages.addColumnRight : _messages.tableMessages.insertColumn),
157
+ content: formatMessage(isDragAndDropEnabled ? _messages.tableMessages.addColumnRight : _messages.tableMessages.insertColumn),
158
158
  value: {
159
159
  name: 'insert_column'
160
160
  },
161
161
  elemAfter: (0, _react2.jsx)("div", {
162
162
  css: _shortcut.shortcutStyle
163
163
  }, (0, _keymaps.tooltip)(_keymaps.addColumnAfter)),
164
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
164
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
165
165
  css: _styles2.elementBeforeIconStyles
166
166
  }, (0, _react2.jsx)(_icons.AddColRightIcon, null)) : undefined
167
167
  };
@@ -173,14 +173,14 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
173
173
  var _getPluginState4 = (0, _pluginFactory.getPluginState)(editorView.state),
174
174
  isDragAndDropEnabled = _getPluginState4.isDragAndDropEnabled;
175
175
  return {
176
- content: formatMessage(isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? _messages.tableMessages.addRowBelow : _messages.tableMessages.insertRow),
176
+ content: formatMessage(isDragAndDropEnabled ? _messages.tableMessages.addRowBelow : _messages.tableMessages.insertRow),
177
177
  value: {
178
178
  name: 'insert_row'
179
179
  },
180
180
  elemAfter: (0, _react2.jsx)("div", {
181
181
  css: _shortcut.shortcutStyle
182
182
  }, (0, _keymaps.tooltip)(_keymaps.addRowAfter)),
183
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
183
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
184
184
  css: _styles2.elementBeforeIconStyles
185
185
  }, (0, _react2.jsx)(_icons.AddRowBelowIcon, null)) : undefined
186
186
  };
@@ -208,7 +208,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
208
208
  elemAfter: (0, _react2.jsx)("div", {
209
209
  css: _shortcut.shortcutStyle
210
210
  }, (0, _keymaps.tooltip)(_keymaps.backspace)),
211
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
211
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
212
212
  css: _styles2.elementBeforeIconStyles
213
213
  }, (0, _react2.jsx)(_crossCircle.default, {
214
214
  label: formatMessage(_messages.tableMessages.clearCells, {
@@ -234,7 +234,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
234
234
  value: {
235
235
  name: 'delete_column'
236
236
  },
237
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
237
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
238
238
  css: _styles2.elementBeforeIconStyles
239
239
  }, (0, _react2.jsx)(_remove.default, {
240
240
  label: formatMessage(_messages.tableMessages.removeColumns, {
@@ -260,7 +260,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
260
260
  value: {
261
261
  name: 'delete_row'
262
262
  },
263
- elemBefore: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? (0, _react2.jsx)("span", {
263
+ elemBefore: isDragAndDropEnabled ? (0, _react2.jsx)("span", {
264
264
  css: _styles2.elementBeforeIconStyles
265
265
  }, (0, _react2.jsx)(_remove.default, {
266
266
  label: formatMessage(_messages.tableMessages.removeRows, {
@@ -278,7 +278,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
278
278
  var _getPluginState8 = (0, _pluginFactory.getPluginState)(editorView.state),
279
279
  isDragAndDropEnabled = _getPluginState8.isDragAndDropEnabled,
280
280
  allowDistributeColumns = _getPluginState8.pluginConfig.allowDistributeColumns;
281
- if (allowDistributeColumns && (!isDragAndDropEnabled || !(0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling'))) {
281
+ if (allowDistributeColumns && !isDragAndDropEnabled) {
282
282
  var _newResizeState$chang;
283
283
  var _getPluginState9 = (0, _pluginFactory.getPluginState)(editorView.state),
284
284
  _getPluginState9$isTa = _getPluginState9.isTableScalingEnabled,
@@ -302,7 +302,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
302
302
  allowColumnSorting = _this$props9.allowColumnSorting;
303
303
  var _getPluginState10 = (0, _pluginFactory.getPluginState)(editorView.state),
304
304
  isDragAndDropEnabled = _getPluginState10.isDragAndDropEnabled;
305
- if (allowColumnSorting && (!isDragAndDropEnabled || !(0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling'))) {
305
+ if (allowColumnSorting && !isDragAndDropEnabled) {
306
306
  var hasMergedCellsInTable = (0, _utils3.getMergedCellsPositions)(editorView.state.tr).length > 0;
307
307
  var warning = hasMergedCellsInTable ? {
308
308
  tooltipDescription: formatMessage(_messages.tableMessages.canNotSortTable),
@@ -520,7 +520,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
520
520
  editorView = _this$props14.editorView;
521
521
  var _getPluginState14 = (0, _pluginFactory.getPluginState)(editorView.state),
522
522
  isDragAndDropEnabled = _getPluginState14.isDragAndDropEnabled;
523
- var items = isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') ? this.createNewContextMenuItems() : this.createOriginalContextMenuItems();
523
+ var items = isDragAndDropEnabled ? this.createNewContextMenuItems() : this.createOriginalContextMenuItems();
524
524
  return (0, _react2.jsx)("div", {
525
525
  "data-testid": "table-cell-contextual-menu",
526
526
  onMouseLeave: this.closeSubmenu
@@ -543,7 +543,7 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
543
543
  fitWidth: isDragAndDropEnabled ? _consts.contextualMenuDropdownWidthDnD : _consts.contextualMenuDropdownWidth,
544
544
  boundariesElement: boundariesElement,
545
545
  offset: offset,
546
- section: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.menu.group-items') ? {
546
+ section: isDragAndDropEnabled && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.menu.group-items') ? {
547
547
  hasSeparator: true
548
548
  } : undefined
549
549
  }));
@@ -448,20 +448,20 @@ var DragMenu = exports.DragMenu = /*#__PURE__*/_react.default.memo(function (_re
448
448
  if (!menuItems) {
449
449
  return null;
450
450
  }
451
- if (allowBackgroundColor && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling')) {
451
+ if (allowBackgroundColor) {
452
452
  menuItems[0].items.unshift(createBackgroundColorMenuItem());
453
453
  }
454
454
 
455
455
  // If first row, add toggle for Header row, default is true
456
456
  // If first column, add toggle for Header column, default is false
457
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') && index === 0) {
457
+ if (index === 0) {
458
458
  menuItems.push({
459
459
  items: [createHeaderRowColumnMenuItem(direction)]
460
460
  });
461
461
  }
462
462
 
463
463
  // All rows, add toggle for numbered rows, default is false
464
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling') && direction === 'row') {
464
+ if (direction === 'row') {
465
465
  index === 0 ? menuItems[menuItems.length - 1].items.push(createRowNumbersMenuItem()) : menuItems.push({
466
466
  items: [createRowNumbersMenuItem()]
467
467
  });
@@ -13,7 +13,6 @@ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
13
13
  var _uiReact = require("@atlaskit/editor-common/ui-react");
14
14
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
15
15
  var _menu = require("@atlaskit/menu");
16
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
16
  var _consts = require("../consts");
18
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -129,39 +128,33 @@ var DropdownMenu = exports.DropdownMenu = function DropdownMenu(_ref) {
129
128
  // The logic below normalises the index value based on the number
130
129
  // of menu items with 2 focusable elements, and adjusts the index to ensure
131
130
  // the correct menu item is sent in onItemActivated callback
132
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.new-cell-context-menu-styling')) {
133
- var keys = ['row_numbers', 'header_row', 'header_column'];
134
- var doubleItemCount = 0;
135
- var firstIndex = results.findIndex(function (value) {
136
- return keys.includes(value.key);
131
+ var keys = ['row_numbers', 'header_row', 'header_column'];
132
+ var doubleItemCount = 0;
133
+ var firstIndex = results.findIndex(function (value) {
134
+ return keys.includes(value.key);
135
+ });
136
+ if (firstIndex === -1 || index <= firstIndex) {
137
+ onItemActivated && onItemActivated({
138
+ item: results[index]
137
139
  });
138
- if (firstIndex === -1 || index <= firstIndex) {
140
+ return;
141
+ }
142
+ for (var i = firstIndex; i < results.length; i += 1) {
143
+ if (keys.includes(results[i].key)) {
144
+ doubleItemCount += 1;
145
+ }
146
+ if (firstIndex % 2 === 0 && index - doubleItemCount === i) {
139
147
  onItemActivated && onItemActivated({
140
- item: results[index]
148
+ item: results[i]
141
149
  });
142
150
  return;
143
151
  }
144
- for (var i = firstIndex; i < results.length; i += 1) {
145
- if (keys.includes(results[i].key)) {
146
- doubleItemCount += 1;
147
- }
148
- if (firstIndex % 2 === 0 && index - doubleItemCount === i) {
149
- onItemActivated && onItemActivated({
150
- item: results[i]
151
- });
152
- return;
153
- }
154
- if (firstIndex % 2 === 1 && index - doubleItemCount === i) {
155
- onItemActivated && onItemActivated({
156
- item: results[i]
157
- });
158
- return;
159
- }
152
+ if (firstIndex % 2 === 1 && index - doubleItemCount === i) {
153
+ onItemActivated && onItemActivated({
154
+ item: results[i]
155
+ });
156
+ return;
160
157
  }
161
- } else {
162
- onItemActivated && onItemActivated({
163
- item: results[index]
164
- });
165
158
  }
166
159
  }
167
160
  }, innerMenu())));
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.ColumnControls = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _hooks = require("@atlaskit/editor-common/hooks");
9
10
  var _styles = require("@atlaskit/editor-common/styles");
10
11
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
12
  var _editorTables = require("@atlaskit/editor-tables");
@@ -45,8 +46,11 @@ var ColumnControls = exports.ColumnControls = function ColumnControls(_ref) {
45
46
  tableContainerWidth = _ref.tableContainerWidth,
46
47
  isNumberColumnEnabled = _ref.isNumberColumnEnabled,
47
48
  isDragging = _ref.isDragging,
48
- getScrollOffset = _ref.getScrollOffset;
49
+ getScrollOffset = _ref.getScrollOffset,
50
+ api = _ref.api;
49
51
  var columnControlsRef = (0, _react.useRef)(null);
52
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['selection']),
53
+ selectionState = _useSharedPluginState.selectionState;
50
54
  var widths = (_colWidths$map$join = colWidths === null || colWidths === void 0 ? void 0 : colWidths.map(function (width) {
51
55
  return (
52
56
  // when there is sticky header, a `margin-right: -1px` applied to `tr.sticky th` so it causes colWidths to be 1px wider
@@ -57,7 +61,7 @@ var ColumnControls = exports.ColumnControls = function ColumnControls(_ref) {
57
61
  // TODO: reusing getRowsParams here because it's generic enough to work for columns -> rename
58
62
  var columnParams = (0, _utils2.getRowsParams)(colWidths !== null && colWidths !== void 0 ? colWidths : []);
59
63
  var colIndex = hoveredCell === null || hoveredCell === void 0 ? void 0 : hoveredCell.colIndex;
60
- var selectedColIndexes = getSelectedColumns(editorView.state.selection);
64
+ var selectedColIndexes = getSelectedColumns((selectionState === null || selectionState === void 0 ? void 0 : selectionState.selection) || editorView.state.selection);
61
65
  var firstRow = tableRef.querySelector('tr');
62
66
  var hasHeaderRow = firstRow ? firstRow.getAttribute('data-header-row') : false;
63
67
  var marginTop = hasHeaderRow && stickyTop !== undefined ? (_rowHeights$ = rowHeights === null || rowHeights === void 0 ? void 0 : rowHeights[0]) !== null && _rowHeights$ !== void 0 ? _rowHeights$ : 0 : 0;
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = exports.TableFloatingColumnControls = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _adapter = require("@atlaskit/pragmatic-drag-and-drop/element/adapter");
12
13
  var _types = require("../../types");
13
14
  var _utils = require("../../utils");
@@ -30,7 +31,8 @@ var TableFloatingColumnControls = exports.TableFloatingColumnControls = function
30
31
  tableContainerWidth = _ref.tableContainerWidth,
31
32
  isNumberColumnEnabled = _ref.isNumberColumnEnabled,
32
33
  getScrollOffset = _ref.getScrollOffset,
33
- tableWrapperHeight = _ref.tableWrapperHeight;
34
+ tableWrapperHeight = _ref.tableWrapperHeight,
35
+ api = _ref.api;
34
36
  var _useState = (0, _react.useState)(false),
35
37
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
38
  isDragging = _useState2[0],
@@ -97,7 +99,8 @@ var TableFloatingColumnControls = exports.TableFloatingColumnControls = function
97
99
  tableContainerWidth: tableContainerWidth,
98
100
  isNumberColumnEnabled: isNumberColumnEnabled,
99
101
  isDragging: isDragging,
100
- getScrollOffset: getScrollOffset
102
+ getScrollOffset: getScrollOffset,
103
+ api: (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-shared-state-hook') ? api : undefined
101
104
  }), isDragging && /*#__PURE__*/_react.default.createElement(_ColumnDropTargets.ColumnDropTargets, {
102
105
  tableRef: tableRef,
103
106
  isHeaderSticky: (stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.sticky) && hasHeaderRow,
@@ -5,10 +5,11 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.DragCornerControls = void 0;
8
+ exports.DragCornerControlsWithSelection = exports.DragCornerControls = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _reactIntlNext = require("react-intl-next");
12
+ var _hooks = require("@atlaskit/editor-common/hooks");
12
13
  var _messages = require("@atlaskit/editor-common/messages");
13
14
  var _utils = require("@atlaskit/editor-tables/utils");
14
15
  var _commands = require("../../../commands");
@@ -55,4 +56,50 @@ var DragCornerControlsComponent = function DragCornerControlsComponent(_ref) {
55
56
  className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
56
57
  }));
57
58
  };
59
+ var DragCornerControlsComponentWithSelection = function DragCornerControlsComponentWithSelection(_ref2) {
60
+ var editorView = _ref2.editorView,
61
+ isInDanger = _ref2.isInDanger,
62
+ isResizing = _ref2.isResizing,
63
+ formatMessage = _ref2.intl.formatMessage,
64
+ api = _ref2.api;
65
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['selection']),
66
+ selectionState = _useSharedPluginState.selectionState;
67
+ var handleOnClick = function handleOnClick() {
68
+ var state = editorView.state,
69
+ dispatch = editorView.dispatch;
70
+ dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
71
+ };
72
+ var handleMouseOut = function handleMouseOut() {
73
+ var state = editorView.state,
74
+ dispatch = editorView.dispatch;
75
+ (0, _commands.clearHoverSelection)()(state, dispatch);
76
+ };
77
+ var isActive = (0, _react.useMemo)(function () {
78
+ if (!(selectionState !== null && selectionState !== void 0 && selectionState.selection)) {
79
+ return;
80
+ }
81
+ var table = (0, _utils.findTable)(selectionState.selection);
82
+ if (!table) {
83
+ return false;
84
+ }
85
+ return (0, _utils.isTableSelected)(selectionState.selection);
86
+ }, [selectionState]);
87
+ if (isResizing) {
88
+ return null;
89
+ }
90
+ return /*#__PURE__*/_react.default.createElement("button", {
91
+ className: (0, _classnames.default)(_types.TableCssClassName.DRAG_CORNER_BUTTON, {
92
+ active: isActive,
93
+ danger: isActive && isInDanger
94
+ }),
95
+ "aria-label": formatMessage(_messages.tableMessages.cornerControl),
96
+ type: "button",
97
+ onClick: handleOnClick,
98
+ onMouseOut: handleMouseOut,
99
+ contentEditable: false
100
+ }, /*#__PURE__*/_react.default.createElement("div", {
101
+ className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
102
+ }));
103
+ };
104
+ var DragCornerControlsWithSelection = exports.DragCornerControlsWithSelection = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponentWithSelection);
58
105
  var DragCornerControls = exports.DragCornerControls = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponent);
@@ -15,5 +15,11 @@ Object.defineProperty(exports, "DragCornerControls", {
15
15
  return _DragCornerControls.DragCornerControls;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "DragCornerControlsWithSelection", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _DragCornerControls.DragCornerControlsWithSelection;
22
+ }
23
+ });
18
24
  var _ClassicCornerControls = require("./ClassicCornerControls");
19
25
  var _DragCornerControls = require("./DragCornerControls");
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FloatingControlsWithSelection = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _hooks = require("@atlaskit/editor-common/hooks");
10
+ var _CornerControls = require("./CornerControls");
11
+ var _RowControls = require("./RowControls");
12
+ var FloatingControlsWithSelection = exports.FloatingControlsWithSelection = function FloatingControlsWithSelection(_ref) {
13
+ var editorView = _ref.editorView,
14
+ tableRef = _ref.tableRef,
15
+ isInDanger = _ref.isInDanger,
16
+ isResizing = _ref.isResizing,
17
+ isHeaderRowEnabled = _ref.isHeaderRowEnabled,
18
+ isHeaderColumnEnabled = _ref.isHeaderColumnEnabled,
19
+ hoveredRows = _ref.hoveredRows,
20
+ stickyTop = _ref.stickyTop,
21
+ hoverRows = _ref.hoverRows,
22
+ selectRow = _ref.selectRow,
23
+ tableActive = _ref.tableActive,
24
+ api = _ref.api;
25
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['selection']),
26
+ selectionState = _useSharedPluginState.selectionState;
27
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.CornerControls, {
28
+ editorView: editorView,
29
+ tableRef: tableRef,
30
+ isInDanger: isInDanger,
31
+ isResizing: isResizing,
32
+ isHeaderRowEnabled: isHeaderRowEnabled,
33
+ isHeaderColumnEnabled: isHeaderColumnEnabled,
34
+ hoveredRows: hoveredRows,
35
+ stickyTop: tableActive ? stickyTop : undefined
36
+ }), /*#__PURE__*/_react.default.createElement(_RowControls.RowControls, {
37
+ selection: selectionState === null || selectionState === void 0 ? void 0 : selectionState.selection,
38
+ editorView: editorView,
39
+ tableRef: tableRef,
40
+ hoverRows: hoverRows,
41
+ hoveredRows: hoveredRows,
42
+ isInDanger: isInDanger,
43
+ isResizing: isResizing,
44
+ selectRow: selectRow,
45
+ stickyTop: tableActive ? stickyTop : undefined
46
+ }));
47
+ };
@@ -52,7 +52,8 @@ var RowControlsComponent = /*#__PURE__*/function (_Component) {
52
52
  hoveredRows = _this$props.hoveredRows,
53
53
  isInDanger = _this$props.isInDanger,
54
54
  isResizing = _this$props.isResizing,
55
- formatMessage = _this$props.intl.formatMessage;
55
+ formatMessage = _this$props.intl.formatMessage,
56
+ selectionState = _this$props.selection;
56
57
  if (!tableRef) {
57
58
  return null;
58
59
  }
@@ -76,7 +77,7 @@ var RowControlsComponent = /*#__PURE__*/function (_Component) {
76
77
  }
77
78
  var thisRowSticky = _this2.props.stickyTop !== undefined && index === 0 && hasHeaderRow;
78
79
  return /*#__PURE__*/_react.default.createElement("div", {
79
- className: "".concat(_types.TableCssClassName.ROW_CONTROLS_BUTTON_WRAP, " ").concat((0, _utils.getRowClassNames)(startIndex, selection, hoveredRows, isInDanger, isResizing), " ").concat(thisRowSticky ? 'sticky' : ''),
80
+ className: "".concat(_types.TableCssClassName.ROW_CONTROLS_BUTTON_WRAP, " ").concat((0, _utils.getRowClassNames)(startIndex, selectionState || selection, hoveredRows, isInDanger, isResizing), " ").concat(thisRowSticky ? 'sticky' : ''),
80
81
  key: startIndex,
81
82
  style: {
82
83
  height: height,
@@ -8,9 +8,11 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = exports.TableFloatingControls = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _utils = require("@atlaskit/editor-common/utils");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _commands = require("../../commands");
12
13
  var _types = require("../../types");
13
14
  var _CornerControls = require("./CornerControls");
15
+ var _FloatingControlsWithSelection = require("./FloatingControlsWithSelection");
14
16
  var _NumberColumn = _interopRequireDefault(require("./NumberColumn"));
15
17
  var _RowControls = require("./RowControls");
16
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -31,7 +33,8 @@ var TableFloatingControls = exports.TableFloatingControls = function TableFloati
31
33
  isDragAndDropEnabled = _ref.isDragAndDropEnabled,
32
34
  hoveredCell = _ref.hoveredCell,
33
35
  isTableHovered = _ref.isTableHovered,
34
- tableWrapperWidth = _ref.tableWrapperWidth;
36
+ tableWrapperWidth = _ref.tableWrapperWidth,
37
+ api = _ref.api;
35
38
  var _selectRow = (0, _react.useCallback)(function (row, expand) {
36
39
  var state = editorView.state,
37
40
  dispatch = editorView.dispatch;
@@ -92,7 +95,13 @@ var TableFloatingControls = exports.TableFloatingControls = function TableFloati
92
95
  updateCellHoverLocation: updateCellHoverLocation,
93
96
  stickyTop: stickyTop,
94
97
  isDragAndDropEnabled: isDragAndDropEnabled
95
- }) : 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, {
98
+ }) : null, tableActive && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isDragAndDropEnabled ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-shared-state-hook') ? /*#__PURE__*/_react.default.createElement(_CornerControls.DragCornerControlsWithSelection, {
99
+ editorView: editorView,
100
+ tableRef: tableRef,
101
+ isInDanger: isInDanger,
102
+ isResizing: isResizing,
103
+ api: api
104
+ }) : /*#__PURE__*/_react.default.createElement(_CornerControls.DragCornerControls, {
96
105
  editorView: editorView,
97
106
  tableRef: tableRef,
98
107
  isInDanger: isInDanger,
@@ -111,7 +120,20 @@ var TableFloatingControls = exports.TableFloatingControls = function TableFloati
111
120
  selectRow: _selectRow,
112
121
  selectRows: _selectRows,
113
122
  updateCellHoverLocation: updateCellHoverLocation
114
- })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.CornerControls, {
123
+ })) : (0, _platformFeatureFlags.getBooleanFF)('platform.editor.table.use-shared-state-hook') ? /*#__PURE__*/_react.default.createElement(_FloatingControlsWithSelection.FloatingControlsWithSelection, {
124
+ editorView: editorView,
125
+ tableRef: tableRef,
126
+ isInDanger: isInDanger,
127
+ isResizing: isResizing,
128
+ isHeaderRowEnabled: isHeaderRowEnabled,
129
+ isHeaderColumnEnabled: isHeaderColumnEnabled,
130
+ hoveredRows: hoveredRows,
131
+ stickyTop: tableActive ? stickyTop : undefined,
132
+ tableActive: tableActive,
133
+ hoverRows: _hoverRows,
134
+ selectRow: _selectRow,
135
+ api: api
136
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CornerControls.CornerControls, {
115
137
  editorView: editorView,
116
138
  tableRef: tableRef,
117
139
  isInDanger: isInDanger,