@atlaskit/media-card 73.6.0 → 73.7.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/root/card/cardAnalytics.js +1 -25
  3. package/dist/cjs/root/card/index.js +6 -4
  4. package/dist/cjs/root/cardView.js +1 -4
  5. package/dist/cjs/root/inlinePlayer.js +3 -1
  6. package/dist/cjs/root/ui/styled.js +1 -1
  7. package/dist/cjs/root/ui/titleBox/styled.js +1 -1
  8. package/dist/cjs/types.js +0 -1
  9. package/dist/cjs/utils/analytics.js +15 -1
  10. package/dist/cjs/utils/getMediaCardCursor.js +5 -2
  11. package/dist/cjs/utils/ufoExperiences.js +12 -12
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/root/card/cardAnalytics.js +0 -11
  14. package/dist/es2019/root/card/index.js +8 -6
  15. package/dist/es2019/root/cardView.js +1 -3
  16. package/dist/es2019/root/inlinePlayer.js +3 -1
  17. package/dist/es2019/root/ui/styled.js +1 -1
  18. package/dist/es2019/root/ui/titleBox/styled.js +2 -0
  19. package/dist/es2019/types.js +0 -1
  20. package/dist/es2019/utils/analytics.js +12 -1
  21. package/dist/es2019/utils/getMediaCardCursor.js +6 -2
  22. package/dist/es2019/utils/ufoExperiences.js +13 -13
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/root/card/cardAnalytics.js +0 -15
  25. package/dist/esm/root/card/index.js +8 -6
  26. package/dist/esm/root/cardView.js +1 -3
  27. package/dist/esm/root/inlinePlayer.js +3 -1
  28. package/dist/esm/root/ui/styled.js +1 -1
  29. package/dist/esm/root/ui/titleBox/styled.js +1 -1
  30. package/dist/esm/types.js +0 -1
  31. package/dist/esm/utils/analytics.js +12 -1
  32. package/dist/esm/utils/getMediaCardCursor.js +6 -2
  33. package/dist/esm/utils/ufoExperiences.js +13 -13
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/index.d.ts +5 -0
  36. package/dist/types/root/card/cardAnalytics.d.ts +0 -10
  37. package/dist/types/root/cardView.d.ts +1 -1
  38. package/dist/types/root/inlinePlayer.d.ts +1 -0
  39. package/dist/types/root/ui/styled.d.ts +1 -1
  40. package/dist/types/types.d.ts +0 -1
  41. package/dist/types/utils/analytics.d.ts +2 -0
  42. package/dist/types/utils/getMediaCardCursor.d.ts +4 -1
  43. package/dist/types/utils/ufoExperiences.d.ts +2 -2
  44. package/example-helpers/index.tsx +20 -9
  45. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 73.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bfde909c9b4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bfde909c9b4) - Add new feature flag mediaUploadApiV2
8
+ - [`ed6cdd2d397`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ed6cdd2d397) - added onfullscreenchange property to media to avoid triggering table resizing when media is in full screen mode
9
+
10
+ ### Patch Changes
11
+
12
+ - [`35e43fcc798`](https://bitbucket.org/atlassian/atlassian-frontend/commits/35e43fcc798) - Minor bug fix for feature flag names in experience parameters
13
+ - [`83036ef87f1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/83036ef87f1) - fix mouse cursor style when hovered over linked image
14
+ - [`c3d85388bc6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c3d85388bc6) - fix media card titlebox cursor
15
+ - [`c2ede50a80a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c2ede50a80a) - Add media region and environment returned from media API response into failed analytic events.
16
+ - [`e21e5c271b7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e21e5c271b7) - Enabled UFO logger for all examples of Media-Card
17
+ - Updated dependencies
18
+
3
19
  ## 73.6.0
4
20
 
5
21
  ### Minor Changes
@@ -3,34 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getRelevantFeatureFlagNames = exports.getRelevantFeatureFlagKeysWithAllProducts = exports.fireScreenEvent = exports.fireOperationalEvent = exports.fireCopiedEvent = exports.fireCommencedEvent = exports.REQUIRED_FEATURE_FLAGS = void 0;
7
-
8
- var _mediaCommon = require("@atlaskit/media-common");
6
+ exports.fireScreenEvent = exports.fireOperationalEvent = exports.fireCopiedEvent = exports.fireCommencedEvent = void 0;
9
7
 
10
8
  var _analytics = require("../../utils/analytics");
11
9
 
12
- var REQUIRED_FEATURE_FLAGS = {
13
- newCardExperience: true,
14
- captions: true,
15
- timestampOnVideo: true,
16
- observedWidth: true,
17
- mediaInline: false,
18
- folderUploads: false
19
- };
20
- exports.REQUIRED_FEATURE_FLAGS = REQUIRED_FEATURE_FLAGS;
21
-
22
- var getRelevantFeatureFlagNames = function getRelevantFeatureFlagNames() {
23
- return (0, _mediaCommon.filterFeatureFlagNames)(REQUIRED_FEATURE_FLAGS);
24
- };
25
-
26
- exports.getRelevantFeatureFlagNames = getRelevantFeatureFlagNames;
27
-
28
- var getRelevantFeatureFlagKeysWithAllProducts = function getRelevantFeatureFlagKeysWithAllProducts() {
29
- return (0, _mediaCommon.filterFeatureFlagKeysAllProducts)(REQUIRED_FEATURE_FLAGS);
30
- };
31
-
32
- exports.getRelevantFeatureFlagKeysWithAllProducts = getRelevantFeatureFlagKeysWithAllProducts;
33
-
34
10
  var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) {
35
11
  var fireEvent = function fireEvent(payload) {
36
12
  return (0, _analytics.fireMediaCardEvent)(payload, createAnalyticsEvent);
@@ -476,7 +476,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
476
476
  dimensions = _this$props7.dimensions,
477
477
  selected = _this$props7.selected,
478
478
  testId = _this$props7.testId,
479
- originalDimensions = _this$props7.originalDimensions;
479
+ originalDimensions = _this$props7.originalDimensions,
480
+ onFullscreenChange = _this$props7.onFullscreenChange;
480
481
  var _this$state = _this.state,
481
482
  shouldAutoplay = _this$state.shouldAutoplay,
482
483
  cardPreview = _this$state.cardPreview;
@@ -486,6 +487,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
486
487
  originalDimensions: originalDimensions,
487
488
  identifier: identifier,
488
489
  autoplay: !!shouldAutoplay,
490
+ onFullscreenChange: onFullscreenChange,
489
491
  onError: _this.onInlinePlayerError,
490
492
  onClick: _this.onClick,
491
493
  selected: selected,
@@ -977,7 +979,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
977
979
  error = _this$state7.error;
978
980
  var createAnalyticsEvent = this.props.createAnalyticsEvent;
979
981
  createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
980
- (0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, (0, _cardAnalytics.getRelevantFeatureFlagKeysWithAllProducts)(), error);
982
+ (0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
981
983
  }
982
984
  }, {
983
985
  key: "fireCommencedEvent",
@@ -989,7 +991,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
989
991
  durationSincePageStart: this.timeElapsedTillCommenced
990
992
  }
991
993
  });
992
- (0, _ufoExperiences.startUfoExperience)(this.internalOccurrenceKey, (0, _cardAnalytics.getRelevantFeatureFlagKeysWithAllProducts)());
994
+ (0, _ufoExperiences.startUfoExperience)(this.internalOccurrenceKey);
993
995
  }
