@atlaskit/media-viewer 46.1.0 → 46.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,92 @@
1
1
  # @atlaskit/media-viewer
2
2
 
3
+ ## 46.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`60136fd1e34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/60136fd1e34) - Replicate Media Viewer Reliability Events using UFO client library
8
+ - [`f862d5ae7aa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f862d5ae7aa) - remove RxJs peer dependency
9
+ - [`dea110be493`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dea110be493) - [ux] MEX-1334 Implemented code splitting in media-viewer
10
+ - [`118f3af101f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/118f3af101f) - Media Client APIs has been updated to use MediaSubscribable which provides subscription functionality (similar to RxJs observables).
11
+ It exposes subscribe method that is called with MediaObserver as an argument and returns MediaSubscription.
12
+ MediaSubscription exposes unsubscribe method.
13
+
14
+ getFileState:
15
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
16
+
17
+ ```
18
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
19
+
20
+ const mediaClient = new MediaClient({ authProvider });
21
+
22
+ const fileStateSubscribable: MediaSubscribable<FileState> = mediaClient.file.getFileState(id);
23
+
24
+ const mediaObserver: MediaObserver<FileState> = {
25
+ next: (fileState) => {
26
+ nextCallback(fileState)
27
+ },
28
+ error: (error) => {
29
+ errorCallback(error)
30
+ },
31
+ };
32
+
33
+ const subscription: MediaSubscription = fileStateSubscribable.subscribe(mediaObserver);
34
+
35
+ subscription.unsubscribe();
36
+ ```
37
+
38
+ upload:
39
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
40
+
41
+ ```
42
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
43
+
44
+ const mediaClient = new MediaClient({ authProvider });
45
+
46
+ const uploadFileSubscribable: MediaSubscribable<FileState> = mediaClient.file.upload(uploadableFile);
47
+
48
+ const mediaObserver: MediaObserver<FileState> = {
49
+ next: (fileState) => {
50
+ nextCallback(fileState)
51
+ },
52
+ error: (error) => {
53
+ errorCallback(error)
54
+ },
55
+ };
56
+
57
+ const subscription: MediaSubscription = uploadFileSubscribable.subscribe(mediaObserver);
58
+
59
+ subscription.unsubscribe();
60
+ ```
61
+
62
+ getItems:
63
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
64
+
65
+ ```
66
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
67
+
68
+ const mediaClient = new MediaClient({ authProvider });
69
+
70
+ const collectionItemsSubscribable: MediaSubscribable<MediaCollectionItem[]> = mediaClient.collection.getItems(collectionName);
71
+
72
+ const mediaObserver: MediaObserver<MediaCollectionItem[]> = {
73
+ next: (items) => {
74
+ nextCallback(items)
75
+ },
76
+ error: (error) => {
77
+ errorCallback(error)
78
+ },
79
+ };
80
+
81
+ const subscription: MediaSubscription = collectionItemsSubscribable.subscribe(mediaObserver);
82
+
83
+ subscription.unsubscribe();
84
+ ```
85
+
86
+ ### Patch Changes
87
+
88
+ - Updated dependencies
89
+
3
90
  ## 46.1.0
4
91
 
5
92
  ### Minor Changes
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.succeedMediaFileUfoExperience = exports.startMediaFileUfoExperience = exports.failMediaFileUfoExperience = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _ufo = require("@atlaskit/ufo");
13
+
14
+ var _version = require("../version.json");
15
+
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+
20
+ var ufoExperience;
21
+
22
+ var getExperience = function getExperience() {
23
+ if (!ufoExperience) {
24
+ var inlineExperience = {
25
+ platform: {
26
+ component: 'media-viewer'
27
+ },
28
+ type: _ufo.ExperienceTypes.Experience,
29
+ performanceType: _ufo.ExperiencePerformanceTypes.InlineResult
30
+ };
31
+ ufoExperience = new _ufo.UFOExperience('media-file', inlineExperience);
32
+ }
33
+
34
+ return ufoExperience;
35
+ };
36
+
37
+ var startMediaFileUfoExperience = function startMediaFileUfoExperience() {
38
+ getExperience().start();
39
+ };
40
+
41
+ exports.startMediaFileUfoExperience = startMediaFileUfoExperience;
42
+
43
+ var succeedMediaFileUfoExperience = function succeedMediaFileUfoExperience(properties) {
44
+ getExperience().success({
45
+ metadata: {
46
+ fileAttributes: properties,
47
+ packageName: _version.name,
48
+ packageVersion: _version.version
49
+ }
50
+ });
51
+ };
52
+
53
+ exports.succeedMediaFileUfoExperience = succeedMediaFileUfoExperience;
54
+
55
+ var failMediaFileUfoExperience = function failMediaFileUfoExperience(properties) {
56
+ var refinedMetadata = _objectSpread(_objectSpread({}, properties), {}, {
57
+ packageName: _version.name,
58
+ packageVersion: _version.version
59
+ });
60
+
61
+ getExperience().failure({
62
+ metadata: refinedMetadata
63
+ });
64
+ };
65
+
66
+ exports.failMediaFileUfoExperience = failMediaFileUfoExperience;
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getErrorMessageFromError = exports.errorReasonToMessages = exports.default = exports.ErrorMessage = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -37,6 +39,12 @@ var _loadFailed = require("./analytics/events/operational/loadFailed");
37
39
 
