@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 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 table = schema.nodes[selectedNodeTypeName];
22
- content = table.createAndFill();
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
  };
@@ -172,6 +172,8 @@ var TRANSFORM_STEPS_OVERRIDE = {
172
172
  layoutSection: [_wrapIntoLayoutStep.wrapIntoLayoutStep],
173
173
  codeBlock: null,
174
174
  decisionList: null,
175
+ bulletList: null,
176
+ orderedList: null,
175
177
  taskList: null
176
178
  },
177
179
  decisionList: {
@@ -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 table = schema.nodes[selectedNodeTypeName];
16
- content = table.createAndFill();
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
  };
@@ -167,6 +167,8 @@ const TRANSFORM_STEPS_OVERRIDE = {
167
167
  layoutSection: [wrapIntoLayoutStep],
168
168
  codeBlock: null,
169
169
  decisionList: null,
170
+ bulletList: null,
171
+ orderedList: null,
170
172
  taskList: null
171
173
  },
172
174
  decisionList: {
@@ -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 table = schema.nodes[selectedNodeTypeName];
16
- content = table.createAndFill();
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
  };
@@ -167,6 +167,8 @@ var TRANSFORM_STEPS_OVERRIDE = {
167
167
  layoutSection: [wrapIntoLayoutStep],
168
168
  codeBlock: null,
169
169
  decisionList: null,
170
+ bulletList: null,
171
+ orderedList: null,
170
172
  taskList: null
171
173
  },
172
174
  decisionList: {
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-block-menu",
3
- "version": "6.0.1",
3
+ "version": "6.0.3",
4
4
  "description": "BlockMenu plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",