@atlaskit/media-card 77.5.1 → 77.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/card/card.js +1 -1
  3. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  4. package/dist/cjs/card/v2/cardV2.js +1 -1
  5. package/dist/cjs/card/v2/cardviews/cardViewWrapper.js +100 -0
  6. package/dist/cjs/card/v2/cardviews/errorCardView.js +87 -0
  7. package/dist/cjs/card/v2/cardviews/iconCardView.js +79 -0
  8. package/dist/cjs/card/v2/cardviews/imageCardView.js +89 -0
  9. package/dist/cjs/card/v2/cardviews/index.js +282 -0
  10. package/dist/cjs/card/v2/cardviews/loadingCardView.js +53 -0
  11. package/dist/cjs/card/v2/cardviews/processingCardView.js +65 -0
  12. package/dist/cjs/card/v2/cardviews/videoCardView.js +94 -0
  13. package/dist/cjs/card/v2/fileCard.js +4 -1
  14. package/dist/cjs/inline/loader.js +1 -1
  15. package/dist/cjs/utils/ufoExperiences.js +1 -1
  16. package/dist/es2019/card/card.js +1 -1
  17. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  18. package/dist/es2019/card/v2/cardV2.js +1 -1
  19. package/dist/es2019/card/v2/cardviews/cardViewWrapper.js +92 -0
  20. package/dist/es2019/card/v2/cardviews/errorCardView.js +82 -0
  21. package/dist/es2019/card/v2/cardviews/iconCardView.js +70 -0
  22. package/dist/es2019/card/v2/cardviews/imageCardView.js +75 -0
  23. package/dist/es2019/card/v2/cardviews/index.js +268 -0
  24. package/dist/es2019/card/v2/cardviews/loadingCardView.js +48 -0
  25. package/dist/es2019/card/v2/cardviews/processingCardView.js +60 -0
  26. package/dist/es2019/card/v2/cardviews/videoCardView.js +80 -0
  27. package/dist/es2019/card/v2/fileCard.js +4 -1
  28. package/dist/es2019/inline/loader.js +1 -1
  29. package/dist/es2019/utils/ufoExperiences.js +1 -1
  30. package/dist/esm/card/card.js +1 -1
  31. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  32. package/dist/esm/card/v2/cardV2.js +1 -1
  33. package/dist/esm/card/v2/cardviews/cardViewWrapper.js +93 -0
  34. package/dist/esm/card/v2/cardviews/errorCardView.js +79 -0
  35. package/dist/esm/card/v2/cardviews/iconCardView.js +71 -0
  36. package/dist/esm/card/v2/cardviews/imageCardView.js +81 -0
  37. package/dist/esm/card/v2/cardviews/index.js +271 -0
  38. package/dist/esm/card/v2/cardviews/loadingCardView.js +45 -0
  39. package/dist/esm/card/v2/cardviews/processingCardView.js +57 -0
  40. package/dist/esm/card/v2/cardviews/videoCardView.js +86 -0
  41. package/dist/esm/card/v2/fileCard.js +4 -1
  42. package/dist/esm/inline/loader.js +1 -1
  43. package/dist/esm/utils/ufoExperiences.js +1 -1
  44. package/dist/types/card/ui/wrapper/types.d.ts +2 -2
  45. package/dist/types/card/v2/cardviews/cardViewWrapper.d.ts +38 -0
  46. package/dist/types/card/v2/cardviews/errorCardView.d.ts +11 -0
  47. package/dist/types/card/v2/cardviews/iconCardView.d.ts +12 -0
  48. package/dist/types/card/v2/cardviews/imageCardView.d.ts +21 -0
  49. package/dist/types/card/v2/cardviews/index.d.ts +45 -0
  50. package/dist/types/card/v2/cardviews/loadingCardView.d.ts +10 -0
  51. package/dist/types/card/v2/cardviews/processingCardView.d.ts +8 -0
  52. package/dist/types/card/v2/cardviews/videoCardView.d.ts +21 -0
  53. package/dist/types-ts4.5/card/ui/wrapper/types.d.ts +2 -2
  54. package/dist/types-ts4.5/card/v2/cardviews/cardViewWrapper.d.ts +38 -0
  55. package/dist/types-ts4.5/card/v2/cardviews/errorCardView.d.ts +11 -0
  56. package/dist/types-ts4.5/card/v2/cardviews/iconCardView.d.ts +12 -0
  57. package/dist/types-ts4.5/card/v2/cardviews/imageCardView.d.ts +21 -0
  58. package/dist/types-ts4.5/card/v2/cardviews/index.d.ts +45 -0
  59. package/dist/types-ts4.5/card/v2/cardviews/loadingCardView.d.ts +10 -0
  60. package/dist/types-ts4.5/card/v2/cardviews/processingCardView.d.ts +8 -0
  61. package/dist/types-ts4.5/card/v2/cardviews/videoCardView.d.ts +21 -0
  62. package/package.json +5 -3
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CardViewsBase = exports.CardViews = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = require("@emotion/react");
12
+ var _react2 = _interopRequireWildcard(require("react"));
13
+ var _analyticsNext = require("@atlaskit/analytics-next");
14
+ var _analytics = require("../../../utils/analytics");
15
+ var _useBreakpoint = require("../../useBreakpoint");
16
+ var _processingCardView = require("./processingCardView");
17
+ var _errorCardView = require("./errorCardView");
18
+ var _videoCardView = require("./videoCardView");
19
+ var _imageCardView = require("./imageCardView");
20
+ var _iconCardView = require("./iconCardView");
21
+ var _loadingCardView = require("./loadingCardView");
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ /** @jsx jsx */
25
+
26
+ var CardViewsBase = exports.CardViewsBase = function CardViewsBase(_ref) {
27
+ var innerRef = _ref.innerRef,
28
+ onImageLoad = _ref.onImageLoad,
29
+ onImageError = _ref.onImageError,
30
+ dimensions = _ref.dimensions,
31
+ _ref$appearance = _ref.appearance,
32
+ appearance = _ref$appearance === void 0 ? 'auto' : _ref$appearance,
33
+ onClick = _ref.onClick,
34
+ onMouseEnter = _ref.onMouseEnter,
35
+ testId = _ref.testId,
36
+ metadata = _ref.metadata,
37
+ status = _ref.status,
38
+ selected = _ref.selected,
39
+ selectable = _ref.selectable,
40
+ cardPreview = _ref.cardPreview,
41
+ mediaCardCursor = _ref.mediaCardCursor,
42
+ shouldHideTooltip = _ref.shouldHideTooltip,
43
+ progress = _ref.progress,
44
+ alt = _ref.alt,
45
+ resizeMode = _ref.resizeMode,
46
+ onDisplayImage = _ref.onDisplayImage,
47
+ nativeLazyLoad = _ref.nativeLazyLoad,
48
+ forceSyncDisplay = _ref.forceSyncDisplay,
49
+ actions = _ref.actions,
50
+ disableOverlay = _ref.disableOverlay,
51
+ titleBoxBgColor = _ref.titleBoxBgColor,
52
+ titleBoxIcon = _ref.titleBoxIcon,
53
+ error = _ref.error,
54
+ disableAnimation = _ref.disableAnimation;
55
+ var _useState = (0, _react2.useState)(false),
56
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
57
+ didImageRender = _useState2[0],
58
+ setDidImageRender = _useState2[1];
59
+ var divRef = (0, _react2.useRef)(null);
60
+ var prevCardPreviewRef = (0, _react2.useRef)();
61
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
62
+ (0, _react2.useEffect)(function () {
63
+ innerRef && !!divRef.current && innerRef(divRef.current);
64
+ }, [innerRef]);
65
+
66
+ /* didImageRender movements */
67
+
68
+ (0, _react2.useEffect)(function () {
69
+ // We should only switch didImageRender to false when cardPreview goes undefined, not when it is changed. as this method could be triggered after onImageLoad callback, falling on a race condition
70
+ if (prevCardPreviewRef.current && !cardPreview) {
71
+ setDidImageRender(false);
72
+ }
73
+ prevCardPreviewRef.current = cardPreview;
74
+ }, [cardPreview]);
75
+ var handleOnImageLoad = function handleOnImageLoad(prevCardPreview) {
76
+ if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
77
+ return;
78
+ }
79
+ setDidImageRender(true);
80
+ onImageLoad === null || onImageLoad === void 0 || onImageLoad(cardPreview);
81
+ };
82
+ var handleOnImageError = function handleOnImageError(prevCardPreview) {
83
+ if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
84
+ return;
85
+ }
86
+ setDidImageRender(false);
87
+ onImageError === null || onImageError === void 0 || onImageError(cardPreview);
88
+ };
89
+ var getRenderConfigByStatus = function getRenderConfigByStatus() {
90
+ var _ref2 = metadata || {},
91
+ mediaType = _ref2.mediaType;
92
+
93
+ // TODO: figure out if data-test-progress for all the card views
94
+
95
+ var baseProps = {
96
+ testId: testId,
97
+ dimensions: dimensions,
98
+ appearance: appearance,
99
+ metadata: metadata,
100
+ selected: selected,
101
+ selectable: selectable,
102
+ actions: actions,
103
+ breakpoint: breakpoint,
104
+ disableOverlay: disableOverlay,
105
+ titleBoxBgColor: titleBoxBgColor,
106
+ titleBoxIcon: titleBoxIcon,
107
+ shouldHideTooltip: shouldHideTooltip,
108
+ onClick: onClick,
109
+ onMouseEnter: onMouseEnter,
110
+ mediaCardCursor: mediaCardCursor,
111
+ innerRef: innerRef
112
+ };
113
+ switch (status) {
114
+ case 'uploading':
115
+ if (cardPreview) {
116
+ return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)("div", {
117
+ style: {
118
+ display: !didImageRender ? 'none' : 'inline'
119
+ }
120
+ }, mediaType === 'video' ? (0, _react.jsx)(_videoCardView.VideoCardView, (0, _extends2.default)({}, baseProps, {
121
+ status: status,
122
+ cardPreview: cardPreview,
123
+ alt: alt,
124
+ resizeMode: resizeMode,
125
+ onDisplayImage: onDisplayImage,
126
+ onImageLoad: handleOnImageLoad,
127
+ onImageError: handleOnImageError,
128
+ nativeLazyLoad: nativeLazyLoad,
129
+ forceSyncDisplay: forceSyncDisplay,
130
+ progress: progress
131
+ })) : (0, _react.jsx)(_imageCardView.ImageCardView, (0, _extends2.default)({}, baseProps, {
132
+ status: status,
133
+ cardPreview: cardPreview,
134
+ alt: alt,
135
+ resizeMode: resizeMode,
136
+ onDisplayImage: onDisplayImage,
137
+ onImageLoad: handleOnImageLoad,
138
+ onImageError: handleOnImageError,
139
+ nativeLazyLoad: nativeLazyLoad,
140
+ forceSyncDisplay: forceSyncDisplay,
141
+ progress: progress
142
+ }))), (0, _react.jsx)("div", {
143
+ style: {
144
+ display: didImageRender ? 'none' : 'inline'
145
+ }
146
+ }, (0, _react.jsx)(_iconCardView.IconCardView, (0, _extends2.default)({
147
+ status: status,
148
+ progress: progress
149
+ }, baseProps))));
150
+ } else {
151
+ return (0, _react.jsx)(_iconCardView.IconCardView, (0, _extends2.default)({
152
+ status: status,
153
+ progress: progress
154
+ }, baseProps));
155
+ }
156
+ case 'processing':
157
+ if (cardPreview) {
158
+ return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)("div", {
159
+ style: {
160
+ display: !didImageRender ? 'none' : 'inline'
161
+ }
162
+ }, mediaType === 'video' ? (0, _react.jsx)(_videoCardView.VideoCardView, (0, _extends2.default)({}, baseProps, {
163
+ status: status,
164
+ cardPreview: cardPreview,
165
+ alt: alt,
166
+ resizeMode: resizeMode,
167
+ onDisplayImage: onDisplayImage,
168
+ onImageLoad: handleOnImageLoad,
169
+ onImageError: handleOnImageError,
170
+ nativeLazyLoad: nativeLazyLoad,
171
+ forceSyncDisplay: forceSyncDisplay,
172
+ progress: progress
173
+ })) : (0, _react.jsx)(_imageCardView.ImageCardView, (0, _extends2.default)({}, baseProps, {
174
+ status: status,
175
+ cardPreview: cardPreview,
176
+ alt: alt,
177
+ resizeMode: resizeMode,
178
+ onDisplayImage: onDisplayImage,
179
+ onImageLoad: handleOnImageLoad,
180
+ onImageError: handleOnImageError,
181
+ nativeLazyLoad: nativeLazyLoad,
182
+ forceSyncDisplay: forceSyncDisplay,
183
+ progress: progress
184
+ }))), (0, _react.jsx)("div", {
185
+ style: {
186
+ display: didImageRender ? 'none' : 'inline'
187
+ }
188
+ }, (0, _react.jsx)(_processingCardView.ProcessingCardView, (0, _extends2.default)({
189
+ disableAnimation: disableAnimation
190
+ }, baseProps))));
191
+ } else {
192
+ return (0, _react.jsx)(_processingCardView.ProcessingCardView, (0, _extends2.default)({
193
+ disableAnimation: disableAnimation
194
+ }, baseProps));
195
+ }
196
+ case 'complete':
197
+ if (cardPreview) {
198
+ return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)("div", {
199
+ style: {
200
+ display: !didImageRender ? 'none' : 'inline'
201
+ }
202
+ }, mediaType === 'video' ? (0, _react.jsx)(_videoCardView.VideoCardView, (0, _extends2.default)({}, baseProps, {
203
+ status: status,
204
+ cardPreview: cardPreview,
205
+ alt: alt,
206
+ resizeMode: resizeMode,
207
+ onDisplayImage: onDisplayImage,
208
+ onImageLoad: handleOnImageLoad,
209
+ onImageError: handleOnImageError,
210
+ nativeLazyLoad: nativeLazyLoad,
211
+ forceSyncDisplay: forceSyncDisplay
212
+ })) : (0, _react.jsx)(_imageCardView.ImageCardView, (0, _extends2.default)({}, baseProps, {
213
+ status: status,
214
+ cardPreview: cardPreview,
215
+ alt: alt,
216
+ resizeMode: resizeMode,
217
+ onDisplayImage: onDisplayImage,
218
+ onImageLoad: handleOnImageLoad,
219
+ onImageError: handleOnImageError,
220
+ nativeLazyLoad: nativeLazyLoad,
221
+ forceSyncDisplay: forceSyncDisplay
222
+ }))), (0, _react.jsx)("div", {
223
+ style: {
224
+ display: didImageRender ? 'none' : 'inline'
225
+ }
226
+ }, (0, _react.jsx)(_iconCardView.IconCardView, (0, _extends2.default)({
227
+ status: status
228
+ }, baseProps))));
229
+ } else {
230
+ return (0, _react.jsx)(_iconCardView.IconCardView, (0, _extends2.default)({
231
+ status: status
232
+ }, baseProps));
233
+ }
234
+ case 'error':
235
+ case 'failed-processing':
236
+ return (0, _react.jsx)(_errorCardView.ErrorCardView, (0, _extends2.default)({
237
+ disableAnimation: disableAnimation,
238
+ error: error
239
+ }, baseProps));
240
+ case 'loading-preview':
241
+ case 'loading':
242
+ default:
243
+ if (cardPreview) {
244
+ return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)("div", {
245
+ style: {
246
+ display: !didImageRender ? 'none' : 'inline'
247
+ }
248
+ }, (0, _react.jsx)(_imageCardView.ImageCardView, (0, _extends2.default)({}, baseProps, {
249
+ status: status,
250
+ cardPreview: cardPreview,
251
+ alt: alt,
252
+ resizeMode: resizeMode,
253
+ onDisplayImage: onDisplayImage,
254
+ onImageLoad: handleOnImageLoad,
255
+ onImageError: handleOnImageError,
256
+ nativeLazyLoad: nativeLazyLoad,
257
+ forceSyncDisplay: forceSyncDisplay,
258
+ progress: progress
259
+ }))), (0, _react.jsx)("div", {
260
+ style: {
261
+ display: didImageRender ? 'none' : 'inline'
262
+ }
263
+ }, (0, _react.jsx)(_loadingCardView.LoadingCardView, (0, _extends2.default)({}, baseProps, {
264
+ disableAnimation: disableAnimation
265
+ }))));
266
+ } else {
267
+ return (0, _react.jsx)(_loadingCardView.LoadingCardView, (0, _extends2.default)({}, baseProps, {
268
+ disableAnimation: disableAnimation
269
+ }));
270
+ }
271
+ }
272
+ };
273
+ return getRenderConfigByStatus();
274
+ };
275
+ var CardViews = exports.CardViews = (0, _analyticsNext.withAnalyticsEvents)({
276
+ onClick: (0, _analytics.createAndFireMediaCardEvent)({
277
+ eventType: 'ui',
278
+ action: 'clicked',
279
+ actionSubject: 'mediaCard',
280
+ attributes: {}
281
+ })
282
+ })(CardViewsBase);
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LoadingCardView = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _react2 = require("react");
11
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
12
+ var _analyticsNext = require("@atlaskit/analytics-next");
13
+ var _analytics = require("../../../utils/analytics");
14
+ var _iconWrapper = require("../../ui/iconWrapper/iconWrapper");
15
+ var _useBreakpoint = require("../../useBreakpoint");
16
+ var _cardViewWrapper = require("./cardViewWrapper");
17
+ /** @jsx jsx */
18
+
19
+ var LoadingCardViewBase = function LoadingCardViewBase(props) {
20
+ var dimensions = props.dimensions,
21
+ metadata = props.metadata,
22
+ disableOverlay = props.disableOverlay,
23
+ innerRef = props.innerRef;
24
+ var divRef = (0, _react2.useRef)(null);
25
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
26
+ (0, _react2.useEffect)(function () {
27
+ innerRef && !!divRef.current && innerRef(divRef.current);
28
+ }, [innerRef]);
29
+ var _ref = metadata || {},
30
+ name = _ref.name;
31
+ var hasTitleBox = !disableOverlay && !!name;
32
+ return (0, _react.jsx)(_cardViewWrapper.CardViewWrapper, (0, _extends2.default)({}, props, {
33
+ metadata: metadata,
34
+ breakpoint: breakpoint,
35
+ ref: divRef
36
+ }), (0, _react.jsx)(_iconWrapper.IconWrapper, {
37
+ breakpoint: breakpoint,
38
+ hasTitleBox: hasTitleBox
39
+ }, (0, _react.jsx)(_spinner.default, {
40
+ testId: "media-card-loading"
41
+ })));
42
+ };
43
+
44
+ // TODO: check if analytics is correct
45
+
46
+ var LoadingCardView = exports.LoadingCardView = (0, _analyticsNext.withAnalyticsEvents)({
47
+ onClick: (0, _analytics.createAndFireMediaCardEvent)({
48
+ eventType: 'ui',
49
+ action: 'clicked',
50
+ actionSubject: 'mediaCard',
51
+ attributes: {}
52
+ })
53
+ })(LoadingCardViewBase);
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ProcessingCardView = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _react2 = require("react");
11
+ var _analyticsNext = require("@atlaskit/analytics-next");
12
+ var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
13
+ var _analytics = require("../../../utils/analytics");
14
+ var _iconWrapper = require("../../ui/iconWrapper/iconWrapper");
15
+ var _iconMessage = require("../../ui/iconMessage");
16
+ var _useBreakpoint = require("../../useBreakpoint");
17
+ var _cardViewWrapper = require("./cardViewWrapper");
18
+ /** @jsx jsx */
19
+
20
+ var ProcessingCardViewBase = function ProcessingCardViewBase(props) {
21
+ var disableAnimation = props.disableAnimation,
22
+ dimensions = props.dimensions,
23
+ metadata = props.metadata,
24
+ disableOverlay = props.disableOverlay,
25
+ innerRef = props.innerRef;
26
+ var divRef = (0, _react2.useRef)(null);
27
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
28
+ (0, _react2.useEffect)(function () {
29
+ innerRef && !!divRef.current && innerRef(divRef.current);
30
+ }, [innerRef]);
31
+ var _ref = metadata || {},
32
+ name = _ref.name,
33
+ size = _ref.size,
34
+ mediaType = _ref.mediaType,
35
+ mimeType = _ref.mimeType;
36
+ var isZeroSize = size === 0;
37
+ var hasTitleBox = !disableOverlay && !!name;
38
+ return (0, _react.jsx)(_cardViewWrapper.CardViewWrapper, (0, _extends2.default)({}, props, {
39
+ metadata: metadata,
40
+ breakpoint: breakpoint,
41
+ "data-test-status": "processing",
42
+ ref: divRef
43
+ }), (0, _react.jsx)(_iconWrapper.IconWrapper, {
44
+ breakpoint: breakpoint,
45
+ hasTitleBox: hasTitleBox
46
+ }, (0, _react.jsx)(_mimeTypeIcon.MimeTypeIcon, {
47
+ testId: "media-card-file-type-icon",
48
+ mediaType: mediaType,
49
+ mimeType: mimeType,
50
+ name: name
51
+ }), !isZeroSize && (0, _react.jsx)(_iconMessage.CreatingPreview, {
52
+ disableAnimation: disableAnimation
53
+ })));
54
+ };
55
+
56
+ // TODO: check if analytics is correct
57
+
58
+ var ProcessingCardView = exports.ProcessingCardView = (0, _analyticsNext.withAnalyticsEvents)({
59
+ onClick: (0, _analytics.createAndFireMediaCardEvent)({
60
+ eventType: 'ui',
61
+ action: 'clicked',
62
+ actionSubject: 'mediaCard',
63
+ attributes: {}
64
+ })
65
+ })(ProcessingCardViewBase);
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.VideoCardView = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _react2 = require("react");
11
+ var _analyticsNext = require("@atlaskit/analytics-next");
12
+ var _analytics = require("../../../utils/analytics");
13
+ var _iconWrapper = require("../../ui/iconWrapper/iconWrapper");
14
+ var _playButton = require("../../ui/playButton/playButton");
15
+ var _imageRenderer = require("../../ui/imageRenderer/imageRenderer");
16
+ var _useBreakpoint = require("../../useBreakpoint");
17
+ var _cardViewWrapper = require("./cardViewWrapper");
18
+ var _progressBar = require("../../ui/progressBar/progressBar");
19
+ var _blanket = require("../../ui/blanket/blanket");
20
+ /** @jsx jsx */
21
+
22
+ var VideoCardViewBase = function VideoCardViewBase(props) {
23
+ var status = props.status,
24
+ dimensions = props.dimensions,
25
+ metadata = props.metadata,
26
+ disableOverlay = props.disableOverlay,
27
+ innerRef = props.innerRef,
28
+ progress = props.progress,
29
+ cardPreview = props.cardPreview,
30
+ alt = props.alt,
31
+ resizeMode = props.resizeMode,
32
+ onDisplayImage = props.onDisplayImage,
33
+ nativeLazyLoad = props.nativeLazyLoad,
34
+ forceSyncDisplay = props.forceSyncDisplay,
35
+ _onImageLoad = props.onImageLoad,
36
+ _onImageError = props.onImageError;
37
+ var divRef = (0, _react2.useRef)(null);
38
+ var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
39
+ (0, _react2.useEffect)(function () {
40
+ innerRef && !!divRef.current && innerRef(divRef.current);
41
+ }, [innerRef]);
42
+ var _ref = metadata || {},
43
+ name = _ref.name,
44
+ _ref$mediaType = _ref.mediaType,
45
+ mediaType = _ref$mediaType === void 0 ? 'unknown' : _ref$mediaType;
46
+ var hasTitleBox = !disableOverlay && !!name;
47
+ var isUploading = status === 'uploading';
48
+ return (0, _react.jsx)(_cardViewWrapper.CardViewWrapper, (0, _extends2.default)({}, props, {
49
+ breakpoint: breakpoint,
50
+ "data-test-status": status,
51
+ "data-test-progress": progress,
52
+ ref: divRef,
53
+ customBlanket: function customBlanket() {
54
+ return disableOverlay ? null : (0, _react.jsx)(_blanket.Blanket, {
55
+ isFixed: isUploading
56
+ });
57
+ },
58
+ progressBar: isUploading ? function () {
59
+ return (0, _react.jsx)(_progressBar.ProgressBar, {
60
+ progress: progress,
61
+ breakpoint: breakpoint,
62
+ positionBottom: !hasTitleBox
63
+ });
64
+ } : undefined
65
+ }), (0, _react.jsx)(_imageRenderer.ImageRenderer, {
66
+ cardPreview: cardPreview,
67
+ mediaType: mediaType,
68
+ alt: alt,
69
+ resizeMode: resizeMode,
70
+ onDisplayImage: onDisplayImage,
71
+ onImageLoad: function onImageLoad() {
72
+ return _onImageLoad === null || _onImageLoad === void 0 ? void 0 : _onImageLoad(cardPreview);
73
+ },
74
+ onImageError: function onImageError() {
75
+ return _onImageError === null || _onImageError === void 0 ? void 0 : _onImageError(cardPreview);
76
+ },
77
+ nativeLazyLoad: nativeLazyLoad,
78
+ forceSyncDisplay: forceSyncDisplay
79
+ }), cardPreview && (0, _react.jsx)(_iconWrapper.IconWrapper, {
80
+ breakpoint: breakpoint,
81
+ hasTitleBox: hasTitleBox
82
+ }, (0, _react.jsx)(_playButton.PlayButton, null)));
83
+ };
84
+
85
+ // TODO: check if analytics is correct
86
+
87
+ var VideoCardView = exports.VideoCardView = (0, _analyticsNext.withAnalyticsEvents)({
88
+ onClick: (0, _analytics.createAndFireMediaCardEvent)({
89
+ eventType: 'ui',
90
+ action: 'clicked',
91
+ actionSubject: 'mediaCard',
92
+ attributes: {}
93
+ })
94
+ })(VideoCardViewBase);
@@ -9,6 +9,7 @@ exports.FileCard = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
13
  var _download = _interopRequireDefault(require("@atlaskit/icon/glyph/download"));
