@atlaskit/editor-plugin-media 1.2.3 → 1.3.0

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,15 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 1.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#75635](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/75635) [`af4972f3a9bb`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/af4972f3a9bb) - [ux] Added comment button for media single floating toolbar
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+
3
13
  ## 1.2.3
4
14
 
5
15
  ### Patch Changes
@@ -279,7 +279,8 @@ var mediaPlugin = exports.mediaPlugin = function mediaPlugin(_ref2) {
279
279
  allowAltTextOnImages: options && options.allowAltTextOnImages,
280
280
  altTextValidator: options && options.altTextValidator,
281
281
  fullWidthEnabled: options && options.fullWidthEnabled,
282
- allowMediaInlineImages: options && options.allowMediaInlineImages
282
+ allowMediaInlineImages: options && options.allowMediaInlineImages,
283
+ getEditorFeatureFlags: options && options.getEditorFeatureFlags
283
284
  }, api);
284
285
  }
285
286
  }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.commentButton = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
10
+ var _media = require("@atlaskit/editor-common/media");
11
+ var _comment = _interopRequireDefault(require("@atlaskit/icon/glyph/comment"));
12
+ var commentButton = exports.commentButton = function commentButton(intl, state, editorAnalyticsAPI) {
13
+ var title = intl.formatMessage(_media.commentMessages.addCommentOnMedia);
14
+ var onClickHandler = function onClickHandler() {
15
+ return true;
16
+ };
17
+ return {
18
+ type: 'button',
19
+ testId: 'add-comment-media-button',
20
+ icon: _comment.default,
21
+ title: title,
22
+ onClick: onClickHandler,
23
+ tooltipContent: /*#__PURE__*/_react.default.createElement(_keymaps.ToolTipContent, {
24
+ description: title
25
+ })
26
+ };
27
+ };
@@ -34,6 +34,7 @@ var _currentMediaNode = require("../utils/current-media-node");
34
34
  var _mediaSingle2 = require("../utils/media-single");
35
35
  var _altText2 = require("./alt-text");
36
36
  var _commands = require("./commands");
37
+ var _comments = require("./comments");
37
38
  var _filePreviewItem = require("./filePreviewItem");
38
39
  var _imageBorder = require("./imageBorder");
39
40
  var _layoutGroup = require("./layout-group");
@@ -166,7 +167,7 @@ var generateMediaCardFloatingToolbar = function generateMediaCardFloatingToolbar
166
167
  });
167
168
  return items;
168
169
  };
169
- var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags) {
170
+ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi) {
170
171
  var _pluginInjectionApi$d, _pluginInjectionApi$d2;
171
172
  var mediaSingle = state.schema.nodes.mediaSingle;
172
173
  var allowResizing = options.allowResizing,
@@ -175,7 +176,9 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
175
176
  allowResizingInTables = options.allowResizingInTables,
176
177
  allowAltTextOnImages = options.allowAltTextOnImages,
177
178
  allowMediaInline = options.allowMediaInline,
178
- allowMediaInlineImages = options.allowMediaInlineImages;
179
+ allowMediaInlineImages = options.allowMediaInlineImages,
180
+ getEditorFeatureFlags = options.getEditorFeatureFlags;
181
+ var editorFeatureFlags = getEditorFeatureFlags ? getEditorFeatureFlags() : undefined;
179
182
  var toolbarButtons = [];
180
183
  var _ref = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {},
181
184
  hoverDecoration = _ref.hoverDecoration;
@@ -398,6 +401,12 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
398
401
  type: 'separator'
399
402
  });
400
403
  }
