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