@atlaskit/editor-plugin-block-controls 2.27.0 → 2.27.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 (46) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/cjs/blockControlsPlugin.js +35 -6
  3. package/dist/cjs/pm-plugins/decorations-drop-target.js +11 -5
  4. package/dist/cjs/pm-plugins/main.js +2 -1
  5. package/dist/cjs/pm-plugins/utils/getSelection.js +2 -2
  6. package/dist/cjs/pm-plugins/utils/validation.js +2 -1
  7. package/dist/cjs/ui/block-menu-items.js +103 -0
  8. package/dist/cjs/ui/block-menu.js +77 -0
  9. package/dist/cjs/ui/consts.js +101 -2
  10. package/dist/cjs/ui/drag-handle.js +147 -41
  11. package/dist/cjs/ui/drag-preview.js +83 -34
  12. package/dist/es2019/blockControlsPlugin.js +34 -3
  13. package/dist/es2019/pm-plugins/decorations-drop-target.js +12 -5
  14. package/dist/es2019/pm-plugins/main.js +2 -1
  15. package/dist/es2019/pm-plugins/utils/getSelection.js +1 -1
  16. package/dist/es2019/pm-plugins/utils/validation.js +2 -1
  17. package/dist/es2019/ui/block-menu-items.js +92 -0
  18. package/dist/es2019/ui/block-menu.js +75 -0
  19. package/dist/es2019/ui/consts.js +100 -1
  20. package/dist/es2019/ui/drag-handle.js +152 -40
  21. package/dist/es2019/ui/drag-preview.js +83 -34
  22. package/dist/esm/blockControlsPlugin.js +35 -6
  23. package/dist/esm/pm-plugins/decorations-drop-target.js +11 -5
  24. package/dist/esm/pm-plugins/main.js +2 -1
  25. package/dist/esm/pm-plugins/utils/getSelection.js +1 -1
  26. package/dist/esm/pm-plugins/utils/validation.js +2 -1
  27. package/dist/esm/ui/block-menu-items.js +92 -0
  28. package/dist/esm/ui/block-menu.js +70 -0
  29. package/dist/esm/ui/consts.js +100 -1
  30. package/dist/esm/ui/drag-handle.js +149 -43
  31. package/dist/esm/ui/drag-preview.js +82 -34
  32. package/dist/types/blockControlsPluginType.d.ts +3 -0
  33. package/dist/types/pm-plugins/utils/getSelection.d.ts +3 -3
  34. package/dist/types/pm-plugins/utils/validation.d.ts +1 -1
  35. package/dist/types/ui/block-menu-items.d.ts +17 -0
  36. package/dist/types/ui/block-menu.d.ts +16 -0
  37. package/dist/types/ui/consts.d.ts +7 -0
  38. package/dist/types/ui/drag-preview.d.ts +9 -1
  39. package/dist/types-ts4.5/blockControlsPluginType.d.ts +3 -0
  40. package/dist/types-ts4.5/pm-plugins/utils/getSelection.d.ts +3 -3
  41. package/dist/types-ts4.5/pm-plugins/utils/validation.d.ts +1 -1
  42. package/dist/types-ts4.5/ui/block-menu-items.d.ts +17 -0
  43. package/dist/types-ts4.5/ui/block-menu.d.ts +16 -0
  44. package/dist/types-ts4.5/ui/consts.d.ts +7 -0
  45. package/dist/types-ts4.5/ui/drag-preview.d.ts +9 -1
  46. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @atlaskit/editor-plugin-block-controls
2
2
 
