@atlaskit/media-viewer 46.1.0 → 46.2.2
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 +103 -0
- package/dist/cjs/analytics/ufoExperiences.js +66 -0
- package/dist/cjs/errorMessage.js +17 -0
- package/dist/cjs/header.js +2 -2
- package/dist/cjs/item-viewer.js +82 -16
- package/dist/cjs/media-viewer.js +8 -1
- package/dist/cjs/styled.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/viewers/archiveSidebar/styled.js +2 -2
- package/dist/cjs/viewers/codeViewer/index.js +1 -1
- package/dist/es2019/analytics/ufoExperiences.js +40 -0
- package/dist/es2019/errorMessage.js +10 -0
- package/dist/es2019/header.js +2 -2
- package/dist/es2019/item-viewer.js +28 -6
- package/dist/es2019/media-viewer.js +9 -2
- package/dist/es2019/styled.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/viewers/archiveSidebar/styled.js +6 -6
- package/dist/es2019/viewers/codeViewer/index.js +1 -1
- package/dist/esm/analytics/ufoExperiences.js +47 -0
- package/dist/esm/errorMessage.js +15 -0
- package/dist/esm/header.js +2 -2
- package/dist/esm/item-viewer.js +58 -6
- package/dist/esm/media-viewer.js +9 -2
- package/dist/esm/styled.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/viewers/archiveSidebar/styled.js +2 -2
- package/dist/esm/viewers/codeViewer/index.js +1 -1
- package/dist/types/analytics/events/operational/loadFailed.d.ts +2 -1
- package/dist/types/analytics/events/ui/navigated.d.ts +1 -1
- package/dist/types/analytics/ufoExperiences.d.ts +13 -0
- package/dist/types/errorMessage.d.ts +5 -2
- package/dist/types/item-viewer.d.ts +1 -1
- package/dist/types/navigation.d.ts +1 -1
- package/dist/types/styled.d.ts +37 -37
- package/dist/types/viewers/archiveSidebar/archive.d.ts +1 -1
- package/dist/types/viewers/archiveSidebar/styled.d.ts +12 -12
- package/dist/types/viewers/codeViewer/styled.d.ts +2 -2
- package/dist/types/viewers/image/interactive-img.d.ts +1 -1
- package/package.json +16 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,108 @@
|
|
|
1
1
|
# @atlaskit/media-viewer
|
|
2
2
|
|
|
3
|
+
## 46.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
|
|
10
|
+
## 46.2.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`a44c7c42fa7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a44c7c42fa7) - Added payload publisher wrapper for logging ufo events in examples
|
|
15
|
+
- [`5a79ea6f7d6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5a79ea6f7d6) - Add support for assessing the mimetype of a file when deciding what viewer to show
|
|
16
|
+
- [`065ae19cb44`](https://bitbucket.org/atlassian/atlassian-frontend/commits/065ae19cb44) - Enforced "up to date" logged feature flags via type checks
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
19
|
+
## 46.2.0
|
|
20
|
+
|
|
21
|
+
### Minor Changes
|
|
22
|
+
|
|
23
|
+
- [`60136fd1e34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/60136fd1e34) - Replicate Media Viewer Reliability Events using UFO client library
|
|
24
|
+
- [`f862d5ae7aa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f862d5ae7aa) - remove RxJs peer dependency
|
|
25
|
+
- [`dea110be493`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dea110be493) - [ux] MEX-1334 Implemented code splitting in media-viewer
|
|
26
|
+
- [`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).
|
|
27
|
+
It exposes subscribe method that is called with MediaObserver as an argument and returns MediaSubscription.
|
|
28
|
+
MediaSubscription exposes unsubscribe method.
|
|
29
|
+
|
|
30
|
+
getFileState:
|
|
31
|
+
The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
|
|
35
|
+
|
|
36
|
+
const mediaClient = new MediaClient({ authProvider });
|
|
37
|
+
|
|
38
|
+
const fileStateSubscribable: MediaSubscribable<FileState> = mediaClient.file.getFileState(id);
|
|
39
|
+
|
|
40
|
+
const mediaObserver: MediaObserver<FileState> = {
|
|
41
|
+
next: (fileState) => {
|
|
42
|
+
nextCallback(fileState)
|
|
43
|
+
},
|
|
44
|
+
error: (error) => {
|
|
45
|
+
errorCallback(error)
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const subscription: MediaSubscription = fileStateSubscribable.subscribe(mediaObserver);
|
|
50
|
+
|
|
51
|
+
subscription.unsubscribe();
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
upload:
|
|
55
|
+
The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
|
|
59
|
+
|
|
60
|
+
const mediaClient = new MediaClient({ authProvider });
|
|
61
|
+
|
|
62
|
+
const uploadFileSubscribable: MediaSubscribable<FileState> = mediaClient.file.upload(uploadableFile);
|
|
63
|
+
|
|
64
|
+
const mediaObserver: MediaObserver<FileState> = {
|
|
65
|
+
next: (fileState) => {
|
|
66
|
+
nextCallback(fileState)
|
|
67
|
+
},
|
|
68
|
+
error: (error) => {
|
|
69
|
+
errorCallback(error)
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const subscription: MediaSubscription = uploadFileSubscribable.subscribe(mediaObserver);
|
|
74
|
+
|
|
75
|
+
subscription.unsubscribe();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
getItems:
|
|
79
|
+
The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
|
|
83
|
+
|
|
84
|
+
const mediaClient = new MediaClient({ authProvider });
|
|
85
|
+
|
|
86
|
+
const collectionItemsSubscribable: MediaSubscribable<MediaCollectionItem[]> = mediaClient.collection.getItems(collectionName);
|
|
87
|
+
|
|
88
|
+
const mediaObserver: MediaObserver<MediaCollectionItem[]> = {
|
|
89
|
+
next: (items) => {
|
|
90
|
+
nextCallback(items)
|
|
91
|
+
},
|
|
92
|
+
error: (error) => {
|
|
93
|
+
errorCallback(error)
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const subscription: MediaSubscription = collectionItemsSubscribable.subscribe(mediaObserver);
|
|
98
|
+
|
|
99
|
+
subscription.unsubscribe();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Patch Changes
|
|
103
|
+
|
|
104
|
+
- Updated dependencies
|
|
105
|
+
|
|
3
106
|
## 46.1.0
|
|
4
107
|
|
|
5
108
|
### 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;
|
package/dist/cjs/errorMessage.js
CHANGED
|
@@ -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
|
}, {
|
package/dist/cjs/header.js
CHANGED
|
@@ -117,10 +117,10 @@ var Header = /*#__PURE__*/function (_React$Component) {
|
|
|
117
117
|
});
|
|
118
118
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFileTypeText", function (item) {
|
|
119
119
|
// render appropriate header if its a code/email item and the feature flag is enabled
|
|
120
|
-
if ((0, _codeViewer.isCodeViewerItem)(item.name)) {
|
|
120
|
+
if ((0, _codeViewer.isCodeViewerItem)(item.name, item.mimeType)) {
|
|
121
121
|
// gather language and extension
|
|
122
122
|
// i.e test.py would have a language of 'python' and an extension of 'py'
|
|
123
|
-
var language = (0, _codeViewer.getLanguageType)(item.name);
|
|
123
|
+
var language = (0, _codeViewer.getLanguageType)(item.name, item.mimeType);
|
|
124
124
|
var ext = (0, _codeViewer.getExtension)(item.name); // specific cases for if we want a certain word translated in other languages
|
|
125
125
|
|
|
126
126
|
switch (ext) {
|
package/dist/cjs/item-viewer.js
CHANGED
|
@@ -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({
|
|
@@ -173,8 +238,8 @@ var ItemViewerBase = /*#__PURE__*/function (_React$Component) {
|
|
|
173
238
|
previewCount: previewCount
|
|
174
239
|
};
|
|
175
240
|
|
|
176
|
-
if ((0, _codeViewer.isCodeViewerItem)(fileState.name)) {
|
|
177
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
241
|
+
if ((0, _codeViewer.isCodeViewerItem)(fileState.name, fileState.mimeType)) {
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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({
|
package/dist/cjs/media-viewer.js
CHANGED
|
@@ -212,7 +212,14 @@ var MediaViewer = (0, _mediaCommon.withMediaAnalyticsContext)({
|
|
|
212
212
|
component: _analytics.component,
|
|
213
213
|
componentName: _analytics.componentName
|
|
214
214
|
}, {
|
|
215
|
-
filterFeatureFlags:
|
|
215
|
+
filterFeatureFlags: (0, _mediaCommon.filterFeatureFlagNames)({
|
|
216
|
+
newCardExperience: false,
|
|
217
|
+
captions: false,
|
|
218
|
+
timestampOnVideo: false,
|
|
219
|
+
observedWidth: false,
|
|
220
|
+
mediaInline: false,
|
|
221
|
+
folderUploads: false
|
|
222
|
+
})
|
|
216
223
|
})((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(MediaViewerComponent, {
|
|
217
224
|
enforceContext: false
|
|
218
225
|
})));
|
package/dist/cjs/styled.js
CHANGED
|
@@ -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: #
|
|
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
|
|
package/dist/cjs/version.json
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
|
@@ -225,7 +225,7 @@ var CodeViewer = /*#__PURE__*/function (_BaseViewer) {
|
|
|
225
225
|
key: "getCodeLanguage",
|
|
226
226
|
value: function getCodeLanguage(item) {
|
|
227
227
|
if (!(0, _mediaClient.isErrorFileState)(item)) {
|
|
228
|
-
return (0, _codeViewer.getLanguageType)(item.name);
|
|
228
|
+
return (0, _codeViewer.getLanguageType)(item.name, item.mimeType);
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
return _util.DEFAULT_LANGUAGE;
|
|
@@ -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
|
|
package/dist/es2019/header.js
CHANGED
|
@@ -70,10 +70,10 @@ export class Header extends React.Component {
|
|
|
70
70
|
|
|
71
71
|
_defineProperty(this, "renderFileTypeText", item => {
|
|
72
72
|
// render appropriate header if its a code/email item and the feature flag is enabled
|
|
73
|
-
if (isCodeViewerItem(item.name)) {
|
|
73
|
+
if (isCodeViewerItem(item.name, item.mimeType)) {
|
|
74
74
|
// gather language and extension
|
|
75
75
|
// i.e test.py would have a language of 'python' and an extension of 'py'
|
|
76
|
-
const language = getLanguageType(item.name);
|
|
76
|
+
const language = getLanguageType(item.name, item.mimeType);
|
|
77
77
|
const ext = getExtension(item.name); // specific cases for if we want a certain word translated in other languages
|
|
78
78
|
|
|
79
79
|
switch (ext) {
|
|
@@ -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", () => {
|
|
@@ -103,7 +124,7 @@ export class ItemViewerBase extends React.Component {
|
|
|
103
124
|
previewCount
|
|
104
125
|
};
|
|
105
126
|
|
|
106
|
-
if (isCodeViewerItem(fileState.name)) {
|
|
127
|
+
if (isCodeViewerItem(fileState.name, fileState.mimeType)) {
|
|
107
128
|
return /*#__PURE__*/React.createElement(CodeViewer, _extends({
|
|
108
129
|
onSuccess: this.onSuccess,
|
|
109
130
|
onError: this.onLoadFail
|
|
@@ -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({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { withMediaAnalyticsContext } from '@atlaskit/media-common';
|
|
3
|
+
import { withMediaAnalyticsContext, filterFeatureFlagNames } from '@atlaskit/media-common';
|
|
4
4
|
import { IntlProvider, injectIntl } from 'react-intl-next';
|
|
5
5
|
import { Shortcut } from '@atlaskit/media-ui';
|
|
6
6
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
@@ -172,7 +172,14 @@ export const MediaViewer = withMediaAnalyticsContext({
|
|
|
172
172
|
component,
|
|
173
173
|
componentName
|
|
174
174
|
}, {
|
|
175
|
-
filterFeatureFlags:
|
|
175
|
+
filterFeatureFlags: filterFeatureFlagNames({
|
|
176
|
+
newCardExperience: false,
|
|
177
|
+
captions: false,
|
|
178
|
+
timestampOnVideo: false,
|
|
179
|
+
observedWidth: false,
|
|
180
|
+
mediaInline: false,
|
|
181
|
+
folderUploads: false
|
|
182
|
+
})
|
|
176
183
|
})(withAnalyticsEvents()(injectIntl(MediaViewerComponent, {
|
|
177
184
|
enforceContext: false
|
|
178
185
|
})));
|