@atlaskit/media-card 73.1.1 → 73.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 (69) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/files/cardImageView/index.js +51 -41
  3. package/dist/cjs/root/card/getCardPreview/index.js +7 -1
  4. package/dist/cjs/root/card/index.js +247 -151
  5. package/dist/cjs/root/cardView.js +127 -115
  6. package/dist/cjs/root/inlinePlayer.js +4 -2
  7. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +14 -6
  8. package/dist/cjs/root/ui/styled.js +5 -5
  9. package/dist/cjs/types.js +10 -1
  10. package/dist/cjs/utils/analytics.js +23 -7
  11. package/dist/cjs/utils/dimensionComparer.js +7 -13
  12. package/dist/cjs/utils/getMediaCardCursor.js +29 -0
  13. package/dist/cjs/utils/globalScope/getSSRData.js +20 -0
  14. package/dist/cjs/utils/globalScope/globalScope.js +94 -0
  15. package/dist/cjs/utils/globalScope/index.js +39 -0
  16. package/dist/cjs/utils/globalScope/types.js +5 -0
  17. package/dist/cjs/utils/printScript.js +44 -0
  18. package/dist/cjs/version.json +1 -1
  19. package/dist/es2019/files/cardImageView/index.js +19 -5
  20. package/dist/es2019/root/card/getCardPreview/index.js +1 -0
  21. package/dist/es2019/root/card/index.js +107 -35
  22. package/dist/es2019/root/cardView.js +40 -30
  23. package/dist/es2019/root/inlinePlayer.js +4 -2
  24. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +14 -6
  25. package/dist/es2019/root/ui/styled.js +4 -4
  26. package/dist/es2019/types.js +7 -1
  27. package/dist/es2019/utils/analytics.js +8 -3
  28. package/dist/es2019/utils/dimensionComparer.js +6 -13
  29. package/dist/es2019/utils/getMediaCardCursor.js +19 -0
  30. package/dist/es2019/utils/globalScope/getSSRData.js +10 -0
  31. package/dist/es2019/utils/globalScope/globalScope.js +62 -0
  32. package/dist/es2019/utils/globalScope/index.js +2 -0
  33. package/dist/es2019/utils/globalScope/types.js +1 -0
  34. package/dist/es2019/utils/printScript.js +19 -0
  35. package/dist/es2019/version.json +1 -1
  36. package/dist/esm/files/cardImageView/index.js +53 -41
  37. package/dist/esm/root/card/getCardPreview/index.js +3 -0
  38. package/dist/esm/root/card/index.js +228 -134
  39. package/dist/esm/root/cardView.js +126 -115
  40. package/dist/esm/root/inlinePlayer.js +4 -2
  41. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +14 -6
  42. package/dist/esm/root/ui/styled.js +5 -5
  43. package/dist/esm/types.js +7 -1
  44. package/dist/esm/utils/analytics.js +17 -6
  45. package/dist/esm/utils/dimensionComparer.js +8 -13
  46. package/dist/esm/utils/getMediaCardCursor.js +19 -0
  47. package/dist/esm/utils/globalScope/getSSRData.js +10 -0
  48. package/dist/esm/utils/globalScope/globalScope.js +69 -0
  49. package/dist/esm/utils/globalScope/index.js +2 -0
  50. package/dist/esm/utils/globalScope/types.js +1 -0
  51. package/dist/esm/utils/printScript.js +30 -0
  52. package/dist/esm/version.json +1 -1
  53. package/dist/types/errors.d.ts +1 -1
  54. package/dist/types/files/cardImageView/index.d.ts +6 -2
  55. package/dist/types/root/card/getCardPreview/index.d.ts +1 -0
  56. package/dist/types/root/card/index.d.ts +3 -1
  57. package/dist/types/root/cardView.d.ts +8 -6
  58. package/dist/types/root/inlinePlayer.d.ts +3 -1
  59. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +4 -4
  60. package/dist/types/root/ui/styled.d.ts +2 -1
  61. package/dist/types/types.d.ts +6 -1
  62. package/dist/types/utils/analytics.d.ts +6 -0
  63. package/dist/types/utils/getMediaCardCursor.d.ts +2 -0
  64. package/dist/types/utils/globalScope/getSSRData.d.ts +3 -0
  65. package/dist/types/utils/globalScope/globalScope.d.ts +21 -0
  66. package/dist/types/utils/globalScope/index.d.ts +4 -0
  67. package/dist/types/utils/globalScope/types.d.ts +8 -0
  68. package/dist/types/utils/printScript.d.ts +2 -0
  69. package/package.json +5 -5
