@atlaskit/media-card 77.1.1 → 77.2.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 (51) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/card/card.js +17 -13
  3. package/dist/cjs/card/cardState.js +1 -1
  4. package/dist/cjs/card/getCardPreview/index.js +2 -5
  5. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  6. package/dist/cjs/card/useBreakpoint.js +29 -0
  7. package/dist/cjs/card/v2/cardV2.js +22 -20
  8. package/dist/cjs/card/v2/cardViewV2.js +5 -22
  9. package/dist/cjs/card/v2/inlinePlayerLazyV2.js +35 -0
  10. package/dist/cjs/card/v2/inlinePlayerV2.js +222 -0
  11. package/dist/cjs/inline/loader.js +1 -1
  12. package/dist/cjs/utils/ufoExperiences.js +18 -14
  13. package/dist/es2019/card/card.js +18 -16
  14. package/dist/es2019/card/cardState.js +1 -1
  15. package/dist/es2019/card/getCardPreview/index.js +0 -5
  16. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  17. package/dist/es2019/card/useBreakpoint.js +22 -0
  18. package/dist/es2019/card/v2/cardV2.js +23 -23
  19. package/dist/es2019/card/v2/cardViewV2.js +4 -18
  20. package/dist/es2019/card/v2/inlinePlayerLazyV2.js +10 -0
  21. package/dist/es2019/card/v2/inlinePlayerV2.js +164 -0
  22. package/dist/es2019/inline/loader.js +1 -1
  23. package/dist/es2019/utils/ufoExperiences.js +18 -9
  24. package/dist/esm/card/card.js +18 -14
  25. package/dist/esm/card/cardState.js +1 -1
  26. package/dist/esm/card/getCardPreview/index.js +2 -5
  27. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  28. package/dist/esm/card/useBreakpoint.js +24 -0
  29. package/dist/esm/card/v2/cardV2.js +23 -21
  30. package/dist/esm/card/v2/cardViewV2.js +7 -24
  31. package/dist/esm/card/v2/inlinePlayerLazyV2.js +23 -0
  32. package/dist/esm/card/v2/inlinePlayerV2.js +212 -0
  33. package/dist/esm/inline/loader.js +1 -1
  34. package/dist/esm/utils/ufoExperiences.js +17 -13
  35. package/dist/types/card/card.d.ts +1 -0
  36. package/dist/types/card/cardState.d.ts +1 -2
  37. package/dist/types/card/getCardPreview/index.d.ts +4 -10
  38. package/dist/types/card/useBreakpoint.d.ts +3 -0
  39. package/dist/types/card/v2/cardV2.d.ts +3 -2
  40. package/dist/types/card/v2/inlinePlayerLazyV2.d.ts +2 -0
  41. package/dist/types/card/v2/inlinePlayerV2.d.ts +23 -0
  42. package/dist/types/utils/ufoExperiences.d.ts +7 -0
  43. package/dist/types-ts4.5/card/card.d.ts +1 -0
  44. package/dist/types-ts4.5/card/cardState.d.ts +1 -2
  45. package/dist/types-ts4.5/card/getCardPreview/index.d.ts +4 -10
  46. package/dist/types-ts4.5/card/useBreakpoint.d.ts +3 -0
  47. package/dist/types-ts4.5/card/v2/cardV2.d.ts +3 -2
  48. package/dist/types-ts4.5/card/v2/inlinePlayerLazyV2.d.ts +2 -0
  49. package/dist/types-ts4.5/card/v2/inlinePlayerV2.d.ts +23 -0
  50. package/dist/types-ts4.5/utils/ufoExperiences.d.ts +7 -0
  51. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 77.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#41358](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41358) [`80f2161f1bb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/80f2161f1bb) - MEX-2581 Convert inline player base to functional component
