UNPKG

@peergrade/react-pdf

Version:

Display PDFs in your React app as easily as if they were images.

146 lines (106 loc) 5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRotate = exports.isPdf = exports.isPageNumber = exports.isPageIndex = exports.isPage = exports.isLinkService = exports.isFile = exports.isClassName = exports.eventsProps = undefined; var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _lodash = require('lodash.once'); var _lodash2 = _interopRequireDefault(_lodash); var _utils = require('./utils'); var _events = require('./events'); var _LinkService = require('../LinkService'); var _LinkService2 = _interopRequireDefault(_LinkService); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var eventsProps = exports.eventsProps = (0, _lodash2.default)(function () { var eventProps = {}; [].concat(_events.mouseEvents, _events.touchEvents).forEach(function (eventName) { eventProps[eventName] = _propTypes2.default.func; }); return eventProps; }); var fileTypes = [_propTypes2.default.string, _propTypes2.default.instanceOf(ArrayBuffer), _propTypes2.default.shape({ data: _propTypes2.default.object, httpHeaders: _propTypes2.default.object, range: _propTypes2.default.object, url: _propTypes2.default.string, withCredentials: _propTypes2.default.bool })]; if (typeof File !== 'undefined') { fileTypes.push(_propTypes2.default.instanceOf(File)); } if (typeof Blob !== 'undefined') { fileTypes.push(_propTypes2.default.instanceOf(Blob)); } var isClassName = exports.isClassName = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]); var isFile = exports.isFile = _propTypes2.default.oneOfType(fileTypes); var isLinkService = exports.isLinkService = _propTypes2.default.instanceOf(_LinkService2.default); var isPage = exports.isPage = _propTypes2.default.shape({ commonObjs: _propTypes2.default.shape({ objs: _propTypes2.default.object.isRequired }).isRequired, getAnnotations: _propTypes2.default.func.isRequired, getTextContent: _propTypes2.default.func.isRequired, getViewport: _propTypes2.default.func.isRequired, render: _propTypes2.default.func.isRequired, transport: _propTypes2.default.shape({ fontLoader: _propTypes2.default.object.isRequired }).isRequired }); var isPageIndex = exports.isPageIndex = function isPageIndex(props, propName, componentName) { var pageIndex = props[propName]; var pageNumber = props.pageNumber, pdf = props.pdf; if (!(0, _utils.isDefined)(pdf)) { return null; } if ((0, _utils.isDefined)(pageIndex)) { if (typeof pageIndex !== 'number') { return new Error('`' + propName + '` of type `' + (typeof pageIndex === 'undefined' ? 'undefined' : (0, _typeof3.default)(pageIndex)) + '` supplied to `' + componentName + '`, expected `number`.'); } if (pageIndex < 0) { return new Error('Expected `' + propName + '` to be greater or equal to 0.'); } var numPages = pdf.pdfInfo.numPages; if (pageIndex + 1 > numPages) { return new Error('Expected `' + propName + '` to be less or equal to ' + (numPages - 1) + '.'); } } else if (!(0, _utils.isDefined)(pageNumber)) { return new Error('`' + propName + '` not supplied. Either pageIndex or pageNumber must be supplied to `' + componentName + '`.'); } // Everything is fine return null; }; var isPageNumber = exports.isPageNumber = function isPageNumber(props, propName, componentName) { var pageNumber = props[propName]; var pageIndex = props.pageIndex, pdf = props.pdf; if (!(0, _utils.isDefined)(pdf)) { return null; } if ((0, _utils.isDefined)(pageNumber)) { if (typeof pageNumber !== 'number') { return new Error('`' + propName + '` of type `' + (typeof pageNumber === 'undefined' ? 'undefined' : (0, _typeof3.default)(pageNumber)) + '` supplied to `' + componentName + '`, expected `number`.'); } if (pageNumber < 1) { return new Error('Expected `' + propName + '` to be greater or equal to 1.'); } var numPages = pdf.pdfInfo.numPages; if (pageNumber > numPages) { return new Error('Expected `' + propName + '` to be less or equal to ' + numPages + '.'); } } else if (!(0, _utils.isDefined)(pageIndex)) { return new Error('`' + propName + '` not supplied. Either pageIndex or pageNumber must be supplied to `' + componentName + '`.'); } // Everything is fine return null; }; var isPdf = exports.isPdf = _propTypes2.default.oneOfType([_propTypes2.default.shape({ getDestination: _propTypes2.default.func.isRequired, getOutline: _propTypes2.default.func.isRequired, getPage: _propTypes2.default.func.isRequired, numPages: _propTypes2.default.number.isRequired }), _propTypes2.default.bool]); var isRotate = exports.isRotate = _propTypes2.default.oneOf([0, 90, 180, 270]);