You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

react-pdf-annotator

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.6 to 1.0.0

5

lib/components/MouseMonitor.js

@@ -78,3 +78,4 @@ "use strict";

paddingY = _props.paddingY,
restProps = _objectWithoutProperties(_props, ["onMoveAway", "paddingX", "paddingY"]);
children = _props.children,
restProps = _objectWithoutProperties(_props, ["onMoveAway", "paddingX", "paddingY", "children"]);

@@ -86,3 +87,3 @@ return _react2.default.createElement(

} },
_react2.default.cloneElement(this.props.children, restProps)
_react2.default.cloneElement(children, restProps)
);

@@ -89,0 +90,0 @@ };

160

lib/components/PdfAnnotator.js

@@ -5,2 +5,6 @@ "use strict";

var _debounce2 = require("lodash/fp/debounce");
var _debounce3 = _interopRequireDefault(_debounce2);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

@@ -16,4 +20,8 @@

var _pdfjsDist = require("pdfjs-dist");
var _reactPointable = require("react-pointable");
var _reactPointable2 = _interopRequireDefault(_reactPointable);
var _pdf_viewer = require("pdfjs-dist/web/pdf_viewer");
require("pdfjs-dist/web/pdf_viewer.css");

@@ -39,6 +47,2 @@

var _TextLayerBuilder_bindMouse = require("../PDFJS/TextLayerBuilder_bindMouse");
var _TextLayerBuilder_bindMouse2 = _interopRequireDefault(_TextLayerBuilder_bindMouse);
var _TipContainer = require("./TipContainer");

@@ -64,13 +68,10 @@

require("pdfjs-dist/web/pdf_viewer");
// @FIXME: hack
_pdfjsDist.PDFJS.TextLayerBuilder.prototype._bindMouse = _TextLayerBuilder_bindMouse2.default;
_pdfjsDist.PDFJS.disableWorker = true;
var CLICK_TIMEOUT = 300;
var EMPTY_ID = "empty-id";
var clickTimeoutId = 0;
var disableEvent = function disableEvent(event) {
event.preventDefault();
event.stopPropagation();
return false;
};
var clickTimeoutId = void 0;

@@ -157,2 +158,4 @@ var PdfAnnotator = function (_Component) {

});
_this.debouncedAfterSelection();
}, _this.onScroll = function () {

@@ -181,7 +184,2 @@ var onScrollChange = _this.props.onScrollChange;

_this.hideTipAndSelection();
// let single click go through
clickTimeoutId = setTimeout(function () {
return _this.setState({ isMouseDown: true });
}, CLICK_TIMEOUT);
}, _this.handleKeyDown = function (event) {

@@ -191,6 +189,3 @@ if (event.code === "Escape") {

}
}, _this.onMouseUp = function () {
clearTimeout(clickTimeoutId);
_this.setState({ isMouseDown: false });
}, _this.afterSelection = function () {
var onSelectionFinished = _this.props.onSelectionFinished;

@@ -225,3 +220,2 @@ var _this$state = _this.state,

};
var scaledPosition = _this.viewportPositionToScaled(viewportPosition);

@@ -257,5 +251,6 @@

