|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522 |
- "use strict";
-
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports["default"] = exports.PageInternal = void 0;
-
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
-
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
-
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
-
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
-
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
-
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
-
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
-
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
-
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
-
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
- var _react = _interopRequireWildcard(require("react"));
-
- var _propTypes = _interopRequireDefault(require("prop-types"));
-
- var _makeCancellablePromise = _interopRequireDefault(require("make-cancellable-promise"));
-
- var _makeEventProps = _interopRequireDefault(require("make-event-props"));
-
- var _mergeClassNames = _interopRequireDefault(require("merge-class-names"));
-
- var _DocumentContext = _interopRequireDefault(require("./DocumentContext"));
-
- var _PageContext = _interopRequireDefault(require("./PageContext"));
-
- var _Message = _interopRequireDefault(require("./Message"));
-
- var _PageCanvas = _interopRequireDefault(require("./Page/PageCanvas"));
-
- var _PageSVG = _interopRequireDefault(require("./Page/PageSVG"));
-
- var _TextLayer = _interopRequireDefault(require("./Page/TextLayer"));
-
- var _AnnotationLayer = _interopRequireDefault(require("./Page/AnnotationLayer"));
-
- var _utils = require("./shared/utils");
-
- var _propTypes2 = require("./shared/propTypes");
-
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
- function _createSuper(Derived) { return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (_isNativeReflectConstruct()) { 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); }; }
-
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
-
- var defaultScale = 1.0;
-
- var PageInternal = /*#__PURE__*/function (_PureComponent) {
- (0, _inherits2["default"])(PageInternal, _PureComponent);
-
- var _super = _createSuper(PageInternal);
-
- function PageInternal() {
- var _this;
-
- (0, _classCallCheck2["default"])(this, PageInternal);
-
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- _this = _super.call.apply(_super, [this].concat(args));
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
- page: null
- });
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLoadSuccess", function () {
- var _this$props = _this.props,
- onLoadSuccess = _this$props.onLoadSuccess,
- registerPage = _this$props.registerPage;
- var page = _this.state.page;
- if (onLoadSuccess) onLoadSuccess((0, _utils.makePageCallback)(page, _this.scale));
- if (registerPage) registerPage(_this.pageIndex, _this.ref);
- });
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLoadError", function (error) {
- (0, _utils.errorOnDev)(error);
- var onLoadError = _this.props.onLoadError;
- if (onLoadError) onLoadError(error);
- });
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "loadPage", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
- var pdf, pageNumber, cancellable, page;
- return _regenerator["default"].wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- pdf = _this.props.pdf;
- pageNumber = _this.getPageNumber();
-
- if (pageNumber) {
- _context.next = 4;
- break;
- }
-
- return _context.abrupt("return");
-
- case 4:
- _this.setState(function (prevState) {
- if (!prevState.page) {
- return null;
- }
-
- return {
- page: null
- };
- });
-
- _context.prev = 5;
- cancellable = (0, _makeCancellablePromise["default"])(pdf.getPage(pageNumber));
- _this.runningTask = cancellable;
- _context.next = 10;
- return cancellable.promise;
-
- case 10:
- page = _context.sent;
-
- _this.setState({
- page: page
- }, _this.onLoadSuccess);
-
- _context.next = 18;
- break;
-
- case 14:
- _context.prev = 14;
- _context.t0 = _context["catch"](5);
-
- _this.setState({
- page: false
- });
-
- _this.onLoadError(_context.t0);
-
- case 18:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, null, [[5, 14]]);
- })));
- return _this;
- }
-
- (0, _createClass2["default"])(PageInternal, [{
- key: "componentDidMount",
- value: function componentDidMount() {
- var pdf = this.props.pdf;
-
- if (!pdf) {
- throw new Error('Attempted to load a page, but no document was specified.');
- }
-
- this.loadPage();
- }
- }, {
- key: "componentDidUpdate",
- value: function componentDidUpdate(prevProps) {
- var pdf = this.props.pdf;
-
- if (prevProps.pdf && pdf !== prevProps.pdf || this.getPageNumber() !== this.getPageNumber(prevProps)) {
- var unregisterPage = this.props.unregisterPage;
- if (unregisterPage) unregisterPage(this.getPageIndex(prevProps));
- this.loadPage();
- }
- }
- }, {
- key: "componentWillUnmount",
- value: function componentWillUnmount() {
- var unregisterPage = this.props.unregisterPage;
- if (unregisterPage) unregisterPage(this.pageIndex);
- (0, _utils.cancelRunningTask)(this.runningTask);
- }
- }, {
- key: "getPageIndex",
- value: function getPageIndex() {
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
-
- if ((0, _utils.isProvided)(props.pageNumber)) {
- return props.pageNumber - 1;
- }
-
- if ((0, _utils.isProvided)(props.pageIndex)) {
- return props.pageIndex;
- }
-
- return null;
- }
- }, {
- key: "getPageNumber",
- value: function getPageNumber() {
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
-
- if ((0, _utils.isProvided)(props.pageNumber)) {
- return props.pageNumber;
- }
-
- if ((0, _utils.isProvided)(props.pageIndex)) {
- return props.pageIndex + 1;
- }
-
- return null;
- }
- }, {
- key: "renderMainLayer",
- value: function renderMainLayer() {
- var renderMode = this.props.renderMode;
-
- switch (renderMode) {
- case 'none':
- return null;
-
- case 'svg':
- return /*#__PURE__*/_react["default"].createElement(_PageSVG["default"], {
- key: "".concat(this.pageKeyNoScale, "_svg")
- });
-
- case 'canvas':
- default:
- return /*#__PURE__*/_react["default"].createElement(_PageCanvas["default"], {
- key: "".concat(this.pageKey, "_canvas")
- });
- }
- }
- }, {
- key: "renderTextLayer",
- value: function renderTextLayer() {
- var renderTextLayer = this.props.renderTextLayer;
-
- if (!renderTextLayer) {
- return null;
- }
-
- return /*#__PURE__*/_react["default"].createElement(_TextLayer["default"], {
- key: "".concat(this.pageKey, "_text")
- });
- }
- }, {
- key: "renderAnnotationLayer",
- value: function renderAnnotationLayer() {
- var renderAnnotationLayer = this.props.renderAnnotationLayer;
-
- if (!renderAnnotationLayer) {
- return null;
- }
- /**
- * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.
- * Therefore, as a fallback, we render "traditional" AnnotationLayer component.
- */
-
-
- return /*#__PURE__*/_react["default"].createElement(_AnnotationLayer["default"], {
- key: "".concat(this.pageKey, "_annotations")
- });
- }
- }, {
- key: "renderChildren",
- value: function renderChildren() {
- var children = this.props.children;
- return /*#__PURE__*/_react["default"].createElement(_PageContext["default"].Provider, {
- value: this.childContext
- }, this.renderMainLayer(), this.renderTextLayer(), this.renderAnnotationLayer(), children);
- }
- }, {
- key: "renderContent",
- value: function renderContent() {
- var pageNumber = this.pageNumber;
- var pdf = this.props.pdf;
- var page = this.state.page;
-
- if (!pageNumber) {
- var noData = this.props.noData;
- return /*#__PURE__*/_react["default"].createElement(_Message["default"], {
- type: "no-data"
- }, typeof noData === 'function' ? noData() : noData);
- }
-
- if (pdf === null || page === null) {
- var loading = this.props.loading;
- return /*#__PURE__*/_react["default"].createElement(_Message["default"], {
- type: "loading"
- }, typeof loading === 'function' ? loading() : loading);
- }
-
- if (pdf === false || page === false) {
- var error = this.props.error;
- return /*#__PURE__*/_react["default"].createElement(_Message["default"], {
- type: "error"
- }, typeof error === 'function' ? error() : error);
- }
-
- return this.renderChildren();
- }
- }, {
- key: "render",
- value: function render() {
- var _this2 = this;
-
- var pageNumber = this.pageNumber;
- var className = this.props.className;
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
- className: (0, _mergeClassNames["default"])('react-pdf__Page', className),
- "data-page-number": pageNumber,
- ref: function ref(_ref2) {
- var inputRef = _this2.props.inputRef;
-
- if (inputRef) {
- inputRef(_ref2);
- }
-
- _this2.ref = _ref2;
- },
- style: {
- position: 'relative'
- }
- }, this.eventProps), this.renderContent());
- }
- }, {
- key: "childContext",
- get: function get() {
- var page = this.state.page;
-
- if (!page) {
- return {};
- }
-
- var _this$props2 = this.props,
- customTextRenderer = _this$props2.customTextRenderer,
- onGetAnnotationsError = _this$props2.onGetAnnotationsError,
- onGetAnnotationsSuccess = _this$props2.onGetAnnotationsSuccess,
- onGetTextError = _this$props2.onGetTextError,
- onGetTextSuccess = _this$props2.onGetTextSuccess,
- onRenderAnnotationLayerError = _this$props2.onRenderAnnotationLayerError,
- onRenderAnnotationLayerSuccess = _this$props2.onRenderAnnotationLayerSuccess,
- onRenderError = _this$props2.onRenderError,
- onRenderSuccess = _this$props2.onRenderSuccess,
- renderInteractiveForms = _this$props2.renderInteractiveForms;
- return {
- customTextRenderer: customTextRenderer,
- onGetAnnotationsError: onGetAnnotationsError,
- onGetAnnotationsSuccess: onGetAnnotationsSuccess,
- onGetTextError: onGetTextError,
- onGetTextSuccess: onGetTextSuccess,
- onRenderAnnotationLayerError: onRenderAnnotationLayerError,
- onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccess,
- onRenderError: onRenderError,
- onRenderSuccess: onRenderSuccess,
- page: page,
- renderInteractiveForms: renderInteractiveForms,
- rotate: this.rotate,
- scale: this.scale
- };
- }
- /**
- * Called when a page is loaded successfully
- */
-
- }, {
- key: "pageIndex",
- get: function get() {
- return this.getPageIndex();
- }
- }, {
- key: "pageNumber",
- get: function get() {
- return this.getPageNumber();
- }
- }, {
- key: "rotate",
- get: function get() {
- var rotate = this.props.rotate;
-
- if ((0, _utils.isProvided)(rotate)) {
- return rotate;
- }
-
- var page = this.state.page;
-
- if (!page) {
- return null;
- }
-
- return page.rotate;
- }
- }, {
- key: "scale",
- get: function get() {
- var page = this.state.page;
-
- if (!page) {
- return null;
- }
-
- var _this$props3 = this.props,
- scale = _this$props3.scale,
- width = _this$props3.width,
- height = _this$props3.height;
- var rotate = this.rotate; // Be default, we'll render page at 100% * scale width.
-
- var pageScale = 1; // Passing scale explicitly null would cause the page not to render
-
- var scaleWithDefault = scale === null ? defaultScale : scale; // If width/height is defined, calculate the scale of the page so it could be of desired width.
-
- if (width || height) {
- var viewport = page.getViewport({
- scale: 1,
- rotation: rotate
- });
- pageScale = width ? width / viewport.width : height / viewport.height;
- }
-
- return scaleWithDefault * pageScale;
- }
- }, {
- key: "eventProps",
- get: function get() {
- var _this3 = this;
-
- return (0, _makeEventProps["default"])(this.props, function () {
- var page = _this3.state.page;
-
- if (!page) {
- return page;
- }
-
- return (0, _utils.makePageCallback)(page, _this3.scale);
- });
- }
- }, {
- key: "pageKey",
- get: function get() {
- var page = this.state.page;
- return "".concat(page.pageIndex, "@").concat(this.scale, "/").concat(this.rotate);
- }
- }, {
- key: "pageKeyNoScale",
- get: function get() {
- var page = this.state.page;
- return "".concat(page.pageIndex, "/").concat(this.rotate);
- }
- }]);
- return PageInternal;
- }(_react.PureComponent);
-
- exports.PageInternal = PageInternal;
- PageInternal.defaultProps = {
- error: 'Failed to load the page.',
- loading: 'Loading page…',
- noData: 'No page specified.',
- renderAnnotationLayer: true,
- renderInteractiveForms: false,
- renderMode: 'canvas',
- renderTextLayer: true,
- scale: defaultScale
- };
-
- var isFunctionOrNode = _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]);
-
- PageInternal.propTypes = _objectSpread({}, _propTypes2.eventProps, {
- children: _propTypes["default"].node,
- className: _propTypes2.isClassName,
- customTextRenderer: _propTypes["default"].func,
- error: isFunctionOrNode,
- height: _propTypes["default"].number,
- inputRef: _propTypes["default"].func,
- loading: isFunctionOrNode,
- noData: isFunctionOrNode,
- onGetTextError: _propTypes["default"].func,
- onGetTextSuccess: _propTypes["default"].func,
- onLoadError: _propTypes["default"].func,
- onLoadSuccess: _propTypes["default"].func,
- onRenderError: _propTypes["default"].func,
- onRenderSuccess: _propTypes["default"].func,
- pageIndex: _propTypes2.isPageIndex,
- pageNumber: _propTypes2.isPageNumber,
- pdf: _propTypes2.isPdf,
- registerPage: _propTypes["default"].func,
- renderAnnotationLayer: _propTypes["default"].bool,
- renderInteractiveForms: _propTypes["default"].bool,
- renderMode: _propTypes2.isRenderMode,
- renderTextLayer: _propTypes["default"].bool,
- rotate: _propTypes2.isRotate,
- scale: _propTypes["default"].number,
- unregisterPage: _propTypes["default"].func,
- width: _propTypes["default"].number
- }); // forwardRef render functions do not support propTypes
-
- /* eslint-disable react/prop-types */
-
- function Page(props, ref) {
- return /*#__PURE__*/_react["default"].createElement(_DocumentContext["default"].Consumer, null, function (context) {
- return /*#__PURE__*/_react["default"].createElement(PageInternal, (0, _extends2["default"])({
- ref: ref
- }, context, props, {
- // For backwards compatibility
- renderAnnotationLayer: typeof props.renderAnnotationLayer !== 'undefined' ? props.renderAnnotationLayer : props.renderAnnotations
- }));
- });
- }
-
- var _default = _react["default"].forwardRef(Page);
-
- exports["default"] = _default;
|