@atlaskit/editor-plugin-block-menu 6.0.1 → 6.0.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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/editor-plugin-block-menu
2
2
 
3
+ ## 6.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7b54da3c92435`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7b54da3c92435) -
8
+ EDITOR-3993 Add analytics measure timings for transformNode function with operational events
9
+ tracking duration, node count, and source/target node types
10
+ - Updated dependencies
11
+
3
12
  ## 6.0.1
4
13
 
5
14
  ### Patch Changes
@@ -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
  }
@@ -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
  };
@@ -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.2",
4
4
  "description": "BlockMenu plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",