@atlaskit/editor-plugin-block-controls 2.13.15 → 2.13.16
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 +9 -0
- package/dist/cjs/commands/move-node.js +7 -4
- package/dist/cjs/commands/move-to-layout.js +6 -37
- package/dist/cjs/utils/remove-from-source.js +26 -0
- package/dist/cjs/utils/update-column-widths.js +21 -0
- package/dist/es2019/commands/move-node.js +5 -2
- package/dist/es2019/commands/move-to-layout.js +4 -35
- package/dist/es2019/utils/remove-from-source.js +20 -0
- package/dist/es2019/utils/update-column-widths.js +15 -0
- package/dist/esm/commands/move-node.js +5 -2
- package/dist/esm/commands/move-to-layout.js +4 -35
- package/dist/esm/utils/remove-from-source.js +20 -0
- package/dist/esm/utils/update-column-widths.js +15 -0
- package/dist/types/commands/move-to-layout.d.ts +0 -3
- package/dist/types/utils/remove-from-source.d.ts +3 -0
- package/dist/types/utils/update-column-widths.d.ts +6 -0
- package/dist/types-ts4.5/commands/move-to-layout.d.ts +0 -3
- package/dist/types-ts4.5/utils/remove-from-source.d.ts +3 -0
- package/dist/types-ts4.5/utils/update-column-widths.d.ts +6 -0
- package/package.json +3 -3
- package/dist/cjs/utils/drag-layout-column.js +0 -24
- package/dist/es2019/utils/drag-layout-column.js +0 -18
- package/dist/esm/utils/drag-layout-column.js +0 -18
- package/dist/types/utils/drag-layout-column.d.ts +0 -4
- package/dist/types-ts4.5/utils/drag-layout-column.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 2.13.16
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#165732](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/165732)
|
|
8
|
+
[`55bfa121bfd1b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/55bfa121bfd1b) -
|
|
9
|
+
ED-25682 unify remove from source code and cleanup
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 2.13.15
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -20,10 +20,9 @@ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
|
20
20
|
var _consts = require("../consts");
|
|
21
21
|
var _main = require("../pm-plugins/main");
|
|
22
22
|
var _utils4 = require("../utils");
|
|
23
|
-
var _dragLayoutColumn = require("../utils/drag-layout-column");
|
|
24
23
|
var _getSelection = require("../utils/getSelection");
|
|
24
|
+
var _removeFromSource = require("../utils/remove-from-source");
|
|
25
25
|
var _validation = require("../utils/validation");
|
|
26
|
-
var _moveToLayout = require("./move-to-layout");
|
|
27
26
|
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; }
|
|
28
27
|
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; }
|
|
29
28
|
/**
|
|
@@ -47,6 +46,10 @@ function transformSourceSlice(nodeCopy, destType) {
|
|
|
47
46
|
}
|
|
48
47
|
return nodeCopy;
|
|
49
48
|
}
|
|
49
|
+
var isDragLayoutColumnToTopLevel = function isDragLayoutColumnToTopLevel($from, $to) {
|
|
50
|
+
var _$from$nodeAfter;
|
|
51
|
+
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
52
|
+
};
|
|
50
53
|
|
|
51
54
|
/**
|
|
52
55
|
*
|
|
@@ -176,10 +179,10 @@ var moveNode = exports.moveNode = function moveNode(api) {
|
|
|
176
179
|
var sourceNode = $from.nodeAfter;
|
|
177
180
|
|
|
178
181
|
// Move a layout column to top level
|
|
179
|
-
if (sourceNode &&
|
|
182
|
+
if (sourceNode && isDragLayoutColumnToTopLevel($from, $to)) {
|
|
180
183
|
// need update after we support single column layout.
|
|
181
184
|
var fragment = _model.Fragment.from(sourceNode.content);
|
|
182
|
-
(0,
|
|
185
|
+
(0, _removeFromSource.removeFromSource)(tr, $from);
|
|
183
186
|
var _mappedTo = tr.mapping.map(to);
|
|
184
187
|
tr.insert(_mappedTo, fragment).setSelection(_state.Selection.near(tr.doc.resolve(_mappedTo))).scrollIntoView();
|
|
185
188
|
return tr;
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.moveToLayout = void 0;
|
|
7
7
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
8
8
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
9
9
|
var _consts = require("../consts");
|
|
10
10
|
var _consts2 = require("../ui/consts");
|
|
11
|
-
var
|
|
11
|
+
var _removeFromSource = require("../utils/remove-from-source");
|
|
12
|
+
var _updateColumnWidths = require("../utils/update-column-widths");
|
|
12
13
|
var _validation = require("../utils/validation");
|
|
13
14
|
var createNewLayout = function createNewLayout(schema, layoutContents) {
|
|
14
15
|
if (layoutContents.length === 0 || layoutContents.length > (0, _consts.maxLayoutColumnSupported)()) {
|
|
@@ -34,20 +35,6 @@ var createNewLayout = function createNewLayout(schema, layoutContents) {
|
|
|
34
35
|
}
|
|
35
36
|
return null;
|
|
36
37
|
};
|
|
37
|
-
var updateColumnWidths = function updateColumnWidths(tr, layoutNode, layoutNodePos, childCount) {
|
|
38
|
-
var newColumnWidth = _consts2.DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
39
|
-
if (newColumnWidth) {
|
|
40
|
-
layoutNode.content.forEach(function (node, offset) {
|
|
41
|
-
if (node.type.name === 'layoutColumn') {
|
|
42
|
-
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
newColumnWidth: newColumnWidth,
|
|
48
|
-
tr: tr
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
38
|
var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos, sourceNode, from, to, tr, isSameLayout) {
|
|
52
39
|
if (isSameLayout) {
|
|
53
40
|
// reorder columns
|
|
@@ -57,30 +44,12 @@ var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos,
|
|
|
57
44
|
} else if (toLayout.childCount < (0, _consts.maxLayoutColumnSupported)()) {
|
|
58
45
|
insertToDestination(tr, to, sourceNode, toLayout, toLayoutPos);
|
|
59
46
|
var mappedFrom = tr.mapping.map(from);
|
|
60
|
-
removeFromSource(tr, tr.doc.resolve(mappedFrom));
|
|
61
|
-
}
|
|
62
|
-
return tr;
|
|
63
|
-
};
|
|
64
|
-
var removeFromSource = exports.removeFromSource = function removeFromSource(tr, $from) {
|
|
65
|
-
var sourceNode = $from.nodeAfter;
|
|
66
|
-
var sourceParent = $from.parent;
|
|
67
|
-
if (!sourceNode) {
|
|
68
|
-
return tr;
|
|
69
|
-
}
|
|
70
|
-
var sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
71
|
-
if (sourceNode.type.name === 'layoutColumn') {
|
|
72
|
-
if (sourceParent.childCount === _consts.MIN_LAYOUT_COLUMN) {
|
|
73
|
-
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
74
|
-
return tr;
|
|
75
|
-
} else {
|
|
76
|
-
updateColumnWidths(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
77
|
-
}
|
|
47
|
+
(0, _removeFromSource.removeFromSource)(tr, tr.doc.resolve(mappedFrom));
|
|
78
48
|
}
|
|
79
|
-
tr.delete($from.pos, sourceNodeEndPos);
|
|
80
49
|
return tr;
|
|
81
50
|
};
|
|
82
51
|
var insertToDestination = function insertToDestination(tr, to, sourceNode, toLayout, toLayoutPos) {
|
|
83
|
-
var _ref2 = updateColumnWidths(tr, toLayout, toLayoutPos, toLayout.childCount + 1) || {},
|
|
52
|
+
var _ref2 = (0, _updateColumnWidths.updateColumnWidths)(tr, toLayout, toLayoutPos, toLayout.childCount + 1) || {},
|
|
84
53
|
newColumnWidth = _ref2.newColumnWidth;
|
|
85
54
|
var _ref3 = tr.doc.type.schema.nodes || {},
|
|
86
55
|
layoutColumn = _ref3.layoutColumn;
|
|
@@ -184,7 +153,7 @@ var moveToLayout = exports.moveToLayout = function moveToLayout(api) {
|
|
|
184
153
|
var layoutContents = options !== null && options !== void 0 && options.moveToEnd ? [toNodeWithoutBreakout, fromNodeWithoutBreakout] : [fromNodeWithoutBreakout, toNodeWithoutBreakout];
|
|
185
154
|
var newLayout = createNewLayout(tr.doc.type.schema, layoutContents);
|
|
186
155
|
if (newLayout) {
|
|
187
|
-
tr = (0,
|
|
156
|
+
tr = (0, _removeFromSource.removeFromSource)(tr, $from);
|
|
188
157
|
var mappedTo = tr.mapping.map(to);
|
|
189
158
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout).setSelection(new _state.NodeSelection(tr.doc.resolve(mappedTo))).scrollIntoView();
|
|
190
159
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.removeFromSource = void 0;
|
|
7
|
+
var _consts = require("../consts");
|
|
8
|
+
var _updateColumnWidths = require("./update-column-widths");
|
|
9
|
+
var removeFromSource = exports.removeFromSource = function removeFromSource(tr, $from) {
|
|
10
|
+
var sourceNode = $from.nodeAfter;
|
|
11
|
+
var sourceParent = $from.parent;
|
|
12
|
+
if (!sourceNode) {
|
|
13
|
+
return tr;
|
|
14
|
+
}
|
|
15
|
+
var sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
16
|
+
if (sourceNode.type.name === 'layoutColumn') {
|
|
17
|
+
if (sourceParent.childCount === _consts.MIN_LAYOUT_COLUMN) {
|
|
18
|
+
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
19
|
+
return tr;
|
|
20
|
+
} else {
|
|
21
|
+
(0, _updateColumnWidths.updateColumnWidths)(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
tr.delete($from.pos, sourceNodeEndPos);
|
|
25
|
+
return tr;
|
|
26
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.updateColumnWidths = void 0;
|
|
7
|
+
var _consts = require("../ui/consts");
|
|
8
|
+
var updateColumnWidths = exports.updateColumnWidths = function updateColumnWidths(tr, layoutNode, layoutNodePos, childCount) {
|
|
9
|
+
var newColumnWidth = _consts.DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
10
|
+
if (newColumnWidth) {
|
|
11
|
+
layoutNode.content.forEach(function (node, offset) {
|
|
12
|
+
if (node.type.name === 'layoutColumn') {
|
|
13
|
+
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
newColumnWidth: newColumnWidth,
|
|
19
|
+
tr: tr
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -12,10 +12,9 @@ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
|
12
12
|
import { DIRECTION } from '../consts';
|
|
13
13
|
import { key } from '../pm-plugins/main';
|
|
14
14
|
import { getNestedNodePosition, selectNode } from '../utils';
|
|
15
|
-
import { isDragLayoutColumnToTopLevel } from '../utils/drag-layout-column';
|
|
16
15
|
import { setCursorPositionAtMovedNode } from '../utils/getSelection';
|
|
16
|
+
import { removeFromSource } from '../utils/remove-from-source';
|
|
17
17
|
import { canMoveNodeToIndex, isInsideTable, transformSliceExpandToNestedExpand } from '../utils/validation';
|
|
18
|
-
import { removeFromSource } from './move-to-layout';
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
20
|
* This function transforms the slice to move
|
|
@@ -39,6 +38,10 @@ function transformSourceSlice(nodeCopy, destType) {
|
|
|
39
38
|
}
|
|
40
39
|
return nodeCopy;
|
|
41
40
|
}
|
|
41
|
+
const isDragLayoutColumnToTopLevel = ($from, $to) => {
|
|
42
|
+
var _$from$nodeAfter;
|
|
43
|
+
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
44
|
+
};
|
|
42
45
|
|
|
43
46
|
/**
|
|
44
47
|
*
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
-
import { maxLayoutColumnSupported
|
|
3
|
+
import { maxLayoutColumnSupported } from '../consts';
|
|
4
4
|
import { DEFAULT_COLUMN_DISTRIBUTIONS } from '../ui/consts';
|
|
5
|
-
import {
|
|
5
|
+
import { removeFromSource } from '../utils/remove-from-source';
|
|
6
|
+
import { updateColumnWidths } from '../utils/update-column-widths';
|
|
6
7
|
import { isInSameLayout } from '../utils/validation';
|
|
7
8
|
const createNewLayout = (schema, layoutContents) => {
|
|
8
9
|
if (layoutContents.length === 0 || layoutContents.length > maxLayoutColumnSupported()) {
|
|
@@ -29,20 +30,6 @@ const createNewLayout = (schema, layoutContents) => {
|
|
|
29
30
|
}
|
|
30
31
|
return null;
|
|
31
32
|
};
|
|
32
|
-
const updateColumnWidths = (tr, layoutNode, layoutNodePos, childCount) => {
|
|
33
|
-
const newColumnWidth = DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
34
|
-
if (newColumnWidth) {
|
|
35
|
-
layoutNode.content.forEach((node, offset) => {
|
|
36
|
-
if (node.type.name === 'layoutColumn') {
|
|
37
|
-
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
newColumnWidth,
|
|
43
|
-
tr
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
33
|
const moveToExistingLayout = (toLayout, toLayoutPos, sourceNode, from, to, tr, isSameLayout) => {
|
|
47
34
|
if (isSameLayout) {
|
|
48
35
|
// reorder columns
|
|
@@ -56,24 +43,6 @@ const moveToExistingLayout = (toLayout, toLayoutPos, sourceNode, from, to, tr, i
|
|
|
56
43
|
}
|
|
57
44
|
return tr;
|
|
58
45
|
};
|
|
59
|
-
export const removeFromSource = (tr, $from) => {
|
|
60
|
-
const sourceNode = $from.nodeAfter;
|
|
61
|
-
const sourceParent = $from.parent;
|
|
62
|
-
if (!sourceNode) {
|
|
63
|
-
return tr;
|
|
64
|
-
}
|
|
65
|
-
const sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
66
|
-
if (sourceNode.type.name === 'layoutColumn') {
|
|
67
|
-
if (sourceParent.childCount === MIN_LAYOUT_COLUMN) {
|
|
68
|
-
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
69
|
-
return tr;
|
|
70
|
-
} else {
|
|
71
|
-
updateColumnWidths(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
tr.delete($from.pos, sourceNodeEndPos);
|
|
75
|
-
return tr;
|
|
76
|
-
};
|
|
77
46
|
const insertToDestination = (tr, to, sourceNode, toLayout, toLayoutPos) => {
|
|
78
47
|
const {
|
|
79
48
|
newColumnWidth
|
|
@@ -181,7 +150,7 @@ export const moveToLayout = api => (from, to, options) => ({
|
|
|
181
150
|
const layoutContents = options !== null && options !== void 0 && options.moveToEnd ? [toNodeWithoutBreakout, fromNodeWithoutBreakout] : [fromNodeWithoutBreakout, toNodeWithoutBreakout];
|
|
182
151
|
const newLayout = createNewLayout(tr.doc.type.schema, layoutContents);
|
|
183
152
|
if (newLayout) {
|
|
184
|
-
tr =
|
|
153
|
+
tr = removeFromSource(tr, $from);
|
|
185
154
|
const mappedTo = tr.mapping.map(to);
|
|
186
155
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout).setSelection(new NodeSelection(tr.doc.resolve(mappedTo))).scrollIntoView();
|
|
187
156
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MIN_LAYOUT_COLUMN } from '../consts';
|
|
2
|
+
import { updateColumnWidths } from './update-column-widths';
|
|
3
|
+
export const removeFromSource = (tr, $from) => {
|
|
4
|
+
const sourceNode = $from.nodeAfter;
|
|
5
|
+
const sourceParent = $from.parent;
|
|
6
|
+
if (!sourceNode) {
|
|
7
|
+
return tr;
|
|
8
|
+
}
|
|
9
|
+
const sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
10
|
+
if (sourceNode.type.name === 'layoutColumn') {
|
|
11
|
+
if (sourceParent.childCount === MIN_LAYOUT_COLUMN) {
|
|
12
|
+
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
13
|
+
return tr;
|
|
14
|
+
} else {
|
|
15
|
+
updateColumnWidths(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
tr.delete($from.pos, sourceNodeEndPos);
|
|
19
|
+
return tr;
|
|
20
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DEFAULT_COLUMN_DISTRIBUTIONS } from '../ui/consts';
|
|
2
|
+
export const updateColumnWidths = (tr, layoutNode, layoutNodePos, childCount) => {
|
|
3
|
+
const newColumnWidth = DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
4
|
+
if (newColumnWidth) {
|
|
5
|
+
layoutNode.content.forEach((node, offset) => {
|
|
6
|
+
if (node.type.name === 'layoutColumn') {
|
|
7
|
+
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
newColumnWidth,
|
|
13
|
+
tr
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -15,10 +15,9 @@ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
|
15
15
|
import { DIRECTION } from '../consts';
|
|
16
16
|
import { key } from '../pm-plugins/main';
|
|
17
17
|
import { getNestedNodePosition, selectNode } from '../utils';
|
|
18
|
-
import { isDragLayoutColumnToTopLevel } from '../utils/drag-layout-column';
|
|
19
18
|
import { setCursorPositionAtMovedNode } from '../utils/getSelection';
|
|
19
|
+
import { removeFromSource } from '../utils/remove-from-source';
|
|
20
20
|
import { canMoveNodeToIndex, isInsideTable, transformSliceExpandToNestedExpand } from '../utils/validation';
|
|
21
|
-
import { removeFromSource } from './move-to-layout';
|
|
22
21
|
|
|
23
22
|
/**
|
|
24
23
|
* This function transforms the slice to move
|
|
@@ -41,6 +40,10 @@ function transformSourceSlice(nodeCopy, destType) {
|
|
|
41
40
|
}
|
|
42
41
|
return nodeCopy;
|
|
43
42
|
}
|
|
43
|
+
var isDragLayoutColumnToTopLevel = function isDragLayoutColumnToTopLevel($from, $to) {
|
|
44
|
+
var _$from$nodeAfter;
|
|
45
|
+
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
46
|
+
};
|
|
44
47
|
|
|
45
48
|
/**
|
|
46
49
|
*
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
-
import { maxLayoutColumnSupported
|
|
3
|
+
import { maxLayoutColumnSupported } from '../consts';
|
|
4
4
|
import { DEFAULT_COLUMN_DISTRIBUTIONS } from '../ui/consts';
|
|
5
|
-
import {
|
|
5
|
+
import { removeFromSource } from '../utils/remove-from-source';
|
|
6
|
+
import { updateColumnWidths } from '../utils/update-column-widths';
|
|
6
7
|
import { isInSameLayout } from '../utils/validation';
|
|
7
8
|
var createNewLayout = function createNewLayout(schema, layoutContents) {
|
|
8
9
|
if (layoutContents.length === 0 || layoutContents.length > maxLayoutColumnSupported()) {
|
|
@@ -28,20 +29,6 @@ var createNewLayout = function createNewLayout(schema, layoutContents) {
|
|
|
28
29
|
}
|
|
29
30
|
return null;
|
|
30
31
|
};
|
|
31
|
-
var updateColumnWidths = function updateColumnWidths(tr, layoutNode, layoutNodePos, childCount) {
|
|
32
|
-
var newColumnWidth = DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
33
|
-
if (newColumnWidth) {
|
|
34
|
-
layoutNode.content.forEach(function (node, offset) {
|
|
35
|
-
if (node.type.name === 'layoutColumn') {
|
|
36
|
-
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
newColumnWidth: newColumnWidth,
|
|
42
|
-
tr: tr
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
32
|
var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos, sourceNode, from, to, tr, isSameLayout) {
|
|
46
33
|
if (isSameLayout) {
|
|
47
34
|
// reorder columns
|
|
@@ -55,24 +42,6 @@ var moveToExistingLayout = function moveToExistingLayout(toLayout, toLayoutPos,
|
|
|
55
42
|
}
|
|
56
43
|
return tr;
|
|
57
44
|
};
|
|
58
|
-
export var removeFromSource = function removeFromSource(tr, $from) {
|
|
59
|
-
var sourceNode = $from.nodeAfter;
|
|
60
|
-
var sourceParent = $from.parent;
|
|
61
|
-
if (!sourceNode) {
|
|
62
|
-
return tr;
|
|
63
|
-
}
|
|
64
|
-
var sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
65
|
-
if (sourceNode.type.name === 'layoutColumn') {
|
|
66
|
-
if (sourceParent.childCount === MIN_LAYOUT_COLUMN) {
|
|
67
|
-
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
68
|
-
return tr;
|
|
69
|
-
} else {
|
|
70
|
-
updateColumnWidths(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
tr.delete($from.pos, sourceNodeEndPos);
|
|
74
|
-
return tr;
|
|
75
|
-
};
|
|
76
45
|
var insertToDestination = function insertToDestination(tr, to, sourceNode, toLayout, toLayoutPos) {
|
|
77
46
|
var _ref2 = updateColumnWidths(tr, toLayout, toLayoutPos, toLayout.childCount + 1) || {},
|
|
78
47
|
newColumnWidth = _ref2.newColumnWidth;
|
|
@@ -178,7 +147,7 @@ export var moveToLayout = function moveToLayout(api) {
|
|
|
178
147
|
var layoutContents = options !== null && options !== void 0 && options.moveToEnd ? [toNodeWithoutBreakout, fromNodeWithoutBreakout] : [fromNodeWithoutBreakout, toNodeWithoutBreakout];
|
|
179
148
|
var newLayout = createNewLayout(tr.doc.type.schema, layoutContents);
|
|
180
149
|
if (newLayout) {
|
|
181
|
-
tr =
|
|
150
|
+
tr = removeFromSource(tr, $from);
|
|
182
151
|
var mappedTo = tr.mapping.map(to);
|
|
183
152
|
tr.delete(mappedTo, mappedTo + toNodeWithoutBreakout.nodeSize).insert(mappedTo, newLayout).setSelection(new NodeSelection(tr.doc.resolve(mappedTo))).scrollIntoView();
|
|
184
153
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MIN_LAYOUT_COLUMN } from '../consts';
|
|
2
|
+
import { updateColumnWidths } from './update-column-widths';
|
|
3
|
+
export var removeFromSource = function removeFromSource(tr, $from) {
|
|
4
|
+
var sourceNode = $from.nodeAfter;
|
|
5
|
+
var sourceParent = $from.parent;
|
|
6
|
+
if (!sourceNode) {
|
|
7
|
+
return tr;
|
|
8
|
+
}
|
|
9
|
+
var sourceNodeEndPos = $from.pos + sourceNode.nodeSize;
|
|
10
|
+
if (sourceNode.type.name === 'layoutColumn') {
|
|
11
|
+
if (sourceParent.childCount === MIN_LAYOUT_COLUMN) {
|
|
12
|
+
tr.delete($from.pos + 1, sourceNodeEndPos - 1);
|
|
13
|
+
return tr;
|
|
14
|
+
} else {
|
|
15
|
+
updateColumnWidths(tr, $from.parent, $from.before($from.depth), sourceParent.childCount - 1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
tr.delete($from.pos, sourceNodeEndPos);
|
|
19
|
+
return tr;
|
|
20
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DEFAULT_COLUMN_DISTRIBUTIONS } from '../ui/consts';
|
|
2
|
+
export var updateColumnWidths = function updateColumnWidths(tr, layoutNode, layoutNodePos, childCount) {
|
|
3
|
+
var newColumnWidth = DEFAULT_COLUMN_DISTRIBUTIONS[childCount];
|
|
4
|
+
if (newColumnWidth) {
|
|
5
|
+
layoutNode.content.forEach(function (node, offset) {
|
|
6
|
+
if (node.type.name === 'layoutColumn') {
|
|
7
|
+
tr.setNodeAttribute(layoutNodePos + offset + 1, 'width', newColumnWidth);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
newColumnWidth: newColumnWidth,
|
|
13
|
+
tr: tr
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { EditorCommand, ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
2
|
-
import { type ResolvedPos } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
4
2
|
import type { BlockControlsPlugin } from '../types';
|
|
5
|
-
export declare const removeFromSource: (tr: Transaction, $from: ResolvedPos) => Transaction;
|
|
6
3
|
export declare const moveToLayout: (api?: ExtractInjectionAPI<BlockControlsPlugin>) => (from: number, to: number, options?: {
|
|
7
4
|
moveToEnd?: boolean;
|
|
8
5
|
}) => EditorCommand;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
export declare const updateColumnWidths: (tr: Transaction, layoutNode: PMNode, layoutNodePos: number, childCount: number) => {
|
|
4
|
+
newColumnWidth: number;
|
|
5
|
+
tr: Transaction;
|
|
6
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { EditorCommand, ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
2
|
-
import { type ResolvedPos } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
4
2
|
import type { BlockControlsPlugin } from '../types';
|
|
5
|
-
export declare const removeFromSource: (tr: Transaction, $from: ResolvedPos) => Transaction;
|
|
6
3
|
export declare const moveToLayout: (api?: ExtractInjectionAPI<BlockControlsPlugin>) => (from: number, to: number, options?: {
|
|
7
4
|
moveToEnd?: boolean;
|
|
8
5
|
}) => EditorCommand;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
export declare const updateColumnWidths: (tr: Transaction, layoutNode: PMNode, layoutNodePos: number, childCount: number) => {
|
|
4
|
+
newColumnWidth: number;
|
|
5
|
+
tr: Transaction;
|
|
6
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-controls",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.16",
|
|
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": "^44.2.0",
|
|
34
|
-
"@atlaskit/editor-common": "^94.
|
|
34
|
+
"@atlaskit/editor-common": "^94.23.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",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^1.1.0",
|
|
49
49
|
"@atlaskit/primitives": "^13.2.0",
|
|
50
50
|
"@atlaskit/theme": "^14.0.0",
|
|
51
|
-
"@atlaskit/tmp-editor-statsig": "^2.
|
|
51
|
+
"@atlaskit/tmp-editor-statsig": "^2.18.0",
|
|
52
52
|
"@atlaskit/tokens": "^2.2.0",
|
|
53
53
|
"@atlaskit/tooltip": "^18.9.0",
|
|
54
54
|
"@babel/runtime": "^7.0.0",
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isDragLayoutColumnToTopLevel = exports.deleteSourceNode = void 0;
|
|
7
|
-
var isDragLayoutColumnToTopLevel = exports.isDragLayoutColumnToTopLevel = function isDragLayoutColumnToTopLevel($from, $to) {
|
|
8
|
-
var _$from$nodeAfter;
|
|
9
|
-
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
10
|
-
};
|
|
11
|
-
var deleteSourceNode = exports.deleteSourceNode = function deleteSourceNode(tr, $from, $to) {
|
|
12
|
-
if ($from.nodeAfter) {
|
|
13
|
-
var fromNode = $from.nodeAfter;
|
|
14
|
-
if (isDragLayoutColumnToTopLevel($from, $to)) {
|
|
15
|
-
// need update after we support single column layout.
|
|
16
|
-
if ($from.parent.childCount <= 2) {
|
|
17
|
-
tr.deleteRange($from.pos + 1, $from.pos + fromNode.nodeSize - 1);
|
|
18
|
-
return tr;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
tr.deleteRange($from.pos, $from.pos + fromNode.nodeSize);
|
|
22
|
-
}
|
|
23
|
-
return tr;
|
|
24
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export const isDragLayoutColumnToTopLevel = ($from, $to) => {
|
|
2
|
-
var _$from$nodeAfter;
|
|
3
|
-
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
4
|
-
};
|
|
5
|
-
export const deleteSourceNode = (tr, $from, $to) => {
|
|
6
|
-
if ($from.nodeAfter) {
|
|
7
|
-
const fromNode = $from.nodeAfter;
|
|
8
|
-
if (isDragLayoutColumnToTopLevel($from, $to)) {
|
|
9
|
-
// need update after we support single column layout.
|
|
10
|
-
if ($from.parent.childCount <= 2) {
|
|
11
|
-
tr.deleteRange($from.pos + 1, $from.pos + fromNode.nodeSize - 1);
|
|
12
|
-
return tr;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
tr.deleteRange($from.pos, $from.pos + fromNode.nodeSize);
|
|
16
|
-
}
|
|
17
|
-
return tr;
|
|
18
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export var isDragLayoutColumnToTopLevel = function isDragLayoutColumnToTopLevel($from, $to) {
|
|
2
|
-
var _$from$nodeAfter;
|
|
3
|
-
return ((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.type.name) === 'layoutColumn' && $from.parent.type.name === 'layoutSection' && $to.depth === 0;
|
|
4
|
-
};
|
|
5
|
-
export var deleteSourceNode = function deleteSourceNode(tr, $from, $to) {
|
|
6
|
-
if ($from.nodeAfter) {
|
|
7
|
-
var fromNode = $from.nodeAfter;
|
|
8
|
-
if (isDragLayoutColumnToTopLevel($from, $to)) {
|
|
9
|
-
// need update after we support single column layout.
|
|
10
|
-
if ($from.parent.childCount <= 2) {
|
|
11
|
-
tr.deleteRange($from.pos + 1, $from.pos + fromNode.nodeSize - 1);
|
|
12
|
-
return tr;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
tr.deleteRange($from.pos, $from.pos + fromNode.nodeSize);
|
|
16
|
-
}
|
|
17
|
-
return tr;
|
|
18
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type ResolvedPos } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
-
export declare const isDragLayoutColumnToTopLevel: ($from: ResolvedPos, $to: ResolvedPos) => boolean;
|
|
4
|
-
export declare const deleteSourceNode: (tr: Transaction, $from: ResolvedPos, $to: ResolvedPos) => Transaction;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type ResolvedPos } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import { type Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
-
export declare const isDragLayoutColumnToTopLevel: ($from: ResolvedPos, $to: ResolvedPos) => boolean;
|
|
4
|
-
export declare const deleteSourceNode: (tr: Transaction, $from: ResolvedPos, $to: ResolvedPos) => Transaction;
|