404
+ if (editorFeatureFlags && editorFeatureFlags.commentsOnMedia) {
405
+ var _pluginInjectionApi$a6;
406
+ toolbarButtons.push((0, _comments.commentButton)(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 ? void 0 : _pluginInjectionApi$a6.actions), {
407
+ type: 'separator'
408
+ });
409
+ }
401
410
  if (allowLinking && (0, _linking3.shouldShowMediaLinkToolbar)(state)) {
402
411
  toolbarButtons.push({
403
412
  type: 'custom',
@@ -413,10 +422,10 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
413
422
  };
414
423
  var openLink = function openLink() {
415
424
  if (editorView) {
416
- var _pluginInjectionApi$a6;
425
+ var _pluginInjectionApi$a7;
417
426
  var tr = editorView.state.tr,
418
427
  dispatch = editorView.dispatch;
419
- pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 || _pluginInjectionApi$a6.actions.attachAnalyticsEvent({
428
+ pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 || _pluginInjectionApi$a7.actions.attachAnalyticsEvent({
420
429
  eventType: _analytics.EVENT_TYPE.TRACK,
421
430
  action: _analytics.ACTION.VISITED,
422
431
  actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
@@ -442,8 +451,8 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
442
451
  }
443
452
  }
444
453
  if (allowAltTextOnImages) {
445
- var _pluginInjectionApi$a7;
446
- toolbarButtons.push((0, _altText2.altTextButton)(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 ? void 0 : _pluginInjectionApi$a7.actions), {
454
+ var _pluginInjectionApi$a8;
455
+ toolbarButtons.push((0, _altText2.altTextButton)(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions), {
447
456
  type: 'separator'
448
457
  });
449
458
  }
@@ -493,8 +502,7 @@ var floatingToolbar = exports.floatingToolbar = function floatingToolbar(state,
493
502
  allowAltTextOnImages = options.allowAltTextOnImages,
494
503
  providerFactory = options.providerFactory,
495
504
  allowMediaInline = options.allowMediaInline,
496
- allowResizing = options.allowResizing,
497
- getEditorFeatureFlags = options.getEditorFeatureFlags;
505
+ allowResizing = options.allowResizing;
498
506
  var mediaPluginState = _pluginKey.stateKey.getState(state);
499
507
  var mediaLinkingState = (0, _linking2.getMediaLinkingState)(state);
500
508
  var _ref3 = (_pluginInjectionApi$d3 = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d4 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d4 === void 0 ? void 0 : _pluginInjectionApi$d4.actions) !== null && _pluginInjectionApi$d3 !== void 0 ? _pluginInjectionApi$d3 : {},
@@ -533,14 +541,14 @@ var floatingToolbar = exports.floatingToolbar = function floatingToolbar(state,
533
541
  selectedNodeType = state.selection.node.type;
534
542
  }
535
543
  if (allowMediaInline && (parentMediaGroupNode === null || parentMediaGroupNode === void 0 ? void 0 : parentMediaGroupNode.node.type) === mediaGroup) {
536
- var _pluginInjectionApi$a8, _pluginInjectionApi$f2;
544
+ var _pluginInjectionApi$a9, _pluginInjectionApi$f2;
537
545
  var mediaOffset = state.selection.$from.parentOffset + 1;
538
546
  baseToolbar.getDomRef = function () {
539
547
  var _mediaPluginState$ele;
540
548
  var selector = (0, _mediaFilmstrip.mediaFilmstripItemDOMSelector)(mediaOffset);
541
549
  return (_mediaPluginState$ele = mediaPluginState.element) === null || _mediaPluginState$ele === void 0 ? void 0 : _mediaPluginState$ele.querySelector(selector);
542
550
  };
543
- items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f2 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f2 === void 0 || (_pluginInjectionApi$f2 = _pluginInjectionApi$f2.actions) === null || _pluginInjectionApi$f2 === void 0 ? void 0 : _pluginInjectionApi$f2.forceFocusSelector);
551
+ items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a9 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a9 === void 0 ? void 0 : _pluginInjectionApi$a9.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f2 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f2 === void 0 || (_pluginInjectionApi$f2 = _pluginInjectionApi$f2.actions) === null || _pluginInjectionApi$f2 === void 0 ? void 0 : _pluginInjectionApi$f2.forceFocusSelector);
544
552
  } else if (allowMediaInline && selectedNodeType && selectedNodeType === mediaInline) {
545
553
  baseToolbar.getDomRef = function () {
546
554
  var _mediaPluginState$ele2;
@@ -554,7 +562,7 @@ var floatingToolbar = exports.floatingToolbar = function floatingToolbar(state,
554
562
  var element = (_mediaPluginState$ele3 = mediaPluginState.element) === null || _mediaPluginState$ele3 === void 0 ? void 0 : _mediaPluginState$ele3.querySelector(".".concat(_styles.MediaSingleNodeSelector));
555
563
  return element || mediaPluginState.element;
556
564
  };
557
- items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags);
565
+ items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi);
558
566
  }
559
567
  var assistiveMessage = '';
560
568
  var selectedMediaSingleNode = (0, _utils2.getSelectedMediaSingle)(state);
@@ -272,7 +272,8 @@ export const mediaPlugin = ({
272
272
  allowAltTextOnImages: options && options.allowAltTextOnImages,
273
273
  altTextValidator: options && options.altTextValidator,
274
274
  fullWidthEnabled: options && options.fullWidthEnabled,
275
- allowMediaInlineImages: options && options.allowMediaInlineImages
275
+ allowMediaInlineImages: options && options.allowMediaInlineImages,
276
+ getEditorFeatureFlags: options && options.getEditorFeatureFlags
276
277
  }, api)
277
278
  }
278
279
  };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ToolTipContent } from '@atlaskit/editor-common/keymaps';
3
+ import { commentMessages as messages } from '@atlaskit/editor-common/media';
4
+ import CommentIcon from '@atlaskit/icon/glyph/comment';
5
+ export const commentButton = (intl, state, editorAnalyticsAPI) => {
6
+ const title = intl.formatMessage(messages.addCommentOnMedia);
7
+ const onClickHandler = () => {
8
+ return true;
9
+ };
10
+ return {
11
+ type: 'button',
12
+ testId: 'add-comment-media-button',
13
+ icon: CommentIcon,
14
+ title,
15
+ onClick: onClickHandler,
16
+ tooltipContent: /*#__PURE__*/React.createElement(ToolTipContent, {
17
+ description: title
18
+ })
19
+ };
20
+ };
@@ -24,6 +24,7 @@ import { currentMediaOrInlineNodeBorderMark } from '../utils/current-media-node'
24
24
  import { isVideo } from '../utils/media-single';
25
25
  import { altTextButton, getAltTextToolbar } from './alt-text';
26
26
  import { changeMediaCardToInline, changeMediaSingleToMediaInline, setBorderMark, toggleBorderMark, updateMediaSingleWidth } from './commands';
27
+ import { commentButton } from './comments';
27
28
  import { FilePreviewItem } from './filePreviewItem';
28
29
  import { shouldShowImageBorder } from './imageBorder';
29
30
  import { LayoutGroup } from './layout-group';
@@ -152,7 +153,7 @@ const generateMediaCardFloatingToolbar = (state, intl, mediaPluginState, hoverDe
152
153
  });
153
154
  return items;
154
155
  };
155
- const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags) => {
156
+ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi) => {
156
157
  var _pluginInjectionApi$d, _pluginInjectionApi$d2;
157
158
  const {
158
159
  mediaSingle
@@ -164,8 +165,10 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
164
165
  allowResizingInTables,
165
166
  allowAltTextOnImages,
166
167
  allowMediaInline,
167
- allowMediaInlineImages
168
+ allowMediaInlineImages,
169
+ getEditorFeatureFlags
168
170
  } = options;
171
+ const editorFeatureFlags = getEditorFeatureFlags ? getEditorFeatureFlags() : undefined;
169
172
  let toolbarButtons = [];
170
173
  const {
171
174
  hoverDecoration
@@ -395,6 +398,12 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
395
398
  type: 'separator'
396
399
  });
