@atlaskit/media-card 73.0.0 → 73.1.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 (70) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/actions.js +2 -2
  3. package/dist/cjs/errors.js +7 -5
  4. package/dist/cjs/root/card/cardAnalytics.js +1 -1
  5. package/dist/cjs/root/card/cardState.js +2 -2
  6. package/dist/cjs/root/card/getCardPreview/cache.js +4 -4
  7. package/dist/cjs/root/card/getCardPreview/index.js +2 -2
  8. package/dist/cjs/root/card/index.js +33 -7
  9. package/dist/cjs/root/cardView.js +5 -3
  10. package/dist/cjs/root/inline/loader.js +45 -14
  11. package/dist/cjs/root/inline/mediaInlineCard.js +5 -1
  12. package/dist/cjs/root/inlinePlayer.js +76 -23
  13. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +17 -3
  14. package/dist/cjs/root/ui/loadingRateLimited/styled.js +1 -1
  15. package/dist/cjs/root/ui/progressBar/progressBar.js +5 -2
  16. package/dist/cjs/root/ui/progressBar/styled.js +6 -5
  17. package/dist/cjs/root/ui/styled.js +1 -1
  18. package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +3 -1
  19. package/dist/cjs/utils/viewportDetector.js +49 -22
  20. package/dist/cjs/version.json +1 -1
  21. package/dist/es2019/root/card/cardAnalytics.js +1 -1
  22. package/dist/es2019/root/card/index.js +39 -7
  23. package/dist/es2019/root/cardView.js +5 -1
  24. package/dist/es2019/root/inline/loader.js +15 -4
  25. package/dist/es2019/root/inline/mediaInlineCard.js +5 -1
  26. package/dist/es2019/root/inlinePlayer.js +56 -4
  27. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +13 -3
  28. package/dist/es2019/root/ui/loadingRateLimited/styled.js +1 -1
  29. package/dist/es2019/root/ui/progressBar/progressBar.js +4 -2
  30. package/dist/es2019/root/ui/progressBar/styled.js +6 -4
  31. package/dist/es2019/root/ui/styled.js +1 -1
  32. package/dist/es2019/utils/viewportDetector.js +48 -18
  33. package/dist/es2019/version.json +1 -1
  34. package/dist/esm/actions.js +2 -2
  35. package/dist/esm/errors.js +6 -5
  36. package/dist/esm/root/card/cardAnalytics.js +1 -1
  37. package/dist/esm/root/card/cardState.js +2 -2
  38. package/dist/esm/root/card/getCardPreview/cache.js +3 -2
  39. package/dist/esm/root/card/getCardPreview/index.js +2 -2
  40. package/dist/esm/root/card/index.js +39 -9
  41. package/dist/esm/root/cardView.js +5 -3
  42. package/dist/esm/root/inline/loader.js +46 -14
  43. package/dist/esm/root/inline/mediaInlineCard.js +5 -1
  44. package/dist/esm/root/inlinePlayer.js +74 -23
  45. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +15 -3
  46. package/dist/esm/root/ui/loadingRateLimited/styled.js +1 -1
  47. package/dist/esm/root/ui/progressBar/progressBar.js +5 -2
  48. package/dist/esm/root/ui/progressBar/styled.js +6 -5
  49. package/dist/esm/root/ui/styled.js +1 -1
  50. package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +2 -1
  51. package/dist/esm/utils/viewportDetector.js +48 -21
  52. package/dist/esm/version.json +1 -1
  53. package/dist/types/index.d.ts +1 -0
  54. package/dist/types/root/card/index.d.ts +2 -0
  55. package/dist/types/root/cardView.d.ts +1 -1
  56. package/dist/types/root/inline/loader.d.ts +2 -0
  57. package/dist/types/root/inlinePlayer.d.ts +8 -1
  58. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +10 -1
  59. package/dist/types/root/ui/progressBar/progressBar.d.ts +2 -1
  60. package/dist/types/root/ui/progressBar/styled.d.ts +2 -1
  61. package/dist/types/utils/viewportDetector.d.ts +13 -5
  62. package/package.json +5 -7
  63. package/dist/cjs/utils/lazyContent/index.js +0 -56
  64. package/dist/cjs/utils/lazyContent/styled.js +0 -23
  65. package/dist/es2019/utils/lazyContent/index.js +0 -18
  66. package/dist/es2019/utils/lazyContent/styled.js +0 -12
  67. package/dist/esm/utils/lazyContent/index.js +0 -41
  68. package/dist/esm/utils/lazyContent/styled.js +0 -14
  69. package/dist/types/utils/lazyContent/index.d.ts +0 -11
  70. package/dist/types/utils/lazyContent/styled.d.ts +0 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 73.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - [ux] Displaying the control bar including the timestamp by default for videos that have been processed.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - fix percent width on media-card