3
+ ## 2.27.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#115469](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/115469)
8
+ [`ab16802b3f404`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ab16802b3f404) -
9
+ Implement move functionality in block menu
10
+ - Updated dependencies
11
+
12
+ ## 2.27.3
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies
17
+
18
+ ## 2.27.2
19
+
20
+ ### Patch Changes
21
+
22
+ - [#114482](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114482)
23
+ [`4f000d73e6b03`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4f000d73e6b03) -
24
+ Patch to fix page crash in drag handle tooltip logic
25
+ - [#110314](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/110314)
26
+ [`63ac551fb3345`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/63ac551fb3345) -
27
+ [ux] ED-26271: Content preview for multi-select
28
+ - [#114618](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114618)
29
+ [`9976feceb2007`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/9976feceb2007) -
30
+ [ux] Implement initial UI for Block menu
31
+ - Updated dependencies
32
+
33
+ ## 2.27.1
34
+
35
+ ### Patch Changes
36
+
37
+ - [#112996](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/112996)
38
+ [`e76ab95452657`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e76ab95452657) -
39
+ ED-26395: Added tests for canMoveSliceToIndex, and fix drop target showing when first node is p,
40
+ second node table, drop into panel
41
+
3
42
  ## 2.27.0
4
43
 
5
44
  ### Minor Changes
@@ -9,9 +9,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _selection = require("@atlaskit/editor-common/selection");
11
11
  var _state = require("@atlaskit/editor-prosemirror/state");
12
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
12
13
  var _moveNode = require("./editor-commands/move-node");
13
14
  var _moveToLayout = require("./editor-commands/move-to-layout");
14
15
  var _main = require("./pm-plugins/main");
16
+ var _blockMenu = _interopRequireDefault(require("./ui/block-menu"));
15
17
  var _dragHandleMenu = require("./ui/drag-handle-menu");
16
18
  var _globalStyles = require("./ui/global-styles");
17
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -43,14 +45,31 @@ var blockControlsPlugin = exports.blockControlsPlugin = function blockControlsPl
43
45
  anchorName: anchorName,
44
46
  nodeType: nodeType,
45
47
  handleOptions: handleOptions
46
- }
48
+ },
49
+ closeMenu: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? true : undefined
47
50
  }));
48
51
  return tr;
49
52
  };
50
53
  },