397
400
  }
401
+ if (editorFeatureFlags && editorFeatureFlags.commentsOnMedia) {
402
+ var _pluginInjectionApi$a6;
403
+ toolbarButtons.push(commentButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 ? void 0 : _pluginInjectionApi$a6.actions), {
404
+ type: 'separator'
405
+ });
406
+ }
398
407
  if (allowLinking && shouldShowMediaLinkToolbar(state)) {
399
408
  toolbarButtons.push({
400
409
  type: 'custom',
@@ -412,14 +421,14 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
412
421
  };
413
422
  const openLink = () => {
414
423
  if (editorView) {
415
- var _pluginInjectionApi$a6;
424
+ var _pluginInjectionApi$a7;
416
425
  const {
417
426
  state: {
418
427
  tr
419
428
  },
420
429
  dispatch
421
430
  } = editorView;
422
- pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 ? void 0 : _pluginInjectionApi$a6.actions.attachAnalyticsEvent({
431
+ pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 ? void 0 : _pluginInjectionApi$a7.actions.attachAnalyticsEvent({
423
432
  eventType: EVENT_TYPE.TRACK,
424
433
  action: ACTION.VISITED,
425
434
  actionSubject: ACTION_SUBJECT.MEDIA,
@@ -445,8 +454,8 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
445
454
  }
446
455
  }
447
456
  if (allowAltTextOnImages) {
448
- var _pluginInjectionApi$a7;
449
- toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 ? void 0 : _pluginInjectionApi$a7.actions), {
457
+ var _pluginInjectionApi$a8;
458
+ toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions), {
450
459
  type: 'separator'
451
460
  });
452
461
  }
@@ -494,8 +503,7 @@ export const floatingToolbar = (state, intl, options = {}, pluginInjectionApi) =
494
503
  allowAltTextOnImages,
495
504
  providerFactory,
496
505
  allowMediaInline,
497
- allowResizing,
498
- getEditorFeatureFlags
506
+ allowResizing
499
507
  } = options;
500
508
  const mediaPluginState = stateKey.getState(state);
501
509
  const mediaLinkingState = getMediaLinkingState(state);
@@ -534,14 +542,14 @@ export const floatingToolbar = (state, intl, options = {}, pluginInjectionApi) =
534
542
  selectedNodeType = state.selection.node.type;
535
543
  }
536
544
  if (allowMediaInline && (parentMediaGroupNode === null || parentMediaGroupNode === void 0 ? void 0 : parentMediaGroupNode.node.type) === mediaGroup) {
537
- var _pluginInjectionApi$a8, _pluginInjectionApi$f3, _pluginInjectionApi$f4;
545
+ var _pluginInjectionApi$a9, _pluginInjectionApi$f3, _pluginInjectionApi$f4;
538
546
  const mediaOffset = state.selection.$from.parentOffset + 1;
539
547
  baseToolbar.getDomRef = () => {
540
548
  var _mediaPluginState$ele;
541
549
  const selector = mediaFilmstripItemDOMSelector(mediaOffset);
542
550
  return (_mediaPluginState$ele = mediaPluginState.element) === null || _mediaPluginState$ele === void 0 ? void 0 : _mediaPluginState$ele.querySelector(selector);
543
551
  };
544
- items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$f3 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f3 === void 0 ? void 0 : (_pluginInjectionApi$f4 = _pluginInjectionApi$f3.actions) === null || _pluginInjectionApi$f4 === void 0 ? void 0 : _pluginInjectionApi$f4.forceFocusSelector);
552
+ items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a9 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a9 === void 0 ? void 0 : _pluginInjectionApi$a9.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$f3 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f3 === void 0 ? void 0 : (_pluginInjectionApi$f4 = _pluginInjectionApi$f3.actions) === null || _pluginInjectionApi$f4 === void 0 ? void 0 : _pluginInjectionApi$f4.forceFocusSelector);
545
553
  } else if (allowMediaInline && selectedNodeType && selectedNodeType === mediaInline) {
546
554
  baseToolbar.getDomRef = () => {
547
555
  var _mediaPluginState$ele2;
@@ -555,7 +563,7 @@ export const floatingToolbar = (state, intl, options = {}, pluginInjectionApi) =
555
563
  const element = (_mediaPluginState$ele3 = mediaPluginState.element) === null || _mediaPluginState$ele3 === void 0 ? void 0 : _mediaPluginState$ele3.querySelector(`.${MediaSingleNodeSelector}`);
556
564
  return element || mediaPluginState.element;
557
565
  };
558
- items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags);
566
+ items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi);
559
567
  }
