@atlaskit/editor-plugin-media 0.8.0 → 0.8.1

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,12 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 0.8.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#63388](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63388) [`999a8302f404`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/999a8302f404) - add analytics for changing media inline to media single
8
+ - [#63608](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63608) [`bfb98fe84eae`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/bfb98fe84eae) - [ux] EDF-93: Report and resolve existing duplicate i18n message descriptor keys/IDs in editor, as precursor work to adding CI check
9
+
3
10
  ## 0.8.0
4
11
 
5
12
  ### Minor Changes
@@ -22,7 +22,7 @@ var mediaResizeAnnouncerMess = exports.mediaResizeAnnouncerMess = (0, _reactIntl
22
22
  description: 'Media width {action} to {newMediaWidth} pixels.'
23
23
  },
24
24
  IncreasedAction: {
25
- id: 'fabric.editor.media.decreased',
25
+ id: 'fabric.editor.media.increased',
26
26
  defaultMessage: 'increased',
27
27
  description: 'Increased action'
28
28
  },
@@ -3,8 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMediaResizeAnalyticsEvent = exports.getMediaInputResizeAnalyticsEvent = void 0;
6
+ exports.findChangeFromLocation = findChangeFromLocation;
7
+ exports.getMediaResizeAnalyticsEvent = exports.getMediaInputResizeAnalyticsEvent = exports.getChangeMediaAnalytics = void 0;
7
8
  var _analytics = require("@atlaskit/editor-common/analytics");
9
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
8
10
  var getMediaResizeAnalyticsEvent = exports.getMediaResizeAnalyticsEvent = function getMediaResizeAnalyticsEvent(type, attributes) {
9
11
  if (!attributes) {
10
12
  return;
@@ -54,4 +56,25 @@ var getMediaInputResizeAnalyticsEvent = exports.getMediaInputResizeAnalyticsEven
54
56
  },
55
57
  eventType: _analytics.EVENT_TYPE.UI
56
58
  };
57
- };
59
+ };
60
+ var getChangeMediaAnalytics = exports.getChangeMediaAnalytics = function getChangeMediaAnalytics(previousType, newType, changeFromLocation) {
61
+ return {
62
+ action: _analytics.ACTION.CHANGED_TYPE,
63
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
64
+ eventType: _analytics.EVENT_TYPE.TRACK,
65
+ attributes: {
66
+ newType: newType,
67
+ previousType: previousType,
68
+ changeFromLocation: changeFromLocation
69
+ }
70
+ };
71
+ };
72
+ function findChangeFromLocation(selection) {
73
+ var _selection$$from$doc$ = selection.$from.doc.type,
74
+ schema = _selection$$from$doc$.schema,
75
+ name = _selection$$from$doc$.name;
76
+ var parentNodeInfo = (0, _utils.findParentNode)(function (node) {
77
+ return node.type !== schema.nodes.paragraph;
78
+ })(selection);
79
+ return parentNodeInfo ? parentNodeInfo.node.type.name : name;
80
+ }
@@ -18,6 +18,7 @@ var _model = require("@atlaskit/editor-prosemirror/model");
18
18
  var _utils2 = require("@atlaskit/editor-prosemirror/utils");
19
19
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
20
  var _mediaCommon = require("../utils/media-common");
21
+ var _analytics2 = require("./analytics");
21
22
  var _isType = require("./is-type");
22
23
  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; }
23
24
  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; }
@@ -45,7 +46,9 @@ function insertNodesWithOptionalParagraph(nodes) {
45
46
  schema = state.schema;
46
47
  var paragraph = schema.nodes.paragraph;
47
48
  var inputMethod = analyticsAttributes.inputMethod,
48
- fileExtension = analyticsAttributes.fileExtension;
49
+ fileExtension = analyticsAttributes.fileExtension,
50
+ newType = analyticsAttributes.newType,
51
+ previousType = analyticsAttributes.previousType;
49
52
  var openEnd = 0;
50
53
  if (shouldAddParagraph(state)) {
51
54
  nodes.push(paragraph.create());
@@ -55,6 +58,9 @@ function insertNodesWithOptionalParagraph(nodes) {
55
58
  if (inputMethod) {
56
59
  editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getInsertMediaAnalytics(inputMethod, fileExtension))(tr);
57
60
  }
61
+ if (newType && previousType) {
62
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent((0, _analytics2.getChangeMediaAnalytics)(previousType, newType, (0, _analytics2.findChangeFromLocation)(state.selection)))(tr);
63
+ }
58
64
  if (dispatch) {
59
65
  dispatch(tr);
60
66
  }
@@ -163,7 +169,9 @@ var changeFromMediaInlineToMediaSingleNode = exports.changeFromMediaInlineToMedi
163
169
  content: node
164
170
  })) {
165
171
  return insertNodesWithOptionalParagraph([node], {
166
- fileExtension: fileExtension
172
+ fileExtension: fileExtension,
173
+ newType: _analytics.ACTION_SUBJECT_ID.MEDIA_SINGLE,
174
+ previousType: _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE
167
175
  }, editorAnalyticsAPI)(state, dispatch);
168
176
  } else {
169
177
  var nodePos = state.tr.doc.resolve(state.selection.from).end();
@@ -174,7 +182,7 @@ var changeFromMediaInlineToMediaSingleNode = exports.changeFromMediaInlineToMedi
174
182
  var content = shouldAddParagraph(view.state) ? _model.Fragment.fromArray([node, state.schema.nodes.paragraph.create()]) : node;
175
183
  tr = (0, _utils2.safeInsert)(content, undefined, true)(state.tr);
176
184
  }