@@ -83,6 +83,8 @@ var _cardConstants = require("./card/cardConstants");
83
83
 
84
84
  var _errors = require("../errors");
85
85
 
86
+ var _types = require("../types");
87
+
86
88
  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
89
 
88
90
  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; }
@@ -114,30 +116,37 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
114
116
  didImageRender: false
115
117
  });
116
118
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "divRef", /*#__PURE__*/_react.default.createRef());
117
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageLoad", function () {
118
- var onImageLoad = _this.props.onImageLoad; // We render the icon & icon message always, even if there is dataURI available.
119
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageLoad", function (prevCardPreview) {
120
+ var _this$props = _this.props,
121
+ onImageLoad = _this$props.onImageLoad,
122
+ cardPreview = _this$props.cardPreview;
123
+
124
+ if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
125
+ return;
126
+ } // We render the icon & icon message always, even if there is cardPreview available.
119
127
  // If the image fails to load/render, the icon will remain, i.e. the user won't see a change until
120
128
  // the root card decides to chage status to error.
121
129
  // If the image renders successfully, we switch this variable to hide the icon & icon message
122
130
  // behind the thumbnail in case the image has transparency.
123
- // It is less likely that root component replaces a suceeded dataURI for a failed one
131
+ // It is less likely that root component replaces a suceeded cardPreview for a failed one
124
132
  // than the opposite case. Therefore we prefer to hide the icon instead show when the image fails,
125
133
  // for a smoother transition
126
134
 
135
+
127
136
  _this.setState({
128
137
  didImageRender: true
129
138
  });
130
139
 
131
- onImageLoad && onImageLoad();
140
+ onImageLoad && onImageLoad(cardPreview);
132
141
  });
133
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageError", function () {
142
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageError", function (cardPreview) {
134
143
  var onImageError = _this.props.onImageError;
135
144
 
136
145
  _this.setState({
137
146
  didImageRender: false
138
147
  });
139
148
 
140
- onImageError && onImageError();
149
+ onImageError && onImageError(cardPreview);
141
150
  });
142
151
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "saveElementWidth", function () {
143
152
  var dimensions = _this.props.dimensions;
@@ -157,24 +166,24 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
157
166
  }
158
167
  });
159
168
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFileNewExperience", function () {
160
- var _this$props = _this.props,
161
- dimensions = _this$props.dimensions,
162
- appearance = _this$props.appearance,
163
- onClick = _this$props.onClick,
164
- onMouseEnter = _this$props.onMouseEnter,
165
- testId = _this$props.testId,
166
- metadata = _this$props.metadata,
167
- status = _this$props.status,
168
- selected = _this$props.selected,
169
- selectable = _this$props.selectable,
170
- disableOverlay = _this$props.disableOverlay,
171
- dataURI = _this$props.dataURI;
169
+ var _this$props2 = _this.props,
170
+ dimensions = _this$props2.dimensions,
171
+ appearance = _this$props2.appearance,
172
+ onClick = _this$props2.onClick,
173
+ onMouseEnter = _this$props2.onMouseEnter,
174
+ testId = _this$props2.testId,
175
+ metadata = _this$props2.metadata,
176
+ status = _this$props2.status,
177
+ selected = _this$props2.selected,
178
+ selectable = _this$props2.selectable,
179
+ disableOverlay = _this$props2.disableOverlay,
180
+ cardPreview = _this$props2.cardPreview,
181
+ mediaCardCursor = _this$props2.mediaCardCursor;
172
182
 
173
183
  var _ref = metadata || {},
174
184
  name = _ref.name;
175
185
 
176
- var shouldUsePointerCursor = status !== 'error' && status !== 'failed-processing';
177
- var shouldDisplayBackground = !dataURI || !disableOverlay || status === 'error' || status === 'failed-processing';
186
+ var shouldDisplayBackground = !cardPreview || !disableOverlay || status === 'error' || status === 'failed-processing';
178
187
  var isPlayButtonClickable = !!(_this.shouldRenderPlayButton() && disableOverlay);
179
188
  var isTickBoxSelectable = !disableOverlay && !!selectable && !selected; // Disable tooltip for Media Single
180
189
 
@@ -188,7 +197,7 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
188
197
  onMouseEnter: onMouseEnter,
189
198
  innerRef: _this.divRef,
190
199
  breakpoint: _this.breakpoint,
191
- shouldUsePointerCursor: shouldUsePointerCursor,
200
+ mediaCardCursor: mediaCardCursor,
192
201
  disableOverlay: !!disableOverlay,
193
202
  selected: !!selected,
194
203
  displayBackground: shouldDisplayBackground,