12
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Refactor solution for fixing media card images overlaps with creating preview message
13
+ - [`e221ee215e7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e221ee215e7) - fix vertical scroll for firefox when media link is wrapped
14
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Improved card lazy offset
15
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Add media node updater to media inline node
16
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - show progress bar for inline player when videos is uploading
17
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Adding a feature flag for TimestampOnVideo
18
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Fix cardview issue with creating preview text overlaps with image in safari"
19
+ - Updated dependencies
20
+
3
21
  ## 73.0.0
4
22
 
5
23
  ### Major Changes
@@ -9,9 +9,9 @@ exports.attachDetailsToActions = attachDetailsToActions;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12
+ 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; }
13
13
 
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
+ 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; }
15
15
 
16
16
  function attachDetailsToActions(actions, details) {
17
17
  return actions.map(function (action) {
@@ -11,6 +11,8 @@ exports.isLocalPreviewError = void 0;
11
11
  exports.isMediaCardError = isMediaCardError;
12
12
  exports.isUploadError = exports.isUnsupportedLocalPreviewError = exports.isRemotePreviewError = void 0;
13
13
 
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
14
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
17
 
16
18
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -49,7 +51,7 @@ var MediaCardError = /*#__PURE__*/function (_Error) {
49
51
  return _this;
50
52
  }
51
53
 
52
- return MediaCardError;
54
+ return (0, _createClass2.default)(MediaCardError);
53
55
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
54
56
 
55
57
  exports.MediaCardError = MediaCardError;
@@ -69,7 +71,7 @@ var LocalPreviewError = /*#__PURE__*/function (_MediaCardError) {
69
71
  return _this2;
70
72
  }
71
73
 
72
- return LocalPreviewError;
74
+ return (0, _createClass2.default)(LocalPreviewError);
73
75
  }(MediaCardError);
74
76
 
75
77
  exports.LocalPreviewError = LocalPreviewError;
@@ -89,7 +91,7 @@ var RemotePreviewError = /*#__PURE__*/function (_MediaCardError2) {
89
91
  return _this3;
90
92
  }
91
93
 
92
- return RemotePreviewError;
94
+ return (0, _createClass2.default)(RemotePreviewError);
93
95
  }(MediaCardError);
94
96
 
95
97
  exports.RemotePreviewError = RemotePreviewError;
@@ -109,7 +111,7 @@ var SsrPreviewError = /*#__PURE__*/function (_MediaCardError3) {
109
111
  return _this4;
110
112
  }
111
113
 
112
- return SsrPreviewError;
114
+ return (0, _createClass2.default)(SsrPreviewError);
113
115
  }(MediaCardError);
114
116
 
115
117
  exports.SsrPreviewError = SsrPreviewError;
@@ -149,7 +151,7 @@ var ImageLoadError = /*#__PURE__*/function (_MediaCardError4) {
149
151
  return _super5.call(this, getImageLoadPrimaryReason(source));
150
152
  }
151
153
 
152
- return ImageLoadError;
154
+ return (0, _createClass2.default)(ImageLoadError);
153
155
  }(MediaCardError);
154
156
 
155
157
  exports.ImageLoadError = ImageLoadError;
@@ -7,7 +7,7 @@ exports.relevantFeatureFlagNames = exports.fireScreenEvent = exports.fireOperati
7
7
 
8
8
  var _analytics = require("../../utils/analytics");
9
9
 
10
- var relevantFeatureFlagNames = ['newCardExperience', 'captions'];
10
+ var relevantFeatureFlagNames = ['newCardExperience', 'captions', 'timestampOnVideo'];
11
11
  exports.relevantFeatureFlagNames = relevantFeatureFlagNames;
12
12
 
13
13
  var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, error) {
@@ -17,9 +17,9 @@ var _getCardStatus = require("./getCardStatus");
17
17
 
18
18
  var _getCardPreview = require("./getCardPreview");
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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; }
21
21
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
23
23
 
24
24
  var createStateUpdater = function createStateUpdater(newState) {
25
25
  return function (prevState) {
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getCacheKey = exports.default = exports.CardPreviewCacheImpl = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -20,8 +22,7 @@ var getCacheKey = function getCacheKey(id, dimensions) {
20
22
  };
21
23
 
22
24
  exports.getCacheKey = getCacheKey;
23
-
24
- var CardPreviewCacheImpl = function CardPreviewCacheImpl(previewCache) {
25
+ var CardPreviewCacheImpl = /*#__PURE__*/(0, _createClass2.default)(function CardPreviewCacheImpl(previewCache) {
25
26
  var _this = this;
26
27
 
27
28
  (0, _classCallCheck2.default)(this, CardPreviewCacheImpl);
@@ -40,8 +41,7 @@ var CardPreviewCacheImpl = function CardPreviewCacheImpl(previewCache) {
40
41
  _this.previewCache.remove(cacheKey);
41
42
  });
42
43
  this.previewCache = previewCache;
43
- };
44
-
44
+ });
45
45
  exports.CardPreviewCacheImpl = CardPreviewCacheImpl;
46
46
 
47
47
  var _default = new CardPreviewCacheImpl((0, _objectURLCache.createObjectURLCache)());
@@ -54,9 +54,9 @@ var _dimensionComparer = require("../../../utils/dimensionComparer");
54
54
 
55
55
  var _filePreviewStatus = require("./filePreviewStatus");
56
56
 
57
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
57
+ 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; }
58
58
 
59
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
59
+ 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; }
60
60
 
61
61
  var getCardPreviewFromCache = _cache.default.get;
62
62
  exports.getCardPreviewFromCache = getCardPreviewFromCache;
@@ -73,9 +73,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
73
73
 
74
74
  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; }
75
75
 
76
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
76
+ 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; }
77
77
 
78
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
78
+ 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; }
79
79
 
80
80
  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); }; }
81
81
 
@@ -94,6 +94,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
94
94
  (0, _classCallCheck2.default)(this, CardBase);
95
95
  _this = _super.call(this, props);
96
96
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasBeenMounted", false);
97
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPreAnchorRef", /*#__PURE__*/(0, _react.createRef)());
98
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPostAnchorRef", /*#__PURE__*/(0, _react.createRef)());
97
99
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "timeElapsedTillCommenced", performance.now());
98
100
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getImageURLParams", function (_ref) {
99
101
  var collection = _ref.collectionName;
@@ -326,7 +328,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
326
328
 
327
329
  if (useInlinePlayer && isVideo && !!cardPreview) {
328
330
  _this.setState({
329
- isPlayingFile: true
331
+ isPlayingFile: true,
332
+ shouldAutoplay: true
330
333
  });
331
334
  } else if (shouldOpenMediaViewer) {
332
335
  var mediaViewerSelectedItem;
@@ -369,11 +372,13 @@ var CardBase = /*#__PURE__*/function (_Component) {
369
372
  selected = _this$props6.selected,
370
373
  testId = _this$props6.testId,
371
374
  originalDimensions = _this$props6.originalDimensions;
375
+ var shouldAutoplay = _this.state.shouldAutoplay;
372
376
  return /*#__PURE__*/_react.default.createElement(_inlinePlayer.InlinePlayer, {
373
377
  mediaClient: mediaClient,
374
378
  dimensions: dimensions,
375
379
  originalDimensions: originalDimensions,
376
380
  identifier: identifier,
381
+ autoplay: !!shouldAutoplay,
377
382
  onError: _this.onInlinePlayerError,
378
383
  onClick: _this.onClick,
379
384
  selected: selected,
@@ -510,9 +515,17 @@ var CardBase = /*#__PURE__*/function (_Component) {
510
515
  });
511
516
 
512
517
  return isLazy ? /*#__PURE__*/_react.default.createElement(_viewportDetector.ViewportDetector, {
513
- targetRef: cardRef,
518
+ cardEl: cardRef,
519
+ preAnchorRef: _this.viewportPreAnchorRef,
520
+ postAnchorRef: _this.viewportPostAnchorRef,
514
521
  onVisible: _this.onCardInViewport
515
- }, card) : card;
522
+ }, /*#__PURE__*/_react.default.createElement(_viewportDetector.ViewportAnchor, {
523
+ ref: _this.viewportPreAnchorRef,
524
+ offsetTop: -_viewportDetector.ABS_VIEWPORT_ANCHOR_OFFSET_TOP
525
+ }), card, /*#__PURE__*/_react.default.createElement(_viewportDetector.ViewportAnchor, {
526
+ ref: _this.viewportPostAnchorRef,
527
+ offsetTop: _viewportDetector.ABS_VIEWPORT_ANCHOR_OFFSET_TOP
528
+ })) : card;
516
529
  });
517
530
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onCardInViewport", function () {
518
531
  _this.setState({
@@ -588,6 +601,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
588
601
  status: _status,
589
602
  isCardVisible: _isCardVisible,
590
603
  isPlayingFile: false,
604
+ shouldAutoplay: false,
591
605
  cardPreview: _cardPreview,
592
606
  cardRef: null,
593
607
  isBannedLocalPreview: false,
@@ -634,14 +648,17 @@ var CardBase = /*#__PURE__*/function (_Component) {
634
648
  mediaClient = _this$props11.mediaClient,
635
649
  identifier = _this$props11.identifier,
636
650
  dimensions = _this$props11.dimensions,
637
- featureFlags = _this$props11.featureFlags;
651
+ featureFlags = _this$props11.featureFlags,
652
+ useInlinePlayer = _this$props11.useInlinePlayer,
653
+ disableOverlay = _this$props11.disableOverlay;
638
654
  var _this$state3 = this.state,
639
655
  isCardVisible = _this$state3.isCardVisible,
640
656
  cardPreview = _this$state3.cardPreview,
641
657
  status = _this$state3.status,
642
658
  fileState = _this$state3.fileState,
643
659
  isBannedLocalPreview = _this$state3.isBannedLocalPreview,
644
- previewDidRender = _this$state3.previewDidRender;
660
+ previewDidRender = _this$state3.previewDidRender,
661
+ isPlayingFile = _this$state3.isPlayingFile;
645
662
  var isDifferent = (0, _mediaClient.isDifferentIdentifier)(prevIdentifier, identifier);
646
663
  var turnedVisible = !prevIsCardVisible && isCardVisible;
647
664
  var isNewMediaClient = prevMediaClient !== mediaClient;
@@ -697,6 +714,15 @@ var CardBase = /*#__PURE__*/function (_Component) {
697
714
  });
698
715
  this.unsubscribe();
699
716
  }
717
+
718
+ var isVideo = this.fileAttributes.fileMediatype === 'video';
719
+ var videoAvailableToPlay = fileState && (0, _mediaClient.isProcessedFileState)(fileState);
720
+
721
+ if (isVideo && !isPlayingFile && disableOverlay && useInlinePlayer && videoAvailableToPlay && (0, _mediaCommon.getMediaFeatureFlag)('timestampOnVideo', this.props.featureFlags)) {
722
+ this.setState({
723
+ isPlayingFile: true
724
+ });
725
+ }
700
726
  }
701
727
  }, {
702
728
  key: "componentWillUnmount",
@@ -83,9 +83,9 @@ var _cardConstants = require("./card/cardConstants");
83
83
 
84
84
  var _errors = require("../errors");
85
85
 
86
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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; }
87
87
 
88
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
89
89
 
90
90
  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); }; }
91
91
 
@@ -550,6 +550,7 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
550
550
  onDisplayImage = _this$props8.onDisplayImage,
551
551
  nativeLazyLoad = _this$props8.nativeLazyLoad,
552
552
  forceSyncDisplay = _this$props8.forceSyncDisplay;
553
+ var didImageRender = this.state.didImageRender;
553
554
  return !!dataURI && /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, {
554
555
  dataURI: dataURI,
555
556
  mediaType: mediaType,
@@ -560,7 +561,8 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
560
561
  onImageLoad: this.onImageLoad,
561
562
  onImageError: this.onImageError,
562
563
  nativeLazyLoad: nativeLazyLoad,
563
- forceSyncDisplay: forceSyncDisplay
564
+ forceSyncDisplay: forceSyncDisplay,
565
+ isImageVisible: forceSyncDisplay || didImageRender
564
566
  });
565
567
  }
566
568
  }, {
@@ -56,6 +56,7 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
56
56
  }
57
57
 
58
58
  _this = _super.call.apply(_super, [this].concat(args));
59
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isMounted", false);
59
60
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
60
61
  MediaInlineCard: MediaInlineCardLoader.MediaInlineCard,
61
62
  ErrorBoundary: MediaInlineCardLoader.ErrorBoundary
@@ -73,13 +74,15 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
73
74
  while (1) {
74
75
  switch (_context.prev = _context.next) {
75
76
  case 0:
77
+ this.isMounted = true;
78
+
76
79
  if (this.state.MediaInlineCard) {
77
- _context.next = 16;
80
+ _context.next = 17;
78
81
  break;
79
82
  }
80
83
 
81
- _context.prev = 1;
82
- _context.next = 4;
84
+ _context.prev = 2;
85
+ _context.next = 5;
83
86
  return Promise.all([Promise.resolve().then(function () {
84
87
  return _interopRequireWildcard(require('@atlaskit/media-client'));
85
88
  }), Promise.resolve().then(function () {
@@ -88,7 +91,7 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
88
91
  return _interopRequireWildcard(require('../media-card-analytics-error-boundary'));
89
92
  })]);
90
93
 
91
- case 4:
94
+ case 5:
92
95
  _yield$Promise$all = _context.sent;
93
96
  _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 3);
94
97
  mediaClient = _yield$Promise$all2[0];
@@ -96,23 +99,27 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
96
99
  mediaCardErrorBoundaryModule = _yield$Promise$all2[2];
97
100
  MediaInlineCardLoader.MediaInlineCard = mediaClient.withMediaClient(cardModule.MediaInlineCard);
98
101
  MediaInlineCardLoader.ErrorBoundary = mediaCardErrorBoundaryModule.default;
99
- this.setState({
100
- MediaInlineCard: MediaInlineCardLoader.MediaInlineCard,
101
- ErrorBoundary: MediaInlineCardLoader.ErrorBoundary
102
- });
103
- _context.next = 16;
102
+
103
+ if (this.isMounted) {
104
+ this.setState({
105
+ MediaInlineCard: MediaInlineCardLoader.MediaInlineCard,
106
+ ErrorBoundary: MediaInlineCardLoader.ErrorBoundary
107
+ });
108
+ }
109
+
110
+ _context.next = 17;
104
111
  break;
105
112
 
106
- case 14:
107
- _context.prev = 14;
108
- _context.t0 = _context["catch"](1);
113
+ case 15:
114
+ _context.prev = 15;
115
+ _context.t0 = _context["catch"](2);
109
116
 
110
- case 16:
117
+ case 17:
111
118
  case "end":
112
119
  return _context.stop();
113
120
  }
114
121
  }
115
- }, _callee, this, [[1, 14]]);
122
+ }, _callee, this, [[2, 15]]);
116
123
  }));
117
124
 
118
125
  function componentDidMount() {
@@ -121,6 +128,30 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
121
128
 
122
129
  return componentDidMount;
123
130
  }()
131
+ }, {
132
+ key: "componentWillUnmount",
133
+ value: function () {
134
+ var _componentWillUnmount = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
135
+ return _regenerator.default.wrap(function _callee2$(_context2) {
136
+ while (1) {
137
+ switch (_context2.prev = _context2.next) {
138
+ case 0:
139
+ this.isMounted = false;
140
+
141
+ case 1:
142
+ case "end":
143
+ return _context2.stop();
144
+ }
145
+ }
146
+ }, _callee2, this);
147
+ }));
148
+
149
+ function componentWillUnmount() {
150
+ return _componentWillUnmount.apply(this, arguments);
151
+ }
152
+
153
+ return componentWillUnmount;
154
+ }()
124
155
  }, {
125
156
  key: "render",
126
157
  value: function render() {
@@ -97,16 +97,20 @@ var MediaInlineCardInternal = function MediaInlineCardInternal(_ref) {
97
97
  locale: 'en'
98
98
  });
99
99
  (0, _react.useEffect)(function () {
100
- mediaClient.file.getFileState(identifier.id, {
100
+ var subscription = mediaClient.file.getFileState(identifier.id, {
101
101
  collectionName: identifier.collectionName
102
102
  }).subscribe({
103
103
  next: function next(fileState) {
104
104
  setFileState(fileState);
105
+ setIsErrored(false);
105
106
  },
106
107
  error: function error() {
107
108
  setIsErrored(true);
108
109
  }
109
110
  });
111
+ return function () {
112
+ subscription.unsubscribe();
113
+ };
110
114
  }, [identifier.collectionName, identifier.id, mediaClient.file]);
111
115
 
112
116
  if (!fileState) {
@@ -41,6 +41,14 @@ var _ = require("..");
41
41
 
42
42
  var _cardLoading = require("../utils/lightCards/cardLoading");
43
43
 
44
+ var _progressBar = require("./ui/progressBar/progressBar");
45
+
46
+ var _styled2 = require("./ui/styled");
47
+
48
+ var _isValidPercentageUnit = require("../utils/isValidPercentageUnit");
49
+
50
+ var _getElementDimension = require("../utils/getElementDimension");
51
+
44
52
  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); }
45
53
 
46
54
  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; }
@@ -84,6 +92,7 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
84
92
 
85
93
  _this = _super.call.apply(_super, [this].concat(args));
86
94
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {});
95
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "divRef", /*#__PURE__*/_react.default.createRef());
87
96
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setFileSrc", function (fileSrc) {
88
97
  _this.setState({
89
98
  fileSrc: fileSrc
@@ -153,6 +162,23 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
153
162
  viewingLevel: 'full'
154
163
  });
155
164
  });
165
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "saveElementWidth", function () {
166
+ var dimensions = _this.props.dimensions;
167
+
168
+ if (!dimensions) {
169
+ return;
170
+ }
171
+
172
+ var width = dimensions.width;
173
+
174
+ if (width && (0, _isValidPercentageUnit.isValidPercentageUnit)(width) && !!_this.divRef.current) {
175
+ var elementWidth = (0, _getElementDimension.getElementDimension)(_this.divRef.current, 'width');
176
+
177
+ _this.setState({
178
+ elementWidth: elementWidth
179
+ });
180
+ }
181
+ });
156
182
  return _this;
157
183
  }
158
184
 
@@ -161,6 +187,7 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
161
187
  value: function componentDidMount() {
162
188
  var _this2 = this;
163
189
 
190
+ this.saveElementWidth();
164
191
  var _this$props3 = this.props,
165
192
  mediaClient = _this$props3.mediaClient,
166
193
  identifier = _this$props3.identifier;
@@ -179,30 +206,41 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
179
206
  while (1) {
180
207
  switch (_context2.prev = _context2.next) {
181
208
  case 0:
209
+ if (fileState.status === 'uploading') {
210
+ _this2.setState({
211
+ isUploading: true,
212
+ progress: fileState.progress
213
+ });
214
+ } else {
215
+ _this2.setState({
216
+ isUploading: false
217
+ });
218
+ }
219
+
182
220
  existingFileSrc = _this2.state.fileSrc; // we want to reuse the existing fileSrc to prevent re renders
183
221
 
184
222
  if (!existingFileSrc) {
185
- _context2.next = 3;
223
+ _context2.next = 4;
186
224
  break;
187
225
  }
188
226
 
189
227
  return _context2.abrupt("return");
190
228
 
191
- case 3:
229
+ case 4:
192
230
  if (!(fileState.status !== 'error' && fileState.preview)) {
193
- _context2.next = 12;
231
+ _context2.next = 13;
194
232
  break;
195
233
  }
196
234
 
197
- _context2.next = 6;
235
+ _context2.next = 7;
198
236
  return fileState.preview;
199
237
 
200
- case 6:
238
+ case 7:
201
239
  _yield$fileState$prev = _context2.sent;
202
240
  value = _yield$fileState$prev.value;
203
241
 
204
242
  if (!(value instanceof Blob && value.type.indexOf('video/') === 0)) {
205
- _context2.next = 12;
243
+ _context2.next = 13;
206
244
  break;
207
245
  }
208
246
 
@@ -212,9 +250,9 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
212
250
 
213
251
  return _context2.abrupt("return");
214
252
 
215
- case 12:
253
+ case 13:
216
254
  if (!(fileState.status === 'processed' || fileState.status === 'processing')) {
217
- _context2.next = 29;
255
+ _context2.next = 30;
218
256
  break;
219
257
  }
220
258
 
@@ -222,7 +260,7 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
222
260
  artifacts = fileState.artifacts;
223
261
 
224
262
  if (!(!artifactName || !artifacts)) {
225
- _context2.next = 18;
263
+ _context2.next = 19;
226
264
  break;
227
265
  }
228
266
 
@@ -230,34 +268,34 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
230
268
 
231
269
  return _context2.abrupt("return");
232
270
 
233
- case 18:
234
- _context2.prev = 18;
235
- _context2.next = 21;
271
+ case 19:
272
+ _context2.prev = 19;
273
+ _context2.next = 22;
236
274
  return mediaClient.file.getArtifactURL(artifacts, artifactName, collectionName);
237
275
 
238
- case 21:
276
+ case 22:
239
277
  _fileSrc = _context2.sent;
240
278
 
241
279
  _this2.setFileSrc(_fileSrc);
242
280
 
243
- _context2.next = 29;
281
+ _context2.next = 30;
244
282
  break;
245
283
 
246
- case 25:
247
- _context2.prev = 25;
248
- _context2.t0 = _context2["catch"](18);
284
+ case 26:
285
+ _context2.prev = 26;
286
+ _context2.t0 = _context2["catch"](19);
249
287
  onError = _this2.props.onError;
250
288
 
251
289
  if (onError) {
252
290
  onError(_context2.t0);
253
291
  }
254
292
 
255
- case 29:
293
+ case 30:
256
294
  case "end":
257
295
  return _context2.stop();
258
296
  }
259
297
  }
260
- }, _callee2, null, [[18, 25]]);
298
+ }, _callee2, null, [[19, 26]]);
261
299
  }));
262
300
 
263
301
  function next(_x) {
@@ -274,6 +312,12 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
274
312
  this.unsubscribe();
275
313
  this.revoke();
276
314
  }
315
+ }, {
316
+ key: "breakpoint",
317
+ get: function get() {
318
+ var width = this.state.elementWidth || (this.props.dimensions ? this.props.dimensions.width : '') || _.defaultImageCardDimensions.width;
319
+ return (0, _styled2.calcBreakpointSize)(parseInt("".concat(width), 10));
320
+ }
277
321
  }, {
278
322
  key: "render",
279
323
  value: function render() {
@@ -286,8 +330,12 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
286
330
  selected = _this$props4.selected,
287
331
  testId = _this$props4.testId,
288
332
  identifier = _this$props4.identifier,
289
- forwardRef = _this$props4.forwardRef;
290
- var fileSrc = this.state.fileSrc;
333
+ forwardRef = _this$props4.forwardRef,
334
+ autoplay = _this$props4.autoplay;
335
+ var _this$state = this.state,
336
+ fileSrc = _this$state.fileSrc,
337
+ isUploading = _this$state.isUploading,
338
+ progress = _this$state.progress;
291
339
 
292
340
  if (!fileSrc) {
293
341
  return /*#__PURE__*/_react.default.createElement(_cardLoading.CardLoading, {
@@ -308,7 +356,7 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
308
356
  type: "video",
309
357
  src: fileSrc,
310
358
  fileId: identifier.id,
311
- isAutoPlay: true,
359
+ isAutoPlay: autoplay,
312
360
  isHDAvailable: false,
313
361
  onDownloadClick: _this3.onDownloadClick,
314
362
  onFirstPlay: _this3.onFirstPlay,
@@ -318,7 +366,12 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
318
366
  originalDimensions: originalDimensions,
319
367
  showControls: checkMouseMovement
320
368
  });
321
- }));
369
+ }), isUploading ? /*#__PURE__*/_react.default.createElement(_progressBar.ProgressBar, {
370
+ progress: progress,
371
+ breakpoint: this.breakpoint,
372
+ positionBottom: true,
373
+ showOnTop: true
374
+ }) : null);
322
375
  }
323
376
  }]);
324
377
  return InlinePlayerBase;