@atlaskit/editor-plugin-block-menu 6.0.1 → 6.0.3
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 +17 -0
- package/dist/cjs/editor-actions/isTransformToTargetDisabled.js +2 -2
- package/dist/cjs/editor-commands/transform-node-utils/transform.js +2 -0
- package/dist/cjs/editor-commands/transformNode.js +35 -0
- package/dist/es2019/editor-actions/isTransformToTargetDisabled.js +2 -2
- package/dist/es2019/editor-commands/transform-node-utils/transform.js +2 -0
- package/dist/es2019/editor-commands/transformNode.js +35 -0
- package/dist/esm/editor-actions/isTransformToTargetDisabled.js +2 -2
- package/dist/esm/editor-commands/transform-node-utils/transform.js +2 -0
- package/dist/esm/editor-commands/transformNode.js +35 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-menu
|
|
2
2
|
|
|
3
|
+
## 6.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`c94a46ce70f89`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c94a46ce70f89) -
|
|
8
|
+
[ux] File can't be transformed to bullet or ordered list. Disable those options in the 'Turn into'
|
|
9
|
+
menu.
|
|
10
|
+
|
|
11
|
+
## 6.0.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`7b54da3c92435`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7b54da3c92435) -
|
|
16
|
+
EDITOR-3993 Add analytics measure timings for transformNode function with operational events
|
|
17
|
+
tracking duration, node count, and source/target node types
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
|
|
3
20
|
## 6.0.1
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -18,8 +18,8 @@ var canParentContainNodeType = exports.canParentContainNodeType = function canPa
|
|
|
18
18
|
var content = null;
|
|
19
19
|
var nodesThatCantBeNestedInNestedExpand = ['blockCard', 'embedCard', 'table'];
|
|
20
20
|
if (nodesThatCantBeNestedInNestedExpand.includes(selectedNodeTypeName) && (adjustedNodeTypeName === 'expand' || adjustedNodeTypeName === 'nestedExpand')) {
|
|
21
|
-
var
|
|
22
|
-
content =
|
|
21
|
+
var node = schema.nodes[selectedNodeTypeName];
|
|
22
|
+
content = node.createAndFill();
|
|
23
23
|
}
|
|
24
24
|
return parentNode.type.validContent(_model.Fragment.from(nodeType.createAndFill(nodeTypeAttrs, content)));
|
|
25
25
|
};
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.transformNode = void 0;
|
|
7
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
8
|
+
var _performanceMeasures = require("@atlaskit/editor-common/performance-measures");
|
|
7
9
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
8
10
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
9
11
|
var _isNestedNode = require("../ui/utils/isNestedNode");
|
|
@@ -20,6 +22,10 @@ var transformNode = exports.transformNode = function transformNode(api) {
|
|
|
20
22
|
if (!preservedSelection) {
|
|
21
23
|
return tr;
|
|
22
24
|
}
|
|
25
|
+
|
|
26
|
+
// Start performance measurement
|
|
27
|
+
var measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
|
|
28
|
+
(0, _performanceMeasures.startMeasure)(measureId);
|
|
23
29
|
var schema = tr.doc.type.schema;
|
|
24
30
|
var nodes = schema.nodes;
|
|
25
31
|
var _expandSelectionToBlo = (0, _selection.expandSelectionToBlockRange)(preservedSelection),
|
|
@@ -30,6 +36,15 @@ var transformNode = exports.transformNode = function transformNode(api) {
|
|
|
30
36
|
var isNestedExceptLayout = (0, _isNestedNode.isNestedNode)(preservedSelection, '') && !isParentLayout;
|
|
31
37
|
var isList = (0, _utils.isListNode)(selectedParent);
|
|
32
38
|
var slice = tr.doc.slice(isList ? $from.pos - 1 : $from.pos, isList ? $to.pos + 1 : $to.pos);
|
|
39
|
+
|
|
40
|
+
// Collect source node information for analytics before transformation
|
|
41
|
+
var nodeCount = 0;
|
|
42
|
+
var sourceNodeTypes = {};
|
|
43
|
+
slice.content.forEach(function (node) {
|
|
44
|
+
nodeCount++;
|
|
45
|
+
var nodeTypeName = node.type.name;
|
|
46
|
+
sourceNodeTypes[nodeTypeName] = (sourceNodeTypes[nodeTypeName] || 0) + 1;
|
|
47
|
+
});
|
|
33
48
|
var transformedNodes = (0, _tranformContent.tranformContent)(slice.content, targetType, schema, isNestedExceptLayout, metadata === null || metadata === void 0 ? void 0 : metadata.targetAttrs);
|
|
34
49
|
var nodesToDeleteAndInsert = [nodes.mediaSingle];
|
|
35
50
|
if (preservedSelection instanceof _state.NodeSelection && nodesToDeleteAndInsert.includes(preservedSelection.node.type)) {
|
|
@@ -39,6 +54,26 @@ var transformNode = exports.transformNode = function transformNode(api) {
|
|
|
39
54
|
} else {
|
|
40
55
|
tr.replaceWith(isList ? $from.pos - 1 : $from.pos, $to.pos, transformedNodes);
|
|
41
56
|
}
|
|
57
|
+
|
|
58
|
+
// Stop performance measurement and fire analytics
|
|
59
|
+
(0, _performanceMeasures.stopMeasure)(measureId, function (duration, startTime) {
|
|
60
|
+
var _api$analytics;
|
|
61
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || _api$analytics.fireAnalyticsEvent({
|
|
62
|
+
action: _analytics.ACTION.TRANSFORMED,
|
|
63
|
+
actionSubject: _analytics.ACTION_SUBJECT.ELEMENT,
|
|
64
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.TRANSFORM,
|
|
65
|
+
attributes: {
|
|
66
|
+
duration: duration,
|
|
67
|
+
isList: isList,
|
|
68
|
+
isNested: isNestedExceptLayout,
|
|
69
|
+
nodeCount: nodeCount,
|
|
70
|
+
sourceNodeTypes: sourceNodeTypes,
|
|
71
|
+
startTime: startTime,
|
|
72
|
+
targetNodeType: targetType.name
|
|
73
|
+
},
|
|
74
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
75
|
+
});
|
|
76
|
+
});
|
|
42
77
|
return tr;
|
|
43
78
|
};
|
|
44
79
|
}
|
|
@@ -12,8 +12,8 @@ export const canParentContainNodeType = (schema, selectedNodeTypeName, parentNod
|
|
|
12
12
|
let content = null;
|
|
13
13
|
const nodesThatCantBeNestedInNestedExpand = ['blockCard', 'embedCard', 'table'];
|
|
14
14
|
if (nodesThatCantBeNestedInNestedExpand.includes(selectedNodeTypeName) && (adjustedNodeTypeName === 'expand' || adjustedNodeTypeName === 'nestedExpand')) {
|
|
15
|
-
const
|
|
16
|
-
content =
|
|
15
|
+
const node = schema.nodes[selectedNodeTypeName];
|
|
16
|
+
content = node.createAndFill();
|
|
17
17
|
}
|
|
18
18
|
return parentNode.type.validContent(Fragment.from(nodeType.createAndFill(nodeTypeAttrs, content)));
|
|
19
19
|
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import { startMeasure, stopMeasure } from '@atlaskit/editor-common/performance-measures';
|
|
1
3
|
import { expandSelectionToBlockRange } from '@atlaskit/editor-common/selection';
|
|
2
4
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
3
5
|
import { isNestedNode } from '../ui/utils/isNestedNode';
|
|
@@ -14,6 +16,10 @@ export const transformNode = api =>
|
|
|
14
16
|
if (!preservedSelection) {
|
|
15
17
|
return tr;
|
|
16
18
|
}
|
|
19
|
+
|
|
20
|
+
// Start performance measurement
|
|
21
|
+
const measureId = `transformNode_${targetType.name}_${Date.now()}`;
|
|
22
|
+
startMeasure(measureId);
|
|
17
23
|
const schema = tr.doc.type.schema;
|
|
18
24
|
const {
|
|
19
25
|
nodes
|
|
@@ -27,6 +33,15 @@ export const transformNode = api =>
|
|
|
27
33
|
const isNestedExceptLayout = isNestedNode(preservedSelection, '') && !isParentLayout;
|
|
28
34
|
const isList = isListNode(selectedParent);
|
|
29
35
|
const slice = tr.doc.slice(isList ? $from.pos - 1 : $from.pos, isList ? $to.pos + 1 : $to.pos);
|
|
36
|
+
|
|
37
|
+
// Collect source node information for analytics before transformation
|
|
38
|
+
let nodeCount = 0;
|
|
39
|
+
const sourceNodeTypes = {};
|
|
40
|
+
slice.content.forEach(node => {
|
|
41
|
+
nodeCount++;
|
|
42
|
+
const nodeTypeName = node.type.name;
|
|
43
|
+
sourceNodeTypes[nodeTypeName] = (sourceNodeTypes[nodeTypeName] || 0) + 1;
|
|
44
|
+
});
|
|
30
45
|
const transformedNodes = tranformContent(slice.content, targetType, schema, isNestedExceptLayout, metadata === null || metadata === void 0 ? void 0 : metadata.targetAttrs);
|
|
31
46
|
const nodesToDeleteAndInsert = [nodes.mediaSingle];
|
|
32
47
|
if (preservedSelection instanceof NodeSelection && nodesToDeleteAndInsert.includes(preservedSelection.node.type)) {
|
|
@@ -36,6 +51,26 @@ export const transformNode = api =>
|
|
|
36
51
|
} else {
|
|
37
52
|
tr.replaceWith(isList ? $from.pos - 1 : $from.pos, $to.pos, transformedNodes);
|
|
38
53
|
}
|
|
54
|
+
|
|
55
|
+
// Stop performance measurement and fire analytics
|
|
56
|
+
stopMeasure(measureId, (duration, startTime) => {
|
|
57
|
+
var _api$analytics, _api$analytics$action;
|
|
58
|
+
api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : (_api$analytics$action = _api$analytics.actions) === null || _api$analytics$action === void 0 ? void 0 : _api$analytics$action.fireAnalyticsEvent({
|
|
59
|
+
action: ACTION.TRANSFORMED,
|
|
60
|
+
actionSubject: ACTION_SUBJECT.ELEMENT,
|
|
61
|
+
actionSubjectId: ACTION_SUBJECT_ID.TRANSFORM,
|
|
62
|
+
attributes: {
|
|
63
|
+
duration,
|
|
64
|
+
isList,
|
|
65
|
+
isNested: isNestedExceptLayout,
|
|
66
|
+
nodeCount,
|
|
67
|
+
sourceNodeTypes,
|
|
68
|
+
startTime,
|
|
69
|
+
targetNodeType: targetType.name
|
|
70
|
+
},
|
|
71
|
+
eventType: EVENT_TYPE.OPERATIONAL
|
|
72
|
+
});
|
|
73
|
+
});
|
|
39
74
|
return tr;
|
|
40
75
|
};
|
|
41
76
|
};
|
|
@@ -12,8 +12,8 @@ export var canParentContainNodeType = function canParentContainNodeType(schema,
|
|
|
12
12
|
var content = null;
|
|
13
13
|
var nodesThatCantBeNestedInNestedExpand = ['blockCard', 'embedCard', 'table'];
|
|
14
14
|
if (nodesThatCantBeNestedInNestedExpand.includes(selectedNodeTypeName) && (adjustedNodeTypeName === 'expand' || adjustedNodeTypeName === 'nestedExpand')) {
|
|
15
|
-
var
|
|
16
|
-
content =
|
|
15
|
+
var node = schema.nodes[selectedNodeTypeName];
|
|
16
|
+
content = node.createAndFill();
|
|
17
17
|
}
|
|
18
18
|
return parentNode.type.validContent(Fragment.from(nodeType.createAndFill(nodeTypeAttrs, content)));
|
|
19
19
|
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import { startMeasure, stopMeasure } from '@atlaskit/editor-common/performance-measures';
|
|
1
3
|
import { expandSelectionToBlockRange } from '@atlaskit/editor-common/selection';
|
|
2
4
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
3
5
|
import { isNestedNode } from '../ui/utils/isNestedNode';
|
|
@@ -14,6 +16,10 @@ export var transformNode = function transformNode(api) {
|
|
|
14
16
|
if (!preservedSelection) {
|
|
15
17
|
return tr;
|
|
16
18
|
}
|
|
19
|
+
|
|
20
|
+
// Start performance measurement
|
|
21
|
+
var measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
|
|
22
|
+
startMeasure(measureId);
|
|
17
23
|
var schema = tr.doc.type.schema;
|
|
18
24
|
var nodes = schema.nodes;
|
|
19
25
|
var _expandSelectionToBlo = expandSelectionToBlockRange(preservedSelection),
|
|
@@ -24,6 +30,15 @@ export var transformNode = function transformNode(api) {
|
|
|
24
30
|
var isNestedExceptLayout = isNestedNode(preservedSelection, '') && !isParentLayout;
|
|
25
31
|
var isList = isListNode(selectedParent);
|
|
26
32
|
var slice = tr.doc.slice(isList ? $from.pos - 1 : $from.pos, isList ? $to.pos + 1 : $to.pos);
|
|
33
|
+
|
|
34
|
+
// Collect source node information for analytics before transformation
|
|
35
|
+
var nodeCount = 0;
|
|
36
|
+
var sourceNodeTypes = {};
|
|
37
|
+
slice.content.forEach(function (node) {
|
|
38
|
+
nodeCount++;
|
|
39
|
+
var nodeTypeName = node.type.name;
|
|
40
|
+
sourceNodeTypes[nodeTypeName] = (sourceNodeTypes[nodeTypeName] || 0) + 1;
|
|
41
|
+
});
|
|
27
42
|
var transformedNodes = tranformContent(slice.content, targetType, schema, isNestedExceptLayout, metadata === null || metadata === void 0 ? void 0 : metadata.targetAttrs);
|
|
28
43
|
var nodesToDeleteAndInsert = [nodes.mediaSingle];
|
|
29
44
|
if (preservedSelection instanceof NodeSelection && nodesToDeleteAndInsert.includes(preservedSelection.node.type)) {
|
|
@@ -33,6 +48,26 @@ export var transformNode = function transformNode(api) {
|
|
|
33
48
|
} else {
|
|
34
49
|
tr.replaceWith(isList ? $from.pos - 1 : $from.pos, $to.pos, transformedNodes);
|
|
35
50
|
}
|
|
51
|
+
|
|
52
|
+
// Stop performance measurement and fire analytics
|
|
53
|
+
stopMeasure(measureId, function (duration, startTime) {
|
|
54
|
+
var _api$analytics;
|
|
55
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || _api$analytics.fireAnalyticsEvent({
|
|
56
|
+
action: ACTION.TRANSFORMED,
|
|
57
|
+
actionSubject: ACTION_SUBJECT.ELEMENT,
|
|
58
|
+
actionSubjectId: ACTION_SUBJECT_ID.TRANSFORM,
|
|
59
|
+
attributes: {
|
|
60
|
+
duration: duration,
|
|
61
|
+
isList: isList,
|
|
62
|
+
isNested: isNestedExceptLayout,
|
|
63
|
+
nodeCount: nodeCount,
|
|
64
|
+
sourceNodeTypes: sourceNodeTypes,
|
|
65
|
+
startTime: startTime,
|
|
66
|
+
targetNodeType: targetType.name
|
|
67
|
+
},
|
|
68
|
+
eventType: EVENT_TYPE.OPERATIONAL
|
|
69
|
+
});
|
|
70
|
+
});
|
|
36
71
|
return tr;
|
|
37
72
|
};
|
|
38
73
|
}
|