@@ -202,27 +211,30 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
202
211
  }, _this.renderNewExperienceCard()) : _this.renderNewExperienceCard());
203
212
  });
204
213
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFile", function () {
205
- var _this$props2 = _this.props,
206
- status = _this$props2.status,
207
- mediaItemType = _this$props2.mediaItemType,
208
- metadata = _this$props2.metadata,
209
- dataURI = _this$props2.dataURI,
210
- progress = _this$props2.progress,
211
- resizeMode = _this$props2.resizeMode,
212
- dimensions = _this$props2.dimensions,
213
- selectable = _this$props2.selectable,
214
- selected = _this$props2.selected,
215
- disableOverlay = _this$props2.disableOverlay,
216
- previewOrientation = _this$props2.previewOrientation,
217
- alt = _this$props2.alt,
218
- onDisplayImage = _this$props2.onDisplayImage,
219
- actions = _this$props2.actions;
214
+ var _this$props3 = _this.props,
215
+ cardPreview = _this$props3.cardPreview,
216
+ status = _this$props3.status,
217
+ mediaItemType = _this$props3.mediaItemType,
218
+ metadata = _this$props3.metadata,
219
+ progress = _this$props3.progress,
220
+ resizeMode = _this$props3.resizeMode,
221
+ dimensions = _this$props3.dimensions,
222
+ selectable = _this$props3.selectable,
223
+ selected = _this$props3.selected,
224
+ disableOverlay = _this$props3.disableOverlay,
225
+ alt = _this$props3.alt,
226
+ onDisplayImage = _this$props3.onDisplayImage,
227
+ actions = _this$props3.actions;
228
+
229
+ var _ref2 = cardPreview || {},
230
+ dataURI = _ref2.dataURI,
231
+ orientation = _ref2.orientation;
220
232
 
221
- var _ref2 = metadata || {},
222
- name = _ref2.name,
223
- mediaType = _ref2.mediaType,
224
- mimeType = _ref2.mimeType,
225
- size = _ref2.size;
233
+ var _ref3 = metadata || {},
234
+ name = _ref3.name,
235
+ mediaType = _ref3.mediaType,
236
+ mimeType = _ref3.mimeType,
237
+ size = _ref3.size;
226
238
 
227
239
  var actionsWithDetails = metadata && actions ? (0, _actions.attachDetailsToActions)(actions, metadata) : [];
228
240
  var errorMessage = (0, _getErrorMessage.getErrorMessage)(status);
@@ -244,32 +256,33 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
244
256
  onDisplayImage: onDisplayImage,
245
257
  actions: actionsWithDetails,
246
258
  disableOverlay: disableOverlay,
247
- previewOrientation: previewOrientation,
259
+ previewOrientation: orientation,
248
260
  alt: alt,
249
261
  onImageLoad: _this.onImageLoad,
250
- onImageError: _this.onImageError
262
+ onImageError: _this.onImageError,
263
+ cardPreview: cardPreview
251
264
  });
252
265
  });
253
266
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getRenderConfigByStatus", function () {
254
- var _this$props3 = _this.props,
255
- dataURI = _this$props3.dataURI,
256
- status = _this$props3.status,
257
- metadata = _this$props3.metadata,
258
- disableOverlay = _this$props3.disableOverlay,
259
- error = _this$props3.error,
260
- selectable = _this$props3.selectable,
261
- disableAnimation = _this$props3.disableAnimation;
267
+ var _this$props4 = _this.props,
268
+ cardPreview = _this$props4.cardPreview,
269
+ status = _this$props4.status,
270
+ metadata = _this$props4.metadata,
271
+ disableOverlay = _this$props4.disableOverlay,
272
+ error = _this$props4.error,
273
+ selectable = _this$props4.selectable,
274
+ disableAnimation = _this$props4.disableAnimation;
262
275
 
263
- var _ref3 = metadata || {},
264
- name = _ref3.name,
265
- mediaType = _ref3.mediaType;
276
+ var _ref4 = metadata || {},
277
+ name = _ref4.name,
278
+ mediaType = _ref4.mediaType;
266
279
 
267
280
  var didImageRender = _this.state.didImageRender;
268
281
  var isZeroSize = !!(metadata && metadata.size === 0);
