@atlaskit/media-card 77.5.0 → 77.5.1

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 (107) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/card/card.js +1 -1
  3. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  4. package/dist/cjs/card/v2/cardV2.js +1 -1
  5. package/dist/cjs/card/v2/cardViewV2.js +7 -6
  6. package/dist/cjs/card/v2/useFilePreview/errors.js +132 -0
  7. package/dist/cjs/card/v2/useFilePreview/getPreview/cache.js +39 -0
  8. package/dist/cjs/card/v2/useFilePreview/getPreview/filePreviewStatus.js +45 -0
  9. package/dist/cjs/card/v2/useFilePreview/getPreview/getPreview.js +119 -0
  10. package/dist/cjs/card/v2/useFilePreview/getPreview/helpers.js +167 -0
  11. package/dist/cjs/card/v2/useFilePreview/getPreview/index.js +62 -0
  12. package/dist/cjs/card/v2/useFilePreview/getPreview/objectURLCache.js +85 -0
  13. package/dist/cjs/card/v2/useFilePreview/getPreview/videoSnapshot.js +58 -0
  14. package/dist/cjs/card/v2/useFilePreview/globalScope/getSSRData.js +14 -0
  15. package/dist/cjs/card/v2/useFilePreview/globalScope/globalScope.js +66 -0
  16. package/dist/cjs/card/v2/useFilePreview/globalScope/index.js +37 -0
  17. package/dist/cjs/card/v2/useFilePreview/globalScope/printScript.js +32 -0
  18. package/dist/cjs/card/v2/useFilePreview/globalScope/types.js +5 -0
  19. package/dist/cjs/card/v2/useFilePreview/helpers.js +64 -0
  20. package/dist/cjs/card/v2/useFilePreview/index.js +12 -0
  21. package/dist/cjs/card/v2/useFilePreview/types.js +5 -0
  22. package/dist/cjs/card/v2/{useFilePreview.js → useFilePreview/useFilePreview.js} +58 -194
  23. package/dist/cjs/inline/loader.js +1 -1
  24. package/dist/cjs/utils/ufoExperiences.js +1 -1
  25. package/dist/es2019/card/card.js +1 -1
  26. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  27. package/dist/es2019/card/v2/cardV2.js +1 -1
  28. package/dist/es2019/card/v2/cardViewV2.js +7 -6
  29. package/dist/es2019/card/v2/useFilePreview/errors.js +81 -0
  30. package/dist/es2019/card/v2/useFilePreview/getPreview/cache.js +30 -0
  31. package/dist/es2019/card/v2/useFilePreview/getPreview/filePreviewStatus.js +43 -0
  32. package/dist/es2019/card/v2/useFilePreview/getPreview/getPreview.js +75 -0
  33. package/dist/es2019/card/v2/useFilePreview/getPreview/helpers.js +76 -0
  34. package/dist/es2019/card/v2/useFilePreview/getPreview/index.js +3 -0
  35. package/dist/es2019/card/v2/useFilePreview/getPreview/objectURLCache.js +44 -0
  36. package/dist/es2019/card/v2/useFilePreview/getPreview/videoSnapshot.js +36 -0
  37. package/dist/es2019/card/v2/useFilePreview/globalScope/getSSRData.js +8 -0
  38. package/dist/es2019/card/v2/useFilePreview/globalScope/globalScope.js +48 -0
  39. package/dist/es2019/card/v2/useFilePreview/globalScope/index.js +2 -0
  40. package/dist/es2019/card/v2/useFilePreview/globalScope/printScript.js +16 -0
  41. package/dist/es2019/card/v2/useFilePreview/globalScope/types.js +1 -0
  42. package/dist/es2019/card/v2/useFilePreview/helpers.js +61 -0
  43. package/dist/es2019/card/v2/useFilePreview/index.js +1 -0
  44. package/dist/es2019/card/v2/useFilePreview/types.js +1 -0
  45. package/dist/es2019/card/v2/{useFilePreview.js → useFilePreview/useFilePreview.js} +18 -132
  46. package/dist/es2019/inline/loader.js +1 -1
  47. package/dist/es2019/utils/ufoExperiences.js +1 -1
  48. package/dist/esm/card/card.js +1 -1
  49. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  50. package/dist/esm/card/v2/cardV2.js +1 -1
  51. package/dist/esm/card/v2/cardViewV2.js +7 -6
  52. package/dist/esm/card/v2/useFilePreview/errors.js +124 -0
  53. package/dist/esm/card/v2/useFilePreview/getPreview/cache.js +32 -0
  54. package/dist/esm/card/v2/useFilePreview/getPreview/filePreviewStatus.js +40 -0
  55. package/dist/esm/card/v2/useFilePreview/getPreview/getPreview.js +112 -0
  56. package/dist/esm/card/v2/useFilePreview/getPreview/helpers.js +160 -0
  57. package/dist/esm/card/v2/useFilePreview/getPreview/index.js +3 -0
  58. package/dist/esm/card/v2/useFilePreview/getPreview/objectURLCache.js +78 -0
  59. package/dist/esm/card/v2/useFilePreview/getPreview/videoSnapshot.js +51 -0
  60. package/dist/esm/card/v2/useFilePreview/globalScope/getSSRData.js +8 -0
  61. package/dist/esm/card/v2/useFilePreview/globalScope/globalScope.js +56 -0
  62. package/dist/esm/card/v2/useFilePreview/globalScope/index.js +2 -0
  63. package/dist/esm/card/v2/useFilePreview/globalScope/printScript.js +25 -0
  64. package/dist/esm/card/v2/useFilePreview/globalScope/types.js +1 -0
  65. package/dist/esm/card/v2/useFilePreview/helpers.js +57 -0
  66. package/dist/esm/card/v2/useFilePreview/index.js +1 -0
  67. package/dist/esm/card/v2/useFilePreview/types.js +1 -0
  68. package/dist/esm/card/v2/{useFilePreview.js → useFilePreview/useFilePreview.js} +41 -177
  69. package/dist/esm/inline/loader.js +1 -1
  70. package/dist/esm/utils/ufoExperiences.js +1 -1
  71. package/dist/types/card/v2/cardViewV2.d.ts +5 -4
  72. package/dist/types/card/v2/useFilePreview/errors.d.ts +38 -0
  73. package/dist/types/card/v2/useFilePreview/getPreview/cache.d.ts +21 -0
  74. package/dist/types/card/v2/useFilePreview/getPreview/filePreviewStatus.d.ts +4 -0
  75. package/dist/types/card/v2/useFilePreview/getPreview/getPreview.d.ts +9 -0
  76. package/dist/types/card/v2/useFilePreview/getPreview/helpers.d.ts +10 -0
  77. package/dist/types/card/v2/useFilePreview/getPreview/index.d.ts +3 -0
  78. package/dist/types/card/v2/useFilePreview/getPreview/objectURLCache.d.ts +12 -0
  79. package/dist/types/card/v2/useFilePreview/getPreview/videoSnapshot.d.ts +1 -0
  80. package/dist/types/card/v2/useFilePreview/globalScope/getSSRData.d.ts +3 -0
  81. package/dist/types/card/v2/useFilePreview/globalScope/globalScope.d.ts +15 -0
  82. package/dist/types/card/v2/useFilePreview/globalScope/index.d.ts +4 -0
  83. package/dist/types/card/v2/useFilePreview/globalScope/printScript.d.ts +2 -0
  84. package/dist/types/card/v2/useFilePreview/globalScope/types.d.ts +8 -0
  85. package/dist/types/card/v2/useFilePreview/helpers.d.ts +11 -0
  86. package/dist/types/card/v2/useFilePreview/index.d.ts +2 -0
  87. package/dist/types/card/v2/useFilePreview/types.d.ts +18 -0
  88. package/dist/{types-ts4.5/card/v2 → types/card/v2/useFilePreview}/useFilePreview.d.ts +8 -8
  89. package/dist/types-ts4.5/card/v2/cardViewV2.d.ts +5 -4
  90. package/dist/types-ts4.5/card/v2/useFilePreview/errors.d.ts +38 -0
  91. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/cache.d.ts +21 -0
  92. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/filePreviewStatus.d.ts +4 -0
  93. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/getPreview.d.ts +9 -0
  94. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/helpers.d.ts +10 -0
  95. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/index.d.ts +3 -0
  96. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/objectURLCache.d.ts +12 -0
  97. package/dist/types-ts4.5/card/v2/useFilePreview/getPreview/videoSnapshot.d.ts +1 -0
  98. package/dist/types-ts4.5/card/v2/useFilePreview/globalScope/getSSRData.d.ts +3 -0
  99. package/dist/types-ts4.5/card/v2/useFilePreview/globalScope/globalScope.d.ts +15 -0
  100. package/dist/types-ts4.5/card/v2/useFilePreview/globalScope/index.d.ts +4 -0
  101. package/dist/types-ts4.5/card/v2/useFilePreview/globalScope/printScript.d.ts +2 -0
  102. package/dist/types-ts4.5/card/v2/useFilePreview/globalScope/types.d.ts +8 -0
  103. package/dist/types-ts4.5/card/v2/useFilePreview/helpers.d.ts +11 -0
  104. package/dist/types-ts4.5/card/v2/useFilePreview/index.d.ts +2 -0
  105. package/dist/types-ts4.5/card/v2/useFilePreview/types.d.ts +18 -0
  106. package/dist/{types/card/v2 → types-ts4.5/card/v2/useFilePreview}/useFilePreview.d.ts +8 -8
  107. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 77.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#59746](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/59746) [`8412c1b3563d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8412c1b3563d) - isolated dependencies of usePreviewHook (not includes analytics)
