@atlaskit/media-card 79.0.12 → 79.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 (64) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/card/card.js +1 -1
  3. package/dist/cjs/card/cardView.js +10 -5
  4. package/dist/cjs/card/externalImageCard.js +1 -0
  5. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  6. package/dist/cjs/card/svgView/svgView.js +2 -1
  7. package/dist/cjs/card/svgView/svgViewV2.js +64 -0
  8. package/dist/cjs/card/ui/imageRenderer/helpers.js +76 -0
  9. package/dist/cjs/card/ui/imageRenderer/imageRendererV2.compiled.css +2 -0
  10. package/dist/cjs/card/ui/imageRenderer/imageRendererV2.js +87 -0
  11. package/dist/cjs/card/ui/imageRenderer/index.js +14 -0
  12. package/dist/cjs/card/ui/imageRenderer/types.js +5 -0
  13. package/dist/cjs/card/ui/imageRenderer/wrapper.compiled.css +7 -0
  14. package/dist/cjs/card/ui/imageRenderer/wrapper.js +21 -0
  15. package/dist/cjs/inline/loader.js +1 -1
  16. package/dist/cjs/utils/ufoExperiences.js +1 -1
  17. package/dist/es2019/card/card.js +1 -1
  18. package/dist/es2019/card/cardView.js +10 -5
  19. package/dist/es2019/card/externalImageCard.js +1 -0
  20. package/dist/es2019/card/inlinePlayerWrapper-compiled.js +1 -4
  21. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  22. package/dist/es2019/card/svgView/svgView.js +2 -1
  23. package/dist/es2019/card/svgView/svgViewV2.js +57 -0
  24. package/dist/es2019/card/ui/imageRenderer/helpers.js +73 -0
  25. package/dist/es2019/card/ui/imageRenderer/imageRendererV2.compiled.css +2 -0
  26. package/dist/es2019/card/ui/imageRenderer/imageRendererV2.js +68 -0
  27. package/dist/es2019/card/ui/imageRenderer/index.js +7 -0
  28. package/dist/es2019/card/ui/imageRenderer/types.js +1 -0
  29. package/dist/es2019/card/ui/imageRenderer/wrapper.compiled.css +7 -0
  30. package/dist/es2019/card/ui/imageRenderer/wrapper.js +11 -0
  31. package/dist/es2019/inline/loader.js +1 -1
  32. package/dist/es2019/utils/ufoExperiences.js +1 -1
  33. package/dist/esm/card/card.js +1 -1
  34. package/dist/esm/card/cardView.js +10 -5
  35. package/dist/esm/card/externalImageCard.js +1 -0
  36. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  37. package/dist/esm/card/svgView/svgView.js +2 -1
  38. package/dist/esm/card/svgView/svgViewV2.js +57 -0
  39. package/dist/esm/card/ui/imageRenderer/helpers.js +70 -0
  40. package/dist/esm/card/ui/imageRenderer/imageRendererV2.compiled.css +2 -0
  41. package/dist/esm/card/ui/imageRenderer/imageRendererV2.js +77 -0
  42. package/dist/esm/card/ui/imageRenderer/index.js +7 -0
  43. package/dist/esm/card/ui/imageRenderer/types.js +1 -0
  44. package/dist/esm/card/ui/imageRenderer/wrapper.compiled.css +7 -0
  45. package/dist/esm/card/ui/imageRenderer/wrapper.js +12 -0
  46. package/dist/esm/inline/loader.js +1 -1
  47. package/dist/esm/utils/ufoExperiences.js +1 -1
  48. package/dist/types/card/cardView.d.ts +2 -2
  49. package/dist/types/card/svgView/svgViewV2.d.ts +7 -0
  50. package/dist/types/card/ui/imageRenderer/helpers.d.ts +3 -0
  51. package/dist/types/card/ui/imageRenderer/imageRenderer.d.ts +2 -14
  52. package/dist/types/card/ui/imageRenderer/imageRendererV2.d.ts +3 -0
  53. package/dist/types/card/ui/imageRenderer/index.d.ts +3 -0
  54. package/dist/types/card/ui/imageRenderer/types.d.ts +18 -0
  55. package/dist/types/card/ui/imageRenderer/wrapper.d.ts +4 -0
  56. package/dist/types-ts4.5/card/cardView.d.ts +2 -2
  57. package/dist/types-ts4.5/card/svgView/svgViewV2.d.ts +7 -0
  58. package/dist/types-ts4.5/card/ui/imageRenderer/helpers.d.ts +3 -0
  59. package/dist/types-ts4.5/card/ui/imageRenderer/imageRenderer.d.ts +2 -14
  60. package/dist/types-ts4.5/card/ui/imageRenderer/imageRendererV2.d.ts +3 -0
  61. package/dist/types-ts4.5/card/ui/imageRenderer/index.d.ts +3 -0
  62. package/dist/types-ts4.5/card/ui/imageRenderer/types.d.ts +18 -0
  63. package/dist/types-ts4.5/card/ui/imageRenderer/wrapper.d.ts +4 -0
  64. package/package.json +11 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 79.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#123268](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/123268)
