@atlaskit/editor-core 187.14.9 → 187.14.11

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/plugins/media/commands/captions.js +29 -27
  3. package/dist/cjs/plugins/media/commands/linking.js +21 -17
  4. package/dist/cjs/plugins/media/index.js +4 -3
  5. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +4 -2
  6. package/dist/cjs/plugins/media/pm-plugins/keymap.js +17 -15
  7. package/dist/cjs/plugins/media/pm-plugins/main.js +7 -5
  8. package/dist/cjs/plugins/media/toolbar/commands.js +149 -141
  9. package/dist/cjs/plugins/media/toolbar/index.js +20 -16
  10. package/dist/cjs/plugins/media/toolbar/linking.js +4 -3
  11. package/dist/cjs/plugins/media/utils/media-files.js +78 -75
  12. package/dist/cjs/version-wrapper.js +1 -1
  13. package/dist/cjs/version.json +1 -1
  14. package/dist/es2019/plugins/media/commands/captions.js +4 -4
  15. package/dist/es2019/plugins/media/commands/linking.js +12 -11
  16. package/dist/es2019/plugins/media/index.js +6 -3
  17. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +4 -2
  18. package/dist/es2019/plugins/media/pm-plugins/keymap.js +5 -5
  19. package/dist/es2019/plugins/media/pm-plugins/main.js +7 -5
  20. package/dist/es2019/plugins/media/toolbar/commands.js +15 -15
  21. package/dist/es2019/plugins/media/toolbar/index.js +20 -16
  22. package/dist/es2019/plugins/media/toolbar/linking.js +6 -3
  23. package/dist/es2019/plugins/media/utils/media-files.js +5 -6
  24. package/dist/es2019/version-wrapper.js +1 -1
  25. package/dist/es2019/version.json +1 -1
  26. package/dist/esm/plugins/media/commands/captions.js +29 -27
  27. package/dist/esm/plugins/media/commands/linking.js +21 -17
  28. package/dist/esm/plugins/media/index.js +4 -3
  29. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +4 -2
  30. package/dist/esm/plugins/media/pm-plugins/keymap.js +17 -15
  31. package/dist/esm/plugins/media/pm-plugins/main.js +7 -5
  32. package/dist/esm/plugins/media/toolbar/commands.js +148 -140
  33. package/dist/esm/plugins/media/toolbar/index.js +20 -16
  34. package/dist/esm/plugins/media/toolbar/linking.js +4 -3
  35. package/dist/esm/plugins/media/utils/media-files.js +78 -75
  36. package/dist/esm/version-wrapper.js +1 -1
  37. package/dist/esm/version.json +1 -1
  38. package/dist/types/plugins/media/commands/captions.d.ts +2 -1
  39. package/dist/types/plugins/media/commands/linking.d.ts +3 -3
  40. package/dist/types/plugins/media/pm-plugins/keymap.d.ts +2 -1
  41. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -1
  42. package/dist/types/plugins/media/toolbar/commands.d.ts +5 -4
  43. package/dist/types/plugins/media/utils/media-files.d.ts +3 -2
  44. package/dist/types-ts4.5/plugins/media/commands/captions.d.ts +2 -1
  45. package/dist/types-ts4.5/plugins/media/commands/linking.d.ts +3 -3
  46. package/dist/types-ts4.5/plugins/media/pm-plugins/keymap.d.ts +2 -1
  47. package/dist/types-ts4.5/plugins/media/pm-plugins/main.d.ts +1 -1
  48. package/dist/types-ts4.5/plugins/media/toolbar/commands.d.ts +5 -4
  49. package/dist/types-ts4.5/plugins/media/utils/media-files.d.ts +3 -2
  50. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 187.14.11