269
282
  var defaultConfig = {
270
283
  renderTypeIcon: !didImageRender,
271
- renderImageRenderer: !!dataURI,
272
- renderPlayButton: !!dataURI && mediaType === 'video',
284
+ renderImageRenderer: !!cardPreview,
285
+ renderPlayButton: !!cardPreview && mediaType === 'video',
273
286
  renderBlanket: !disableOverlay,
274
287
  renderTitleBox: !disableOverlay && !!name,
275
288
  renderTickBox: !disableOverlay && !!selectable
@@ -306,8 +319,8 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
306
319
  var iconMessage;
307
320
  var customTitleMessage;
308
321
 
309
- var _ref4 = error || {},
310
- secondaryError = _ref4.secondaryError;
322
+ var _ref5 = error || {},
323
+ secondaryError = _ref5.secondaryError;
311
324
 
312
325
  if ((0, _mediaClient.isRateLimitedError)(secondaryError) || (0, _mediaClient.isPollingError)(secondaryError)) {
313
326
  iconMessage = /*#__PURE__*/_react.default.createElement(_iconMessage.PreviewCurrentlyUnavailable, null);
@@ -358,14 +371,14 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
358
371
  isFixedBlanket = _this$getRenderConfig.isFixedBlanket,
359
372
  customTitleMessage = _this$getRenderConfig.customTitleMessage;
360
373
 
361
- var _this$props4 = _this.props,
362
- progress = _this$props4.progress,
363
- selected = _this$props4.selected,
364
- status = _this$props4.status,
365
- metadata = _this$props4.metadata;
374
+ var _this$props5 = _this.props,
375
+ progress = _this$props5.progress,
376
+ selected = _this$props5.selected,
377
+ status = _this$props5.status,
378
+ metadata = _this$props5.metadata;
366
379
 
367
- var _ref5 = metadata || {},
368
- name = _ref5.name;
380
+ var _ref6 = metadata || {},
381
+ name = _ref6.name;
369
382
 
370
383
  var hasTitleBox = !!renderTitleBox || !!renderFailedTitleBox;
371
384
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styled2.CardImageContainer, {
@@ -389,14 +402,14 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
389
402
  }
390
403
  }, {
391
404
  key: "componentDidUpdate",
392
- value: function componentDidUpdate(_ref6) {
393
- var prevDataURI = _ref6.dataURI;
394
- var dataURI = this.props.dataURI; // We should only switch didImageRender to false
395
- // when dataURI goes undefined, not when it is updated.
405
+ value: function componentDidUpdate(_ref7) {
406
+ var prevCardPreview = _ref7.cardPreview;
407
+ var cardPreview = this.props.cardPreview; // We should only switch didImageRender to false
408
+ // when cardPreview goes undefined, not when it is updated.
396
409
  // as this method could be triggered after onImageLoad callback,
397
410
  // falling on a race condition
398
411
 
399
- prevDataURI && !dataURI && this.setState({
412
+ !!prevCardPreview && !cardPreview && this.setState({
400
413
  didImageRender: false
401
414
  });
402
415
  }
@@ -411,10 +424,10 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
411
424
  return elementWidth;
412
425
  }
413
426
 
414
- var _ref7 = this.props.dimensions || {
427
+ var _ref8 = this.props.dimensions || {
415
428
  width: undefined
416
429
  },
417
- width = _ref7.width;
430
+ width = _ref8.width;
418
431
 
419
432
  if (!width) {
420
433
  return _cardDimensions.defaultImageCardDimensions.width;
@@ -439,12 +452,12 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
439
452
  return this.renderFileNewExperience();
440
453
  }
441
454
 
442
- var _this$props5 = this.props,
443
- dimensions = _this$props5.dimensions,
444
- appearance = _this$props5.appearance,
445
- onClick = _this$props5.onClick,
446
- onMouseEnter = _this$props5.onMouseEnter,
447
- testId = _this$props5.testId;
455
+ var _this$props6 = this.props,
456
+ dimensions = _this$props6.dimensions,
457
+ appearance = _this$props6.appearance,
458
+ onClick = _this$props6.onClick,
459
+ onMouseEnter = _this$props6.onMouseEnter,
460
+ testId = _this$props6.testId;
448
461
  var wrapperDimensions = dimensions ? dimensions : (0, _cardDimensions.getDefaultCardDimensions)(appearance);
449
462
  return /*#__PURE__*/_react.default.createElement(_styled.Wrapper, {
450
463
  "data-testid": testId || 'media-card-view',
@@ -467,14 +480,14 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
467
480
  }, {
468
481
  key: "shouldRenderPlayButton",
469
482
  value: function shouldRenderPlayButton() {
470
- var _this$props6 = this.props,
471
- metadata = _this$props6.metadata,
472
- dataURI = _this$props6.dataURI;
483
+ var _this$props7 = this.props,
484
+ metadata = _this$props7.metadata,
485
+ cardPreview = _this$props7.cardPreview;
473
486
 
474
- var _ref8 = metadata || {},
475
- mediaType = _ref8.mediaType;
487
+ var _ref9 = metadata || {},
488
+ mediaType = _ref9.mediaType;
476
489
 
477
- if (mediaType !== 'video' || !dataURI) {
490
+ if (mediaType !== 'video' || !cardPreview) {
478
491
  return false;
479
492
  }
480
493
 
@@ -500,14 +513,14 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
500
513
  }, {
501
514
  key: "renderTitleBox",
502
515
  value: function renderTitleBox() {
503
- var _this$props7 = this.props,
504
- metadata = _this$props7.metadata,
505
- titleBoxBgColor = _this$props7.titleBoxBgColor,
506
- titleBoxIcon = _this$props7.titleBoxIcon;
516
+ var _this$props8 = this.props,
517
+ metadata = _this$props8.metadata,
518
+ titleBoxBgColor = _this$props8.titleBoxBgColor,
519
+ titleBoxIcon = _this$props8.titleBoxIcon;
507
520
 
508
- var _ref9 = metadata || {},
509
- name = _ref9.name,
510
- createdAt = _ref9.createdAt;
521
+ var _ref10 = metadata || {},
522
+ name = _ref10.name,
523
+ createdAt = _ref10.createdAt;
511
524
 
512
525
  return !!name && /*#__PURE__*/_react.default.createElement(_titleBox.TitleBox, {
513
526
  name: name,
@@ -538,22 +551,20 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
538
551
  }, {
539
552
  key: "renderImageRenderer",
540
553
  value: function renderImageRenderer() {
541
- var _this$props8 = this.props,
542
- dataURI = _this$props8.dataURI,
543
- _this$props8$metadata = _this$props8.metadata;
544
- _this$props8$metadata = _this$props8$metadata === void 0 ? {} : _this$props8$metadata;
545
- var _this$props8$metadata2 = _this$props8$metadata.mediaType,
546
- mediaType = _this$props8$metadata2 === void 0 ? 'unknown' : _this$props8$metadata2,
547
- previewOrientation = _this$props8.previewOrientation,
548
- alt = _this$props8.alt,
549
- resizeMode = _this$props8.resizeMode,
550
- onDisplayImage = _this$props8.onDisplayImage,
551
- nativeLazyLoad = _this$props8.nativeLazyLoad,
552
- forceSyncDisplay = _this$props8.forceSyncDisplay;
553
- return !!dataURI && /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, {
554
- dataURI: dataURI,
554
+ var _this$props9 = this.props,
555
+ cardPreview = _this$props9.cardPreview,
556
+ _this$props9$metadata = _this$props9.metadata;
557
+ _this$props9$metadata = _this$props9$metadata === void 0 ? {} : _this$props9$metadata;
558
+ var _this$props9$metadata2 = _this$props9$metadata.mediaType,
559
+ mediaType = _this$props9$metadata2 === void 0 ? 'unknown' : _this$props9$metadata2,
560
+ alt = _this$props9.alt,
561
+ resizeMode = _this$props9.resizeMode,
562
+ onDisplayImage = _this$props9.onDisplayImage,
563
+ nativeLazyLoad = _this$props9.nativeLazyLoad,
564
+ forceSyncDisplay = _this$props9.forceSyncDisplay;
565
+ return !!cardPreview && /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, {
566
+ cardPreview: cardPreview,
555
567
  mediaType: mediaType,
556
- previewOrientation: previewOrientation,
557
568
  alt: alt,
558
569
  resizeMode: resizeMode,
559
570
  onDisplayImage: onDisplayImage,
@@ -576,10 +587,10 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
576
587
  value: function renderMediaTypeIcon(hasTitleBox, iconMessage) {
577
588
  var metadata = this.props.metadata;
578
589
 
579
- var _ref10 = metadata || {},
580
- mediaType = _ref10.mediaType,
581
- mimeType = _ref10.mimeType,
582
- name = _ref10.name;
590
+ var _ref11 = metadata || {},
591
+ mediaType = _ref11.mediaType,
592
+ mimeType = _ref11.mimeType,
593
+ name = _ref11.name;
583
594
 
584
595
  return /*#__PURE__*/_react.default.createElement(_styled4.IconWrapper, {
585
596
  breakpoint: this.breakpoint,
@@ -594,10 +605,10 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
594
605
  }, {
595
606
  key: "renderActionsBar",
596
607
  value: function renderActionsBar() {
597
- var _this$props9 = this.props,
598
- disableOverlay = _this$props9.disableOverlay,
599
- actions = _this$props9.actions,
600
- metadata = _this$props9.metadata;
608
+ var _this$props10 = this.props,
609
+ disableOverlay = _this$props10.disableOverlay,
610
+ actions = _this$props10.actions,
611
+ metadata = _this$props10.metadata;
601
612
  var actionsWithDetails = metadata && actions ? (0, _actions.attachDetailsToActions)(actions, metadata) : [];
602
613
 
603
614
  if (disableOverlay || !actions || actions.length === 0) {
@@ -614,7 +625,8 @@ var CardViewBase = /*#__PURE__*/function (_React$Component) {
614
625
 
615
626
  exports.CardViewBase = CardViewBase;
616
627
  (0, _defineProperty2.default)(CardViewBase, "defaultProps", {
617
- appearance: 'auto'
628
+ appearance: 'auto',
629
+ mediaCardCursor: _types.MediaCardCursor.NoAction
618
630
  });
619
631
  var CardView = (0, _analyticsNext.withAnalyticsEvents)({
620
632
  onClick: (0, _analytics.createAndFireMediaCardEvent)({
@@ -331,7 +331,8 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
331
331
  testId = _this$props4.testId,
332
332
  identifier = _this$props4.identifier,
333
333
  forwardRef = _this$props4.forwardRef,
334
- autoplay = _this$props4.autoplay;
334
+ autoplay = _this$props4.autoplay,
335
+ cardPreview = _this$props4.cardPreview;
335
336
  var _this$state = this.state,
336
337
  fileSrc = _this$state.fileSrc,
337
338
  isUploading = _this$state.isUploading,
@@ -364,7 +365,8 @@ var InlinePlayerBase = /*#__PURE__*/function (_Component) {
364
365
  contentId: identifier.id
365
366
  },
366
367
  originalDimensions: originalDimensions,
367
- showControls: checkMouseMovement
368
+ showControls: checkMouseMovement,
369
+ poster: cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI
368
370
  });
369
371
  }), isUploading ? /*#__PURE__*/_react.default.createElement(_progressBar.ProgressBar, {
370
372
  progress: progress,
@@ -22,8 +22,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
22
22
  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; }
23
23
 
24
24
  var ImageRenderer = function ImageRenderer(_ref) {
25
- var dataURI = _ref.dataURI,
26
- previewOrientation = _ref.previewOrientation,
25
+ var cardPreview = _ref.cardPreview,
27
26
  alt = _ref.alt,
28
27
  resizeMode = _ref.resizeMode,
29
28
  onImageLoad = _ref.onImageLoad,
@@ -38,12 +37,21 @@ var ImageRenderer = function ImageRenderer(_ref) {
38
37
  onDisplayImage();
39
38
  }
40
39
  }, [mediaType, onDisplayImage]);
40
+
41
+ var onLoad = function onLoad() {
42
+ onImageLoad && onImageLoad(cardPreview);
43
+ };
44
+
45
+ var onError = function onError() {
46
+ onImageError && onImageError(cardPreview);
47
+ };
48
+
41
49
  return /*#__PURE__*/_react.default.createElement(_mediaUi.MediaImage, (0, _extends2.default)({
42
- dataURI: dataURI,
50
+ dataURI: cardPreview.dataURI,
43
51
  alt: alt,
44
- previewOrientation: previewOrientation,
45
- onImageLoad: onImageLoad,
46
- onImageError: onImageError,
52
+ previewOrientation: cardPreview.orientation,
53
+ onImageLoad: onLoad,
54
+ onImageError: onError,
47
55
  loading: nativeLazyLoad ? 'lazy' : undefined,
48
56
  forceSyncDisplay: forceSyncDisplay
49
57
  }, (0, _resizeModeToMediaImageProps.resizeModeToMediaImageProps)(resizeMode)));
@@ -88,8 +88,8 @@ var getWrapperShadow = function getWrapperShadow(disableOverlay, selected) {
88
88
  return shadow ? "box-shadow: ".concat(shadow, ";") : '';
89
89
  };
90
90
 
91
- var getCursorStyle = function getCursorStyle(shouldUsePointerCursor) {
92
- return "cursor: ".concat(shouldUsePointerCursor ? 'pointer' : 'default', ";");
91
+ var getCursorStyle = function getCursorStyle(cursor) {
92
+ return "cursor: ".concat(cursor, ";");
93
93
  };
94
94
 
95
95
  var getClickablePlayButtonStyles = function getClickablePlayButtonStyles(isPlayButtonClickable) {
@@ -112,14 +112,14 @@ var NewFileExperienceWrapper = _styledComponents.default.div(_templateObject ||
112
112
  var breakpoint = _ref6.breakpoint,
113
113
  dimensions = _ref6.dimensions,
114
114
  appearance = _ref6.appearance,
115
- shouldUsePointerCursor = _ref6.shouldUsePointerCursor,
116
115
  disableOverlay = _ref6.disableOverlay,
117
116
  displayBackground = _ref6.displayBackground,
118
117
  selected = _ref6.selected,
119
118
  isPlayButtonClickable = _ref6.isPlayButtonClickable,
120
119
  isTickBoxSelectable = _ref6.isTickBoxSelectable,
121
- shouldDisplayTooltip = _ref6.shouldDisplayTooltip;
122
- return "\n ".concat((0, _styles.transition)(), "\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n position: relative;\n font-family: ").concat((0, _constants.fontFamily)(), ";\n ").concat(getWrapperDimensions(dimensions, appearance), "\n ").concat(displayBackground ? "background-color: ".concat(_colors.N20, ";") : '', "\n ").concat(_mediaUi.borderRadius, "\n ").concat(getCursorStyle(shouldUsePointerCursor), "\n ").concat(getWrapperShadow(disableOverlay, selected), "\n ").concat(generateResponsiveStyles(breakpoint), "\n ").concat(_selection.hideNativeBrowserTextSelectionStyles, "\n\n /* We use classnames from here exceptionally to be able to handle styles when the Card is on hover */\n ").concat(getClickablePlayButtonStyles(isPlayButtonClickable), "\n ").concat(getSelectableTickBoxStyles(isTickBoxSelectable), "\n &:hover .").concat(_styled2.blanketClassName, " {\n ").concat(_styled2.fixedBlanketStyles, "\n }\n\n &:hover .").concat(_styled3.actionsBarClassName, " {\n ").concat(_styled3.fixedActionBarStyles, "\n }\n\n /* Tooltip does not support percentage dimensions. We enforce them here */\n ").concat(shouldDisplayTooltip ? "> div { width: 100%; height: 100% }" : '', "\n");
120
+ shouldDisplayTooltip = _ref6.shouldDisplayTooltip,
121
+ mediaCardCursor = _ref6.mediaCardCursor;
122
+ return "\n ".concat((0, _styles.transition)(), "\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n position: relative;\n font-family: ").concat((0, _constants.fontFamily)(), ";\n ").concat(getWrapperDimensions(dimensions, appearance), "\n ").concat(displayBackground ? "background-color: ".concat(_colors.N20, ";") : '', "\n ").concat(_mediaUi.borderRadius, "\n ").concat(getCursorStyle(mediaCardCursor), "\n ").concat(getWrapperShadow(disableOverlay, selected), "\n ").concat(generateResponsiveStyles(breakpoint), "\n ").concat(_selection.hideNativeBrowserTextSelectionStyles, "\n\n /* We use classnames from here exceptionally to be able to handle styles when the Card is on hover */\n ").concat(getClickablePlayButtonStyles(isPlayButtonClickable), "\n ").concat(getSelectableTickBoxStyles(isTickBoxSelectable), "\n &:hover .").concat(_styled2.blanketClassName, " {\n ").concat(_styled2.fixedBlanketStyles, "\n }\n\n &:hover .").concat(_styled3.actionsBarClassName, " {\n ").concat(_styled3.fixedActionBarStyles, "\n }\n\n /* Tooltip does not support percentage dimensions. We enforce them here */\n ").concat(shouldDisplayTooltip ? "> div { width: 100%; height: 100% }" : '', "\n");
123
123
  });
124
124
 
125
125
  exports.NewFileExperienceWrapper = NewFileExperienceWrapper;
package/dist/cjs/types.js CHANGED
@@ -2,4 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
5
+ });
6
+ exports.MediaCardCursor = void 0;
7
+ var MediaCardCursor;
8
+ exports.MediaCardCursor = MediaCardCursor;
9
+
10
+ (function (MediaCardCursor) {
11
+ MediaCardCursor["Action"] = "pointer";
12
+ MediaCardCursor["NoAction"] = "default";
13
+ MediaCardCursor["NotReady"] = "wait";
14
+ })(MediaCardCursor || (exports.MediaCardCursor = MediaCardCursor = {}));
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.createAndFireMediaCardEvent = void 0;
8
+ exports.extractErrorInfo = exports.createAndFireMediaCardEvent = void 0;
7
9
  exports.fireMediaCardEvent = fireMediaCardEvent;
8
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;
9
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _mediaClient = require("@atlaskit/media-client");
11
15
 
12
16
  var _mediaCommon = require("@atlaskit/media-common");
@@ -15,6 +19,10 @@ var _analyticsNext = require("@atlaskit/analytics-next");
15
19
 
16
20
  var _errors = require("../errors");
17
21
 
22
+ 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; }
23
+
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
+
18
26
  var getFileAttributes = function getFileAttributes(metadata, fileStatus) {
19
27
  return {
20
28
  fileMediatype: metadata.mediaType,
@@ -129,20 +137,28 @@ var getRenderErrorRequestMetadata = function getRenderErrorRequestMetadata(error
129
137
 
130
138
  exports.getRenderErrorRequestMetadata = getRenderErrorRequestMetadata;
131
139
 
140
+ var extractErrorInfo = function extractErrorInfo(error) {
141
+ return {
142
+ failReason: getRenderErrorFailReason(error),
143
+ error: getRenderErrorErrorReason(error),
144
+ errorDetail: getRenderErrorErrorDetail(error)
145
+ };
146
+ };
147
+
148
+ exports.extractErrorInfo = extractErrorInfo;
149
+
132
150
  var getRenderErrorEventPayload = function getRenderErrorEventPayload(fileAttributes, performanceAttributes, error) {
133
151
  return {
134
152
  eventType: 'operational',
135
153
  action: 'failed',
136
154
  actionSubject: 'mediaCardRender',
137
- attributes: {
155
+ attributes: _objectSpread(_objectSpread({
138
156
  fileAttributes: fileAttributes,
139
157
  performanceAttributes: performanceAttributes,
140
- status: 'fail',
141
- failReason: getRenderErrorFailReason(error),
142
- error: getRenderErrorErrorReason(error),
143
- errorDetail: getRenderErrorErrorDetail(error),
158
+ status: 'fail'
159
+ }, extractErrorInfo(error)), {}, {
144
160
  request: getRenderErrorRequestMetadata(error)
145
- }
161
+ })
146
162
  };
147
163
  };
148
164
 
@@ -9,24 +9,18 @@ var _isValidPercentageUnit = require("./isValidPercentageUnit");
9
9
 
10
10
  var _containsPixelUnit = require("./containsPixelUnit");
11
11
 
12
+ var isPixelEquivalent = function isPixelEquivalent(dimension) {
13
+ return typeof dimension === 'number' || (0, _containsPixelUnit.containsPixelUnit)("".concat(dimension));
14
+ };
15
+
12
16
  var canCompareDimension = function canCompareDimension(current, next) {
13
17
  if (!current || !next) {
14
18
  return false;
15
19
  }
16
20
 
17
- if ((0, _isValidPercentageUnit.isValidPercentageUnit)(current) && (0, _isValidPercentageUnit.isValidPercentageUnit)(next)) {
18
- return true;
19
- }
20
-
21
- if ((0, _containsPixelUnit.containsPixelUnit)("".concat(current)) && (0, _containsPixelUnit.containsPixelUnit)("".concat(next))) {
22
- return true;
23
- }
24
-
25
- if (typeof current === 'number' && typeof next === 'number') {
26
- return true;
27
- }
28
-
29
- return false;
21
+ var bothPixelEquivalent = isPixelEquivalent(current) && isPixelEquivalent(next);
22
+ var bothPercentage = (0, _isValidPercentageUnit.isValidPercentageUnit)(current) && (0, _isValidPercentageUnit.isValidPercentageUnit)(next);
23
+ return bothPixelEquivalent || bothPercentage;
30
24
  };
31
25
 
32
26
  exports.canCompareDimension = canCompareDimension;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getMediaCardCursor = void 0;
7
+
8
+ var _types = require("../types");
9
+
10
+ var getMediaCardCursor = function getMediaCardCursor(useInlinePlayer, useMediaViewer, isErrorStatus, hasCardPreview, mediaType) {
11
+ // If error status or no action is requested = NoAction
12
+ if (isErrorStatus || !useInlinePlayer && !useMediaViewer) {
13
+ return _types.MediaCardCursor.NoAction;
14
+ }
15
+
16
+ if (!mediaType && (useInlinePlayer || useInlinePlayer && useMediaViewer)) {
17
+ return _types.MediaCardCursor.NotReady;
18
+ } else if (mediaType === 'video' && hasCardPreview && useInlinePlayer) {
19
+ return _types.MediaCardCursor.Action;
20
+ }
21
+
22
+ if (useMediaViewer) {
23
+ return _types.MediaCardCursor.Action;
24
+ }
25
+
26
+ return _types.MediaCardCursor.NoAction;
27
+ };
28
+
29
+ exports.getMediaCardCursor = getMediaCardCursor;