994
996
  }, {
995
997
  key: "actions",
@@ -1051,7 +1053,7 @@ var Card = (0, _mediaCommon.withMediaAnalyticsContext)({
1051
1053
  componentName: 'mediaCard',
1052
1054
  component: 'mediaCard'
1053
1055
  }, {
1054
- filterFeatureFlags: (0, _cardAnalytics.getRelevantFeatureFlagNames)()
1056
+ filterFeatureFlags: _analytics.LOGGED_FEATURE_FLAGS
1055
1057
  })((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardBase, {
1056
1058
  enforceContext: false
1057
1059
  })));
@@ -83,8 +83,6 @@ var _cardConstants = require("./card/cardConstants");
83
83
 
84
84
  var _errors = require("../errors");
85
85
 
86
- var _types = require("../types");
87
-
88
86
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
89
87
 
90
88
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -625,8 +623,7 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
625
623
 
626
624
  exports.CardViewBase = CardViewBase;
627
625
  (0, _defineProperty2.default)(CardViewBase, "defaultProps", {
628
- appearance: 'auto',
629
- mediaCardCursor: _types.MediaCardCursor.NoAction
626
+ appearance: 'auto'
630
627
  });
631
628
  var CardView = (0, _analyticsNext.withAnalyticsEvents)({
632
629
  onClick: (0, _analytics.createAndFireMediaCardEvent)({
@@ -332,7 +332,8 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
332
332
  identifier = _this$props4.identifier,
333
333
  forwardRef = _this$props4.forwardRef,
334
334
  autoplay = _this$props4.autoplay,
335
- cardPreview = _this$props4.cardPreview;
335
+ cardPreview = _this$props4.cardPreview,
336
+ onFullscreenChange = _this$props4.onFullscreenChange;
336
337
  var _this$state = this.state,
337
338
  fileSrc = _this$state.fileSrc,
338
339
  isUploading = _this$state.isUploading,
@@ -356,6 +357,7 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
356
357
  return /*#__PURE__*/_react.default.createElement(_mediaUi.CustomMediaPlayer, {
357
358
  type: "video",
358
359
  src: fileSrc,
360
+ onFullscreenChange: onFullscreenChange,
359
361
  fileId: identifier.id,
360
362
  isAutoPlay: autoplay,
361
363
  isHDAvailable: false,
@@ -89,7 +89,7 @@ var getWrapperShadow = function getWrapperShadow(disableOverlay, selected) {
89
89
  };
90
90
 
91
91
  var getCursorStyle = function getCursorStyle(cursor) {
92
- return "cursor: ".concat(cursor, ";");
92
+ return !!cursor ? "cursor: ".concat(cursor, ";") : '';
93
93
  };
94
94
 
95
95
  var getClickablePlayButtonStyles = function getClickablePlayButtonStyles(isPlayButtonClickable) {
@@ -33,7 +33,7 @@ var HEX_REGEX = /^#[0-9A-F]{6}$/i;
33
33
  var TitleBoxWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n"])), function (_ref) {
34
34
  var breakpoint = _ref.breakpoint,
35
35
  titleBoxBgColor = _ref.titleBoxBgColor;
36
- return "\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: ".concat((0, _mixins.rgba)(titleBoxBgColor && HEX_REGEX.test(titleBoxBgColor) ? titleBoxBgColor : _colors.N0, 0.8), ";\n color: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n ").concat(generateResponsiveStyles(breakpoint), "\n ");
36
+ return "\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: ".concat((0, _mixins.rgba)(titleBoxBgColor && HEX_REGEX.test(titleBoxBgColor) ? titleBoxBgColor : _colors.N0, 0.8), ";\n color: inherit;\n cursor: inherit;\n pointer-events: none;\n display: flex;\n flex-direction: column;\n justify-content: center;\n ").concat(generateResponsiveStyles(breakpoint), "\n ");
37
37
  });
38
38
 
39
39
  exports.TitleBoxWrapper = TitleBoxWrapper;
package/dist/cjs/types.js CHANGED
@@ -9,6 +9,5 @@ exports.MediaCardCursor = MediaCardCursor;
9
9
 
10
10
  (function (MediaCardCursor) {
11
11
  MediaCardCursor["Action"] = "pointer";
12
- MediaCardCursor["NoAction"] = "default";
13
12
  MediaCardCursor["NotReady"] = "wait";
14
13
  })(MediaCardCursor || (exports.MediaCardCursor = MediaCardCursor = {}));
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.extractErrorInfo = exports.createAndFireMediaCardEvent = void 0;
8
+ exports.extractErrorInfo = exports.createAndFireMediaCardEvent = exports.LOGGED_FEATURE_FLAG_KEYS = exports.LOGGED_FEATURE_FLAGS = void 0;
9
9
  exports.fireMediaCardEvent = fireMediaCardEvent;
10
10
  exports.getRenderSucceededEventPayload = exports.getRenderPreviewableCardPayload = exports.getRenderFailedFileStatusPayload = exports.getRenderFailedExternalUriPayload = exports.getRenderErrorRequestMetadata = exports.getRenderErrorFailReason = exports.getRenderErrorEventPayload = exports.getRenderErrorErrorReason = exports.getRenderErrorErrorDetail = exports.getRenderCommencedEventPayload = exports.getFileAttributes = exports.getCopiedFilePayload = void 0;
11
11
 
@@ -23,6 +23,20 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
23
23
 
24
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
25
 
26
+ var relevantFlags = {
27
+ newCardExperience: true,
28
+ captions: true,
29
+ timestampOnVideo: true,
30
+ observedWidth: true,
31
+ mediaInline: false,
32
+ folderUploads: false,
33
+ mediaUploadApiV2: false
34
+ };
35
+ var LOGGED_FEATURE_FLAGS = (0, _mediaCommon.filterFeatureFlagNames)(relevantFlags);
36
+ exports.LOGGED_FEATURE_FLAGS = LOGGED_FEATURE_FLAGS;
37
+ var LOGGED_FEATURE_FLAG_KEYS = (0, _mediaCommon.filterFeatureFlagKeysAllProducts)(relevantFlags);
38
+ exports.LOGGED_FEATURE_FLAG_KEYS = LOGGED_FEATURE_FLAG_KEYS;
39
+
26
40
  var getFileAttributes = function getFileAttributes(metadata, fileStatus) {
27
41
  return {
28
42
  fileMediatype: metadata.mediaType,
@@ -7,10 +7,13 @@ exports.getMediaCardCursor = void 0;
7
7
 
8
8
  var _types = require("../types");
9
9
 
10
+ /**
11
+ * When the returned value is undefined, we'd expect the media card to take the parent's cursor style.
12
+ */
10
13
  var getMediaCardCursor = function getMediaCardCursor(useInlinePlayer, useMediaViewer, isErrorStatus, hasCardPreview, mediaType) {
11
14
  // If error status or no action is requested = NoAction
12
15
  if (isErrorStatus || !useInlinePlayer && !useMediaViewer) {
13
- return _types.MediaCardCursor.NoAction;
16
+ return;
14
17
  }
15
18
 
16
19
  if (!mediaType && (useInlinePlayer || useInlinePlayer && useMediaViewer)) {
@@ -23,7 +26,7 @@ var getMediaCardCursor = function getMediaCardCursor(useInlinePlayer, useMediaVi
23
26
  return _types.MediaCardCursor.Action;
24
27
  }
25
28
 
26
- return _types.MediaCardCursor.NoAction;
29
+ return;
27
30
  };
28
31
 
29
32
  exports.getMediaCardCursor = getMediaCardCursor;
@@ -23,7 +23,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
23
23
 
24
24
  var concurrentExperience;
25
25
 
26
- var getExperience = function getExperience(id, featureFlagsKeys) {
26
+ var getExperience = function getExperience(id) {
27
27
  if (!concurrentExperience) {
28
28
  var inlineExperience = {
29
29
  platform: {
@@ -31,7 +31,7 @@ var getExperience = function getExperience(id, featureFlagsKeys) {
31
31
  },
32
32
  type: _ufo.ExperienceTypes.Experience,
33
33
  performanceType: _ufo.ExperiencePerformanceTypes.InlineResult,
34
- featureFlagsKeys: featureFlagsKeys
34
+ featureFlags: _analytics.LOGGED_FEATURE_FLAG_KEYS
35
35
  };
36
36
  concurrentExperience = new _ufo.ConcurrentExperience('media-card-render', inlineExperience);
37
37
  }
@@ -39,16 +39,16 @@ var getExperience = function getExperience(id, featureFlagsKeys) {
39
39
  return concurrentExperience.getInstance(id);
40
40
  };
41
41
 
42
- var startUfoExperience = function startUfoExperience(id, featureFlagsKeys) {
43
- getExperience(id, featureFlagsKeys).start();
42
+ var startUfoExperience = function startUfoExperience(id) {
43
+ getExperience(id).start();
44
44
  };
45
45
 
46
46
  exports.startUfoExperience = startUfoExperience;
47
47
 
48
- var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, fileStateFlags, ssrReliability, featureFlagsKeys, error) {
48
+ var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, fileStateFlags, ssrReliability, error) {
49
49
  switch (status) {
50
50
  case 'complete':
51
- succeedUfoExperience(id, featureFlagsKeys, {
51
+ succeedUfoExperience(id, {
52
52
  fileAttributes: fileAttributes,
53
53
  ssrReliability: ssrReliability,
54
54
  fileStateFlags: fileStateFlags
@@ -56,7 +56,7 @@ var completeUfoExperience = function completeUfoExperience(id, status, fileAttri
56
56
  break;
57
57
 
58
58
  case 'failed-processing':
59
- failUfoExperience(id, featureFlagsKeys, {
59
+ failUfoExperience(id, {
60
60
  fileAttributes: fileAttributes,
61
61
  failReason: 'failed-processing',
62
62
  ssrReliability: ssrReliability,
@@ -65,7 +65,7 @@ var completeUfoExperience = function completeUfoExperience(id, status, fileAttri
65
65
  break;
66
66
 
67
67
  case 'error':
68
- error && failUfoExperience(id, featureFlagsKeys, _objectSpread(_objectSpread({
68
+ error && failUfoExperience(id, _objectSpread(_objectSpread({
69
69
  fileAttributes: fileAttributes
70
70
  }, (0, _analytics.extractErrorInfo)(error)), {}, {
71
71
  request: (0, _analytics.getRenderErrorRequestMetadata)(error),
@@ -78,8 +78,8 @@ var completeUfoExperience = function completeUfoExperience(id, status, fileAttri
78
78
 
79
79
  exports.completeUfoExperience = completeUfoExperience;
80
80
 
81
- var succeedUfoExperience = function succeedUfoExperience(id, featureFlagsKeys, properties) {
82
- getExperience(id, featureFlagsKeys).success({
81
+ var succeedUfoExperience = function succeedUfoExperience(id, properties) {
82
+ getExperience(id).success({
83
83
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
84
84
  packageName: _version.name,
85
85
  packageVersion: _version.version,
@@ -89,8 +89,8 @@ var succeedUfoExperience = function succeedUfoExperience(id, featureFlagsKeys, p
89
89
  });
90
90
  };
91
91
 
92
- var failUfoExperience = function failUfoExperience(id, featureFlagsKeys, properties) {
93
- getExperience(id, featureFlagsKeys).failure({
92
+ var failUfoExperience = function failUfoExperience(id, properties) {
93
+ getExperience(id).failure({
94
94
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
95
95
  packageName: _version.name,
96
96
  packageVersion: _version.version,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "73.6.0",
3
+ "version": "73.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,15 +1,4 @@
1
- import { filterFeatureFlagNames, filterFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
2
1
  import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
3
- export const REQUIRED_FEATURE_FLAGS = {
4
- newCardExperience: true,
5
- captions: true,
6
- timestampOnVideo: true,
7
- observedWidth: true,
8
- mediaInline: false,
9
- folderUploads: false
10
- };
11
- export const getRelevantFeatureFlagNames = () => filterFeatureFlagNames(REQUIRED_FEATURE_FLAGS);
12
- export const getRelevantFeatureFlagKeysWithAllProducts = () => filterFeatureFlagKeysAllProducts(REQUIRED_FEATURE_FLAGS);
13
2
  export const fireOperationalEvent = (createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) => {
14
3
  const fireEvent = payload => fireMediaCardEvent(payload, createAnalyticsEvent);
15
4
 
@@ -14,9 +14,9 @@ import { getRequestedDimensions } from '../../utils/getDataURIDimension';
14
14
  import { getCardPreview, getCardPreviewFromCache, removeCardPreviewFromCache, getFilePreviewFromFileState, shouldResolvePreview, getSSRCardPreview, isLocalPreview, isSSRPreview, isSSRClientPreview, isSSRDataPreview, fetchAndCacheRemotePreview } from './getCardPreview';
15
15
  import { getFileDetails } from '../../utils/metadata';
16
16
  import { InlinePlayer } from '../inlinePlayer';
17
- import { getFileAttributes, extractErrorInfo } from '../../utils/analytics';
17
+ import { getFileAttributes, extractErrorInfo, LOGGED_FEATURE_FLAGS } from '../../utils/analytics';
18
18
  import { isLocalPreviewError, MediaCardError, ensureMediaCardError, ImageLoadError } from '../../errors';
19
- import { fireOperationalEvent, fireCommencedEvent, getRelevantFeatureFlagNames, getRelevantFeatureFlagKeysWithAllProducts, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
19
+ import { fireOperationalEvent, fireCommencedEvent, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
20
20
  import getDocument from '../../utils/document';
21
21
  import { StoreSSRDataScript, getSSRData } from '../../utils/globalScope';
22
22
  import { getCardStateFromFileState, createStateUpdater } from './cardState';
@@ -391,7 +391,8 @@ export class CardBase extends Component {
391
391
  dimensions,
392
392
  selected,
393
393
  testId,
394
- originalDimensions
394
+ originalDimensions,
395
+ onFullscreenChange
395
396
  } = this.props;
396
397
  const {
397
398
  shouldAutoplay,
@@ -403,6 +404,7 @@ export class CardBase extends Component {
403
404
  originalDimensions: originalDimensions,
404
405
  identifier: identifier,
405
406
  autoplay: !!shouldAutoplay,
407
+ onFullscreenChange: onFullscreenChange,
406
408
  onError: this.onInlinePlayerError,
407
409
  onClick: this.onClick,
408
410
  selected: selected,
@@ -930,7 +932,7 @@ export class CardBase extends Component {
930
932
  createAnalyticsEvent
931
933
  } = this.props;
932
934
  createAnalyticsEvent && fireOperationalEvent(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
933
- completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, getRelevantFeatureFlagKeysWithAllProducts(), error);
935
+ completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
934
936
  }
935
937
 
936
938
  fireCommencedEvent() {
@@ -943,7 +945,7 @@ export class CardBase extends Component {
943
945
  durationSincePageStart: this.timeElapsedTillCommenced
944
946
  }
945
947
  });
946
- startUfoExperience(this.internalOccurrenceKey, getRelevantFeatureFlagKeysWithAllProducts());
948
+ startUfoExperience(this.internalOccurrenceKey);
947
949
  }
948
950
 
949
951
  get actions() {
@@ -1001,7 +1003,7 @@ export const Card = withMediaAnalyticsContext({
1001
1003
  componentName: 'mediaCard',
1002
1004
  component: 'mediaCard'
1003
1005
  }, {
1004
- filterFeatureFlags: getRelevantFeatureFlagNames()
1006
+ filterFeatureFlags: LOGGED_FEATURE_FLAGS
1005
1007
  })(withAnalyticsEvents()(injectIntl(CardBase, {
1006
1008
  enforceContext: false
1007
1009
  })));
@@ -30,7 +30,6 @@ import { PreviewUnavailable, CreatingPreview, FailedToUpload, PreviewCurrentlyUn
30
30
  import { isRateLimitedError, isPollingError } from '@atlaskit/media-client';
31
31
  import { newFileExperienceClassName } from './card/cardConstants';
32
32
  import { isUploadError } from '../errors';
33
- import { MediaCardCursor } from '../types';
34
33
 
35
34
  /**
36
35
  * This is classic vanilla CardView class. To create an instance of class one would need to supply
@@ -563,8 +562,7 @@ export class CardViewBase extends React.Component {
563
562
  }
564
563
 
565
564
  _defineProperty(CardViewBase, "defaultProps", {
566
- appearance: 'auto',
567
- mediaCardCursor: MediaCardCursor.NoAction
565
+ appearance: 'auto'
568
566
  });
569
567
 
570
568
  export const CardView = withAnalyticsEvents({
@@ -217,7 +217,8 @@ export class InlinePlayerBase extends Component {
217
217
  identifier,
218
218
  forwardRef,
219
219
  autoplay,
220
- cardPreview
220
+ cardPreview,
221
+ onFullscreenChange
221
222
  } = this.props;
222
223
  const {
223
224
  fileSrc,
@@ -242,6 +243,7 @@ export class InlinePlayerBase extends Component {
242
243
  }, /*#__PURE__*/React.createElement(InactivityDetector, null, checkMouseMovement => /*#__PURE__*/React.createElement(CustomMediaPlayer, {
243
244
  type: "video",
244
245
  src: fileSrc,
246
+ onFullscreenChange: onFullscreenChange,
245
247
  fileId: identifier.id,
246
248
  isAutoPlay: autoplay,
247
249
  isHDAvailable: false,
@@ -52,7 +52,7 @@ const getWrapperShadow = (disableOverlay, selected) => {
52
52
  return shadow ? `box-shadow: ${shadow};` : '';
53
53
  };
54
54
 
55
- const getCursorStyle = cursor => `cursor: ${cursor};`;
55
+ const getCursorStyle = cursor => !!cursor ? `cursor: ${cursor};` : '';
56
56
 
57
57
  const getClickablePlayButtonStyles = isPlayButtonClickable => {
58
58
  if (!isPlayButtonClickable) {
@@ -25,6 +25,8 @@ export const TitleBoxWrapper = styled.div`
25
25
  width: 100%;
26
26
  background-color: ${rgba(titleBoxBgColor && HEX_REGEX.test(titleBoxBgColor) ? titleBoxBgColor : N0, 0.8)};
27
27
  color: inherit;
28
+ cursor: inherit;
29
+ pointer-events: none;
28
30
  display: flex;
29
31
  flex-direction: column;
30
32
  justify-content: center;
@@ -2,6 +2,5 @@ export let MediaCardCursor;
2
2
 
3
3
  (function (MediaCardCursor) {
4
4
  MediaCardCursor["Action"] = "pointer";
5
- MediaCardCursor["NoAction"] = "default";
6
5
  MediaCardCursor["NotReady"] = "wait";
7
6
  })(MediaCardCursor || (MediaCardCursor = {}));
@@ -1,7 +1,18 @@
1
1
  import { getMediaClientErrorReason, isRequestError } from '@atlaskit/media-client';
2
- import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
2
+ import { ANALYTICS_MEDIA_CHANNEL, filterFeatureFlagNames, filterFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
3
3
  import { createAndFireEvent } from '@atlaskit/analytics-next';
4
4
  import { isMediaCardError } from '../errors';
5
+ const relevantFlags = {
6
+ newCardExperience: true,
7
+ captions: true,
8
+ timestampOnVideo: true,
9
+ observedWidth: true,
10
+ mediaInline: false,
11
+ folderUploads: false,
12
+ mediaUploadApiV2: false
13
+ };
14
+ export const LOGGED_FEATURE_FLAGS = filterFeatureFlagNames(relevantFlags);
15
+ export const LOGGED_FEATURE_FLAG_KEYS = filterFeatureFlagKeysAllProducts(relevantFlags);
5
16
  export const getFileAttributes = (metadata, fileStatus) => ({
6
17
  fileMediatype: metadata.mediaType,
7
18
  fileMimetype: metadata.mimeType,
@@ -1,8 +1,12 @@
1
1
  import { MediaCardCursor } from '../types';
2
+
3
+ /**
4
+ * When the returned value is undefined, we'd expect the media card to take the parent's cursor style.
5
+ */
2
6
  export const getMediaCardCursor = (useInlinePlayer, useMediaViewer, isErrorStatus, hasCardPreview, mediaType) => {
3
7
  // If error status or no action is requested = NoAction
4
8
  if (isErrorStatus || !useInlinePlayer && !useMediaViewer) {
5
- return MediaCardCursor.NoAction;
9
+ return;
6
10
  }
7
11
 
8
12
  if (!mediaType && (useInlinePlayer || useInlinePlayer && useMediaViewer)) {
@@ -15,5 +19,5 @@ export const getMediaCardCursor = (useInlinePlayer, useMediaViewer, isErrorStatu
15
19
  return MediaCardCursor.Action;
16
20
  }
17
21
 
18
- return MediaCardCursor.NoAction;
22
+ return;
19
23
  };
@@ -1,10 +1,10 @@
1
1
  import { ConcurrentExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
2
2
  import { name as packageName, version as packageVersion } from '../version.json';
3
- import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
3
+ import { extractErrorInfo, getRenderErrorRequestMetadata, LOGGED_FEATURE_FLAG_KEYS } from './analytics';
4
4
  import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
5
5
  let concurrentExperience;
6
6
 
7
- const getExperience = (id, featureFlagsKeys) => {
7
+ const getExperience = id => {
8
8
  if (!concurrentExperience) {
9
9
  const inlineExperience = {
10
10
  platform: {
@@ -12,7 +12,7 @@ const getExperience = (id, featureFlagsKeys) => {
12
12
  },
13
13
  type: ExperienceTypes.Experience,
14
14
  performanceType: ExperiencePerformanceTypes.InlineResult,
15
- featureFlagsKeys
15
+ featureFlags: LOGGED_FEATURE_FLAG_KEYS
16
16
  };
17
17
  concurrentExperience = new ConcurrentExperience('media-card-render', inlineExperience);
18
18
  }
@@ -20,13 +20,13 @@ const getExperience = (id, featureFlagsKeys) => {
20
20
  return concurrentExperience.getInstance(id);
21
21
  };
22
22
 
23
- export const startUfoExperience = (id, featureFlagsKeys) => {
24
- getExperience(id, featureFlagsKeys).start();
23
+ export const startUfoExperience = id => {
24
+ getExperience(id).start();
25
25
  };
26
- export const completeUfoExperience = (id, status, fileAttributes, fileStateFlags, ssrReliability, featureFlagsKeys, error) => {
26
+ export const completeUfoExperience = (id, status, fileAttributes, fileStateFlags, ssrReliability, error) => {
27
27
  switch (status) {
28
28
  case 'complete':
29
- succeedUfoExperience(id, featureFlagsKeys, {
29
+ succeedUfoExperience(id, {
30
30
  fileAttributes,
31
31
  ssrReliability,
32
32
  fileStateFlags
@@ -34,7 +34,7 @@ export const completeUfoExperience = (id, status, fileAttributes, fileStateFlags
34
34
  break;
35
35
 
36
36
  case 'failed-processing':
37
- failUfoExperience(id, featureFlagsKeys, {
37
+ failUfoExperience(id, {
38
38
  fileAttributes,
39
39
  failReason: 'failed-processing',
40
40
  ssrReliability,
@@ -43,7 +43,7 @@ export const completeUfoExperience = (id, status, fileAttributes, fileStateFlags
43
43
  break;
44
44
 
45
45
  case 'error':
46
- error && failUfoExperience(id, featureFlagsKeys, {
46
+ error && failUfoExperience(id, {
47
47
  fileAttributes,
48
48
  ...extractErrorInfo(error),
49
49
  request: getRenderErrorRequestMetadata(error),
@@ -54,8 +54,8 @@ export const completeUfoExperience = (id, status, fileAttributes, fileStateFlags
54
54
  }
55
55
  };
56
56
 
57
- const succeedUfoExperience = (id, featureFlagsKeys, properties) => {
58
- getExperience(id, featureFlagsKeys).success({
57
+ const succeedUfoExperience = (id, properties) => {
58
+ getExperience(id).success({
59
59
  metadata: { ...properties,
60
60
  packageName,
61
61
  packageVersion,
@@ -65,8 +65,8 @@ const succeedUfoExperience = (id, featureFlagsKeys, properties) => {
65
65
  });
66
66
  };
67
67
 
68
- const failUfoExperience = (id, featureFlagsKeys, properties) => {
69
- getExperience(id, featureFlagsKeys).failure({
68
+ const failUfoExperience = (id, properties) => {
69
+ getExperience(id).failure({
70
70
  metadata: { ...properties,
71
71
  packageName,
72
72
  packageVersion,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "73.6.0",
3
+ "version": "73.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,19 +1,4 @@
1
- import { filterFeatureFlagNames, filterFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
2
1
  import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
3
- export var REQUIRED_FEATURE_FLAGS = {
4
- newCardExperience: true,
5
- captions: true,
6
- timestampOnVideo: true,
7
- observedWidth: true,
8
- mediaInline: false,
9
- folderUploads: false
10
- };
11
- export var getRelevantFeatureFlagNames = function getRelevantFeatureFlagNames() {
12
- return filterFeatureFlagNames(REQUIRED_FEATURE_FLAGS);
13
- };
14
- export var getRelevantFeatureFlagKeysWithAllProducts = function getRelevantFeatureFlagKeysWithAllProducts() {
15
- return filterFeatureFlagKeysAllProducts(REQUIRED_FEATURE_FLAGS);
16
- };
17
2
  export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) {
18
3
  var fireEvent = function fireEvent(payload) {
19
4
  return fireMediaCardEvent(payload, createAnalyticsEvent);
@@ -32,9 +32,9 @@ import { getRequestedDimensions } from '../../utils/getDataURIDimension';
32
32
  import { getCardPreview, getCardPreviewFromCache, removeCardPreviewFromCache, getFilePreviewFromFileState, shouldResolvePreview, getSSRCardPreview, isLocalPreview, isSSRPreview, isSSRClientPreview, isSSRDataPreview, fetchAndCacheRemotePreview } from './getCardPreview';
33
33
  import { getFileDetails } from '../../utils/metadata';
34
34
  import { InlinePlayer } from '../inlinePlayer';
35
- import { getFileAttributes, extractErrorInfo } from '../../utils/analytics';
35
+ import { getFileAttributes, extractErrorInfo, LOGGED_FEATURE_FLAGS } from '../../utils/analytics';
36
36
  import { isLocalPreviewError, MediaCardError, ensureMediaCardError, ImageLoadError } from '../../errors';
37
- import { fireOperationalEvent as _fireOperationalEvent, fireCommencedEvent as _fireCommencedEvent, getRelevantFeatureFlagNames, getRelevantFeatureFlagKeysWithAllProducts, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
37
+ import { fireOperationalEvent as _fireOperationalEvent, fireCommencedEvent as _fireCommencedEvent, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
38
38
  import getDocument from '../../utils/document';
39
39
  import { StoreSSRDataScript, getSSRData } from '../../utils/globalScope';
40
40
  import { getCardStateFromFileState, createStateUpdater } from './cardState';
@@ -455,7 +455,8 @@ export var CardBase = /*#__PURE__*/function (_Component) {
455
455
  dimensions = _this$props7.dimensions,
456
456
  selected = _this$props7.selected,
457
457
  testId = _this$props7.testId,
458
- originalDimensions = _this$props7.originalDimensions;
458
+ originalDimensions = _this$props7.originalDimensions,
459
+ onFullscreenChange = _this$props7.onFullscreenChange;
459
460
  var _this$state = _this.state,
460
461
  shouldAutoplay = _this$state.shouldAutoplay,
461
462
  cardPreview = _this$state.cardPreview;
@@ -465,6 +466,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
465
466
  originalDimensions: originalDimensions,
466
467
  identifier: identifier,
467
468
  autoplay: !!shouldAutoplay,
469
+ onFullscreenChange: onFullscreenChange,
468
470
  onError: _this.onInlinePlayerError,
469
471
  onClick: _this.onClick,
470
472
  selected: selected,
@@ -963,7 +965,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
963
965
  error = _this$state7.error;
964
966
  var createAnalyticsEvent = this.props.createAnalyticsEvent;
965
967
  createAnalyticsEvent && _fireOperationalEvent(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
966
- completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, getRelevantFeatureFlagKeysWithAllProducts(), error);
968
+ completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
967
969
  }
968
970
  }, {
969
971
  key: "fireCommencedEvent",
@@ -975,7 +977,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
975
977
  durationSincePageStart: this.timeElapsedTillCommenced
976
978
  }
977
979
  });
978
- startUfoExperience(this.internalOccurrenceKey, getRelevantFeatureFlagKeysWithAllProducts());
980
+ startUfoExperience(this.internalOccurrenceKey);
979
981
  }
980
982
  }, {
981
983
  key: "actions",
@@ -1036,7 +1038,7 @@ export var Card = withMediaAnalyticsContext({
1036
1038
  componentName: 'mediaCard',
1037
1039
  component: 'mediaCard'
1038
1040
  }, {
1039
- filterFeatureFlags: getRelevantFeatureFlagNames()
1041
+ filterFeatureFlags: LOGGED_FEATURE_FLAGS
1040
1042
  })(withAnalyticsEvents()(injectIntl(CardBase, {
1041
1043
  enforceContext: false
1042
1044
  })));
@@ -45,7 +45,6 @@ import { PreviewUnavailable, CreatingPreview, FailedToUpload, PreviewCurrentlyUn
45
45
  import { isRateLimitedError, isPollingError } from '@atlaskit/media-client';
46
46
  import { newFileExperienceClassName } from './card/cardConstants';
47
47
  import { isUploadError } from '../errors';
48
- import { MediaCardCursor } from '../types';
49
48
 
50
49
  /**
51
50
  * This is classic vanilla CardView class. To create an instance of class one would need to supply
@@ -589,8 +588,7 @@ export var CardViewBase = /*#__PURE__*/function (_React$Component) {
589
588
  }(React.Component);
590
589
 
591
590
  _defineProperty(CardViewBase, "defaultProps", {
592
- appearance: 'auto',
593
- mediaCardCursor: MediaCardCursor.NoAction
591
+ appearance: 'auto'
594
592
  });
595
593
 
596
594
  export var CardView = withAnalyticsEvents({
@@ -303,7 +303,8 @@ export var InlinePlayerBase = /*#__PURE__*/function (_Component) {
303
303
  identifier = _this$props4.identifier,
304
304
  forwardRef = _this$props4.forwardRef,
305
305
  autoplay = _this$props4.autoplay,
306
- cardPreview = _this$props4.cardPreview;
306
+ cardPreview = _this$props4.cardPreview,
307
+ onFullscreenChange = _this$props4.onFullscreenChange;
307
308
  var _this$state = this.state,
308
309
  fileSrc = _this$state.fileSrc,
309
310
  isUploading = _this$state.isUploading,
@@ -327,6 +328,7 @@ export var InlinePlayerBase = /*#__PURE__*/function (_Component) {
327
328
  return /*#__PURE__*/React.createElement(CustomMediaPlayer, {
328
329
  type: "video",
329
330
  src: fileSrc,
331
+ onFullscreenChange: onFullscreenChange,
330
332
  fileId: identifier.id,
331
333
  isAutoPlay: autoplay,
332
334
  isHDAvailable: false,
@@ -62,7 +62,7 @@ var getWrapperShadow = function getWrapperShadow(disableOverlay, selected) {
62
62
  };
63
63
 
64
64
  var getCursorStyle = function getCursorStyle(cursor) {
65
- return "cursor: ".concat(cursor, ";");
65
+ return !!cursor ? "cursor: ".concat(cursor, ";") : '';
66
66
  };
67
67
 
68
68
  var getClickablePlayButtonStyles = function getClickablePlayButtonStyles(isPlayButtonClickable) {
@@ -20,7 +20,7 @@ var HEX_REGEX = /^#[0-9A-F]{6}$/i;
20
20
  export var TitleBoxWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n"])), function (_ref) {
21
21
  var breakpoint = _ref.breakpoint,
22
22
  titleBoxBgColor = _ref.titleBoxBgColor;
23
- return "\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: ".concat(rgba(titleBoxBgColor && HEX_REGEX.test(titleBoxBgColor) ? titleBoxBgColor : N0, 0.8), ";\n color: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n ").concat(generateResponsiveStyles(breakpoint), "\n ");
23
+ return "\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: ".concat(rgba(titleBoxBgColor && HEX_REGEX.test(titleBoxBgColor) ? titleBoxBgColor : N0, 0.8), ";\n color: inherit;\n cursor: inherit;\n pointer-events: none;\n display: flex;\n flex-direction: column;\n justify-content: center;\n ").concat(generateResponsiveStyles(breakpoint), "\n ");
24
24
  });
25
25
  TitleBoxWrapper.displayName = 'TitleBoxWrapper';
26
26
  var infoStyles = "\n white-space: nowrap;\n overflow: hidden;\n";
package/dist/esm/types.js CHANGED
@@ -2,6 +2,5 @@ export var MediaCardCursor;
2
2
 
3
3
  (function (MediaCardCursor) {
4
4
  MediaCardCursor["Action"] = "pointer";
5
- MediaCardCursor["NoAction"] = "default";
6
5
  MediaCardCursor["NotReady"] = "wait";
7
6
  })(MediaCardCursor || (MediaCardCursor = {}));
@@ -5,9 +5,20 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
 
7
7
  import { getMediaClientErrorReason, isRequestError } from '@atlaskit/media-client';
8
- import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
8
+ import { ANALYTICS_MEDIA_CHANNEL, filterFeatureFlagNames, filterFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
9
9
  import { createAndFireEvent } from '@atlaskit/analytics-next';
10
10
  import { isMediaCardError } from '../errors';
11
+ var relevantFlags = {
12
+ newCardExperience: true,
13
+ captions: true,
14
+ timestampOnVideo: true,
15
+ observedWidth: true,
16
+ mediaInline: false,
17
+ folderUploads: false,
18
+ mediaUploadApiV2: false
19
+ };
20
+ export var LOGGED_FEATURE_FLAGS = filterFeatureFlagNames(relevantFlags);
21
+ export var LOGGED_FEATURE_FLAG_KEYS = filterFeatureFlagKeysAllProducts(relevantFlags);
11
22
  export var getFileAttributes = function getFileAttributes(metadata, fileStatus) {
12
23
  return {
13
24
  fileMediatype: metadata.mediaType,
@@ -1,8 +1,12 @@
1
1
  import { MediaCardCursor } from '../types';
2
+
3
+ /**
4
+ * When the returned value is undefined, we'd expect the media card to take the parent's cursor style.
5
+ */
2
6
  export var getMediaCardCursor = function getMediaCardCursor(useInlinePlayer, useMediaViewer, isErrorStatus, hasCardPreview, mediaType) {
3
7
  // If error status or no action is requested = NoAction
4
8
  if (isErrorStatus || !useInlinePlayer && !useMediaViewer) {
5
- return MediaCardCursor.NoAction;
9
+ return;
6
10
  }
7
11
 
8
12
  if (!mediaType && (useInlinePlayer || useInlinePlayer && useMediaViewer)) {
@@ -15,5 +19,5 @@ export var getMediaCardCursor = function getMediaCardCursor(useInlinePlayer, use
15
19
  return MediaCardCursor.Action;
16
20
  }
17
21
 
18
- return MediaCardCursor.NoAction;
22
+ return;
19
23
  };
@@ -6,11 +6,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
6
6
 
7
7
  import { ConcurrentExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
8
8
  import { name as packageName, version as packageVersion } from '../version.json';
9
- import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
9
+ import { extractErrorInfo, getRenderErrorRequestMetadata, LOGGED_FEATURE_FLAG_KEYS } from './analytics';
10
10
  import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
11
11
  var concurrentExperience;
12
12
 
13
- var getExperience = function getExperience(id, featureFlagsKeys) {
13
+ var getExperience = function getExperience(id) {
14
14
  if (!concurrentExperience) {
15
15
  var inlineExperience = {
16
16
  platform: {
@@ -18,7 +18,7 @@ var getExperience = function getExperience(id, featureFlagsKeys) {
18
18
  },
19
19
  type: ExperienceTypes.Experience,
20
20
  performanceType: ExperiencePerformanceTypes.InlineResult,
21
- featureFlagsKeys: featureFlagsKeys
21
+ featureFlags: LOGGED_FEATURE_FLAG_KEYS
22
22
  };
23
23
  concurrentExperience = new ConcurrentExperience('media-card-render', inlineExperience);
24
24
  }
@@ -26,13 +26,13 @@ var getExperience = function getExperience(id, featureFlagsKeys) {
26
26
  return concurrentExperience.getInstance(id);
27
27
  };
28
28
 
29
- export var startUfoExperience = function startUfoExperience(id, featureFlagsKeys) {
30
- getExperience(id, featureFlagsKeys).start();
29
+ export var startUfoExperience = function startUfoExperience(id) {
30
+ getExperience(id).start();
31
31
  };
32
- export var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, fileStateFlags, ssrReliability, featureFlagsKeys, error) {
32
+ export var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, fileStateFlags, ssrReliability, error) {
33
33
  switch (status) {
34
34
  case 'complete':
35
- succeedUfoExperience(id, featureFlagsKeys, {
35
+ succeedUfoExperience(id, {
36
36
  fileAttributes: fileAttributes,
37
37
  ssrReliability: ssrReliability,
38
38
  fileStateFlags: fileStateFlags
@@ -40,7 +40,7 @@ export var completeUfoExperience = function completeUfoExperience(id, status, fi
40
40
  break;
41
41
 
42
42
  case 'failed-processing':
43
- failUfoExperience(id, featureFlagsKeys, {
43
+ failUfoExperience(id, {
44
44
  fileAttributes: fileAttributes,
45
45
  failReason: 'failed-processing',
46
46
  ssrReliability: ssrReliability,
@@ -49,7 +49,7 @@ export var completeUfoExperience = function completeUfoExperience(id, status, fi
49
49
  break;
50
50
 
51
51
  case 'error':
52
- error && failUfoExperience(id, featureFlagsKeys, _objectSpread(_objectSpread({
52
+ error && failUfoExperience(id, _objectSpread(_objectSpread({
53
53
  fileAttributes: fileAttributes
54
54
  }, extractErrorInfo(error)), {}, {
55
55
  request: getRenderErrorRequestMetadata(error),
@@ -60,8 +60,8 @@ export var completeUfoExperience = function completeUfoExperience(id, status, fi
60
60
  }
61
61
  };
62
62
 
63
- var succeedUfoExperience = function succeedUfoExperience(id, featureFlagsKeys, properties) {
64
- getExperience(id, featureFlagsKeys).success({
63
+ var succeedUfoExperience = function succeedUfoExperience(id, properties) {
64
+ getExperience(id).success({
65
65
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
66
66
  packageName: packageName,
67
67
  packageVersion: packageVersion,
@@ -71,8 +71,8 @@ var succeedUfoExperience = function succeedUfoExperience(id, featureFlagsKeys, p
71
71
  });
72
72
  };
73
73
 
74
- var failUfoExperience = function failUfoExperience(id, featureFlagsKeys, properties) {
75
- getExperience(id, featureFlagsKeys).failure({
74
+ var failUfoExperience = function failUfoExperience(id, properties) {
75
+ getExperience(id).failure({
76
76
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
77
77
  packageName: packageName,
78
78
  packageVersion: packageVersion,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "73.6.0",
3
+ "version": "73.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -38,6 +38,11 @@ export interface CardOnClickCallback {
38
38
  export interface CardEventProps {
39
39
  readonly onClick?: CardOnClickCallback;
40
40
  readonly onMouseEnter?: (result: CardEvent) => void;
41
+ /** Callback function to be called when video enters and exit fullscreen.
42
+ * `fullscreen = true` indicates video enters fullscreen
43
+ * `fullscreen = false` indicates video exits fullscreen
44
+ */
45
+ readonly onFullscreenChange?: (fullscreen: boolean) => void;
41
46
  }
42
47
  export interface CardProps extends SharedCardProps, CardEventProps {
43
48
  readonly mediaClient: MediaClient;
@@ -3,16 +3,6 @@ import { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
3
3
  import { SSRStatus } from '../../utils/analytics';
4
4
  import { CardStatus } from '../..';
5
5
  import { MediaCardError } from './../../errors';
6
- export declare const REQUIRED_FEATURE_FLAGS: {
7
- newCardExperience: boolean;
8
- captions: boolean;
9
- timestampOnVideo: boolean;
10
- observedWidth: boolean;
11
- mediaInline: boolean;
12
- folderUploads: boolean;
13
- };
14
- export declare const getRelevantFeatureFlagNames: () => (keyof import("@atlaskit/media-common").MediaFeatureFlags)[];
15
- export declare const getRelevantFeatureFlagKeysWithAllProducts: () => string[];
16
6
  export declare const fireOperationalEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, status: CardStatus, fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes, ssrReliability: SSRStatus, error?: MediaCardError | undefined) => void;
17
7
  export declare const fireCommencedEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes) => void;
18
8
  export declare const fireCopiedEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, fileId: string, cardRef: HTMLDivElement) => void;
@@ -9,7 +9,7 @@ import { MediaCardCursor } from '../types';
9
9
  export interface CardViewOwnProps extends SharedCardProps {
10
10
  readonly status: CardStatus;
11
11
  readonly mediaItemType: MediaItemType;
12
- readonly mediaCardCursor: MediaCardCursor;
12
+ readonly mediaCardCursor?: MediaCardCursor;
13
13
  readonly metadata?: FileDetails;
14
14
  readonly error?: MediaCardError;
15
15
  readonly onClick?: (event: React.MouseEvent<HTMLDivElement>, analyticsEvent?: UIAnalyticsEvent) => void;
@@ -12,6 +12,7 @@ export interface InlinePlayerOwnProps {
12
12
  originalDimensions?: NumericalCardDimensions;
13
13
  autoplay: boolean;
14
14
  selected?: boolean;
15
+ onFullscreenChange?: (fullscreen: boolean) => void;
15
16
  onError?: (error: Error) => void;
16
17
  readonly onClick?: (event: React.MouseEvent<HTMLDivElement>, analyticsEvent?: UIAnalyticsEvent) => void;
17
18
  testId?: string;
@@ -8,13 +8,13 @@ export interface NewFileExperienceWrapperProps {
8
8
  dimensions?: CardDimensions;
9
9
  appearance?: CardAppearance;
10
10
  mediaType?: string;
11
+ mediaCardCursor?: MediaCardCursor;
11
12
  disableOverlay: boolean;
12
13
  displayBackground: boolean;
13
14
  selected: boolean;
14
15
  isPlayButtonClickable: boolean;
15
16
  isTickBoxSelectable: boolean;
16
17
  shouldDisplayTooltip: boolean;
17
- mediaCardCursor: MediaCardCursor;
18
18
  }
19
19
  export declare const NewFileExperienceWrapper: import("styled-components").StyledComponentClass<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & NewFileExperienceWrapperProps, any, import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & NewFileExperienceWrapperProps>;
20
20
  export declare const CardImageContainer: import("styled-components").StyledComponentClass<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, any, import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>>;
@@ -19,6 +19,5 @@ export interface CardPreview {
19
19
  }
20
20
  export declare enum MediaCardCursor {
21
21
  Action = "pointer",
22
- NoAction = "default",
23
22
  NotReady = "wait"
24
23
  }
@@ -2,6 +2,8 @@ import { FileDetails, MediaClientErrorReason, RequestMetadata } from '@atlaskit/
2
2
  import { FileAttributes, PerformanceAttributes, OperationalEventPayload, UIEventPayload, WithFileAttributes, WithPerformanceAttributes, SuccessAttributes, FailureAttributes, ScreenEventPayload, ScreenAttributes } from '@atlaskit/media-common';
3
3
  import { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
4
4
  import { MediaCardError, MediaCardErrorPrimaryReason } from '../errors';
5
+ export declare const LOGGED_FEATURE_FLAGS: (keyof import("@atlaskit/media-common").MediaFeatureFlags)[];
6
+ export declare const LOGGED_FEATURE_FLAG_KEYS: string[];
5
7
  export declare type FileUriFailReason = 'local-uri' | 'remote-uri' | `unknown-uri`;
6
8
  export declare type FailedErrorFailReason = MediaCardErrorPrimaryReason | 'nativeError';
7
9
  export declare type MediaCardErrorInfo = {
@@ -1,3 +1,6 @@
1
1
  import { MediaCardCursor } from '../types';
2
2
  import { MediaType } from '@atlaskit/media-client';
3
- export declare const getMediaCardCursor: (useInlinePlayer: boolean, useMediaViewer: boolean, isErrorStatus: boolean, hasCardPreview: boolean, mediaType?: MediaType | undefined) => MediaCardCursor;
3
+ /**
4
+ * When the returned value is undefined, we'd expect the media card to take the parent's cursor style.
5
+ */
6
+ export declare const getMediaCardCursor: (useInlinePlayer: boolean, useMediaViewer: boolean, isErrorStatus: boolean, hasCardPreview: boolean, mediaType?: MediaType | undefined) => MediaCardCursor | undefined;
@@ -3,5 +3,5 @@ import { FileAttributes } from '@atlaskit/media-common';
3
3
  import { SSRStatus } from './analytics';
4
4
  import { MediaCardError } from '../errors';
5
5
  import { FileStateFlags } from '../types';
6
- export declare const startUfoExperience: (id: string, featureFlagsKeys: string[]) => void;
7
- export declare const completeUfoExperience: (id: string, status: CardStatus, fileAttributes: FileAttributes, fileStateFlags: FileStateFlags, ssrReliability: SSRStatus, featureFlagsKeys: string[], error?: MediaCardError | undefined) => void;
6
+ export declare const startUfoExperience: (id: string) => void;
7
+ export declare const completeUfoExperience: (id: string, status: CardStatus, fileAttributes: FileAttributes, fileStateFlags: FileStateFlags, ssrReliability: SSRStatus, error?: MediaCardError | undefined) => void;
@@ -6,19 +6,21 @@ import {
6
6
  createPollingMaxAttemptsError,
7
7
  createRateLimitedError,
8
8
  createStorybookMediaClientConfig,
9
+ enableMediaUfoLogger,
9
10
  FeatureFlagsWrapper,
10
11
  } from '@atlaskit/media-test-helpers';
11
12
  import CrossIcon from '@atlaskit/icon/glyph/cross';
12
13
  import FabricAnalyticsListeners, {
13
14
  AnalyticsWebClient,
14
15
  } from '@atlaskit/analytics-listeners';
16
+ import { payloadPublisher } from '@atlassian/ufo';
15
17
 
16
18
  import AnnotateIcon from '@atlaskit/icon/glyph/media-services/annotate';
17
19
  import { SelectableCard } from './selectableCard';
18
20
  import { Card, CardAppearance, CardEvent, CardAction } from '../src';
19
- import { getRelevantFeatureFlagNames } from '../src/root/card/cardAnalytics';
20
21
  import { MediaCardError } from '../src/errors';
21
22
  import DevelopmentUseMessage from './developmentUseMessage';
23
+ import { LOGGED_FEATURE_FLAGS } from '../src/utils/analytics';
22
24
 
23
25
  const mediaClientConfig = createStorybookMediaClientConfig();
24
26
 
@@ -126,19 +128,28 @@ export const wrongCollection = 'adfasdf';
126
128
 
127
129
  export type MainWrapperProps = {
128
130
  developmentOnly?: boolean;
131
+ disableFeatureFlagWrapper?: boolean;
129
132
  };
130
133
 
131
134
  export const MainWrapper: React.FC<MainWrapperProps> = ({
132
135
  children,
133
136
  developmentOnly,
134
- }) => (
135
- <>
136
- {developmentOnly && <DevelopmentUseMessage />}
137
- <FeatureFlagsWrapper filterFlags={getRelevantFeatureFlagNames()}>
138
- {children}
139
- </FeatureFlagsWrapper>
140
- </>
141
- );
137
+ disableFeatureFlagWrapper = false,
138
+ }) => {
139
+ enableMediaUfoLogger(payloadPublisher);
140
+ return (
141
+ <>
142
+ {developmentOnly && <DevelopmentUseMessage />}
143
+ {!disableFeatureFlagWrapper ? (
144
+ <FeatureFlagsWrapper filterFlags={LOGGED_FEATURE_FLAGS}>
145
+ {children}
146
+ </FeatureFlagsWrapper>
147
+ ) : (
148
+ <>{children}</>
149
+ )}
150
+ </>
151
+ );
152
+ };
142
153
 
143
154
  export const mediaCardErrorState = (
144
155
  error?: string,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "73.6.0",
3
+ "version": "73.7.0",
4
4
  "description": "Includes all media card related components, CardView, CardViewSmall, Card...",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -30,14 +30,14 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@atlaskit/analytics-next": "^8.2.0",
33
- "@atlaskit/dropdown-menu": "^11.1.0",
33
+ "@atlaskit/dropdown-menu": "^11.2.0",
34
34
  "@atlaskit/editor-shared-styles": "^2.1.0",
35
35
  "@atlaskit/icon": "^21.10.0",
36
36
  "@atlaskit/in-product-testing": "^0.1.0",
37
37
  "@atlaskit/media-client": "^16.0.0",
38
- "@atlaskit/media-common": "^2.13.0",
39
- "@atlaskit/media-ui": "^22.0.0",
40
- "@atlaskit/media-viewer": "^46.3.0",
38
+ "@atlaskit/media-common": "^2.14.0",
39
+ "@atlaskit/media-ui": "^22.1.0",
40
+ "@atlaskit/media-viewer": "^46.4.0",
41
41
  "@atlaskit/spinner": "^15.1.0",
42
42
  "@atlaskit/theme": "^12.1.0",
43
43
  "@atlaskit/tooltip": "^17.5.0",
@@ -66,7 +66,7 @@
66
66
  "@atlaskit/media-test-helpers": "^30.0.0",
67
67
  "@atlaskit/radio": "^5.3.2",
68
68
  "@atlaskit/range": "^6.0.0",
69
- "@atlaskit/select": "^15.2.1",
69
+ "@atlaskit/select": "^15.3.0",
70
70
  "@atlaskit/ssr": "*",
71
71
  "@atlaskit/toggle": "^12.4.0",
72
72
  "@atlaskit/visual-regression": "*",