@atlaskit/editor-plugin-block-controls 7.2.1 → 7.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/editor-commands/move-to-layout.js +3 -3
- package/dist/cjs/pm-plugins/utils/getSelection.js +11 -1
- package/dist/cjs/ui/drag-handle.js +17 -4
- package/dist/es2019/editor-commands/move-to-layout.js +3 -3
- package/dist/es2019/pm-plugins/utils/getSelection.js +10 -0
- package/dist/es2019/ui/drag-handle.js +16 -3
- package/dist/esm/editor-commands/move-to-layout.js +3 -3
- package/dist/esm/pm-plugins/utils/getSelection.js +10 -0
- package/dist/esm/ui/drag-handle.js +16 -3
- package/dist/types/pm-plugins/utils/getSelection.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/utils/getSelection.d.ts +1 -0
- package/package.json +4 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 7.2.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`c02f3cc8759b5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c02f3cc8759b5) -
|
|
8
|
+
[ux] Updates handleOnClick of a drag handle. When blockquote has a codeblock inside, we set
|
|
9
|
+
NodeSelection instead of range selection when blockquote's drag handle is clicked.
|
|
10
|
+
|
|
11
|
+
## 7.2.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`d24d26320c940`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d24d26320c940) -
|
|
16
|
+
FD-100510 clean up fg platform_editor_breakout_resizing_hello_release
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 7.2.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -189,7 +189,7 @@ var removeBreakoutMarks = function removeBreakoutMarks(tr, $from, to) {
|
|
|
189
189
|
if ((0, _experiments.editorExperiment)('platform_editor_element_drag_and_drop_multiselect', true)) {
|
|
190
190
|
tr.doc.nodesBetween($from.pos, to, function (node, pos, parent) {
|
|
191
191
|
// should never remove breakout from previous layoutSection
|
|
192
|
-
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
192
|
+
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
193
193
|
if (node.type.name === 'layoutSection') {
|
|
194
194
|
return false;
|
|
195
195
|
}
|
|
@@ -312,7 +312,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
312
312
|
// if not found, get from source node,
|
|
313
313
|
var breakoutMode;
|
|
314
314
|
var breakoutWidth;
|
|
315
|
-
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
315
|
+
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
316
316
|
var _ref8 = getBreakoutModeAndWidth(toNode, breakout) || getBreakoutModeAndWidth(sourceContent, breakout) || {};
|
|
317
317
|
breakoutMode = _ref8.breakoutMode;
|
|
318
318
|
breakoutWidth = _ref8.breakoutWidth;
|
|
@@ -376,7 +376,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
376
376
|
tr = (0, _removeFromSource.removeFromSource)(tr, $sourceFrom, sourceTo);
|
|
377
377
|
var mappedTo = tr.mapping.map(to);
|
|
378
378
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout);
|
|
379
|
-
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
379
|
+
if ((0, _expValEquals.expValEquals)('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
380
380
|
breakoutMode && tr.setNodeMarkup(mappedTo, newLayout.type, newLayout.attrs, [breakout.create({
|
|
381
381
|
mode: breakoutMode,
|
|
382
382
|
width: breakoutWidth
|
|
@@ -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.isHandleCorrelatedToSelection = exports.getSelection = exports.getInlineNodePos = void 0;
|
|
6
|
+
exports.setCursorPositionAtMovedNode = exports.selectNode = exports.rootTaskListDepth = exports.rootListDepth = exports.isNodeWithCodeBlock = exports.isHandleCorrelatedToSelection = exports.getSelection = exports.getInlineNodePos = void 0;
|
|
7
7
|
var _selection2 = require("@atlaskit/editor-common/selection");
|
|
8
8
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
9
9
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
@@ -33,6 +33,16 @@ var getInlineNodePos = exports.getInlineNodePos = function getInlineNodePos(tr,
|
|
|
33
33
|
inlineNodeEndPos: inlineNodeEndPos
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
|
+
var isNodeWithCodeBlock = exports.isNodeWithCodeBlock = function isNodeWithCodeBlock(tr, start, nodeSize) {
|
|
37
|
+
var $startPos = tr.doc.resolve(start);
|
|
38
|
+
var hasCodeBlock = false;
|
|
39
|
+
tr.doc.nodesBetween($startPos.pos, $startPos.pos + nodeSize, function (n) {
|
|
40
|
+
if (['codeBlock'].includes(n.type.name)) {
|
|
41
|
+
hasCodeBlock = true;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return hasCodeBlock;
|
|
45
|
+
};
|
|
36
46
|
var isNodeWithMediaOrExtension = function isNodeWithMediaOrExtension(tr, start, nodeSize) {
|
|
37
47
|
var $startPos = tr.doc.resolve(start);
|
|
38
48
|
var hasMediaOrExtension = false;
|
|
@@ -36,7 +36,7 @@ var _main = require("../pm-plugins/main");
|
|
|
36
36
|
var _analytics2 = require("../pm-plugins/utils/analytics");
|
|
37
37
|
var _dragHandlePositions = require("../pm-plugins/utils/drag-handle-positions");
|
|
38
38
|
var _getSelection = require("../pm-plugins/utils/getSelection");
|
|
39
|
-
var
|
|
39
|
+
var _selection2 = require("../pm-plugins/utils/selection");
|
|
40
40
|
var _consts2 = require("./consts");
|
|
41
41
|
var _dragPreview = require("./drag-preview");
|
|
42
42
|
var _anchorName = require("./utils/anchor-name");
|
|
@@ -357,7 +357,20 @@ var DragHandle = exports.DragHandle = function DragHandle(_ref) {
|
|
|
357
357
|
var mSelect = api === null || api === void 0 || (_api$blockControls$sh = api.blockControls.sharedState.currentState()) === null || _api$blockControls$sh === void 0 ? void 0 : _api$blockControls$sh.multiSelectDnD;
|
|
358
358
|
var $anchor = (mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) !== undefined ? tr.doc.resolve(mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) : tr.selection.$anchor;
|
|
359
359
|
if (!isMultiSelect || tr.selection.empty || !e.shiftKey) {
|
|
360
|
-
|
|
360
|
+
if ((0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_block_menu', 'isEnabled', true)) {
|
|
361
|
+
var node = tr.doc.nodeAt(startPos);
|
|
362
|
+
var nodeSize = node ? node.nodeSize : 1;
|
|
363
|
+
// It this will be required in other places, where selectNode is used, we should
|
|
364
|
+
// move it inside of the newGetSelection in the selectNode
|
|
365
|
+
if (nodeType === 'blockquote' && (0, _getSelection.isNodeWithCodeBlock)(tr, startPos, nodeSize)) {
|
|
366
|
+
var _selection = new _state.NodeSelection(tr.doc.resolve(startPos));
|
|
367
|
+
tr.setSelection(_selection);
|
|
368
|
+
} else {
|
|
369
|
+
tr = (0, _getSelection.selectNode)(tr, startPos, nodeType);
|
|
370
|
+
}
|
|
371
|
+
} else {
|
|
372
|
+
tr = (0, _getSelection.selectNode)(tr, startPos, nodeType);
|
|
373
|
+
}
|
|
361
374
|
if (_consts2.BLOCK_MENU_ENABLED && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1')) {
|
|
362
375
|
var _api$blockControls;
|
|
363
376
|
api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 || _api$blockControls.commands.toggleBlockMenu({
|
|
@@ -379,8 +392,8 @@ var DragHandle = exports.DragHandle = function DragHandle(_ref) {
|
|
|
379
392
|
}
|
|
380
393
|
} else if (isTopLevelNode && $anchor.depth <= _consts2.DRAG_HANDLE_MAX_SHIFT_CLICK_DEPTH && e.shiftKey && (0, _platformFeatureFlags.fg)('platform_editor_elements_dnd_shift_click_select')) {
|
|
381
394
|
var _api$blockControls3;
|
|
382
|
-
var alignAnchorHeadToSel = (0,
|
|
383
|
-
var selectionWithExpandedHead = (0,
|
|
395
|
+
var alignAnchorHeadToSel = (0, _selection2.alignAnchorHeadInDirectionOfPos)(tr.selection, startPos);
|
|
396
|
+
var selectionWithExpandedHead = (0, _selection2.expandSelectionHeadToNodeAtPos)(alignAnchorHeadToSel, startPos);
|
|
384
397
|
tr.setSelection(selectionWithExpandedHead);
|
|
385
398
|
api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || _api$blockControls3.commands.setMultiSelectPositions()({
|
|
386
399
|
tr: tr
|
|
@@ -188,7 +188,7 @@ const removeBreakoutMarks = (tr, $from, to) => {
|
|
|
188
188
|
if (editorExperiment('platform_editor_element_drag_and_drop_multiselect', true)) {
|
|
189
189
|
tr.doc.nodesBetween($from.pos, to, (node, pos, parent) => {
|
|
190
190
|
// should never remove breakout from previous layoutSection
|
|
191
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
191
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
192
192
|
if (node.type.name === 'layoutSection') {
|
|
193
193
|
return false;
|
|
194
194
|
}
|
|
@@ -298,7 +298,7 @@ export const moveToLayout = api => (from, to, options) => ({
|
|
|
298
298
|
// if not found, get from source node,
|
|
299
299
|
let breakoutMode;
|
|
300
300
|
let breakoutWidth;
|
|
301
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
301
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
302
302
|
({
|
|
303
303
|
breakoutMode,
|
|
304
304
|
breakoutWidth
|
|
@@ -361,7 +361,7 @@ export const moveToLayout = api => (from, to, options) => ({
|
|
|
361
361
|
tr = removeFromSource(tr, $sourceFrom, sourceTo);
|
|
362
362
|
const mappedTo = tr.mapping.map(to);
|
|
363
363
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout);
|
|
364
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
364
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
365
365
|
breakoutMode && tr.setNodeMarkup(mappedTo, newLayout.type, newLayout.attrs, [breakout.create({
|
|
366
366
|
mode: breakoutMode,
|
|
367
367
|
width: breakoutWidth
|
|
@@ -27,6 +27,16 @@ export const getInlineNodePos = (tr, start, nodeSize) => {
|
|
|
27
27
|
inlineNodeEndPos
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
+
export const isNodeWithCodeBlock = (tr, start, nodeSize) => {
|
|
31
|
+
const $startPos = tr.doc.resolve(start);
|
|
32
|
+
let hasCodeBlock = false;
|
|
33
|
+
tr.doc.nodesBetween($startPos.pos, $startPos.pos + nodeSize, n => {
|
|
34
|
+
if (['codeBlock'].includes(n.type.name)) {
|
|
35
|
+
hasCodeBlock = true;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return hasCodeBlock;
|
|
39
|
+
};
|
|
30
40
|
const isNodeWithMediaOrExtension = (tr, start, nodeSize) => {
|
|
31
41
|
const $startPos = tr.doc.resolve(start);
|
|
32
42
|
let hasMediaOrExtension = false;
|
|
@@ -15,7 +15,7 @@ import { dragToMoveDown, dragToMoveLeft, dragToMoveRight, dragToMoveUp, getAriaK
|
|
|
15
15
|
import { blockControlsMessages } from '@atlaskit/editor-common/messages';
|
|
16
16
|
import { tableControlsSpacing, DRAG_HANDLE_WIDTH } from '@atlaskit/editor-common/styles';
|
|
17
17
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
18
|
-
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
18
|
+
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
19
19
|
import { findDomRefAtPos } from '@atlaskit/editor-prosemirror/utils';
|
|
20
20
|
import { akEditorTableToolbarSize, akEditorFullPageNarrowBreakout } from '@atlaskit/editor-shared-styles/consts';
|
|
21
21
|
import DragHandleVerticalIcon from '@atlaskit/icon/core/drag-handle-vertical';
|
|
@@ -33,7 +33,7 @@ import { getNodeTypeWithLevel } from '../pm-plugins/decorations-common';
|
|
|
33
33
|
import { key } from '../pm-plugins/main';
|
|
34
34
|
import { getMultiSelectAnalyticsAttributes } from '../pm-plugins/utils/analytics';
|
|
35
35
|
import { getControlBottomCSSValue, getControlHeightCSSValue, getLeftPosition, getNodeHeight, getTopPosition, shouldBeSticky, shouldMaskNodeControls } from '../pm-plugins/utils/drag-handle-positions';
|
|
36
|
-
import { isHandleCorrelatedToSelection, selectNode } from '../pm-plugins/utils/getSelection';
|
|
36
|
+
import { isHandleCorrelatedToSelection, isNodeWithCodeBlock, selectNode } from '../pm-plugins/utils/getSelection';
|
|
37
37
|
import { alignAnchorHeadInDirectionOfPos, expandSelectionHeadToNodeAtPos } from '../pm-plugins/utils/selection';
|
|
38
38
|
import { BLOCK_MENU_ENABLED, DRAG_HANDLE_BORDER_RADIUS, DRAG_HANDLE_HEIGHT, DRAG_HANDLE_MAX_SHIFT_CLICK_DEPTH, DRAG_HANDLE_ZINDEX, dragHandleGap, nodeMargins, spacingBetweenNodesForPreview, STICKY_CONTROLS_TOP_MARGIN, topPositionAdjustment } from './consts';
|
|
39
39
|
import { dragPreview } from './drag-preview';
|
|
@@ -337,7 +337,20 @@ export const DragHandle = ({
|
|
|
337
337
|
const mSelect = api === null || api === void 0 ? void 0 : (_api$blockControls$sh = api.blockControls.sharedState.currentState()) === null || _api$blockControls$sh === void 0 ? void 0 : _api$blockControls$sh.multiSelectDnD;
|
|
338
338
|
const $anchor = (mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) !== undefined ? tr.doc.resolve(mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) : tr.selection.$anchor;
|
|
339
339
|
if (!isMultiSelect || tr.selection.empty || !e.shiftKey) {
|
|
340
|
-
|
|
340
|
+
if (expValEqualsNoExposure('platform_editor_block_menu', 'isEnabled', true)) {
|
|
341
|
+
const node = tr.doc.nodeAt(startPos);
|
|
342
|
+
const nodeSize = node ? node.nodeSize : 1;
|
|
343
|
+
// It this will be required in other places, where selectNode is used, we should
|
|
344
|
+
// move it inside of the newGetSelection in the selectNode
|
|
345
|
+
if (nodeType === 'blockquote' && isNodeWithCodeBlock(tr, startPos, nodeSize)) {
|
|
346
|
+
const selection = new NodeSelection(tr.doc.resolve(startPos));
|
|
347
|
+
tr.setSelection(selection);
|
|
348
|
+
} else {
|
|
349
|
+
tr = selectNode(tr, startPos, nodeType);
|
|
350
|
+
}
|
|
351
|
+
} else {
|
|
352
|
+
tr = selectNode(tr, startPos, nodeType);
|
|
353
|
+
}
|
|
341
354
|
if (BLOCK_MENU_ENABLED && editorExperiment('platform_editor_controls', 'variant1')) {
|
|
342
355
|
var _api$blockControls;
|
|
343
356
|
api === null || api === void 0 ? void 0 : (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 ? void 0 : _api$blockControls.commands.toggleBlockMenu({
|
|
@@ -183,7 +183,7 @@ var removeBreakoutMarks = function removeBreakoutMarks(tr, $from, to) {
|
|
|
183
183
|
if (editorExperiment('platform_editor_element_drag_and_drop_multiselect', true)) {
|
|
184
184
|
tr.doc.nodesBetween($from.pos, to, function (node, pos, parent) {
|
|
185
185
|
// should never remove breakout from previous layoutSection
|
|
186
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
186
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
187
187
|
if (node.type.name === 'layoutSection') {
|
|
188
188
|
return false;
|
|
189
189
|
}
|
|
@@ -306,7 +306,7 @@ export var moveToLayout = function moveToLayout(api) {
|
|
|
306
306
|
// if not found, get from source node,
|
|
307
307
|
var breakoutMode;
|
|
308
308
|
var breakoutWidth;
|
|
309
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
309
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
310
310
|
var _ref8 = getBreakoutModeAndWidth(toNode, breakout) || getBreakoutModeAndWidth(sourceContent, breakout) || {};
|
|
311
311
|
breakoutMode = _ref8.breakoutMode;
|
|
312
312
|
breakoutWidth = _ref8.breakoutWidth;
|
|
@@ -370,7 +370,7 @@ export var moveToLayout = function moveToLayout(api) {
|
|
|
370
370
|
tr = removeFromSource(tr, $sourceFrom, sourceTo);
|
|
371
371
|
var mappedTo = tr.mapping.map(to);
|
|
372
372
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout);
|
|
373
|
-
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)
|
|
373
|
+
if (expValEquals('platform_editor_breakout_resizing', 'isEnabled', true)) {
|
|
374
374
|
breakoutMode && tr.setNodeMarkup(mappedTo, newLayout.type, newLayout.attrs, [breakout.create({
|
|
375
375
|
mode: breakoutMode,
|
|
376
376
|
width: breakoutWidth
|
|
@@ -27,6 +27,16 @@ export var getInlineNodePos = function getInlineNodePos(tr, start, nodeSize) {
|
|
|
27
27
|
inlineNodeEndPos: inlineNodeEndPos
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
+
export var isNodeWithCodeBlock = function isNodeWithCodeBlock(tr, start, nodeSize) {
|
|
31
|
+
var $startPos = tr.doc.resolve(start);
|
|
32
|
+
var hasCodeBlock = false;
|
|
33
|
+
tr.doc.nodesBetween($startPos.pos, $startPos.pos + nodeSize, function (n) {
|
|
34
|
+
if (['codeBlock'].includes(n.type.name)) {
|
|
35
|
+
hasCodeBlock = true;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return hasCodeBlock;
|
|
39
|
+
};
|
|
30
40
|
var isNodeWithMediaOrExtension = function isNodeWithMediaOrExtension(tr, start, nodeSize) {
|
|
31
41
|
var $startPos = tr.doc.resolve(start);
|
|
32
42
|
var hasMediaOrExtension = false;
|
|
@@ -20,7 +20,7 @@ import { dragToMoveDown, dragToMoveLeft, dragToMoveRight, dragToMoveUp, getAriaK
|
|
|
20
20
|
import { blockControlsMessages } from '@atlaskit/editor-common/messages';
|
|
21
21
|
import { tableControlsSpacing, DRAG_HANDLE_WIDTH } from '@atlaskit/editor-common/styles';
|
|
22
22
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
23
|
-
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
23
|
+
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
24
24
|
import { findDomRefAtPos } from '@atlaskit/editor-prosemirror/utils';
|
|
25
25
|
import { akEditorTableToolbarSize, akEditorFullPageNarrowBreakout } from '@atlaskit/editor-shared-styles/consts';
|
|
26
26
|
import DragHandleVerticalIcon from '@atlaskit/icon/core/drag-handle-vertical';
|
|
@@ -38,7 +38,7 @@ import { getNodeTypeWithLevel } from '../pm-plugins/decorations-common';
|
|
|
38
38
|
import { key } from '../pm-plugins/main';
|
|
39
39
|
import { getMultiSelectAnalyticsAttributes } from '../pm-plugins/utils/analytics';
|
|
40
40
|
import { getControlBottomCSSValue, getControlHeightCSSValue, getLeftPosition, getNodeHeight, getTopPosition, shouldBeSticky, shouldMaskNodeControls } from '../pm-plugins/utils/drag-handle-positions';
|
|
41
|
-
import { isHandleCorrelatedToSelection, selectNode } from '../pm-plugins/utils/getSelection';
|
|
41
|
+
import { isHandleCorrelatedToSelection, isNodeWithCodeBlock, selectNode } from '../pm-plugins/utils/getSelection';
|
|
42
42
|
import { alignAnchorHeadInDirectionOfPos, expandSelectionHeadToNodeAtPos } from '../pm-plugins/utils/selection';
|
|
43
43
|
import { BLOCK_MENU_ENABLED, DRAG_HANDLE_BORDER_RADIUS, DRAG_HANDLE_HEIGHT, DRAG_HANDLE_MAX_SHIFT_CLICK_DEPTH, DRAG_HANDLE_ZINDEX, dragHandleGap, nodeMargins, spacingBetweenNodesForPreview, STICKY_CONTROLS_TOP_MARGIN, topPositionAdjustment } from './consts';
|
|
44
44
|
import { dragPreview } from './drag-preview';
|
|
@@ -354,7 +354,20 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
354
354
|
var mSelect = api === null || api === void 0 || (_api$blockControls$sh = api.blockControls.sharedState.currentState()) === null || _api$blockControls$sh === void 0 ? void 0 : _api$blockControls$sh.multiSelectDnD;
|
|
355
355
|
var $anchor = (mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) !== undefined ? tr.doc.resolve(mSelect === null || mSelect === void 0 ? void 0 : mSelect.anchor) : tr.selection.$anchor;
|
|
356
356
|
if (!isMultiSelect || tr.selection.empty || !e.shiftKey) {
|
|
357
|
-
|
|
357
|
+
if (expValEqualsNoExposure('platform_editor_block_menu', 'isEnabled', true)) {
|
|
358
|
+
var node = tr.doc.nodeAt(startPos);
|
|
359
|
+
var nodeSize = node ? node.nodeSize : 1;
|
|
360
|
+
// It this will be required in other places, where selectNode is used, we should
|
|
361
|
+
// move it inside of the newGetSelection in the selectNode
|
|
362
|
+
if (nodeType === 'blockquote' && isNodeWithCodeBlock(tr, startPos, nodeSize)) {
|
|
363
|
+
var _selection = new NodeSelection(tr.doc.resolve(startPos));
|
|
364
|
+
tr.setSelection(_selection);
|
|
365
|
+
} else {
|
|
366
|
+
tr = selectNode(tr, startPos, nodeType);
|
|
367
|
+
}
|
|
368
|
+
} else {
|
|
369
|
+
tr = selectNode(tr, startPos, nodeType);
|
|
370
|
+
}
|
|
358
371
|
if (BLOCK_MENU_ENABLED && editorExperiment('platform_editor_controls', 'variant1')) {
|
|
359
372
|
var _api$blockControls;
|
|
360
373
|
api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 || _api$blockControls.commands.toggleBlockMenu({
|
|
@@ -4,6 +4,7 @@ export declare const getInlineNodePos: (tr: Transaction, start: number, nodeSize
|
|
|
4
4
|
inlineNodeEndPos: number;
|
|
5
5
|
inlineNodePos: number;
|
|
6
6
|
};
|
|
7
|
+
export declare const isNodeWithCodeBlock: (tr: Transaction, start: number, nodeSize: number) => boolean;
|
|
7
8
|
export declare const getSelection: (tr: Transaction, start: number) => false | NodeSelection | TextSelection;
|
|
8
9
|
export declare const selectNode: (tr: Transaction, start: number, nodeType: string) => Transaction;
|
|
9
10
|
export declare const setCursorPositionAtMovedNode: (tr: Transaction, start: number) => Transaction;
|
|
@@ -4,6 +4,7 @@ export declare const getInlineNodePos: (tr: Transaction, start: number, nodeSize
|
|
|
4
4
|
inlineNodeEndPos: number;
|
|
5
5
|
inlineNodePos: number;
|
|
6
6
|
};
|
|
7
|
+
export declare const isNodeWithCodeBlock: (tr: Transaction, start: number, nodeSize: number) => boolean;
|
|
7
8
|
export declare const getSelection: (tr: Transaction, start: number) => false | NodeSelection | TextSelection;
|
|
8
9
|
export declare const selectNode: (tr: Transaction, start: number, nodeType: string) => Transaction;
|
|
9
10
|
export declare const setCursorPositionAtMovedNode: (tr: Transaction, start: number) => Transaction;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-controls",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.3",
|
|
4
4
|
"description": "Block controls plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
"@atlaskit/editor-plugin-metrics": "^7.0.0",
|
|
39
39
|
"@atlaskit/editor-plugin-quick-insert": "^6.0.0",
|
|
40
40
|
"@atlaskit/editor-plugin-selection": "^6.0.0",
|
|
41
|
-
"@atlaskit/editor-plugin-type-ahead": "^6.
|
|
41
|
+
"@atlaskit/editor-plugin-type-ahead": "^6.2.0",
|
|
42
42
|
"@atlaskit/editor-plugin-user-intent": "^4.0.0",
|
|
43
43
|
"@atlaskit/editor-plugin-width": "^7.0.0",
|
|
44
44
|
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
45
45
|
"@atlaskit/editor-shared-styles": "^3.6.0",
|
|
46
46
|
"@atlaskit/editor-tables": "^2.9.0",
|
|
47
|
-
"@atlaskit/icon": "^28.
|
|
47
|
+
"@atlaskit/icon": "^28.4.0",
|
|
48
48
|
"@atlaskit/link": "^3.2.0",
|
|
49
49
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
50
50
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^3.2.0",
|
|
53
53
|
"@atlaskit/primitives": "^14.15.0",
|
|
54
54
|
"@atlaskit/theme": "^21.0.0",
|
|
55
|
-
"@atlaskit/tmp-editor-statsig": "^13.
|
|
55
|
+
"@atlaskit/tmp-editor-statsig": "^13.2.0",
|
|
56
56
|
"@atlaskit/tokens": "^6.4.0",
|
|
57
57
|
"@atlaskit/tooltip": "^20.5.0",
|
|
58
58
|
"@babel/runtime": "^7.0.0",
|
|
@@ -153,9 +153,6 @@
|
|
|
153
153
|
"dst-a11y__replace-anchor-with-link__editor-jenga": {
|
|
154
154
|
"type": "boolean"
|
|
155
155
|
},
|
|
156
|
-
"platform_editor_breakout_resizing_hello_release": {
|
|
157
|
-
"type": "boolean"
|
|
158
|
-
},
|
|
159
156
|
"platform_editor_block_menu_patch_1": {
|
|
160
157
|
"type": "boolean"
|
|
161
158
|
},
|