You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

280 lines
10 KiB

  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"] = exports.OutlineItemInternal = void 0;
  8. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  9. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  10. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  11. var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
  12. var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
  13. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  14. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  15. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  16. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  17. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  18. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  19. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  20. var _react = _interopRequireWildcard(require("react"));
  21. var _propTypes = _interopRequireDefault(require("prop-types"));
  22. var _DocumentContext = _interopRequireDefault(require("./DocumentContext"));
  23. var _OutlineContext = _interopRequireDefault(require("./OutlineContext"));
  24. var _Ref = _interopRequireDefault(require("./Ref"));
  25. var _utils = require("./shared/utils");
  26. var _propTypes2 = require("./shared/propTypes");
  27. 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); }; }
  28. 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; } }
  29. var OutlineItemInternal = /*#__PURE__*/function (_PureComponent) {
  30. (0, _inherits2["default"])(OutlineItemInternal, _PureComponent);
  31. var _super = _createSuper(OutlineItemInternal);
  32. function OutlineItemInternal() {
  33. var _this;
  34. (0, _classCallCheck2["default"])(this, OutlineItemInternal);
  35. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  36. args[_key] = arguments[_key];
  37. }
  38. _this = _super.call.apply(_super, [this].concat(args));
  39. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getDestination", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
  40. var _this$props, item, pdf;
  41. return _regenerator["default"].wrap(function _callee$(_context) {
  42. while (1) {
  43. switch (_context.prev = _context.next) {
  44. case 0:
  45. _this$props = _this.props, item = _this$props.item, pdf = _this$props.pdf;
  46. if ((0, _utils.isDefined)(_this.destination)) {
  47. _context.next = 9;
  48. break;
  49. }
  50. if (!(typeof item.dest === 'string')) {
  51. _context.next = 8;
  52. break;
  53. }
  54. _context.next = 5;
  55. return pdf.getDestination(item.dest);
  56. case 5:
  57. _this.destination = _context.sent;
  58. _context.next = 9;
  59. break;
  60. case 8:
  61. _this.destination = item.dest;
  62. case 9:
  63. return _context.abrupt("return", _this.destination);
  64. case 10:
  65. case "end":
  66. return _context.stop();
  67. }
  68. }
  69. }, _callee);
  70. })));
  71. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPageIndex", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
  72. var pdf, destination, _destination, ref;
  73. return _regenerator["default"].wrap(function _callee2$(_context2) {
  74. while (1) {
  75. switch (_context2.prev = _context2.next) {
  76. case 0:
  77. pdf = _this.props.pdf;
  78. if ((0, _utils.isDefined)(_this.pageIndex)) {
  79. _context2.next = 10;
  80. break;
  81. }
  82. _context2.next = 4;
  83. return _this.getDestination();
  84. case 4:
  85. destination = _context2.sent;
  86. if (!destination) {
  87. _context2.next = 10;
  88. break;
  89. }
  90. _destination = (0, _slicedToArray2["default"])(destination, 1), ref = _destination[0];
  91. _context2.next = 9;
  92. return pdf.getPageIndex(new _Ref["default"](ref));
  93. case 9:
  94. _this.pageIndex = _context2.sent;
  95. case 10:
  96. return _context2.abrupt("return", _this.pageIndex);
  97. case 11:
  98. case "end":
  99. return _context2.stop();
  100. }
  101. }
  102. }, _callee2);
  103. })));
  104. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPageNumber", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
  105. return _regenerator["default"].wrap(function _callee3$(_context3) {
  106. while (1) {
  107. switch (_context3.prev = _context3.next) {
  108. case 0:
  109. if ((0, _utils.isDefined)(_this.pageNumber)) {
  110. _context3.next = 5;
  111. break;
  112. }
  113. _context3.next = 3;
  114. return _this.getPageIndex();
  115. case 3:
  116. _context3.t0 = _context3.sent;
  117. _this.pageNumber = _context3.t0 + 1;
  118. case 5:
  119. return _context3.abrupt("return", _this.pageNumber);
  120. case 6:
  121. case "end":
  122. return _context3.stop();
  123. }
  124. }
  125. }, _callee3);
  126. })));
  127. (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClick", /*#__PURE__*/function () {
  128. var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(event) {
  129. var onClick, pageIndex, pageNumber;
  130. return _regenerator["default"].wrap(function _callee4$(_context4) {
  131. while (1) {
  132. switch (_context4.prev = _context4.next) {
  133. case 0:
  134. onClick = _this.props.onClick;
  135. event.preventDefault();
  136. _context4.next = 4;
  137. return _this.getPageIndex();
  138. case 4:
  139. pageIndex = _context4.sent;
  140. _context4.next = 7;
  141. return _this.getPageNumber();
  142. case 7:
  143. pageNumber = _context4.sent;
  144. if (onClick) {
  145. onClick({
  146. pageIndex: pageIndex,
  147. pageNumber: pageNumber
  148. });
  149. }
  150. case 9:
  151. case "end":
  152. return _context4.stop();
  153. }
  154. }
  155. }, _callee4);
  156. }));
  157. return function (_x) {
  158. return _ref4.apply(this, arguments);
  159. };
  160. }());
  161. return _this;
  162. }
  163. (0, _createClass2["default"])(OutlineItemInternal, [{
  164. key: "renderSubitems",
  165. value: function renderSubitems() {
  166. var _this$props2 = this.props,
  167. item = _this$props2.item,
  168. otherProps = (0, _objectWithoutProperties2["default"])(_this$props2, ["item"]);
  169. if (!item.items || !item.items.length) {
  170. return null;
  171. }
  172. var subitems = item.items;
  173. return /*#__PURE__*/_react["default"].createElement("ul", null, subitems.map(function (subitem, subitemIndex) {
  174. return /*#__PURE__*/_react["default"].createElement(OutlineItemInternal, (0, _extends2["default"])({
  175. key: typeof subitem.destination === 'string' ? subitem.destination : subitemIndex,
  176. item: subitem
  177. }, otherProps));
  178. }));
  179. }
  180. }, {
  181. key: "render",
  182. value: function render() {
  183. var item = this.props.item;
  184. /* eslint-disable jsx-a11y/anchor-is-valid */
  185. return /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {
  186. href: "#",
  187. onClick: this.onClick
  188. }, item.title), this.renderSubitems());
  189. }
  190. }]);
  191. return OutlineItemInternal;
  192. }(_react.PureComponent);
  193. exports.OutlineItemInternal = OutlineItemInternal;
  194. var isDestination = _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].any)]);
  195. OutlineItemInternal.propTypes = {
  196. item: _propTypes["default"].shape({
  197. dest: isDestination,
  198. items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
  199. dest: isDestination,
  200. title: _propTypes["default"].string
  201. })),
  202. title: _propTypes["default"].string
  203. }).isRequired,
  204. onClick: _propTypes["default"].func,
  205. pdf: _propTypes2.isPdf.isRequired
  206. };
  207. var OutlineItem = function OutlineItem(props) {
  208. return /*#__PURE__*/_react["default"].createElement(_DocumentContext["default"].Consumer, null, function (documentContext) {
  209. return /*#__PURE__*/_react["default"].createElement(_OutlineContext["default"].Consumer, null, function (outlineContext) {
  210. return /*#__PURE__*/_react["default"].createElement(OutlineItemInternal, (0, _extends2["default"])({}, documentContext, outlineContext, props));
  211. });
  212. });
  213. };
  214. var _default = OutlineItem;
  215. exports["default"] = _default;