@atlaskit/media-viewer 52.3.2 → 52.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/analytics/index.js +1 -1
  3. package/dist/cjs/analytics/ufoExperiences.js +1 -1
  4. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-folder-entry.js +1 -1
  5. package/dist/cjs/viewers/doc-next/doc-viewer.js +201 -0
  6. package/dist/cjs/viewers/doc-next/index.js +17 -81
  7. package/dist/cjs/viewers/doc-next/passwordInput.compiled.css +11 -0
  8. package/dist/cjs/viewers/doc-next/passwordInput.js +126 -0
  9. package/dist/es2019/analytics/index.js +1 -1
  10. package/dist/es2019/analytics/ufoExperiences.js +1 -1
  11. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-folder-entry.js +1 -1
  12. package/dist/es2019/viewers/doc-next/doc-viewer.js +138 -0
  13. package/dist/es2019/viewers/doc-next/index.js +12 -40
  14. package/dist/es2019/viewers/doc-next/passwordInput.compiled.css +11 -0
  15. package/dist/es2019/viewers/doc-next/passwordInput.js +112 -0
  16. package/dist/esm/analytics/index.js +1 -1
  17. package/dist/esm/analytics/ufoExperiences.js +1 -1
  18. package/dist/esm/viewers/archiveSidebar/archive-sidebar-folder-entry.js +1 -1
  19. package/dist/esm/viewers/doc-next/doc-viewer.js +192 -0
  20. package/dist/esm/viewers/doc-next/index.js +17 -79
  21. package/dist/esm/viewers/doc-next/passwordInput.compiled.css +11 -0
  22. package/dist/esm/viewers/doc-next/passwordInput.js +117 -0
  23. package/dist/types/errors.d.ts +1 -1
  24. package/dist/types/viewers/doc-next/doc-viewer.d.ts +13 -0
  25. package/dist/types/viewers/doc-next/index.d.ts +7 -5
  26. package/dist/types/viewers/doc-next/passwordInput.d.ts +11 -0
  27. package/dist/types-ts4.5/errors.d.ts +1 -1
  28. package/dist/types-ts4.5/viewers/doc-next/doc-viewer.d.ts +13 -0
  29. package/dist/types-ts4.5/viewers/doc-next/index.d.ts +7 -5
  30. package/dist/types-ts4.5/viewers/doc-next/passwordInput.d.ts +11 -0
  31. package/package.json +6 -6
  32. /package/dist/cjs/viewers/doc-next/{index.compiled.css → doc-viewer.compiled.css} +0 -0
  33. /package/dist/es2019/viewers/doc-next/{index.compiled.css → doc-viewer.compiled.css} +0 -0
  34. /package/dist/esm/viewers/doc-next/{index.compiled.css → doc-viewer.compiled.css} +0 -0
@@ -1,4 +1,3 @@
1
- /* index.tsx generated by @compiled/babel-plugin v0.36.1 */
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
3
  import _createClass from "@babel/runtime/helpers/createClass";
@@ -6,18 +5,14 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
6
5
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
6
  import _inherits from "@babel/runtime/helpers/inherits";
8
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- import "./index.compiled.css";
10
- import * as React from 'react';
11
- import { ax, ix } from "@compiled/react/runtime";
12
8
  import _regeneratorRuntime from "@babel/runtime/regenerator";
13
9
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
14
10
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
15
- import { DOCUMENT_SCROLL_ROOT_ID, DocumentViewer } from '@atlaskit/media-document-viewer';
11
+ import React from 'react';
16
12
  import { Outcome } from '../../domain';
17
13
  import { BaseViewer } from '../base-viewer';
18
- import { ZoomControls } from '../../zoomControls';
19
14
  import { ZoomLevel } from '../../domain/zoomLevel';
20
- var documentViewerStyles = null;
15
+ import { DocViewer as DocViewerComponent } from './doc-viewer';
21
16
  export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
22
17
  function DocViewer() {
23
18
  var _this;
@@ -27,61 +22,6 @@ export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
27
22
  }
