@atlaskit/editor-plugin-block-controls 2.26.0 → 2.26.2
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 +18 -0
- package/dist/cjs/editor-commands/move-node.js +79 -43
- package/dist/cjs/editor-commands/move-to-layout.js +23 -11
- package/dist/cjs/editor-commands/show-drag-handle.js +89 -3
- package/dist/cjs/pm-plugins/decorations-anchor.js +5 -10
- package/dist/cjs/pm-plugins/decorations-common.js +8 -10
- package/dist/cjs/pm-plugins/decorations-drag-handle.js +4 -19
- package/dist/cjs/pm-plugins/decorations-drop-target.js +8 -25
- package/dist/cjs/pm-plugins/main.js +28 -8
- package/dist/cjs/pm-plugins/utils/analytics.js +66 -0
- package/dist/cjs/pm-plugins/utils/selection.js +22 -2
- package/dist/cjs/ui/drag-handle.js +38 -10
- package/dist/es2019/editor-commands/move-node.js +76 -40
- package/dist/es2019/editor-commands/move-to-layout.js +23 -11
- package/dist/es2019/editor-commands/show-drag-handle.js +88 -3
- package/dist/es2019/pm-plugins/decorations-anchor.js +6 -11
- package/dist/es2019/pm-plugins/decorations-common.js +7 -9
- package/dist/es2019/pm-plugins/decorations-drag-handle.js +10 -25
- package/dist/es2019/pm-plugins/decorations-drop-target.js +11 -30
- package/dist/es2019/pm-plugins/main.js +24 -6
- package/dist/es2019/pm-plugins/utils/{fire-analytics.js → analytics.js} +31 -3
- package/dist/es2019/pm-plugins/utils/selection.js +22 -1
- package/dist/es2019/ui/drag-handle.js +34 -4
- package/dist/esm/editor-commands/move-node.js +80 -44
- package/dist/esm/editor-commands/move-to-layout.js +23 -11
- package/dist/esm/editor-commands/show-drag-handle.js +88 -2
- package/dist/esm/pm-plugins/decorations-anchor.js +6 -11
- package/dist/esm/pm-plugins/decorations-common.js +7 -9
- package/dist/esm/pm-plugins/decorations-drag-handle.js +4 -19
- package/dist/esm/pm-plugins/decorations-drop-target.js +8 -25
- package/dist/esm/pm-plugins/main.js +27 -7
- package/dist/esm/pm-plugins/utils/{fire-analytics.js → analytics.js} +32 -3
- package/dist/esm/pm-plugins/utils/selection.js +21 -1
- package/dist/esm/ui/drag-handle.js +37 -5
- package/dist/types/blockControlsPluginType.d.ts +1 -0
- package/dist/types/editor-commands/move-to-layout.d.ts +1 -0
- package/dist/types/editor-commands/show-drag-handle.d.ts +1 -1
- package/dist/types/pm-plugins/decorations-common.d.ts +1 -0
- package/dist/types/pm-plugins/main.d.ts +1 -0
- package/dist/types/pm-plugins/utils/analytics.d.ts +12 -0
- package/dist/types/pm-plugins/utils/selection.d.ts +9 -0
- package/dist/types-ts4.5/blockControlsPluginType.d.ts +1 -0
- package/dist/types-ts4.5/editor-commands/move-to-layout.d.ts +1 -0
- package/dist/types-ts4.5/editor-commands/show-drag-handle.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/decorations-common.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/utils/analytics.d.ts +12 -0
- package/dist/types-ts4.5/pm-plugins/utils/selection.d.ts +9 -0
- package/package.json +10 -7
- package/dist/cjs/pm-plugins/utils/fire-analytics.js +0 -36
- package/dist/types/pm-plugins/utils/fire-analytics.d.ts +0 -5
- package/dist/types-ts4.5/pm-plugins/utils/fire-analytics.d.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 2.26.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#109976](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/109976)
|
|
8
|
+
[`2f1cbe0e2b32f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2f1cbe0e2b32f) -
|
|
9
|
+
[ED-26272] Update DnD related analytics, e.g. element moved, to reflect multi-select info
|
|
10
|
+
(distinctive types of nodes, whether multiple nodes are selected)
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 2.26.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#111887](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111887)
|
|
18
|
+
[`dc433156e592a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/dc433156e592a) -
|
|
19
|
+
[ux] ED-26101 Create layout with nodes before/after using keyboard shortcuts
|
|
20
|
+
|
|
3
21
|
## 2.26.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -19,12 +19,13 @@ var _utils3 = require("@atlaskit/editor-tables/utils");
|
|
|
19
19
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
20
20
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
21
21
|
var _main = require("../pm-plugins/main");
|
|
22
|
+
var _analytics2 = require("../pm-plugins/utils/analytics");
|
|
22
23
|
var _consts = require("../pm-plugins/utils/consts");
|
|
23
|
-
var _fireAnalytics = require("../pm-plugins/utils/fire-analytics");
|
|
24
24
|
var _getNestedNodePosition = require("../pm-plugins/utils/getNestedNodePosition");
|
|
25
25
|
var _getSelection = require("../pm-plugins/utils/getSelection");
|
|
26
26
|
var _removeFromSource = require("../pm-plugins/utils/remove-from-source");
|
|
27
27
|
var _selection2 = require("../pm-plugins/utils/selection");
|
|
28
|
+
var _updateSelection = require("../pm-plugins/utils/update-selection");
|
|
28
29
|
var _validation = require("../pm-plugins/utils/validation");
|
|
29
30
|
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; }
|
|
30
31
|
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) { (0, _defineProperty2.default)(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; }
|
|
@@ -58,7 +59,7 @@ var isDragLayoutColumnToTopLevel = function isDragLayoutColumnToTopLevel($from,
|
|
|
58
59
|
*
|
|
59
60
|
* @returns the start position of a node if the node can be moved, otherwise -1
|
|
60
61
|
*/
|
|
61
|
-
var getCurrentNodePos = function getCurrentNodePos(state
|
|
62
|
+
var getCurrentNodePos = function getCurrentNodePos(state) {
|
|
62
63
|
var _activeNode$handleOpt;
|
|
63
64
|
var selection = state.selection;
|
|
64
65
|
var _ref = _main.key.getState(state) || {},
|
|
@@ -94,27 +95,46 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
94
95
|
if (shouldEnableNestedDndA11y) {
|
|
95
96
|
isParentNodeOfTypeLayout = !!(0, _utils2.findParentNodeOfType)([state.schema.nodes.layoutSection])(state.selection);
|
|
96
97
|
}
|
|
97
|
-
var currentNodePos = getCurrentNodePos(state
|
|
98
|
+
var currentNodePos = getCurrentNodePos(state);
|
|
98
99
|
if (currentNodePos > -1) {
|
|
99
100
|
var _state$doc$nodeAt;
|
|
100
101
|
var $pos = state.doc.resolve(currentNodePos);
|
|
102
|
+
var isTopLevelNode = $pos.depth === 0;
|
|
101
103
|
var moveToPos = -1;
|
|
102
104
|
var nodeIndex = $pos.index();
|
|
103
105
|
var isLayoutColumnSelected = selection instanceof _state.NodeSelection && selection.node.type.name === 'layoutColumn';
|
|
104
106
|
if (direction === _consts.DIRECTION.LEFT && shouldEnableNestedDndA11y) {
|
|
105
|
-
if (
|
|
106
|
-
var
|
|
107
|
-
|
|
107
|
+
if (isTopLevelNode && (0, _experiments.editorExperiment)('advanced_layouts', true) && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
108
|
+
var _api$core, _api$core2;
|
|
109
|
+
var nodeBefore = $pos.nodeBefore;
|
|
110
|
+
if (nodeBefore) {
|
|
111
|
+
moveToPos = currentNodePos - nodeBefore.nodeSize;
|
|
112
|
+
}
|
|
113
|
+
if (moveToPos < 0) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
108
116
|
api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(function (_ref2) {
|
|
109
117
|
var _api$blockControls;
|
|
110
118
|
var tr = _ref2.tr;
|
|
111
119
|
api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 || (_api$blockControls = _api$blockControls.commands) === null || _api$blockControls === void 0 || _api$blockControls.moveToLayout(currentNodePos, moveToPos, {
|
|
112
|
-
|
|
120
|
+
moveToEnd: true,
|
|
121
|
+
moveNodeAtCursorPos: true
|
|
113
122
|
})({
|
|
114
123
|
tr: tr
|
|
115
124
|
});
|
|
125
|
+
var insertColumnStep = (0, _updateSelection.getInsertLayoutStep)(tr);
|
|
126
|
+
var mappedTo = insertColumnStep === null || insertColumnStep === void 0 ? void 0 : insertColumnStep.from;
|
|
127
|
+
(0, _updateSelection.updateSelection)(tr, mappedTo, true);
|
|
116
128
|
return tr;
|
|
117
129
|
});
|
|
130
|
+
api === null || api === void 0 || (_api$core2 = api.core) === null || _api$core2 === void 0 || _api$core2.actions.focus();
|
|
131
|
+
return true;
|
|
132
|
+
} else if (isLayoutColumnSelected && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
133
|
+
var _$pos$nodeBefore, _api$core3, _api$blockControls2;
|
|
134
|
+
moveToPos = selection.from - (((_$pos$nodeBefore = $pos.nodeBefore) === null || _$pos$nodeBefore === void 0 ? void 0 : _$pos$nodeBefore.nodeSize) || 1);
|
|
135
|
+
api === null || api === void 0 || (_api$core3 = api.core) === null || _api$core3 === void 0 || _api$core3.actions.execute(api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || (_api$blockControls2 = _api$blockControls2.commands) === null || _api$blockControls2 === void 0 ? void 0 : _api$blockControls2.moveToLayout(currentNodePos, moveToPos, {
|
|
136
|
+
selectMovedNode: true
|
|
137
|
+
}));
|
|
118
138
|
return true;
|
|
119
139
|
} else {
|
|
120
140
|
if ($pos.depth < 2 || !isParentNodeOfTypeLayout) {
|
|
@@ -128,8 +148,30 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
128
148
|
moveToPos = $pos.start() - ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeSize) || 1);
|
|
129
149
|
}
|
|
130
150
|
} else if (direction === _consts.DIRECTION.RIGHT && shouldEnableNestedDndA11y) {
|
|
131
|
-
if (
|
|
132
|
-
var _api$
|
|
151
|
+
if (isTopLevelNode && (0, _experiments.editorExperiment)('advanced_layouts', true) && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
152
|
+
var _api$core4, _api$core5;
|
|
153
|
+
var endOfDoc = $pos.end();
|
|
154
|
+
moveToPos = $pos.posAtIndex($pos.index() + 1);
|
|
155
|
+
if (moveToPos >= endOfDoc) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
api === null || api === void 0 || (_api$core4 = api.core) === null || _api$core4 === void 0 || _api$core4.actions.execute(function (_ref3) {
|
|
159
|
+
var _api$blockControls3;
|
|
160
|
+
var tr = _ref3.tr;
|
|
161
|
+
api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || (_api$blockControls3 = _api$blockControls3.commands) === null || _api$blockControls3 === void 0 || _api$blockControls3.moveToLayout(currentNodePos, moveToPos, {
|
|
162
|
+
moveNodeAtCursorPos: true
|
|
163
|
+
})({
|
|
164
|
+
tr: tr
|
|
165
|
+
});
|
|
166
|
+
var insertColumnStep = (0, _updateSelection.getInsertLayoutStep)(tr);
|
|
167
|
+
var mappedTo = insertColumnStep === null || insertColumnStep === void 0 ? void 0 : insertColumnStep.from;
|
|
168
|
+
(0, _updateSelection.updateSelection)(tr, mappedTo);
|
|
169
|
+
return tr;
|
|
170
|
+
});
|
|
171
|
+
api === null || api === void 0 || (_api$core5 = api.core) === null || _api$core5 === void 0 || _api$core5.actions.focus();
|
|
172
|
+
return true;
|
|
173
|
+
} else if (isLayoutColumnSelected && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
174
|
+
var _api$core6, _api$blockControls4;
|
|
133
175
|
var _index = $pos.index($pos.depth);
|
|
134
176
|
var parent = $pos.node($pos.depth);
|
|
135
177
|
// get the next layoutColumn node
|
|
@@ -142,17 +184,10 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
142
184
|
}
|
|
143
185
|
var moveToEnd = _index === parent.childCount - 2;
|
|
144
186
|
moveToPos = moveToEnd ? $pos.before() : selection.to + ((nextNode === null || nextNode === void 0 ? void 0 : nextNode.nodeSize) || 1);
|
|
145
|
-
api === null || api === void 0 || (_api$
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
moveToEnd: moveToEnd,
|
|
150
|
-
selectMovedNode: true
|
|
151
|
-
})({
|
|
152
|
-
tr: tr
|
|
153
|
-
});
|
|
154
|
-
return tr;
|
|
155
|
-
});
|
|
187
|
+
api === null || api === void 0 || (_api$core6 = api.core) === null || _api$core6 === void 0 || _api$core6.actions.execute(api === null || api === void 0 || (_api$blockControls4 = api.blockControls) === null || _api$blockControls4 === void 0 || (_api$blockControls4 = _api$blockControls4.commands) === null || _api$blockControls4 === void 0 ? void 0 : _api$blockControls4.moveToLayout(currentNodePos, moveToPos, {
|
|
188
|
+
moveToEnd: moveToEnd,
|
|
189
|
+
selectMovedNode: true
|
|
190
|
+
}));
|
|
156
191
|
return true;
|
|
157
192
|
} else {
|
|
158
193
|
if ($pos.depth < 2 || !isParentNodeOfTypeLayout) {
|
|
@@ -164,15 +199,15 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
164
199
|
if (isLayoutColumnSelected && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
165
200
|
moveToPos = $pos.start() - 1;
|
|
166
201
|
} else {
|
|
167
|
-
var
|
|
168
|
-
if (
|
|
169
|
-
moveToPos = currentNodePos -
|
|
202
|
+
var _nodeBefore = $pos.depth > 1 && nodeIndex === 0 && shouldEnableNestedDndA11y ? $pos.node($pos.depth) : $pos.nodeBefore;
|
|
203
|
+
if (_nodeBefore) {
|
|
204
|
+
moveToPos = currentNodePos - _nodeBefore.nodeSize;
|
|
170
205
|
}
|
|
171
206
|
}
|
|
172
207
|
} else {
|
|
173
|
-
var
|
|
208
|
+
var _endOfDoc = $pos.end();
|
|
174
209
|
var nodeAfterPos = $pos.posAtIndex($pos.index() + 1);
|
|
175
|
-
if (nodeAfterPos >
|
|
210
|
+
if (nodeAfterPos > _endOfDoc) {
|
|
176
211
|
return false;
|
|
177
212
|
}
|
|
178
213
|
if (isLayoutColumnSelected && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility')) {
|
|
@@ -190,8 +225,8 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
190
225
|
// only move the node if the destination is at the same depth, not support moving a nested node to a parent node
|
|
191
226
|
var shouldMoveNode = (shouldEnableNestedDndA11y ? moveToPos > -1 && $pos.depth === state.doc.resolve(moveToPos).depth || nodeType === 'layoutColumn' : moveToPos > -1) || nodeType === 'layoutColumn' && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_accessibility');
|
|
192
227
|
if (shouldMoveNode) {
|
|
193
|
-
var _api$
|
|
194
|
-
api === null || api === void 0 || (_api$
|
|
228
|
+
var _api$core7;
|
|
229
|
+
api === null || api === void 0 || (_api$core7 = api.core) === null || _api$core7 === void 0 || _api$core7.actions.execute(function (_ref4) {
|
|
195
230
|
var tr = _ref4.tr;
|
|
196
231
|
moveNode(api)(currentNodePos, moveToPos, _analytics.INPUT_METHOD.SHORTCUT, formatMessage)({
|
|
197
232
|
tr: tr
|
|
@@ -201,9 +236,9 @@ var moveNodeViaShortcut = exports.moveNodeViaShortcut = function moveNodeViaShor
|
|
|
201
236
|
});
|
|
202
237
|
return true;
|
|
203
238
|
} else if (nodeType) {
|
|
204
|
-
var _api$
|
|
239
|
+
var _api$core8;
|
|
205
240
|
// If the node is first/last one, only select the node
|
|
206
|
-
api === null || api === void 0 || (_api$
|
|
241
|
+
api === null || api === void 0 || (_api$core8 = api.core) === null || _api$core8 === void 0 || _api$core8.actions.execute(function (_ref5) {
|
|
207
242
|
var tr = _ref5.tr;
|
|
208
243
|
(0, _getSelection.selectNode)(tr, currentNodePos, nodeType);
|
|
209
244
|
tr.scrollIntoView();
|
|
@@ -230,22 +265,21 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
230
265
|
}
|
|
231
266
|
var sliceFrom = start;
|
|
232
267
|
var sliceTo;
|
|
268
|
+
var mappedTo;
|
|
269
|
+
var sourceNodeTypes, hasSelectedMultipleNodes;
|
|
233
270
|
var isMultiSelect = (0, _experiments.editorExperiment)('platform_editor_element_drag_and_drop_multiselect', true, {
|
|
234
271
|
exposure: true
|
|
235
272
|
});
|
|
236
273
|
if (isMultiSelect) {
|
|
237
|
-
var
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
var handleSize = (_handleNode$nodeSize = handleNode === null || handleNode === void 0 ? void 0 : handleNode.nodeSize) !== null && _handleNode$nodeSize !== void 0 ? _handleNode$nodeSize : 1;
|
|
244
|
-
var handleEnd = sliceFrom + handleSize;
|
|
245
|
-
sliceTo = inSelection ? Math.max(anchor, head) : handleEnd;
|
|
274
|
+
var slicePosition = (0, _selection2.getSelectedSlicePosition)(start, tr, api);
|
|
275
|
+
sliceFrom = slicePosition.from;
|
|
276
|
+
sliceTo = slicePosition.to;
|
|
277
|
+
var attributes = (0, _analytics2.getMultiSelectAnalyticsAttributes)(tr, sliceFrom, sliceTo);
|
|
278
|
+
hasSelectedMultipleNodes = attributes.hasSelectedMultipleNodes;
|
|
279
|
+
sourceNodeTypes = attributes.nodeTypes;
|
|
246
280
|
} else {
|
|
247
|
-
var _handleNode$
|
|
248
|
-
var size = (_handleNode$
|
|
281
|
+
var _handleNode$nodeSize;
|
|
282
|
+
var size = (_handleNode$nodeSize = handleNode === null || handleNode === void 0 ? void 0 : handleNode.nodeSize) !== null && _handleNode$nodeSize !== void 0 ? _handleNode$nodeSize : 1;
|
|
249
283
|
sliceTo = sliceFrom + size;
|
|
250
284
|
}
|
|
251
285
|
var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
|
|
@@ -253,7 +287,6 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
253
287
|
nestedExpand = _tr$doc$type$schema$n.nestedExpand;
|
|
254
288
|
var $to = tr.doc.resolve(to);
|
|
255
289
|
var $handlePos = tr.doc.resolve(start);
|
|
256
|
-
var mappedTo;
|
|
257
290
|
if ((0, _experiments.editorExperiment)('nested-dnd', true)) {
|
|
258
291
|
var nodeCopy = tr.doc.slice(sliceFrom, sliceTo, false); // cut the content
|
|
259
292
|
var destType = $to.node().type;
|
|
@@ -309,7 +342,7 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
309
342
|
}
|
|
310
343
|
}
|
|
311
344
|
if ((0, _experiments.editorExperiment)('advanced_layouts', true)) {
|
|
312
|
-
(0,
|
|
345
|
+
(0, _analytics2.attachMoveNodeAnalytics)(tr, inputMethod, $handlePos.depth, handleNode.type.name, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.depth, $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.parent.type.name, $handlePos.sameParent($mappedTo), api, sourceNodeTypes, hasSelectedMultipleNodes);
|
|
313
346
|
} else {
|
|
314
347
|
var _api$analytics;
|
|
315
348
|
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.attachAnalyticsEvent({
|
|
@@ -317,13 +350,16 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
317
350
|
action: _analytics.ACTION.MOVED,
|
|
318
351
|
actionSubject: _analytics.ACTION_SUBJECT.ELEMENT,
|
|
319
352
|
actionSubjectId: _analytics.ACTION_SUBJECT_ID.ELEMENT_DRAG_HANDLE,
|
|
320
|
-
attributes: _objectSpread({
|
|
353
|
+
attributes: _objectSpread(_objectSpread({
|
|
321
354
|
nodeDepth: $handlePos.depth,
|
|
322
355
|
nodeType: handleNode.type.name,
|
|
323
356
|
destinationNodeDepth: $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.depth,
|
|
324
357
|
destinationNodeType: $mappedTo === null || $mappedTo === void 0 ? void 0 : $mappedTo.parent.type.name
|
|
325
358
|
}, (0, _platformFeatureFlags.fg)('platform_editor_element_drag_and_drop_ed_23873') && {
|
|
326
359
|
inputMethod: inputMethod
|
|
360
|
+
}), isMultiSelect && {
|
|
361
|
+
sourceNodeTypes: sourceNodeTypes,
|
|
362
|
+
hasSelectedMultipleNodes: hasSelectedMultipleNodes
|
|
327
363
|
})
|
|
328
364
|
})(tr);
|
|
329
365
|
}
|
|
@@ -10,9 +10,9 @@ var _model = require("@atlaskit/editor-prosemirror/model");
|
|
|
10
10
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
11
11
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
12
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
13
|
+
var _analytics2 = require("../pm-plugins/utils/analytics");
|
|
13
14
|
var _checkFragment = require("../pm-plugins/utils/check-fragment");
|
|
14
15
|
var _consts = require("../pm-plugins/utils/consts");
|
|
15
|
-
var _fireAnalytics = require("../pm-plugins/utils/fire-analytics");
|
|
16
16
|
var _removeFromSource = require("../pm-plugins/utils/remove-from-source");
|
|
17
17
|
var _selection = require("../pm-plugins/utils/selection");
|
|
18
18
|
var _updateColumnWidths = require("../pm-plugins/utils/update-column-widths");
|
|
@@ -47,9 +47,14 @@ var createNewLayout = function createNewLayout(schema, layoutContents) {
|
|
|
47
47
|
var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos, sourceContent, from, to, tr, $originalFrom, $originalTo, api, selectMovedNode) {
|
|
48
48
|
var isSameLayout = (0, _validation.isInSameLayout)($originalFrom, $originalTo);
|
|
49
49
|
var sourceContentEndPos = -1;
|
|
50
|
-
|
|
50
|
+
var isMultiSelect = (0, _experiments.editorExperiment)('platform_editor_element_drag_and_drop_multiselect', true);
|
|
51
|
+
var sourceNodeTypes, hasSelectedMultipleNodes;
|
|
52
|
+
if (isMultiSelect) {
|
|
51
53
|
if (sourceContent instanceof _model.Fragment) {
|
|
52
54
|
sourceContentEndPos = from + sourceContent.size;
|
|
55
|
+
var attributes = (0, _analytics2.getMultiSelectAnalyticsAttributes)(tr, from, sourceContentEndPos);
|
|
56
|
+
hasSelectedMultipleNodes = attributes.hasSelectedMultipleNodes;
|
|
57
|
+
sourceNodeTypes = attributes.nodeTypes;
|
|
53
58
|
}
|
|
54
59
|
} else {
|
|
55
60
|
if (sourceContent instanceof _model.Node) {
|
|
@@ -68,7 +73,7 @@ var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos,
|
|
|
68
73
|
if (!(0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_post_fix_patch_1') || selectMovedNode) {
|
|
69
74
|
tr.setSelection(new _state.NodeSelection(tr.doc.resolve(mappedTo))).scrollIntoView();
|
|
70
75
|
}
|
|
71
|
-
(0,
|
|
76
|
+
(0, _analytics2.attachMoveNodeAnalytics)(tr, _analytics.INPUT_METHOD.DRAG_AND_DROP, $originalFrom.depth, ((_$originalFrom$nodeAf = $originalFrom.nodeAfter) === null || _$originalFrom$nodeAf === void 0 ? void 0 : _$originalFrom$nodeAf.type.name) || '', 1, 'layoutSection', true, api, sourceNodeTypes, hasSelectedMultipleNodes);
|
|
72
77
|
} else if (toLayout.childCount < (0, _consts.maxLayoutColumnSupported)()) {
|
|
73
78
|
var _$originalFrom$nodeAf2;
|
|
74
79
|
if ((0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_post_fix_patch_1')) {
|
|
@@ -79,7 +84,7 @@ var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos,
|
|
|
79
84
|
var mappedFrom = tr.mapping.map(from);
|
|
80
85
|
(0, _removeFromSource.removeFromSource)(tr, tr.doc.resolve(mappedFrom), tr.mapping.map(sourceContentEndPos));
|
|
81
86
|
}
|
|
82
|
-
(0,
|
|
87
|
+
(0, _analytics2.attachMoveNodeAnalytics)(tr, _analytics.INPUT_METHOD.DRAG_AND_DROP, $originalFrom.depth, ((_$originalFrom$nodeAf2 = $originalFrom.nodeAfter) === null || _$originalFrom$nodeAf2 === void 0 ? void 0 : _$originalFrom$nodeAf2.type.name) || '', 1, 'layoutSection', false, api, sourceNodeTypes, hasSelectedMultipleNodes);
|
|
83
88
|
}
|
|
84
89
|
return tr;
|
|
85
90
|
};
|
|
@@ -162,7 +167,7 @@ var insertToDestination = function insertToDestination(tr, to, sourceContent, to
|
|
|
162
167
|
* Check if the node at `from` can be moved to node at `to` to create/expand a layout.
|
|
163
168
|
* Returns the source and destination nodes and positions if it's a valid move, otherwise, undefined
|
|
164
169
|
*/
|
|
165
|
-
var canMoveToLayout = function canMoveToLayout(api, from, to, tr) {
|
|
170
|
+
var canMoveToLayout = function canMoveToLayout(api, from, to, tr, moveNodeAtCursorPos) {
|
|
166
171
|
if (from === to) {
|
|
167
172
|
return;
|
|
168
173
|
}
|
|
@@ -193,11 +198,11 @@ var canMoveToLayout = function canMoveToLayout(api, from, to, tr) {
|
|
|
193
198
|
var sourceContent = $from.nodeAfter;
|
|
194
199
|
var sourceFrom = from;
|
|
195
200
|
var sourceTo = from + sourceContent.nodeSize;
|
|
196
|
-
if (isMultiSelect) {
|
|
201
|
+
if (isMultiSelect && !moveNodeAtCursorPos) {
|
|
197
202
|
var _getMultiSelectionIfP = (0, _selection.getMultiSelectionIfPosInside)(api, from),
|
|
198
203
|
anchor = _getMultiSelectionIfP.anchor,
|
|
199
204
|
head = _getMultiSelectionIfP.head;
|
|
200
|
-
if (anchor && head) {
|
|
205
|
+
if (anchor !== undefined && head !== undefined) {
|
|
201
206
|
sourceFrom = Math.min(anchor, head);
|
|
202
207
|
sourceTo = Math.max(anchor, head);
|
|
203
208
|
sourceContent = tr.doc.slice(sourceFrom, sourceTo).content;
|
|
@@ -254,7 +259,7 @@ var getBreakoutMode = function getBreakoutMode(content, breakout) {
|
|
|
254
259
|
var _content$marks$find;
|
|
255
260
|
return (_content$marks$find = content.marks.find(function (m) {
|
|
256
261
|
return m.type === breakout;
|
|
257
|
-
})) === null || _content$marks$find === void 0 ? void 0 : _content$marks$find.attrs;
|
|
262
|
+
})) === null || _content$marks$find === void 0 ? void 0 : _content$marks$find.attrs.mode;
|
|
258
263
|
} else if (content instanceof _model.Fragment) {
|
|
259
264
|
// Find the first breakout mode in the fragment
|
|
260
265
|
var firstBreakoutMode;
|
|
@@ -290,7 +295,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
290
295
|
if (!api) {
|
|
291
296
|
return tr;
|
|
292
297
|
}
|
|
293
|
-
var canMove = canMoveToLayout(api, from, to, tr);
|
|
298
|
+
var canMove = canMoveToLayout(api, from, to, tr, options === null || options === void 0 ? void 0 : options.moveNodeAtCursorPos);
|
|
294
299
|
if (!canMove) {
|
|
295
300
|
return tr;
|
|
296
301
|
}
|
|
@@ -314,6 +319,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
314
319
|
if (!fromContentWithoutBreakout) {
|
|
315
320
|
return tr;
|
|
316
321
|
}
|
|
322
|
+
var isMultiSelect = (0, _experiments.editorExperiment)('platform_editor_element_drag_and_drop_multiselect', true);
|
|
317
323
|
if (toNode.type === layoutSection) {
|
|
318
324
|
var toPos = options !== null && options !== void 0 && options.moveToEnd ? to + toNode.nodeSize - 1 : to + 1;
|
|
319
325
|
return moveToExistingLayout(toNode, to, fromContentWithoutBreakout, $sourceFrom.pos, toPos, tr, $sourceFrom, $to, api, options === null || options === void 0 ? void 0 : options.selectMovedNode);
|
|
@@ -333,7 +339,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
333
339
|
// resolve again the source node after node updated (remove breakout marks)
|
|
334
340
|
toNodeWithoutBreakout = tr.doc.resolve(to).nodeAfter || toNode;
|
|
335
341
|
}
|
|
336
|
-
if (
|
|
342
|
+
if (isMultiSelect) {
|
|
337
343
|
if ((0, _checkFragment.isFragmentOfType)(fromContentWithoutBreakout, 'layoutColumn') && fromContentWithoutBreakout.firstChild) {
|
|
338
344
|
fromContentWithoutBreakout = fromContentWithoutBreakout.firstChild.content;
|
|
339
345
|
}
|
|
@@ -345,6 +351,12 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
345
351
|
var layoutContents = options !== null && options !== void 0 && options.moveToEnd ? [toNodeWithoutBreakout, fromContentWithoutBreakout] : [fromContentWithoutBreakout, toNodeWithoutBreakout];
|
|
346
352
|
var newLayout = createNewLayout(tr.doc.type.schema, layoutContents);
|
|
347
353
|
if (newLayout) {
|
|
354
|
+
var sourceNodeTypes, hasSelectedMultipleNodes;
|
|
355
|
+
if (isMultiSelect) {
|
|
356
|
+
var attributes = (0, _analytics2.getMultiSelectAnalyticsAttributes)(tr, $sourceFrom.pos, sourceTo);
|
|
357
|
+
hasSelectedMultipleNodes = attributes.hasSelectedMultipleNodes;
|
|
358
|
+
sourceNodeTypes = attributes.nodeTypes;
|
|
359
|
+
}
|
|
348
360
|
tr = (0, _removeFromSource.removeFromSource)(tr, $sourceFrom, sourceTo);
|
|
349
361
|
var mappedTo = tr.mapping.map(to);
|
|
350
362
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout);
|
|
@@ -354,7 +366,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
354
366
|
breakoutMode && tr.setNodeMarkup(mappedTo, newLayout.type, newLayout.attrs, [breakout.create({
|
|
355
367
|
mode: breakoutMode
|
|
356
368
|
})]);
|
|
357
|
-
(0,
|
|
369
|
+
(0, _analytics2.fireInsertLayoutAnalytics)(tr, api, sourceNodeTypes, hasSelectedMultipleNodes);
|
|
358
370
|
}
|
|
359
371
|
return tr;
|
|
360
372
|
}
|
|
@@ -4,11 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.showDragHandleAtSelection = void 0;
|
|
7
|
-
var _utils = require("@atlaskit/editor-
|
|
7
|
+
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
8
|
+
var _utils2 = require("@atlaskit/editor-tables/utils");
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
8
10
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
11
|
+
var _decorationsAnchor = require("../pm-plugins/decorations-anchor");
|
|
9
12
|
var _main = require("../pm-plugins/main");
|
|
10
13
|
var _getNestedNodePosition = require("../pm-plugins/utils/getNestedNodePosition");
|
|
11
|
-
var
|
|
14
|
+
var showDragHandleAtSelectionOld = function showDragHandleAtSelectionOld(api, shouldFocusParentNode) {
|
|
12
15
|
return function (state, _, view) {
|
|
13
16
|
var $from = state.selection.$from;
|
|
14
17
|
var shouldFocusParentNode;
|
|
@@ -19,7 +22,7 @@ var showDragHandleAtSelection = exports.showDragHandleAtSelection = function sho
|
|
|
19
22
|
|
|
20
23
|
// if the node is already focused, pressing the keymap second times should focus the parent node
|
|
21
24
|
shouldFocusParentNode = activeNode && ((_activeNode$handleOpt = activeNode.handleOptions) === null || _activeNode$handleOpt === void 0 ? void 0 : _activeNode$handleOpt.isFocused);
|
|
22
|
-
var parentPos = (0,
|
|
25
|
+
var parentPos = (0, _utils2.isInTable)(state) ? $from.before(1) : shouldFocusParentNode ? $from.before(1) : (0, _getNestedNodePosition.getNestedNodePosition)(state) + 1;
|
|
23
26
|
var parentElement = view === null || view === void 0 || (_view$domAtPos = view.domAtPos(parentPos, 0)) === null || _view$domAtPos === void 0 ? void 0 : _view$domAtPos.node;
|
|
24
27
|
if (parentElement) {
|
|
25
28
|
// Ignored via go/ees005
|
|
@@ -68,4 +71,87 @@ var showDragHandleAtSelection = exports.showDragHandleAtSelection = function sho
|
|
|
68
71
|
}
|
|
69
72
|
return false;
|
|
70
73
|
};
|
|
74
|
+
};
|
|
75
|
+
var findParentPosForHandle = function findParentPosForHandle(state) {
|
|
76
|
+
var _activeNode$handleOpt2;
|
|
77
|
+
var $from = state.selection.$from;
|
|
78
|
+
var _ref2 = _main.key.getState(state) || {},
|
|
79
|
+
activeNode = _ref2.activeNode;
|
|
80
|
+
|
|
81
|
+
// if a node handle is already focused, return the parent pos of that node (with focused handle)
|
|
82
|
+
if (activeNode && (_activeNode$handleOpt2 = activeNode.handleOptions) !== null && _activeNode$handleOpt2 !== void 0 && _activeNode$handleOpt2.isFocused) {
|
|
83
|
+
var $activeNodePos = state.doc.resolve(activeNode.pos);
|
|
84
|
+
|
|
85
|
+
// if the handle is at the top level already, do nothing
|
|
86
|
+
if ($activeNodePos.depth === 0) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return $activeNodePos.before();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// if we are in second level of nested node, we should focus the node at level 1
|
|
93
|
+
if ($from.depth <= 1) {
|
|
94
|
+
return $from.before(1);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// if we are inside a table, we should focus the table's handle
|
|
98
|
+
var parentTableNode = (0, _utils.findParentNodeOfType)([state.schema.nodes.table])(state.selection);
|
|
99
|
+
if (parentTableNode) {
|
|
100
|
+
return parentTableNode.pos;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// else find closest parent node
|
|
104
|
+
return (0, _getNestedNodePosition.getNestedNodePosition)(state);
|
|
105
|
+
};
|
|
106
|
+
var findNextAnchorDecoration = function findNextAnchorDecoration(state) {
|
|
107
|
+
var decorations = (0, _main.getDecorations)(state);
|
|
108
|
+
if (!decorations) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
var nextHandleNodePos = findParentPosForHandle(state);
|
|
112
|
+
if (nextHandleNodePos === undefined) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
var nextHandleNode = state.doc.nodeAt(nextHandleNodePos);
|
|
116
|
+
var nodeDecorations = nextHandleNode && (0, _decorationsAnchor.findNodeDecs)(decorations, nextHandleNodePos, nextHandleNodePos + nextHandleNode.nodeSize);
|
|
117
|
+
if (!nodeDecorations || nodeDecorations.length === 0) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// ensure the decoration covers the position of the look up node
|
|
122
|
+
nodeDecorations = nodeDecorations.filter(function (decoration) {
|
|
123
|
+
return decoration.from <= nextHandleNodePos;
|
|
124
|
+
});
|
|
125
|
+
if (nodeDecorations.length === 0) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// sort the decorations by the position of the node
|
|
130
|
+
// so we can find the closest decoration to the node
|
|
131
|
+
nodeDecorations.sort(function (a, b) {
|
|
132
|
+
if (a.from === b.from) {
|
|
133
|
+
return a.to - b.to;
|
|
134
|
+
}
|
|
135
|
+
return b.from - a.from;
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// return the closest decoration to the node
|
|
139
|
+
return nodeDecorations[0];
|
|
140
|
+
};
|
|
141
|
+
var showDragHandleAtSelectionNew = function showDragHandleAtSelectionNew(api) {
|
|
142
|
+
return function (state) {
|
|
143
|
+
var decoration = findNextAnchorDecoration(state);
|
|
144
|
+
if (api && decoration) {
|
|
145
|
+
api.core.actions.execute(api.blockControls.commands.showDragHandleAt(decoration.from, decoration.spec.anchorName, decoration.spec.nodeTypeWithLevel, {
|
|
146
|
+
isFocused: true
|
|
147
|
+
}));
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
var showDragHandleAtSelection = exports.showDragHandleAtSelection = function showDragHandleAtSelection(api) {
|
|
154
|
+
return function (state, dispatch, view) {
|
|
155
|
+
return (0, _experiments.editorExperiment)('nested-dnd', true) && (0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_a11y') ? showDragHandleAtSelectionNew(api)(state) : showDragHandleAtSelectionOld(api)(state, dispatch, view);
|
|
156
|
+
};
|
|
71
157
|
};
|
|
@@ -78,11 +78,10 @@ var nodeDecorations = exports.nodeDecorations = function nodeDecorations(newStat
|
|
|
78
78
|
var ignore_nodes = (0, _experiments.editorExperiment)('advanced_layouts', true) ? IGNORE_NODES_NEXT : IGNORE_NODES;
|
|
79
79
|
newState.doc.nodesBetween(docFrom, docTo, function (node, pos, parent, index) {
|
|
80
80
|
var depth = 0;
|
|
81
|
-
var anchorName;
|
|
82
81
|
var shouldDescend = shouldDescendIntoNode(node);
|
|
83
|
-
anchorName = (0, _decorationsCommon.getNodeAnchor)(node);
|
|
82
|
+
var anchorName = (0, _decorationsCommon.getNodeAnchor)(node);
|
|
83
|
+
var nodeTypeWithLevel = (0, _decorationsCommon.getNodeTypeWithLevel)(node);
|
|
84
84
|
if ((0, _experiments.editorExperiment)('nested-dnd', true)) {
|
|
85
|
-
var _anchorName;
|
|
86
85
|
// Doesn't descend into a node
|
|
87
86
|
if (node.isInline) {
|
|
88
87
|
return false;
|
|
@@ -91,19 +90,15 @@ var nodeDecorations = exports.nodeDecorations = function nodeDecorations(newStat
|
|
|
91
90
|
if (shouldIgnoreNode(node, ignore_nodes, depth, parent)) {
|
|
92
91
|
return shouldDescend; //skip over, don't consider it a valid depth
|
|
93
92
|
}
|
|
94
|
-
anchorName = (_anchorName = anchorName) !== null && _anchorName !== void 0 ? _anchorName : "--node-anchor-".concat(node.type.name, "-").concat(pos);
|
|
95
|
-
} else {
|
|
96
|
-
var _anchorName2;
|
|
97
|
-
anchorName = (_anchorName2 = anchorName) !== null && _anchorName2 !== void 0 ? _anchorName2 : "--node-anchor-".concat(node.type.name, "-").concat(index);
|
|
98
93
|
}
|
|
99
94
|
var anchorStyles = "anchor-name: ".concat(anchorName, ";");
|
|
100
|
-
var subType = node.attrs.level ? "-".concat(node.attrs.level) : '';
|
|
101
95
|
decs.push(_view.Decoration.node(pos, pos + node.nodeSize, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
|
|
102
96
|
style: anchorStyles
|
|
103
|
-
}, 'data-drag-handler-anchor-name', anchorName), 'data-drag-handler-node-type',
|
|
97
|
+
}, 'data-drag-handler-anchor-name', anchorName), 'data-drag-handler-node-type', nodeTypeWithLevel), 'data-drag-handler-anchor-depth', "".concat(depth)), {
|
|
104
98
|
type: _decorationsCommon.TYPE_NODE_DEC,
|
|
105
99
|
anchorName: anchorName,
|
|
106
|
-
nodeType: node.type.name
|
|
100
|
+
nodeType: node.type.name,
|
|
101
|
+
nodeTypeWithLevel: nodeTypeWithLevel
|
|
107
102
|
}));
|
|
108
103
|
return shouldDescend && depth < (0, _decorationsCommon.getNestedDepth)();
|
|
109
104
|
});
|
|
@@ -4,13 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.unmountDecorations = exports.getNodeAnchor = exports.getNestedDepth = exports.TYPE_NODE_DEC = exports.TYPE_HANDLE_DEC = exports.TYPE_DROP_TARGET_DEC = void 0;
|
|
7
|
+
exports.unmountDecorations = exports.getNodeTypeWithLevel = exports.getNodeAnchor = exports.getNestedDepth = exports.TYPE_NODE_DEC = exports.TYPE_HANDLE_DEC = exports.TYPE_DROP_TARGET_DEC = void 0;
|
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
11
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
12
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
13
|
var TYPE_DROP_TARGET_DEC = exports.TYPE_DROP_TARGET_DEC = 'drop-target-decoration';
|
|
16
14
|
var TYPE_HANDLE_DEC = exports.TYPE_HANDLE_DEC = 'drag-handle';
|
|
@@ -22,6 +20,10 @@ var getNodeAnchor = exports.getNodeAnchor = function getNodeAnchor(node) {
|
|
|
22
20
|
var handleId = ObjHash.getForNode(node);
|
|
23
21
|
return "--node-anchor-".concat(node.type.name, "-").concat(handleId);
|
|
24
22
|
};
|
|
23
|
+
var getNodeTypeWithLevel = exports.getNodeTypeWithLevel = function getNodeTypeWithLevel(node) {
|
|
24
|
+
var subType = node.attrs.level ? "-".concat(node.attrs.level) : '';
|
|
25
|
+
return node.type.name + subType;
|
|
26
|
+
};
|
|
25
27
|
var ObjHash = /*#__PURE__*/function () {
|
|
26
28
|
function ObjHash() {
|
|
27
29
|
(0, _classCallCheck2.default)(this, ObjHash);
|
|
@@ -44,13 +46,9 @@ var unmountDecorations = exports.unmountDecorations = function unmountDecoration
|
|
|
44
46
|
// as it was more responsive and causes less re-rendering
|
|
45
47
|
var decorationsToRemove = document.querySelectorAll("[".concat(selector, "=\"true\"]"));
|
|
46
48
|
decorationsToRemove.forEach(function (el) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
nodeViewPortalProviderAPI.remove(nodeKey);
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
_reactDom.default.unmountComponentAtNode(el);
|
|
49
|
+
var nodeKey = el.getAttribute(key);
|
|
50
|
+
if (nodeKey) {
|
|
51
|
+
nodeViewPortalProviderAPI.remove(nodeKey);
|
|
54
52
|
}
|
|
55
53
|
});
|
|
56
54
|
};
|
|
@@ -8,10 +8,8 @@ exports.findHandleDec = exports.emptyParagraphNodeDecorations = exports.dragHand
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _react = require("react");
|
|
10
10
|
var _bindEventListener = require("bind-event-listener");
|
|
11
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
11
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
12
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
14
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
13
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
16
14
|
var _dragHandle = require("../ui/drag-handle");
|
|
17
15
|
var _decorationsCommon = require("./decorations-common");
|
|
@@ -72,21 +70,8 @@ var dragHandleDecoration = exports.dragHandleDecoration = function dragHandleDec
|
|
|
72
70
|
// There are times when global clear: "both" styles are applied to this decoration causing jumpiness
|
|
73
71
|
// due to margins applied to other nodes eg. Headings
|
|
74
72
|
element.style.clear = 'unset';
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return /*#__PURE__*/(0, _react.createElement)(_dragHandle.DragHandle, {
|
|
78
|
-
view: view,
|
|
79
|
-
api: api,
|
|
80
|
-
formatMessage: formatMessage,
|
|
81
|
-
getPos: getPos,
|
|
82
|
-
anchorName: anchorName,
|
|
83
|
-
nodeType: nodeType,
|
|
84
|
-
handleOptions: handleOptions,
|
|
85
|
-
isTopLevelNode: isTopLevelNode
|
|
86
|
-
});
|
|
87
|
-
}, element, key);
|
|
88
|
-
} else {
|
|
89
|
-
_reactDom.default.render( /*#__PURE__*/(0, _react.createElement)(_dragHandle.DragHandle, {
|
|
73
|
+
nodeViewPortalProviderAPI.render(function () {
|
|
74
|
+
return /*#__PURE__*/(0, _react.createElement)(_dragHandle.DragHandle, {
|
|
90
75
|
view: view,
|
|
91
76
|
api: api,
|
|
92
77
|
formatMessage: formatMessage,
|
|
@@ -95,8 +80,8 @@ var dragHandleDecoration = exports.dragHandleDecoration = function dragHandleDec
|
|
|
95
80
|
nodeType: nodeType,
|
|
96
81
|
handleOptions: handleOptions,
|
|
97
82
|
isTopLevelNode: isTopLevelNode
|
|
98
|
-
})
|
|
99
|
-
}
|
|
83
|
+
});
|
|
84
|
+
}, element, key);
|
|
100
85
|
return element;
|
|
101
86
|
}, {
|
|
102
87
|
side: -1,
|