@atlaskit/editor-plugin-block-controls 2.18.0 → 2.19.0
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 +20 -0
- package/dist/cjs/editor-commands/move-node.js +13 -1
- package/dist/cjs/pm-plugins/decorations-anchor.js +3 -4
- package/dist/cjs/pm-plugins/decorations-drag-handle.js +1 -1
- package/dist/cjs/ui/global-styles.js +2 -8
- package/dist/es2019/editor-commands/move-node.js +15 -2
- package/dist/es2019/pm-plugins/decorations-anchor.js +3 -4
- package/dist/es2019/pm-plugins/decorations-drag-handle.js +1 -1
- package/dist/es2019/ui/global-styles.js +2 -8
- package/dist/esm/editor-commands/move-node.js +14 -2
- package/dist/esm/pm-plugins/decorations-anchor.js +3 -4
- package/dist/esm/pm-plugins/decorations-drag-handle.js +1 -1
- package/dist/esm/ui/global-styles.js +2 -8
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 2.19.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#101334](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101334)
|
|
8
|
+
[`70742828916ee`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/70742828916ee) -
|
|
9
|
+
Clean up FG platform_editor_element_dnd_nested_fix_patch_3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 2.18.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#100915](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100915)
|
|
20
|
+
[`8c10232e0f242`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8c10232e0f242) -
|
|
21
|
+
ED-24615 Fixed expand not remembering expand state when a node is moved into it
|
|
22
|
+
|
|
3
23
|
## 2.18.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.moveNodeViaShortcut = exports.moveNode = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
10
|
+
var _expand = require("@atlaskit/editor-common/expand");
|
|
10
11
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
11
12
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
12
13
|
var _transforms = require("@atlaskit/editor-common/transforms");
|
|
@@ -171,13 +172,16 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
171
172
|
if (!node) {
|
|
172
173
|
return tr;
|
|
173
174
|
}
|
|
175
|
+
var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
|
|
176
|
+
expand = _tr$doc$type$schema$n.expand,
|
|
177
|
+
nestedExpand = _tr$doc$type$schema$n.nestedExpand;
|
|
174
178
|
var size = (_node$nodeSize = node === null || node === void 0 ? void 0 : node.nodeSize) !== null && _node$nodeSize !== void 0 ? _node$nodeSize : 1;
|
|
175
179
|
var end = start + size;
|
|
176
180
|
var $from = tr.doc.resolve(start);
|
|
181
|
+
var $to = tr.doc.resolve(to);
|
|
177
182
|
var mappedTo;
|
|
178
183
|
if ((0, _experiments.editorExperiment)('nested-dnd', true)) {
|
|
179
184
|
var nodeCopy = tr.doc.slice(start, end, false); // cut the content
|
|
180
|
-
var $to = tr.doc.resolve(to);
|
|
181
185
|
var destType = $to.node().type;
|
|
182
186
|
var destParent = $to.node($to.depth);
|
|
183
187
|
var sourceNode = $from.nodeAfter;
|
|
@@ -221,6 +225,14 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
221
225
|
});
|
|
222
226
|
api === null || api === void 0 || api.core.actions.focus();
|
|
223
227
|
var $mappedTo = tr.doc.resolve(mappedTo);
|
|
228
|
+
var expandAncestor = (0, _utils2.findParentNodeOfTypeClosestToPos)($to, [expand, nestedExpand]);
|
|
229
|
+
if (expandAncestor && (0, _experiments.editorExperiment)('nested-dnd', true) && (0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_6')) {
|
|
230
|
+
var wasExpandExpanded = _expand.expandedState.get(expandAncestor.node);
|
|
231
|
+
var updatedExpandAncestor = (0, _utils2.findParentNodeOfTypeClosestToPos)($mappedTo, [expand, nestedExpand]);
|
|
232
|
+
if (wasExpandExpanded !== undefined && updatedExpandAncestor) {
|
|
233
|
+
_expand.expandedState.set(updatedExpandAncestor.node, wasExpandExpanded);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
224
236
|
if ((0, _experiments.editorExperiment)('advanced_layouts', true)) {
|
|
225
237
|
(0, _fireAnalytics.attachMoveNodeAnalytics)(tr, inputMethod, resolvedNode.depth, node.type.name, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.depth, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.parent.type.name, $from.sameParent($mappedTo), api);
|
|
226
238
|
} else {
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.shouldDescendIntoNode = exports.nodeDecorations = exports.findNodeDecs = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
10
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
10
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
12
11
|
var _decorationsCommon = require("./decorations-common");
|
|
13
12
|
var IGNORE_NODES = ['tableCell', 'tableHeader', 'tableRow', 'listItem', 'caption', 'layoutColumn'];
|
|
@@ -16,7 +15,7 @@ var IGNORE_NODE_DESCENDANTS = ['listItem', 'taskList', 'decisionList', 'mediaSin
|
|
|
16
15
|
var IGNORE_NODE_DESCENDANTS_ADVANCED_LAYOUT = ['listItem', 'taskList', 'decisionList'];
|
|
17
16
|
var shouldDescendIntoNode = exports.shouldDescendIntoNode = function shouldDescendIntoNode(node) {
|
|
18
17
|
// Optimisation to avoid drawing node decorations for empty table cells
|
|
19
|
-
if (['tableCell', 'tableHeader'].includes(node.type.name) && !(0, _experiments.editorExperiment)('table-nested-dnd', true)
|
|
18
|
+
if (['tableCell', 'tableHeader'].includes(node.type.name) && !(0, _experiments.editorExperiment)('table-nested-dnd', true)) {
|
|
20
19
|
var _node$firstChild;
|
|
21
20
|
if (node.childCount === 1 && ((_node$firstChild = node.firstChild) === null || _node$firstChild === void 0 ? void 0 : _node$firstChild.type.name) === 'paragraph') {
|
|
22
21
|
return false;
|
|
@@ -31,7 +30,7 @@ var shouldIgnoreNode = function shouldIgnoreNode(node, ignore_nodes, depth, pare
|
|
|
31
30
|
// Ignored via go/ees005
|
|
32
31
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
33
32
|
) {
|
|
34
|
-
var isEmbedCard =
|
|
33
|
+
var isEmbedCard = node.type.name === 'embedCard';
|
|
35
34
|
var isMediaSingle = node.type.name === 'mediaSingle';
|
|
36
35
|
var isFirstTableRow = (parent === null || parent === void 0 ? void 0 : parent.type.name) === 'table' && depth === 1 && node === parent.firstChild && 'tableRow' === node.type.name && (0, _experiments.editorExperiment)('advanced_layouts', true);
|
|
37
36
|
if (isFirstTableRow) {
|
|
@@ -96,7 +95,7 @@ var nodeDecorations = exports.nodeDecorations = function nodeDecorations(newStat
|
|
|
96
95
|
var _anchorName2;
|
|
97
96
|
anchorName = (_anchorName2 = anchorName) !== null && _anchorName2 !== void 0 ? _anchorName2 : "--node-anchor-".concat(node.type.name, "-").concat(index);
|
|
98
97
|
}
|
|
99
|
-
var anchorStyles =
|
|
98
|
+
var anchorStyles = "anchor-name: ".concat(anchorName, ";");
|
|
100
99
|
var subType = node.attrs.level ? "-".concat(node.attrs.level) : '';
|
|
101
100
|
decs.push(_view.Decoration.node(pos, pos + node.nodeSize, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
|
|
102
101
|
style: anchorStyles
|
|
@@ -52,7 +52,7 @@ var dragHandleDecoration = exports.dragHandleDecoration = function dragHandleDec
|
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
if ((0, _experiments.editorExperiment)('nested-dnd', true)) {
|
|
55
|
-
var newPos =
|
|
55
|
+
var newPos = getPos();
|
|
56
56
|
if (typeof newPos === 'number') {
|
|
57
57
|
var $pos = view.state.doc.resolve(newPos);
|
|
58
58
|
isTopLevelNode = ($pos === null || $pos === void 0 ? void 0 : $pos.parent.type.name) === 'doc';
|
|
@@ -137,18 +137,12 @@ var globalDnDStyle = (0, _react.css)({
|
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
139
|
var globalStyles = function globalStyles() {
|
|
140
|
-
return (0,
|
|
140
|
+
return (0, _react.css)({
|
|
141
141
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
142
142
|
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"], [data-layout-section="true"])': {
|
|
143
143
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
144
144
|
marginTop: '0 !important'
|
|
145
145
|
}
|
|
146
|
-
}) : (0, _react.css)({
|
|
147
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
148
|
-
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"])': {
|
|
149
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
150
|
-
marginTop: '0 !important'
|
|
151
|
-
}
|
|
152
146
|
});
|
|
153
147
|
};
|
|
154
148
|
var topLevelNodeMarginStyles = (0, _react.css)({
|
|
@@ -222,6 +216,6 @@ var blockCardWithoutLayout = (0, _react.css)({
|
|
|
222
216
|
});
|
|
223
217
|
var GlobalStylesWrapper = exports.GlobalStylesWrapper = function GlobalStylesWrapper() {
|
|
224
218
|
return (0, _react.jsx)(_react.Global, {
|
|
225
|
-
styles: [globalStyles(), (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, (0, _experiments.editorExperiment)('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, (0, _experiments.editorExperiment)('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix,
|
|
219
|
+
styles: [globalStyles(), (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, (0, _experiments.editorExperiment)('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, (0, _experiments.editorExperiment)('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix, withRelativePosStyle, topLevelNodeMarginStyles, (0, _experiments.editorExperiment)('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle,,]
|
|
226
220
|
});
|
|
227
221
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import { expandedState } from '@atlaskit/editor-common/expand';
|
|
2
3
|
import { blockControlsMessages } from '@atlaskit/editor-common/messages';
|
|
3
4
|
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
4
5
|
import { transformSliceNestedExpandToExpand } from '@atlaskit/editor-common/transforms';
|
|
5
6
|
import { isEmptyParagraph } from '@atlaskit/editor-common/utils';
|
|
6
7
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
7
8
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
8
|
-
import { findParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
|
|
9
|
+
import { findParentNodeOfType, findParentNodeOfTypeClosestToPos } from '@atlaskit/editor-prosemirror/utils';
|
|
9
10
|
import { findTable, isInTable, isTableSelected } from '@atlaskit/editor-tables/utils';
|
|
10
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
12
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
@@ -165,13 +166,17 @@ export const moveNode = api => (start, to, inputMethod = INPUT_METHOD.DRAG_AND_D
|
|
|
165
166
|
if (!node) {
|
|
166
167
|
return tr;
|
|
167
168
|
}
|
|
169
|
+
const {
|
|
170
|
+
expand,
|
|
171
|
+
nestedExpand
|
|
172
|
+
} = tr.doc.type.schema.nodes;
|
|
168
173
|
const size = (_node$nodeSize = node === null || node === void 0 ? void 0 : node.nodeSize) !== null && _node$nodeSize !== void 0 ? _node$nodeSize : 1;
|
|
169
174
|
const end = start + size;
|
|
170
175
|
const $from = tr.doc.resolve(start);
|
|
176
|
+
const $to = tr.doc.resolve(to);
|
|
171
177
|
let mappedTo;
|
|
172
178
|
if (editorExperiment('nested-dnd', true)) {
|
|
173
179
|
const nodeCopy = tr.doc.slice(start, end, false); // cut the content
|
|
174
|
-
const $to = tr.doc.resolve(to);
|
|
175
180
|
const destType = $to.node().type;
|
|
176
181
|
const destParent = $to.node($to.depth);
|
|
177
182
|
const sourceNode = $from.nodeAfter;
|
|
@@ -215,6 +220,14 @@ export const moveNode = api => (start, to, inputMethod = INPUT_METHOD.DRAG_AND_D
|
|
|
215
220
|
});
|
|
216
221
|
api === null || api === void 0 ? void 0 : api.core.actions.focus();
|
|
217
222
|
const $mappedTo = tr.doc.resolve(mappedTo);
|
|
223
|
+
const expandAncestor = findParentNodeOfTypeClosestToPos($to, [expand, nestedExpand]);
|
|
224
|
+
if (expandAncestor && editorExperiment('nested-dnd', true) && fg('platform_editor_element_dnd_nested_fix_patch_6')) {
|
|
225
|
+
const wasExpandExpanded = expandedState.get(expandAncestor.node);
|
|
226
|
+
const updatedExpandAncestor = findParentNodeOfTypeClosestToPos($mappedTo, [expand, nestedExpand]);
|
|
227
|
+
if (wasExpandExpanded !== undefined && updatedExpandAncestor) {
|
|
228
|
+
expandedState.set(updatedExpandAncestor.node, wasExpandExpanded);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
218
231
|
if (editorExperiment('advanced_layouts', true)) {
|
|
219
232
|
attachMoveNodeAnalytics(tr, inputMethod, resolvedNode.depth, node.type.name, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.depth, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.parent.type.name, $from.sameParent($mappedTo), api);
|
|
220
233
|
} else {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
4
3
|
import { getNestedDepth, getNodeAnchor, TYPE_NODE_DEC } from './decorations-common';
|
|
5
4
|
const IGNORE_NODES = ['tableCell', 'tableHeader', 'tableRow', 'listItem', 'caption', 'layoutColumn'];
|
|
@@ -8,7 +7,7 @@ const IGNORE_NODE_DESCENDANTS = ['listItem', 'taskList', 'decisionList', 'mediaS
|
|
|
8
7
|
const IGNORE_NODE_DESCENDANTS_ADVANCED_LAYOUT = ['listItem', 'taskList', 'decisionList'];
|
|
9
8
|
export const shouldDescendIntoNode = node => {
|
|
10
9
|
// Optimisation to avoid drawing node decorations for empty table cells
|
|
11
|
-
if (['tableCell', 'tableHeader'].includes(node.type.name) && !editorExperiment('table-nested-dnd', true)
|
|
10
|
+
if (['tableCell', 'tableHeader'].includes(node.type.name) && !editorExperiment('table-nested-dnd', true)) {
|
|
12
11
|
var _node$firstChild;
|
|
13
12
|
if (node.childCount === 1 && ((_node$firstChild = node.firstChild) === null || _node$firstChild === void 0 ? void 0 : _node$firstChild.type.name) === 'paragraph') {
|
|
14
13
|
return false;
|
|
@@ -23,7 +22,7 @@ const shouldIgnoreNode = (node, ignore_nodes, depth, parent
|
|
|
23
22
|
// Ignored via go/ees005
|
|
24
23
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
25
24
|
) => {
|
|
26
|
-
const isEmbedCard =
|
|
25
|
+
const isEmbedCard = node.type.name === 'embedCard';
|
|
27
26
|
const isMediaSingle = node.type.name === 'mediaSingle';
|
|
28
27
|
const isFirstTableRow = (parent === null || parent === void 0 ? void 0 : parent.type.name) === 'table' && depth === 1 && node === parent.firstChild && 'tableRow' === node.type.name && editorExperiment('advanced_layouts', true);
|
|
29
28
|
if (isFirstTableRow) {
|
|
@@ -86,7 +85,7 @@ export const nodeDecorations = (newState, from, to) => {
|
|
|
86
85
|
var _anchorName2;
|
|
87
86
|
anchorName = (_anchorName2 = anchorName) !== null && _anchorName2 !== void 0 ? _anchorName2 : `--node-anchor-${node.type.name}-${index}`;
|
|
88
87
|
}
|
|
89
|
-
const anchorStyles =
|
|
88
|
+
const anchorStyles = `anchor-name: ${anchorName};`;
|
|
90
89
|
const subType = node.attrs.level ? `-${node.attrs.level}` : '';
|
|
91
90
|
decs.push(Decoration.node(pos, pos + node.nodeSize, {
|
|
92
91
|
style: anchorStyles,
|
|
@@ -43,7 +43,7 @@ export const dragHandleDecoration = (api, formatMessage, pos, anchorName, nodeTy
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
if (editorExperiment('nested-dnd', true)) {
|
|
46
|
-
const newPos =
|
|
46
|
+
const newPos = getPos();
|
|
47
47
|
if (typeof newPos === 'number') {
|
|
48
48
|
const $pos = view.state.doc.resolve(newPos);
|
|
49
49
|
isTopLevelNode = ($pos === null || $pos === void 0 ? void 0 : $pos.parent.type.name) === 'doc';
|
|
@@ -161,18 +161,12 @@ const globalDnDStyle = css({
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
|
-
const globalStyles = () =>
|
|
164
|
+
const globalStyles = () => css({
|
|
165
165
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
166
166
|
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"], [data-layout-section="true"])': {
|
|
167
167
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
168
168
|
marginTop: '0 !important'
|
|
169
169
|
}
|
|
170
|
-
}) : css({
|
|
171
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
172
|
-
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"])': {
|
|
173
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
174
|
-
marginTop: '0 !important'
|
|
175
|
-
}
|
|
176
170
|
});
|
|
177
171
|
const topLevelNodeMarginStyles = css({
|
|
178
172
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
@@ -266,6 +260,6 @@ const blockCardWithoutLayout = css({
|
|
|
266
260
|
});
|
|
267
261
|
export const GlobalStylesWrapper = () => {
|
|
268
262
|
return jsx(Global, {
|
|
269
|
-
styles: [globalStyles(), fg('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, editorExperiment('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, editorExperiment('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix,
|
|
263
|
+
styles: [globalStyles(), fg('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, editorExperiment('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, editorExperiment('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix, withRelativePosStyle, topLevelNodeMarginStyles, editorExperiment('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle,,]
|
|
270
264
|
});
|
|
271
265
|
};
|
|
@@ -2,13 +2,14 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
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; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
5
|
+
import { expandedState } from '@atlaskit/editor-common/expand';
|
|
5
6
|
import { blockControlsMessages } from '@atlaskit/editor-common/messages';
|
|
6
7
|
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
7
8
|
import { transformSliceNestedExpandToExpand } from '@atlaskit/editor-common/transforms';
|
|
8
9
|
import { isEmptyParagraph } from '@atlaskit/editor-common/utils';
|
|
9
10
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
10
11
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
11
|
-
import { findParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
|
|
12
|
+
import { findParentNodeOfType, findParentNodeOfTypeClosestToPos } from '@atlaskit/editor-prosemirror/utils';
|
|
12
13
|
import { findTable, isInTable, isTableSelected } from '@atlaskit/editor-tables/utils';
|
|
13
14
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
14
15
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
@@ -165,13 +166,16 @@ export var moveNode = function moveNode(api) {
|
|
|
165
166
|
if (!node) {
|
|
166
167
|
return tr;
|
|
167
168
|
}
|
|
169
|
+
var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
|
|
170
|
+
expand = _tr$doc$type$schema$n.expand,
|
|
171
|
+
nestedExpand = _tr$doc$type$schema$n.nestedExpand;
|
|
168
172
|
var size = (_node$nodeSize = node === null || node === void 0 ? void 0 : node.nodeSize) !== null && _node$nodeSize !== void 0 ? _node$nodeSize : 1;
|
|
169
173
|
var end = start + size;
|
|
170
174
|
var $from = tr.doc.resolve(start);
|
|
175
|
+
var $to = tr.doc.resolve(to);
|
|
171
176
|
var mappedTo;
|
|
172
177
|
if (editorExperiment('nested-dnd', true)) {
|
|
173
178
|
var nodeCopy = tr.doc.slice(start, end, false); // cut the content
|
|
174
|
-
var $to = tr.doc.resolve(to);
|
|
175
179
|
var destType = $to.node().type;
|
|
176
180
|
var destParent = $to.node($to.depth);
|
|
177
181
|
var sourceNode = $from.nodeAfter;
|
|
@@ -215,6 +219,14 @@ export var moveNode = function moveNode(api) {
|
|
|
215
219
|
});
|
|
216
220
|
api === null || api === void 0 || api.core.actions.focus();
|
|
217
221
|
var $mappedTo = tr.doc.resolve(mappedTo);
|
|
222
|
+
var expandAncestor = findParentNodeOfTypeClosestToPos($to, [expand, nestedExpand]);
|
|
223
|
+
if (expandAncestor && editorExperiment('nested-dnd', true) && fg('platform_editor_element_dnd_nested_fix_patch_6')) {
|
|
224
|
+
var wasExpandExpanded = expandedState.get(expandAncestor.node);
|
|
225
|
+
var updatedExpandAncestor = findParentNodeOfTypeClosestToPos($mappedTo, [expand, nestedExpand]);
|
|
226
|
+
if (wasExpandExpanded !== undefined && updatedExpandAncestor) {
|
|
227
|
+
expandedState.set(updatedExpandAncestor.node, wasExpandExpanded);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
218
230
|
if (editorExperiment('advanced_layouts', true)) {
|
|
219
231
|
attachMoveNodeAnalytics(tr, inputMethod, resolvedNode.depth, node.type.name, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.depth, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.parent.type.name, $from.sameParent($mappedTo), api);
|
|
220
232
|
} else {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
3
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
3
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
5
4
|
import { getNestedDepth, getNodeAnchor, TYPE_NODE_DEC } from './decorations-common';
|
|
6
5
|
var IGNORE_NODES = ['tableCell', 'tableHeader', 'tableRow', 'listItem', 'caption', 'layoutColumn'];
|
|
@@ -9,7 +8,7 @@ var IGNORE_NODE_DESCENDANTS = ['listItem', 'taskList', 'decisionList', 'mediaSin
|
|
|
9
8
|
var IGNORE_NODE_DESCENDANTS_ADVANCED_LAYOUT = ['listItem', 'taskList', 'decisionList'];
|
|
10
9
|
export var shouldDescendIntoNode = function shouldDescendIntoNode(node) {
|
|
11
10
|
// Optimisation to avoid drawing node decorations for empty table cells
|
|
12
|
-
if (['tableCell', 'tableHeader'].includes(node.type.name) && !editorExperiment('table-nested-dnd', true)
|
|
11
|
+
if (['tableCell', 'tableHeader'].includes(node.type.name) && !editorExperiment('table-nested-dnd', true)) {
|
|
13
12
|
var _node$firstChild;
|
|
14
13
|
if (node.childCount === 1 && ((_node$firstChild = node.firstChild) === null || _node$firstChild === void 0 ? void 0 : _node$firstChild.type.name) === 'paragraph') {
|
|
15
14
|
return false;
|
|
@@ -24,7 +23,7 @@ var shouldIgnoreNode = function shouldIgnoreNode(node, ignore_nodes, depth, pare
|
|
|
24
23
|
// Ignored via go/ees005
|
|
25
24
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
26
25
|
) {
|
|
27
|
-
var isEmbedCard =
|
|
26
|
+
var isEmbedCard = node.type.name === 'embedCard';
|
|
28
27
|
var isMediaSingle = node.type.name === 'mediaSingle';
|
|
29
28
|
var isFirstTableRow = (parent === null || parent === void 0 ? void 0 : parent.type.name) === 'table' && depth === 1 && node === parent.firstChild && 'tableRow' === node.type.name && editorExperiment('advanced_layouts', true);
|
|
30
29
|
if (isFirstTableRow) {
|
|
@@ -89,7 +88,7 @@ export var nodeDecorations = function nodeDecorations(newState, from, to) {
|
|
|
89
88
|
var _anchorName2;
|
|
90
89
|
anchorName = (_anchorName2 = anchorName) !== null && _anchorName2 !== void 0 ? _anchorName2 : "--node-anchor-".concat(node.type.name, "-").concat(index);
|
|
91
90
|
}
|
|
92
|
-
var anchorStyles =
|
|
91
|
+
var anchorStyles = "anchor-name: ".concat(anchorName, ";");
|
|
93
92
|
var subType = node.attrs.level ? "-".concat(node.attrs.level) : '';
|
|
94
93
|
decs.push(Decoration.node(pos, pos + node.nodeSize, _defineProperty(_defineProperty(_defineProperty({
|
|
95
94
|
style: anchorStyles
|
|
@@ -45,7 +45,7 @@ export var dragHandleDecoration = function dragHandleDecoration(api, formatMessa
|
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
if (editorExperiment('nested-dnd', true)) {
|
|
48
|
-
var newPos =
|
|
48
|
+
var newPos = getPos();
|
|
49
49
|
if (typeof newPos === 'number') {
|
|
50
50
|
var $pos = view.state.doc.resolve(newPos);
|
|
51
51
|
isTopLevelNode = ($pos === null || $pos === void 0 ? void 0 : $pos.parent.type.name) === 'doc';
|
|
@@ -130,18 +130,12 @@ var globalDnDStyle = css({
|
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
132
|
var globalStyles = function globalStyles() {
|
|
133
|
-
return
|
|
133
|
+
return css({
|
|
134
134
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
135
135
|
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"], [data-layout-section="true"])': {
|
|
136
136
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
137
137
|
marginTop: '0 !important'
|
|
138
138
|
}
|
|
139
|
-
}) : css({
|
|
140
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
|
|
141
|
-
'.ProseMirror-widget:first-child + *:not([data-panel-type], .code-block, [data-node-type="nestedExpand"])': {
|
|
142
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
143
|
-
marginTop: '0 !important'
|
|
144
|
-
}
|
|
145
139
|
});
|
|
146
140
|
};
|
|
147
141
|
var topLevelNodeMarginStyles = css({
|
|
@@ -215,6 +209,6 @@ var blockCardWithoutLayout = css({
|
|
|
215
209
|
});
|
|
216
210
|
export var GlobalStylesWrapper = function GlobalStylesWrapper() {
|
|
217
211
|
return jsx(Global, {
|
|
218
|
-
styles: [globalStyles(), fg('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, editorExperiment('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, editorExperiment('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix,
|
|
212
|
+
styles: [globalStyles(), fg('platform_editor_advanced_layouts_post_fix_patch_1') && globalDnDStyle, editorExperiment('nested-dnd', true) ? extendedHoverZoneNested() : extendedHoverZone(), withInlineNodeStyle, withDeleteLinesStyleFix, withMediaSingleStyleFix, legacyBreakoutWideLayoutStyle, headingWithIndentationInLayoutStyleFix, editorExperiment('advanced_layouts', true) ? blockCardWithoutLayout : undefined, withDividerInPanelStyleFix, withFormatInLayoutStyleFix, withRelativePosStyle, topLevelNodeMarginStyles, editorExperiment('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle,,]
|
|
219
213
|
});
|
|
220
214
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-controls",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.19.0",
|
|
4
4
|
"description": "Block controls plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@atlaskit/adf-schema": "^46.1.0",
|
|
34
|
-
"@atlaskit/editor-common": "^99.
|
|
34
|
+
"@atlaskit/editor-common": "^99.1.0",
|
|
35
35
|
"@atlaskit/editor-plugin-accessibility-utils": "^1.2.0",
|
|
36
36
|
"@atlaskit/editor-plugin-analytics": "^1.10.0",
|
|
37
37
|
"@atlaskit/editor-plugin-editor-disabled": "^1.3.0",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
"platform_editor_element_drag_and_drop_ed_24885": {
|
|
122
122
|
"type": "boolean"
|
|
123
123
|
},
|
|
124
|
-
"
|
|
124
|
+
"platform_editor_element_dnd_nested_fix_patch_6": {
|
|
125
125
|
"type": "boolean"
|
|
126
126
|
},
|
|
127
127
|
"platform_editor_element_dnd_nested_a11y": {
|