28
23
  _this = _callSuper(this, DocViewer, [].concat(args));
29
24
  _defineProperty(_this, "isObjectUrl", false);
30
- _defineProperty(_this, "getContent", /*#__PURE__*/function () {
31
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(pageStart, pageEnd) {
32
- var src;
33
- return _regeneratorRuntime.wrap(function _callee$(_context) {
34
- while (1) switch (_context.prev = _context.next) {
35
- case 0:
36
- _context.next = 2;
37
- return _this.props.mediaClient.mediaStore.getDocumentContent(_this.props.item.id, {
38
- pageStart: pageStart,
39
- pageEnd: pageEnd,
40
- collectionName: _this.props.collectionName
41
- });
42
- case 2:
43
- src = _context.sent;
44
- return _context.abrupt("return", src);
45
- case 4:
46
- case "end":
47
- return _context.stop();
48
- }
49
- }, _callee);
50
- }));
51
- return function (_x, _x2) {
52
- return _ref.apply(this, arguments);
53
- };
54
- }());
55
- _defineProperty(_this, "getPageImageUrl", /*#__PURE__*/function () {
56
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(pageNumber, zoom) {
57
- var src;
58
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
59
- while (1) switch (_context2.prev = _context2.next) {
60
- case 0:
61
- _context2.next = 2;
62
- return _this.props.mediaClient.mediaStore.getDocumentPageImage(_this.props.item.id, {
63
- page: pageNumber,
64
- zoom: zoom,
65
- collectionName: _this.props.collectionName
66
- });
67
- case 2:
68
- src = _context2.sent;
69
- return _context2.abrupt("return", URL.createObjectURL(src));
70
- case 4:
71
- case "end":
72
- return _context2.stop();
73
- }
74
- }, _callee2);
75
- }));
76
- return function (_x3, _x4) {
77
- return _ref2.apply(this, arguments);
78
- };
79
- }());
80
- _defineProperty(_this, "onZoomChange", function (newZoomLevel) {
81
- _this.setState({
82
- zoomLevel: newZoomLevel
83
- });
84
- });
85
25
  return _this;
86
26
  }
87
27
  _inherits(DocViewer, _BaseViewer);
@@ -90,7 +30,9 @@ export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
90
30
  get: function get() {
91
31
  return {
92
32
  content: Outcome.pending(),
93
- zoomLevel: new ZoomLevel(1.75)
33
+ zoomLevel: new ZoomLevel(1.75),
34
+ isPasswordProtected: false,
35
+ hasPasswordError: false
94
36
  };
95
37
  }
96
38
  }, {
@@ -104,10 +46,10 @@ export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
104
46
  }, {
105
47
  key: "init",
106
48
  value: function () {
107
- var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
49
+ var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
108
50
  var item;
109
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
110
- while (1) switch (_context3.prev = _context3.next) {
51
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
52
+ while (1) switch (_context.prev = _context.next) {
111
53
  case 0:
112
54
  item = this.props.item;
113
55
  this.setState({
@@ -115,9 +57,9 @@ export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
115
57
  });
116
58
  case 2:
117
59
  case "end":
118
- return _context3.stop();
60
+ return _context.stop();
119
61
  }
120
- }, _callee3, this);
62
+ }, _callee, this);
121
63
  }));
122
64
  function init() {
123
65
  return _init.apply(this, arguments);
@@ -138,17 +80,13 @@ export var DocViewer = /*#__PURE__*/function (_BaseViewer) {
138
80
  }, {
139
81
  key: "renderSuccessful",
140
82
  value: function renderSuccessful() {
141
- return /*#__PURE__*/React.createElement("div", {
142
- id: DOCUMENT_SCROLL_ROOT_ID,
143
- className: ax(["_1reo1wug _18m91wug _4t3i1kxc _1bsbauwl"])
144
- }, /*#__PURE__*/React.createElement(DocumentViewer, {
145
- getContent: this.getContent,
146
- getPageImageUrl: this.getPageImageUrl,
147
- zoom: this.state.zoomLevel.value
148
- }), /*#__PURE__*/React.createElement(ZoomControls, {
149
- onChange: this.onZoomChange,
150
- zoomLevel: this.state.zoomLevel
151
- }));
83
+ return /*#__PURE__*/React.createElement(DocViewerComponent, {
84
+ mediaClient: this.props.mediaClient,
85
+ fileState: this.props.item,
86
+ collectionName: this.props.collectionName,
87
+ onError: this.props.onError,
88
+ traceContext: this.props.traceContext
89
+ });
152
90
  }
153
91
  }]);