8
+
9
+ ## 77.1.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#41371](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41371) [`a5766038a35`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a5766038a35) - Fix TS errors in AFM
14
+ - [#41070](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41070) [`d86446f88c8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d86446f88c8) - The UFO experience is aborted if it hasn't completed when Card is unmounted
15
+ - Updated dependencies
16
+
3
17
  ## 77.1.1
4
18
 
5
19
  ### Patch Changes
@@ -49,7 +49,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
49
49
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
50
50
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
51
  var packageName = "@atlaskit/media-card";
52
- var packageVersion = "77.1.1";
52
+ var packageVersion = "77.2.0";
53
53
  var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
54
54
  (0, _inherits2.default)(CardBase, _Component);
55
55
  var _super = _createSuper(CardBase);
@@ -117,8 +117,7 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
117
117
  var _this$props2 = _this.props,
118
118
  _this$props2$dimensio = _this$props2.dimensions,
119
119
  dimensions = _this$props2$dimensio === void 0 ? {} : _this$props2$dimensio,
120
- mediaClient = _this$props2.mediaClient,
121
- createAnalyticsEvent = _this$props2.createAnalyticsEvent;
120
+ mediaClient = _this$props2.mediaClient;
122
121
  return {
123
122
  mediaClient: mediaClient,
124
123
  id: id,
@@ -128,8 +127,6 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
128
127
  isRemotePreviewReady: (0, _mediaClient2.isImageRepresentationReady)(fileState),
129
128
  imageUrlParams: _this.getImageURLParams(identifier),
130
129
  mediaBlobUrlAttrs: _this.getMediaBlobUrlAttrs(identifier, fileState),
131
- createAnalyticsEvent: createAnalyticsEvent,
132
- featureFlags: _this.props.featureFlags,
133
130
  traceContext: _this.traceContext
134
131
  };
135
132
  });
@@ -768,10 +765,8 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
768
765
  mediaClient = _this$props12.mediaClient,
769
766
  identifier = _this$props12.identifier,
770
767
  dimensions = _this$props12.dimensions,
771
- featureFlags = _this$props12.featureFlags,
772
768
  useInlinePlayer = _this$props12.useInlinePlayer,
773
769
  disableOverlay = _this$props12.disableOverlay,
774
- resizeMode = _this$props12.resizeMode,
775
770
  ssr = _this$props12.ssr;
776
771
  var _this$state4 = this.state,
777
772
  isCardVisible = _this$state4.isCardVisible,
@@ -798,7 +793,6 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
798
793
  var turnedVisible = !prevIsCardVisible && isCardVisible;
799
794
  var hadSSRCardPreview = !!prevCardPreview && (0, _getCardPreview.isSSRClientPreview)(prevCardPreview) && !cardPreview;
800
795
  var isNewMediaClient = prevMediaClient !== mediaClient;
801
- var fileImageMode = (0, _mediaClient2.imageResizeModeToFileImageMode)(resizeMode);
802
796
  this.updateFileStateFlag(fileState);
803
797
  if ((0, _mediaClient2.isExternalImageIdentifier)(identifier) && isDiffIdentifier) {
804
798
  this.fireCommencedEvent();
@@ -837,9 +831,6 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
837
831
  fileState: fileState,
838
832
  prevDimensions: prevDimensions,
839
833
  dimensions: dimensions,
840
- identifier: identifier,
841
- fileImageMode: fileImageMode,
842
- featureFlags: featureFlags,
843
834
  hasCardPreview: !!cardPreview,
844
835
  isBannedLocalPreview: isBannedLocalPreview,
845
836
  wasResolvedUpfrontPreview: wasResolvedUpfrontPreview
@@ -873,6 +864,7 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
873
864
  key: "componentWillUnmount",
874
865
  value: function componentWillUnmount() {
875
866
  var _getDocument2;
867
+ this.fireAbortedEvent();
876
868
  this.hasBeenMounted = false;
877
869
  this.unsubscribe();
878
870
  (_getDocument2 = (0, _document.default)()) === null || _getDocument2 === void 0 || _getDocument2.removeEventListener('copy', this.fireCopiedEvent);
@@ -911,8 +903,7 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
911
903
  occurrenceKey: occurrenceKey
912
904
  }).subscribe({
913
905
  next: function next(fileState) {
914
- var featureFlags = _this2.props.featureFlags;
915
- var newState = (0, _cardState.getCardStateFromFileState)(fileState, isBannedLocalPreview, featureFlags);
906
+ var newState = (0, _cardState.getCardStateFromFileState)(fileState, isBannedLocalPreview);
916
907
  _this2.safeSetState(newState);
917
908
  },
918
909
  error: function error(e) {
@@ -959,6 +950,19 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
959
950
  createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error, this.traceContext, fileState === null || fileState === void 0 ? void 0 : fileState.metadataTraceContext);
960
951
  (0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.fileStateFlags, this.ssrReliability, error);
961
952
  }
953
+ }, {
954
+ key: "fireAbortedEvent",
955
+ value: function fireAbortedEvent() {
956
+ var fileAttributes = this.fileAttributes,
957
+ fileStateFlags = this.fileStateFlags,
958
+ ssrReliability = this.ssrReliability;
959
+ // UFO won't abort if it's already in a final state (succeeded, failed, aborted, etc)
960
+ (0, _ufoExperiences.abortUfoExperience)(this.internalOccurrenceKey, {
961
+ fileAttributes: fileAttributes,
962
+ fileStateFlags: fileStateFlags,
963
+ ssrReliability: ssrReliability
964
+ });
965
+ }
962
966
  }, {
963
967
  key: "fireCommencedEvent",
964
968
  value: function fireCommencedEvent() {
@@ -24,7 +24,7 @@ var createStateUpdater = exports.createStateUpdater = function createStateUpdate
24
24
  return newState;
25
25
  };
26
26
  };