560
568
  var assistiveMessage = '';
561
569
  const selectedMediaSingleNode = getSelectedMediaSingle(state);
@@ -268,7 +268,8 @@ export var mediaPlugin = function mediaPlugin(_ref2) {
268
268
  allowAltTextOnImages: options && options.allowAltTextOnImages,
269
269
  altTextValidator: options && options.altTextValidator,
270
270
  fullWidthEnabled: options && options.fullWidthEnabled,
271
- allowMediaInlineImages: options && options.allowMediaInlineImages
271
+ allowMediaInlineImages: options && options.allowMediaInlineImages,
272
+ getEditorFeatureFlags: options && options.getEditorFeatureFlags
272
273
  }, api);
273
274
  }
274
275
  }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ToolTipContent } from '@atlaskit/editor-common/keymaps';
3
+ import { commentMessages as messages } from '@atlaskit/editor-common/media';
4
+ import CommentIcon from '@atlaskit/icon/glyph/comment';
5
+ export var commentButton = function commentButton(intl, state, editorAnalyticsAPI) {
6
+ var title = intl.formatMessage(messages.addCommentOnMedia);
7
+ var onClickHandler = function onClickHandler() {
8
+ return true;
9
+ };
10
+ return {
11
+ type: 'button',
12
+ testId: 'add-comment-media-button',
13
+ icon: CommentIcon,
14
+ title: title,
15
+ onClick: onClickHandler,
16
+ tooltipContent: /*#__PURE__*/React.createElement(ToolTipContent, {
17
+ description: title
18
+ })
19
+ };
20
+ };
@@ -28,6 +28,7 @@ import { currentMediaOrInlineNodeBorderMark } from '../utils/current-media-node'
28
28
  import { isVideo } from '../utils/media-single';
29
29
  import { altTextButton, getAltTextToolbar } from './alt-text';
30
30
  import { changeMediaCardToInline, changeMediaSingleToMediaInline, setBorderMark, toggleBorderMark, updateMediaSingleWidth } from './commands';
31
+ import { commentButton } from './comments';
31
32
  import { FilePreviewItem } from './filePreviewItem';
32
33
  import { shouldShowImageBorder } from './imageBorder';
33
34
  import { LayoutGroup } from './layout-group';
@@ -156,7 +157,7 @@ var generateMediaCardFloatingToolbar = function generateMediaCardFloatingToolbar
156
157
  });
157
158
  return items;
158
159
  };
159
- var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags) {
160
+ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState, pluginInjectionApi) {
160
161
  var _pluginInjectionApi$d, _pluginInjectionApi$d2;
161
162
  var mediaSingle = state.schema.nodes.mediaSingle;
162
163
  var allowResizing = options.allowResizing,
@@ -165,7 +166,9 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
165
166
  allowResizingInTables = options.allowResizingInTables,
166
167
  allowAltTextOnImages = options.allowAltTextOnImages,
167
168
  allowMediaInline = options.allowMediaInline,
168
- allowMediaInlineImages = options.allowMediaInlineImages;
169
+ allowMediaInlineImages = options.allowMediaInlineImages,
170
+ getEditorFeatureFlags = options.getEditorFeatureFlags;
171
+ var editorFeatureFlags = getEditorFeatureFlags ? getEditorFeatureFlags() : undefined;
169
172
  var toolbarButtons = [];
170
173
  var _ref = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {},
171
174
  hoverDecoration = _ref.hoverDecoration;
@@ -388,6 +391,12 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
388
391
  type: 'separator'
389
392
  });
390
393
  }
394
+ if (editorFeatureFlags && editorFeatureFlags.commentsOnMedia) {
395
+ var _pluginInjectionApi$a6;
396
+ toolbarButtons.push(commentButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 ? void 0 : _pluginInjectionApi$a6.actions), {
397
+ type: 'separator'
398
+ });
399
+ }
391
400
  if (allowLinking && shouldShowMediaLinkToolbar(state)) {
392
401
  toolbarButtons.push({
393
402
  type: 'custom',
@@ -403,10 +412,10 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
403
412
  };
404
413
  var openLink = function openLink() {
405
414
  if (editorView) {
406
- var _pluginInjectionApi$a6;
415
+ var _pluginInjectionApi$a7;
407
416
  var tr = editorView.state.tr,
408
417
  dispatch = editorView.dispatch;
409
- pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a6 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a6 === void 0 || _pluginInjectionApi$a6.actions.attachAnalyticsEvent({
418
+ pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 || _pluginInjectionApi$a7.actions.attachAnalyticsEvent({
410
419
  eventType: EVENT_TYPE.TRACK,
411
420
  action: ACTION.VISITED,
412
421
  actionSubject: ACTION_SUBJECT.MEDIA,
@@ -432,8 +441,8 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
432
441
  }
433
442
  }
434
443
  if (allowAltTextOnImages) {
435
- var _pluginInjectionApi$a7;
436
- toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a7 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a7 === void 0 ? void 0 : _pluginInjectionApi$a7.actions), {
444
+ var _pluginInjectionApi$a8;
445
+ toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions), {
437
446
  type: 'separator'
438
447
  });
439
448
  }
@@ -483,8 +492,7 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
483
492
  allowAltTextOnImages = options.allowAltTextOnImages,
484
493
  providerFactory = options.providerFactory,
485
494
  allowMediaInline = options.allowMediaInline,
486
- allowResizing = options.allowResizing,
487
- getEditorFeatureFlags = options.getEditorFeatureFlags;
495
+ allowResizing = options.allowResizing;
488
496
  var mediaPluginState = stateKey.getState(state);
489
497
  var mediaLinkingState = getMediaLinkingState(state);
490
498
  var _ref3 = (_pluginInjectionApi$d3 = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d4 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d4 === void 0 ? void 0 : _pluginInjectionApi$d4.actions) !== null && _pluginInjectionApi$d3 !== void 0 ? _pluginInjectionApi$d3 : {},
@@ -523,14 +531,14 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
523
531
  selectedNodeType = state.selection.node.type;
524
532
  }
525
533
  if (allowMediaInline && (parentMediaGroupNode === null || parentMediaGroupNode === void 0 ? void 0 : parentMediaGroupNode.node.type) === mediaGroup) {
526
- var _pluginInjectionApi$a8, _pluginInjectionApi$f2;
534
+ var _pluginInjectionApi$a9, _pluginInjectionApi$f2;
527
535
  var mediaOffset = state.selection.$from.parentOffset + 1;
528
536
  baseToolbar.getDomRef = function () {
529
537
  var _mediaPluginState$ele;
530
538
  var selector = mediaFilmstripItemDOMSelector(mediaOffset);
531
539
  return (_mediaPluginState$ele = mediaPluginState.element) === null || _mediaPluginState$ele === void 0 ? void 0 : _mediaPluginState$ele.querySelector(selector);
532
540
  };
533
- items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a8 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a8 === void 0 ? void 0 : _pluginInjectionApi$a8.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f2 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f2 === void 0 || (_pluginInjectionApi$f2 = _pluginInjectionApi$f2.actions) === null || _pluginInjectionApi$f2 === void 0 ? void 0 : _pluginInjectionApi$f2.forceFocusSelector);
541
+ items = generateMediaCardFloatingToolbar(state, intl, mediaPluginState, hoverDecoration, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a9 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a9 === void 0 ? void 0 : _pluginInjectionApi$a9.actions, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f2 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f2 === void 0 || (_pluginInjectionApi$f2 = _pluginInjectionApi$f2.actions) === null || _pluginInjectionApi$f2 === void 0 ? void 0 : _pluginInjectionApi$f2.forceFocusSelector);
534
542
  } else if (allowMediaInline && selectedNodeType && selectedNodeType === mediaInline) {
535
543
  baseToolbar.getDomRef = function () {
536
544
  var _mediaPluginState$ele2;
@@ -544,7 +552,7 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
544
552
  var element = (_mediaPluginState$ele3 = mediaPluginState.element) === null || _mediaPluginState$ele3 === void 0 ? void 0 : _mediaPluginState$ele3.querySelector(".".concat(MediaSingleNodeSelector));
545
553
  return element || mediaPluginState.element;
546
554
  };
547
- items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi, getEditorFeatureFlags);
555
+ items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi);
548
556
  }
