@atlaskit/media-card 73.5.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 (62) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/classnames/package.json +1 -0
  3. package/dist/cjs/root/card/cardAnalytics.js +1 -16
  4. package/dist/cjs/root/card/index.js +25 -3
  5. package/dist/cjs/root/cardView.js +2 -5
  6. package/dist/cjs/root/inlinePlayer.js +3 -1
  7. package/dist/cjs/root/ui/styled.js +1 -1
  8. package/dist/cjs/root/ui/titleBox/styled.js +1 -1
  9. package/dist/cjs/types.js +0 -1
  10. package/dist/cjs/utils/analytics.js +15 -1
  11. package/dist/cjs/utils/getMediaCardCursor.js +5 -2
  12. package/dist/cjs/utils/ufoExperiences.js +17 -7
  13. package/dist/cjs/version.json +1 -1
  14. package/dist/es2019/root/card/cardAnalytics.js +0 -9
  15. package/dist/es2019/root/card/index.js +29 -5
  16. package/dist/es2019/root/cardView.js +2 -4
  17. package/dist/es2019/root/inlinePlayer.js +3 -1
  18. package/dist/es2019/root/ui/styled.js +1 -1
  19. package/dist/es2019/root/ui/titleBox/styled.js +2 -0
  20. package/dist/es2019/types.js +0 -1
  21. package/dist/es2019/utils/analytics.js +12 -1
  22. package/dist/es2019/utils/getMediaCardCursor.js +6 -2
  23. package/dist/es2019/utils/ufoExperiences.js +17 -8
  24. package/dist/es2019/version.json +1 -1
  25. package/dist/esm/root/card/cardAnalytics.js +0 -11
  26. package/dist/esm/root/card/index.js +28 -5
  27. package/dist/esm/root/cardView.js +2 -4
  28. package/dist/esm/root/inlinePlayer.js +3 -1
  29. package/dist/esm/root/ui/styled.js +1 -1
  30. package/dist/esm/root/ui/titleBox/styled.js +1 -1
  31. package/dist/esm/types.js +0 -1
  32. package/dist/esm/utils/analytics.js +12 -1
  33. package/dist/esm/utils/getMediaCardCursor.js +6 -2
  34. package/dist/esm/utils/ufoExperiences.js +17 -8
  35. package/dist/esm/version.json +1 -1
  36. package/dist/types/errors.d.ts +1 -1
  37. package/dist/types/files/cardImageView/cardOverlay/styled.d.ts +10 -10
  38. package/dist/types/files/cardImageView/styled.d.ts +266 -9
  39. package/dist/types/index.d.ts +5 -0
  40. package/dist/types/root/card/cardAnalytics.d.ts +0 -1
  41. package/dist/types/root/card/getCardPreview/helpers.d.ts +2 -2
  42. package/dist/types/root/card/index.d.ts +3 -1
  43. package/dist/types/root/cardView.d.ts +2 -2
  44. package/dist/types/root/inlinePlayer.d.ts +2 -1
  45. package/dist/types/root/styled.d.ts +1 -1
  46. package/dist/types/root/ui/loadingRateLimited/styled.d.ts +3 -3
  47. package/dist/types/root/ui/playButton/styled.d.ts +2 -2
  48. package/dist/types/root/ui/styled.d.ts +2 -2
  49. package/dist/types/root/ui/titleBox/styled.d.ts +2 -2
  50. package/dist/types/styles/mixins.d.ts +1 -1
  51. package/dist/types/types.d.ts +4 -1
  52. package/dist/types/utils/analytics.d.ts +3 -1
  53. package/dist/types/utils/cardDimensions.d.ts +5 -5
  54. package/dist/types/utils/dimensionComparer.d.ts +2 -2
  55. package/dist/types/utils/getMediaCardCursor.d.ts +5 -1
  56. package/dist/types/utils/metadata.d.ts +2 -2
  57. package/dist/types/utils/shouldDisplayImageThumbnail.d.ts +2 -2
  58. package/dist/types/utils/ufoExperiences.d.ts +2 -1
  59. package/example-helpers/index.tsx +20 -9
  60. package/in-product/package.json +1 -0
  61. package/package.json +13 -12
  62. package/types/package.json +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
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
+
19
+ ## 73.6.0
20
+
21
+ ### Minor Changes
22
+
23
+ - [`b4fd2a59367`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b4fd2a59367) - Attach media environment and region to the media-card UFO events
24
+ - [`7e767393469`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7e767393469) - Add ufo feature flag logging to `media-card`
25
+ - [`ade1a5c3e23`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ade1a5c3e23) - Flagged events with file states processing and uploading for UFO payload
26
+
27
+ ### Patch Changes
28
+
29
+ - [`bf0e7c8e46b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bf0e7c8e46b) - [MEX-1413] Hot fix for remove useMediaPickerAuthProvider flag
30
+ - [`79c431ca1a6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/79c431ca1a6) - Removed "Creating Preview" message for files already processed
31
+ - [`f87afac53b3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f87afac53b3) - Add ufo logging for media-card
32
+ - Updated dependencies
33
+
34
+ ## 73.5.1
35
+
36
+ ### Patch Changes
37
+
38
+ - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
39
+ - Updated dependencies
40
+
3
41
  ## 73.5.0
4
42
 
5
43
  ### Minor Changes
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/classnames.js",
4
4
  "module": "../dist/esm/classnames.js",
5
5
  "module:es2019": "../dist/es2019/classnames.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/classnames.d.ts"
7
8
  }
@@ -3,25 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getRelevantFeatureFlagNames = exports.fireScreenEvent = exports.fireOperationalEvent = exports.fireCopiedEvent = exports.fireCommencedEvent = 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 getRelevantFeatureFlagNames = function getRelevantFeatureFlagNames() {
13
- return (0, _mediaCommon.filterFeatureFlagNames)({
14
- newCardExperience: true,
15
- captions: true,
16
- timestampOnVideo: true,
17
- observedWidth: true,
18
- mediaInline: false,
19
- folderUploads: false
20
- });
21
- };
22
-
23
- exports.getRelevantFeatureFlagNames = getRelevantFeatureFlagNames;
24
-
25
10
  var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) {
26
11
  var fireEvent = function fireEvent(payload) {
27
12
  return (0, _analytics.fireMediaCardEvent)(payload, createAnalyticsEvent);
@@ -107,6 +107,10 @@ var CardBase = /*#__PURE__*/function (_Component) {
107
107
  _this = _super.call(this, props);
108
108
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "internalOccurrenceKey", (0, _generateUniqueId.generateUniqueId)());
109
109
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasBeenMounted", false);
110
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fileStateFlags", {
111
+ wasStatusUploading: false,
112
+ wasStatusProcessing: false
113
+ });
110
114
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPreAnchorRef", /*#__PURE__*/(0, _react.createRef)());
111
115
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPostAnchorRef", /*#__PURE__*/(0, _react.createRef)());
112
116
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ssrReliability", {
@@ -472,7 +476,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
472
476
  dimensions = _this$props7.dimensions,
473
477
  selected = _this$props7.selected,
474
478
  testId = _this$props7.testId,
475
- originalDimensions = _this$props7.originalDimensions;
479
+ originalDimensions = _this$props7.originalDimensions,
480
+ onFullscreenChange = _this$props7.onFullscreenChange;
476
481
  var _this$state = _this.state,
477
482
  shouldAutoplay = _this$state.shouldAutoplay,
478
483
  cardPreview = _this$state.cardPreview;
@@ -482,6 +487,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
482
487
  originalDimensions: originalDimensions,
483
488
  identifier: identifier,
484
489
  autoplay: !!shouldAutoplay,
490
+ onFullscreenChange: onFullscreenChange,
485
491
  onError: _this.onInlinePlayerError,
486
492
  onClick: _this.onClick,
487
493
  selected: selected,
@@ -815,6 +821,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
815
821
  var isDifferent = (0, _mediaClient2.isDifferentIdentifier)(prevIdentifier, identifier);
816
822
  var turnedVisible = !prevIsCardVisible && isCardVisible;
817
823
  var isNewMediaClient = prevMediaClient !== mediaClient;
824
+ this.updateFileStateFlag(fileState);
818
825
 
819
826
  if ((0, _mediaClient2.isExternalImageIdentifier)(identifier) && isDifferent) {
820
827
  this.fireCommencedEvent();
@@ -890,6 +897,21 @@ var CardBase = /*#__PURE__*/function (_Component) {
890
897
  this.fireCommencedEvent();
891
898
  this.subscribeInternalFile(identifier);
892
899
  }
900
+ }, {
901
+ key: "updateFileStateFlag",
902
+ value: function updateFileStateFlag(fileState) {
903
+ if (!fileState) {
904
+ return;
905
+ }
906
+
907
+ var status = fileState.status;
908
+
909
+ if (status === 'processing') {
910
+ this.fileStateFlags.wasStatusProcessing = true;
911
+ } else if (status === 'uploading') {
912
+ this.fileStateFlags.wasStatusUploading = true;
913
+ }
914
+ }
893
915
  }, {
894
916
  key: "subscribeInternalFile",
895
917
  value: function subscribeInternalFile(identifier) {
@@ -957,7 +979,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
957
979
  error = _this$state7.error;
958
980
  var createAnalyticsEvent = this.props.createAnalyticsEvent;
959
981
  createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
960
- (0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.ssrReliability, error);
982
+ (0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
961
983
  }
962
984
  }, {
963
985
  key: "fireCommencedEvent",
@@ -1031,7 +1053,7 @@ var Card = (0, _mediaCommon.withMediaAnalyticsContext)({
1031
1053
  componentName: 'mediaCard',
1032
1054
  component: 'mediaCard'
1033
1055
  }, {
1034
- filterFeatureFlags: (0, _cardAnalytics.getRelevantFeatureFlagNames)()
1056
+ filterFeatureFlags: _analytics.LOGGED_FEATURE_FLAGS
1035
1057
  })((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardBase, {
1036
1058
  enforceContext: false
1037
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; }
@@ -297,7 +295,6 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
297
295
  });
298
296
 
299
297
  case 'processing':
300
- case 'loading-preview':
301
298
  return _objectSpread(_objectSpread({}, defaultConfig), {}, {
302
299
  iconMessage: !didImageRender && !isZeroSize ? /*#__PURE__*/_react.default.createElement(_iconMessage.CreatingPreview, {
303
300
  disableAnimation: disableAnimation
@@ -347,6 +344,7 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
347
344
  iconMessage: iconMessage
348
345
  });
349
346
 
347
+ case 'loading-preview':
350
348
  case 'loading':
351
349
  default:
352
350
  return _objectSpread(_objectSpread({}, defaultConfig), {}, {
@@ -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;
@@ -15,6 +15,8 @@ var _version = require("../version.json");
15
15
 
16
16
  var _analytics = require("./analytics");
17
17
 
18
+ var _mediaClient = require("@atlaskit/media-client");
19
+
18
20
  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; }
19
21
 
20
22
  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; }
@@ -28,7 +30,8 @@ var getExperience = function getExperience(id) {
28
30
  component: 'media-card'
29
31
  },
30
32
  type: _ufo.ExperienceTypes.Experience,
31
- performanceType: _ufo.ExperiencePerformanceTypes.InlineResult
33
+ performanceType: _ufo.ExperiencePerformanceTypes.InlineResult,
34
+ featureFlags: _analytics.LOGGED_FEATURE_FLAG_KEYS
32
35
  };
33
36
  concurrentExperience = new _ufo.ConcurrentExperience('media-card-render', inlineExperience);
34
37
  }
@@ -42,12 +45,13 @@ var startUfoExperience = function startUfoExperience(id) {
42
45
 
43
46
  exports.startUfoExperience = startUfoExperience;
44
47
 
45
- var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, ssrReliability, error) {
48
+ var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, fileStateFlags, ssrReliability, error) {
46
49
  switch (status) {
47
50
  case 'complete':
48
51
  succeedUfoExperience(id, {
49
52
  fileAttributes: fileAttributes,
50
- ssrReliability: ssrReliability
53
+ ssrReliability: ssrReliability,
54
+ fileStateFlags: fileStateFlags
51
55
  });
52
56
  break;
53
57
 
@@ -55,7 +59,8 @@ var completeUfoExperience = function completeUfoExperience(id, status, fileAttri
55
59
  failUfoExperience(id, {
56
60
  fileAttributes: fileAttributes,
57
61
  failReason: 'failed-processing',
58
- ssrReliability: ssrReliability
62
+ ssrReliability: ssrReliability,
63
+ fileStateFlags: fileStateFlags
59
64
  });
60
65
  break;
61
66
 
@@ -64,7 +69,8 @@ var completeUfoExperience = function completeUfoExperience(id, status, fileAttri
64
69
  fileAttributes: fileAttributes
65
70
  }, (0, _analytics.extractErrorInfo)(error)), {}, {
66
71
  request: (0, _analytics.getRenderErrorRequestMetadata)(error),
67
- ssrReliability: ssrReliability
72
+ ssrReliability: ssrReliability,
73
+ fileStateFlags: fileStateFlags
68
74
  }));
69
75
  break;
70
76
  }
@@ -76,7 +82,9 @@ var succeedUfoExperience = function succeedUfoExperience(id, properties) {
76
82
  getExperience(id).success({
77
83
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
78
84
  packageName: _version.name,
79
- packageVersion: _version.version
85
+ packageVersion: _version.version,
86
+ mediaEnvironment: (0, _mediaClient.getMediaEnvironment)(),
87
+ mediaRegion: (0, _mediaClient.getMediaRegion)()
80
88
  })
81
89
  });
82
90
  };
@@ -85,7 +93,9 @@ var failUfoExperience = function failUfoExperience(id, properties) {
85
93
  getExperience(id).failure({
86
94
  metadata: _objectSpread(_objectSpread({}, properties), {}, {
87
95
  packageName: _version.name,
88
- packageVersion: _version.version
96
+ packageVersion: _version.version,
97
+ mediaEnvironment: (0, _mediaClient.getMediaEnvironment)(),
98
+ mediaRegion: (0, _mediaClient.getMediaRegion)()
89
99
  })
90
100
  });
91
101
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "73.5.0",
3
+ "version": "73.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,13 +1,4 @@
1
- import { filterFeatureFlagNames } from '@atlaskit/media-common';
2
1
  import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
3
- export const getRelevantFeatureFlagNames = () => filterFeatureFlagNames({
4
- newCardExperience: true,
5
- captions: true,
6
- timestampOnVideo: true,
7
- observedWidth: true,
8
- mediaInline: false,
9
- folderUploads: false
10
- });
11
2
  export const fireOperationalEvent = (createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) => {
12
3
  const fireEvent = payload => fireMediaCardEvent(payload, createAnalyticsEvent);
13
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, 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';
@@ -37,6 +37,11 @@ export class CardBase extends Component {
37
37
 
38
38
  _defineProperty(this, "hasBeenMounted", false);
39
39
 
40
+ _defineProperty(this, "fileStateFlags", {
41
+ wasStatusUploading: false,
42
+ wasStatusProcessing: false
43
+ });
44
+
40
45
  _defineProperty(this, "viewportPreAnchorRef", /*#__PURE__*/createRef());
41
46
 
42
47
  _defineProperty(this, "viewportPostAnchorRef", /*#__PURE__*/createRef());
@@ -386,7 +391,8 @@ export class CardBase extends Component {
386
391
  dimensions,
387
392
  selected,
388
393
  testId,
389
- originalDimensions
394
+ originalDimensions,
395
+ onFullscreenChange
390
396
  } = this.props;
391
397
  const {
392
398
  shouldAutoplay,
@@ -398,6 +404,7 @@ export class CardBase extends Component {
398
404
  originalDimensions: originalDimensions,
399
405
  identifier: identifier,
400
406
  autoplay: !!shouldAutoplay,
407
+ onFullscreenChange: onFullscreenChange,
401
408
  onError: this.onInlinePlayerError,
402
409
  onClick: this.onClick,
403
410
  selected: selected,
@@ -763,6 +770,7 @@ export class CardBase extends Component {
763
770
  const isDifferent = isDifferentIdentifier(prevIdentifier, identifier);
764
771
  const turnedVisible = !prevIsCardVisible && isCardVisible;
765
772
  const isNewMediaClient = prevMediaClient !== mediaClient;
773
+ this.updateFileStateFlag(fileState);
766
774
 
767
775
  if (isExternalImageIdentifier(identifier) && isDifferent) {
768
776
  this.fireCommencedEvent();
@@ -839,6 +847,22 @@ export class CardBase extends Component {
839
847
  this.subscribeInternalFile(identifier);
840
848
  }
841
849
 
850
+ updateFileStateFlag(fileState) {
851
+ if (!fileState) {
852
+ return;
853
+ }
854
+
855
+ const {
856
+ status
857
+ } = fileState;
858
+
859
+ if (status === 'processing') {
860
+ this.fileStateFlags.wasStatusProcessing = true;
861
+ } else if (status === 'uploading') {
862
+ this.fileStateFlags.wasStatusUploading = true;
863
+ }
864
+ }
865
+
842
866
  subscribeInternalFile(identifier) {
843
867
  const {
844
868
  mediaClient
@@ -908,7 +932,7 @@ export class CardBase extends Component {
908
932
  createAnalyticsEvent
909
933
  } = this.props;
910
934
  createAnalyticsEvent && fireOperationalEvent(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
911
- completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.ssrReliability, error);
935
+ completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
912
936
  }
913
937
 
914
938
  fireCommencedEvent() {
@@ -979,7 +1003,7 @@ export const Card = withMediaAnalyticsContext({
979
1003
  componentName: 'mediaCard',
980
1004
  component: 'mediaCard'
981
1005
  }, {
982
- filterFeatureFlags: getRelevantFeatureFlagNames()
1006
+ filterFeatureFlags: LOGGED_FEATURE_FLAGS
983
1007
  })(withAnalyticsEvents()(injectIntl(CardBase, {
984
1008
  enforceContext: false
985
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
@@ -237,7 +236,6 @@ export class CardViewBase extends React.Component {
237
236
  };
238
237
 
239
238
  case 'processing':
240
- case 'loading-preview':
241
239
  return { ...defaultConfig,
242
240
  iconMessage: !didImageRender && !isZeroSize ? /*#__PURE__*/React.createElement(CreatingPreview, {
243
241
  disableAnimation: disableAnimation
@@ -286,6 +284,7 @@ export class CardViewBase extends React.Component {
286
284
  iconMessage
287
285
  };
288
286
 
287
+ case 'loading-preview':
289
288
  case 'loading':
290
289
  default:
291
290
  return { ...defaultConfig,
@@ -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
  };