4
+
5
+ ### Patch Changes
6
+
7
+ - [`bc706129ddb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bc706129ddb) - Updated media to no longer use the old addAnalytics, using new AnalyticsAPI
8
+
3
9
  ## 187.14.9
4
10
 
5
11
  ### Patch Changes
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.selectCaptionFromMediaSinglePos = exports.insertAndSelectCaptionFromMediaSinglePos = void 0;
7
7
  var _utils = require("@atlaskit/editor-prosemirror/utils");
8
- var _analytics = require("../../analytics");
8
+ var _analytics = require("@atlaskit/editor-common/analytics");
9
9
  var selectCaptionFromMediaSinglePos = function selectCaptionFromMediaSinglePos(mediaSingleNodePos, mediaSingleNode) {
10
10
  return function (state, dispatch) {
11
11
  // node should have two children, media and caption
@@ -24,33 +24,35 @@ var selectCaptionFromMediaSinglePos = function selectCaptionFromMediaSinglePos(m
24
24
  };
25
25
  };
26
26
  exports.selectCaptionFromMediaSinglePos = selectCaptionFromMediaSinglePos;
27
- var insertAndSelectCaptionFromMediaSinglePos = function insertAndSelectCaptionFromMediaSinglePos(mediaSingleNodePos, mediaSingleNode) {
28
- return function (state, dispatch) {
29
- if (typeof mediaSingleNodePos !== 'number') {
30
- return false;
31
- }
32
- var tr = state.tr;
27
+ var insertAndSelectCaptionFromMediaSinglePos = function insertAndSelectCaptionFromMediaSinglePos(editorAnalyticsAPI) {
28
+ return function (mediaSingleNodePos, mediaSingleNode) {
29
+ return function (state, dispatch) {
30
+ if (typeof mediaSingleNodePos !== 'number') {
31
+ return false;
32
+ }
33
+ var tr = state.tr;
33
34
 
34
- // node should have one child, media
35
- if (mediaSingleNode.childCount !== 1) {
36
- return false;
37
- }
38
- if (dispatch) {
39
- var schema = state.schema;
40
- var media = mediaSingleNode.child(0);
41
- var caption = schema.nodes.caption.create();
42
- tr = state.tr.insert(mediaSingleNodePos + media.nodeSize + 1, caption);
43
- tr = setSelectionAtEndOfCaption(tr, mediaSingleNodePos, media.nodeSize, caption.nodeSize);
44
- tr.setMeta('scrollIntoView', false);
45
- (0, _analytics.addAnalytics)(state, tr, {
46
- action: _analytics.ACTION.ADDED,
47
- eventType: _analytics.EVENT_TYPE.TRACK,
48
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA_SINGLE,
49
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.CAPTION
50
- });
51
- dispatch(tr);
52
- }
53
- return true;
35
+ // node should have one child, media
36
+ if (mediaSingleNode.childCount !== 1) {
37
+ return false;
38
+ }
39
+ if (dispatch) {
40
+ var schema = state.schema;
41
+ var media = mediaSingleNode.child(0);
42
+ var caption = schema.nodes.caption.create();
43
+ tr = state.tr.insert(mediaSingleNodePos + media.nodeSize + 1, caption);
44
+ tr = setSelectionAtEndOfCaption(tr, mediaSingleNodePos, media.nodeSize, caption.nodeSize);
45
+ tr.setMeta('scrollIntoView', false);
46
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
47
+ action: _analytics.ACTION.ADDED,
48
+ eventType: _analytics.EVENT_TYPE.TRACK,
49
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA_SINGLE,
50
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.CAPTION
51
+ })(tr);
52
+ dispatch(tr);
53
+ }
54
+ return true;
55
+ };
54
56
  };
55
57
  };
56
58
  exports.insertAndSelectCaptionFromMediaSinglePos = insertAndSelectCaptionFromMediaSinglePos;
@@ -10,7 +10,7 @@ var _linking = require("../pm-plugins/linking");
10
10
  var _utils = require("@atlaskit/editor-common/utils");
11
11
  var _commands = require("../../../commands");
12
12
  var _actions = require("../pm-plugins/linking/actions");
13
- var _analytics = require("../../analytics");
13
+ var _analytics = require("@atlaskit/editor-common/analytics");
14
14
  var _currentMediaNode = require("../utils/current-media-node");
15
15
  var _checkMediaType = require("../utils/check-media-type");
16
16
  var _main = require("../pm-plugins/main");
@@ -126,24 +126,28 @@ function toggleLinkMark(tr, state, _ref) {
126
126
  toggleBlockLinkMark($pos.pos, $pos.pos + node.nodeSize, tr, state);
127
127
  return tr;
128
128
  }
129
- var fireAnalyticForMediaLink = function fireAnalyticForMediaLink(tr, state, action) {
130
- var attributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
131
- return (0, _analytics.addAnalytics)(state, tr, {
129
+ var fireAnalyticForMediaLink = function fireAnalyticForMediaLink(tr, action) {
130
+ var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
131
+ var editorAnalyticsAPI = arguments.length > 3 ? arguments[3] : undefined;
132
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
132
133
  action: action,
133
134
  eventType: _analytics.EVENT_TYPE.TRACK,
134
135
  actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
135
136
  actionSubjectId: _analytics.ACTION_SUBJECT_ID.LINK,
136
137
  attributes: attributes
137
- });
138
+ })(tr);
139
+ return tr;
138
140
  };
139
- var unlink = (0, _linking.createMediaLinkingCommand)({
140
- type: _actions.MediaLinkingActionsTypes.unlink
141
- }, function (tr, state) {
142
- var transaction = toggleLinkMark(tr, state, {
143
- forceRemove: true
141
+ var unlink = function unlink(editorAnalyticsAPI) {
142
+ return (0, _linking.createMediaLinkingCommand)({
143
+ type: _actions.MediaLinkingActionsTypes.unlink
144
+ }, function (tr, state) {
145
+ var transaction = toggleLinkMark(tr, state, {
146
+ forceRemove: true
147
+ });
148
+ return fireAnalyticForMediaLink(transaction, _analytics.ACTION.DELETED, undefined, editorAnalyticsAPI);
144
149
  });
145
- return fireAnalyticForMediaLink(transaction, state, _analytics.ACTION.DELETED);
146
- });
150
+ };
147
151
  exports.unlink = unlink;
148
152
  var getAction = function getAction(newUrl, state) {
149
153
  var currentUrl = getCurrentUrl(state);
@@ -154,7 +158,7 @@ var getAction = function getAction(newUrl, state) {
154
158
  }
155
159
  return undefined;
156
160
  };
157
- var setUrlToMedia = function setUrlToMedia(url, inputMethod) {
161
+ var setUrlToMedia = function setUrlToMedia(url, inputMethod, editorAnalyticsAPI) {
158
162
  return (0, _linking.createMediaLinkingCommand)({
159
163
  type: _actions.MediaLinkingActionsTypes.setUrl,
160
164
  payload: (0, _utils.normalizeUrl)(url)
@@ -167,14 +171,14 @@ var setUrlToMedia = function setUrlToMedia(url, inputMethod) {
167
171
  var toggleLinkMarkResult = toggleLinkMark(tr, state, {
168
172
  url: url
169
173
  });
170
- fireAnalyticForMediaLink(tr, state, action, action === _analytics.ACTION.ADDED ? {
174
+ fireAnalyticForMediaLink(tr, action, action === _analytics.ACTION.ADDED ? {
171
175
  inputMethod: inputMethod
172
- } : undefined);
176
+ } : undefined, editorAnalyticsAPI);
173
177
  return toggleLinkMarkResult;
174
178
  } catch (e) {
175
- fireAnalyticForMediaLink(tr, state, _analytics.ACTION.ERRORED, {
179
+ fireAnalyticForMediaLink(tr, _analytics.ACTION.ERRORED, {
176
180
  action: action
177
- });
181
+ }, editorAnalyticsAPI);
178
182
  throw e;
179
183
  }
180
184
  });
@@ -124,7 +124,8 @@ var mediaPlugin = function mediaPlugin() {
124
124
  }, {
125
125
  name: 'mediaKeymap',
126
126
  plugin: function plugin() {
127
- return (0, _keymap3.default)(options);
127
+ var _api$dependencies$ana;
128
+ return (0, _keymap3.default)(options, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions);
128
129
  }
129
130
  }];
130
131
  if (options && options.allowMediaSingle) {
@@ -239,11 +240,11 @@ var mediaPlugin = function mediaPlugin() {
239
240
  return /*#__PURE__*/_react.default.createElement(_quickInsert.IconImages, null);
240
241
  },
241
242
  action: function action(insert, state) {
242
- var _api$dependencies$ana;
243
+ var _api$dependencies$ana2;
243
244
  var pluginState = _main.stateKey.getState(state);
244
245
  pluginState === null || pluginState === void 0 ? void 0 : pluginState.showMediaPicker();
245
246
  var tr = insert('');
246
- api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions.attachAnalyticsEvent({
247
+ api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions.attachAnalyticsEvent({
247
248
  action: _analytics.ACTION.OPENED,
248
249
  actionSubject: _analytics.ACTION_SUBJECT.PICKER,
249
250
  actionSubjectId: _analytics.ACTION_SUBJECT_ID.PICKER_CLOUD,
@@ -239,14 +239,16 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
239
239
  (_this$captionPlaceHol = _this.captionPlaceHolderRef.current) === null || _this$captionPlaceHol === void 0 ? void 0 : _this$captionPlaceHol.click();
240
240
  });
241
241
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clickPlaceholder", function () {
242
+ var _pluginInjectionApi$d, _pluginInjectionApi$d2;
242
243
  var _this$props = _this.props,
243
244
  view = _this$props.view,
244
245
  getPos = _this$props.getPos,
245
- node = _this$props.node;
246
+ node = _this$props.node,
247
+ pluginInjectionApi = _this$props.pluginInjectionApi;
246
248
  if (typeof getPos === 'boolean') {
247
249
  return;
248
250
  }
249
- (0, _captions.insertAndSelectCaptionFromMediaSinglePos)(getPos(), node)(view.state, view.dispatch);
251
+ (0, _captions.insertAndSelectCaptionFromMediaSinglePos)(pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d = pluginInjectionApi.dependencies) === null || _pluginInjectionApi$d === void 0 ? void 0 : (_pluginInjectionApi$d2 = _pluginInjectionApi$d.analytics) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions)(getPos(), node)(view.state, view.dispatch);
250
252
  });
251
253
  /**
252
254
  * Get parent width for a nested media single node
@@ -15,15 +15,15 @@ var _selection = require("@atlaskit/editor-common/selection");
15
15
  var _captions = require("../commands/captions");
16
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
- function keymapPlugin(options) {
18
+ function keymapPlugin(options, editorAnalyticsAPI) {
19
19
  var list = {};
20
20
  var _ref = options || {},
21
21
  featureFlags = _ref.featureFlags;
22
22
  keymaps.bindKeymapWithCommand(keymaps.undo.common, ignoreLinksInSteps, list);
23
23
  keymaps.bindKeymapWithCommand(keymaps.enter.common, splitMediaGroup, list);
24
24
  if ((0, _mediaCommon.getMediaFeatureFlag)('captions', featureFlags)) {
25
- keymaps.bindKeymapWithCommand(keymaps.moveDown.common, insertAndSelectCaption, list);
26
- keymaps.bindKeymapWithCommand(keymaps.tab.common, insertAndSelectCaption, list);
25
+ keymaps.bindKeymapWithCommand(keymaps.moveDown.common, insertAndSelectCaption(editorAnalyticsAPI), list);
26
+ keymaps.bindKeymapWithCommand(keymaps.tab.common, insertAndSelectCaption(editorAnalyticsAPI), list);
27
27
  keymaps.bindKeymapWithCommand(keymaps.moveLeft.common, arrowLeftFromMediaSingle(options === null || options === void 0 ? void 0 : options.editorSelectionAPI), list);
28
28
  keymaps.bindKeymapWithCommand(keymaps.moveRight.common, arrowRightFromMediaSingle(options === null || options === void 0 ? void 0 : options.editorSelectionAPI), list);
29
29
  }
@@ -39,20 +39,22 @@ var splitMediaGroup = function splitMediaGroup(state) {
39
39
  var mediaPluginState = _pluginKey.stateKey.getState(state);
40
40
  return mediaPluginState.splitMediaGroup();
41
41
  };
42
- var insertAndSelectCaption = function insertAndSelectCaption(state, dispatch) {
43
- var selection = state.selection,
44
- schema = state.schema;
45
- if (selection instanceof _state.NodeSelection && selection.node.type === schema.nodes.mediaSingle && schema.nodes.caption) {
46
- if (dispatch) {
47
- var from = selection.from,
48
- node = selection.node;
49
- if (!(0, _captions.insertAndSelectCaptionFromMediaSinglePos)(from, node)(state, dispatch)) {
50
- (0, _captions.selectCaptionFromMediaSinglePos)(from, node)(state, dispatch);
42
+ var insertAndSelectCaption = function insertAndSelectCaption(editorAnalyticsAPI) {
43
+ return function (state, dispatch) {
44
+ var selection = state.selection,
45
+ schema = state.schema;
46
+ if (selection instanceof _state.NodeSelection && selection.node.type === schema.nodes.mediaSingle && schema.nodes.caption) {
47
+ if (dispatch) {
48
+ var from = selection.from,
49
+ node = selection.node;
50
+ if (!(0, _captions.insertAndSelectCaptionFromMediaSinglePos)(editorAnalyticsAPI)(from, node)(state, dispatch)) {
51
+ (0, _captions.selectCaptionFromMediaSinglePos)(from, node)(state, dispatch);
52
+ }
51
53
  }
54
+ return true;
52
55
  }
53
- return true;
54
- }
55
- return false;
56
+ return false;
57
+ };
56
58
  };
57
59
  var arrowLeftFromMediaSingle = function arrowLeftFromMediaSingle(editorSelectionAPI) {
58
60
  return function (state, dispatch) {
@@ -70,7 +70,7 @@ var createDropPlaceholder = function createDropPlaceholder(intl, allowDropLine)
70
70
  };
71
71
  var MEDIA_RESOLVED_STATES = ['ready', 'error', 'cancelled'];
72
72
  var MediaPluginStateImplementation = /*#__PURE__*/function () {
73
- function MediaPluginStateImplementation(_state, options, mediaOptions, newInsertionBehaviour, _dispatch, pluginInjectionApi) {
73
+ function MediaPluginStateImplementation(_state, options, mediaOptions, newInsertionBehaviour, _dispatch, _pluginInjectionApi) {
74
74
  var _this = this;
75
75
  (0, _classCallCheck2.default)(this, MediaPluginStateImplementation);
76
76
  (0, _defineProperty2.default)(this, "allowsUploads", false);
@@ -222,7 +222,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
222
222
  *
223
223
  * called when we insert a new file via the picker (connected via pickerfacade)
224
224
  */
225
- (0, _defineProperty2.default)(this, "insertFile", function (mediaState, onMediaStateChanged, pickerType) {
225
+ (0, _defineProperty2.default)(this, "insertFile", function (mediaState, onMediaStateChanged, pickerType, pluginInjectionApi) {
226
226
  var _mediaState$collectio, _this$mediaOptions2;
227
227
  var state = _this.view.state;
228
228
  var mediaStateWithContext = _objectSpread(_objectSpread({}, mediaState), {}, {
@@ -245,9 +245,11 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
245
245
  var widthPluginState = (_this$pluginInjection = _this.pluginInjectionApi) === null || _this$pluginInjection === void 0 ? void 0 : _this$pluginInjection.dependencies.width.sharedState.currentState();
246
246
  (0, _mediaSingle.insertMediaSingleNode)(_this.view, mediaStateWithContext, _this.getInputMethod(pickerType), collection, _this.mediaOptions && _this.mediaOptions.alignLeftOnInsert, _this.newInsertionBehaviour, widthPluginState);
247
247
  } else if ((0, _mediaCommon2.getMediaFeatureFlag)('mediaInline', (_this$mediaOptions2 = _this.mediaOptions) === null || _this$mediaOptions2 === void 0 ? void 0 : _this$mediaOptions2.featureFlags) && !(0, _document.isInEmptyLine)(state) && (!(0, _mediaCommon.isInsidePotentialEmptyParagraph)(state) || (0, _utils3.isInListItem)(state)) && (0, _mediaFiles.canInsertMediaInline)(state)) {
248
- (0, _mediaFiles.insertMediaInlineNode)(_this.view, mediaStateWithContext, collection, _this.getInputMethod(pickerType));
248
+ var _pluginInjectionApi$d, _pluginInjectionApi$d2;
249
+ (0, _mediaFiles.insertMediaInlineNode)(pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d = pluginInjectionApi.dependencies) === null || _pluginInjectionApi$d === void 0 ? void 0 : (_pluginInjectionApi$d2 = _pluginInjectionApi$d.analytics) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions)(_this.view, mediaStateWithContext, collection, _this.getInputMethod(pickerType));
249
250
  } else {
250
- (0, _mediaFiles.insertMediaGroupNode)(_this.view, [mediaStateWithContext], collection, _this.getInputMethod(pickerType));
251
+ var _pluginInjectionApi$d3, _pluginInjectionApi$d4;
252
+ (0, _mediaFiles.insertMediaGroupNode)(pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d3 = pluginInjectionApi.dependencies) === null || _pluginInjectionApi$d3 === void 0 ? void 0 : (_pluginInjectionApi$d4 = _pluginInjectionApi$d3.analytics) === null || _pluginInjectionApi$d4 === void 0 ? void 0 : _pluginInjectionApi$d4.actions)(_this.view, [mediaStateWithContext], collection, _this.getInputMethod(pickerType));
251
253
  }
252
254
 
253
255
  // do events when media state changes
@@ -484,7 +486,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
484
486
  this.mediaOptions = mediaOptions;
485
487
  this.newInsertionBehaviour = newInsertionBehaviour;
486
488
  this.dispatch = _dispatch;
487
- this.pluginInjectionApi = pluginInjectionApi;
489
+ this.pluginInjectionApi = _pluginInjectionApi;
488
490
  this.waitForMediaUpload = options.waitForMediaUpload === undefined ? true : options.waitForMediaUpload;
489
491
  var nodes = _state.schema.nodes;
490
492
  (0, _assert.default)(nodes.media && (nodes.mediaGroup || nodes.mediaSingle), 'Editor: unable to init media plugin - media or mediaGroup/mediaSingle node absent in schema');
@@ -7,85 +7,89 @@ exports.toggleBorderMark = exports.setBorderMark = exports.removeInlineCard = ex
7
7
  var _model = require("@atlaskit/editor-prosemirror/model");
8
8
  var _state = require("@atlaskit/editor-prosemirror/state");
9
9
  var _utils = require("@atlaskit/editor-prosemirror/utils");
10
- var _analytics = require("../../analytics");
10
+ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _utils2 = require("./utils");
12
12
  var _currentMediaNode = require("../utils/current-media-node");
13
13
  var DEFAULT_BORDER_COLOR = '#091e4224';
14
14
  exports.DEFAULT_BORDER_COLOR = DEFAULT_BORDER_COLOR;
15
15
  var DEFAULT_BORDER_SIZE = 2;
16
16
  exports.DEFAULT_BORDER_SIZE = DEFAULT_BORDER_SIZE;
17
- var changeInlineToMediaCard = function changeInlineToMediaCard(state, dispatch) {
18
- var _state$schema$nodes = state.schema.nodes,
19
- media = _state$schema$nodes.media,
20
- mediaInline = _state$schema$nodes.mediaInline,
21
- mediaGroup = _state$schema$nodes.mediaGroup;
22
- var selectedNode = state.selection instanceof _state.NodeSelection && state.selection.node.type === mediaInline && state.selection.node;
23
- if (!selectedNode) {
24
- return false;
25
- }
26
- var _selectedNode$attrs = selectedNode.attrs,
27
- id = _selectedNode$attrs.id,
28
- type = _selectedNode$attrs.type,
29
- collection = _selectedNode$attrs.collection;
30
- var mediaNode = media.createChecked({
31
- id: id,
32
- type: type,
33
- collection: collection
34
- });
35
- var group = mediaGroup.createChecked({}, mediaNode);
36
- var nodePos = state.tr.doc.resolve(state.selection.from).end();
37
- var tr = state.tr;
38
- tr = (0, _utils.removeSelectedNode)(tr);
39
- tr = (0, _utils.safeInsert)(group, nodePos, true)(tr);
40
- if (dispatch) {
41
- (0, _analytics.addAnalytics)(state, tr, {
42
- action: _analytics.ACTION.CHANGED_TYPE,
43
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
44
- eventType: _analytics.EVENT_TYPE.TRACK,
45
- attributes: {
46
- newType: _analytics.ACTION_SUBJECT_ID.MEDIA_GROUP,
47
- previousType: _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE
48
- }
17
+ var changeInlineToMediaCard = function changeInlineToMediaCard(editorAnalyticsAPI) {
18
+ return function (state, dispatch) {
19
+ var _state$schema$nodes = state.schema.nodes,
20
+ media = _state$schema$nodes.media,
21
+ mediaInline = _state$schema$nodes.mediaInline,
22
+ mediaGroup = _state$schema$nodes.mediaGroup;
23
+ var selectedNode = state.selection instanceof _state.NodeSelection && state.selection.node.type === mediaInline && state.selection.node;
24
+ if (!selectedNode) {
25
+ return false;
26
+ }
27
+ var _selectedNode$attrs = selectedNode.attrs,
28
+ id = _selectedNode$attrs.id,
29
+ type = _selectedNode$attrs.type,
30
+ collection = _selectedNode$attrs.collection;
31
+ var mediaNode = media.createChecked({
32
+ id: id,
33
+ type: type,
34
+ collection: collection
49
35
  });
50
- dispatch(tr);
51
- }
52
- return true;
36
+ var group = mediaGroup.createChecked({}, mediaNode);
37
+ var nodePos = state.tr.doc.resolve(state.selection.from).end();
38
+ var tr = state.tr;
39
+ tr = (0, _utils.removeSelectedNode)(tr);
40
+ tr = (0, _utils.safeInsert)(group, nodePos, true)(tr);
41
+ if (dispatch) {
42
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
43
+ action: _analytics.ACTION.CHANGED_TYPE,
44
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
45
+ eventType: _analytics.EVENT_TYPE.TRACK,
46
+ attributes: {
47
+ newType: _analytics.ACTION_SUBJECT_ID.MEDIA_GROUP,
48
+ previousType: _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE
49
+ }
50
+ })(tr);
51
+ dispatch(tr);
52
+ }
53
+ return true;
54
+ };
53
55
  };
54
56
  exports.changeInlineToMediaCard = changeInlineToMediaCard;
55
- var changeMediaCardToInline = function changeMediaCardToInline(state, dispatch) {
56
- var _state$schema$nodes2 = state.schema.nodes,
57
- media = _state$schema$nodes2.media,
58
- mediaInline = _state$schema$nodes2.mediaInline,
59
- paragraph = _state$schema$nodes2.paragraph;
60
- var selectedNode = state.selection instanceof _state.NodeSelection && state.selection.node;
57
+ var changeMediaCardToInline = function changeMediaCardToInline(editorAnalyticsAPI) {
58
+ return function (state, dispatch) {
59
+ var _state$schema$nodes2 = state.schema.nodes,
60
+ media = _state$schema$nodes2.media,
61
+ mediaInline = _state$schema$nodes2.mediaInline,
62
+ paragraph = _state$schema$nodes2.paragraph;
63
+ var selectedNode = state.selection instanceof _state.NodeSelection && state.selection.node;
61
64
 
62
- // @ts-ignore - [unblock prosemirror bump] redundant check comparing boolean to media
63
- if (!selectedNode || !selectedNode.type === media) {
64
- return false;
65
- }
66
- var mediaInlineNode = mediaInline.create({
67
- id: selectedNode.attrs.id,
68
- collection: selectedNode.attrs.collection
69
- });
70
- var space = state.schema.text(' ');
71
- var content = _model.Fragment.from([mediaInlineNode, space]);
72
- var node = paragraph.createChecked({}, content);
73
- var nodePos = state.tr.doc.resolve(state.selection.from).start() - 1;
74
- var tr = (0, _utils2.removeMediaGroupNode)(state);
75
- tr = (0, _utils.safeInsert)(node, nodePos, true)(tr);
76
- if (dispatch) {
77
- (0, _analytics.addAnalytics)(state, tr, {
78
- action: _analytics.ACTION.CHANGED_TYPE,
79
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
80
- eventType: _analytics.EVENT_TYPE.TRACK,
81
- attributes: {
82
- newType: _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE,
83
- previousType: _analytics.ACTION_SUBJECT_ID.MEDIA_GROUP
84
- }
65
+ // @ts-ignore - [unblock prosemirror bump] redundant check comparing boolean to media
66
+ if (!selectedNode || !selectedNode.type === media) {
67
+ return false;
68
+ }
69
+ var mediaInlineNode = mediaInline.create({
70
+ id: selectedNode.attrs.id,
71
+ collection: selectedNode.attrs.collection
85
72
  });
86
- dispatch(tr);
87
- }
88
- return true;
73
+ var space = state.schema.text(' ');
74
+ var content = _model.Fragment.from([mediaInlineNode, space]);
75
+ var node = paragraph.createChecked({}, content);
76
+ var nodePos = state.tr.doc.resolve(state.selection.from).start() - 1;
77
+ var tr = (0, _utils2.removeMediaGroupNode)(state);
78
+ tr = (0, _utils.safeInsert)(node, nodePos, true)(tr);
79
+ if (dispatch) {
80
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
81
+ action: _analytics.ACTION.CHANGED_TYPE,
82
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
83
+ eventType: _analytics.EVENT_TYPE.TRACK,
84
+ attributes: {
85
+ newType: _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE,
86
+ previousType: _analytics.ACTION_SUBJECT_ID.MEDIA_GROUP
87
+ }
88
+ })(tr);
89
+ dispatch(tr);
90
+ }
91
+ return true;
92
+ };
89
93
  };
90
94
  exports.changeMediaCardToInline = changeMediaCardToInline;
91
95
  var removeInlineCard = function removeInlineCard(state, dispatch) {
@@ -98,77 +102,22 @@ var removeInlineCard = function removeInlineCard(state, dispatch) {
98
102
  return false;
99
103
  };
100
104
  exports.removeInlineCard = removeInlineCard;
101
- var toggleBorderMark = function toggleBorderMark(state, dispatch) {
102
- var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(state);
103
- if (!nodeWithPos) {
104
- return false;
105
- }
106
- var node = nodeWithPos.node,
107
- pos = nodeWithPos.pos;
108
- var borderMark = node.marks.find(function (m) {
109
- return m.type.name === 'border';
110
- });
111
- var marks = node.marks.filter(function (m) {
112
- return m.type.name !== 'border';
113
- }).concat(borderMark ? [] : state.schema.marks.border.create({
114
- color: DEFAULT_BORDER_COLOR,
115
- size: DEFAULT_BORDER_SIZE
116
- }));
117
- var tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks);
118
- tr.setMeta('scrollIntoView', false);
119
- if (state.selection instanceof _state.NodeSelection) {
120
- if (state.selection.$anchor.pos === state.selection.from) {
121
- tr.setSelection(_state.NodeSelection.create(tr.doc, state.selection.from));
122
- }
123
- }
124
- if (dispatch) {
125
- if (borderMark !== null && borderMark !== void 0 && borderMark.attrs) {
126
- (0, _analytics.addAnalytics)(state, tr, {
127
- action: _analytics.ACTION.DELETED,
128
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
129
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
130
- eventType: _analytics.EVENT_TYPE.TRACK,
131
- attributes: {
132
- previousColor: borderMark.attrs.color,
133
- previousSize: borderMark.attrs.size
134
- }
135
- });
136
- } else {
137
- (0, _analytics.addAnalytics)(state, tr, {
138
- action: _analytics.ACTION.ADDED,
139
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
140
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
141
- eventType: _analytics.EVENT_TYPE.TRACK,
142
- attributes: {
143
- color: DEFAULT_BORDER_COLOR,
144
- size: DEFAULT_BORDER_SIZE
145
- }
146
- });
147
- }
148
- dispatch(tr);
149
- }
150
- return true;
151
- };
152
- exports.toggleBorderMark = toggleBorderMark;
153
- var setBorderMark = function setBorderMark(attrs) {
105
+ var toggleBorderMark = function toggleBorderMark(editorAnalyticsAPI) {
154
106
  return function (state, dispatch) {
155
- var _node$marks$find, _ref, _attrs$color, _ref2, _attrs$size;
156
107
  var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(state);
157
108
  if (!nodeWithPos) {
158
109
  return false;
159
110
  }
160
111
  var node = nodeWithPos.node,
161
112
  pos = nodeWithPos.pos;
162
- var borderMark = (_node$marks$find = node.marks.find(function (m) {
113
+ var borderMark = node.marks.find(function (m) {
163
114
  return m.type.name === 'border';
164
- })) === null || _node$marks$find === void 0 ? void 0 : _node$marks$find.attrs;
165
- var color = (_ref = (_attrs$color = attrs.color) !== null && _attrs$color !== void 0 ? _attrs$color : borderMark === null || borderMark === void 0 ? void 0 : borderMark.color) !== null && _ref !== void 0 ? _ref : DEFAULT_BORDER_COLOR;
166
- var size = (_ref2 = (_attrs$size = attrs.size) !== null && _attrs$size !== void 0 ? _attrs$size : borderMark === null || borderMark === void 0 ? void 0 : borderMark.size) !== null && _ref2 !== void 0 ? _ref2 : DEFAULT_BORDER_SIZE;
115
+ });
167
116
  var marks = node.marks.filter(function (m) {
168
117
  return m.type.name !== 'border';
169
- }).concat(state.schema.marks.border.create({
170
- color: color,
171
- size: size
118
+ }).concat(borderMark ? [] : state.schema.marks.border.create({
119
+ color: DEFAULT_BORDER_COLOR,
120
+ size: DEFAULT_BORDER_SIZE
172
121
  }));
173
122
  var tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks);
174
123
  tr.setMeta('scrollIntoView', false);
@@ -178,21 +127,80 @@ var setBorderMark = function setBorderMark(attrs) {
178
127
  }
179
128
  }
180
129
  if (dispatch) {
181
- (0, _analytics.addAnalytics)(state, tr, {
182
- action: _analytics.ACTION.UPDATED,
183
- actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
184
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
185
- eventType: _analytics.EVENT_TYPE.TRACK,
186
- attributes: {
187
- previousColor: borderMark === null || borderMark === void 0 ? void 0 : borderMark.color,
188
- previousSize: borderMark === null || borderMark === void 0 ? void 0 : borderMark.size,
189
- newColor: color,
190
- newSize: size
191
- }
192
- });
130
+ if (borderMark !== null && borderMark !== void 0 && borderMark.attrs) {
131
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
132
+ action: _analytics.ACTION.DELETED,
133
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
134
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
135
+ eventType: _analytics.EVENT_TYPE.TRACK,
136
+ attributes: {
137
+ previousColor: borderMark.attrs.color,
138
+ previousSize: borderMark.attrs.size
139
+ }
140
+ })(tr);
141
+ } else {
142
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
143
+ action: _analytics.ACTION.ADDED,
144
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
145
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
146
+ eventType: _analytics.EVENT_TYPE.TRACK,
147
+ attributes: {
148
+ color: DEFAULT_BORDER_COLOR,
149
+ size: DEFAULT_BORDER_SIZE
150
+ }
151
+ })(tr);
152
+ }
193
153
  dispatch(tr);
194
154
  }
195
155
  return true;
196
156
  };
197
157
  };
158
+ exports.toggleBorderMark = toggleBorderMark;
159
+ var setBorderMark = function setBorderMark(editorAnalyticsAPI) {
160
+ return function (attrs) {
161
+ return function (state, dispatch) {
162
+ var _node$marks$find, _ref, _attrs$color, _ref2, _attrs$size;
163
+ var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(state);
164
+ if (!nodeWithPos) {
165
+ return false;
166
+ }
167
+ var node = nodeWithPos.node,
168
+ pos = nodeWithPos.pos;
169
+ var borderMark = (_node$marks$find = node.marks.find(function (m) {
170
+ return m.type.name === 'border';
171
+ })) === null || _node$marks$find === void 0 ? void 0 : _node$marks$find.attrs;
172
+ var color = (_ref = (_attrs$color = attrs.color) !== null && _attrs$color !== void 0 ? _attrs$color : borderMark === null || borderMark === void 0 ? void 0 : borderMark.color) !== null && _ref !== void 0 ? _ref : DEFAULT_BORDER_COLOR;
173
+ var size = (_ref2 = (_attrs$size = attrs.size) !== null && _attrs$size !== void 0 ? _attrs$size : borderMark === null || borderMark === void 0 ? void 0 : borderMark.size) !== null && _ref2 !== void 0 ? _ref2 : DEFAULT_BORDER_SIZE;
174
+ var marks = node.marks.filter(function (m) {
175
+ return m.type.name !== 'border';
176
+ }).concat(state.schema.marks.border.create({
177
+ color: color,
178
+ size: size
179
+ }));
180
+ var tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks);
181
+ tr.setMeta('scrollIntoView', false);
182
+ if (state.selection instanceof _state.NodeSelection) {
183
+ if (state.selection.$anchor.pos === state.selection.from) {
184
+ tr.setSelection(_state.NodeSelection.create(tr.doc, state.selection.from));
185
+ }
186
+ }
187
+ if (dispatch) {
188
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
189
+ action: _analytics.ACTION.UPDATED,
190
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
191
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
192
+ eventType: _analytics.EVENT_TYPE.TRACK,
193
+ attributes: {
194
+ previousColor: borderMark === null || borderMark === void 0 ? void 0 : borderMark.color,
195
+ previousSize: borderMark === null || borderMark === void 0 ? void 0 : borderMark.size,
196
+ newColor: color,
197
+ newSize: size
198
+ }
199
+ })(tr);
200
+ dispatch(tr);
201
+ }
202
+ return true;
203
+ };
204
+ };
205
+ };
198
206
  exports.setBorderMark = setBorderMark;