8
+
3
9
  ## 77.5.0
4
10
 
5
11
  ### Minor Changes
@@ -49,7 +49,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
49
49
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
50
50
  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; } }
51
51
  var packageName = "@atlaskit/media-card";
52
- var packageVersion = "77.5.0";
52
+ var packageVersion = "77.5.1";
53
53
  var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
54
54
  (0, _inherits2.default)(CardBase, _Component);
55
55
  var _super = _createSuper(CardBase);
@@ -90,7 +90,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
90
90
  }(_react.default.Component);
91
91
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
92
92
  var packageName = "@atlaskit/media-card";
93
- var packageVersion = "77.5.0";
93
+ var packageVersion = "77.5.1";
94
94
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
95
95
  packageVersion: packageVersion,
96
96
  packageName: packageName,
@@ -16,7 +16,7 @@ var _externalImageCard = require("./externalImageCard");
16
16
  var _fileCard = require("./fileCard");
17
17
  var _excluded = ["identifier"];
18
18
  var packageName = "@atlaskit/media-card";
19
- var packageVersion = "77.5.0";
19
+ var packageVersion = "77.5.1";
20
20
  var CardV2Base = exports.CardV2Base = function CardV2Base(_ref) {
21
21
  var identifier = _ref.identifier,
22
22
  otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -84,18 +84,19 @@ var CardViewV2Base = exports.CardViewV2Base = function CardViewV2Base(_ref) {
84
84
  if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
85
85
  return;
86
86
  }
87
-
88
87
  /*
89
88
  We render the icon & icon message always, even if there is cardPreview available.
90
- If the image fails to load/render, the icon will remain, i.e. the user won't see a change until the root card decides to chage status to error.
91
- If the image renders successfully, we switch this variable to hide the icon & icon message behind the thumbnail in case the image has transparency.
92
- It is less likely that root component replaces a suceeded cardPreview for a failed one than the opposite case. Therefore we prefer to hide the icon instead show when the image fails, for a smoother transition
89
+ If the image fails to load/render, the icon will remain, i.e. the user won't see a change until the root card decides to chage status to error.
90
+ If the image renders successfully, we switch this variable to hide the icon & icon message behind the thumbnail in case the image has transparency.
91
+ It is less likely that root component replaces a suceeded cardPreview for a failed one than the opposite case. Therefore we prefer to hide the icon instead show when the image fails, for a smoother transition
93
92
  */
94
-
95
93
  setDidImageRender(true);
96
94
  onImageLoad === null || onImageLoad === void 0 || onImageLoad(cardPreview);
97
95
  };