154
92
  }(BaseViewer);
@@ -0,0 +1,11 @@
1
+ ._11c8dcr7{font:var(--ds-font-body-UNSAFE_small,normal 400 9pt/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._12nx2smr h1{font:var(--ds-font-body,normal 400 14px/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._125x1366 p{color:#fd9891}
4
+ ._18u01b66{margin-left:var(--ds-space-050,4px)}
5
+ ._19pk1b66{margin-top:var(--ds-space-050,4px)}
6
+ ._19pkidpf{margin-top:0}
7
+ ._1e0c1txw{display:flex}
8
+ ._1nda9txx h1{color:#b6c2cf}
9
+ ._1twlmoej h1{font-weight:var(--ds-font-weight-bold,700)}
10
+ ._4cvr1h6o{align-items:center}
11
+ ._syaz1366{color:#fd9891}
@@ -0,0 +1,117 @@
1
+ /* passwordInput.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import "./passwordInput.compiled.css";
5
+ import * as React from 'react';
6
+ import { ax, ix } from "@compiled/react/runtime";
7
+ import { useEffect, useRef, useState } from 'react';
8
+ import Button from '@atlaskit/button/new';
9
+ import TextField from '@atlaskit/textfield';
10
+ import LockIcon from '@atlaskit/icon/core/migration/lock-locked--lock';
11
+ import Form, { Field } from '@atlaskit/form';
12
+ import { FormattedMessage, useIntl } from 'react-intl-next';
13
+ import { messages } from '@atlaskit/media-ui';
14
+ import { xcss, Box, Flex, Text } from '@atlaskit/primitives';
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
16
+ import ErrorIcon from '@atlaskit/icon/core/migration/error';
17
+ import Heading from '@atlaskit/heading';
18
+ var COLOR_SHADE = '#b6c2cf';
19
+ var ERROR_COLOR = '#FD9891';
20
+ var headingStyle = null;
21
+ var errorMessageWrapperStyle = null;
22
+ var errorMessageStyle = null;
23
+ var headerStyles = xcss({
24
+ textAlign: 'center',
25
+ marginTop: 'space.200',
26
+ marginBottom: 'space.200'
27
+ });
28
+ var inputStyle = xcss({
29
+ width: '330px'
30
+ });
31
+ var footerStyles = xcss({
32
+ marginTop: 'space.200',
33
+ display: 'flex',
34
+ justifyContent: 'center'
35
+ });
36
+ export var PasswordInput = function PasswordInput(_ref) {
37
+ var onSubmit = _ref.onSubmit,
38
+ hasPasswordError = _ref.hasPasswordError,
39
+ onRender = _ref.onRender;
40
+ var passwordInputRef = useRef(null);
41
+ var onRenderRef = useRef(onRender);
42
+ var _useState = useState(hasPasswordError),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ formError = _useState2[0],
45
+ setFormError = _useState2[1];
46
+ var intl = useIntl();
47
+ useEffect(function () {
48
+ var _onRenderRef$current;
49
+ (_onRenderRef$current = onRenderRef.current) === null || _onRenderRef$current === void 0 || _onRenderRef$current.call(onRenderRef);
50
+ }, []);
51
+ useEffect(function () {
52
+ if (hasPasswordError) {
53
+ var _passwordInputRef$cur;
54
+ setFormError(true);
55
+ (_passwordInputRef$cur = passwordInputRef.current) === null || _passwordInputRef$cur === void 0 || _passwordInputRef$cur.focus();
56
+ }
57
+ }, [hasPasswordError]);
58
+ return /*#__PURE__*/React.createElement(Form, {
59
+ onSubmit: onSubmit
60
+ }, function (_ref2) {
61
+ var formProps = _ref2.formProps,
62
+ submitting = _ref2.submitting;
63
+ return /*#__PURE__*/React.createElement("form", formProps, /*#__PURE__*/React.createElement(Flex, {
64
+ justifyContent: "center"
65
+ }, /*#__PURE__*/React.createElement(LockIcon, {
66
+ label: "",
67
+ LEGACY_size: "xlarge",
68
+ color: COLOR_SHADE
69
+ })), /*#__PURE__*/React.createElement(Box, {
70
+ xcss: headerStyles
71
+ }, /*#__PURE__*/React.createElement("div", {
72
+ className: ax(["_12nx2smr _1twlmoej _1nda9txx"])
73
+ }, /*#__PURE__*/React.createElement(Heading, {
74
+ as: "h1",
75
+ size: "medium"
76
+ }, /*#__PURE__*/React.createElement(FormattedMessage, messages.password_protected_pdf)))), /*#__PURE__*/React.createElement(Field, {
77
+ "aria-required": true,
78
+ name: "password",
79
+ defaultValue: "",
80
+ isRequired: true
81
+ }, function (_ref3) {
82
+ var fieldProps = _ref3.fieldProps;
83
+ return /*#__PURE__*/React.createElement(Box, {
84
+ xcss: inputStyle
85
+ }, /*#__PURE__*/React.createElement(TextField, _extends({}, fieldProps, {
86
+ type: "password",
87
+ "aria-label": intl.formatMessage(messages.password),
88
+ placeholder: intl.formatMessage(messages.enter_password),
89
+ ref: passwordInputRef,
90
+ "aria-describedby": formError ? "".concat(fieldProps.id, "-error") : undefined,
91
+ onChange: function onChange(value) {
92
+ fieldProps.onChange(value);
93
+ setFormError(false);
94
+ }
95
+ })), formError && /*#__PURE__*/React.createElement("div", {
96
+ id: "".concat(fieldProps.id, "-error"),
97
+ className: ax(["_11c8dcr7 _19pk1b66 _1e0c1txw _4cvr1h6o _syaz1366 _125x1366"])
98
+ }, /*#__PURE__*/React.createElement(ErrorIcon, {
99
+ color: "currentColor",
100
+ LEGACY_size: "small",
101
+ label: "",
102
+ size: "small"
103
+ }), /*#__PURE__*/React.createElement("div", {
104
+ id: "".concat(fieldProps.id, "-errorMessage"),
105
+ className: ax(["_19pkidpf _18u01b66"])
106
+ }, /*#__PURE__*/React.createElement(Text, {
107
+ as: "p"
108
+ }, /*#__PURE__*/React.createElement(FormattedMessage, messages.incorrect_password)))));
109
+ }), /*#__PURE__*/React.createElement(Box, {
110
+ xcss: footerStyles
111
+ }, /*#__PURE__*/React.createElement(Button, {
112
+ appearance: "primary",
113
+ type: "submit",
114
+ isLoading: submitting
115
+ }, /*#__PURE__*/React.createElement(FormattedMessage, messages.submit))));
116
+ });
117
+ };
@@ -13,7 +13,7 @@ export declare class ArchiveViewerError extends MediaViewerError {
13
13
  constructor(primaryReason: ArchiveViewerErrorReason, secondaryError?: Error | undefined, zipEntry?: ZipEntry | undefined);
14
14
  }
15
15
  export declare function isArchiveViewerError(err: Error): err is ArchiveViewerError;
16
- export type MediaViewerErrorReason = 'collection-fetch-metadata' | 'header-fetch-metadata' | 'itemviewer-onerror' | 'itemviewer-fetch-metadata' | 'itemviewer-file-error-status' | 'itemviewer-file-failed-processing-status' | 'imageviewer-external-onerror' | 'imageviewer-fetch-url' | 'imageviewer-src-onerror' | 'audioviewer-fetch-url' | 'audioviewer-missing-artefact' | 'audioviewer-playback' | 'videoviewer-fetch-url' | 'videoviewer-missing-artefact' | 'videoviewer-playback' | 'docviewer-fetch-url' | 'docviewer-fetch-pdf' | 'codeviewer-fetch-src' | 'codeviewer-load-src' | 'codeviewer-file-size-exceeds' | 'codeviewer-parse-email' | 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error' | 'svg-blob-to-datauri' | 'unsupported' | 'custom-viewer-error' | 'download';
16
+ export type MediaViewerErrorReason = 'collection-fetch-metadata' | 'header-fetch-metadata' | 'itemviewer-onerror' | 'itemviewer-fetch-metadata' | 'itemviewer-file-error-status' | 'itemviewer-file-failed-processing-status' | 'imageviewer-external-onerror' | 'imageviewer-fetch-url' | 'imageviewer-src-onerror' | 'audioviewer-fetch-url' | 'audioviewer-missing-artefact' | 'audioviewer-playback' | 'videoviewer-fetch-url' | 'videoviewer-missing-artefact' | 'videoviewer-playback' | 'docviewer-fetch-url' | 'docviewer-content-fetch-failed' | 'docviewer-fetch-pdf' | 'codeviewer-fetch-src' | 'codeviewer-load-src' | 'codeviewer-file-size-exceeds' | 'codeviewer-parse-email' | 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error' | 'svg-blob-to-datauri' | 'unsupported' | 'custom-viewer-error' | 'download';
17
17
  export type ArchiveViewerErrorReason = 'archiveviewer-bundle-loader' | 'archiveviewer-read-binary' | 'archiveviewer-create-url' | 'archiveviewer-imageviewer-onerror' | 'archiveviewer-videoviewer-onerror' | 'archiveviewer-audioviewer-onerror' | 'archiveviewer-docviewer-onerror' | 'archiveviewer-codeviewer-onerror' | 'archiveviewer-codeviewer-file-size-exceeds' | 'archiveviewer-missing-name-src' | 'archiveviewer-unsupported' | 'archiveviewer-encrypted-entry' | 'archiveviewer-customrenderer-onerror';
18
18
  export type PrimaryErrorReason = MediaViewerErrorReason | ArchiveViewerErrorReason;
19
19
  export type SecondaryErrorReason = MediaClientErrorReason | 'unknown' | 'nativeError' | undefined;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { type MediaClient, type FileState } from '@atlaskit/media-client';
3
+ import { type MediaTraceContext } from '@atlaskit/media-common';
4
+ import { MediaViewerError } from '../../errors';
5
+ type Props = {
6
+ mediaClient: MediaClient;
7
+ fileState: FileState;
8
+ collectionName?: string;
9
+ onError: (error: MediaViewerError) => void;
10
+ traceContext: MediaTraceContext;
11
+ };
12
+ export declare const DocViewer: ({ mediaClient, fileState, collectionName, onError, traceContext, }: Props) => JSX.Element;
13
+ export default DocViewer;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { type MediaClient, type FileState } from '@atlaskit/media-client';
3
3
  import { Outcome } from '../../domain';
4
4
  import { MediaViewerError } from '../../errors';
@@ -17,18 +17,20 @@ export type Props = {
17
17
  export type State = {
18
18
  content: Outcome<string, MediaViewerError>;
19
19
  zoomLevel: ZoomLevel;
20
+ isPasswordProtected: boolean;
21
+ password?: string;
22
+ hasPasswordError: boolean;
20
23
  };
21
24
  export declare class DocViewer extends BaseViewer<string, Props, State> {
22
25
  private isObjectUrl;
23
26
  protected get initialState(): {
24
27
  content: Outcome<string, MediaViewerError>;
25
28
  zoomLevel: ZoomLevel;
29
+ isPasswordProtected: boolean;
30
+ hasPasswordError: boolean;
26
31
  };
27
32
  protected needsReset(propsA: Props, propsB: Props): boolean;
28
33
  protected init(): Promise<void>;
29
34
  protected release(): void;
30
- private getContent;
31
- private getPageImageUrl;
32
- private onZoomChange;
33
- protected renderSuccessful(): JSX.Element;
35
+ protected renderSuccessful(): React.JSX.Element;
34
36
  }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { type OnSubmitHandler } from '@atlaskit/form';
3
+ interface PDFPasswordInputProps {
4
+ onSubmit: OnSubmitHandler<{
5
+ password: string;
6
+ }>;
7
+ hasPasswordError?: boolean;
8
+ onRender?: () => void;
9
+ }
10
+ export declare const PasswordInput: ({ onSubmit, hasPasswordError, onRender }: PDFPasswordInputProps) => JSX.Element;
11
+ export {};
@@ -13,7 +13,7 @@ export declare class ArchiveViewerError extends MediaViewerError {
13
13
  constructor(primaryReason: ArchiveViewerErrorReason, secondaryError?: Error | undefined, zipEntry?: ZipEntry | undefined);
14
14
  }
15
15
  export declare function isArchiveViewerError(err: Error): err is ArchiveViewerError;
16
- export type MediaViewerErrorReason = 'collection-fetch-metadata' | 'header-fetch-metadata' | 'itemviewer-onerror' | 'itemviewer-fetch-metadata' | 'itemviewer-file-error-status' | 'itemviewer-file-failed-processing-status' | 'imageviewer-external-onerror' | 'imageviewer-fetch-url' | 'imageviewer-src-onerror' | 'audioviewer-fetch-url' | 'audioviewer-missing-artefact' | 'audioviewer-playback' | 'videoviewer-fetch-url' | 'videoviewer-missing-artefact' | 'videoviewer-playback' | 'docviewer-fetch-url' | 'docviewer-fetch-pdf' | 'codeviewer-fetch-src' | 'codeviewer-load-src' | 'codeviewer-file-size-exceeds' | 'codeviewer-parse-email' | 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error' | 'svg-blob-to-datauri' | 'unsupported' | 'custom-viewer-error' | 'download';
16
+ export type MediaViewerErrorReason = 'collection-fetch-metadata' | 'header-fetch-metadata' | 'itemviewer-onerror' | 'itemviewer-fetch-metadata' | 'itemviewer-file-error-status' | 'itemviewer-file-failed-processing-status' | 'imageviewer-external-onerror' | 'imageviewer-fetch-url' | 'imageviewer-src-onerror' | 'audioviewer-fetch-url' | 'audioviewer-missing-artefact' | 'audioviewer-playback' | 'videoviewer-fetch-url' | 'videoviewer-missing-artefact' | 'videoviewer-playback' | 'docviewer-fetch-url' | 'docviewer-content-fetch-failed' | 'docviewer-fetch-pdf' | 'codeviewer-fetch-src' | 'codeviewer-load-src' | 'codeviewer-file-size-exceeds' | 'codeviewer-parse-email' | 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error' | 'svg-blob-to-datauri' | 'unsupported' | 'custom-viewer-error' | 'download';
17
17
  export type ArchiveViewerErrorReason = 'archiveviewer-bundle-loader' | 'archiveviewer-read-binary' | 'archiveviewer-create-url' | 'archiveviewer-imageviewer-onerror' | 'archiveviewer-videoviewer-onerror' | 'archiveviewer-audioviewer-onerror' | 'archiveviewer-docviewer-onerror' | 'archiveviewer-codeviewer-onerror' | 'archiveviewer-codeviewer-file-size-exceeds' | 'archiveviewer-missing-name-src' | 'archiveviewer-unsupported' | 'archiveviewer-encrypted-entry' | 'archiveviewer-customrenderer-onerror';
18
18
  export type PrimaryErrorReason = MediaViewerErrorReason | ArchiveViewerErrorReason;
19
19
  export type SecondaryErrorReason = MediaClientErrorReason | 'unknown' | 'nativeError' | undefined;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { type MediaClient, type FileState } from '@atlaskit/media-client';
3
+ import { type MediaTraceContext } from '@atlaskit/media-common';
4
+ import { MediaViewerError } from '../../errors';
5
+ type Props = {
6
+ mediaClient: MediaClient;
7
+ fileState: FileState;
8
+ collectionName?: string;
9
+ onError: (error: MediaViewerError) => void;
10
+ traceContext: MediaTraceContext;
11
+ };
12
+ export declare const DocViewer: ({ mediaClient, fileState, collectionName, onError, traceContext, }: Props) => JSX.Element;
13
+ export default DocViewer;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { type MediaClient, type FileState } from '@atlaskit/media-client';
3
3
  import { Outcome } from '../../domain';
4
4
  import { MediaViewerError } from '../../errors';
@@ -17,18 +17,20 @@ export type Props = {
17
17
  export type State = {
18
18
  content: Outcome<string, MediaViewerError>;
19
19
  zoomLevel: ZoomLevel;
20
+ isPasswordProtected: boolean;
21
+ password?: string;
22
+ hasPasswordError: boolean;
20
23
  };
21
24
  export declare class DocViewer extends BaseViewer<string, Props, State> {
22
25
  private isObjectUrl;
23
26
  protected get initialState(): {
24
27
  content: Outcome<string, MediaViewerError>;
25
28
  zoomLevel: ZoomLevel;
29
+ isPasswordProtected: boolean;
30
+ hasPasswordError: boolean;
26
31
  };
27
32
  protected needsReset(propsA: Props, propsB: Props): boolean;
28
33
  protected init(): Promise<void>;
29
34
  protected release(): void;
30
- private getContent;
31
- private getPageImageUrl;
32
- private onZoomChange;
33
- protected renderSuccessful(): JSX.Element;
35
+ protected renderSuccessful(): React.JSX.Element;
34
36
  }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { type OnSubmitHandler } from '@atlaskit/form';
3
+ interface PDFPasswordInputProps {
4
+ onSubmit: OnSubmitHandler<{
5
+ password: string;
6
+ }>;
7
+ hasPasswordError?: boolean;
8
+ onRender?: () => void;
9
+ }
10
+ export declare const PasswordInput: ({ onSubmit, hasPasswordError, onRender }: PDFPasswordInputProps) => JSX.Element;
11
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "52.3.2",
3
+ "version": "52.4.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/"
@@ -42,15 +42,15 @@
42
42
  "@atlaskit/css": "^0.11.0",
43
43
  "@atlaskit/form": "^12.0.0",
44
44
  "@atlaskit/heading": "^5.2.0",
45
- "@atlaskit/icon": "^27.0.0",
45
+ "@atlaskit/icon": "^27.2.0",
46
46
  "@atlaskit/icon-file-type": "^7.0.0",
47
47
  "@atlaskit/icon-lab": "^5.0.0",
48
- "@atlaskit/media-client": "^34.0.0",
48
+ "@atlaskit/media-client": "^34.2.0",
49
49
  "@atlaskit/media-client-react": "^4.1.0",
50
- "@atlaskit/media-common": "^12.2.0",
50
+ "@atlaskit/media-common": "^12.3.0",
51
51
  "@atlaskit/media-document-viewer": "^0.2.0",
52
52
  "@atlaskit/media-svg": "^2.1.0",
53
- "@atlaskit/media-ui": "^28.3.0",
53
+ "@atlaskit/media-ui": "^28.5.0",
54
54
  "@atlaskit/platform-feature-flags": "^1.1.0",
55
55
  "@atlaskit/portal": "^5.1.0",
56
56
  "@atlaskit/primitives": "^14.9.0",
@@ -58,7 +58,7 @@
58
58
  "@atlaskit/spinner": "^18.0.0",
59
59
  "@atlaskit/textfield": "^8.0.0",
60
60
  "@atlaskit/theme": "^18.0.0",
61
- "@atlaskit/tokens": "^5.3.0",
61
+ "@atlaskit/tokens": "^5.4.0",
62
62
  "@atlaskit/tooltip": "^20.3.0",
63
63
  "@atlaskit/ufo": "^0.4.0",
64
64
  "@babel/runtime": "^7.0.0",