8
+ [`f47a830143188`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f47a830143188) -
9
+ Allow for passing in a resolved media provider to enable SSR'ing media in the editor
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 79.0.13
16
+
17
+ ### Patch Changes
18
+
19
+ - [#127167](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/127167)
20
+ [`08efe402190f3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/08efe402190f3) -
21
+ Replaced internal image rendering component - Behind feature gate platform_media_card_image_render
22
+
3
23
  ## 79.0.12
4
24
 
5
25
  ### Patch Changes
@@ -21,7 +21,7 @@ var _excluded = ["identifier"];
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
23
  var packageName = "@atlaskit/media-card";
24
- var packageVersion = "79.0.12";
24
+ var packageVersion = "79.1.0";
25
25
  var CardBase = exports.CardBase = function CardBase(_ref) {
26
26
  var identifier = _ref.identifier,
27
27
  otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -9,6 +9,7 @@ exports.CardViewBase = exports.CardView = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
+ var _mediaClient = require("@atlaskit/media-client");
12
13
  var _analyticsNext = require("@atlaskit/analytics-next");
13
14
  var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
14
15
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
@@ -16,7 +17,7 @@ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
16
17
  var _useCallbackRef = require("use-callback-ref");
17
18
  var _mediaUi = require("@atlaskit/media-ui");
18
19
  var _analytics = require("../utils/analytics");
19
- var _imageRenderer = require("./ui/imageRenderer/imageRenderer");
20
+ var _imageRenderer = require("./ui/imageRenderer");
20
21
  var _titleBox = require("./ui/titleBox/titleBox");
21
22
  var _failedTitleBox = require("./ui/titleBox/failedTitleBox");
22
23
  var _progressBar = require("./ui/progressBar/progressBar");
@@ -33,6 +34,7 @@ var _useBreakpoint = require("./useBreakpoint");
33
34
  var _openMediaViewerButton = _interopRequireDefault(require("./ui/openMediaViewerButton/openMediaViewerButton"));
34
35
  var _useCurrentValueRef = require("../utils/useCurrentValueRef");
35
36
  var _svgView = require("./svgView");
37
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
36
38
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
37
39
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
38
40
  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; }
@@ -245,7 +247,8 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
245
247
  onSvgLoad === null || onSvgLoad === void 0 || onSvgLoad();
246
248
  };
247
249
  var contents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_wrapper.ImageContainer, {
248
- centerElements: didSvgRender,
250
+ centerElements: didSvgRender && !(0, _platformFeatureFlags.fg)('platform_media_card_image_render') // The whole centerElements styles can go after removing the flag
251
+ ,
249
252
  testId: _classnames.fileCardImageViewSelector,
250
253
  mediaName: name,
251
254
  status: status,
@@ -266,13 +269,13 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
266
269
  }, /*#__PURE__*/_react.default.createElement(_spinner.default, {
267
270
  testId: "media-card-loading",
268
271
  interactionName: "media-card-loading"
269
- })), renderSvgView && identifier && /*#__PURE__*/_react.default.createElement(_svgView.SvgView, {
272
+ })), renderSvgView && identifier && (0, _mediaClient.isFileIdentifier)(identifier) && /*#__PURE__*/_react.default.createElement(_svgView.SvgView, {
270
273
  identifier: identifier,
271
274
  resizeMode: resizeMode || 'crop',
272
275
  onError: onSvgError,
273
276
  onLoad: onSvgLoadBase,
274
277
  wrapperRef: divRef
275
- }), renderImageRenderer && /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, {
278
+ }), renderImageRenderer && identifier && /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, {
276
279
  cardPreview: cardPreview,
277
280
  mediaType: (metadata === null || metadata === void 0 ? void 0 : metadata.mediaType) || 'unknown',
278
281
  alt: alt !== null && alt !== void 0 ? alt : name,
@@ -281,7 +284,9 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
281
284
  onImageLoad: handleOnImageLoad,
282
285
  onImageError: handleOnImageError,
283
286
  nativeLazyLoad: nativeLazyLoad,
284
- forceSyncDisplay: forceSyncDisplay
287
+ forceSyncDisplay: forceSyncDisplay,
288
+ identifier: identifier,
289
+ wrapperRef: divRef
285
290
  }), renderPlayButton && /*#__PURE__*/_react.default.createElement(_iconWrapper.IconWrapper, {
286
291
  breakpoint: breakpoint,
287
292
  hasTitleBox: hasVisibleTitleBox
@@ -201,6 +201,7 @@ var ExternalImageCard = exports.ExternalImageCard = function ExternalImageCard(_
201
201
 
202
202
  var mediaCardCursor = (0, _getMediaCardCursor.getMediaCardCursor)(false, !!shouldOpenMediaViewer, status === 'error', !!cardPreview, metadata.mediaType);
203
203
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cardView.CardView, {
204
+ identifier: identifier,
204
205
  status: status,
205
206
  error: error,
206
207
  mediaItemType: identifier.mediaItemType,
@@ -87,7 +87,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
87
87
  }(_react.default.Component);
88
88
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
89
89
  var packageName = "@atlaskit/media-card";
90
- var packageVersion = "79.0.12";
90
+ var packageVersion = "79.1.0";
91
91
 
92
92
  // @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
93
93
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
@@ -9,6 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
10
  var _svgImageCompiled = require("./svgImage-compiled");
11
11
  var _svgImageEmotion = require("./svgImage-emotion");
12
+ var _svgViewV = require("./svgViewV2");
12
13
  var SvgView = exports.SvgView = function SvgView(props) {
13
- return (0, _platformFeatureFlags.fg)('platform_media_compiled') ? /*#__PURE__*/_react.default.createElement(_svgImageCompiled.SvgView, props) : /*#__PURE__*/_react.default.createElement(_svgImageEmotion.SvgView, props);
14
+ return (0, _platformFeatureFlags.fg)('platform_media_card_image_render') ? /*#__PURE__*/_react.default.createElement(_svgViewV.SvgView, props) : (0, _platformFeatureFlags.fg)('platform_media_compiled') ? /*#__PURE__*/_react.default.createElement(_svgImageCompiled.SvgView, props) : /*#__PURE__*/_react.default.createElement(_svgImageEmotion.SvgView, props);
14
15
  };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SvgView = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _react2 = require("react");
9
+ var _errors = require("../../errors");
10
+ var _mediaSvg = require("@atlaskit/media-svg");
11
+ var _imageRendererV = require("../ui/imageRenderer/imageRendererV2");
12
+ /**
13
+ * @jsxRuntime classic
14
+ * @jsx jsx
15
+ */
16
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
17
+
18
+ var getErrorReason = function getErrorReason(svgReason) {
19
+ switch (svgReason) {
20
+ case 'img-error':
21
+ return 'svg-img-error';
22
+ case 'binary-fetch':
23
+ return 'svg-binary-fetch';
24
+ case 'blob-to-datauri':
25
+ return 'svg-blob-to-datauri';
26
+ default:
27
+ return 'svg-unknown-error';
28
+ }
29
+ };
30
+ var SvgView = exports.SvgView = function SvgView(_ref) {
31
+ var identifier = _ref.identifier,
32
+ resizeMode = _ref.resizeMode,
33
+ onLoad = _ref.onLoad,
34
+ onError = _ref.onError,
35
+ wrapperRef = _ref.wrapperRef,
36
+ alt = _ref.alt;
37
+ var onSvgError = function onSvgError(err) {
38
+ var error = new _errors.MediaCardError(getErrorReason(err.primaryReason), err.secondaryError);
39
+ onError === null || onError === void 0 || onError(error);
40
+ };
41
+ var _useResolveSvg = (0, _mediaSvg.useResolveSvg)(identifier, onSvgError),
42
+ svgUrl = _useResolveSvg.svgUrl,
43
+ source = _useResolveSvg.source;
44
+ var cardPreview = (0, _react2.useMemo)(function () {
45
+ return svgUrl && source ? {
46
+ dataURI: svgUrl,
47
+ source: source
48
+ } : undefined;
49
+ }, [svgUrl, source]);
50
+ return cardPreview ? (0, _react.jsx)(_imageRendererV.ImageRenderer, {
51
+ testId: "media-card-svg",
52
+ identifier: identifier,
53
+ cardPreview: cardPreview,
54
+ alt: alt,
55
+ resizeMode: resizeMode,
56
+ onImageLoad: onLoad,
57
+ onImageError: function onImageError() {
58
+ onSvgError(new _mediaSvg.MediaSVGError('img-error'));
59
+ },
60
+ wrapperRef: wrapperRef,
61
+ mediaType: "image",
62
+ useWhiteBackground: true
63
+ }) : null;
64
+ };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calculateInitialDimensions = exports.calculateDimensions = void 0;
7
+ var calculateDimensions = exports.calculateDimensions = function calculateDimensions(imgElement, parentElement, resizeMode) {
8
+ var naturalWidth = imgElement.naturalWidth,
9
+ width = imgElement.width,
10
+ naturalHeight = imgElement.naturalHeight,
11
+ height = imgElement.height;
12
+ // Firefox & Safari can't always read the "natural" dimensions correctly.
13
+ // When these are undefined or zero, we replace them with the rendered values
14
+ var imgWidth = naturalWidth || width;
15
+ var imgHeight = naturalHeight || height;
16
+ var _parentElement$getBou = parentElement.getBoundingClientRect(),
17
+ parentWidth = _parentElement$getBou.width,
18
+ parentHeight = _parentElement$getBou.height;
19
+ if (resizeMode === 'fit' || resizeMode === 'full-fit') {
20
+ return {
21
+ maxWidth: "min(100%, ".concat(imgWidth, "px)"),
22
+ maxHeight: "min(100%, ".concat(imgHeight, "px)")
23
+ };
24
+ }
25
+ var imgRatio = imgWidth / imgHeight;
26
+ var cardRatio = parentWidth / parentHeight;
27
+ var isImageLandscapier = imgRatio > cardRatio;
28
+ if (resizeMode === 'stretchy-fit') {
29
+ if (isImageLandscapier) {
30
+ return {
31
+ width: '100%',
32
+ maxHeight: '100%'
33
+ };
34
+ } else {
35
+ return {
36
+ height: '100%',
37
+ maxWidth: '100%'
38
+ };
39
+ }
40
+ }
41
+ if (resizeMode === 'crop') {
42
+ if (isImageLandscapier) {
43
+ return {
44
+ height: imgHeight,
45
+ maxHeight: '100%'
46
+ };
47
+ } else {
48
+ return {
49
+ width: imgWidth,
50
+ maxWidth: '100%'
51
+ };
52
+ }
53
+ }
54
+ return {};
55
+ };
56
+ var calculateInitialDimensions = exports.calculateInitialDimensions = function calculateInitialDimensions(resizeMode) {
57
+ if (resizeMode === 'fit' || resizeMode === 'full-fit') {
58
+ return {
59
+ maxWidth: "100%",
60
+ maxHeight: "100%"
61
+ };
62
+ }
63
+ if (resizeMode === 'stretchy-fit') {
64
+ // assume the image is landscape
65
+ return {
66
+ width: '100%',
67
+ maxHeight: '100%'
68
+ };
69
+ }
70
+
71
+ // resizeMode === 'crop'
72
+ // assume the image is landscape
73
+ return {
74
+ width: '100%'
75
+ };
76
+ };
@@ -0,0 +1,2 @@
1
+ ._5ral1f51{object-fit:contain}
2
+ ._bfhku67f{background-color:#fff}
@@ -0,0 +1,87 @@
1
+ /* imageRendererV2.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.ImageRenderer = void 0;
10
+ require("./imageRendererV2.compiled.css");
11
+ var _runtime = require("@compiled/react/runtime");
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _helpers = require("./helpers");
16
+ var _useCurrentValueRef = require("../../../utils/useCurrentValueRef");
17
+ var _wrapper = require("./wrapper");
18
+ var _mediaClient = require("@atlaskit/media-client");
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ 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; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ var baseStyles = null;
24
+ var backgroundStyles = null;
25
+ var ImageRenderer = exports.ImageRenderer = function ImageRenderer(_ref) {
26
+ var cardPreview = _ref.cardPreview,
27
+ _ref$alt = _ref.alt,
28
+ alt = _ref$alt === void 0 ? '' : _ref$alt,
29
+ _ref$resizeMode = _ref.resizeMode,
30
+ resizeMode = _ref$resizeMode === void 0 ? 'crop' : _ref$resizeMode,
31
+ onImageLoad = _ref.onImageLoad,
32
+ onImageError = _ref.onImageError,
33
+ onDisplayImage = _ref.onDisplayImage,
34
+ mediaType = _ref.mediaType,
35
+ nativeLazyLoad = _ref.nativeLazyLoad,
36
+ forceSyncDisplay = _ref.forceSyncDisplay,
37
+ identifier = _ref.identifier,
38
+ wrapperRef = _ref.wrapperRef,
39
+ useWhiteBackground = _ref.useWhiteBackground,
40
+ testId = _ref.testId;
41
+ var onDisplayImageRef = (0, _useCurrentValueRef.useCurrentValueRef)(onDisplayImage);
42
+ (0, _react.useEffect)(function () {
43
+ if (mediaType === 'image') {
44
+ var _onDisplayImageRef$cu;
45
+ (_onDisplayImageRef$cu = onDisplayImageRef.current) === null || _onDisplayImageRef$cu === void 0 || _onDisplayImageRef$cu.call(onDisplayImageRef);
46
+ }
47
+ }, [mediaType, onDisplayImageRef]);
48
+ var _useState = (0, _react.useState)(false),
49
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
50
+ didRender = _useState2[0],
51
+ setDidRender = _useState2[1];
52
+ var _useState3 = (0, _react.useState)((0, _helpers.calculateInitialDimensions)(resizeMode)),
53
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
54
+ resolvedDimensions = _useState4[0],
55
+ setResolvedDimensions = _useState4[1];
56
+ var imgRef = (0, _react.useRef)(null);
57
+ var onLoad = function onLoad(evt) {
58
+ wrapperRef.current && setResolvedDimensions((0, _helpers.calculateDimensions)(evt.currentTarget, wrapperRef.current, resizeMode));
59
+ setDidRender(true);
60
+ cardPreview && (onImageLoad === null || onImageLoad === void 0 ? void 0 : onImageLoad(cardPreview));
61
+ };
62
+ var onError = function onError() {
63
+ onImageError && cardPreview && onImageError(cardPreview);
64
+ };
65
+ (0, _react.useEffect)(function () {
66
+ if (imgRef.current && wrapperRef.current && imgRef.current) {
67
+ setResolvedDimensions((0, _helpers.calculateDimensions)(imgRef.current, wrapperRef.current, resizeMode));
68
+ }
69
+ }, [resizeMode, wrapperRef]);
70
+ return cardPreview ? /*#__PURE__*/_react.default.createElement(_wrapper.ImageRendererWrapper, null, /*#__PURE__*/_react.default.createElement("img", {
71
+ ref: imgRef,
72
+ "data-testid": testId,
73
+ "data-fileid": (0, _mediaClient.isFileIdentifier)(identifier) ? identifier.id : null,
74
+ "data-filecollection": (0, _mediaClient.isFileIdentifier)(identifier) ? identifier.collectionName : null,
75
+ "data-resizemode": resizeMode,
76
+ "data-source": cardPreview.source,
77
+ src: cardPreview.dataURI,
78
+ alt: alt,
79
+ onLoad: onLoad,
80
+ onError: onError,
81
+ loading: nativeLazyLoad ? 'lazy' : undefined,
82
+ style: _objectSpread({
83
+ visibility: didRender || forceSyncDisplay ? 'visible' : 'hidden'
84
+ }, resolvedDimensions),
85
+ className: (0, _runtime.ax)(["_5ral1f51", useWhiteBackground && "_bfhku67f"])
86
+ })) : null;
87
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ImageRenderer = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _imageRenderer = require("./imageRenderer");
10
+ var _imageRendererV = require("./imageRendererV2");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ var ImageRenderer = exports.ImageRenderer = function ImageRenderer(props) {
13
+ return (0, _platformFeatureFlags.fg)('platform_media_card_image_render') ? /*#__PURE__*/_react.default.createElement(_imageRendererV.ImageRenderer, props) : /*#__PURE__*/_react.default.createElement(_imageRenderer.ImageRenderer, props);
14
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,7 @@
1
+ ._1bah1h6o{justify-content:center}
2
+ ._1bsb1osq{width:100%}
3
+ ._1e0c1txw{display:flex}
4
+ ._2lx21bp4{flex-direction:column}
5
+ ._4cvr1h6o{align-items:center}
6
+ ._4t3i1osq{height:100%}
7
+ ._kqswstnw{position:absolute}
@@ -0,0 +1,21 @@
1
+ /* wrapper.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ImageRendererWrapper = void 0;
9
+ require("./wrapper.compiled.css");
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _runtime = require("@compiled/react/runtime");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ var wrapperStyles = null;
15
+ var ImageRendererWrapper = exports.ImageRendererWrapper = function ImageRendererWrapper(_ref) {
16
+ var children = _ref.children;
17
+ return /*#__PURE__*/React.createElement("div", {
18
+ "data-testid": "ImageRendererWrapper",
19
+ className: (0, _runtime.ax)(["_kqswstnw _1bsb1osq _4t3i1osq _1e0c1txw _2lx21bp4 _1bah1h6o _4cvr1h6o"])
20
+ }, children);
21
+ };
@@ -117,7 +117,7 @@ var MediaInlineCardLoader = exports.default = /*#__PURE__*/function (_React$Pure
117
117
  ErrorBoundary = _this$state.ErrorBoundary;
118
118
  var analyticsContext = {
119
119
  packageVersion: "@atlaskit/media-card",
120
- packageName: "79.0.12",
120
+ packageName: "79.1.0",
121
121
  componentName: 'mediaInlineCard',
122
122
  component: 'mediaInlineCard'
123
123
  };
@@ -15,7 +15,7 @@ var _mediaClient = require("@atlaskit/media-client");
15
15
  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; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  var packageName = "@atlaskit/media-card";
18
- var packageVersion = "79.0.12";
18
+ var packageVersion = "79.1.0";
19
19
  var SAMPLE_RATE = 0.05;
20
20
  var concurrentExperience;
21
21
  var getExperience = function getExperience(id) {
@@ -9,7 +9,7 @@ import { startResourceObserver, setAnalyticsContext } from '../utils/mediaPerfor
9
9
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
10
10
  import UFOLabel from '@atlaskit/react-ufo/label';
11
11
  const packageName = "@atlaskit/media-card";
12
- const packageVersion = "79.0.12";
12
+ const packageVersion = "79.1.0";
13
13
  export const CardBase = ({
14
14
  identifier,
15
15
  ...otherProps
@@ -1,4 +1,5 @@
1
1
  import React, { useEffect, useState, useRef, useMemo } from 'react';
2
+ import { isFileIdentifier } from '@atlaskit/media-client';
2
3
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
3
4
  import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
4
5
  import SpinnerIcon from '@atlaskit/spinner';
@@ -6,7 +7,7 @@ import Tooltip from '@atlaskit/tooltip';
6
7
  import { useMergeRefs } from 'use-callback-ref';
7
8
  import { messages } from '@atlaskit/media-ui';
8
9
  import { createAndFireMediaCardEvent } from '../utils/analytics';
9
- import { ImageRenderer } from './ui/imageRenderer/imageRenderer';
10
+ import { ImageRenderer } from './ui/imageRenderer';
10
11
  import { TitleBox } from './ui/titleBox/titleBox';
11
12
  import { FailedTitleBox } from './ui/titleBox/failedTitleBox';
12
13
  import { ProgressBar } from './ui/progressBar/progressBar';
@@ -23,6 +24,7 @@ import { useBreakpoint } from './useBreakpoint';
23
24
  import OpenMediaViewerButton from './ui/openMediaViewerButton/openMediaViewerButton';
24
25
  import { useCurrentValueRef } from '../utils/useCurrentValueRef';
25
26
  import { SvgView } from './svgView';
27
+ import { fg } from '@atlaskit/platform-feature-flags';
26
28
  export const CardViewBase = ({
27
29
  identifier,
28
30
  innerRef = null,
@@ -233,7 +235,8 @@ export const CardViewBase = ({
233
235
  onSvgLoad === null || onSvgLoad === void 0 ? void 0 : onSvgLoad();
234
236
  };
235
237
  const contents = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ImageContainer, {
236
- centerElements: didSvgRender,
238
+ centerElements: didSvgRender && !fg('platform_media_card_image_render') // The whole centerElements styles can go after removing the flag
239
+ ,
237
240
  testId: fileCardImageViewSelector,
238
241
  mediaName: name,
239
242
  status: status,
@@ -254,13 +257,13 @@ export const CardViewBase = ({
254
257
  }, /*#__PURE__*/React.createElement(SpinnerIcon, {
255
258
  testId: "media-card-loading",
256
259
  interactionName: "media-card-loading"
257
- })), renderSvgView && identifier && /*#__PURE__*/React.createElement(SvgView, {
260
+ })), renderSvgView && identifier && isFileIdentifier(identifier) && /*#__PURE__*/React.createElement(SvgView, {
258
261
  identifier: identifier,
259
262
  resizeMode: resizeMode || 'crop',
260
263
  onError: onSvgError,
261
264
  onLoad: onSvgLoadBase,
262
265
  wrapperRef: divRef
263
- }), renderImageRenderer && /*#__PURE__*/React.createElement(ImageRenderer, {
266
+ }), renderImageRenderer && identifier && /*#__PURE__*/React.createElement(ImageRenderer, {
264
267
  cardPreview: cardPreview,
265
268
  mediaType: (metadata === null || metadata === void 0 ? void 0 : metadata.mediaType) || 'unknown',
266
269
  alt: alt !== null && alt !== void 0 ? alt : name,
@@ -269,7 +272,9 @@ export const CardViewBase = ({
269
272
  onImageLoad: handleOnImageLoad,
270
273
  onImageError: handleOnImageError,
271
274
  nativeLazyLoad: nativeLazyLoad,
272
- forceSyncDisplay: forceSyncDisplay
275
+ forceSyncDisplay: forceSyncDisplay,
276
+ identifier: identifier,
277
+ wrapperRef: divRef
273
278
  }), renderPlayButton && /*#__PURE__*/React.createElement(IconWrapper, {
274
279
  breakpoint: breakpoint,
275
280
  hasTitleBox: hasVisibleTitleBox
@@ -166,6 +166,7 @@ export const ExternalImageCard = ({
166
166
 
167
167
  const mediaCardCursor = getMediaCardCursor(false, !!shouldOpenMediaViewer, status === 'error', !!cardPreview, metadata.mediaType);
168
168
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CardView, {
169
+ identifier: identifier,
169
170
  status: status,
170
171
  error: error,
171
172
  mediaItemType: identifier.mediaItemType,
@@ -35,10 +35,7 @@ export const InlinePlayerWrapper = props => {
35
35
  style: {
36
36
  width: getDimensionsWithDefault(dimensions).width || '100%',
37
37
  height: getDimensionsWithDefault(dimensions).height || 'auto'
38
- }
39
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
40
- ,
41
-
38
+ },
42
39
  onClick: onClick,
43
40
  ref: innerRef
44
41
  }, VcMediaWrapperProps), props.children);
@@ -66,7 +66,7 @@ class WrappedMediaCardAnalyticsErrorBoundary extends React.Component {
66
66
  }
67
67
  _defineProperty(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
68
68
  const packageName = "@atlaskit/media-card";
69
- const packageVersion = "79.0.12";
69
+ const packageVersion = "79.1.0";
70
70
 
71
71
  // @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
72
72
  const MediaCardAnalyticsErrorBoundary = withMediaAnalyticsContext({
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
3
  import { SvgView as SvgViewCompiled } from './svgImage-compiled';
4
4
  import { SvgView as SvgViewEmotion } from './svgImage-emotion';
5
+ import { SvgView as SvgViewV2 } from './svgViewV2';
5
6
  export const SvgView = props => {
6
- return fg('platform_media_compiled') ? /*#__PURE__*/React.createElement(SvgViewCompiled, props) : /*#__PURE__*/React.createElement(SvgViewEmotion, props);
7
+ return fg('platform_media_card_image_render') ? /*#__PURE__*/React.createElement(SvgViewV2, props) : fg('platform_media_compiled') ? /*#__PURE__*/React.createElement(SvgViewCompiled, props) : /*#__PURE__*/React.createElement(SvgViewEmotion, props);
7
8
  };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
5
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
6
+ import { jsx } from '@emotion/react';
7
+ import { useMemo } from 'react';
8
+ import { MediaCardError } from '../../errors';
9
+ import { useResolveSvg, MediaSVGError } from '@atlaskit/media-svg';
10
+ import { ImageRenderer } from '../ui/imageRenderer/imageRendererV2';
11
+ const getErrorReason = svgReason => {
12
+ switch (svgReason) {
13
+ case 'img-error':
14
+ return 'svg-img-error';
15
+ case 'binary-fetch':
16
+ return 'svg-binary-fetch';
17
+ case 'blob-to-datauri':
18
+ return 'svg-blob-to-datauri';
19
+ default:
20
+ return 'svg-unknown-error';
21
+ }
22
+ };
23
+ export const SvgView = ({
24
+ identifier,
25
+ resizeMode,
26
+ onLoad,
27
+ onError,
28
+ wrapperRef,
29
+ alt
30
+ }) => {
31
+ const onSvgError = err => {
32
+ const error = new MediaCardError(getErrorReason(err.primaryReason), err.secondaryError);
33
+ onError === null || onError === void 0 ? void 0 : onError(error);
34
+ };
35
+ const {
36
+ svgUrl,
37
+ source
38
+ } = useResolveSvg(identifier, onSvgError);
39
+ const cardPreview = useMemo(() => svgUrl && source ? {
40
+ dataURI: svgUrl,
41
+ source
42
+ } : undefined, [svgUrl, source]);
43
+ return cardPreview ? jsx(ImageRenderer, {
44
+ testId: "media-card-svg",
45
+ identifier: identifier,
46
+ cardPreview: cardPreview,
47
+ alt: alt,
48
+ resizeMode: resizeMode,
49
+ onImageLoad: onLoad,
50
+ onImageError: () => {
51
+ onSvgError(new MediaSVGError('img-error'));
52
+ },
53
+ wrapperRef: wrapperRef,
54
+ mediaType: "image",
55
+ useWhiteBackground: true
56
+ }) : null;
57
+ };