@atlaskit/media-viewer 48.0.7 → 48.0.9
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 +12 -0
- package/dist/cjs/analytics/index.js +1 -1
- package/dist/cjs/analytics/ufoExperiences.js +1 -1
- package/dist/cjs/media-viewer.js +21 -4
- package/dist/cjs/styleWrappers.js +14 -3
- package/dist/cjs/viewers/archiveSidebar/styleWrappers.js +3 -2
- package/dist/cjs/viewers/codeViewer/codeViewerRenderer.js +3 -2
- package/dist/es2019/analytics/index.js +1 -1
- package/dist/es2019/analytics/ufoExperiences.js +1 -1
- package/dist/es2019/media-viewer.js +21 -4
- package/dist/es2019/styleWrappers.js +18 -6
- package/dist/es2019/viewers/archiveSidebar/styleWrappers.js +3 -2
- package/dist/es2019/viewers/codeViewer/codeViewerRenderer.js +3 -2
- package/dist/esm/analytics/index.js +1 -1
- package/dist/esm/analytics/ufoExperiences.js +1 -1
- package/dist/esm/media-viewer.js +21 -4
- package/dist/esm/styleWrappers.js +13 -3
- package/dist/esm/viewers/archiveSidebar/styleWrappers.js +3 -2
- package/dist/esm/viewers/codeViewer/codeViewerRenderer.js +3 -2
- package/dist/types/media-viewer.d.ts +1 -0
- package/dist/types/styleWrappers.d.ts +1 -1
- package/dist/types-ts4.5/media-viewer.d.ts +1 -0
- package/dist/types-ts4.5/styleWrappers.d.ts +1 -1
- package/package.json +9 -6
- package/dist/cjs/version.json +0 -5
- package/dist/es2019/version.json +0 -5
- package/dist/esm/version.json +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/media-viewer
|
|
2
2
|
|
|
3
|
+
## 48.0.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 48.0.8
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`5953474fd5f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5953474fd5f) - [ux] [MEX-2514] Prevent the body (i.e. the background) from scrolling when Media Viewer is open to improve the user experience
|
|
14
|
+
|
|
3
15
|
## 48.0.7
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -12,7 +12,7 @@ var componentName = 'mediaViewer';
|
|
|
12
12
|
exports.component = exports.componentName = componentName;
|
|
13
13
|
var packageName = "@atlaskit/media-viewer";
|
|
14
14
|
exports.packageName = packageName;
|
|
15
|
-
var packageVersion = "48.0.
|
|
15
|
+
var packageVersion = "48.0.9";
|
|
16
16
|
exports.packageVersion = packageVersion;
|
|
17
17
|
function getFileAttributes(fileState) {
|
|
18
18
|
if (!fileState) {
|
|
@@ -12,7 +12,7 @@ var _mediaCommon = require("@atlaskit/media-common");
|
|
|
12
12
|
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; }
|
|
13
13
|
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; }
|
|
14
14
|
var packageName = "@atlaskit/media-viewer";
|
|
15
|
-
var packageVersion = "48.0.
|
|
15
|
+
var packageVersion = "48.0.9";
|
|
16
16
|
var ufoExperience;
|
|
17
17
|
var getExperience = function getExperience() {
|
|
18
18
|
if (!ufoExperience) {
|
package/dist/cjs/media-viewer.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.MediaViewerComponent = exports.MediaViewer = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
11
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
@@ -25,6 +26,8 @@ var _content = require("./content");
|
|
|
25
26
|
var _styleWrappers = require("./styleWrappers");
|
|
26
27
|
var _perfMarks = require("perf-marks");
|
|
27
28
|
var _classnames = require("./classnames");
|
|
29
|
+
var _reactScrolllock = _interopRequireDefault(require("react-scrolllock"));
|
|
30
|
+
var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
|
|
28
31
|
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); }; }
|
|
29
32
|
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; } }
|
|
30
33
|
var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
@@ -106,9 +109,12 @@ var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
106
109
|
items = _this$props2.items,
|
|
107
110
|
extensions = _this$props2.extensions,
|
|
108
111
|
contextId = _this$props2.contextId,
|
|
109
|
-
featureFlags = _this$props2.featureFlags
|
|
112
|
+
featureFlags = _this$props2.featureFlags,
|
|
113
|
+
innerRef = _this$props2.innerRef;
|
|
110
114
|
var isSidebarVisible = this.state.isSidebarVisible;
|
|
111
|
-
var content = /*#__PURE__*/_react.default.createElement(
|
|
115
|
+
var content = /*#__PURE__*/_react.default.createElement("div", {
|
|
116
|
+
ref: innerRef
|
|
117
|
+
}, /*#__PURE__*/_react.default.createElement(_styleWrappers.Blanket, {
|
|
112
118
|
"data-testid": "media-viewer-popup",
|
|
113
119
|
className: _classnames.mediaViewerPopupClass
|
|
114
120
|
}, /*#__PURE__*/_react.default.createElement(_mediaUi.Shortcut, {
|
|
@@ -128,7 +134,7 @@ var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
128
134
|
isSidebarVisible: isSidebarVisible,
|
|
129
135
|
contextId: contextId,
|
|
130
136
|
featureFlags: featureFlags
|
|
131
|
-
})), this.renderSidebar());
|
|
137
|
+
})), this.renderSidebar()));
|
|
132
138
|
return this.props.intl ? content : /*#__PURE__*/_react.default.createElement(_reactIntlNext.IntlProvider, {
|
|
133
139
|
locale: "en"
|
|
134
140
|
}, content);
|
|
@@ -137,12 +143,23 @@ var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
137
143
|
return MediaViewerComponent;
|
|
138
144
|
}(_react.default.Component);
|
|
139
145
|
exports.MediaViewerComponent = MediaViewerComponent;
|
|
146
|
+
var MediaViewerWithRef = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
147
|
+
return /*#__PURE__*/_react.default.createElement(MediaViewerComponent, (0, _extends2.default)({}, props, {
|
|
148
|
+
innerRef: ref
|
|
149
|
+
}));
|
|
150
|
+
});
|
|
151
|
+
var MediaViewerWithScrollLock = function MediaViewerWithScrollLock(props) {
|
|
152
|
+
return /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, {
|
|
153
|
+
autoFocus: true,
|
|
154
|
+
returnFocus: true
|
|
155
|
+
}, /*#__PURE__*/_react.default.createElement(_reactScrolllock.default, null), /*#__PURE__*/_react.default.createElement(MediaViewerWithRef, props));
|
|
156
|
+
};
|
|
140
157
|
var MediaViewer = (0, _mediaCommon.withMediaAnalyticsContext)({
|
|
141
158
|
packageName: _analytics.packageName,
|
|
142
159
|
packageVersion: _analytics.packageVersion,
|
|
143
160
|
component: _analytics.component,
|
|
144
161
|
componentName: _analytics.componentName
|
|
145
|
-
})((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(
|
|
162
|
+
})((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(MediaViewerWithScrollLock, {
|
|
146
163
|
enforceContext: false
|
|
147
164
|
})));
|
|
148
165
|
exports.MediaViewer = MediaViewer;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.ZoomWrapper = exports.ZoomLevelIndicator = exports.ZoomControlsWrapper = exports.Video = exports.SpinnerWrapper = exports.SidebarWrapper = exports.RightWrapper = exports.RightHeader = exports.PDFWrapper = exports.MetadataWrapper = exports.MetadataSubText = exports.MetadataIconWrapper = exports.MetadataFileName = exports.MedatadataTextWrapper = exports.ListWrapper = exports.LeftWrapper = exports.LeftHeader = exports.Img = exports.ImageWrapper = exports.HeaderWrapper = exports.Header = exports.HDIconWrapper = exports.HDIconGroupWrapper = exports.FormattedMessageWrapper = exports.ErrorMessageWrapper = exports.ErrorImage = exports.DownloadButtonWrapper = exports.DefaultCoverWrapper = exports.CustomVideoPlayerWrapper = exports.CustomAudioPlayerWrapper = exports.ContentWrapper = exports.CloseButtonWrapper = exports.Blanket = exports.BaselineExtend = exports.AudioPlayer = exports.AudioCover = exports.Audio = exports.ArrowsWrapper = exports.Arrow = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
9
|
var _react = require("@emotion/react");
|
|
8
10
|
var _react2 = require("react");
|
|
9
11
|
var _styles = require("./styles");
|
|
12
|
+
var _reactScrolllock = require("react-scrolllock");
|
|
13
|
+
var _useCallbackRef = require("use-callback-ref");
|
|
10
14
|
/** @jsx jsx */
|
|
11
15
|
|
|
12
16
|
var Blanket = function Blanket(_ref) {
|
|
@@ -140,15 +144,22 @@ var Video = function Video(_ref14) {
|
|
|
140
144
|
);
|
|
141
145
|
};
|
|
142
146
|
exports.Video = Video;
|
|
143
|
-
var
|
|
144
|
-
var
|
|
147
|
+
var PDFWrapperBody = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref15, ref) {
|
|
148
|
+
var innerRef = _ref15.innerRef,
|
|
149
|
+
datatestId = _ref15['data-testid'],
|
|
145
150
|
children = _ref15.children;
|
|
151
|
+
var bodyRef = (0, _useCallbackRef.useMergeRefs)([ref, innerRef]);
|
|
146
152
|
return (0, _react.jsx)("div", {
|
|
147
153
|
css: _styles.pdfWrapperStyles,
|
|
148
|
-
ref:
|
|
154
|
+
ref: bodyRef,
|
|
149
155
|
"data-testid": datatestId
|
|
150
156
|
}, children);
|
|
151
157
|
});
|
|
158
|
+
var PDFWrapper = /*#__PURE__*/(0, _react2.forwardRef)(function (props, ref) {
|
|
159
|
+
return (0, _react.jsx)(_reactScrolllock.TouchScrollable, null, (0, _react.jsx)(PDFWrapperBody, (0, _extends2.default)({
|
|
160
|
+
innerRef: ref
|
|
161
|
+
}, props)));
|
|
162
|
+
});
|
|
152
163
|
exports.PDFWrapper = PDFWrapper;
|
|
153
164
|
var Arrow = function Arrow(_ref16) {
|
|
154
165
|
var className = _ref16.className,
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SidebarItemWrapper = exports.SidebarHeaderWrapper = exports.SidebarHeaderIcon = exports.SidebarHeaderEntry = exports.Separator = exports.ArchiveViewerWrapper = exports.ArchiveSidebarFolderWrapper = exports.ArchiveSidebarFileEntryWrapper = exports.ArchiveSideBar = exports.ArchiveLayout = exports.ArchiveItemViewerWrapper = exports.ArchiveDownloadButtonWrapper = void 0;
|
|
7
7
|
var _react = require("@emotion/react");
|
|
8
8
|
var _styles = require("./styles");
|
|
9
|
+
var _reactScrolllock = require("react-scrolllock");
|
|
9
10
|
/** @jsx jsx */
|
|
10
11
|
|
|
11
12
|
var ArchiveItemViewerWrapper = function ArchiveItemViewerWrapper(_ref) {
|
|
@@ -17,9 +18,9 @@ var ArchiveItemViewerWrapper = function ArchiveItemViewerWrapper(_ref) {
|
|
|
17
18
|
exports.ArchiveItemViewerWrapper = ArchiveItemViewerWrapper;
|
|
18
19
|
var ArchiveSideBar = function ArchiveSideBar(_ref2) {
|
|
19
20
|
var children = _ref2.children;
|
|
20
|
-
return (0, _react.jsx)("div", {
|
|
21
|
+
return (0, _react.jsx)(_reactScrolllock.TouchScrollable, null, (0, _react.jsx)("div", {
|
|
21
22
|
css: _styles.archiveSideBarStyles
|
|
22
|
-
}, children);
|
|
23
|
+
}, children));
|
|
23
24
|
};
|
|
24
25
|
exports.ArchiveSideBar = ArchiveSideBar;
|
|
25
26
|
var ArchiveSidebarFolderWrapper = function ArchiveSidebarFolderWrapper(_ref3) {
|
|
@@ -23,6 +23,7 @@ var _errorMessage = _interopRequireDefault(require("../../errorMessage"));
|
|
|
23
23
|
var _errors = require("../../errors");
|
|
24
24
|
var _util = require("./util");
|
|
25
25
|
var _styles = require("./styles");
|
|
26
|
+
var _reactScrolllock = require("react-scrolllock");
|
|
26
27
|
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); }; }
|
|
27
28
|
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; } } /** @jsx jsx */
|
|
28
29
|
// Based on some basic benchmarking with @atlaskit/code it was found that ~10,000 lines took around ~5secs to render, which locks the main thread.
|
|
@@ -35,10 +36,10 @@ var MAX_FILE_SIZE_USE_CODE_VIEWER = 5 * 1024 * 1024;
|
|
|
35
36
|
var CodeViewWrapper = function CodeViewWrapper(_ref) {
|
|
36
37
|
var children = _ref.children,
|
|
37
38
|
testId = _ref['data-testid'];
|
|
38
|
-
return (0, _react.jsx)("div", {
|
|
39
|
+
return (0, _react.jsx)(_reactScrolllock.TouchScrollable, null, (0, _react.jsx)("div", {
|
|
39
40
|
css: _styles.codeViewWrapperStyles,
|
|
40
41
|
"data-testid": testId
|
|
41
|
-
}, children);
|
|
42
|
+
}, children));
|
|
42
43
|
};
|
|
43
44
|
exports.CodeViewWrapper = CodeViewWrapper;
|
|
44
45
|
var CodeViewerHeaderBar = function CodeViewerHeaderBar() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
|
|
2
2
|
const componentName = 'mediaViewer';
|
|
3
3
|
const packageName = "@atlaskit/media-viewer";
|
|
4
|
-
const packageVersion = "48.0.
|
|
4
|
+
const packageVersion = "48.0.9";
|
|
5
5
|
export { packageName, packageVersion, componentName, componentName as component };
|
|
6
6
|
export function getFileAttributes(fileState) {
|
|
7
7
|
if (!fileState) {
|
|
@@ -2,7 +2,7 @@ import { UFOExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atl
|
|
|
2
2
|
import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
|
|
3
3
|
import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
|
|
4
4
|
const packageName = "@atlaskit/media-viewer";
|
|
5
|
-
const packageVersion = "48.0.
|
|
5
|
+
const packageVersion = "48.0.9";
|
|
6
6
|
let ufoExperience;
|
|
7
7
|
const getExperience = () => {
|
|
8
8
|
if (!ufoExperience) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { withMediaAnalyticsContext } from '@atlaskit/media-common';
|
|
@@ -12,6 +13,8 @@ import { Content } from './content';
|
|
|
12
13
|
import { Blanket, SidebarWrapper } from './styleWrappers';
|
|
13
14
|
import { start } from 'perf-marks';
|
|
14
15
|
import { mediaViewerPopupClass } from './classnames';
|
|
16
|
+
import ScrollLock from 'react-scrolllock';
|
|
17
|
+
import FocusLock from 'react-focus-lock';
|
|
15
18
|
export class MediaViewerComponent extends React.Component {
|
|
16
19
|
constructor(...args) {
|
|
17
20
|
super(...args);
|
|
@@ -85,12 +88,15 @@ export class MediaViewerComponent extends React.Component {
|
|
|
85
88
|
items,
|
|
86
89
|
extensions,
|
|
87
90
|
contextId,
|
|
88
|
-
featureFlags
|
|
91
|
+
featureFlags,
|
|
92
|
+
innerRef
|
|
89
93
|
} = this.props;
|
|
90
94
|
const {
|
|
91
95
|
isSidebarVisible
|
|
92
96
|
} = this.state;
|
|
93
|
-
const content = /*#__PURE__*/React.createElement(
|
|
97
|
+
const content = /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
ref: innerRef
|
|
99
|
+
}, /*#__PURE__*/React.createElement(Blanket, {
|
|
94
100
|
"data-testid": "media-viewer-popup",
|
|
95
101
|
className: mediaViewerPopupClass
|
|
96
102
|
}, /*#__PURE__*/React.createElement(Shortcut, {
|
|
@@ -110,17 +116,28 @@ export class MediaViewerComponent extends React.Component {
|
|
|
110
116
|
isSidebarVisible: isSidebarVisible,
|
|
111
117
|
contextId: contextId,
|
|
112
118
|
featureFlags: featureFlags
|
|
113
|
-
})), this.renderSidebar());
|
|
119
|
+
})), this.renderSidebar()));
|
|
114
120
|
return this.props.intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
|
|
115
121
|
locale: "en"
|
|
116
122
|
}, content);
|
|
117
123
|
}
|
|
118
124
|
}
|
|
125
|
+
const MediaViewerWithRef = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
126
|
+
return /*#__PURE__*/React.createElement(MediaViewerComponent, _extends({}, props, {
|
|
127
|
+
innerRef: ref
|
|
128
|
+
}));
|
|
129
|
+
});
|
|
130
|
+
const MediaViewerWithScrollLock = props => {
|
|
131
|
+
return /*#__PURE__*/React.createElement(FocusLock, {
|
|
132
|
+
autoFocus: true,
|
|
133
|
+
returnFocus: true
|
|
134
|
+
}, /*#__PURE__*/React.createElement(ScrollLock, null), /*#__PURE__*/React.createElement(MediaViewerWithRef, props));
|
|
135
|
+
};
|
|
119
136
|
export const MediaViewer = withMediaAnalyticsContext({
|
|
120
137
|
packageName,
|
|
121
138
|
packageVersion,
|
|
122
139
|
component,
|
|
123
140
|
componentName
|
|
124
|
-
})(withAnalyticsEvents()(injectIntl(
|
|
141
|
+
})(withAnalyticsEvents()(injectIntl(MediaViewerWithScrollLock, {
|
|
125
142
|
enforceContext: false
|
|
126
143
|
})));
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
/** @jsx jsx */
|
|
2
3
|
import { jsx } from '@emotion/react';
|
|
3
4
|
import { forwardRef, useMemo } from 'react';
|
|
4
5
|
import { arrowStyles, arrowsWrapperStyles, audioCoverStyles, audioPlayerStyles, audioStyles, baselineExtendStyles, blanketStyles, closeButtonWrapperStyles, contentWrapperStyles, customAudioPlayerWrapperStyles, customVideoPlayerWrapperStyles, defaultCoverWrapperStyles, downloadButtonWrapperStyles, errorImageStyles, errorMessageWrapperStyles, formattedMessageWrapperStyles, hdIconGroupWrapperStyles, hdIconWrapperStyles, headerStyles, headerWrapperStyles, imageWrapperStyles, imgStyles, leftHeaderStyles, leftWrapperStyles, listWrapperStyles, medatadataTextWrapperStyles, metadataFileNameStyles, metadataIconWrapperStyles, metadataSubTextStyles, metadataWrapperStyles, pdfWrapperStyles, rightHeaderStyles, rightWrapperStyles, sidebarWrapperStyles, spinnerWrapperStyles, videoStyles, zoomControlsWrapperStyles, zoomLevelIndicatorStyles, zoomWrapperStyles } from './styles';
|
|
6
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
7
|
+
import { useMergeRefs } from 'use-callback-ref';
|
|
5
8
|
export const Blanket = ({
|
|
6
9
|
'data-testid': datatestId,
|
|
7
10
|
className,
|
|
@@ -106,14 +109,23 @@ jsx("video", {
|
|
|
106
109
|
controls: controls,
|
|
107
110
|
src: src
|
|
108
111
|
});
|
|
109
|
-
|
|
112
|
+
const PDFWrapperBody = /*#__PURE__*/forwardRef(({
|
|
113
|
+
innerRef,
|
|
110
114
|
'data-testid': datatestId,
|
|
111
115
|
children
|
|
112
|
-
}, ref) =>
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
}, ref) => {
|
|
117
|
+
const bodyRef = useMergeRefs([ref, innerRef]);
|
|
118
|
+
return jsx("div", {
|
|
119
|
+
css: pdfWrapperStyles,
|
|
120
|
+
ref: bodyRef,
|
|
121
|
+
"data-testid": datatestId
|
|
122
|
+
}, children);
|
|
123
|
+
});
|
|
124
|
+
export const PDFWrapper = /*#__PURE__*/forwardRef((props, ref) => {
|
|
125
|
+
return jsx(TouchScrollable, null, jsx(PDFWrapperBody, _extends({
|
|
126
|
+
innerRef: ref
|
|
127
|
+
}, props)));
|
|
128
|
+
});
|
|
117
129
|
export const Arrow = ({
|
|
118
130
|
className,
|
|
119
131
|
children
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { archiveDownloadButtonWrapperStyles, archiveItemViewerWrapperStyles, archiveLayoutStyles, archiveSidebarFileEntryWrapperStyles, archiveSidebarFolderWrapperStyles, archiveSideBarStyles, archiveViewerWrapperStyles, separatorStyles, sidebarHeaderEntryStyles, sidebarHeaderIconStyles, sidebarHeaderWrapperStyles, sidebarItemWrapperStyles } from './styles';
|
|
5
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
5
6
|
export const ArchiveItemViewerWrapper = ({
|
|
6
7
|
children
|
|
7
8
|
}) => {
|
|
@@ -12,9 +13,9 @@ export const ArchiveItemViewerWrapper = ({
|
|
|
12
13
|
export const ArchiveSideBar = ({
|
|
13
14
|
children
|
|
14
15
|
}) => {
|
|
15
|
-
return jsx("div", {
|
|
16
|
+
return jsx(TouchScrollable, null, jsx("div", {
|
|
16
17
|
css: archiveSideBarStyles
|
|
17
|
-
}, children);
|
|
18
|
+
}, children));
|
|
18
19
|
};
|
|
19
20
|
export const ArchiveSidebarFolderWrapper = ({
|
|
20
21
|
children
|
|
@@ -9,6 +9,7 @@ import ErrorMessage from '../../errorMessage';
|
|
|
9
9
|
import { MediaViewerError } from '../../errors';
|
|
10
10
|
import { lineCount } from './util';
|
|
11
11
|
import { codeViewerHeaderBarStyles, codeViewWrapperStyles, codeViewerHTMLStyles } from './styles';
|
|
12
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
12
13
|
|
|
13
14
|
// Based on some basic benchmarking with @atlaskit/code it was found that ~10,000 lines took around ~5secs to render, which locks the main thread.
|
|
14
15
|
// Therefore we set a hard limit on the amount of lines which we apply formatting to,
|
|
@@ -21,10 +22,10 @@ export const CodeViewWrapper = ({
|
|
|
21
22
|
children,
|
|
22
23
|
'data-testid': testId
|
|
23
24
|
}) => {
|
|
24
|
-
return jsx("div", {
|
|
25
|
+
return jsx(TouchScrollable, null, jsx("div", {
|
|
25
26
|
css: codeViewWrapperStyles,
|
|
26
27
|
"data-testid": testId
|
|
27
|
-
}, children);
|
|
28
|
+
}, children));
|
|
28
29
|
};
|
|
29
30
|
export const CodeViewerHeaderBar = () => {
|
|
30
31
|
return jsx("div", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
|
|
2
2
|
var componentName = 'mediaViewer';
|
|
3
3
|
var packageName = "@atlaskit/media-viewer";
|
|
4
|
-
var packageVersion = "48.0.
|
|
4
|
+
var packageVersion = "48.0.9";
|
|
5
5
|
export { packageName, packageVersion, componentName, componentName as component };
|
|
6
6
|
export function getFileAttributes(fileState) {
|
|
7
7
|
if (!fileState) {
|
|
@@ -5,7 +5,7 @@ import { UFOExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atl
|
|
|
5
5
|
import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
|
|
6
6
|
import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
|
|
7
7
|
var packageName = "@atlaskit/media-viewer";
|
|
8
|
-
var packageVersion = "48.0.
|
|
8
|
+
var packageVersion = "48.0.9";
|
|
9
9
|
var ufoExperience;
|
|
10
10
|
var getExperience = function getExperience() {
|
|
11
11
|
if (!ufoExperience) {
|
package/dist/esm/media-viewer.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
4
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
@@ -20,6 +21,8 @@ import { Content } from './content';
|
|
|
20
21
|
import { Blanket, SidebarWrapper } from './styleWrappers';
|
|
21
22
|
import { start } from 'perf-marks';
|
|
22
23
|
import { mediaViewerPopupClass } from './classnames';
|
|
24
|
+
import ScrollLock from 'react-scrolllock';
|
|
25
|
+
import FocusLock from 'react-focus-lock';
|
|
23
26
|
export var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
24
27
|
_inherits(MediaViewerComponent, _React$Component);
|
|
25
28
|
var _super = _createSuper(MediaViewerComponent);
|
|
@@ -99,9 +102,12 @@ export var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
99
102
|
items = _this$props2.items,
|
|
100
103
|
extensions = _this$props2.extensions,
|
|
101
104
|
contextId = _this$props2.contextId,
|
|
102
|
-
featureFlags = _this$props2.featureFlags
|
|
105
|
+
featureFlags = _this$props2.featureFlags,
|
|
106
|
+
innerRef = _this$props2.innerRef;
|
|
103
107
|
var isSidebarVisible = this.state.isSidebarVisible;
|
|
104
|
-
var content = /*#__PURE__*/React.createElement(
|
|
108
|
+
var content = /*#__PURE__*/React.createElement("div", {
|
|
109
|
+
ref: innerRef
|
|
110
|
+
}, /*#__PURE__*/React.createElement(Blanket, {
|
|
105
111
|
"data-testid": "media-viewer-popup",
|
|
106
112
|
className: mediaViewerPopupClass
|
|
107
113
|
}, /*#__PURE__*/React.createElement(Shortcut, {
|
|
@@ -121,7 +127,7 @@ export var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
121
127
|
isSidebarVisible: isSidebarVisible,
|
|
122
128
|
contextId: contextId,
|
|
123
129
|
featureFlags: featureFlags
|
|
124
|
-
})), this.renderSidebar());
|
|
130
|
+
})), this.renderSidebar()));
|
|
125
131
|
return this.props.intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
|
|
126
132
|
locale: "en"
|
|
127
133
|
}, content);
|
|
@@ -129,11 +135,22 @@ export var MediaViewerComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
129
135
|
}]);
|
|
130
136
|
return MediaViewerComponent;
|
|
131
137
|
}(React.Component);
|
|
138
|
+
var MediaViewerWithRef = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
139
|
+
return /*#__PURE__*/React.createElement(MediaViewerComponent, _extends({}, props, {
|
|
140
|
+
innerRef: ref
|
|
141
|
+
}));
|
|
142
|
+
});
|
|
143
|
+
var MediaViewerWithScrollLock = function MediaViewerWithScrollLock(props) {
|
|
144
|
+
return /*#__PURE__*/React.createElement(FocusLock, {
|
|
145
|
+
autoFocus: true,
|
|
146
|
+
returnFocus: true
|
|
147
|
+
}, /*#__PURE__*/React.createElement(ScrollLock, null), /*#__PURE__*/React.createElement(MediaViewerWithRef, props));
|
|
148
|
+
};
|
|
132
149
|
export var MediaViewer = withMediaAnalyticsContext({
|
|
133
150
|
packageName: packageName,
|
|
134
151
|
packageVersion: packageVersion,
|
|
135
152
|
component: component,
|
|
136
153
|
componentName: componentName
|
|
137
|
-
})(withAnalyticsEvents()(injectIntl(
|
|
154
|
+
})(withAnalyticsEvents()(injectIntl(MediaViewerWithScrollLock, {
|
|
138
155
|
enforceContext: false
|
|
139
156
|
})));
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
/** @jsx jsx */
|
|
2
3
|
import { jsx } from '@emotion/react';
|
|
3
4
|
import { forwardRef, useMemo } from 'react';
|
|
4
5
|
import { arrowStyles, arrowsWrapperStyles, audioCoverStyles, audioPlayerStyles, audioStyles, baselineExtendStyles, blanketStyles, closeButtonWrapperStyles, contentWrapperStyles, customAudioPlayerWrapperStyles, customVideoPlayerWrapperStyles, defaultCoverWrapperStyles, downloadButtonWrapperStyles, errorImageStyles, errorMessageWrapperStyles, formattedMessageWrapperStyles, hdIconGroupWrapperStyles, hdIconWrapperStyles, headerStyles, headerWrapperStyles, imageWrapperStyles, imgStyles, leftHeaderStyles, leftWrapperStyles, listWrapperStyles, medatadataTextWrapperStyles, metadataFileNameStyles, metadataIconWrapperStyles, metadataSubTextStyles, metadataWrapperStyles, pdfWrapperStyles, rightHeaderStyles, rightWrapperStyles, sidebarWrapperStyles, spinnerWrapperStyles, videoStyles, zoomControlsWrapperStyles, zoomLevelIndicatorStyles, zoomWrapperStyles } from './styles';
|
|
6
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
7
|
+
import { useMergeRefs } from 'use-callback-ref';
|
|
5
8
|
export var Blanket = function Blanket(_ref) {
|
|
6
9
|
var datatestId = _ref['data-testid'],
|
|
7
10
|
className = _ref.className,
|
|
@@ -119,15 +122,22 @@ export var Video = function Video(_ref14) {
|
|
|
119
122
|
})
|
|
120
123
|
);
|
|
121
124
|
};
|
|
122
|
-
|
|
123
|
-
var
|
|
125
|
+
var PDFWrapperBody = /*#__PURE__*/forwardRef(function (_ref15, ref) {
|
|
126
|
+
var innerRef = _ref15.innerRef,
|
|
127
|
+
datatestId = _ref15['data-testid'],
|
|
124
128
|
children = _ref15.children;
|
|
129
|
+
var bodyRef = useMergeRefs([ref, innerRef]);
|
|
125
130
|
return jsx("div", {
|
|
126
131
|
css: pdfWrapperStyles,
|
|
127
|
-
ref:
|
|
132
|
+
ref: bodyRef,
|
|
128
133
|
"data-testid": datatestId
|
|
129
134
|
}, children);
|
|
130
135
|
});
|
|
136
|
+
export var PDFWrapper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
137
|
+
return jsx(TouchScrollable, null, jsx(PDFWrapperBody, _extends({
|
|
138
|
+
innerRef: ref
|
|
139
|
+
}, props)));
|
|
140
|
+
});
|
|
131
141
|
export var Arrow = function Arrow(_ref16) {
|
|
132
142
|
var className = _ref16.className,
|
|
133
143
|
children = _ref16.children;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { archiveDownloadButtonWrapperStyles, archiveItemViewerWrapperStyles, archiveLayoutStyles, archiveSidebarFileEntryWrapperStyles, archiveSidebarFolderWrapperStyles, archiveSideBarStyles, archiveViewerWrapperStyles, separatorStyles, sidebarHeaderEntryStyles, sidebarHeaderIconStyles, sidebarHeaderWrapperStyles, sidebarItemWrapperStyles } from './styles';
|
|
5
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
5
6
|
export var ArchiveItemViewerWrapper = function ArchiveItemViewerWrapper(_ref) {
|
|
6
7
|
var children = _ref.children;
|
|
7
8
|
return jsx("div", {
|
|
@@ -10,9 +11,9 @@ export var ArchiveItemViewerWrapper = function ArchiveItemViewerWrapper(_ref) {
|
|
|
10
11
|
};
|
|
11
12
|
export var ArchiveSideBar = function ArchiveSideBar(_ref2) {
|
|
12
13
|
var children = _ref2.children;
|
|
13
|
-
return jsx("div", {
|
|
14
|
+
return jsx(TouchScrollable, null, jsx("div", {
|
|
14
15
|
css: archiveSideBarStyles
|
|
15
|
-
}, children);
|
|
16
|
+
}, children));
|
|
16
17
|
};
|
|
17
18
|
export var ArchiveSidebarFolderWrapper = function ArchiveSidebarFolderWrapper(_ref3) {
|
|
18
19
|
var children = _ref3.children;
|
|
@@ -19,6 +19,7 @@ import ErrorMessage from '../../errorMessage';
|
|
|
19
19
|
import { MediaViewerError } from '../../errors';
|
|
20
20
|
import { lineCount } from './util';
|
|
21
21
|
import { codeViewerHeaderBarStyles, codeViewWrapperStyles, codeViewerHTMLStyles } from './styles';
|
|
22
|
+
import { TouchScrollable } from 'react-scrolllock';
|
|
22
23
|
|
|
23
24
|
// Based on some basic benchmarking with @atlaskit/code it was found that ~10,000 lines took around ~5secs to render, which locks the main thread.
|
|
24
25
|
// Therefore we set a hard limit on the amount of lines which we apply formatting to,
|
|
@@ -30,10 +31,10 @@ var MAX_FILE_SIZE_USE_CODE_VIEWER = 5 * 1024 * 1024;
|
|
|
30
31
|
export var CodeViewWrapper = function CodeViewWrapper(_ref) {
|
|
31
32
|
var children = _ref.children,
|
|
32
33
|
testId = _ref['data-testid'];
|
|
33
|
-
return jsx("div", {
|
|
34
|
+
return jsx(TouchScrollable, null, jsx("div", {
|
|
34
35
|
css: codeViewWrapperStyles,
|
|
35
36
|
"data-testid": testId
|
|
36
|
-
}, children);
|
|
37
|
+
}, children));
|
|
37
38
|
};
|
|
38
39
|
export var CodeViewerHeaderBar = function CodeViewerHeaderBar() {
|
|
39
40
|
return jsx("div", {
|
|
@@ -48,7 +48,7 @@ type VideoProps = {
|
|
|
48
48
|
autoPlay: boolean;
|
|
49
49
|
};
|
|
50
50
|
export declare const Video: ({ autoPlay, controls, src }: VideoProps) => jsx.JSX.Element;
|
|
51
|
-
export declare const PDFWrapper: import("react").ForwardRefExoticComponent<DataTestID & Children & import("react").RefAttributes<
|
|
51
|
+
export declare const PDFWrapper: import("react").ForwardRefExoticComponent<DataTestID & Children & import("react").RefAttributes<HTMLDivElement>>;
|
|
52
52
|
export declare const Arrow: ({ className, children }: ClassName & Children) => jsx.JSX.Element;
|
|
53
53
|
export type LeftWrapperProps = {
|
|
54
54
|
isArchiveSideBarVisible: boolean;
|
|
@@ -48,7 +48,7 @@ type VideoProps = {
|
|
|
48
48
|
autoPlay: boolean;
|
|
49
49
|
};
|
|
50
50
|
export declare const Video: ({ autoPlay, controls, src }: VideoProps) => jsx.JSX.Element;
|
|
51
|
-
export declare const PDFWrapper: import("react").ForwardRefExoticComponent<DataTestID & Children & import("react").RefAttributes<
|
|
51
|
+
export declare const PDFWrapper: import("react").ForwardRefExoticComponent<DataTestID & Children & import("react").RefAttributes<HTMLDivElement>>;
|
|
52
52
|
export declare const Arrow: ({ className, children }: ClassName & Children) => jsx.JSX.Element;
|
|
53
53
|
export type LeftWrapperProps = {
|
|
54
54
|
isArchiveSideBarVisible: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-viewer",
|
|
3
|
-
"version": "48.0.
|
|
3
|
+
"version": "48.0.9",
|
|
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/"
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@atlaskit/analytics-next": "^9.1.0",
|
|
39
|
-
"@atlaskit/button": "^16.
|
|
39
|
+
"@atlaskit/button": "^16.9.0",
|
|
40
40
|
"@atlaskit/code": "^14.6.0",
|
|
41
41
|
"@atlaskit/icon": "^21.12.0",
|
|
42
42
|
"@atlaskit/icon-file-type": "^6.4.0",
|
|
43
43
|
"@atlaskit/media-client": "^23.1.0",
|
|
44
44
|
"@atlaskit/media-common": "^8.0.0",
|
|
45
|
-
"@atlaskit/media-ui": "^23.
|
|
46
|
-
"@atlaskit/side-navigation": "^
|
|
45
|
+
"@atlaskit/media-ui": "^23.3.0",
|
|
46
|
+
"@atlaskit/side-navigation": "^2.0.0",
|
|
47
47
|
"@atlaskit/spinner": "^15.5.0",
|
|
48
48
|
"@atlaskit/theme": "^12.5.0",
|
|
49
49
|
"@atlaskit/tokens": "^1.14.0",
|
|
@@ -54,8 +54,11 @@
|
|
|
54
54
|
"mime": "^2.4.6",
|
|
55
55
|
"pdfjs-dist": "2.0.943",
|
|
56
56
|
"perf-marks": "^1.5.0",
|
|
57
|
+
"react-focus-lock": "^2.5.2",
|
|
57
58
|
"react-loadable": "^5.1.0",
|
|
58
|
-
"
|
|
59
|
+
"react-scrolllock": "^5.0.1",
|
|
60
|
+
"unzipit": "^1.3.0",
|
|
61
|
+
"use-callback-ref": "^1.2.3"
|
|
59
62
|
},
|
|
60
63
|
"peerDependencies": {
|
|
61
64
|
"@emotion/react": "^11.7.1",
|
|
@@ -63,7 +66,7 @@
|
|
|
63
66
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
64
67
|
},
|
|
65
68
|
"devDependencies": {
|
|
66
|
-
"@atlaskit/button": "^16.
|
|
69
|
+
"@atlaskit/button": "^16.9.0",
|
|
67
70
|
"@atlaskit/media-card": "^76.1.0",
|
|
68
71
|
"@atlaskit/media-core": "^34.1.0",
|
|
69
72
|
"@atlaskit/media-integration-test-helpers": "^3.0.0",
|
package/dist/cjs/version.json
DELETED
package/dist/es2019/version.json
DELETED