38
40
  var _previewUnsupported = require("./analytics/events/operational/previewUnsupported");
39
41
 
42
+ var _ufoExperiences = require("./analytics/ufoExperiences");
43
+
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
+
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
+
40
48
  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); }; }
41
49
 
42
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; } }
@@ -100,6 +108,15 @@ var ErrorMessage = /*#__PURE__*/function (_React$Component) {
100
108
  if (supressAnalytics !== true) {
101
109
  var payload = ErrorMessage.getEventPayload(error, fileId, fileState);
102
110
  (0, _analytics.fireAnalytics)(payload, props);
111
+
112
+ var rawPayload = _objectSpread({}, payload === null || payload === void 0 ? void 0 : payload.attributes);
113
+
114
+ if (Object.keys(rawPayload).includes('status')) {
115
+ delete rawPayload['status'];
116
+ }
117
+
118
+ var failMediaFileUfoExperiencePayload = rawPayload;
119
+ (0, _ufoExperiences.failMediaFileUfoExperience)(failMediaFileUfoExperiencePayload);
103
120
  }
104
121
  }
105
122
  }, {
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.isFileStateItem = exports.isExternalImageItem = exports.ItemViewerBase = exports.ItemViewer = void 0;
9
9
 
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -25,6 +27,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
27
 
26
28
  var _react = _interopRequireDefault(require("react"));
27
29
 
30
+ var _reactLoadable = _interopRequireDefault(require("react-loadable"));
31
+
28
32
  var _mediaClient = require("@atlaskit/media-client");
29
33
 
30
34
  var _reactIntlNext = require("react-intl-next");
@@ -35,14 +39,6 @@ var _codeViewer = require("@atlaskit/media-ui/codeViewer");
35
39
 
36
40
  var _domain = require("./domain");
37
41
 
38
- var _image = require("./viewers/image");
39
-
40
- var _video = require("./viewers/video");
41
-
42
- var _doc = require("./viewers/doc");
43
-
44
- var _codeViewer2 = require("./viewers/codeViewer");
45
-
46
42
  var _loading = require("./loading");
47
43
 
48
44
  var _deepEqual = _interopRequireDefault(require("deep-equal"));
@@ -61,16 +57,81 @@ var _loadSucceeded = require("./analytics/events/operational/loadSucceeded");
61
57
 
62
58
  var _analytics = require("./analytics");
63
59
 
64
- var _audio = require("./viewers/audio");
65
-
66
60
  var _interactiveImg = require("./viewers/image/interactive-img");
67
61
 
68
62
  var _archiveViewerLoader = _interopRequireDefault(require("./viewers/archiveSidebar/archiveViewerLoader"));
69
63
 
64
+ var _ufoExperiences = require("./analytics/ufoExperiences");
65
+
70
66
  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); }; }
71
67
 
72
68
  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; } }
73
69
 
70
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
71
+
72
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
73
+
74
+ var ImageViewer = (0, _reactLoadable.default)({
75
+ loader: function loader() {
76
+ return Promise.resolve().then(function () {
77
+ return _interopRequireWildcard(require('./viewers/image'));
78
+ }).then(function (mod) {
79
+ return mod.ImageViewer;
80
+ });
81
+ },
82
+ loading: function loading() {
83
+ return /*#__PURE__*/_react.default.createElement(_loading.Spinner, null);
84
+ }
85
+ });
86
+ var VideoViewer = (0, _reactLoadable.default)({
87
+ loader: function loader() {
88
+ return Promise.resolve().then(function () {
89
+ return _interopRequireWildcard(require('./viewers/video'));
90
+ }).then(function (mod) {
91
+ return mod.VideoViewer;
92
+ });
93
+ },
94
+ loading: function loading() {
95
+ return /*#__PURE__*/_react.default.createElement(_loading.Spinner, null);
96
+ }
97
+ });
98
+ var AudioViewer = (0, _reactLoadable.default)({
99
+ loader: function loader() {
100
+ return Promise.resolve().then(function () {
101
+ return _interopRequireWildcard(require('./viewers/audio'));
102
+ }).then(function (mod) {
103
+ return mod.AudioViewer;
104
+ });
105
+ },
106
+ loading: function loading() {
107
+ return /*#__PURE__*/_react.default.createElement(_loading.Spinner, null);
108
+ }
109
+ });
110
+ var DocViewer = (0, _reactLoadable.default)({
111
+ loader: function loader() {
112
+ return Promise.resolve().then(function () {
113
+ return _interopRequireWildcard(require('./viewers/doc'));
114
+ }).then(function (mod) {
115
+ return mod.DocViewer;
116
+ });
117
+ },
118
+ loading: function loading() {
119
+ return /*#__PURE__*/_react.default.createElement(_loading.Spinner, null);
120
+ }
121
+ });
122
+ var CodeViewer = (0, _reactLoadable.default)({
123
+ loader: function loader() {
124
+ return Promise.resolve().then(function () {
125
+ return _interopRequireWildcard(require('./viewers/codeViewer'));
126
+ }).then(function (mod) {
127
+ return mod.CodeViewer;
128
+ });
129
+ },
130
+ loading: function loading() {
131
+ return /*#__PURE__*/_react.default.createElement(_loading.Spinner, null);
132
+ }
133
+ });
134
+
74
135
  var isExternalImageItem = function isExternalImageItem(fileItem) {
75
136
  return fileItem === 'external-image';
76
137
  };