177
- // TODO: add analytics specifically for change mediaInline to mediaSingle later
185
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent((0, _analytics2.getChangeMediaAnalytics)(_analytics.ACTION_SUBJECT_ID.MEDIA_INLINE, _analytics.ACTION_SUBJECT_ID.MEDIA_SINGLE, (0, _analytics2.findChangeFromLocation)(state.selection)))(tr);
178
186
  dispatch(tr);
179
187
  }
180
188
  return true;
@@ -16,7 +16,7 @@ export const mediaResizeAnnouncerMess = defineMessages({
16
16
  description: 'Media width {action} to {newMediaWidth} pixels.'
17
17
  },
18
18
  IncreasedAction: {
19
- id: 'fabric.editor.media.decreased',
19
+ id: 'fabric.editor.media.increased',
20
20
  defaultMessage: 'increased',
21
21
  description: 'Increased action'
22
22
  },
@@ -1,4 +1,5 @@
1
1
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
+ import { findParentNode } from '@atlaskit/editor-prosemirror/utils';
2
3
  export const getMediaResizeAnalyticsEvent = (type, attributes) => {
3
4
  if (!attributes) {
4
5
  return;
@@ -52,4 +53,22 @@ export const getMediaInputResizeAnalyticsEvent = (type, attributes) => {
52
53
  },
53
54
  eventType: EVENT_TYPE.UI
54
55
  };
55
- };
56
+ };
57
+ export const getChangeMediaAnalytics = (previousType, newType, changeFromLocation) => ({
58
+ action: ACTION.CHANGED_TYPE,
59
+ actionSubject: ACTION_SUBJECT.MEDIA,
60
+ eventType: EVENT_TYPE.TRACK,
61
+ attributes: {
62
+ newType,
63
+ previousType,
64
+ changeFromLocation
65
+ }
66
+ });
67
+ export function findChangeFromLocation(selection) {
68
+ const {
69
+ schema,
70
+ name
71
+ } = selection.$from.doc.type;
72
+ const parentNodeInfo = findParentNode(node => node.type !== schema.nodes.paragraph)(selection);
73
+ return parentNodeInfo ? parentNodeInfo.node.type.name : name;
74
+ }
@@ -8,6 +8,7 @@ import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
8
8
  import { safeInsert as pmSafeInsert, removeSelectedNode } from '@atlaskit/editor-prosemirror/utils';
9
9
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
10
10
  import { copyOptionalAttrsFromMediaState } from '../utils/media-common';
11
+ import { findChangeFromLocation, getChangeMediaAnalytics } from './analytics';
11
12
  import { isImage } from './is-type';