this.linkService = new _pdfjsDist.PDFJS.PDFLinkService();
this.debouncedAfterSelection = (0, _debounce3.default)(500, this.afterSelection);
this.linkService = new _pdf_viewer.PDFLinkService();
this.viewer = new _pdfjsDist.PDFJS.PDFViewer({
this.viewer = new _pdf_viewer.PDFViewer({
container: this.containerNode,

@@ -273,2 +268,4 @@ enhanceTextSelection: true,

window.oncontextmenu = disableEvent;
document.addEventListener("selectionchange", this.onSelectionChange);

@@ -282,3 +279,2 @@ document.addEventListener("keydown", this.handleKeyDown);

this.containerNode && this.containerNode.addEventListener("textlayerrendered", this.onTextLayerRendered);
this.containerNode && this.containerNode.addEventListener("mousedown", this.onMouseDown);
};

@@ -291,3 +287,2 @@

this.containerNode && this.containerNode.removeEventListener("textlayerrendered", this.onTextLayerRendered);
this.containerNode && this.containerNode.removeEventListener("mousedown", this.onMouseDown);
};

@@ -324,3 +319,2 @@

ghostHighlight = _state.ghostHighlight,
isMouseDown = _state.isMouseDown,
isAreaSelectionInProgress = _state.isAreaSelectionInProgress;

@@ -331,3 +325,3 @@

if (highlightInProgress || isMouseDown || isAreaSelectionInProgress) {
if (highlightInProgress || isAreaSelectionInProgress) {
return;

@@ -475,63 +469,61 @@ }

return _react2.default.createElement(
"div",
{
ref: function ref(node) {
return _this4.containerNode = node;
},
onMouseUp: function onMouseUp() {
return setTimeout(_this4.onMouseUp, 0);
},
className: "PdfAnnotator"
},
_react2.default.createElement("div", { className: "pdfViewer" }),
typeof enableAreaSelection === "function" ? _react2.default.createElement(_MouseSelection2.default, {
onDragStart: function onDragStart() {
return _this4.toggleTextSelection(true);
},
onDragEnd: function onDragEnd() {
return _this4.toggleTextSelection(false);
},
onChange: function onChange(isVisible) {
return _this4.setState({ isAreaSelectionInProgress: isVisible });
},
shouldStart: function shouldStart(event) {
return enableAreaSelection(event) && event.target instanceof HTMLElement && Boolean(event.target.closest(".page"));
},
onSelection: function onSelection(startTarget, boundingRect, resetSelection) {
var page = (0, _pdfjsDom.getPageFromElement)(startTarget);
_reactPointable2.default,
{ onPointerDown: this.onMouseDown },
_react2.default.createElement(
"div",
{ ref: function ref(node) {
return _this4.containerNode = node;
}, className: "PdfAnnotator" },
_react2.default.createElement("div", { className: "pdfViewer" }),
typeof enableAreaSelection === "function" ? _react2.default.createElement(_MouseSelection2.default, {
onDragStart: function onDragStart() {
return _this4.toggleTextSelection(true);
},
onDragEnd: function onDragEnd() {
return _this4.toggleTextSelection(false);
},
onChange: function onChange(isVisible) {
return _this4.setState({ isAreaSelectionInProgress: isVisible });
},
shouldStart: function shouldStart(event) {
return enableAreaSelection(event) && event.target instanceof HTMLElement && Boolean(event.target.closest(".page"));
},
onSelection: function onSelection(startTarget, boundingRect, resetSelection) {
var page = (0, _pdfjsDom.getPageFromElement)(startTarget);
if (!page) {
return;
}
if (!page) {
return;
}
var pageBoundingRect = _extends({}, boundingRect, {
top: boundingRect.top - page.node.offsetTop,
left: boundingRect.left - page.node.offsetLeft
});
var pageBoundingRect = _extends({}, boundingRect, {
top: boundingRect.top - page.node.offsetTop,
left: boundingRect.left - page.node.offsetLeft
});
var viewportPosition = {
boundingRect: pageBoundingRect,
rects: [],
pageNumber: page.number
};
var viewportPosition = {
boundingRect: pageBoundingRect,
rects: [],
pageNumber: page.number
};
var scaledPosition = _this4.viewportPositionToScaled(viewportPosition);
var scaledPosition = _this4.viewportPositionToScaled(viewportPosition);
var image = _this4.screenshot(pageBoundingRect, page.number);
var image = _this4.screenshot(pageBoundingRect, page.number);
_this4.renderTipAtPosition(viewportPosition, onSelectionFinished(scaledPosition, { image: image }, function () {
return _this4.hideTipAndSelection();
}, function () {
return _this4.setState({
ghostHighlight: {
position: scaledPosition,
content: { image: image }
}
_this4.renderTipAtPosition(viewportPosition, onSelectionFinished(scaledPosition, { image: image }, function () {
return _this4.hideTipAndSelection();
}, function () {
resetSelection();
_this4.renderHighlights();
});
}));
}
}) : null
return _this4.setState({
ghostHighlight: {
position: scaledPosition,
content: { image: image }
}
}, function () {
resetSelection();
_this4.renderHighlights();
});
}));
}
}) : null
)
);

@@ -538,0 +530,0 @@ };

@@ -9,4 +9,6 @@ "use strict";

var _pdfjsDist = require("pdfjs-dist");
var _webpack = require("pdfjs-dist/webpack");
var _webpack2 = _interopRequireDefault(_webpack);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -43,3 +45,3 @@

_pdfjsDist.PDFJS.getDocument(url).then(function (pdfDocument) {
_webpack2.default.getDocument(url).then(function (pdfDocument) {
_this2.setState({

@@ -46,0 +48,0 @@ pdfDocument: pdfDocument

{
"name": "react-pdf-annotator",
"version": "0.0.6",
"version": "1.0.0",
"description": "Set of React components for PDF annotation",

@@ -21,3 +21,5 @@ "main": "lib/index.js",

"dependencies": {
"pdfjs-dist": "2.0.159",
"lodash": "^4.17.10",
"pdfjs-dist": "2.0.489",
"react-pointable": "^1.1.1",
"react-rnd": "^7.1.5"

@@ -30,7 +32,7 @@ },

"devDependencies": {
"flow-bin": "0.59.0",
"flow-bin": "0.73.0",
"flow-copy-source": "^1.1.0",
"gh-pages": "0.11.0",
"husky": "0.11.9",
"nwb": "^0.19.2",
"nwb": "0.21.0",
"prettier": "^1.8.2",

@@ -37,0 +39,0 @@ "react": "^15.4.2",

@@ -46,2 +46,7 @@ ## react-pdf-annotator

### FAQ
##### Can I get a new PDF with the highlights embedded into the document?
No, but [pdf-annotation-service](https://github.com/agentcooper/pdf-annotation-service) might be helpful for you.
### Compatibility

@@ -48,0 +53,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc