@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 +10 -0
- package/dist/cjs/plugin.js +2 -1
- package/dist/cjs/toolbar/comments.js +27 -0
- package/dist/cjs/toolbar/index.js +19 -11
- package/dist/es2019/plugin.js +2 -1
- package/dist/es2019/toolbar/comments.js +20 -0
- package/dist/es2019/toolbar/index.js +19 -11
- package/dist/esm/plugin.js +2 -1
- package/dist/esm/toolbar/comments.js +20 -0
- package/dist/esm/toolbar/index.js +19 -11
- package/dist/types/toolbar/comments.d.ts +5 -0
- package/dist/types-ts4.5/toolbar/comments.d.ts +5 -0
- package/package.json +3 -3
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
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -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
|
|
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$
|
|
425
|
+
var _pluginInjectionApi$a7;
|
|
417
426
|
var tr = editorView.state.tr,
|
|
418
427
|
dispatch = editorView.dispatch;
|
|
419
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$
|
|
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$
|
|
446
|
-
toolbarButtons.push((0, _altText2.altTextButton)(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$
|
|
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$
|
|
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$
|
|
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
|
|
565
|
+
items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi);
|
|
558
566
|
}
|
|
559
567
|
var assistiveMessage = '';
|
|
560
568
|
var selectedMediaSingleNode = (0, _utils2.getSelectedMediaSingle)(state);
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -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
|
|
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$
|
|
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$
|
|
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$
|
|
449
|
-
toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$
|
|
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$
|
|
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$
|
|
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
|
|
566
|
+
items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, pluginInjectionApi);
|
|
559
567
|
}
|
|
560
568
|
var assistiveMessage = '';
|
|
561
569
|
const selectedMediaSingleNode = getSelectedMediaSingle(state);
|
package/dist/esm/plugin.js
CHANGED
|
@@ -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
|
|
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$
|
|
415
|
+
var _pluginInjectionApi$a7;
|
|
407
416
|
var tr = editorView.state.tr,
|
|
408
417
|
dispatch = editorView.dispatch;
|
|
409
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$
|
|
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$
|
|
436
|
-
toolbarButtons.push(altTextButton(intl, state, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$
|
|
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$
|
|
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$
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|