12
13
  const getInsertMediaAnalytics = (inputMethod, fileExtension) => ({
13
14
  action: ACTION.INSERTED,
@@ -34,7 +35,9 @@ function insertNodesWithOptionalParagraph(nodes, analyticsAttributes = {}, edito
34
35
  } = schema.nodes;
35
36
  const {
36
37
  inputMethod,
37
- fileExtension
38
+ fileExtension,
39
+ newType,
40
+ previousType
38
41
  } = analyticsAttributes;
39
42
  let openEnd = 0;
40
43
  if (shouldAddParagraph(state)) {
@@ -45,6 +48,9 @@ function insertNodesWithOptionalParagraph(nodes, analyticsAttributes = {}, edito
45
48
  if (inputMethod) {
46
49
  editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent(getInsertMediaAnalytics(inputMethod, fileExtension))(tr);
47
50
  }
51
+ if (newType && previousType) {
52
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent(getChangeMediaAnalytics(previousType, newType, findChangeFromLocation(state.selection)))(tr);
53
+ }
48
54
  if (dispatch) {
49
55
  dispatch(tr);
50
56
  }
@@ -160,7 +166,9 @@ export const changeFromMediaInlineToMediaSingleNode = (view, fromNode, widthPlug
160
166
  content: node
161
167
  })) {
162
168
  return insertNodesWithOptionalParagraph([node], {
163
- fileExtension
169
+ fileExtension,
170
+ newType: ACTION_SUBJECT_ID.MEDIA_SINGLE,
171
+ previousType: ACTION_SUBJECT_ID.MEDIA_INLINE
164
172
  }, editorAnalyticsAPI)(state, dispatch);
165
173
  } else {
166
174
  const nodePos = state.tr.doc.resolve(state.selection.from).end();
@@ -171,7 +179,7 @@ export const changeFromMediaInlineToMediaSingleNode = (view, fromNode, widthPlug
171
179
  const content = shouldAddParagraph(view.state) ? Fragment.fromArray([node, state.schema.nodes.paragraph.create()]) : node;
172
180
  tr = pmSafeInsert(content, undefined, true)(state.tr);
173
181
  }
174
- // TODO: add analytics specifically for change mediaInline to mediaSingle later
182
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent(getChangeMediaAnalytics(ACTION_SUBJECT_ID.MEDIA_INLINE, ACTION_SUBJECT_ID.MEDIA_SINGLE, findChangeFromLocation(state.selection)))(tr);
175
183
  dispatch(tr);
176
184
  }
177
185
  return true;
@@ -16,7 +16,7 @@ export var mediaResizeAnnouncerMess = defineMessages({
16
16
  description: 'Media width {action} to {newMediaWidth} pixels.'
17
17
  },
18
18
  IncreasedAction: {
19
- id: 'fabric.editor.media.decreased',
19
+ id: 'fabric.editor.media.increased',
20
20
  defaultMessage: 'increased',
21
21
  description: 'Increased action'
22
22
  },
@@ -1,4 +1,5 @@
1
1
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
+ import { findParentNode } from '@atlaskit/editor-prosemirror/utils';
2
3
  export var getMediaResizeAnalyticsEvent = function getMediaResizeAnalyticsEvent(type, attributes) {
3
4
  if (!attributes) {
4
5
  return;
@@ -48,4 +49,25 @@ export var getMediaInputResizeAnalyticsEvent = function getMediaInputResizeAnaly
48
49
  },
49
50
  eventType: EVENT_TYPE.UI
50
51
  };
51
- };
52
+ };
53
+ export var getChangeMediaAnalytics = function getChangeMediaAnalytics(previousType, newType, changeFromLocation) {
54
+ return {
55
+ action: ACTION.CHANGED_TYPE,
56
+ actionSubject: ACTION_SUBJECT.MEDIA,
57
+ eventType: EVENT_TYPE.TRACK,
58
+ attributes: {
59
+ newType: newType,
60
+ previousType: previousType,
61
+ changeFromLocation: changeFromLocation
62
+ }
63
+ };
64
+ };
65
+ export function findChangeFromLocation(selection) {
66
+ var _selection$$from$doc$ = selection.$from.doc.type,
67
+ schema = _selection$$from$doc$.schema,
68
+ name = _selection$$from$doc$.name;
69
+ var parentNodeInfo = findParentNode(function (node) {
70
+ return node.type !== schema.nodes.paragraph;
71
+ })(selection);
72
+ return parentNodeInfo ? parentNodeInfo.node.type.name : name;
73
+ }
@@ -11,6 +11,7 @@ import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
11
11
  import { safeInsert as pmSafeInsert, removeSelectedNode } from '@atlaskit/editor-prosemirror/utils';
12
12
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
13
13
  import { copyOptionalAttrsFromMediaState } from '../utils/media-common';
14
+ import { findChangeFromLocation, getChangeMediaAnalytics } from './analytics';
14
15
  import { isImage } from './is-type';
15
16
  var getInsertMediaAnalytics = function getInsertMediaAnalytics(inputMethod, fileExtension) {
16
17
  return {
@@ -36,7 +37,9 @@ function insertNodesWithOptionalParagraph(nodes) {
36
37
  schema = state.schema;
37
38
  var paragraph = schema.nodes.paragraph;
38
39
  var inputMethod = analyticsAttributes.inputMethod,
39
- fileExtension = analyticsAttributes.fileExtension;
40
+ fileExtension = analyticsAttributes.fileExtension,
41
+ newType = analyticsAttributes.newType,
42
+ previousType = analyticsAttributes.previousType;
40
43
  var openEnd = 0;
41
44
  if (shouldAddParagraph(state)) {
42
45
  nodes.push(paragraph.create());
@@ -46,6 +49,9 @@ function insertNodesWithOptionalParagraph(nodes) {
46
49
  if (inputMethod) {
47
50
  editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getInsertMediaAnalytics(inputMethod, fileExtension))(tr);
48
51
  }
52
+ if (newType && previousType) {
53
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getChangeMediaAnalytics(previousType, newType, findChangeFromLocation(state.selection)))(tr);
54
+ }
49
55
  if (dispatch) {
50
56
  dispatch(tr);
51
57
  }
@@ -154,7 +160,9 @@ export var changeFromMediaInlineToMediaSingleNode = function changeFromMediaInli
154
160
  content: node
155
161
  })) {
156
162
  return insertNodesWithOptionalParagraph([node], {
157
- fileExtension: fileExtension
163
+ fileExtension: fileExtension,
164
+ newType: ACTION_SUBJECT_ID.MEDIA_SINGLE,
165
+ previousType: ACTION_SUBJECT_ID.MEDIA_INLINE
158
166
  }, editorAnalyticsAPI)(state, dispatch);
159
167
  } else {
160
168
  var nodePos = state.tr.doc.resolve(state.selection.from).end();
@@ -165,7 +173,7 @@ export var changeFromMediaInlineToMediaSingleNode = function changeFromMediaInli
165
173
  var content = shouldAddParagraph(view.state) ? Fragment.fromArray([node, state.schema.nodes.paragraph.create()]) : node;
166
174
  tr = pmSafeInsert(content, undefined, true)(state.tr);
167
175
  }
168
- // TODO: add analytics specifically for change mediaInline to mediaSingle later
176
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getChangeMediaAnalytics(ACTION_SUBJECT_ID.MEDIA_INLINE, ACTION_SUBJECT_ID.MEDIA_SINGLE, findChangeFromLocation(state.selection)))(tr);
169
177
  dispatch(tr);