13
14
  var _mediaClient = require("@atlaskit/media-client");
14
15
  var _mediaClientReact = require("@atlaskit/media-client-react");
@@ -31,12 +32,14 @@ var _cardDimensions = require("../../utils/cardDimensions");
31
32
  var _cardAnalytics = require("../cardAnalytics");
32
33
  var _getCardPreview = require("../getCardPreview");
33
34
  var _cardViewV = require("./cardViewV2");
35
+ var _cardviews = require("./cardviews");
34
36
  var _inlinePlayerLazyV = require("./inlinePlayerLazyV2");
35
37
  var _useFilePreview2 = require("./useFilePreview");
36
38
  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); }
37
39
  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; }
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; }
39
41
  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; }
42
+ var LoadedCardView = (0, _platformFeatureFlags.getBooleanFF)('platform.media-experience.card-views-refactor_b91lr') ? _cardviews.CardViews : _cardViewV.CardViewV2;
40
43
  var FileCard = exports.FileCard = function FileCard(_ref) {
41
44
  var _ref$appearance = _ref.appearance,
42
45
  appearance = _ref$appearance === void 0 ? 'auto' : _ref$appearance,
@@ -519,7 +522,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
519
522
  // Force Media Image to always display img for SSR
520
523
  var forceSyncDisplay = !!ssr;
521
524
  var mediaCardCursor = (0, _getMediaCardCursor.getMediaCardCursor)(!!useInlinePlayer, !!shouldOpenMediaViewer, finalStatus === 'error' || finalStatus === 'failed-processing', !!cardPreview, metadata.mediaType);
522
- var card = /*#__PURE__*/_react.default.createElement(_cardViewV.CardViewV2, {
525
+ var card = /*#__PURE__*/_react.default.createElement(LoadedCardView, {
523
526
  status: cardStatusOverride || finalStatus,
524
527
  error: finalError,
525
528
  mediaItemType: mediaItemType,
@@ -119,7 +119,7 @@ var MediaInlineCardLoader = exports.default = /*#__PURE__*/function (_React$Pure
119
119
  ErrorBoundary = _this$state.ErrorBoundary;
120
120
  var analyticsContext = {
121
121
  packageVersion: "@atlaskit/media-card",
122
- packageName: "77.5.1",
122
+ packageName: "77.6.0",
123
123
  componentName: 'mediaInlineCard',
124
124
  component: 'mediaInlineCard'
125
125
  };
@@ -14,7 +14,7 @@ var _mediaClient = require("@atlaskit/media-client");
14
14
  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; }
15
15
  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; }
16
16
  var packageName = "@atlaskit/media-card";
17
- var packageVersion = "77.5.1";
17
+ var packageVersion = "77.6.0";
18
18
  var concurrentExperience;
19
19
  var getExperience = function getExperience(id) {
20
20
  if (!concurrentExperience) {
@@ -27,7 +27,7 @@ import { getMediaCardCursor } from '../utils/getMediaCardCursor';
27
27
  import { completeUfoExperience, startUfoExperience, abortUfoExperience } from '../utils/ufoExperiences';
28
28
  import { generateUniqueId } from '../utils/generateUniqueId';
29
29
  const packageName = "@atlaskit/media-card";
30
- const packageVersion = "77.5.1";
30
+ const packageVersion = "77.6.0";
31
31
  export class CardBase extends Component {
32
32
  constructor(props) {
33
33
  super(props);
@@ -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 = "77.5.1";
69
+ const packageVersion = "77.6.0";
70
70
  const MediaCardAnalyticsErrorBoundary = withMediaAnalyticsContext({
71
71
  packageVersion,
72
72
  packageName,
@@ -7,7 +7,7 @@ import { IntlProvider, injectIntl } from 'react-intl-next';
7
7
  import { ExternalImageCard } from './externalImageCard';
8
8
  import { FileCard } from './fileCard';
9
9
  const packageName = "@atlaskit/media-card";
10
- const packageVersion = "77.5.1";
10
+ const packageVersion = "77.6.0";
11
11
  export const CardV2Base = ({
12
12
  identifier,
13
13
  ...otherProps
@@ -0,0 +1,92 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /** @jsx jsx */
3
+ import { jsx } from '@emotion/react';
4
+ import React from 'react';
5
+ import Tooltip from '@atlaskit/tooltip';
6
+ import { Wrapper } from '../../ui/wrapper';
7
+ import { attachDetailsToActions } from '../../actions';
8
+ import { cardImageContainerStyles } from '../../ui/styles';
9
+ import { TitleBox } from '../../ui/titleBox/titleBox';
10
+ import { TickBox } from '../../ui/tickBox/tickBox';
11
+ import { Blanket } from '../../ui/blanket/blanket';
12
+ import { ActionsBar } from '../../ui/actionsBar/actionsBar';
13
+ import { fileCardImageViewSelector } from '../../classnames';
14
+ export const CardViewWrapper = /*#__PURE__*/React.forwardRef(({
15
+ cardPreview,
16
+ testId,
17
+ dimensions,
18
+ appearance = 'auto',
19
+ metadata,
20
+ selected,
21
+ selectable,
22
+ actions,
23
+ breakpoint,
24
+ disableOverlay,
25
+ titleBoxBgColor,
26
+ titleBoxIcon,
27
+ shouldHideTooltip,
28
+ children,
29
+ onClick,
30
+ onMouseEnter,
31
+ mediaCardCursor,
32
+ customBlanket,
33
+ customTitleBox,
34
+ progressBar,
35
+ ...props
36
+ }, ref) => {
37
+ const {
38
+ name,
39
+ createdAt,
40
+ mediaType
41
+ } = metadata || {};
42
+ const actionsWithDetails = metadata && actions ? attachDetailsToActions(actions, metadata) : [];
43
+ const defaultBlanket = !disableOverlay && jsx(Blanket, null);
44
+ const defaultTitleBox = !disableOverlay && !!name && jsx(TitleBox, {
45
+ name: name,
46
+ createdAt: createdAt,
47
+ breakpoint: breakpoint,
48
+ titleBoxIcon: titleBoxIcon,
49
+ titleBoxBgColor: titleBoxBgColor
50
+ });
51
+ const content = jsx(React.Fragment, null, jsx("div", _extends({
52
+ css: cardImageContainerStyles,
53
+ className: fileCardImageViewSelector,
54
+ "data-testid": fileCardImageViewSelector,
55
+ "data-test-media-name": name,
56
+ "data-test-selected": selected ? true : undefined
57
+ }, props), children, customBlanket ? customBlanket() : defaultBlanket, customTitleBox ? customTitleBox() : defaultTitleBox, !disableOverlay && !!selectable && jsx(TickBox, {
58
+ selected: selected
59
+ }), progressBar && progressBar()), !disableOverlay && actions && actions.length !== 0 && jsx(ActionsBar, {
60
+ actions: actionsWithDetails
61
+ }));
62
+ const shouldRenderPlayButton = () => {
63
+ if (mediaType !== 'video' || !cardPreview) {
64
+ return false;
65
+ }
66
+ return true;
67
+ };
68
+ const isPlayButtonClickable = shouldRenderPlayButton() && disableOverlay;
69
+ const isTickBoxSelectable = !disableOverlay && !!selectable && !selected;
70
+ const shouldDisplayTooltip = !disableOverlay && !shouldHideTooltip;
71
+ const shouldDisplayBackground = !cardPreview || !disableOverlay;
72
+ return jsx(Wrapper, {
73
+ testId: testId || 'media-card-view',
74
+ dimensions: dimensions,
75
+ appearance: appearance,
76
+ onClick: onClick,
77
+ onMouseEnter: onMouseEnter,
78
+ innerRef: ref,
79
+ breakpoint: breakpoint,
80
+ mediaCardCursor: mediaCardCursor,
81
+ disableOverlay: !!disableOverlay,
82
+ selected: !!selected,
83
+ displayBackground: shouldDisplayBackground,
84
+ isPlayButtonClickable: !!isPlayButtonClickable,
85
+ isTickBoxSelectable: isTickBoxSelectable,
86
+ shouldDisplayTooltip: shouldDisplayTooltip
87
+ }, shouldDisplayTooltip ? jsx(Tooltip, {
88
+ content: name,
89
+ position: "bottom",
90
+ tag: "div"
91
+ }, content) : content);
92
+ });