@atlaskit/media-card 70.10.0 → 72.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.
- package/CHANGELOG.md +79 -0
- package/dist/cjs/errors.js +76 -5
- package/dist/cjs/files/cardImageView/index.js +58 -89
- package/dist/cjs/files/index.js +0 -6
- package/dist/cjs/index.js +16 -6
- package/dist/cjs/root/card/cardAnalytics.js +33 -19
- package/dist/cjs/root/card/cardConstants.js +8 -0
- package/dist/cjs/root/card/cardLoader.js +66 -124
- package/dist/cjs/root/card/cardState.js +50 -0
- package/dist/cjs/root/card/getCardPreview/cache.js +5 -0
- package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +50 -0
- package/dist/cjs/root/card/getCardPreview/helpers.js +13 -21
- package/dist/cjs/root/card/getCardPreview/index.js +171 -100
- package/dist/cjs/root/card/getCardStatus.js +7 -1
- package/dist/cjs/root/card/index.js +407 -322
- package/dist/cjs/root/cardView.js +115 -76
- package/dist/cjs/root/index.js +9 -1
- package/dist/cjs/root/inline/loader.js +22 -21
- package/dist/cjs/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +72 -25
- package/dist/cjs/root/inlinePlayer.js +5 -15
- package/dist/cjs/root/ui/iconMessage/index.js +17 -9
- package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +36 -115
- package/dist/cjs/root/ui/styled.js +1 -1
- package/dist/cjs/root/ui/titleBox/failedTitleBox.js +7 -3
- package/dist/cjs/utils/analytics.js +26 -43
- package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/cjs/utils/dimensionComparer.js +1 -1
- package/dist/cjs/utils/document.js +12 -0
- package/dist/cjs/utils/getDataURIDimension.js +13 -2
- package/dist/cjs/utils/metadata.js +11 -3
- package/dist/cjs/utils/objectURLCache.js +6 -0
- package/dist/cjs/utils/resizeModeToMediaImageProps.js +13 -0
- package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/errors.js +42 -2
- package/dist/es2019/files/cardImageView/index.js +12 -46
- package/dist/es2019/files/index.js +1 -1
- package/dist/es2019/index.js +3 -3
- package/dist/es2019/root/card/cardAnalytics.js +23 -17
- package/dist/es2019/root/card/cardConstants.js +1 -0
- package/dist/es2019/root/card/cardLoader.js +47 -53
- package/dist/es2019/root/card/cardState.js +26 -0
- package/dist/es2019/root/card/getCardPreview/cache.js +5 -0
- package/dist/es2019/root/card/getCardPreview/filePreviewStatus.js +35 -0
- package/dist/es2019/root/card/getCardPreview/helpers.js +2 -12
- package/dist/es2019/root/card/getCardPreview/index.js +112 -79
- package/dist/es2019/root/card/getCardStatus.js +1 -0
- package/dist/es2019/root/card/index.js +356 -254
- package/dist/es2019/root/cardView.js +98 -58
- package/dist/es2019/root/index.js +2 -1
- package/dist/es2019/root/inline/loader.js +16 -15
- package/dist/es2019/root/inline/mediaInlineCard.js +132 -0
- package/dist/es2019/root/inlinePlayer.js +5 -13
- package/dist/es2019/root/ui/iconMessage/index.js +10 -6
- package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +26 -74
- package/dist/es2019/root/ui/styled.js +1 -0
- package/dist/es2019/root/ui/titleBox/failedTitleBox.js +5 -3
- package/dist/es2019/utils/analytics.js +29 -40
- package/dist/es2019/utils/cardActions/cardActionsDropdownMenu.js +8 -4
- package/dist/es2019/utils/dimensionComparer.js +1 -1
- package/dist/es2019/utils/document.js +1 -0
- package/dist/es2019/utils/getDataURIDimension.js +8 -0
- package/dist/es2019/utils/metadata.js +12 -4
- package/dist/es2019/utils/objectURLCache.js +5 -0
- package/dist/es2019/utils/resizeModeToMediaImageProps.js +6 -0
- package/dist/es2019/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/errors.js +60 -1
- package/dist/esm/files/cardImageView/index.js +55 -87
- package/dist/esm/files/index.js +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/root/card/cardAnalytics.js +23 -18
- package/dist/esm/root/card/cardConstants.js +1 -0
- package/dist/esm/root/card/cardLoader.js +66 -126
- package/dist/esm/root/card/cardState.js +32 -0
- package/dist/esm/root/card/getCardPreview/cache.js +6 -0
- package/dist/esm/root/card/getCardPreview/filePreviewStatus.js +35 -0
- package/dist/esm/root/card/getCardPreview/helpers.js +13 -21
- package/dist/esm/root/card/getCardPreview/index.js +142 -95
- package/dist/esm/root/card/getCardStatus.js +3 -0
- package/dist/esm/root/card/index.js +416 -325
- package/dist/esm/root/cardView.js +114 -73
- package/dist/esm/root/index.js +2 -1
- package/dist/esm/root/inline/loader.js +23 -22
- package/dist/esm/root/inline/mediaInlineCard.js +145 -0
- package/dist/esm/root/inlinePlayer.js +5 -13
- package/dist/esm/root/ui/iconMessage/index.js +12 -7
- package/dist/esm/root/ui/imageRenderer/imageRenderer.js +28 -106
- package/dist/esm/root/ui/styled.js +1 -1
- package/dist/esm/root/ui/titleBox/failedTitleBox.js +6 -3
- package/dist/esm/utils/analytics.js +22 -35
- package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/esm/utils/dimensionComparer.js +1 -1
- package/dist/esm/utils/document.js +3 -0
- package/dist/esm/utils/getDataURIDimension.js +8 -0
- package/dist/esm/utils/metadata.js +12 -4
- package/dist/esm/utils/objectURLCache.js +6 -0
- package/dist/esm/utils/resizeModeToMediaImageProps.js +6 -0
- package/dist/esm/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/errors.d.ts +15 -1
- package/dist/types/files/cardImageView/index.d.ts +5 -12
- package/dist/types/files/cardImageView/styled.d.ts +1 -1
- package/dist/types/files/index.d.ts +1 -1
- package/dist/types/index.d.ts +11 -13
- package/dist/types/root/card/cardAnalytics.d.ts +5 -7
- package/dist/types/root/card/cardConstants.d.ts +1 -0
- package/dist/types/root/card/cardLoader.d.ts +4 -18
- package/dist/types/root/card/cardState.d.ts +5 -0
- package/dist/types/root/card/getCardPreview/cache.d.ts +4 -2
- package/dist/types/root/card/getCardPreview/filePreviewStatus.d.ts +5 -0
- package/dist/types/root/card/getCardPreview/helpers.d.ts +4 -5
- package/dist/types/root/card/getCardPreview/index.d.ts +25 -14
- package/dist/types/root/card/getCardStatus.d.ts +1 -0
- package/dist/types/root/card/index.d.ts +18 -15
- package/dist/types/root/cardView.d.ts +14 -8
- package/dist/types/root/index.d.ts +1 -0
- package/dist/types/root/inline/loader.d.ts +8 -8
- package/dist/types/root/inline/{inlineMediaCard.d.ts → mediaInlineCard.d.ts} +4 -4
- package/dist/types/root/inlinePlayer.d.ts +1 -1
- package/dist/types/root/ui/iconMessage/index.d.ts +7 -2
- package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +5 -18
- package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +2 -0
- package/dist/types/types.d.ts +9 -1
- package/dist/types/utils/analytics.d.ts +20 -21
- package/dist/types/utils/cardDimensions.d.ts +5 -1
- package/dist/types/utils/dimensionComparer.d.ts +1 -1
- package/dist/types/utils/document.d.ts +2 -0
- package/dist/types/utils/getDataURIDimension.d.ts +3 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/lazyContent/styled.d.ts +1 -1
- package/dist/types/utils/lightCards/types.d.ts +1 -1
- package/dist/types/utils/metadata.d.ts +2 -2
- package/dist/types/utils/objectURLCache.d.ts +2 -1
- package/dist/types/utils/resizeModeToMediaImageProps.d.ts +5 -0
- package/dist/types/utils/shouldDisplayImageThumbnail.d.ts +1 -1
- package/example-helpers/developmentUseMessage.tsx +14 -0
- package/example-helpers/index.tsx +55 -4
- package/example-helpers/selectableCard.tsx +2 -1
- package/package.json +18 -14
- package/dist/cjs/root/card/getCardPreview/types.js +0 -5
- package/dist/cjs/utils/fileAttributesContext.js +0 -40
- package/dist/es2019/root/card/getCardPreview/types.js +0 -1
- package/dist/es2019/root/inline/inlineMediaCard.js +0 -92
- package/dist/es2019/utils/fileAttributesContext.js +0 -19
- package/dist/esm/root/card/getCardPreview/types.js +0 -1
- package/dist/esm/root/inline/inlineMediaCard.js +0 -100
- package/dist/esm/utils/fileAttributesContext.js +0 -18
- package/dist/types/root/card/getCardPreview/types.d.ts +0 -5
- package/dist/types/utils/fileAttributesContext.d.ts +0 -10
|
@@ -20,19 +20,17 @@ import { CardLoading } from '../../utils/lightCards/cardLoading';
|
|
|
20
20
|
import { shouldDisplayImageThumbnail } from '../../utils/shouldDisplayImageThumbnail';
|
|
21
21
|
import { ProgressBar } from '../../utils/progressBar';
|
|
22
22
|
import CardActions from '../../utils/cardActions';
|
|
23
|
-
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
24
|
-
import { fireMediaCardEvent, RenderEventAction, getRenderSucceededEventPayload, getRenderFailedFileUriPayload, getRenderFailedExternalUriPayload } from '../../utils/analytics';
|
|
25
|
-
import { withFileAttributes } from '../../utils/fileAttributesContext';
|
|
26
23
|
export var fileCardImageViewSelector = 'media-file-card-view';
|
|
27
|
-
export var
|
|
28
|
-
|
|
24
|
+
export var fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
25
|
+
export var FileCardImageView = /*#__PURE__*/function (_Component) {
|
|
26
|
+
_inherits(FileCardImageView, _Component);
|
|
29
27
|
|
|
30
|
-
var _super = _createSuper(
|
|
28
|
+
var _super = _createSuper(FileCardImageView);
|
|
31
29
|
|
|
32
|
-
function
|
|
30
|
+
function FileCardImageView() {
|
|
33
31
|
var _this;
|
|
34
32
|
|
|
35
|
-
_classCallCheck(this,
|
|
33
|
+
_classCallCheck(this, FileCardImageView);
|
|
36
34
|
|
|
37
35
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
38
36
|
args[_key] = arguments[_key];
|
|
@@ -56,7 +54,7 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
56
54
|
// immediately, even if there's no image preview
|
|
57
55
|
|
|
58
56
|
|
|
59
|
-
var isZeroSize = fileSize === '' &&
|
|
57
|
+
var isZeroSize = fileSize === '' && ['processing', 'loading-preview'].includes(status);
|
|
60
58
|
|
|
61
59
|
if (mediaType !== 'video' && !_this.isFileCardImageReadyForDisplay && !isZeroSize) {
|
|
62
60
|
return _this.renderLoadingContents();
|
|
@@ -158,42 +156,18 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
158
156
|
})));
|
|
159
157
|
});
|
|
160
158
|
|
|
161
|
-
_defineProperty(_assertThisInitialized(_this), "onImageLoad", function () {
|
|
162
|
-
var _this$props6 = _this.props,
|
|
163
|
-
createAnalyticsEvent = _this$props6.createAnalyticsEvent,
|
|
164
|
-
fileAttributes = _this$props6.fileAttributes;
|
|
165
|
-
|
|
166
|
-
if (fileAttributes && _this.shouldFireEvent(RenderEventAction.SUCCEEDED)) {
|
|
167
|
-
fireMediaCardEvent(getRenderSucceededEventPayload(fileAttributes), createAnalyticsEvent);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
_defineProperty(_assertThisInitialized(_this), "onImageError", function () {
|
|
172
|
-
var fileAttributes = _this.props.fileAttributes;
|
|
173
|
-
|
|
174
|
-
if (fileAttributes && _this.shouldFireEvent(RenderEventAction.FAILED)) {
|
|
175
|
-
var _this$props7 = _this.props,
|
|
176
|
-
createAnalyticsEvent = _this$props7.createAnalyticsEvent,
|
|
177
|
-
mediaItemType = _this$props7.mediaItemType;
|
|
178
|
-
|
|
179
|
-
if (mediaItemType === 'file') {
|
|
180
|
-
fireMediaCardEvent(getRenderFailedFileUriPayload(fileAttributes), createAnalyticsEvent);
|
|
181
|
-
} else if (mediaItemType === 'external-image') {
|
|
182
|
-
fireMediaCardEvent(getRenderFailedExternalUriPayload(fileAttributes), createAnalyticsEvent);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
|
|
187
159
|
_defineProperty(_assertThisInitialized(_this), "renderMediaImage", function () {
|
|
188
|
-
var _this$
|
|
189
|
-
status = _this$
|
|
190
|
-
mediaItemType = _this$
|
|
191
|
-
dataURI = _this$
|
|
192
|
-
mediaType = _this$
|
|
193
|
-
mimeType = _this$
|
|
194
|
-
previewOrientation = _this$
|
|
195
|
-
onDisplayImage = _this$
|
|
196
|
-
alt = _this$
|
|
160
|
+
var _this$props6 = _this.props,
|
|
161
|
+
status = _this$props6.status,
|
|
162
|
+
mediaItemType = _this$props6.mediaItemType,
|
|
163
|
+
dataURI = _this$props6.dataURI,
|
|
164
|
+
mediaType = _this$props6.mediaType,
|
|
165
|
+
mimeType = _this$props6.mimeType,
|
|
166
|
+
previewOrientation = _this$props6.previewOrientation,
|
|
167
|
+
onDisplayImage = _this$props6.onDisplayImage,
|
|
168
|
+
alt = _this$props6.alt,
|
|
169
|
+
onImageLoad = _this$props6.onImageLoad,
|
|
170
|
+
onImageError = _this$props6.onImageError;
|
|
197
171
|
|
|
198
172
|
if (!shouldDisplayImageThumbnail(status, mediaItemType, dataURI, mediaType, mimeType)) {
|
|
199
173
|
return null;
|
|
@@ -210,21 +184,17 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
210
184
|
crop: _this.isCropped,
|
|
211
185
|
stretch: _this.isStretched,
|
|
212
186
|
previewOrientation: previewOrientation,
|
|
213
|
-
onImageLoad:
|
|
214
|
-
onImageError:
|
|
187
|
+
onImageLoad: onImageLoad,
|
|
188
|
+
onImageError: onImageError
|
|
215
189
|
});
|
|
216
190
|
});
|
|
217
191
|
|
|
218
|
-
_defineProperty(_assertThisInitialized(_this), "shouldFireEvent", function (action) {
|
|
219
|
-
return !_this.lastAnalyticsAction || _this.lastAnalyticsAction !== action;
|
|
220
|
-
});
|
|
221
|
-
|
|
222
192
|
_defineProperty(_assertThisInitialized(_this), "renderProgressBar", function () {
|
|
223
|
-
var _this$
|
|
224
|
-
mediaName = _this$
|
|
225
|
-
progress = _this$
|
|
226
|
-
actions = _this$
|
|
227
|
-
status = _this$
|
|
193
|
+
var _this$props7 = _this.props,
|
|
194
|
+
mediaName = _this$props7.mediaName,
|
|
195
|
+
progress = _this$props7.progress,
|
|
196
|
+
actions = _this$props7.actions,
|
|
197
|
+
status = _this$props7.status;
|
|
228
198
|
|
|
229
199
|
if (status !== 'uploading') {
|
|
230
200
|
return null;
|
|
@@ -243,10 +213,10 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
243
213
|
});
|
|
244
214
|
|
|
245
215
|
_defineProperty(_assertThisInitialized(_this), "renderSuccessCardContents", function () {
|
|
246
|
-
var _this$
|
|
247
|
-
disableOverlay = _this$
|
|
248
|
-
selectable = _this$
|
|
249
|
-
status = _this$
|
|
216
|
+
var _this$props8 = _this.props,
|
|
217
|
+
disableOverlay = _this$props8.disableOverlay,
|
|
218
|
+
selectable = _this$props8.selectable,
|
|
219
|
+
status = _this$props8.status;
|
|
250
220
|
var overlay = null;
|
|
251
221
|
|
|
252
222
|
if (!disableOverlay) {
|
|
@@ -267,15 +237,15 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
267
237
|
});
|
|
268
238
|
|
|
269
239
|
_defineProperty(_assertThisInitialized(_this), "renderSuccessCardOverlay", function () {
|
|
270
|
-
var _this$
|
|
271
|
-
status = _this$
|
|
272
|
-
mediaName = _this$
|
|
273
|
-
mediaType = _this$
|
|
274
|
-
fileSize = _this$
|
|
275
|
-
dataURI = _this$
|
|
276
|
-
selectable = _this$
|
|
277
|
-
selected = _this$
|
|
278
|
-
actions = _this$
|
|
240
|
+
var _this$props9 = _this.props,
|
|
241
|
+
status = _this$props9.status,
|
|
242
|
+
mediaName = _this$props9.mediaName,
|
|
243
|
+
mediaType = _this$props9.mediaType,
|
|
244
|
+
fileSize = _this$props9.fileSize,
|
|
245
|
+
dataURI = _this$props9.dataURI,
|
|
246
|
+
selectable = _this$props9.selectable,
|
|
247
|
+
selected = _this$props9.selected,
|
|
248
|
+
actions = _this$props9.actions;
|
|
279
249
|
var isPersistent = mediaType === 'doc' || !dataURI;
|
|
280
250
|
return /*#__PURE__*/React.createElement(CardOverlay, {
|
|
281
251
|
cardStatus: status,
|
|
@@ -292,17 +262,17 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
292
262
|
return _this;
|
|
293
263
|
}
|
|
294
264
|
|
|
295
|
-
_createClass(
|
|
265
|
+
_createClass(FileCardImageView, [{
|
|
296
266
|
key: "render",
|
|
297
267
|
value: function render() {
|
|
298
|
-
var _this$
|
|
299
|
-
disableOverlay = _this$
|
|
300
|
-
selectable = _this$
|
|
301
|
-
selected = _this$
|
|
302
|
-
mediaType = _this$
|
|
303
|
-
progress = _this$
|
|
304
|
-
status = _this$
|
|
305
|
-
mediaName = _this$
|
|
268
|
+
var _this$props10 = this.props,
|
|
269
|
+
disableOverlay = _this$props10.disableOverlay,
|
|
270
|
+
selectable = _this$props10.selectable,
|
|
271
|
+
selected = _this$props10.selected,
|
|
272
|
+
mediaType = _this$props10.mediaType,
|
|
273
|
+
progress = _this$props10.progress,
|
|
274
|
+
status = _this$props10.status,
|
|
275
|
+
mediaName = _this$props10.mediaName;
|
|
306
276
|
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
307
277
|
"data-testid": "media-file-card-view",
|
|
308
278
|
"data-test-media-name": mediaName,
|
|
@@ -313,16 +283,16 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
313
283
|
selectable: selectable,
|
|
314
284
|
selected: selected,
|
|
315
285
|
mediaType: mediaType,
|
|
316
|
-
className: fileCardImageViewSelector
|
|
286
|
+
className: "".concat(fileCardImageViewSelector, " ").concat(selected ? fileCardImageViewSelectedSelector : '')
|
|
317
287
|
}, this.renderCardContents());
|
|
318
288
|
}
|
|
319
289
|
}, {
|
|
320
290
|
key: "isFileCardImageReadyForDisplay",
|
|
321
291
|
get: function get() {
|
|
322
|
-
var _this$
|
|
323
|
-
dataURI = _this$
|
|
324
|
-
status = _this$
|
|
325
|
-
return !!dataURI || !['loading', 'processing'].includes(status);
|
|
292
|
+
var _this$props11 = this.props,
|
|
293
|
+
dataURI = _this$props11.dataURI,
|
|
294
|
+
status = _this$props11.status;
|
|
295
|
+
return !!dataURI || !['loading', 'processing', 'loading-preview'].includes(status);
|
|
326
296
|
}
|
|
327
297
|
}, {
|
|
328
298
|
key: "isCropped",
|
|
@@ -338,12 +308,10 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
338
308
|
}
|
|
339
309
|
}]);
|
|
340
310
|
|
|
341
|
-
return
|
|
311
|
+
return FileCardImageView;
|
|
342
312
|
}(Component);
|
|
343
313
|
|
|
344
|
-
_defineProperty(
|
|
314
|
+
_defineProperty(FileCardImageView, "defaultProps", {
|
|
345
315
|
resizeMode: 'crop',
|
|
346
316
|
disableOverlay: false
|
|
347
|
-
});
|
|
348
|
-
|
|
349
|
-
export var FileCardImageView = withAnalyticsEvents()(withFileAttributes(FileCardImageViewBase));
|
|
317
|
+
});
|
package/dist/esm/files/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FileCardImageView
|
|
1
|
+
export { FileCardImageView } from './cardImageView';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Card, MediaInlineCard } from './root';
|
|
2
2
|
export { CardLoading } from './utils/lightCards/cardLoading';
|
|
3
3
|
export { CardError } from './utils/lightCards/cardError';
|
|
4
4
|
export { defaultImageCardDimensions } from './utils/cardDimensions';
|
|
5
|
-
export { fileCardImageViewSelector } from './files/cardImageView';
|
|
5
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView';
|
|
6
6
|
export { inlinePlayerClassName } from './root/inlinePlayer';
|
|
7
|
-
export { newFileExperienceClassName } from './root/
|
|
7
|
+
export { newFileExperienceClassName } from './root/card/cardConstants';
|
|
@@ -1,33 +1,38 @@
|
|
|
1
|
-
import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload } from '../../utils/analytics';
|
|
2
|
-
export var relevantFeatureFlagNames = ['newCardExperience', '
|
|
3
|
-
export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes) {
|
|
4
|
-
var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
5
|
-
cardPreview = _ref.cardPreview,
|
|
6
|
-
error = _ref.error;
|
|
7
|
-
|
|
1
|
+
import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
|
|
2
|
+
export var relevantFeatureFlagNames = ['newCardExperience', 'captions'];
|
|
3
|
+
export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, error) {
|
|
8
4
|
var fireEvent = function fireEvent(payload) {
|
|
9
5
|
return fireMediaCardEvent(payload, createAnalyticsEvent);
|
|
10
6
|
};
|
|
11
7
|
|
|
12
8
|
switch (status) {
|
|
13
9
|
case 'complete':
|
|
14
|
-
|
|
15
|
-
* A Card that is considered Complete and has no preview,
|
|
16
|
-
* reflects an expected behaviour, and thus a legitimate
|
|
17
|
-
* success case to be logged.
|
|
18
|
-
*/
|
|
19
|
-
if (!(cardPreview !== null && cardPreview !== void 0 && cardPreview.dataURI)) {
|
|
20
|
-
fireEvent(getRenderSucceededEventPayload(fileAttributes));
|
|
21
|
-
}
|
|
22
|
-
|
|
10
|
+
fireEvent(getRenderSucceededEventPayload(fileAttributes, performanceAttributes));
|
|
23
11
|
break;
|
|
24
12
|
|
|
25
13
|
case 'failed-processing':
|
|
26
|
-
fireEvent(getRenderFailedFileStatusPayload(fileAttributes));
|
|
14
|
+
fireEvent(getRenderFailedFileStatusPayload(fileAttributes, performanceAttributes));
|
|
27
15
|
break;
|
|
28
16
|
|
|
29
17
|
case 'error':
|
|
30
|
-
error && fireEvent(getRenderErrorEventPayload(fileAttributes, error));
|
|
18
|
+
error && fireEvent(getRenderErrorEventPayload(fileAttributes, performanceAttributes, error));
|
|
31
19
|
break;
|
|
32
20
|
}
|
|
21
|
+
};
|
|
22
|
+
export var fireCommencedEvent = function fireCommencedEvent(createAnalyticsEvent, fileAttributes, performanceAttributes) {
|
|
23
|
+
fireMediaCardEvent(getRenderCommencedEventPayload(fileAttributes, performanceAttributes), createAnalyticsEvent);
|
|
24
|
+
};
|
|
25
|
+
export var fireCopiedEvent = function fireCopiedEvent(createAnalyticsEvent, fileId, cardRef) {
|
|
26
|
+
if (typeof window.getSelection === 'function') {
|
|
27
|
+
var _selection$containsNo;
|
|
28
|
+
|
|
29
|
+
var selection = window.getSelection();
|
|
30
|
+
|
|
31
|
+
if (selection !== null && selection !== void 0 && (_selection$containsNo = selection.containsNode) !== null && _selection$containsNo !== void 0 && _selection$containsNo.call(selection, cardRef, true)) {
|
|
32
|
+
fireMediaCardEvent(getCopiedFilePayload(fileId), createAnalyticsEvent);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export var fireScreenEvent = function fireScreenEvent(createAnalyticsEvent, fileAttributes) {
|
|
37
|
+
fireMediaCardEvent(getRenderPreviewableCardPayload(fileAttributes), createAnalyticsEvent);
|
|
33
38
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export var newFileExperienceClassName = 'new-file-experience-wrapper';
|
|
@@ -1,129 +1,69 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
-
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
7
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
9
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
10
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
11
|
-
|
|
12
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
-
|
|
14
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
15
|
-
|
|
16
|
-
import React from 'react';
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useContext } from 'react';
|
|
3
|
+
import { useMemoizeFeatureFlags } from '@atlaskit/media-common';
|
|
4
|
+
import Loadable from 'react-loadable';
|
|
17
5
|
import { CardLoading } from '../..';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
34
|
-
|
|
35
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
36
|
-
Card: CardLoader.Card,
|
|
37
|
-
MediaCardErrorBoundary: CardLoader.MediaCardErrorBoundary
|
|
6
|
+
var MediaCardContext = /*#__PURE__*/React.createContext({});
|
|
7
|
+
|
|
8
|
+
var CardLoadingWithContext = function CardLoadingWithContext() {
|
|
9
|
+
var props = useContext(MediaCardContext);
|
|
10
|
+
return /*#__PURE__*/React.createElement(CardLoading, props);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
var MediaCard = Loadable({
|
|
14
|
+
loader: function loader() {
|
|
15
|
+
return import(
|
|
16
|
+
/* webpackChunkName: "@atlaskit-internal_media-card" */
|
|
17
|
+
'./index').then(function (mod) {
|
|
18
|
+
return mod.Card;
|
|
38
19
|
});
|
|
39
|
-
|
|
40
|
-
|
|
20
|
+
},
|
|
21
|
+
loading: function loading() {
|
|
22
|
+
return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
|
|
41
23
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
case "end":
|
|
89
|
-
return _context.stop();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}, _callee, this, [[1, 14]]);
|
|
93
|
-
}));
|
|
94
|
-
|
|
95
|
-
function componentDidMount() {
|
|
96
|
-
return _componentDidMount.apply(this, arguments);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return componentDidMount;
|
|
100
|
-
}()
|
|
101
|
-
}, {
|
|
102
|
-
key: "render",
|
|
103
|
-
value: function render() {
|
|
104
|
-
var _this$props = this.props,
|
|
105
|
-
dimensions = _this$props.dimensions,
|
|
106
|
-
testId = _this$props.testId,
|
|
107
|
-
featureFlags = _this$props.featureFlags;
|
|
108
|
-
var _this$state = this.state,
|
|
109
|
-
Card = _this$state.Card,
|
|
110
|
-
MediaCardErrorBoundary = _this$state.MediaCardErrorBoundary;
|
|
111
|
-
|
|
112
|
-
if (!Card || !MediaCardErrorBoundary) {
|
|
113
|
-
return /*#__PURE__*/React.createElement(CardLoading, {
|
|
114
|
-
testId: testId,
|
|
115
|
-
dimensions: dimensions,
|
|
116
|
-
featureFlags: featureFlags
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return /*#__PURE__*/React.createElement(MediaCardErrorBoundary, null, /*#__PURE__*/React.createElement(Card, this.props));
|
|
121
|
-
}
|
|
122
|
-
}]);
|
|
123
|
-
|
|
124
|
-
return CardLoader;
|
|
125
|
-
}(React.PureComponent);
|
|
126
|
-
|
|
127
|
-
_defineProperty(CardLoader, "displayName", 'AsyncCard');
|
|
128
|
-
|
|
129
|
-
export { CardLoader as default };
|
|
24
|
+
});
|
|
25
|
+
var MediaCardErrorBoundary = Loadable({
|
|
26
|
+
loader: function loader() {
|
|
27
|
+
return import(
|
|
28
|
+
/* webpackChunkName: "@atlaskit-internal_media-card-error-boundary" */
|
|
29
|
+
'../media-card-analytics-error-boundary').then(function (mod) {
|
|
30
|
+
return mod.default;
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
loading: function loading() {
|
|
34
|
+
return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
var MediaCardWithMediaClient = Loadable({
|
|
38
|
+
loader: function loader() {
|
|
39
|
+
return import(
|
|
40
|
+
/* webpackChunkName: "@atlaskit-internal_media-client" */
|
|
41
|
+
'@atlaskit/media-client');
|
|
42
|
+
},
|
|
43
|
+
loading: function loading() {
|
|
44
|
+
return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
|
|
45
|
+
},
|
|
46
|
+
render: function render(loaded, props) {
|
|
47
|
+
return /*#__PURE__*/React.createElement(CardWithMediaClient, _extends({}, props, {
|
|
48
|
+
withMediaClient: loaded.withMediaClient
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
var CardWithMediaClient = function CardWithMediaClient(props) {
|
|
54
|
+
var withMediaClient = props.withMediaClient,
|
|
55
|
+
featureFlags = props.featureFlags;
|
|
56
|
+
var memoizedFeatureFlags = useMemoizeFeatureFlags(featureFlags);
|
|
57
|
+
var Card = React.useMemo(function () {
|
|
58
|
+
return withMediaClient(MediaCard, memoizedFeatureFlags);
|
|
59
|
+
}, [withMediaClient, memoizedFeatureFlags]);
|
|
60
|
+
return /*#__PURE__*/React.createElement(MediaCardErrorBoundary, null, /*#__PURE__*/React.createElement(Card, props));
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var CardLoader = function CardLoader(props) {
|
|
64
|
+
return /*#__PURE__*/React.createElement(MediaCardContext.Provider, {
|
|
65
|
+
value: props
|
|
66
|
+
}, /*#__PURE__*/React.createElement(MediaCardWithMediaClient, props));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default CardLoader;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
import { isErrorFileState } from '@atlaskit/media-client';
|
|
8
|
+
import { MediaCardError } from '../../errors';
|
|
9
|
+
import { getCardStatus, isFinalCardStatus } from './getCardStatus';
|
|
10
|
+
import { extractFilePreviewStatus } from './getCardPreview';
|
|
11
|
+
export var createStateUpdater = function createStateUpdater(newState) {
|
|
12
|
+
return function (prevState) {
|
|
13
|
+
// Only override if previous status is non-final
|
|
14
|
+
// or new status is 'complete'
|
|
15
|
+
if (isFinalCardStatus(prevState.status) && newState.status !== 'complete') {
|
|
16
|
+
return prevState;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return _objectSpread(_objectSpread({}, prevState), newState);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export var getCardStateFromFileState = function getCardStateFromFileState(fileState, isBannedLocalPreview, featureFlags) {
|
|
23
|
+
var status = getCardStatus(fileState.status, extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags));
|
|
24
|
+
var error = status === 'error' && isErrorFileState(fileState) ? new MediaCardError('error-file-state', new Error(fileState.message)) : undefined;
|
|
25
|
+
var progress = status === 'uploading' && fileState.status === 'uploading' ? fileState.progress : 1;
|
|
26
|
+
return {
|
|
27
|
+
fileState: fileState,
|
|
28
|
+
status: status,
|
|
29
|
+
progress: progress,
|
|
30
|
+
error: error
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -22,6 +22,12 @@ export var CardPreviewCacheImpl = function CardPreviewCacheImpl(previewCache) {
|
|
|
22
22
|
_this.previewCache.set(cacheKey, cardPreview);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
+
_defineProperty(this, "remove", function (id, dimensions) {
|
|
26
|
+
var cacheKey = getCacheKey(id, dimensions);
|
|
27
|
+
|
|
28
|
+
_this.previewCache.remove(cacheKey);
|
|
29
|
+
});
|
|
30
|
+
|
|
25
31
|
this.previewCache = previewCache;
|
|
26
32
|
};
|
|
27
33
|
export default new CardPreviewCacheImpl(createObjectURLCache());
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
|
|
2
|
+
import { isPreviewableFileState, isPreviewableType, isImageRepresentationReady } from '@atlaskit/media-client';
|
|
3
|
+
import { isSupportedLocalPreview } from './helpers'; // TODO: align these checks with helpers from Media Client
|
|
4
|
+
// https://product-fabric.atlassian.net/browse/BMPT-1300
|
|
5
|
+
|
|
6
|
+
export var extractFilePreviewStatus = function extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags) {
|
|
7
|
+
var hasFilesize = 'size' in fileState && !!fileState.size;
|
|
8
|
+
|
|
9
|
+
var _ref = 'mediaType' in fileState && fileState || {},
|
|
10
|
+
mediaType = _ref.mediaType;
|
|
11
|
+
|
|
12
|
+
var _ref2 = 'mimeType' in fileState && fileState || {},
|
|
13
|
+
mimeType = _ref2.mimeType;
|
|
14
|
+
|
|
15
|
+
var isPreviewable = !!mediaType && isPreviewableType(mediaType, featureFlags); // Local preview is available only if it's supported by browser and supported by Media Card (isSupportedLocalPreview)
|
|
16
|
+
// For example, SVGs are mime type NOT supported by browser but media type supported by Media Card (image)
|
|
17
|
+
// Then, local Preview NOT available
|
|
18
|
+
|
|
19
|
+
var hasLocalPreview = !isBannedLocalPreview && isPreviewableFileState(fileState) && isSupportedLocalPreview(mediaType) && !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
|
|
20
|
+
var hasRemotePreview = isImageRepresentationReady(fileState);
|
|
21
|
+
var hasPreview = hasLocalPreview || hasRemotePreview;
|
|
22
|
+
var isSupportedByBrowser = !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
|
|
23
|
+
return {
|
|
24
|
+
hasFilesize: hasFilesize,
|
|
25
|
+
isPreviewable: isPreviewable,
|
|
26
|
+
hasPreview: hasPreview,
|
|
27
|
+
isSupportedByBrowser: isSupportedByBrowser
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export var isPreviewableStatus = function isPreviewableStatus(cardStatus, _ref3) {
|
|
31
|
+
var isPreviewable = _ref3.isPreviewable,
|
|
32
|
+
hasPreview = _ref3.hasPreview,
|
|
33
|
+
isSupportedByBrowser = _ref3.isSupportedByBrowser;
|
|
34
|
+
return hasPreview && isPreviewable && (cardStatus === 'complete' || cardStatus === 'loading-preview' || cardStatus === 'uploading' || cardStatus === 'processing' && isSupportedByBrowser);
|
|
35
|
+
};
|
|
@@ -157,25 +157,17 @@ export var getCardPreviewFromFilePreview = /*#__PURE__*/function () {
|
|
|
157
157
|
};
|
|
158
158
|
}();
|
|
159
159
|
export var getCardPreviewFromBackend = /*#__PURE__*/function () {
|
|
160
|
-
var
|
|
161
|
-
var
|
|
160
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(mediaClient, id, params) {
|
|
161
|
+
var blob;
|
|
162
162
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
163
163
|
while (1) {
|
|
164
164
|
switch (_context4.prev = _context4.next) {
|
|
165
165
|
case 0:
|
|
166
|
-
|
|
167
|
-
_context4.
|
|
168
|
-
|
|
169
|
-
_context4.next = 5;
|
|
170
|
-
return mediaClient.getImage(id, {
|
|
171
|
-
collection: collectionName,
|
|
172
|
-
mode: mode,
|
|
173
|
-
width: width,
|
|
174
|
-
height: height,
|
|
175
|
-
allowAnimated: true
|
|
176
|
-
});
|
|
166
|
+
_context4.prev = 0;
|
|
167
|
+
_context4.next = 3;
|
|
168
|
+
return mediaClient.getImage(id, params);
|
|
177
169
|
|
|
178
|
-
case
|
|
170
|
+
case 3:
|
|
179
171
|
blob = _context4.sent;
|
|
180
172
|
return _context4.abrupt("return", {
|
|
181
173
|
dataURI: URL.createObjectURL(blob),
|
|
@@ -183,20 +175,20 @@ export var getCardPreviewFromBackend = /*#__PURE__*/function () {
|
|
|
183
175
|
source: 'remote'
|
|
184
176
|
});
|
|
185
177
|
|
|
186
|
-
case
|
|
187
|
-
_context4.prev =
|
|
188
|
-
_context4.t0 = _context4["catch"](
|
|
178
|
+
case 7:
|
|
179
|
+
_context4.prev = 7;
|
|
180
|
+
_context4.t0 = _context4["catch"](0);
|
|
189
181
|
throw new RemotePreviewError('remote-preview-fetch', _context4.t0);
|
|
190
182
|
|
|
191
|
-
case
|
|
183
|
+
case 10:
|
|
192
184
|
case "end":
|
|
193
185
|
return _context4.stop();
|
|
194
186
|
}
|
|
195
187
|
}
|
|
196
|
-
}, _callee4, null, [[
|
|
188
|
+
}, _callee4, null, [[0, 7]]);
|
|
197
189
|
}));
|
|
198
190
|
|
|
199
|
-
return function getCardPreviewFromBackend(_x4, _x5, _x6
|
|
200
|
-
return
|
|
191
|
+
return function getCardPreviewFromBackend(_x4, _x5, _x6) {
|
|
192
|
+
return _ref4.apply(this, arguments);
|
|
201
193
|
};
|
|
202
194
|
}();
|