@@ -108,6 +169,7 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
108
169
  if (isFileStateItem(fileItem)) {
109
170
  var fileAttributes = (0, _analytics.getFileAttributes)(fileItem);
110
171
  (0, _analytics.fireAnalytics)((0, _loadSucceeded.createLoadSucceededEvent)(fileAttributes), _this.props);
172
+ (0, _ufoExperiences.succeedMediaFileUfoExperience)(fileAttributes);
111
173
  }
112
174
  });
113
175
  });
@@ -120,6 +182,9 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
120
182
  (0, _analytics.fireAnalytics)((0, _loadSucceeded.createLoadSucceededEvent)({
121
183
  fileId: 'external-image'
122
184
  }), _this.props);
185
+ (0, _ufoExperiences.succeedMediaFileUfoExperience)({
186
+ fileId: 'external-image'
187
+ });
123
188
  });
124
189
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onExternalImgError", function () {
125
190
  _this.setState({
@@ -174,7 +239,7 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
174
239
  };
175
240
 
176
241
  if ((0, _codeViewer.isCodeViewerItem)(fileState.name)) {
177
- return /*#__PURE__*/_react.default.createElement(_codeViewer2.CodeViewer, (0, _extends2.default)({
242
+ return /*#__PURE__*/_react.default.createElement(CodeViewer, (0, _extends2.default)({
178
243
  onSuccess: this.onSuccess,
179
244
  onError: this.onLoadFail
180
245
  }, viewerProps));
@@ -182,28 +247,28 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
182
247
 
183
248
  switch (fileState.mediaType) {
184
249
  case 'image':
185
- return /*#__PURE__*/_react.default.createElement(_image.ImageViewer, (0, _extends2.default)({
250
+ return /*#__PURE__*/_react.default.createElement(ImageViewer, (0, _extends2.default)({
186
251
  onLoad: this.onSuccess,
187
252
  onError: this.onLoadFail,
188
253
  contextId: contextId
189
254
  }, viewerProps));
190
255
 
191
256
  case 'audio':
192
- return /*#__PURE__*/_react.default.createElement(_audio.AudioViewer, (0, _extends2.default)({
257
+ return /*#__PURE__*/_react.default.createElement(AudioViewer, (0, _extends2.default)({
193
258
  showControls: showControls,
194
259
  onCanPlay: this.onSuccess,
195
260
  onError: this.onLoadFail
196
261
  }, viewerProps));
197
262
 
198
263
  case 'video':
199
- return /*#__PURE__*/_react.default.createElement(_video.VideoViewer, (0, _extends2.default)({
264
+ return /*#__PURE__*/_react.default.createElement(VideoViewer, (0, _extends2.default)({
200
265
  showControls: showControls,
201
266
  onCanPlay: this.onSuccess,
202
267
  onError: this.onLoadFail
203
268
  }, viewerProps));
204
269
 
205
270
  case 'doc':
206
- return /*#__PURE__*/_react.default.createElement(_doc.DocViewer, (0, _extends2.default)({
271
+ return /*#__PURE__*/_react.default.createElement(DocViewer, (0, _extends2.default)({
207
272
  onSuccess: this.onSuccess,
208
273
  onError: this.onLoadFail
209
274
  }, viewerProps));
@@ -326,6 +391,7 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
326
391
 
327
392
  var id = identifier.id;
328
393
  (0, _analytics.fireAnalytics)((0, _commenced.createCommencedEvent)(id), this.props);
394
+ (0, _ufoExperiences.startMediaFileUfoExperience)();
329
395
  this.subscription = mediaClient.file.getFileState(id, {
330
396
  collectionName: identifier.collectionName
331
397
  }).subscribe({
@@ -176,7 +176,7 @@ var Audio = _styledComponents.default.audio(_templateObject33 || (_templateObjec
176
176
 
177
177
  exports.Audio = Audio;
178
178
 
179
- var AudioCover = _styledComponents.default.img(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n background-color: #000000;\n"])));
179
+ var AudioCover = _styledComponents.default.img(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n background-color: #000;\n"])));
180
180
 
181
181
  exports.AudioCover = AudioCover;
182
182
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "46.1.0",
3
+ "version": "46.2.0",
4
4
  "sideEffects": false
5
5
  }
@@ -63,11 +63,11 @@ var Separator = _styledComponents.default.div(_templateObject10 || (_templateObj
63
63
 
64
64
  exports.Separator = Separator;
65
65
 
66
- var SidebarHeaderWrapper = _styledComponents.default.span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n display: flex\n align-items: center\n flex-shrink: 0,\n"])));
66
+ var SidebarHeaderWrapper = _styledComponents.default.span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n flex-shrink: 0;\n"])));
67
67
 
68
68
  exports.SidebarHeaderWrapper = SidebarHeaderWrapper;
69
69
 
70
- var SidebarHeaderIcon = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n display: flex\n align-items: center\n margin-right: 10px;\n flex-shrink: 0\n"])));
70
+ var SidebarHeaderIcon = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n margin-right: 10px;\n flex-shrink: 0;\n"])));
71
71
 
72
72
  exports.SidebarHeaderIcon = SidebarHeaderIcon;
73
73
 
@@ -0,0 +1,40 @@
1
+ import { UFOExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
2
+ import { name as packageName, version as packageVersion } from '../version.json';
3
+ let ufoExperience;
4
+
5
+ const getExperience = () => {
6
+ if (!ufoExperience) {
7
+ const inlineExperience = {
8
+ platform: {
9
+ component: 'media-viewer'
10
+ },
11
+ type: ExperienceTypes.Experience,
12
+ performanceType: ExperiencePerformanceTypes.InlineResult
13
+ };
14
+ ufoExperience = new UFOExperience('media-file', inlineExperience);
15
+ }
16
+
17
+ return ufoExperience;
18
+ };
19
+
20
+ export const startMediaFileUfoExperience = () => {
21
+ getExperience().start();
22
+ };
23
+ export const succeedMediaFileUfoExperience = properties => {
24
+ getExperience().success({
25
+ metadata: {
26
+ fileAttributes: properties,
27
+ packageName,
28
+ packageVersion
29
+ }
30
+ });
31
+ };
32
+ export const failMediaFileUfoExperience = properties => {
33
+ const refinedMetadata = { ...properties,
34
+ packageName,
35
+ packageVersion
36
+ };
37
+ getExperience().failure({
38
+ metadata: refinedMetadata
39
+ });
40
+ };
@@ -8,6 +8,7 @@ import { fireAnalytics } from './analytics';
8
8
  import { getPrimaryErrorReason, getSecondaryErrorReason } from './errors';
9
9
  import { createLoadFailedEvent } from './analytics/events/operational/loadFailed';
10
10
  import { createPreviewUnsupportedEvent } from './analytics/events/operational/previewUnsupported';
11
+ import { failMediaFileUfoExperience } from './analytics/ufoExperiences';
11
12
 
12
13
  const errorLoadingFileImage = formatMessage => /*#__PURE__*/React.createElement(ErrorImage, {
13
14
  src: errorLoadingFile,
@@ -54,6 +55,15 @@ export class ErrorMessage extends React.Component {
54
55
  if (supressAnalytics !== true) {
55
56
  const payload = ErrorMessage.getEventPayload(error, fileId, fileState);
56
57
  fireAnalytics(payload, props);
58
+ const rawPayload = { ...(payload === null || payload === void 0 ? void 0 : payload.attributes)
59
+ };
60
+
61
+ if (Object.keys(rawPayload).includes('status')) {
62
+ delete rawPayload['status'];
63
+ }
64
+
65
+ const failMediaFileUfoExperiencePayload = rawPayload;
66
+ failMediaFileUfoExperience(failMediaFileUfoExperiencePayload);
57
67
  }
58
68
  }
59
69
 
@@ -1,15 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import React from 'react';
4
+ import Loadable from 'react-loadable';
4
5
  import { isExternalImageIdentifier, isFileIdentifier } from '@atlaskit/media-client';
5
6
  import { FormattedMessage } from 'react-intl-next';
6
7
  import { messages } from '@atlaskit/media-ui';
7
8
  import { isCodeViewerItem } from '@atlaskit/media-ui/codeViewer';
8
9
  import { Outcome } from './domain';
9
- import { ImageViewer } from './viewers/image';
10
- import { VideoViewer } from './viewers/video';
11
- import { DocViewer } from './viewers/doc';
12
- import { CodeViewer } from './viewers/codeViewer';
13
10
  import { Spinner } from './loading';
14
11
  import deepEqual from 'deep-equal';
15
12
  import ErrorMessage from './errorMessage';
@@ -19,9 +16,29 @@ import { withAnalyticsEvents } from '@atlaskit/analytics-next';
19
16
  import { createCommencedEvent } from './analytics/events/operational/commenced';
20
17
  import { createLoadSucceededEvent } from './analytics/events/operational/loadSucceeded';
21
18
  import { fireAnalytics, getFileAttributes } from './analytics';
22
- import { AudioViewer } from './viewers/audio';
23
19
  import { InteractiveImg } from './viewers/image/interactive-img';
24
20
  import ArchiveViewerLoader from './viewers/archiveSidebar/archiveViewerLoader';
21
+ import { startMediaFileUfoExperience, succeedMediaFileUfoExperience } from './analytics/ufoExperiences';
22
+ const ImageViewer = Loadable({
23
+ loader: () => import('./viewers/image').then(mod => mod.ImageViewer),
24
+ loading: () => /*#__PURE__*/React.createElement(Spinner, null)
25
+ });
26
+ const VideoViewer = Loadable({
27
+ loader: () => import('./viewers/video').then(mod => mod.VideoViewer),
28
+ loading: () => /*#__PURE__*/React.createElement(Spinner, null)
29
+ });
30
+ const AudioViewer = Loadable({
31
+ loader: () => import('./viewers/audio').then(mod => mod.AudioViewer),
32
+ loading: () => /*#__PURE__*/React.createElement(Spinner, null)
33
+ });
34
+ const DocViewer = Loadable({
35
+ loader: () => import('./viewers/doc').then(mod => mod.DocViewer),
36
+ loading: () => /*#__PURE__*/React.createElement(Spinner, null)
37
+ });
38
+ const CodeViewer = Loadable({
39
+ loader: () => import('./viewers/codeViewer').then(mod => mod.CodeViewer),
40
+ loading: () => /*#__PURE__*/React.createElement(Spinner, null)
41
+ });
25
42
  export const isExternalImageItem = fileItem => fileItem === 'external-image';
26
43
  export const isFileStateItem = fileItem => !isExternalImageItem(fileItem);
27
44
  const initialState = {
@@ -41,6 +58,7 @@ export class ItemViewerBase extends React.Component {
41
58
  if (isFileStateItem(fileItem)) {
42
59
  const fileAttributes = getFileAttributes(fileItem);
43
60
  fireAnalytics(createLoadSucceededEvent(fileAttributes), this.props);
61
+ succeedMediaFileUfoExperience(fileAttributes);
44
62
  }
45
63
  });
46
64
  });
@@ -55,6 +73,9 @@ export class ItemViewerBase extends React.Component {
55
73
  fireAnalytics(createLoadSucceededEvent({
56
74
  fileId: 'external-image'
57
75
  }), this.props);
76
+ succeedMediaFileUfoExperience({
77
+ fileId: 'external-image'
78
+ });
58
79
  });
59
80
 
60
81
  _defineProperty(this, "onExternalImgError", () => {
@@ -256,6 +277,7 @@ export class ItemViewerBase extends React.Component {
256
277
  id
257
278
  } = identifier;
258
279
  fireAnalytics(createCommencedEvent(id), this.props);
280
+ startMediaFileUfoExperience();
259
281
  this.subscription = mediaClient.file.getFileState(id, {
260
282
  collectionName: identifier.collectionName
261
283
  }).subscribe({
@@ -266,7 +266,7 @@ export const AudioCover = styled.img`
266
266
  width: 100%;
267
267
  height: 100%;
268
268
  object-fit: scale-down;
269
- background-color: #000000;
269
+ background-color: #000;
270
270
  `;
271
271
  export const DefaultCoverWrapper = styled.div`
272
272
  width: 100%;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "46.1.0",
3
+ "version": "46.2.0",
4
4
  "sideEffects": false
5
5
  }
@@ -80,15 +80,15 @@ export const Separator = styled.div`
80
80
  flex-shrink: 0;
81
81
  `;
82
82
  export const SidebarHeaderWrapper = styled.span`
83
- display: flex
84
- align-items: center
85
- flex-shrink: 0,
83
+ display: flex;
84
+ align-items: center;
85
+ flex-shrink: 0;
86
86
  `;
87
87
  export const SidebarHeaderIcon = styled.div`
88
- display: flex
89
- align-items: center
88
+ display: flex;
89
+ align-items: center;
90
90
  margin-right: 10px;
91
- flex-shrink: 0
91
+ flex-shrink: 0;
92
92
  `;
93
93
  export const SidebarHeaderEntry = styled.div`
94
94
  flex: 1 1 auto;
@@ -0,0 +1,47 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ import { UFOExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
8
+ import { name as packageName, version as packageVersion } from '../version.json';
9
+ var ufoExperience;
10
+
11
+ var getExperience = function getExperience() {
12
+ if (!ufoExperience) {
13
+ var inlineExperience = {
14
+ platform: {
15
+ component: 'media-viewer'
16
+ },
17
+ type: ExperienceTypes.Experience,
18
+ performanceType: ExperiencePerformanceTypes.InlineResult
19
+ };
20
+ ufoExperience = new UFOExperience('media-file', inlineExperience);
21
+ }
22
+
23
+ return ufoExperience;
24
+ };
25
+
26
+ export var startMediaFileUfoExperience = function startMediaFileUfoExperience() {
27
+ getExperience().start();
28
+ };
29
+ export var succeedMediaFileUfoExperience = function succeedMediaFileUfoExperience(properties) {
30
+ getExperience().success({
31
+ metadata: {
32
+ fileAttributes: properties,
33
+ packageName: packageName,
34
+ packageVersion: packageVersion
35
+ }
36
+ });
37
+ };
38
+ export var failMediaFileUfoExperience = function failMediaFileUfoExperience(properties) {
39
+ var refinedMetadata = _objectSpread(_objectSpread({}, properties), {}, {
40
+ packageName: packageName,
41
+ packageVersion: packageVersion
42
+ });
43
+
44
+ getExperience().failure({
45
+ metadata: refinedMetadata
46
+ });
47
+ };
@@ -1,9 +1,14 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _inherits from "@babel/runtime/helpers/inherits";
4
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
7
 
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+
7
12
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
13
 
9
14
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -18,6 +23,7 @@ import { fireAnalytics } from './analytics';
18
23
  import { getPrimaryErrorReason, getSecondaryErrorReason } from './errors';
19
24
  import { createLoadFailedEvent } from './analytics/events/operational/loadFailed';
20
25
  import { createPreviewUnsupportedEvent } from './analytics/events/operational/previewUnsupported';
26
+ import { failMediaFileUfoExperience } from './analytics/ufoExperiences';
21
27
 
22
28
  var errorLoadingFileImage = function errorLoadingFileImage(formatMessage) {
23
29
  return /*#__PURE__*/React.createElement(ErrorImage, {
@@ -74,6 +80,15 @@ export var ErrorMessage = /*#__PURE__*/function (_React$Component) {
74
80
  if (supressAnalytics !== true) {
75
81
  var payload = ErrorMessage.getEventPayload(error, fileId, fileState);
76
82
  fireAnalytics(payload, props);
83
+
84
+ var rawPayload = _objectSpread({}, payload === null || payload === void 0 ? void 0 : payload.attributes);
85
+
86
+ if (Object.keys(rawPayload).includes('status')) {
87
+ delete rawPayload['status'];
88
+ }
89
+
90
+ var failMediaFileUfoExperiencePayload = rawPayload;
91
+ failMediaFileUfoExperience(failMediaFileUfoExperiencePayload);
77
92
  }
78
93
  }
79
94
  }, {
@@ -12,15 +12,12 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
12
12
  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; } }
13
13
 
14
14
  import React from 'react';
15
+ import Loadable from 'react-loadable';
15
16
  import { isExternalImageIdentifier, isFileIdentifier } from '@atlaskit/media-client';
16
17
  import { FormattedMessage } from 'react-intl-next';
17
18
  import { messages } from '@atlaskit/media-ui';
18
19
  import { isCodeViewerItem } from '@atlaskit/media-ui/codeViewer';
19
20
  import { Outcome } from './domain';
20
- import { ImageViewer } from './viewers/image';
21
- import { VideoViewer } from './viewers/video';
22
- import { DocViewer } from './viewers/doc';
23
- import { CodeViewer } from './viewers/codeViewer';
24
21
  import { Spinner } from './loading';
25
22
  import deepEqual from 'deep-equal';
26
23
  import ErrorMessage from './errorMessage';
@@ -30,9 +27,59 @@ import { withAnalyticsEvents } from '@atlaskit/analytics-next';
30
27
  import { createCommencedEvent } from './analytics/events/operational/commenced';
31
28
  import { createLoadSucceededEvent } from './analytics/events/operational/loadSucceeded';
32
29
  import { fireAnalytics, getFileAttributes } from './analytics';
33
- import { AudioViewer } from './viewers/audio';
34
30
  import { InteractiveImg } from './viewers/image/interactive-img';
35
31
  import ArchiveViewerLoader from './viewers/archiveSidebar/archiveViewerLoader';
32
+ import { startMediaFileUfoExperience, succeedMediaFileUfoExperience } from './analytics/ufoExperiences';
33
+ var ImageViewer = Loadable({
34
+ loader: function loader() {
35
+ return import('./viewers/image').then(function (mod) {
36
+ return mod.ImageViewer;
37
+ });
38
+ },
39
+ loading: function loading() {
40
+ return /*#__PURE__*/React.createElement(Spinner, null);
41
+ }
42
+ });
43
+ var VideoViewer = Loadable({
44
+ loader: function loader() {
45
+ return import('./viewers/video').then(function (mod) {
46
+ return mod.VideoViewer;
47
+ });
48
+ },
49
+ loading: function loading() {
50
+ return /*#__PURE__*/React.createElement(Spinner, null);
51
+ }
52
+ });
53
+ var AudioViewer = Loadable({
54
+ loader: function loader() {
55
+ return import('./viewers/audio').then(function (mod) {
56
+ return mod.AudioViewer;
57
+ });
58
+ },
59
+ loading: function loading() {
60
+ return /*#__PURE__*/React.createElement(Spinner, null);
61
+ }
62
+ });
63
+ var DocViewer = Loadable({
64
+ loader: function loader() {
65
+ return import('./viewers/doc').then(function (mod) {
66
+ return mod.DocViewer;
67
+ });
68
+ },
69
+ loading: function loading() {
70
+ return /*#__PURE__*/React.createElement(Spinner, null);
71
+ }
72
+ });
73
+ var CodeViewer = Loadable({
74
+ loader: function loader() {
75
+ return import('./viewers/codeViewer').then(function (mod) {
76
+ return mod.CodeViewer;
77
+ });
78
+ },
79
+ loading: function loading() {
80
+ return /*#__PURE__*/React.createElement(Spinner, null);
81
+ }
82
+ });
36
83
  export var isExternalImageItem = function isExternalImageItem(fileItem) {
37
84
  return fileItem === 'external-image';
38
85
  };
@@ -66,6 +113,7 @@ export var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
66
113
  if (isFileStateItem(fileItem)) {
67
114
  var fileAttributes = getFileAttributes(fileItem);
68
115
  fireAnalytics(createLoadSucceededEvent(fileAttributes), _this.props);
116
+ succeedMediaFileUfoExperience(fileAttributes);
69
117
  }
70
118
  });
71
119
  });
@@ -80,6 +128,9 @@ export var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
80
128
  fireAnalytics(createLoadSucceededEvent({
81
129
  fileId: 'external-image'
82
130
  }), _this.props);
131
+ succeedMediaFileUfoExperience({
132
+ fileId: 'external-image'
133
+ });
83
134
  });
84
135
 
85
136
  _defineProperty(_assertThisInitialized(_this), "onExternalImgError", function () {
@@ -288,6 +339,7 @@ export var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
288
339
 
289
340
  var id = identifier.id;
290
341
  fireAnalytics(createCommencedEvent(id), this.props);
342
+ startMediaFileUfoExperience();
291
343
  this.subscription = mediaClient.file.getFileState(id, {
292
344
  collectionName: identifier.collectionName
293
345
  }).subscribe({
@@ -66,7 +66,7 @@ export var CustomAudioPlayerWrapper = styled.div(_templateObject31 || (_template
66
66
  export var AudioPlayer = styled.div(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["\n background-color: ", ";\n border-radius: ", ";\n align-items: center;\n justify-content: center;\n width: 400px;\n height: 400px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n"])), blanketColor, borderRadius());
67
67
  AudioPlayer.displayName = 'AudioPlayer';
68
68
  export var Audio = styled.audio(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n"])));
69
- export var AudioCover = styled.img(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n background-color: #000000;\n"])));
69
+ export var AudioCover = styled.img(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n background-color: #000;\n"])));
70
70
  export var DefaultCoverWrapper = styled.div(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n > * {\n transform: scale(2);\n }\n"])));
71
71
  export var DownloadButtonWrapper = styled.div(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["\n margin-top: 28px;\n text-align: center;\n\n button {\n font-weight: bold;\n }\n"])));
72
72
  export var CustomVideoPlayerWrapper = styled.div(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["\n video {\n flex: 1;\n width: 100vw;\n height: 100vh;\n max-height: 100vh;\n }\n"])));
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "46.1.0",
3
+ "version": "46.2.0",
4
4
  "sideEffects": false
5
5
  }
@@ -16,8 +16,8 @@ export var ArchiveSidebarFileEntryWrapper = styled.div(_templateObject7 || (_tem
16
16
  export var ArchiveLayout = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
17
17
  export var ArchiveViewerWrapper = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: ", "px;\n right: 0;\n bottom: 0;\n align-items: center;\n display: flex;\n"])), ArchiveSideBarWidth);
18
18
  export var Separator = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n border-radius: 1px;\n height: 2px;\n margin: ", "px 0;\n background-color: rgb(36, 50, 76);\n flex-shrink: 0;\n"])), (gridSize() * 5 - 2) / 2);
19
- export var SidebarHeaderWrapper = styled.span(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex\n align-items: center\n flex-shrink: 0,\n"])));
20
- export var SidebarHeaderIcon = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex\n align-items: center\n margin-right: 10px;\n flex-shrink: 0\n"])));
19
+ export var SidebarHeaderWrapper = styled.span(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n flex-shrink: 0;\n"])));
20
+ export var SidebarHeaderIcon = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n margin-right: 10px;\n flex-shrink: 0;\n"])));
21
21
  export var SidebarHeaderEntry = styled.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.14286;\n color: ", ";\n"])), DN500);
22
22
  /** TODO Replace background colors of item with theme from @atlaskit/tokens once ready*/
23
23
 
@@ -0,0 +1,13 @@
1
+ import { FileAttributes } from '@atlaskit/media-common';
2
+ import { RequestMetadata } from '@atlaskit/media-client';
3
+ import { PrimaryErrorReason } from '../errors';
4
+ export declare type UFOFailedEventPayload = {
5
+ failReason?: PrimaryErrorReason;
6
+ error?: string;
7
+ errorDetail?: string;
8
+ request?: RequestMetadata;
9
+ fileAttributes: FileAttributes;
10
+ };
11
+ export declare const startMediaFileUfoExperience: () => void;
12
+ export declare const succeedMediaFileUfoExperience: (properties?: FileAttributes | undefined) => void;
13
+ export declare const failMediaFileUfoExperience: (properties?: UFOFailedEventPayload | undefined) => void;
@@ -38,4 +38,4 @@ export declare class ItemViewerBase extends React.Component<Props, State> {
38
38
  private needsReset;
39
39
  private release;
40
40
  }
41
- export declare const ItemViewer: React.ForwardRefExoticComponent<Pick<Props, "onClose" | "mediaClient" | "identifier" | "contextId" | "previewCount" | "showControls" | "featureFlags"> & React.RefAttributes<any>>;
41
+ export declare const ItemViewer: React.ForwardRefExoticComponent<Pick<Props, "mediaClient" | "identifier" | "onClose" | "featureFlags" | "showControls" | "contextId" | "previewCount"> & React.RefAttributes<any>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "46.1.0",
3
+ "version": "46.2.0",
4
4
  "description": "MediaViewer is Atlassian's powerful solution for viewing files on the web. It's both powerful and extendable yet easy-to-integrate",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -32,33 +32,34 @@
32
32
  "@atlaskit/code": "^14.3.0",
33
33
  "@atlaskit/icon": "^21.10.0",
34
34
  "@atlaskit/icon-file-type": "^6.3.0",
35
- "@atlaskit/media-client": "^14.4.0",
35
+ "@atlaskit/media-client": "^15.0.0",
36
36
  "@atlaskit/media-common": "^2.11.0",
37
- "@atlaskit/media-ui": "^20.0.0",
37
+ "@atlaskit/media-ui": "^21.0.0",
38
38
  "@atlaskit/side-navigation": "^1.2.3",
39
39
  "@atlaskit/spinner": "^15.0.0",
40
40
  "@atlaskit/theme": "^12.1.0",
41
+ "@atlaskit/ufo": "^0.1.0",
41
42
  "@babel/runtime": "^7.0.0",
42
43
  "@kenjiuno/msgreader": "^1.2.6",
43
44
  "deep-equal": "^1.0.1",
44
45
  "mime": "^2.4.6",
45
46
  "pdfjs-dist": "2.0.943",
46
47
  "perf-marks": "^1.5.0",
48
+ "react-loadable": "^5.1.0",
47
49
  "unzipit": "^1.3.0"
48
50
  },
49
51
  "peerDependencies": {
50
52
  "react": "^16.8.0",
51
53
  "react-intl-next": "npm:react-intl@^5.18.1",
52
- "rxjs": "^5.5.0",
53
54
  "styled-components": "^3.2.6"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@atlaskit/button": "^16.2.0",
57
58
  "@atlaskit/docs": "*",
58
- "@atlaskit/media-card": "^73.3.0",
59
- "@atlaskit/media-core": "^32.2.0",
59
+ "@atlaskit/media-card": "^73.4.0",
60
+ "@atlaskit/media-core": "^32.3.0",
60
61
  "@atlaskit/media-integration-test-helpers": "^2.5.0",
61
- "@atlaskit/media-test-helpers": "^29.2.0",
62
+ "@atlaskit/media-test-helpers": "^29.3.0",
62
63
  "@atlaskit/modal-dialog": "^12.2.0",
63
64
  "@atlaskit/ssr": "*",
64
65
  "@atlaskit/visual-regression": "*",
@@ -67,11 +68,13 @@
67
68
  "@types/deep-equal": "^1.0.1",
68
69
  "@types/enzyme": "^3.1.15",
69
70
  "@types/mime": "^2.0.1",
71
+ "@types/react-loadable": "^5.4.1",
70
72
  "enzyme": "^3.10.0",
71
73
  "exenv": "^1.2.2",
72
74
  "jsverify": "^0.8.3",
73
75
  "react-dom": "^16.8.0",
74
76
  "react-intl-next": "npm:react-intl@^5.18.1",
77
+ "rxjs": "^5.5.0",
75
78
  "typescript": "3.9.6",
76
79
  "wait-for-expect": "^1.2.0"
77
80
  },