51
- setNodeDragged: function setNodeDragged(getPos, anchorName, nodeType) {
54
+ toggleBlockMenu: function toggleBlockMenu(options) {
52
55
  return function (_ref4) {
53
56
  var tr = _ref4.tr;
57
+ var currMeta = tr.getMeta(_main.key);
58
+ if (options !== null && options !== void 0 && options.closeMenu) {
59
+ tr.setMeta(_main.key, _objectSpread(_objectSpread({}, currMeta), {}, {
60
+ closeMenu: true
61
+ }));
62
+ return tr;
63
+ }
64
+ tr.setMeta(_main.key, _objectSpread(_objectSpread({}, currMeta), {}, {
65
+ toggleMenu: true
66
+ }));
67
+ return tr;
68
+ };
69
+ },
70
+ setNodeDragged: function setNodeDragged(getPos, anchorName, nodeType) {
71
+ return function (_ref5) {
72
+ var tr = _ref5.tr;
54
73
  var pos = getPos();
55
74
  if (pos === undefined) {
56
75
  return tr;
@@ -68,9 +87,9 @@ var blockControlsPlugin = exports.blockControlsPlugin = function blockControlsPl
68
87
  };
69
88
  },
70
89
  setMultiSelectPositions: function setMultiSelectPositions(anchor, head) {
71
- return function (_ref5) {
90
+ return function (_ref6) {
72
91
  var _api$selection;
73
- var tr = _ref5.tr;
92
+ var tr = _ref6.tr;
74
93
  var _tr$selection = tr.selection,
75
94
  userAnchor = _tr$selection.anchor,
76
95
  userHead = _tr$selection.head;
@@ -118,8 +137,18 @@ var blockControlsPlugin = exports.blockControlsPlugin = function blockControlsPl
118
137
  multiSelectDnD: (_key$getState$multiSe = (_key$getState5 = _main.key.getState(editorState)) === null || _key$getState5 === void 0 ? void 0 : _key$getState5.multiSelectDnD) !== null && _key$getState$multiSe !== void 0 ? _key$getState$multiSe : undefined
119
138
  };
120
139
  },
121
- contentComponent: function contentComponent() {
122
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dragHandleMenu.DragHandleMenu, {
140
+ contentComponent: function contentComponent(_ref7) {
141
+ var editorView = _ref7.editorView,
142
+ popupsMountPoint = _ref7.popupsMountPoint,
143
+ popupsBoundariesElement = _ref7.popupsBoundariesElement,
144
+ popupsScrollableElement = _ref7.popupsScrollableElement;
145
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? /*#__PURE__*/_react.default.createElement(_blockMenu.default, {
146
+ editorView: editorView,
147
+ mountPoint: popupsMountPoint,
148
+ boundariesElement: popupsBoundariesElement,
149
+ scrollableElement: popupsScrollableElement,
150
+ api: api
151
+ }) : /*#__PURE__*/_react.default.createElement(_dragHandleMenu.DragHandleMenu, {
123
152
  api: api
124
153
  }), /*#__PURE__*/_react.default.createElement(_globalStyles.GlobalStylesWrapper, null));
125
154
  }
@@ -8,6 +8,7 @@ exports.findDropTargetDecs = exports.dropTargetDecorations = exports.createLayou
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = require("react");
10
10
  var _uuid = _interopRequireDefault(require("uuid"));
11
+ var _selection = require("@atlaskit/editor-common/selection");
11
12
  var _utils = require("@atlaskit/editor-common/utils");
12
13
  var _view = require("@atlaskit/editor-prosemirror/view");
13
14
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
@@ -166,6 +167,15 @@ var dropTargetDecorations = exports.dropTargetDecorations = function dropTargetD
166
167
  prevNodeStack.push(node);
167
168
  };
168
169
  var isAdvancedLayoutsPreRelease2 = (0, _experiments.editorExperiment)('advanced_layouts', true);
170
+
171
+ // For deciding to show drop targets or not when multiple nodes are selected
172
+ var selection = newState.selection;
173
+ var _expandSelectionBound = (0, _selection.expandSelectionBounds)(selection.$anchor, selection.$head),
174
+ expandedAnchor = _expandSelectionBound.$anchor,
175
+ expandedHead = _expandSelectionBound.$head;
176
+ var selectionFrom = Math.min(expandedAnchor.pos, expandedHead.pos);
177
+ var selectionTo = Math.max(expandedAnchor.pos, expandedHead.pos);
178
+ var handleInsideSelection = activeNodePos !== undefined && activeNodePos >= selectionFrom && activeNodePos <= selectionTo;
169
179
  newState.doc.nodesBetween(docFrom, docTo, function (node, pos, parent, index) {
170
180
  var depth = 0;
171
181
  // drop target deco at the end position
@@ -200,10 +210,6 @@ var dropTargetDecorations = exports.dropTargetDecorations = function dropTargetD
200
210
 
201
211
  // When multi select is on, validate all the nodes in the selection instead of just the handle node
202
212
  if (isMultiSelect) {
203
- var selection = newState.selection;
204
- var selectionFrom = selection.$from.pos;
205
- var selectionTo = selection.$to.pos;
206
- var handleInsideSelection = activeNodePos !== undefined && activeNodePos >= selectionFrom - 1 && activeNodePos <= selectionTo;
207
213
  var selectionSlice = newState.doc.slice(selectionFrom, selectionTo, false);
208
214
  var selectionSliceChildCount = selectionSlice.content.childCount;
209
215
  var canDropSingleNode = true;
@@ -211,7 +217,7 @@ var dropTargetDecorations = exports.dropTargetDecorations = function dropTargetD
211
217
 
212
218
  // when there is only one node in the slice, use the same logic as when multi select is not on
213
219
  if (selectionSliceChildCount > 1 && handleInsideSelection) {
214
- canDropMultipleNodes = (0, _validation.canMoveSliceToIndex)(selectionSlice, selectionFrom, newState.doc, parent, index, $pos);
220
+ canDropMultipleNodes = (0, _validation.canMoveSliceToIndex)(selectionSlice, selectionFrom, parent, index, $pos);
215
221
  } else {
216
222
  canDropSingleNode = !!(activePMNode && (0, _validation.canMoveNodeToIndex)(parent, index, activePMNode, $pos, node));
217
223
  }
@@ -282,11 +282,12 @@ var newApply = exports.newApply = function newApply(api, formatMessage, tr, curr
282
282
  }
283
283
  }
284
284
  var newActiveNode = isEmptyDoc || !(meta !== null && meta !== void 0 && meta.activeNode) && (0, _decorationsDragHandle.findHandleDec)(decorations, latestActiveNode === null || latestActiveNode === void 0 ? void 0 : latestActiveNode.pos, latestActiveNode === null || latestActiveNode === void 0 ? void 0 : latestActiveNode.pos).length === 0 ? null : latestActiveNode;
285
+ var isMenuOpenNew = (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? meta !== null && meta !== void 0 && meta.closeMenu ? false : meta !== null && meta !== void 0 && meta.toggleMenu ? !isMenuOpen : isMenuOpen : meta !== null && meta !== void 0 && meta.toggleMenu ? !isMenuOpen : isMenuOpen;
285
286
  return {
286
287
  decorations: decorations,
287
288
  activeNode: newActiveNode,
288
289
  isDragging: (_meta$isDragging2 = meta === null || meta === void 0 ? void 0 : meta.isDragging) !== null && _meta$isDragging2 !== void 0 ? _meta$isDragging2 : isDragging,
289
- isMenuOpen: meta !== null && meta !== void 0 && meta.toggleMenu ? !isMenuOpen : isMenuOpen,
290
+ isMenuOpen: isMenuOpenNew,
290
291
  editorHeight: (_meta$editorHeight = meta === null || meta === void 0 ? void 0 : meta.editorHeight) !== null && _meta$editorHeight !== void 0 ? _meta$editorHeight : editorHeight,
291
292
  editorWidthLeft: (_meta$editorWidthLeft = meta === null || meta === void 0 ? void 0 : meta.editorWidthLeft) !== null && _meta$editorWidthLeft !== void 0 ? _meta$editorWidthLeft : editorWidthLeft,
292
293
  editorWidthRight: (_meta$editorWidthRigh = meta === null || meta === void 0 ? void 0 : meta.editorWidthRight) !== null && _meta$editorWidthRigh !== void 0 ? _meta$editorWidthRigh : editorWidthRight,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setCursorPositionAtMovedNode = exports.selectNode = exports.rootTaskListDepth = exports.rootListDepth = exports.isHandleInSelection = exports.getSelection = exports.getInlineNodePos = void 0;
6
+ exports.setCursorPositionAtMovedNode = exports.selectNode = exports.rootTaskListDepth = exports.rootListDepth = exports.isHandleCorrelatedToSelection = exports.getSelection = exports.getInlineNodePos = void 0;
7
7
  var _selection = require("@atlaskit/editor-common/selection");
8
8
  var _state = require("@atlaskit/editor-prosemirror/state");
9
9
  var _utils = require("@atlaskit/editor-prosemirror/utils");
@@ -100,7 +100,7 @@ var setCursorPositionAtMovedNode = exports.setCursorPositionAtMovedNode = functi
100
100
  * @param handlePos
101
101
  * @returns
102
102
  */
103
- var isHandleInSelection = exports.isHandleInSelection = function isHandleInSelection(state, selection, handlePos) {
103
+ var isHandleCorrelatedToSelection = exports.isHandleCorrelatedToSelection = function isHandleCorrelatedToSelection(state, selection, handlePos) {
104
104
  if (selection.empty) {
105
105
  return false;
106
106
  }
@@ -121,8 +121,9 @@ function canMoveNodeToIndex(destParent, indexIntoParent, srcNode, $destNodePos,
121
121
  }
122
122
  return destParent.canReplaceWith(indexIntoParent, indexIntoParent, srcNodeType);
123
123
  }
124
- function canMoveSliceToIndex(slice, sliceFromPos, doc, destParent, indexIntoParent, $destNodePos, destNode) {
124
+ function canMoveSliceToIndex(slice, sliceFromPos, destParent, indexIntoParent, $destNodePos, destNode) {
125
125
  var canMoveNodes = true;
126
+ var doc = $destNodePos.doc;
126
127
  var nodesPos = [];
127
128
  for (var i = 0; i < slice.content.childCount; i++) {
128
129
  var node = slice.content.maybeChild(i);
@@ -0,0 +1,103 @@
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.menuItemsCallback = exports.getBlockMenuItems = void 0;
9
+ var _react = require("@emotion/react");
10
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
11
+ var _messages = _interopRequireWildcard(require("@atlaskit/editor-common/messages"));
12
+ var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
13
+ var _arrowDown = _interopRequireDefault(require("@atlaskit/icon/core/arrow-down"));
14
+ var _arrowUp = _interopRequireDefault(require("@atlaskit/icon/core/arrow-up"));
15
+ var _copy = _interopRequireDefault(require("@atlaskit/icon/core/copy"));
16
+ var _delete2 = _interopRequireDefault(require("@atlaskit/icon/core/delete"));
17
+ var _moveNode = require("../editor-commands/move-node");
18
+ var _consts = require("../pm-plugins/utils/consts");
19
+ 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); }
20
+ 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 && {}.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; }
21
+ /* eslint-disable @atlaskit/design-system/prefer-primitives */
22
+ /**
23
+ * @jsxRuntime classic
24
+ * @jsx jsx
25
+ */
26
+
27
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
28
+
29
+ var getBlockMenuItems = exports.getBlockMenuItems = function getBlockMenuItems(formatMessage) {
30
+ return [{
31
+ items: [{
32
+ content: formatMessage(_messages.blockControlsMessages.moveUp),
33
+ elemBefore: (0, _react.jsx)(_arrowUp.default, {
34
+ label: ""
35
+ }),
36
+ value: {
37
+ name: 'moveUp'
38
+ },
39
+ key: 'move_up',
40
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values
41
+ elemAfter: (0, _react.jsx)("div", {
42
+ css: _shortcut.shortcutStyle
43
+ }, (0, _keymaps.tooltip)(_keymaps.dragToMoveUp))
44
+ }, {
45
+ content: formatMessage(_messages.blockControlsMessages.moveDown),
46
+ elemBefore: (0, _react.jsx)(_arrowDown.default, {
47
+ label: ""
48
+ }),
49
+ value: {
50
+ name: 'moveDown'
51
+ },
52
+ key: 'move_down',
53
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values
54
+ elemAfter: (0, _react.jsx)("div", {
55
+ css: _shortcut.shortcutStyle
56
+ }, (0, _keymaps.tooltip)(_keymaps.dragToMoveDown))
57
+ }]
58
+ }, {
59
+ items: [{
60
+ content: formatMessage(_messages.default.copyToClipboard),
61
+ value: {
62
+ name: 'copy'
63
+ },
64
+ elemBefore: (0, _react.jsx)(_copy.default, {
65
+ label: ""
66
+ }),
67
+ key: 'copy',
68
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values
69
+ elemAfter: (0, _react.jsx)("div", {
70
+ css: _shortcut.shortcutStyle
71
+ }, (0, _keymaps.tooltip)(_keymaps.copy))
72
+ }, {
73
+ content: formatMessage(_messages.blockControlsMessages.delete),
74
+ value: {
75
+ name: 'delete'
76
+ },
77
+ elemBefore: (0, _react.jsx)(_delete2.default, {
78
+ label: ""
79
+ }),
80
+ key: 'delete',
81
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values
82
+ elemAfter: (0, _react.jsx)("div", {
83
+ css: _shortcut.shortcutStyle
84
+ }, (0, _keymaps.tooltip)(_keymaps.deleteKey))
85
+ }]
86
+ }];
87
+ };
88
+ var menuItemsCallback = exports.menuItemsCallback = {
89
+ moveUp: function moveUp(api, formatMessage) {
90
+ return (0, _moveNode.moveNodeViaShortcut)(api, _consts.DIRECTION.UP, formatMessage);
91
+ },
92
+ moveDown: function moveDown(api, formatMessage) {
93
+ return (0, _moveNode.moveNodeViaShortcut)(api, _consts.DIRECTION.DOWN, formatMessage);
94
+ },
95
+ copy: function copy() {
96
+ // TODO: implement copy
97
+ // console.log('copy');
98
+ },
99
+ delete: function _delete() {
100
+ // TODO: implement delete
101
+ // console.log('delete');
102
+ }
103
+ };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntlNext = require("react-intl-next");
10
+ var _hooks = require("@atlaskit/editor-common/hooks");
11
+ var _ui = require("@atlaskit/editor-common/ui");
12
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
13
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
14
+ var _blockMenuItems = require("./block-menu-items");
15
+ var _consts = require("./consts");
16
+ var dragHandleSelector = '[data-blocks-drag-handle-container="true"] button';
17
+ var BlockMenu = function BlockMenu(_ref) {
18
+ var editorView = _ref.editorView,
19
+ mountPoint = _ref.mountPoint,
20
+ boundariesElement = _ref.boundariesElement,
21
+ scrollableElement = _ref.scrollableElement,
22
+ api = _ref.api,
23
+ formatMessage = _ref.intl.formatMessage;
24
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['blockControls']),
25
+ blockControlsState = _useSharedPluginState.blockControlsState;
26
+ if (!(blockControlsState !== null && blockControlsState !== void 0 && blockControlsState.isMenuOpen)) {
27
+ return null;
28
+ }
29
+ var targetHandleRef = document.querySelector(dragHandleSelector);
30
+ var items = (0, _blockMenuItems.getBlockMenuItems)(formatMessage);
31
+ var handleOpenChange = function handleOpenChange(payload) {
32
+ if (!(payload !== null && payload !== void 0 && payload.isOpen)) {
33
+ api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 ? void 0 : api.blockControls.commands.toggleBlockMenu({
34
+ closeMenu: true
35
+ }));
36
+ }
37
+ };
38
+ var onMenuItemActivated = function onMenuItemActivated(_ref2) {
39
+ var item = _ref2.item;
40
+ if (editorView) {
41
+ var _menuItemsCallback, _menuItemsCallback$ca;
42
+ (_menuItemsCallback = _blockMenuItems.menuItemsCallback[item.value.name]) === null || _menuItemsCallback === void 0 || (_menuItemsCallback$ca = _menuItemsCallback.call(_blockMenuItems.menuItemsCallback, api, formatMessage)) === null || _menuItemsCallback$ca === void 0 || _menuItemsCallback$ca(editorView.state, editorView.dispatch, editorView);
43
+ }
44
+ };
45
+ return /*#__PURE__*/_react.default.createElement(_ui.Popup, {
46
+ alignX: 'right',
47
+ alignY: 'start'
48
+ // Ignored via go/ees005
49
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
50
+ ,
51
+ target: targetHandleRef,
52
+ mountTo: undefined,
53
+ zIndex: _editorSharedStyles.akEditorFloatingOverlapPanelZIndex,
54
+ forcePlacement: true,
55
+ stick: true,
56
+ offset: [-18, 8]
57
+ }, /*#__PURE__*/_react.default.createElement(_uiMenu.DropdownMenu, {
58
+ mountTo: mountPoint,
59
+ boundariesElement: boundariesElement,
60
+ scrollableElement: scrollableElement
61
+ //This needs be removed when the a11y is completely handled
62
+ //Disabling key navigation now as it works only partially
63
+ ,
64
+ arrowKeyNavigationProviderOptions: {
65
+ type: _uiMenu.ArrowKeyNavigationType.MENU
66
+ },
67
+ items: items,
68
+ isOpen: true,
69
+ fitWidth: _consts.BLOCK_MENU_WIDTH,
70
+ section: {
71
+ hasSeparator: true
72
+ },
73
+ onOpenChange: handleOpenChange,
74
+ onItemActivated: onMenuItemActivated
75
+ }));
76
+ };
77
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(BlockMenu);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.topPositionAdjustment = exports.spaceLookupMap = exports.nodeMargins = exports.getNestedNodeLeftPaddingMargin = exports.dropTargetMarginMap = exports.dragHandleGap = exports.DRAG_HANDLE_ZINDEX = exports.DRAG_HANDLE_WIDTH = exports.DRAG_HANDLE_PARAGRAPH_TOP_ADJUSTMENT = exports.DRAG_HANDLE_NARROW_GAP = exports.DRAG_HANDLE_MAX_WIDTH_PLUS_GAP = exports.DRAG_HANDLE_MAX_GAP = exports.DRAG_HANDLE_LAYOUT_SECTION_TOP_ADJUSTMENT = exports.DRAG_HANDLE_HEIGHT = exports.DRAG_HANDLE_H6_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H5_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H4_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H3_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H2_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H1_TOP_ADJUSTMENT = exports.DRAG_HANDLE_DIVIDER_TOP_ADJUSTMENT = exports.DRAG_HANDLE_DEFAULT_GAP = exports.DRAG_HANDLE_BORDER_RADIUS = exports.DEFAULT_COLUMN_DISTRIBUTIONS = void 0;
7
+ exports.topPositionAdjustment = exports.spacingBetweenNodesForPreview = exports.spaceLookupMap = exports.nodeMargins = exports.getNestedNodeLeftPaddingMargin = exports.dropTargetMarginMap = exports.dragHandleGap = exports.DRAG_HANDLE_ZINDEX = exports.DRAG_HANDLE_WIDTH = exports.DRAG_HANDLE_PARAGRAPH_TOP_ADJUSTMENT = exports.DRAG_HANDLE_NARROW_GAP = exports.DRAG_HANDLE_MAX_WIDTH_PLUS_GAP = exports.DRAG_HANDLE_MAX_GAP = exports.DRAG_HANDLE_LAYOUT_SECTION_TOP_ADJUSTMENT = exports.DRAG_HANDLE_HEIGHT = exports.DRAG_HANDLE_H6_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H5_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H4_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H3_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H2_TOP_ADJUSTMENT = exports.DRAG_HANDLE_H1_TOP_ADJUSTMENT = exports.DRAG_HANDLE_DIVIDER_TOP_ADJUSTMENT = exports.DRAG_HANDLE_DEFAULT_GAP = exports.DRAG_HANDLE_BORDER_RADIUS = exports.DEFAULT_COLUMN_DISTRIBUTIONS = exports.BLOCK_MENU_WIDTH = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
10
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -111,6 +111,104 @@ Array.from({
111
111
  }, 1000);
112
112
  return [currKeyValue, dropTargetMarginMap[value]];
113
113
  }));
114
+ var spacingBetweenNodesForPreview = exports.spacingBetweenNodesForPreview = {
115
+ paragraph: {
116
+ top: '0.75rem',
117
+ bottom: '0'
118
+ },
119
+ heading1: {
120
+ top: '1.45833em',
121
+ bottom: '0'
122
+ },
123
+ heading2: {
124
+ top: '1.4em',
125
+ bottom: '0'
126
+ },
127
+ heading3: {
128
+ top: '1.31249em',
129
+ bottom: '0'
130
+ },
131
+ heading4: {
132
+ top: '1.25em',
133
+ bottom: '0'
134
+ },
135
+ heading5: {
136
+ top: '1.45833em',
137
+ bottom: '0'
138
+ },
139
+ heading6: {
140
+ top: '1.59091em',
141
+ bottom: '0'
142
+ },
143
+ table: {
144
+ top: '0',
145
+ bottom: '0'
146
+ },
147
+ bulletList: {
148
+ top: '10px',
149
+ bottom: '0'
150
+ },
151
+ orderedList: {
152
+ top: '10px',
153
+ bottom: '0'
154
+ },
155
+ decisionList: {
156
+ top: '0.5rem',
157
+ bottom: '0'
158
+ },
159
+ taskList: {
160
+ top: '0.75rem',
161
+ bottom: '0'
162
+ },
163
+ codeBlock: {
164
+ top: '0.75rem',
165
+ bottom: '0'
166
+ },
167
+ panel: {
168
+ top: '0.75rem',
169
+ bottom: '0'
170
+ },
171
+ rule: {
172
+ top: '1.5rem',
173
+ bottom: '1.5rem'
174
+ },
175
+ mediaSingle: {
176
+ top: '24px',
177
+ bottom: '24px'
178
+ },
179
+ media: {
180
+ top: '24px',
181
+ bottom: '24px'
182
+ },
183
+ bodiedExtension: {
184
+ top: '0',
185
+ bottom: '0'
186
+ },
187
+ extension: {
188
+ top: '0',
189
+ bottom: '0'
190
+ },
191
+ layoutSection: {
192
+ top: '0',
193
+ bottom: '0'
194
+ },
195
+ blockquote: {
196
+ top: '0',
197
+ bottom: '0'
198
+ },
199
+ embedCard: {
200
+ top: '24px',
201
+ bottom: '24px'
202
+ },
203
+ blockCard: {
204
+ top: '0.75rem',
205
+ bottom: '0'
206
+ },
207
+ default: {
208
+ top: '0',
209
+ bottom: '0'
210
+ }
211
+ };
114
212
 
115
213
  // This table contains the "margins" of different nodes
116
214
  // Note this is not the actually margin of the DOM elements,
@@ -212,4 +310,5 @@ var DEFAULT_COLUMN_DISTRIBUTIONS = exports.DEFAULT_COLUMN_DISTRIBUTIONS = {
212
310
  3: 33.33,
213
311
  4: 25,
214
312
  5: 20
215
- };
313
+ };
314
+ var BLOCK_MENU_WIDTH = exports.BLOCK_MENU_WIDTH = 220;