@atlaskit/editor-plugin-block-controls 7.2.2 → 7.2.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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/editor-commands/utils/move-node-utils.js +5 -0
- package/dist/cjs/pm-plugins/utils/getSelection.js +11 -1
- package/dist/cjs/ui/drag-handle.js +17 -4
- package/dist/es2019/editor-commands/utils/move-node-utils.js +5 -0
- package/dist/es2019/pm-plugins/utils/getSelection.js +10 -0
- package/dist/es2019/ui/drag-handle.js +16 -3
- package/dist/esm/editor-commands/utils/move-node-utils.js +5 -0
- 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 +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 7.2.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`dc211dc1927b5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/dc211dc1927b5) -
|
|
8
|
+
[ux] ED-29232: Fixed issues with block menu for file
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 7.2.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`c02f3cc8759b5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c02f3cc8759b5) -
|
|
16
|
+
[ux] Updates handleOnClick of a drag handle. When blockquote has a codeblock inside, we set
|
|
17
|
+
NodeSelection instead of range selection when blockquote's drag handle is clicked.
|
|
18
|
+
|
|
3
19
|
## 7.2.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getShouldMoveNode = exports.getPosWhenMoveNodeUp = exports.getPosWhenMoveNodeDown = exports.getCurrentNodePosFromDragHandleSelection = exports.canMoveNodeUpOrDown = void 0;
|
|
7
7
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
8
|
+
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
8
9
|
var _utils = require("@atlaskit/editor-tables/utils");
|
|
9
10
|
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
10
11
|
var _getNestedNodePosition = require("../../pm-plugins/utils/getNestedNodePosition");
|
|
@@ -21,6 +22,10 @@ var getCurrentNodePosFromDragHandleSelection = exports.getCurrentNodePosFromDrag
|
|
|
21
22
|
// We only move table node if it's fully selected
|
|
22
23
|
// to avoid shortcut collision with table drag and drop
|
|
23
24
|
currentNodePos = (_findTable$pos = (_findTable = (0, _utils.findTable)(selection)) === null || _findTable === void 0 ? void 0 : _findTable.pos) !== null && _findTable$pos !== void 0 ? _findTable$pos : currentNodePos;
|
|
25
|
+
} else if (selection instanceof _state.NodeSelection && selection.node.type === schema.nodes.media && selection.node.attrs.type === 'file' && (0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_block_menu', 'isEnabled', true)) {
|
|
26
|
+
// When a file is selected, it is actually wrapped in a media group
|
|
27
|
+
// return the position of the media group , as the group is the node that we want to move up or down
|
|
28
|
+
currentNodePos = selection.$from.pos - 1;
|
|
24
29
|
} else if (!(selection instanceof _selection.GapCursorSelection)) {
|
|
25
30
|
// 2. caret cursor is inside the node
|
|
26
31
|
// 3. the start of the selection is inside the node
|
|
@@ -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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
2
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
2
3
|
import { findTable, isTableSelected } from '@atlaskit/editor-tables/utils';
|
|
3
4
|
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
4
5
|
import { getNestedNodePosition } from '../../pm-plugins/utils/getNestedNodePosition';
|
|
@@ -16,6 +17,10 @@ export const getCurrentNodePosFromDragHandleSelection = ({
|
|
|
16
17
|
// We only move table node if it's fully selected
|
|
17
18
|
// to avoid shortcut collision with table drag and drop
|
|
18
19
|
currentNodePos = (_findTable$pos = (_findTable = findTable(selection)) === null || _findTable === void 0 ? void 0 : _findTable.pos) !== null && _findTable$pos !== void 0 ? _findTable$pos : currentNodePos;
|
|
20
|
+
} else if (selection instanceof NodeSelection && selection.node.type === schema.nodes.media && selection.node.attrs.type === 'file' && expValEqualsNoExposure('platform_editor_block_menu', 'isEnabled', true)) {
|
|
21
|
+
// When a file is selected, it is actually wrapped in a media group
|
|
22
|
+
// return the position of the media group , as the group is the node that we want to move up or down
|
|
23
|
+
currentNodePos = selection.$from.pos - 1;
|
|
19
24
|
} else if (!(selection instanceof GapCursorSelection)) {
|
|
20
25
|
// 2. caret cursor is inside the node
|
|
21
26
|
// 3. the start of the selection is inside the node
|
|
@@ -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({
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
2
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
2
3
|
import { findTable, isTableSelected } from '@atlaskit/editor-tables/utils';
|
|
3
4
|
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
4
5
|
import { getNestedNodePosition } from '../../pm-plugins/utils/getNestedNodePosition';
|
|
@@ -15,6 +16,10 @@ export var getCurrentNodePosFromDragHandleSelection = function getCurrentNodePos
|
|
|
15
16
|
// We only move table node if it's fully selected
|
|
16
17
|
// to avoid shortcut collision with table drag and drop
|
|
17
18
|
currentNodePos = (_findTable$pos = (_findTable = findTable(selection)) === null || _findTable === void 0 ? void 0 : _findTable.pos) !== null && _findTable$pos !== void 0 ? _findTable$pos : currentNodePos;
|
|
19
|
+
} else if (selection instanceof NodeSelection && selection.node.type === schema.nodes.media && selection.node.attrs.type === 'file' && expValEqualsNoExposure('platform_editor_block_menu', 'isEnabled', true)) {
|
|
20
|
+
// When a file is selected, it is actually wrapped in a media group
|
|
21
|
+
// return the position of the media group , as the group is the node that we want to move up or down
|
|
22
|
+
currentNodePos = selection.$from.pos - 1;
|
|
18
23
|
} else if (!(selection instanceof GapCursorSelection)) {
|
|
19
24
|
// 2. caret cursor is inside the node
|
|
20
25
|
// 3. the start of the selection is inside the node
|
|
@@ -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.4",
|
|
4
4
|
"description": "Block controls plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"@atlaskit/editor-plugin-limited-mode": "^3.0.0",
|
|
38
38
|
"@atlaskit/editor-plugin-metrics": "^7.0.0",
|
|
39
39
|
"@atlaskit/editor-plugin-quick-insert": "^6.0.0",
|
|
40
|
-
"@atlaskit/editor-plugin-selection": "^6.
|
|
41
|
-
"@atlaskit/editor-plugin-type-ahead": "^6.
|
|
40
|
+
"@atlaskit/editor-plugin-selection": "^6.1.0",
|
|
41
|
+
"@atlaskit/editor-plugin-type-ahead": "^6.3.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.4.0",
|
|
56
56
|
"@atlaskit/tokens": "^6.4.0",
|
|
57
57
|
"@atlaskit/tooltip": "^20.5.0",
|
|
58
58
|
"@babel/runtime": "^7.0.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"uuid": "^3.1.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@atlaskit/editor-common": "^110.
|
|
67
|
+
"@atlaskit/editor-common": "^110.7.0",
|
|
68
68
|
"react": "^18.2.0",
|
|
69
69
|
"react-dom": "^18.2.0",
|
|
70
70
|
"react-intl-next": "npm:react-intl@^5.18.1"
|