@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 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) && (0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3')) {
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 = 'embedCard' === node.type.name && (0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3');
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 = ['tableRow', 'media'].includes(node.type.name) ? "anchor-name: ".concat(anchorName, ";") : "anchor-name: ".concat(anchorName, "; ").concat(pos === 0 && !(0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3') ? 'margin-top: 0px;' : '', " ").concat((0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3') ? '' : 'position: relative; z-index: 1;');
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 = (0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3') ? getPos() : pos;
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, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3') ? (0, _react.css)({
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, (0, _platformFeatureFlags.fg)('platform_editor_element_dnd_nested_fix_patch_3') ? [withRelativePosStyle, topLevelNodeMarginStyles, (0, _experiments.editorExperiment)('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle] : undefined]
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) && fg('platform_editor_element_dnd_nested_fix_patch_3')) {
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 = 'embedCard' === node.type.name && fg('platform_editor_element_dnd_nested_fix_patch_3');
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 = ['tableRow', 'media'].includes(node.type.name) ? `anchor-name: ${anchorName};` : `anchor-name: ${anchorName}; ${pos === 0 && !fg('platform_editor_element_dnd_nested_fix_patch_3') ? 'margin-top: 0px;' : ''} ${fg('platform_editor_element_dnd_nested_fix_patch_3') ? '' : 'position: relative; z-index: 1;'}`;
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 = fg('platform_editor_element_dnd_nested_fix_patch_3') ? getPos() : pos;
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 = () => fg('platform_editor_element_dnd_nested_fix_patch_3') ? css({
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, fg('platform_editor_element_dnd_nested_fix_patch_3') ? [withRelativePosStyle, topLevelNodeMarginStyles, editorExperiment('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle] : undefined]
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) && fg('platform_editor_element_dnd_nested_fix_patch_3')) {
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 = 'embedCard' === node.type.name && fg('platform_editor_element_dnd_nested_fix_patch_3');
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 = ['tableRow', 'media'].includes(node.type.name) ? "anchor-name: ".concat(anchorName, ";") : "anchor-name: ".concat(anchorName, "; ").concat(pos === 0 && !fg('platform_editor_element_dnd_nested_fix_patch_3') ? 'margin-top: 0px;' : '', " ").concat(fg('platform_editor_element_dnd_nested_fix_patch_3') ? '' : 'position: relative; z-index: 1;');
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 = fg('platform_editor_element_dnd_nested_fix_patch_3') ? getPos() : pos;
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 fg('platform_editor_element_dnd_nested_fix_patch_3') ? css({
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, fg('platform_editor_element_dnd_nested_fix_patch_3') ? [withRelativePosStyle, topLevelNodeMarginStyles, editorExperiment('nested-dnd', true) ? withAnchorNameZindexNestedStyle : withAnchorNameZindexStyle] : undefined]
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.18.0",
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.0.0",
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
- "platform_editor_element_dnd_nested_fix_patch_3": {
124
+ "platform_editor_element_dnd_nested_fix_patch_6": {
125
125
  "type": "boolean"
126
126
  },
127
127
  "platform_editor_element_dnd_nested_a11y": {