27
- var getCardStateFromFileState = exports.getCardStateFromFileState = function getCardStateFromFileState(fileState, isBannedLocalPreview, featureFlags) {
27
+ var getCardStateFromFileState = exports.getCardStateFromFileState = function getCardStateFromFileState(fileState, isBannedLocalPreview) {
28
28
  var status = (0, _getCardStatus.getCardStatus)(fileState.status, (0, _getCardPreview.extractFilePreviewStatus)(fileState, isBannedLocalPreview));
29
29
  var error = status === 'error' && (0, _mediaClient.isErrorFileState)(fileState) ? new _errors.MediaCardError('error-file-state', new Error(fileState.message)) : undefined;
30
30
  var progress = status === 'uploading' && fileState.status === 'uploading' ? fileState.progress : 1;
@@ -96,11 +96,11 @@ var extendAndCachePreview = function extendAndCachePreview(id, mode, preview, me
96
96
  */
97
97
  var getCardPreview = exports.getCardPreview = /*#__PURE__*/function () {
98
98
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
99
- var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, createAnalyticsEvent, featureFlags, traceContext, mode, cachedPreview, dimensionsAreBigger, localPreview, remotePreview;
99
+ var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, traceContext, mode, cachedPreview, dimensionsAreBigger, localPreview, remotePreview;
100
100
  return _regenerator.default.wrap(function _callee$(_context) {
101
101
  while (1) switch (_context.prev = _context.next) {
102
102
  case 0:
103
- mediaClient = _ref.mediaClient, id = _ref.id, _ref$dimensions = _ref.dimensions, dimensions = _ref$dimensions === void 0 ? {} : _ref$dimensions, filePreview = _ref.filePreview, onLocalPreviewError = _ref.onLocalPreviewError, isRemotePreviewReady = _ref.isRemotePreviewReady, imageUrlParams = _ref.imageUrlParams, mediaBlobUrlAttrs = _ref.mediaBlobUrlAttrs, createAnalyticsEvent = _ref.createAnalyticsEvent, featureFlags = _ref.featureFlags, traceContext = _ref.traceContext;
103
+ mediaClient = _ref.mediaClient, id = _ref.id, _ref$dimensions = _ref.dimensions, dimensions = _ref$dimensions === void 0 ? {} : _ref$dimensions, filePreview = _ref.filePreview, onLocalPreviewError = _ref.onLocalPreviewError, isRemotePreviewReady = _ref.isRemotePreviewReady, imageUrlParams = _ref.imageUrlParams, mediaBlobUrlAttrs = _ref.mediaBlobUrlAttrs, traceContext = _ref.traceContext;
104
104
  mode = imageUrlParams.mode;
105
105
  cachedPreview = _cache.default.get(id, mode);
106
106
  dimensionsAreBigger = (0, _dimensionComparer.isBigger)(cachedPreview === null || cachedPreview === void 0 ? void 0 : cachedPreview.dimensions, dimensions);
@@ -177,11 +177,8 @@ var shouldResolvePreview = exports.shouldResolvePreview = function shouldResolve
177
177
  fileState = _ref3.fileState,
178
178
  prevDimensions = _ref3.prevDimensions,
179
179
  dimensions = _ref3.dimensions,
180
- identifier = _ref3.identifier,
181
- fileImageMode = _ref3.fileImageMode,
182
180
  hasCardPreview = _ref3.hasCardPreview,
183
181
  isBannedLocalPreview = _ref3.isBannedLocalPreview,
184
- featureFlags = _ref3.featureFlags,
185
182
  wasResolvedUpfrontPreview = _ref3.wasResolvedUpfrontPreview;
186
183
  var statusIsPreviewable = (0, _filePreviewStatus.isPreviewableStatus)(status, (0, _filePreviewStatus.extractFilePreviewStatus)(fileState, isBannedLocalPreview));
187
184
  var dimensionsAreBigger = (0, _dimensionComparer.isBigger)(prevDimensions, dimensions);
@@ -90,7 +90,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
90
90
  }(_react.default.Component);
91
91
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
92
92
  var packageName = "@atlaskit/media-card";
93
- var packageVersion = "77.1.1";
93
+ var packageVersion = "77.2.0";
94
94
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
95
95
  packageVersion: packageVersion,
96
96
  packageName: packageName,
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBreakpoint = void 0;
7
+ var _react = require("react");
8
+ var _styles = require("./ui/styles");
9
+ var _utils = require("../utils");
10
+ // Hook to calculate the breakpoint based on the width of the element
11
+ var useBreakpoint = exports.useBreakpoint = function useBreakpoint() {
12
+ var dimensionWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
13
+ var divRef = arguments.length > 1 ? arguments[1] : undefined;
14
+ var breakpoint = (0, _react.useMemo)(function () {
15
+ var widthToCalculate;
16
+ if (dimensionWidth) {
17
+ if ((0, _utils.isValidPercentageUnit)(dimensionWidth) && divRef.current) {
18
+ var width = (0, _utils.getElementDimension)(divRef.current, 'width');
19
+ widthToCalculate = width || _utils.defaultImageCardDimensions.width;
20
+ } else {
21
+ widthToCalculate = dimensionWidth;
22
+ }
23
+ } else {
24
+ widthToCalculate = _utils.defaultImageCardDimensions.width;
25
+ }
26
+ return (0, _styles.calcBreakpointSize)(parseInt("".concat(widthToCalculate), 10));
27
+ }, [dimensionWidth, divRef]);
28
+ return breakpoint;
29
+ };
@@ -31,7 +31,7 @@ var _videoIsPlayable = require("../../utils/videoIsPlayable");
31
31
  var _getDataURIDimension = require("../../utils/getDataURIDimension");
32
32
  var _getCardPreview = require("../getCardPreview");
33
33
  var _metadata = require("../../utils/metadata");
34
- var _inlinePlayerLazy = require("../inlinePlayerLazy");
34
+ var _inlinePlayerLazyV = require("./inlinePlayerLazyV2");
35
35
  var _analytics = require("../../utils/analytics");
36
36
  var _errors = require("../../errors");
37
37
  var _cardAnalytics = require("../cardAnalytics");
@@ -50,7 +50,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
50
50
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
51
51
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
52
52
  var packageName = "@atlaskit/media-card";
53
- var packageVersion = "77.1.1";
53
+ var packageVersion = "77.2.0";
54
54
  var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
55
55
  (0, _inherits2.default)(CardV2Base, _Component);
56
56
  var _super = _createSuper(CardV2Base);
@@ -118,8 +118,7 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
118
118
  var _this$props2 = _this.props,
119
119
  _this$props2$dimensio = _this$props2.dimensions,
120
120
  dimensions = _this$props2$dimensio === void 0 ? {} : _this$props2$dimensio,
121
- mediaClient = _this$props2.mediaClient,
122
- createAnalyticsEvent = _this$props2.createAnalyticsEvent;
121
+ mediaClient = _this$props2.mediaClient;
123
122
  return {
124
123
  mediaClient: mediaClient,
125
124
  id: id,
@@ -129,8 +128,6 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
129
128
  isRemotePreviewReady: (0, _mediaClient2.isImageRepresentationReady)(fileState),
130
129
  imageUrlParams: _this.getImageURLParams(identifier),
131
130
  mediaBlobUrlAttrs: _this.getMediaBlobUrlAttrs(identifier, fileState),
132
- createAnalyticsEvent: createAnalyticsEvent,
133
- featureFlags: _this.props.featureFlags,
134
131
  traceContext: _this.traceContext
135
132
  };
136
133
  });
@@ -273,8 +270,7 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
273
270
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "subscribeFileState", function (fileState) {
274
271
  var isBannedLocalPreview = _this.state.isBannedLocalPreview;
275
272
  if (fileState.status !== 'error') {
276
- var featureFlags = _this.props.featureFlags;
277
- var newState = (0, _cardState.getCardStateFromFileState)(fileState, isBannedLocalPreview, featureFlags);
273
+ var newState = (0, _cardState.getCardStateFromFileState)(fileState, isBannedLocalPreview);
278
274
  _this.safeSetState(newState);
279
275
  } else {
280
276
  var e = new _errors.MediaFileStateError(fileState.id, fileState.reason, fileState.message, fileState.details);
@@ -456,7 +452,6 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
456
452
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderInlinePlayer", function () {
457
453
  var _this$props6 = _this.props,
458
454
  identifier = _this$props6.identifier,
459
- mediaClient = _this$props6.mediaClient,
460
455
  dimensions = _this$props6.dimensions,
461
456
  selected = _this$props6.selected,
462
457
  testId = _this$props6.testId,
@@ -468,8 +463,7 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
468
463
  var card = _this.renderCard(false, 'loading', false);
469
464
  return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
470
465
  fallback: card
471
- }, /*#__PURE__*/_react.default.createElement(_inlinePlayerLazy.InlinePlayerLazy, {
472
- mediaClient: mediaClient,
466
+ }, /*#__PURE__*/_react.default.createElement(_inlinePlayerLazyV.InlinePlayerLazyV2, {
473
467
  dimensions: dimensions,
474
468
  originalDimensions: originalDimensions,
475
469
  identifier: identifier,
@@ -736,7 +730,7 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
736
730
  ssr = _this$props11.ssr,
737
731
  dimensions = _this$props11.dimensions;
738
732
  if (isCardVisible && (0, _mediaClient2.isFileIdentifier)(identifier)) {
739
- this.updateStateForIdentifier(identifier);
733
+ this.updateStateForIdentifier();
740
734
  if (!cardPreview) {
741
735
  this.resolveUpfrontPreview(identifier);
742
736
  }
@@ -773,10 +767,8 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
773
767
  mediaClient = _this$props12.mediaClient,
774
768
  identifier = _this$props12.identifier,
775
769
  dimensions = _this$props12.dimensions,
776
- featureFlags = _this$props12.featureFlags,
777
770
  useInlinePlayer = _this$props12.useInlinePlayer,
778
771
  disableOverlay = _this$props12.disableOverlay,
779
- resizeMode = _this$props12.resizeMode,
780
772
  ssr = _this$props12.ssr;
781
773
  var _this$state4 = this.state,
782
774
  isCardVisible = _this$state4.isCardVisible,
@@ -803,7 +795,6 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
803
795
  var turnedVisible = !prevIsCardVisible && isCardVisible;
804
796
  var hadSSRCardPreview = !!prevCardPreview && (0, _getCardPreview.isSSRClientPreview)(prevCardPreview) && !cardPreview;
805
797
  var isNewMediaClient = prevMediaClient !== mediaClient;
806
- var fileImageMode = (0, _mediaClient2.imageResizeModeToFileImageMode)(resizeMode);
807
798
  this.updateFileStateFlag(fileState);
808
799
  if ((0, _mediaClient2.isExternalImageIdentifier)(identifier) && isDiffIdentifier) {
809
800
  this.fireCommencedEvent();
@@ -824,7 +815,7 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
824
815
  this.refetchSSRPreview(identifier);
825
816
  }
826
817
  if ((0, _mediaClient2.isFileIdentifier)(identifier) && (turnedVisible || !!this.subscription && (isNewMediaClient || isDiffIdentifier))) {
827
- this.updateStateForIdentifier(identifier);
818
+ this.updateStateForIdentifier();
828
819
  }
829
820
  if (this.state.status !== prevState.status) {
830
821
  this.fireOperationalEvent();
@@ -842,9 +833,6 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
842
833
  fileState: fileState,
843
834
  prevDimensions: prevDimensions,
844
835
  dimensions: dimensions,
845
- identifier: identifier,
846
- fileImageMode: fileImageMode,
847
- featureFlags: featureFlags,
848
836
  hasCardPreview: !!cardPreview,
849
837
  isBannedLocalPreview: isBannedLocalPreview,
850
838
  wasResolvedUpfrontPreview: wasResolvedUpfrontPreview
@@ -884,12 +872,13 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
884
872
  key: "componentWillUnmount",
885
873
  value: function componentWillUnmount() {
886
874
  var _getDocument2;
875
+ this.fireAbortedEvent();
887
876
  this.hasBeenMounted = false;
888
877
  (_getDocument2 = (0, _document.default)()) === null || _getDocument2 === void 0 || _getDocument2.removeEventListener('copy', this.fireCopiedEvent);
889
878
  }
890
879
  }, {
891
880
  key: "updateStateForIdentifier",
892
- value: function updateStateForIdentifier(identifier) {
881
+ value: function updateStateForIdentifier() {
893
882
  this.fireCommencedEvent();
894
883
  this.setState({
895
884
  shouldUpdateStateForIdentifier: true
@@ -954,6 +943,19 @@ var CardV2Base = exports.CardV2Base = /*#__PURE__*/function (_Component) {
954
943
  }, this.traceContext);
955
944
  (0, _ufoExperiences.startUfoExperience)(this.internalOccurrenceKey);
956
945
  }
946
+ }, {
947
+ key: "fireAbortedEvent",
948
+ value: function fireAbortedEvent() {
949
+ var fileAttributes = this.fileAttributes,
950
+ fileStateFlags = this.fileStateFlags,
951
+ ssrReliability = this.ssrReliability;
952
+ // UFO won't abort if it's already in a final state (succeeded, failed, aborted, etc)
953
+ (0, _ufoExperiences.abortUfoExperience)(this.internalOccurrenceKey, {
954
+ fileAttributes: fileAttributes,
955
+ fileStateFlags: fileStateFlags,
956
+ ssrReliability: ssrReliability
957
+ });
958
+ }
957
959
  }, {
958
960
  key: "actions",
959
961
  get: function get() {
@@ -15,9 +15,6 @@ var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
15
15
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
16
16
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
17
  var _mediaUi = require("@atlaskit/media-ui");
18
- var _cardDimensions = require("../../utils/cardDimensions");
19
- var _isValidPercentageUnit = require("../../utils/isValidPercentageUnit");
20
- var _getElementDimension = require("../../utils/getElementDimension");
21
18
  var _analytics = require("../../utils/analytics");
22
19
  var _actions = require("../actions");
23
20
  var _styles = require("../ui/styles");
@@ -34,6 +31,7 @@ var _iconMessage2 = require("../ui/iconMessage");
34
31
  var _errors = require("../../errors");
35
32
  var _wrapper = require("../ui/wrapper");
36
33
  var _classnames = require("../classnames");
34
+ var _useBreakpoint = require("../useBreakpoint");
37
35
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
37
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -67,24 +65,13 @@ var CardViewV2Base = exports.CardViewV2Base = function CardViewV2Base(_ref) {
67
65
  titleBoxIcon = _ref.titleBoxIcon,
68
66
  error = _ref.error,
69
67
  disableAnimation = _ref.disableAnimation;
70
- var _useState = (0, _react2.useState)(),
68
+ var _useState = (0, _react2.useState)(false),
71
69
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
- elementWidth = _useState2[0],
73
- setElementWidth = _useState2[1];
74
- var _useState3 = (0, _react2.useState)(false),
75
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
76
- didImageRender = _useState4[0],
77
- setDidImageRender = _useState4[1];
70
+ didImageRender = _useState2[0],
71
+ setDidImageRender = _useState2[1];
78
72
  var divRef = (0, _react2.useRef)(null);
79
73
  var prevCardPreviewRef = (0, _react2.useRef)();
80
- var width = (dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) || 0;
81
- (0, _react2.useEffect)(function () {
82
- // If the dimensions.width is a percentage, we need to transform it into a pixel value in order to get the right breakpoints applied.
83
- if (width && (0, _isValidPercentageUnit.isValidPercentageUnit)(width) && !!divRef.current) {
84
- var _elementWidth = (0, _getElementDimension.getElementDimension)(divRef.current, 'width');
85
- setElementWidth(_elementWidth);
86
- }
87
- }, [width]);
74
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
88
75
  (0, _react2.useEffect)(function () {
89
76
  innerRef && !!divRef.current && innerRef(divRef.current);
90
77
  }, [innerRef]);
@@ -114,10 +101,6 @@ var CardViewV2Base = exports.CardViewV2Base = function CardViewV2Base(_ref) {
114
101
  setDidImageRender(false);
115
102
  onImageError === null || onImageError === void 0 || onImageError(cardPreview);
116
103
  };
117
- var breakpoint = (0, _react2.useMemo)(function () {
118
- var width = elementWidth || (dimensions ? dimensions.width : '') || _cardDimensions.defaultImageCardDimensions.width;
119
- return (0, _styles.calcBreakpointSize)(parseInt("".concat(width), 10));
120
- }, [elementWidth, dimensions]);
121
104
  var shouldRenderPlayButton = function shouldRenderPlayButton() {
122
105
  var _ref2 = metadata || {},
123
106
  mediaType = _ref2.mediaType;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.InlinePlayerLazyV2 = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _react = require("react");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ var InlinePlayerLazyV2 = exports.InlinePlayerLazyV2 = /*#__PURE__*/(0, _react.lazy)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
15
+ var _yield$import, InlinePlayerV2;
16
+ return _regenerator.default.wrap(function _callee$(_context) {
17
+ while (1) switch (_context.prev = _context.next) {
18
+ case 0:
19
+ _context.next = 2;
20
+ return Promise.resolve().then(function () {
21
+ return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_media-card-inlineplayer-v2" */
22
+ './inlinePlayerV2'));
23
+ });
24
+ case 2:
25
+ _yield$import = _context.sent;
26
+ InlinePlayerV2 = _yield$import.InlinePlayerV2;
27
+ return _context.abrupt("return", {
28
+ default: InlinePlayerV2
29
+ });
30
+ case 5:
31
+ case "end":
32
+ return _context.stop();
33
+ }
34
+ }, _callee);
35
+ })));
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getPreferredVideoArtifact = exports.InlinePlayerV2 = exports.InlinePlayerBaseV2 = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _mediaClient = require("@atlaskit/media-client");
15
+ var _mediaUi = require("@atlaskit/media-ui");
16
+ var _utils = require("../../utils");
17
+ var _cardLoading = require("../../utils/lightCards/cardLoading");
18
+ var _progressBar = require("../ui/progressBar/progressBar");
19
+ var _inlinePlayerWrapper = require("../inlinePlayerWrapper");
20
+ var _useBreakpoint = require("../useBreakpoint");
21
+ var _mediaClientReact = require("@atlaskit/media-client-react");
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ var getPreferredVideoArtifact = exports.getPreferredVideoArtifact = function getPreferredVideoArtifact(fileState) {
25
+ if (fileState.status === 'processed' || fileState.status === 'processing') {
26
+ var artifacts = fileState.artifacts;
27
+ if (!artifacts) {
28
+ return undefined;
29
+ }
30
+ return artifacts['video_1280.mp4'] ? 'video_1280.mp4' : artifacts['video_640.mp4'] ? 'video_640.mp4' : undefined;
31
+ }
32
+ return undefined;
33
+ };
34
+ var InlinePlayerBaseV2 = exports.InlinePlayerBaseV2 = function InlinePlayerBaseV2(_ref) {
35
+ var identifier = _ref.identifier,
36
+ onError = _ref.onError,
37
+ onClick = _ref.onClick,
38
+ _ref$dimensions = _ref.dimensions,
39
+ dimensions = _ref$dimensions === void 0 ? _utils.defaultImageCardDimensions : _ref$dimensions,
40
+ originalDimensions = _ref.originalDimensions,
41
+ selected = _ref.selected,
42
+ testId = _ref.testId,
43
+ forwardRef = _ref.forwardRef,
44
+ autoplay = _ref.autoplay,
45
+ cardPreview = _ref.cardPreview,
46
+ onFullscreenChange = _ref.onFullscreenChange;
47
+ // === States ===
48
+ var _useState = (0, _react.useState)(),
49
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
50
+ fileSrc = _useState2[0],
51
+ setFileSrc = _useState2[1];
52
+ var _useState3 = (0, _react.useState)(),
53
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
54
+ isUploading = _useState4[0],
55
+ setIsUploading = _useState4[1];
56
+ var _useState5 = (0, _react.useState)(),
57
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
58
+ progress = _useState6[0],
59
+ setProgress = _useState6[1];
60
+
61
+ // === Refs and Local Variables ===
62
+ var divRef = (0, _react.useRef)(null);
63
+ var onErrorRef = (0, _react.useRef)(onError);
64
+ onErrorRef.current = onError;
65
+ var id = identifier.id,
66
+ collectionName = identifier.collectionName,
67
+ occurrenceKey = identifier.occurrenceKey;
68
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
69
+ var mediaClient = (0, _mediaClientReact.useMediaClient)();
70
+ var _useFileState = (0, _mediaClientReact.useFileState)(id, {
71
+ collectionName: collectionName,
72
+ occurrenceKey: occurrenceKey
73
+ }),
74
+ fileState = _useFileState.fileState;
75
+ (0, _react.useEffect)(function () {
76
+ var subscribeFileState = /*#__PURE__*/function () {
77
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fileState) {
78
+ var _yield$fileState$prev, value, newFileSrc, artifactName, artifacts, _newFileSrc, _newFileSrc2;
79
+ return _regenerator.default.wrap(function _callee$(_context) {
80
+ while (1) switch (_context.prev = _context.next) {
81
+ case 0:
82
+ if (fileState.status === 'uploading') {
83
+ setIsUploading(true);
84
+ setProgress(fileState.progress);
85
+ } else {
86
+ setIsUploading(false);
87
+ }
88
+
89
+ // We reuse the existing fileSrc to prevent re renders, therefore we only perform fileSrc updates when there isn't any
90
+ if (!fileSrc) {
91
+ _context.next = 3;
92
+ break;
93
+ }
94
+ return _context.abrupt("return");
95
+ case 3:
96
+ if (!(fileState.status !== 'error' && fileState.preview)) {
97
+ _context.next = 12;
98
+ break;
99
+ }
100
+ _context.next = 6;
101
+ return fileState.preview;
102
+ case 6:
103
+ _yield$fileState$prev = _context.sent;
104
+ value = _yield$fileState$prev.value;
105
+ if (!(value instanceof Blob && value.type.indexOf('video/') === 0)) {
106
+ _context.next = 12;
107
+ break;
108
+ }
109
+ newFileSrc = URL.createObjectURL(value);
110
+ setFileSrc(newFileSrc);
111
+ return _context.abrupt("return");
112
+ case 12:
113
+ if (!(fileState.status === 'processed' || fileState.status === 'processing')) {
114
+ _context.next = 37;
115
+ break;
116
+ }
117
+ artifactName = getPreferredVideoArtifact(fileState);
118
+ artifacts = fileState.artifacts;
119
+ if (!(!artifactName || !artifacts)) {
120
+ _context.next = 27;
121
+ break;
122
+ }
123
+ _context.prev = 16;
124
+ _context.next = 19;
125
+ return mediaClient.file.getFileBinaryURL(id, collectionName);
126
+ case 19:
127
+ _newFileSrc = _context.sent;
128
+ setFileSrc(_newFileSrc);
129
+ _context.next = 26;
130
+ break;
131
+ case 23:
132
+ _context.prev = 23;
133
+ _context.t0 = _context["catch"](16);
134
+ if (onErrorRef.current && _context.t0 instanceof Error) {
135
+ onErrorRef.current(_context.t0);
136
+ }
137
+ case 26:
138
+ return _context.abrupt("return");
139
+ case 27:
140
+ _context.prev = 27;
141
+ _context.next = 30;
142
+ return mediaClient.file.getArtifactURL(artifacts, artifactName, collectionName);
143
+ case 30:
144
+ _newFileSrc2 = _context.sent;
145
+ setFileSrc(_newFileSrc2);
146
+ _context.next = 37;
147
+ break;
148
+ case 34:
149
+ _context.prev = 34;
150
+ _context.t1 = _context["catch"](27);
151
+ if (onErrorRef.current && _context.t1 instanceof Error) {
152
+ onErrorRef.current(_context.t1);
153
+ }
154
+ case 37:
155
+ case "end":
156
+ return _context.stop();
157
+ }
158
+ }, _callee, null, [[16, 23], [27, 34]]);
159
+ }));
160
+ return function subscribeFileState(_x) {
161
+ return _ref2.apply(this, arguments);
162
+ };
163
+ }();
164
+ if (fileState) {
165
+ subscribeFileState(fileState);
166
+ }
167
+ }, [fileState, collectionName, fileSrc, id, mediaClient]);
168
+ (0, _react.useEffect)(function () {
169
+ return function () {
170
+ fileSrc && URL.revokeObjectURL(fileSrc);
171
+ };
172
+ }, [fileSrc]);
173
+
174
+ // === Render ===
175
+ return fileSrc ? /*#__PURE__*/_react.default.createElement(_inlinePlayerWrapper.InlinePlayerWrapper, {
176
+ testId: testId || 'media-card-inline-player',
177
+ selected: {
178
+ selected: selected
179
+ },
180
+ onClick: onClick,
181
+ innerRef: forwardRef || undefined,
182
+ dimensions: dimensions
183
+ }, /*#__PURE__*/_react.default.createElement(_mediaUi.InactivityDetector, null, function (checkMouseMovement) {
184
+ return /*#__PURE__*/_react.default.createElement(_mediaUi.CustomMediaPlayer, {
185
+ type: "video",
186
+ src: fileSrc,
187
+ onFullscreenChange: onFullscreenChange,
188
+ fileId: id,
189
+ isAutoPlay: autoplay,
190
+ isHDAvailable: false,
191
+ onDownloadClick: function onDownloadClick() {
192
+ mediaClient.file.downloadBinary(id, undefined, collectionName);
193
+ },
194
+ onFirstPlay: function onFirstPlay() {
195
+ _mediaClient.globalMediaEventEmitter.emit('media-viewed', {
196
+ fileId: id,
197
+ viewingLevel: 'full'
198
+ });
199
+ },
200
+ lastWatchTimeConfig: {
201
+ contentId: id
202
+ },
203
+ originalDimensions: originalDimensions,
204
+ showControls: checkMouseMovement,
205
+ poster: cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI
206
+ });
207
+ }), isUploading && /*#__PURE__*/_react.default.createElement(_progressBar.ProgressBar, {
208
+ progress: progress,
209
+ breakpoint: breakpoint,
210
+ positionBottom: true,
211
+ showOnTop: true
212
+ })) : /*#__PURE__*/_react.default.createElement(_cardLoading.CardLoading, {
213
+ testId: testId,
214
+ dimensions: dimensions
215
+ });
216
+ };
217
+ var InlinePlayerForwardRef = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
218
+ return /*#__PURE__*/_react.default.createElement(InlinePlayerBaseV2, (0, _extends2.default)({}, props, {
219
+ forwardRef: ref
220
+ }));
221
+ });
222
+ var InlinePlayerV2 = exports.InlinePlayerV2 = InlinePlayerForwardRef;