Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports["default"] = PageSVG;
  8. exports.PageSVGInternal = void 0;
  9. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  10. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  11. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  12. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  13. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  14. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  15. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  16. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  17. var _react = _interopRequireWildcard(require("react"));
  18. var _propTypes = _interopRequireDefault(require("prop-types"));
  19. var _pdfjsDist = _interopRequireDefault(require("pdfjs-dist"));
  20. var _PageContext = _interopRequireDefault(require("../PageContext"));
  21. var _utils = require("../shared/utils");
  22. var _propTypes2 = require("../shared/propTypes");
  23. 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); }; }
  24. 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; } }
  25. var PageSVGInternal = /*#__PURE__*/function (_PureComponent) {
  26. (0, _inherits2["default"])(PageSVGInternal, _PureComponent);
  27. var _super = _createSuper(PageSVGInternal);
  28. function PageSVGInternal() {
  29. var _this;
  30. (0, _classCallCheck2["default"])(this, PageSVGInternal);
  31. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  32. args[_key] = arguments[_key];
  33. }
  34. _this = _super.call.apply(_super, [this].concat(args));
  35. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
  36. svg: null
  37. });
  38. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRenderSuccess", function () {
  39. _this.renderer = null;
  40. var _this$props = _this.props,
  41. onRenderSuccess = _this$props.onRenderSuccess,
  42. page = _this$props.page,
  43. scale = _this$props.scale;
  44. if (onRenderSuccess) onRenderSuccess((0, _utils.makePageCallback)(page, scale));
  45. });
  46. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRenderError", function (error) {
  47. if ((0, _utils.isCancelException)(error)) {
  48. return;
  49. }
  50. (0, _utils.errorOnDev)(error);
  51. var onRenderError = _this.props.onRenderError;
  52. if (onRenderError) onRenderError(error);
  53. });
  54. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderSVG", function () {
  55. var page = _this.props.page;
  56. _this.renderer = page.getOperatorList();
  57. return _this.renderer.then(function (operatorList) {
  58. var svgGfx = new _pdfjsDist["default"].SVGGraphics(page.commonObjs, page.objs);
  59. _this.renderer = svgGfx.getSVG(operatorList, _this.viewport).then(function (svg) {
  60. _this.setState({
  61. svg: svg
  62. }, _this.onRenderSuccess);
  63. })["catch"](_this.onRenderError);
  64. })["catch"](_this.onRenderError);
  65. });
  66. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "drawPageOnContainer", function (element) {
  67. var svg = _this.state.svg;
  68. if (!element || !svg) {
  69. return;
  70. } // Append SVG element to the main container, if this hasn't been done already
  71. if (!element.firstElementChild) {
  72. element.appendChild(svg);
  73. }
  74. var _this$viewport = _this.viewport,
  75. width = _this$viewport.width,
  76. height = _this$viewport.height;
  77. svg.setAttribute('width', width);
  78. svg.setAttribute('height', height);
  79. });
  80. return _this;
  81. }
  82. (0, _createClass2["default"])(PageSVGInternal, [{
  83. key: "componentDidMount",
  84. value: function componentDidMount() {
  85. this.renderSVG();
  86. }
  87. /**
  88. * Called when a page is rendered successfully.
  89. */
  90. }, {
  91. key: "render",
  92. value: function render() {
  93. var _this2 = this;
  94. var _this$viewport2 = this.viewport,
  95. width = _this$viewport2.width,
  96. height = _this$viewport2.height;
  97. return /*#__PURE__*/_react["default"].createElement("div", {
  98. className: "react-pdf__Page__svg" // Note: This cannot be shortened, as we need this function to be called with each render.
  99. ,
  100. ref: function ref(_ref) {
  101. return _this2.drawPageOnContainer(_ref);
  102. },
  103. style: {
  104. display: 'block',
  105. backgroundColor: 'white',
  106. overflow: 'hidden',
  107. width: width,
  108. height: height,
  109. userSelect: 'none'
  110. }
  111. });
  112. }
  113. }, {
  114. key: "viewport",
  115. get: function get() {
  116. var _this$props2 = this.props,
  117. page = _this$props2.page,
  118. rotate = _this$props2.rotate,
  119. scale = _this$props2.scale;
  120. return page.getViewport({
  121. scale: scale,
  122. rotation: rotate
  123. });
  124. }
  125. }]);
  126. return PageSVGInternal;
  127. }(_react.PureComponent);
  128. exports.PageSVGInternal = PageSVGInternal;
  129. PageSVGInternal.propTypes = {
  130. onRenderError: _propTypes["default"].func,
  131. onRenderSuccess: _propTypes["default"].func,
  132. page: _propTypes2.isPage.isRequired,
  133. rotate: _propTypes2.isRotate,
  134. scale: _propTypes["default"].number
  135. };
  136. function PageSVG(props) {
  137. return /*#__PURE__*/_react["default"].createElement(_PageContext["default"].Consumer, null, function (context) {
  138. return /*#__PURE__*/_react["default"].createElement(PageSVGInternal, (0, _extends2["default"])({}, context, props));
  139. });
  140. }