170
178
  }
171
179
  return true;
@@ -1,3 +1,6 @@
1
- import type { MediaEventPayload, MediaInputResizeTrackAction, MediaResizeTrackAction } from '@atlaskit/editor-common/analytics';
1
+ import type { MediaEventPayload, MediaInputResizeTrackAction, MediaResizeTrackAction, MediaSwitchType } from '@atlaskit/editor-common/analytics';
2
+ import type { Selection } from '@atlaskit/editor-prosemirror/state';
2
3
  export declare const getMediaResizeAnalyticsEvent: <T extends MediaResizeTrackAction>(type: string, attributes: T["attributes"]) => MediaEventPayload | void;
3
4
  export declare const getMediaInputResizeAnalyticsEvent: <T extends MediaInputResizeTrackAction>(type: string, attributes: T["attributes"]) => MediaEventPayload | void;
5
+ export declare const getChangeMediaAnalytics: (previousType: MediaSwitchType, newType: MediaSwitchType, changeFromLocation?: string) => MediaEventPayload;
6
+ export declare function findChangeFromLocation(selection: Selection): string;
@@ -1,3 +1,6 @@
1
- import type { MediaEventPayload, MediaInputResizeTrackAction, MediaResizeTrackAction } from '@atlaskit/editor-common/analytics';
1
+ import type { MediaEventPayload, MediaInputResizeTrackAction, MediaResizeTrackAction, MediaSwitchType } from '@atlaskit/editor-common/analytics';
2
+ import type { Selection } from '@atlaskit/editor-prosemirror/state';
2
3
  export declare const getMediaResizeAnalyticsEvent: <T extends MediaResizeTrackAction>(type: string, attributes: T["attributes"]) => MediaEventPayload | void;
3
4
  export declare const getMediaInputResizeAnalyticsEvent: <T extends MediaInputResizeTrackAction>(type: string, attributes: T["attributes"]) => MediaEventPayload | void;
5
+ export declare const getChangeMediaAnalytics: (previousType: MediaSwitchType, newType: MediaSwitchType, changeFromLocation?: string) => MediaEventPayload;
6
+ export declare function findChangeFromLocation(selection: Selection): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-media",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "Media plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -65,7 +65,7 @@
65
65
  "@atlaskit/platform-feature-flags": "^0.2.0",
66
66
  "@atlaskit/textfield": "^6.0.0",
67
67
  "@atlaskit/theme": "^12.6.0",
68
- "@atlaskit/tokens": "^1.31.0",
68
+ "@atlaskit/tokens": "^1.32.0",
69
69
  "@atlaskit/tooltip": "^18.1.0",
70
70
  "@babel/runtime": "^7.0.0",
71
71
  "@emotion/react": "^11.7.1",