@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.
Files changed (150) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/cjs/errors.js +76 -5
  3. package/dist/cjs/files/cardImageView/index.js +58 -89
  4. package/dist/cjs/files/index.js +0 -6
  5. package/dist/cjs/index.js +16 -6
  6. package/dist/cjs/root/card/cardAnalytics.js +33 -19
  7. package/dist/cjs/root/card/cardConstants.js +8 -0
  8. package/dist/cjs/root/card/cardLoader.js +66 -124
  9. package/dist/cjs/root/card/cardState.js +50 -0
  10. package/dist/cjs/root/card/getCardPreview/cache.js +5 -0
  11. package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +50 -0
  12. package/dist/cjs/root/card/getCardPreview/helpers.js +13 -21
  13. package/dist/cjs/root/card/getCardPreview/index.js +171 -100
  14. package/dist/cjs/root/card/getCardStatus.js +7 -1
  15. package/dist/cjs/root/card/index.js +407 -322
  16. package/dist/cjs/root/cardView.js +115 -76
  17. package/dist/cjs/root/index.js +9 -1
  18. package/dist/cjs/root/inline/loader.js +22 -21
  19. package/dist/cjs/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +72 -25
  20. package/dist/cjs/root/inlinePlayer.js +5 -15
  21. package/dist/cjs/root/ui/iconMessage/index.js +17 -9
  22. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +36 -115
  23. package/dist/cjs/root/ui/styled.js +1 -1
  24. package/dist/cjs/root/ui/titleBox/failedTitleBox.js +7 -3
  25. package/dist/cjs/utils/analytics.js +26 -43
  26. package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +16 -9
  27. package/dist/cjs/utils/dimensionComparer.js +1 -1
  28. package/dist/cjs/utils/document.js +12 -0
  29. package/dist/cjs/utils/getDataURIDimension.js +13 -2
  30. package/dist/cjs/utils/metadata.js +11 -3
  31. package/dist/cjs/utils/objectURLCache.js +6 -0
  32. package/dist/cjs/utils/resizeModeToMediaImageProps.js +13 -0
  33. package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
  34. package/dist/cjs/version.json +1 -1
  35. package/dist/es2019/errors.js +42 -2
  36. package/dist/es2019/files/cardImageView/index.js +12 -46
  37. package/dist/es2019/files/index.js +1 -1
  38. package/dist/es2019/index.js +3 -3
  39. package/dist/es2019/root/card/cardAnalytics.js +23 -17
  40. package/dist/es2019/root/card/cardConstants.js +1 -0
  41. package/dist/es2019/root/card/cardLoader.js +47 -53
  42. package/dist/es2019/root/card/cardState.js +26 -0
  43. package/dist/es2019/root/card/getCardPreview/cache.js +5 -0
  44. package/dist/es2019/root/card/getCardPreview/filePreviewStatus.js +35 -0
  45. package/dist/es2019/root/card/getCardPreview/helpers.js +2 -12
  46. package/dist/es2019/root/card/getCardPreview/index.js +112 -79
  47. package/dist/es2019/root/card/getCardStatus.js +1 -0
  48. package/dist/es2019/root/card/index.js +356 -254
  49. package/dist/es2019/root/cardView.js +98 -58
  50. package/dist/es2019/root/index.js +2 -1
  51. package/dist/es2019/root/inline/loader.js +16 -15
  52. package/dist/es2019/root/inline/mediaInlineCard.js +132 -0
  53. package/dist/es2019/root/inlinePlayer.js +5 -13
  54. package/dist/es2019/root/ui/iconMessage/index.js +10 -6
  55. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +26 -74
  56. package/dist/es2019/root/ui/styled.js +1 -0
  57. package/dist/es2019/root/ui/titleBox/failedTitleBox.js +5 -3
  58. package/dist/es2019/utils/analytics.js +29 -40
  59. package/dist/es2019/utils/cardActions/cardActionsDropdownMenu.js +8 -4
  60. package/dist/es2019/utils/dimensionComparer.js +1 -1
  61. package/dist/es2019/utils/document.js +1 -0
  62. package/dist/es2019/utils/getDataURIDimension.js +8 -0
  63. package/dist/es2019/utils/metadata.js +12 -4
  64. package/dist/es2019/utils/objectURLCache.js +5 -0
  65. package/dist/es2019/utils/resizeModeToMediaImageProps.js +6 -0
  66. package/dist/es2019/utils/shouldDisplayImageThumbnail.js +1 -1
  67. package/dist/es2019/version.json +1 -1
  68. package/dist/esm/errors.js +60 -1
  69. package/dist/esm/files/cardImageView/index.js +55 -87
  70. package/dist/esm/files/index.js +1 -1
  71. package/dist/esm/index.js +3 -3
  72. package/dist/esm/root/card/cardAnalytics.js +23 -18
  73. package/dist/esm/root/card/cardConstants.js +1 -0
  74. package/dist/esm/root/card/cardLoader.js +66 -126
  75. package/dist/esm/root/card/cardState.js +32 -0
  76. package/dist/esm/root/card/getCardPreview/cache.js +6 -0
  77. package/dist/esm/root/card/getCardPreview/filePreviewStatus.js +35 -0
  78. package/dist/esm/root/card/getCardPreview/helpers.js +13 -21
  79. package/dist/esm/root/card/getCardPreview/index.js +142 -95
  80. package/dist/esm/root/card/getCardStatus.js +3 -0
  81. package/dist/esm/root/card/index.js +416 -325
  82. package/dist/esm/root/cardView.js +114 -73
  83. package/dist/esm/root/index.js +2 -1
  84. package/dist/esm/root/inline/loader.js +23 -22
  85. package/dist/esm/root/inline/mediaInlineCard.js +145 -0
  86. package/dist/esm/root/inlinePlayer.js +5 -13
  87. package/dist/esm/root/ui/iconMessage/index.js +12 -7
  88. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +28 -106
  89. package/dist/esm/root/ui/styled.js +1 -1
  90. package/dist/esm/root/ui/titleBox/failedTitleBox.js +6 -3
  91. package/dist/esm/utils/analytics.js +22 -35
  92. package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +16 -9
  93. package/dist/esm/utils/dimensionComparer.js +1 -1
  94. package/dist/esm/utils/document.js +3 -0
  95. package/dist/esm/utils/getDataURIDimension.js +8 -0
  96. package/dist/esm/utils/metadata.js +12 -4
  97. package/dist/esm/utils/objectURLCache.js +6 -0
  98. package/dist/esm/utils/resizeModeToMediaImageProps.js +6 -0
  99. package/dist/esm/utils/shouldDisplayImageThumbnail.js +1 -1
  100. package/dist/esm/version.json +1 -1
  101. package/dist/types/errors.d.ts +15 -1
  102. package/dist/types/files/cardImageView/index.d.ts +5 -12
  103. package/dist/types/files/cardImageView/styled.d.ts +1 -1
  104. package/dist/types/files/index.d.ts +1 -1
  105. package/dist/types/index.d.ts +11 -13
  106. package/dist/types/root/card/cardAnalytics.d.ts +5 -7
  107. package/dist/types/root/card/cardConstants.d.ts +1 -0
  108. package/dist/types/root/card/cardLoader.d.ts +4 -18
  109. package/dist/types/root/card/cardState.d.ts +5 -0
  110. package/dist/types/root/card/getCardPreview/cache.d.ts +4 -2
  111. package/dist/types/root/card/getCardPreview/filePreviewStatus.d.ts +5 -0
  112. package/dist/types/root/card/getCardPreview/helpers.d.ts +4 -5
  113. package/dist/types/root/card/getCardPreview/index.d.ts +25 -14
  114. package/dist/types/root/card/getCardStatus.d.ts +1 -0
  115. package/dist/types/root/card/index.d.ts +18 -15
  116. package/dist/types/root/cardView.d.ts +14 -8
  117. package/dist/types/root/index.d.ts +1 -0
  118. package/dist/types/root/inline/loader.d.ts +8 -8
  119. package/dist/types/root/inline/{inlineMediaCard.d.ts → mediaInlineCard.d.ts} +4 -4
  120. package/dist/types/root/inlinePlayer.d.ts +1 -1
  121. package/dist/types/root/ui/iconMessage/index.d.ts +7 -2
  122. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +5 -18
  123. package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +2 -0
  124. package/dist/types/types.d.ts +9 -1
  125. package/dist/types/utils/analytics.d.ts +20 -21
  126. package/dist/types/utils/cardDimensions.d.ts +5 -1
  127. package/dist/types/utils/dimensionComparer.d.ts +1 -1
  128. package/dist/types/utils/document.d.ts +2 -0
  129. package/dist/types/utils/getDataURIDimension.d.ts +3 -1
  130. package/dist/types/utils/index.d.ts +1 -0
  131. package/dist/types/utils/lazyContent/styled.d.ts +1 -1
  132. package/dist/types/utils/lightCards/types.d.ts +1 -1
  133. package/dist/types/utils/metadata.d.ts +2 -2
  134. package/dist/types/utils/objectURLCache.d.ts +2 -1
  135. package/dist/types/utils/resizeModeToMediaImageProps.d.ts +5 -0
  136. package/dist/types/utils/shouldDisplayImageThumbnail.d.ts +1 -1
  137. package/example-helpers/developmentUseMessage.tsx +14 -0
  138. package/example-helpers/index.tsx +55 -4
  139. package/example-helpers/selectableCard.tsx +2 -1
  140. package/package.json +18 -14
  141. package/dist/cjs/root/card/getCardPreview/types.js +0 -5
  142. package/dist/cjs/utils/fileAttributesContext.js +0 -40
  143. package/dist/es2019/root/card/getCardPreview/types.js +0 -1
  144. package/dist/es2019/root/inline/inlineMediaCard.js +0 -92
  145. package/dist/es2019/utils/fileAttributesContext.js +0 -19
  146. package/dist/esm/root/card/getCardPreview/types.js +0 -1
  147. package/dist/esm/root/inline/inlineMediaCard.js +0 -100
  148. package/dist/esm/utils/fileAttributesContext.js +0 -18
  149. package/dist/types/root/card/getCardPreview/types.d.ts +0 -5
  150. package/dist/types/utils/fileAttributesContext.d.ts +0 -10