549
557
  var assistiveMessage = '';
550
558
  var selectedMediaSingleNode = getSelectedMediaSingle(state);
@@ -0,0 +1,5 @@
1
+ import type { IntlShape } from 'react-intl-next';
2
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
3
+ import type { Command, FloatingToolbarButton } from '@atlaskit/editor-common/types';
4
+ import type { EditorState } from '@atlaskit/editor-prosemirror/state';
5
+ export declare const commentButton: (intl: IntlShape, state: EditorState, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarButton<Command>;
@@ -0,0 +1,5 @@
1
+ import type { IntlShape } from 'react-intl-next';
2
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
3
+ import type { Command, FloatingToolbarButton } from '@atlaskit/editor-common/types';
4
+ import type { EditorState } from '@atlaskit/editor-prosemirror/state';
5
+ export declare const commentButton: (intl: IntlShape, state: EditorState, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarButton<Command>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-media",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "Media plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -37,7 +37,7 @@
37
37
  "@atlaskit/analytics-namespaced-context": "^6.9.0",
38
38
  "@atlaskit/analytics-next": "^9.2.0",
39
39
  "@atlaskit/button": "^17.6.0",
40
- "@atlaskit/editor-common": "^78.7.0",
40
+ "@atlaskit/editor-common": "^78.8.0",
41
41
  "@atlaskit/editor-palette": "1.5.2",
42
42
  "@atlaskit/editor-plugin-analytics": "^1.0.0",
43
43
  "@atlaskit/editor-plugin-decorations": "^1.0.0",
@@ -62,7 +62,7 @@
62
62
  "@atlaskit/media-ui": "^25.2.0",
63
63
  "@atlaskit/media-viewer": "^48.2.0",
64
64
  "@atlaskit/platform-feature-flags": "^0.2.0",
65
- "@atlaskit/primitives": "^3.0.0",
65
+ "@atlaskit/primitives": "^3.1.0",
66
66
  "@atlaskit/textfield": "^6.0.0",
67
67
  "@atlaskit/theme": "^12.6.0",
68
68
  "@atlaskit/tokens": "^1.38.0",