98
- var handleOnImageError = function handleOnImageError(cardPreview) {
96
+ var handleOnImageError = function handleOnImageError(prevCardPreview) {
97
+ if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
98
+ return;
99
+ }
99
100
  setDidImageRender(false);
100
101
  onImageError === null || onImageError === void 0 || onImageError(cardPreview);
101
102
  };
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isLocalPreviewError = exports.ensureMediaFilePreviewError = exports.SsrPreviewError = exports.RemotePreviewError = exports.MediaFilePreviewError = exports.LocalPreviewError = exports.ImageLoadError = void 0;
8
+ exports.isMediaFilePreviewError = isMediaFilePreviewError;
9
+ exports.isUnsupportedLocalPreviewError = exports.isRemotePreviewError = void 0;
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
17
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
18
+ 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; } }
19
+ /**
20
+ * Primary reason is logged through Data Portal.
21
+ * Make sure all the values are whitelisted in Measure -> Event Regitry -> "mediaCardRender failed" event
22
+ */
23
+ var MediaFilePreviewError = exports.MediaFilePreviewError = /*#__PURE__*/function (_Error) {
24
+ (0, _inherits2.default)(MediaFilePreviewError, _Error);
25
+ var _super = _createSuper(MediaFilePreviewError);
26
+ function MediaFilePreviewError(primaryReason, secondaryError) {
27
+ var _this;
28
+ (0, _classCallCheck2.default)(this, MediaFilePreviewError);
29
+ _this = _super.call(this, primaryReason);
30
+ // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget
31
+ _this.primaryReason = primaryReason;
32
+ _this.secondaryError = secondaryError;
33
+ Object.setPrototypeOf((0, _assertThisInitialized2.default)(_this), (this instanceof MediaFilePreviewError ? this.constructor : void 0).prototype);
34
+
35
+ // https://v8.dev/docs/stack-trace-api
36
+ if ('captureStackTrace' in Error) {
37
+ Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), this instanceof MediaFilePreviewError ? this.constructor : void 0);
38
+ }
39
+ return _this;
40
+ }
41
+ return (0, _createClass2.default)(MediaFilePreviewError);
42
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
43
+ var LocalPreviewError = exports.LocalPreviewError = /*#__PURE__*/function (_MediaFilePreviewErro) {
44
+ (0, _inherits2.default)(LocalPreviewError, _MediaFilePreviewErro);
45
+ var _super2 = _createSuper(LocalPreviewError);
46
+ function LocalPreviewError(primaryReason, secondaryError) {
47
+ var _this2;
48
+ (0, _classCallCheck2.default)(this, LocalPreviewError);
49
+ _this2 = _super2.call(this, primaryReason, secondaryError);
50
+ _this2.primaryReason = primaryReason;
51
+ _this2.secondaryError = secondaryError;
52
+ return _this2;
53
+ }
54
+ return (0, _createClass2.default)(LocalPreviewError);
55
+ }(MediaFilePreviewError);
56
+ var RemotePreviewError = exports.RemotePreviewError = /*#__PURE__*/function (_MediaFilePreviewErro2) {
57
+ (0, _inherits2.default)(RemotePreviewError, _MediaFilePreviewErro2);
58
+ var _super3 = _createSuper(RemotePreviewError);
59
+ function RemotePreviewError(primaryReason, secondaryError) {
60
+ var _this3;
61
+ (0, _classCallCheck2.default)(this, RemotePreviewError);
62
+ _this3 = _super3.call(this, primaryReason, secondaryError);
63
+ _this3.primaryReason = primaryReason;
64
+ _this3.secondaryError = secondaryError;
65
+ return _this3;
66
+ }
67
+ return (0, _createClass2.default)(RemotePreviewError);
68
+ }(MediaFilePreviewError);
69
+ var SsrPreviewError = exports.SsrPreviewError = /*#__PURE__*/function (_MediaFilePreviewErro3) {
70
+ (0, _inherits2.default)(SsrPreviewError, _MediaFilePreviewErro3);
71
+ var _super4 = _createSuper(SsrPreviewError);
72
+ function SsrPreviewError(primaryReason, secondaryError) {
73
+ var _this4;
74
+ (0, _classCallCheck2.default)(this, SsrPreviewError);
75
+ _this4 = _super4.call(this, primaryReason, secondaryError);
76
+ _this4.primaryReason = primaryReason;
77
+ _this4.secondaryError = secondaryError;
78
+ return _this4;
79
+ }
80
+ return (0, _createClass2.default)(SsrPreviewError);
81
+ }(MediaFilePreviewError);
82
+ var getImageLoadPrimaryReason = function getImageLoadPrimaryReason(source) {
83
+ switch (source) {
84
+ case 'cache-remote':
85
+ return 'cache-remote-uri';
86
+ case 'cache-local':
87
+ return 'cache-local-uri';
88
+ case 'external':
89
+ return 'external-uri';
90
+ case 'local':
91
+ return 'local-uri';
92
+ case 'remote':
93
+ return 'remote-uri';
94
+ // This fail reason will come from a bug, most likely.
95
+ default:
96
+ return "unknown-uri";
97
+ }
98
+ };
99
+ var ImageLoadError = exports.ImageLoadError = /*#__PURE__*/function (_MediaFilePreviewErro4) {
100
+ (0, _inherits2.default)(ImageLoadError, _MediaFilePreviewErro4);
101
+ var _super5 = _createSuper(ImageLoadError);
102
+ function ImageLoadError(source) {
103
+ (0, _classCallCheck2.default)(this, ImageLoadError);
104
+ return _super5.call(this, getImageLoadPrimaryReason(source));
105
+ }
106
+ return (0, _createClass2.default)(ImageLoadError);
107
+ }(MediaFilePreviewError);
108
+ function isMediaFilePreviewError(err) {
109
+ return err instanceof MediaFilePreviewError;
110
+ }
111
+ var isLocalPreviewError = exports.isLocalPreviewError = function isLocalPreviewError(err) {
112
+ return err instanceof LocalPreviewError;
113
+ };
114
+ var isRemotePreviewError = exports.isRemotePreviewError = function isRemotePreviewError(err) {
115
+ return err instanceof RemotePreviewError;
116
+ };
117
+ var isUnsupportedLocalPreviewError = exports.isUnsupportedLocalPreviewError = function isUnsupportedLocalPreviewError(err) {
118
+ return isMediaFilePreviewError(err) && err.primaryReason === 'local-preview-unsupported';
119
+ };
120
+
121
+ // In a try/catch statement, the error caught is the type of unknown.
122
+ // We can use this helper to ensure that the error handled is the type of MediaFilePreviewError if unsure
123
+ // If updatePrimaryReason is true, if it's a MediaFilePreviewError already, it will update it's primary reason
124
+ var ensureMediaFilePreviewError = exports.ensureMediaFilePreviewError = function ensureMediaFilePreviewError(primaryReason, error, updatePrimaryReason) {
125
+ if (isMediaFilePreviewError(error)) {
126
+ if (updatePrimaryReason && error.primaryReason !== primaryReason) {
127
+ return new MediaFilePreviewError(primaryReason, error.secondaryError);
128
+ }
129
+ return error;
130
+ }
131
+ return new MediaFilePreviewError(primaryReason, error);
132
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mediaFilePreviewCache = exports.getCacheKey = exports.CardPreviewCacheImpl = void 0;
8
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectURLCache = require("./objectURLCache");
12
+ // Dimensions are used to create a key.
13
+ // Cache is invalidated when different dimensions are provided.
14
+
15
+ var getCacheKey = exports.getCacheKey = function getCacheKey(id, mode) {
16
+ var resizeMode = mode || 'crop';
17
+ return [id, resizeMode].join('-');
18
+ };
19
+ var CardPreviewCacheImpl = exports.CardPreviewCacheImpl = /*#__PURE__*/(0, _createClass2.default)(function CardPreviewCacheImpl(previewCache) {
20
+ var _this = this;
21
+ (0, _classCallCheck2.default)(this, CardPreviewCacheImpl);
22
+ (0, _defineProperty2.default)(this, "get", function (id, mode) {
23
+ var cacheKey = getCacheKey(id, mode);
24
+ return _this.previewCache.get(cacheKey);
25
+ });
26
+ (0, _defineProperty2.default)(this, "set", function (id, mode, cardPreview) {
27
+ var cacheKey = getCacheKey(id, mode);
28
+ _this.previewCache.set(cacheKey, cardPreview);
29
+ });
30
+ (0, _defineProperty2.default)(this, "remove", function (id, mode) {
31
+ var cacheKey = getCacheKey(id, mode);
32
+ _this.previewCache.remove(cacheKey);
33
+ });
34
+ (0, _defineProperty2.default)(this, "clear", function () {
35
+ _this.previewCache.clear();
36
+ });
37
+ this.previewCache = previewCache;
38
+ });
39
+ var mediaFilePreviewCache = exports.mediaFilePreviewCache = new CardPreviewCacheImpl((0, _objectURLCache.createObjectURLCache)());
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isPreviewableStatus = exports.extractFilePreviewStatus = void 0;
7
+ var _mediaCommon = require("@atlaskit/media-common");
8
+ var _mediaClient = require("@atlaskit/media-client");
9
+ var _helpers = require("./helpers");
10
+ // TODO: align these checks with helpers from Media Client
11
+ // https://product-fabric.atlassian.net/browse/BMPT-1300
12
+ var extractFilePreviewStatus = exports.extractFilePreviewStatus = function extractFilePreviewStatus(fileState, isBannedLocalPreview) {
13
+ var hasFilesize = 'size' in fileState && !!fileState.size;
14
+ var _ref = 'mediaType' in fileState && fileState || {},
15
+ mediaType = _ref.mediaType;
16
+ var _ref2 = 'mimeType' in fileState && fileState || {},
17
+ mimeType = _ref2.mimeType;
18
+ var isPreviewable = !!mediaType && (0, _mediaClient.isPreviewableType)(mediaType);
19
+
20
+ // Local preview is available only if it's supported by browser and supported by Media Card (isSupportedLocalPreview)
21
+ // For example, SVGs are mime type NOT supported by browser but media type supported by Media Card (image)
22
+ // Then, local Preview NOT available
23
+ var hasLocalPreview = !isBannedLocalPreview && (0, _mediaClient.isPreviewableFileState)(fileState) && (0, _helpers.isSupportedLocalPreview)(mediaType) && !!mimeType && (0, _mediaCommon.isMimeTypeSupportedByBrowser)(mimeType);
24
+ var hasRemotePreview = (0, _mediaClient.isImageRepresentationReady)(fileState);
25
+ var hasPreview = hasLocalPreview || hasRemotePreview;
26
+ var isSupportedByBrowser = !!mimeType && (0, _mediaCommon.isMimeTypeSupportedByBrowser)(mimeType);
27
+ return {
28
+ hasFilesize: hasFilesize,
29
+ isPreviewable: isPreviewable,
30
+ hasPreview: hasPreview,
31
+ isSupportedByBrowser: isSupportedByBrowser
32
+ };
33
+ };
34
+
35
+ // CXP-2723 TODO: Review this in relation to removing status from the hook
36
+ var isPreviewableStatus = exports.isPreviewableStatus = function isPreviewableStatus(cardStatus, _ref3) {
37
+ var isPreviewable = _ref3.isPreviewable,
38
+ hasPreview = _ref3.hasPreview,
39
+ isSupportedByBrowser = _ref3.isSupportedByBrowser;
40
+ return hasPreview && isPreviewable && (cardStatus === 'complete' || cardStatus === 'loading-preview' || cardStatus === 'uploading' ||
41
+ // For Video, we can have local or remote preview while processing.
42
+ // Then, we only want to show the thumbnail if the file is supported by the browser,
43
+ // this way we prevent playing unsupported videos that are not procesed
44
+ cardStatus === 'processing' && isSupportedByBrowser);
45
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isSSRDataPreview = exports.isSSRClientPreview = exports.isLocalPreview = exports.getSSRCardPreview = exports.getAndCacheRemotePreview = exports.getAndCacheLocalPreview = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _mediaClient = require("@atlaskit/media-client");
12
+ var _cache = require("./cache");
13
+ var _helpers = require("./helpers");
14
+ var _errors = require("../errors");
15
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ var extendAndCachePreview = function extendAndCachePreview(id, mode, preview, mediaBlobUrlAttrs) {
18
+ var source;
19
+ switch (preview.source) {
20
+ case 'local':
21
+ source = 'cache-local';
22
+ break;
23
+ case 'remote':
24
+ source = 'cache-remote';
25
+ break;
26
+ case 'ssr-server':
27
+ source = 'cache-ssr-server';
28
+ break;
29
+ case 'ssr-client':
30
+ source = 'cache-ssr-client';
31
+ break;
32
+ default:
33
+ source = preview.source;
34
+ }
35
+ // We want to embed some meta context into dataURI for Copy/Paste to work.
36
+ var dataURI = mediaBlobUrlAttrs ? (0, _mediaClient.addFileAttrsToUrl)(preview.dataURI, mediaBlobUrlAttrs) : preview.dataURI;
37
+ // We store new cardPreview into cache
38
+ _cache.mediaFilePreviewCache.set(id, mode, _objectSpread(_objectSpread({}, preview), {}, {
39
+ source: source,
40
+ dataURI: dataURI
41
+ }));
42
+ return _objectSpread(_objectSpread({}, preview), {}, {
43
+ dataURI: dataURI
44
+ });
45
+ };
46
+ var getSSRCardPreview = exports.getSSRCardPreview = function getSSRCardPreview(ssr, mediaClient, id, params, mediaBlobUrlAttrs) {
47
+ var dataURI;
48
+ try {
49
+ var rawDataURI = mediaClient.getImageUrlSync(id, params);
50
+ // We want to embed some meta context into dataURI for Copy/Paste to work.
51
+ dataURI = mediaBlobUrlAttrs ? (0, _mediaClient.addFileAttrsToUrl)(rawDataURI, mediaBlobUrlAttrs) : rawDataURI;
52
+ var source = ssr === 'client' ? 'ssr-client' : 'ssr-server';
53
+ return {
54
+ dataURI: dataURI,
55
+ source: source,
56
+ orientation: 1
57
+ };
58
+ } catch (e) {
59
+ var reason = ssr === 'server' ? 'ssr-server-uri' : 'ssr-client-uri';
60
+ throw new _errors.SsrPreviewError(reason, e instanceof Error ? e : undefined);
61
+ }
62
+ };
63
+ var isLocalPreview = exports.isLocalPreview = function isLocalPreview(preview) {
64
+ var localSources = ['local', 'cache-local'];
65
+ return localSources.includes(preview.source);
66
+ };
67
+ var isSSRClientPreview = exports.isSSRClientPreview = function isSSRClientPreview(preview) {
68
+ var ssrClientSources = ['ssr-client', 'cache-ssr-client'];
69
+ return ssrClientSources.includes(preview.source);
70
+ };
71
+ var isSSRDataPreview = exports.isSSRDataPreview = function isSSRDataPreview(preview) {
72
+ return preview.source === 'ssr-data';
73
+ };
74
+ var getAndCacheRemotePreview = exports.getAndCacheRemotePreview = /*#__PURE__*/function () {
75
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaClient, id, dimensions, params, mediaBlobUrlAttrs, traceContext) {
76
+ var remotePreview;
77
+ return _regenerator.default.wrap(function _callee$(_context) {
78
+ while (1) switch (_context.prev = _context.next) {
79
+ case 0:
80
+ _context.next = 2;
81
+ return (0, _helpers.getRemotePreview)(mediaClient, id, params, traceContext);
82
+ case 2:
83
+ remotePreview = _context.sent;
84
+ return _context.abrupt("return", extendAndCachePreview(id, params.mode, _objectSpread(_objectSpread({}, remotePreview), {}, {
85
+ dimensions: dimensions
86
+ }), mediaBlobUrlAttrs));
87
+ case 4:
88
+ case "end":
89
+ return _context.stop();
90
+ }
91
+ }, _callee);
92
+ }));
93
+ return function getAndCacheRemotePreview(_x, _x2, _x3, _x4, _x5, _x6) {
94
+ return _ref.apply(this, arguments);
95
+ };
96
+ }();
97
+ var getAndCacheLocalPreview = exports.getAndCacheLocalPreview = /*#__PURE__*/function () {
98
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(id, filePreview, dimensions, mode, mediaBlobUrlAttrs) {
99
+ var localPreview;
100
+ return _regenerator.default.wrap(function _callee2$(_context2) {
101
+ while (1) switch (_context2.prev = _context2.next) {
102
+ case 0:
103
+ _context2.next = 2;
104
+ return (0, _helpers.getLocalPreview)(filePreview);
105
+ case 2:
106
+ localPreview = _context2.sent;
107
+ return _context2.abrupt("return", extendAndCachePreview(id, mode, _objectSpread(_objectSpread({}, localPreview), {}, {
108
+ dimensions: dimensions
109
+ }), mediaBlobUrlAttrs));
110
+ case 4:
111
+ case "end":
112
+ return _context2.stop();
113
+ }
114
+ }, _callee2);
115
+ }));
116
+ return function getAndCacheLocalPreview(_x7, _x8, _x9, _x10, _x11) {
117
+ return _ref2.apply(this, arguments);
118
+ };
119
+ }();
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isSupportedLocalPreview = exports.getRemotePreview = exports.getLocalPreview = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _videoSnapshot = require("./videoSnapshot");
11
+ var _mediaCommon = require("@atlaskit/media-common");
12
+ var _mediaUi = require("@atlaskit/media-ui");
13
+ var _errors = require("../errors");
14
+ /**
15
+ * This method tells the support for the media
16
+ * types covered in getCardPreviewFromFilePreview
17
+ */
18
+ var isSupportedLocalPreview = exports.isSupportedLocalPreview = function isSupportedLocalPreview(mediaType) {
19
+ return mediaType === 'image' || mediaType === 'video';
20
+ };
21
+ var getImageLocalPreview = /*#__PURE__*/function () {
22
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(value) {
23
+ var orientation, dataURI;
24
+ return _regenerator.default.wrap(function _callee$(_context) {
25
+ while (1) switch (_context.prev = _context.next) {
26
+ case 0:
27
+ _context.prev = 0;
28
+ _context.next = 3;
29
+ return (0, _mediaUi.getOrientation)(value);
30
+ case 3:
31
+ orientation = _context.sent;
32
+ dataURI = URL.createObjectURL(value);
33
+ return _context.abrupt("return", {
34
+ dataURI: dataURI,
35
+ orientation: orientation,
36
+ source: 'local'
37
+ });
38
+ case 8:
39
+ _context.prev = 8;
40
+ _context.t0 = _context["catch"](0);
41
+ throw new _errors.LocalPreviewError('local-preview-image', _context.t0 instanceof Error ? _context.t0 : undefined);
42
+ case 11:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee, null, [[0, 8]]);
47
+ }));
48
+ return function getImageLocalPreview(_x) {
49
+ return _ref.apply(this, arguments);
50
+ };
51
+ }();
52
+ var getVideoLocalPreview = /*#__PURE__*/function () {
53
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(value) {
54
+ var dataURI;
55
+ return _regenerator.default.wrap(function _callee2$(_context2) {
56
+ while (1) switch (_context2.prev = _context2.next) {
57
+ case 0:
58
+ _context2.prev = 0;
59
+ _context2.next = 3;
60
+ return (0, _videoSnapshot.takeSnapshot)(value);
61
+ case 3:
62
+ dataURI = _context2.sent;
63
+ return _context2.abrupt("return", {
64
+ dataURI: dataURI,
65
+ orientation: 1,
66
+ source: 'local'
67
+ });
68
+ case 7:
69
+ _context2.prev = 7;
70
+ _context2.t0 = _context2["catch"](0);
71
+ throw new _errors.LocalPreviewError('local-preview-video', _context2.t0 instanceof Error ? _context2.t0 : undefined);
72
+ case 10:
73
+ case "end":
74
+ return _context2.stop();
75
+ }
76
+ }, _callee2, null, [[0, 7]]);
77
+ }));
78
+ return function getVideoLocalPreview(_x2) {
79
+ return _ref2.apply(this, arguments);
80
+ };
81
+ }();
82
+ var getLocalPreview = exports.getLocalPreview = /*#__PURE__*/function () {
83
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(filePreview) {
84
+ var value, resolvedFilePreview, _value, type, mediaType;
85
+ return _regenerator.default.wrap(function _callee3$(_context3) {
86
+ while (1) switch (_context3.prev = _context3.next) {
87
+ case 0:
88
+ _context3.prev = 0;
89
+ _context3.next = 3;
90
+ return filePreview;
91
+ case 3:
92
+ resolvedFilePreview = _context3.sent;
93
+ value = resolvedFilePreview.value;
94
+ _context3.next = 10;
95
+ break;
96
+ case 7:
97
+ _context3.prev = 7;
98
+ _context3.t0 = _context3["catch"](0);
99
+ throw new _errors.LocalPreviewError('local-preview-rejected', _context3.t0 instanceof Error ? _context3.t0 : undefined);
100
+ case 10:
101
+ if (!(typeof value === 'string')) {
102
+ _context3.next = 14;
103
+ break;
104
+ }
105
+ return _context3.abrupt("return", {
106
+ dataURI: value,
107
+ orientation: 1,
108
+ source: 'local'
109
+ });
110
+ case 14:
111
+ if (!(value instanceof Blob)) {
112
+ _context3.next = 23;
113
+ break;
114
+ }
115
+ _value = value, type = _value.type;
116
+ mediaType = (0, _mediaCommon.getMediaTypeFromMimeType)(type);
117
+ _context3.t1 = mediaType;
118
+ _context3.next = _context3.t1 === 'image' ? 20 : _context3.t1 === 'video' ? 21 : 22;
119
+ break;
120
+ case 20:
121
+ return _context3.abrupt("return", getImageLocalPreview(value));
122
+ case 21:
123
+ return _context3.abrupt("return", getVideoLocalPreview(value));
124
+ case 22:
125
+ throw new _errors.LocalPreviewError('local-preview-unsupported');
126
+ case 23:
127
+ throw new _errors.LocalPreviewError('local-preview-unsupported');
128
+ case 24:
129
+ case "end":
130
+ return _context3.stop();
131
+ }
132
+ }, _callee3, null, [[0, 7]]);
133
+ }));
134
+ return function getLocalPreview(_x3) {
135
+ return _ref3.apply(this, arguments);
136
+ };
137
+ }();
138
+ var getRemotePreview = exports.getRemotePreview = /*#__PURE__*/function () {
139
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(mediaClient, id, params, traceContext) {
140
+ var blob;
141
+ return _regenerator.default.wrap(function _callee4$(_context4) {
142
+ while (1) switch (_context4.prev = _context4.next) {
143
+ case 0:
144
+ _context4.prev = 0;
145
+ _context4.next = 3;
146
+ return mediaClient.getImage(id, params, undefined, undefined, traceContext);
147
+ case 3:
148
+ blob = _context4.sent;
149
+ return _context4.abrupt("return", {
150
+ dataURI: URL.createObjectURL(blob),
151
+ orientation: 1,
152
+ source: 'remote'
153
+ });
154
+ case 7:
155
+ _context4.prev = 7;
156
+ _context4.t0 = _context4["catch"](0);
157
+ throw new _errors.RemotePreviewError('remote-preview-fetch', _context4.t0 instanceof Error ? _context4.t0 : undefined);
158
+ case 10:
159
+ case "end":
160
+ return _context4.stop();
161
+ }
162
+ }, _callee4, null, [[0, 7]]);
163
+ }));
164
+ return function getRemotePreview(_x4, _x5, _x6, _x7) {
165
+ return _ref4.apply(this, arguments);
166
+ };
167
+ }();
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "extractFilePreviewStatus", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _filePreviewStatus.extractFilePreviewStatus;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "getAndCacheLocalPreview", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _getPreview.getAndCacheLocalPreview;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "getAndCacheRemotePreview", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _getPreview.getAndCacheRemotePreview;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "getSSRCardPreview", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _getPreview.getSSRCardPreview;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "isLocalPreview", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _getPreview.isLocalPreview;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "isPreviewableStatus", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _filePreviewStatus.isPreviewableStatus;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "isSSRClientPreview", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _getPreview.isSSRClientPreview;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "isSSRDataPreview", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _getPreview.isSSRDataPreview;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "mediaFilePreviewCache", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _cache.mediaFilePreviewCache;
58
+ }
59
+ });
60
+ var _cache = require("./cache");
61
+ var _filePreviewStatus = require("./filePreviewStatus");
62
+ var _getPreview = require("./getPreview");