@@ -1,59 +1,22 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
 
5
5
  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; }
6
6
 
7
7
  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; }
8
8
 
9
- import { isPreviewableFileState, isPreviewableType, isImageRepresentationReady } from '@atlaskit/media-client';
9
+ import { isPreviewableFileState, addFileAttrsToUrl } from '@atlaskit/media-client';
10
10
  import { isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
11
11
  import cardPreviewCache from './cache';
12
- import { getCardPreviewFromFilePreview, getCardPreviewFromBackend, isSupportedLocalPreview } from './helpers';
13
- import { MediaCardError, isUnsupportedLocalPreviewError } from '../../../errors';
14
- export { getCardPreviewFromFilePreview, getCardPreviewFromBackend, isSupportedLocalPreview } from './helpers'; // TODO: align these checks with helpers from Media Client
15
- // https://product-fabric.atlassian.net/browse/BMPT-1300
16
-
17
- export var extractFilePreviewStatus = function extractFilePreviewStatus(fileState, featureFlags) {
18
- var hasFilesize = 'size' in fileState && !!fileState.size;
19
-
20
- var _ref = 'mediaType' in fileState && fileState || {},
21
- mediaType = _ref.mediaType;
22
-
23
- var _ref2 = 'mimeType' in fileState && fileState || {},
24
- mimeType = _ref2.mimeType;
25
-
26
- var isPreviewable = !!mediaType && isPreviewableType(mediaType, featureFlags);
27
- /**
28
- * Local preview is available only if it's supported by browser and supported by Media Card (isSupportedLocalPreview)
29
- * For example, SVGs are mime type NOT supported by browser but media type supported by Media Card (image)
30
- * Then, local Preview NOT available
31
- */
32
-
33
- var hasLocalPreview = isPreviewableFileState(fileState) && isSupportedLocalPreview(mediaType) && !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
34
- var hasRemotePreview = isImageRepresentationReady(fileState);
35
- var hasPreview = hasLocalPreview || hasRemotePreview;
36
- var isSupportedByBrowser = !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
37
- return {
38
- hasFilesize: hasFilesize,
39
- isPreviewable: isPreviewable,
40
- hasPreview: hasPreview,
41
- isSupportedByBrowser: isSupportedByBrowser
42
- };
43
- };
44
- export var shouldGetCardPreview = function shouldGetCardPreview(cardStatus, _ref3) {
45
- var isPreviewable = _ref3.isPreviewable,
46
- hasPreview = _ref3.hasPreview,
47
- isSupportedByBrowser = _ref3.isSupportedByBrowser;
48
- return cardStatus === 'loading-preview' || cardStatus === 'uploading' && hasPreview && isPreviewable ||
49
- /**
50
- * For Video, we can have local or remote preview while processing.
51
- * Then, we only want to show the thumbnail if the file is supported by the browser,
52
- * this way we prevent playing unsupported videos that are not procesed
53
- */
54
- cardStatus === 'processing' && hasPreview && isPreviewable && isSupportedByBrowser;
55
- };
12
+ import { getCardPreviewFromFilePreview, getCardPreviewFromBackend } from './helpers';
13
+ import { MediaCardError, SsrPreviewError, isUnsupportedLocalPreviewError } from '../../../errors';
14
+ import { isBigger } from '../../../utils/dimensionComparer';
15
+ import { extractFilePreviewStatus, isPreviewableStatus } from './filePreviewStatus';
16
+ export { getCardPreviewFromFilePreview, getCardPreviewFromBackend, isSupportedLocalPreview } from './helpers';
17
+ export { extractFilePreviewStatus } from './filePreviewStatus';
56
18
  export var getCardPreviewFromCache = cardPreviewCache.get;
19
+ export var removeCardPreviewFromCache = cardPreviewCache.remove;
57
20
  /**
58
21
  * Will return the preview if available and supported by the browser
59
22
  * See extractFilePreviewStatus "hasLocalPreview" logic
@@ -63,6 +26,41 @@ export var getFilePreviewFromFileState = function getFilePreviewFromFileState(fi
63
26
  return 'mimeType' in fileState && isMimeTypeSupportedByBrowser(fileState.mimeType) && isPreviewableFileState(fileState) ? fileState.preview : undefined;
64
27
  };
65
28
 
29
+ var extendAndCachePreview = function extendAndCachePreview(id, dimensions, preview, mediaBlobUrlAttrs) {
30
+ var source;
31
+
32
+ switch (preview.source) {
33
+ case 'local':
34
+ source = 'cache-local';
35
+ break;
36
+
37
+ case 'remote':
38
+ source = 'cache-remote';
39
+ break;
40
+
41
+ case 'ssr-server':
42
+ source = 'cache-ssr-server';
43
+ break;
44
+
45
+ case 'ssr-client':
46
+ source = 'cache-ssr-client';
47
+ break;
48
+
49
+ default:
50
+ source = preview.source;
51
+ } // We want to embed some meta context into dataURI for Copy/Paste to work.
52
+
53
+
54
+ var dataURI = mediaBlobUrlAttrs ? addFileAttrsToUrl(preview.dataURI, mediaBlobUrlAttrs) : preview.dataURI; // We store new cardPreview into cache
55
+
56
+ cardPreviewCache.set(id, dimensions, _objectSpread(_objectSpread({}, preview), {}, {
57
+ source: source,
58
+ dataURI: dataURI
59
+ }));
60
+ return _objectSpread(_objectSpread({}, preview), {}, {
61
+ dataURI: dataURI
62
+ });
63
+ };
66
64
  /**
67
65
  * This function will try to return a Card preview, either from cache, local preview or remote preview.
68
66
  * It should only be called if there is a chance to get either a remote or a local preview, or both.
@@ -73,49 +71,48 @@ export var getFilePreviewFromFileState = function getFilePreviewFromFileState(fi
73
71
  * In that case, we still want to report the local preview error to the caller, for feature realiability track.
74
72
  * hence the use of the optional callback onLocalPreviewError
75
73
  */
74
+
75
+
76
76
  export var getCardPreview = /*#__PURE__*/function () {
77
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref4) {
78
- var mediaClient, id, collectionName, requestedDimensions, isRemotePreviewReady, addContextToDataURI, filePreview, _ref4$dimensions, dimensions, resizeMode, onLocalPreviewError, cardPreview;
77
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
78
+ var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, cachedPreview, localPreview;
79
79
 
80
80
  return _regeneratorRuntime.wrap(function _callee$(_context) {
81
81
  while (1) {
82
82
  switch (_context.prev = _context.next) {
83
83
  case 0:
84
- mediaClient = _ref4.mediaClient, id = _ref4.id, collectionName = _ref4.collectionName, requestedDimensions = _ref4.requestedDimensions, isRemotePreviewReady = _ref4.isRemotePreviewReady, addContextToDataURI = _ref4.addContextToDataURI, filePreview = _ref4.filePreview, _ref4$dimensions = _ref4.dimensions, dimensions = _ref4$dimensions === void 0 ? {} : _ref4$dimensions, resizeMode = _ref4.resizeMode, onLocalPreviewError = _ref4.onLocalPreviewError;
85
- cardPreview = cardPreviewCache.get(id, dimensions);
84
+ mediaClient = _ref.mediaClient, id = _ref.id, _ref$dimensions = _ref.dimensions, dimensions = _ref$dimensions === void 0 ? {} : _ref$dimensions, filePreview = _ref.filePreview, onLocalPreviewError = _ref.onLocalPreviewError, isRemotePreviewReady = _ref.isRemotePreviewReady, imageUrlParams = _ref.imageUrlParams, mediaBlobUrlAttrs = _ref.mediaBlobUrlAttrs;
85
+ cachedPreview = cardPreviewCache.get(id, dimensions);
86
86
 
87
- if (!cardPreview) {
87
+ if (!cachedPreview) {
88
88
  _context.next = 4;
89
89
  break;
90
90
  }
91
91
 
92
- return _context.abrupt("return", _objectSpread(_objectSpread({}, cardPreview), {}, {
93
- source: 'cache'
94
- }));
92
+ return _context.abrupt("return", cachedPreview);
95
93
 
96
94
  case 4:
97
95
  _context.prev = 4;
98
- _context.t0 = filePreview;
99
96
 
100
- if (!_context.t0) {
97
+ if (!filePreview) {
101
98
  _context.next = 10;
102
99
  break;
103
100
  }
104
101
 
105
- _context.next = 9;
102
+ _context.next = 8;
106
103
  return getCardPreviewFromFilePreview(filePreview);
107
104
 
108
- case 9:
109
- _context.t0 = _context.sent;
105
+ case 8:
106
+ localPreview = _context.sent;
107
+ return _context.abrupt("return", extendAndCachePreview(id, dimensions, localPreview, mediaBlobUrlAttrs));
110
108
 
111
109
  case 10:
112
- cardPreview = _context.t0;
113
- _context.next = 18;
110
+ _context.next = 17;
114
111
  break;
115
112
 
116
- case 13:
117
- _context.prev = 13;
118
- _context.t1 = _context["catch"](4);
113
+ case 12:
114
+ _context.prev = 12;
115
+ _context.t0 = _context["catch"](4);
119
116
 
120
117
  /**
121
118
  * We report the error if:
@@ -127,8 +124,8 @@ export var getCardPreview = /*#__PURE__*/function () {
127
124
  * i.e. local preview is available and not supported,
128
125
  * but we are after the remote preview instead.
129
126
  */
130
- if (!isUnsupportedLocalPreviewError(_context.t1) || isUnsupportedLocalPreviewError(_context.t1) && !isRemotePreviewReady) {
131
- onLocalPreviewError && onLocalPreviewError(_context.t1);
127
+ if (!isUnsupportedLocalPreviewError(_context.t0) || isUnsupportedLocalPreviewError(_context.t0) && !isRemotePreviewReady) {
128
+ onLocalPreviewError && onLocalPreviewError(_context.t0);
132
129
  }
133
130
  /**
134
131
  * No matter the reason why the local preview failed, we break the process
@@ -137,53 +134,103 @@ export var getCardPreview = /*#__PURE__*/function () {
137
134
 
138
135
 
139
136
  if (isRemotePreviewReady) {
140
- _context.next = 18;
137
+ _context.next = 17;
141
138
  break;
142
139
  }
143
140
 
144
- throw _context.t1;
145
-
146
- case 18:
147
- if (cardPreview) {
148
- _context.next = 24;
149
- break;
150
- }
141
+ throw _context.t0;
151
142
 
143
+ case 17:
152
144
  if (isRemotePreviewReady) {
153
- _context.next = 21;
145
+ _context.next = 19;
154
146
  break;
155
147
  }
156
148
 
157
149
  throw new MediaCardError('remote-preview-not-ready');
158
150
 
159
- case 21:
160
- _context.next = 23;
161
- return getCardPreviewFromBackend(mediaClient, id, requestedDimensions, collectionName, resizeMode);
151
+ case 19:
152
+ return _context.abrupt("return", fetchAndCacheRemotePreview(mediaClient, id, dimensions, imageUrlParams, mediaBlobUrlAttrs));
162
153
 
163
- case 23:
164
- cardPreview = _context.sent;
154
+ case 20:
155
+ case "end":
156
+ return _context.stop();
157
+ }
158
+ }
159
+ }, _callee, null, [[4, 12]]);
160
+ }));
165
161
 
166
- case 24:
167
- /**
168
- * In case we've retrieved cardPreview using one of the two methods above,
169
- * we want to embed some meta context into dataURI for Copy/Paste to work.
170
- */
171
- cardPreview = _objectSpread(_objectSpread({}, cardPreview), {}, {
172
- dataURI: addContextToDataURI(cardPreview.dataURI)
173
- }); // We store new cardPreview into cache
162
+ return function getCardPreview(_x) {
163
+ return _ref2.apply(this, arguments);
164
+ };
165
+ }();
166
+ export var shouldResolvePreview = function shouldResolvePreview(_ref3) {
167
+ var status = _ref3.status,
168
+ fileState = _ref3.fileState,
169
+ dimensions = _ref3.dimensions,
170
+ prevDimensions = _ref3.prevDimensions,
171
+ hasCardPreview = _ref3.hasCardPreview,
172
+ isBannedLocalPreview = _ref3.isBannedLocalPreview,
173
+ featureFlags = _ref3.featureFlags;
174
+ var statusIsPreviewable = isPreviewableStatus(status, extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags));
175
+ var dimensionsAreBigger = isBigger(prevDimensions, dimensions);
176
+ return statusIsPreviewable && (!hasCardPreview || dimensionsAreBigger);
177
+ };
178
+ export var getSSRCardPreview = function getSSRCardPreview(ssr, mediaClient, id, params, mediaBlobUrlAttrs) {
179
+ var dataURI;
180
+
181
+ try {
182
+ var rawDataURI = mediaClient.getImageUrlSync(id, params); // We want to embed some meta context into dataURI for Copy/Paste to work.
183
+
184
+ dataURI = mediaBlobUrlAttrs ? addFileAttrsToUrl(rawDataURI, mediaBlobUrlAttrs) : rawDataURI;
185
+ var source = ssr === 'client' ? 'ssr-client' : 'ssr-server';
186
+ return {
187
+ dataURI: dataURI,
188
+ source: source,
189
+ orientation: 1
190
+ };
191
+ } catch (e) {
192
+ var reason = ssr === 'server' ? 'ssr-server-uri' : 'ssr-client-uri';
193
+ throw new SsrPreviewError(reason, e);
194
+ }
195
+ };
196
+ export var isLocalPreview = function isLocalPreview(preview) {
197
+ var localSources = ['local', 'cache-local'];
198
+ return localSources.includes(preview.source);
199
+ };
200
+ export var isSSRPreview = function isSSRPreview(preview) {
201
+ return isSSRClientPreview(preview) || isSSRServerPreview(preview);
202
+ };
203
+ export var isSSRServerPreview = function isSSRServerPreview(preview) {
204
+ var ssrClientSources = ['ssr-server', 'cache-ssr-server'];
205
+ return ssrClientSources.includes(preview.source);
206
+ };
207
+ export var isSSRClientPreview = function isSSRClientPreview(preview) {
208
+ var ssrClientSources = ['ssr-client', 'cache-ssr-client'];
209
+ return ssrClientSources.includes(preview.source);
210
+ };
211
+ export var fetchAndCacheRemotePreview = /*#__PURE__*/function () {
212
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(mediaClient, id, dimensions, params, mediaBlobUrlAttrs) {
213
+ var remotePreview;
214
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
215
+ while (1) {
216
+ switch (_context2.prev = _context2.next) {
217
+ case 0:
218
+ _context2.next = 2;
219
+ return getCardPreviewFromBackend(mediaClient, id, params);
174
220
 
175
- cardPreviewCache.set(id, dimensions, cardPreview);
176
- return _context.abrupt("return", cardPreview);
221
+ case 2:
222
+ remotePreview = _context2.sent;
223
+ return _context2.abrupt("return", extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs));
177
224
 
178
- case 27:
225
+ case 4:
179
226
  case "end":
180
- return _context.stop();
227
+ return _context2.stop();
181
228
  }
182
229
  }
183
- }, _callee, null, [[4, 13]]);
230
+ }, _callee2);
184
231
  }));
185
232
 
186
- return function getCardPreview(_x) {
187
- return _ref5.apply(this, arguments);
233
+ return function fetchAndCacheRemotePreview(_x2, _x3, _x4, _x5, _x6) {
234
+ return _ref4.apply(this, arguments);
188
235
  };
189
236
  }();
@@ -1,3 +1,6 @@
1
+ export var isFinalCardStatus = function isFinalCardStatus(status) {
2
+ return ['complete', 'error', 'failed-processing'].includes(status);
3
+ };
1
4
  export var getCardStatus = function getCardStatus(fileStatus, _ref) {
2
5
  var hasFilesize = _ref.hasFilesize,
3
6
  isPreviewable = _ref.isPreviewable,