react-pdf-annotator
Advanced tools
Comparing version 0.0.6 to 1.0.0
@@ -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 @@ }; |
@@ -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
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
0
55
101470
6
43
1374
+ Addedlodash@^4.17.10
+ Addedreact-pointable@^1.1.1
+ Addedacorn@4.0.135.7.4(transitive)
+ Addedacorn-dynamic-import@2.0.2(transitive)
+ Addedalign-text@0.1.4(transitive)
+ Addedansi-regex@2.1.1(transitive)
+ Addedasync@2.6.4(transitive)
+ Addedcamelcase@1.2.14.1.0(transitive)
+ Addedcenter-align@0.1.3(transitive)
+ Addedcliui@2.1.03.2.0(transitive)
+ Addedcode-point-at@1.1.0(transitive)
+ Addedcross-spawn@5.1.0(transitive)
+ Addedd@1.0.2(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addedenhanced-resolve@3.4.1(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedes5-ext@0.10.64(transitive)
+ Addedes6-iterator@2.0.3(transitive)
+ Addedes6-map@0.1.5(transitive)
+ Addedes6-set@0.1.6(transitive)
+ Addedes6-symbol@3.1.4(transitive)
+ Addedes6-weak-map@2.0.3(transitive)
+ Addedescope@3.6.0(transitive)
+ Addedesniff@2.0.1(transitive)
+ Addedevent-emitter@0.3.5(transitive)
+ Addedexeca@0.7.0(transitive)
+ Addedext@1.7.0(transitive)
+ Addedfind-up@2.1.0(transitive)
+ Addedget-caller-file@1.0.3(transitive)
+ Addedget-stream@3.0.0(transitive)
+ Addedhas-flag@2.0.0(transitive)
+ Addedhosted-git-info@2.8.9(transitive)
+ Addedinterpret@1.4.0(transitive)
+ Addedinvert-kv@1.0.0(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-core-module@2.15.0(transitive)
+ Addedis-fullwidth-code-point@1.0.0(transitive)
+ Addedis-stream@1.1.0(transitive)
+ Addedisexe@2.0.0(transitive)
+ Addedjson-loader@0.5.7(transitive)
+ Addedjson5@0.5.1(transitive)
+ Addedlazy-cache@1.0.4(transitive)
+ Addedlcid@1.0.0(transitive)
+ Addedload-json-file@2.0.0(transitive)
+ Addedlocate-path@2.0.0(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlongest@1.0.1(transitive)
+ Addedlru-cache@4.1.5(transitive)
+ Addedmem@1.1.0(transitive)
+ Addedmimic-fn@1.2.0(transitive)
+ Addednext-tick@1.1.0(transitive)
+ Addednormalize-package-data@2.5.0(transitive)
+ Addednpm-run-path@2.0.2(transitive)
+ Addednumber-is-nan@1.0.1(transitive)
+ Addedos-locale@2.1.0(transitive)
+ Addedp-finally@1.0.0(transitive)
+ Addedp-limit@1.3.0(transitive)
+ Addedp-locate@2.0.0(transitive)
+ Addedp-try@1.0.0(transitive)
+ Addedparse-json@2.2.0(transitive)
+ Addedpath-key@2.0.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpath-type@2.0.0(transitive)
+ Addedpdfjs-dist@2.0.489(transitive)
+ Addedpify@2.3.0(transitive)
+ Addedpseudomap@1.0.2(transitive)
+ Addedreact@16.14.0(transitive)
+ Addedreact-pointable@1.1.3(transitive)
+ Addedread-pkg@2.0.0(transitive)
+ Addedread-pkg-up@2.0.0(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedrequire-main-filename@1.0.1(transitive)
+ Addedresolve@1.22.8(transitive)
+ Addedright-align@0.1.3(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedshebang-command@1.2.0(transitive)
+ Addedshebang-regex@1.0.0(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addedspdx-correct@3.2.0(transitive)
+ Addedspdx-exceptions@2.5.0(transitive)
+ Addedspdx-expression-parse@3.0.1(transitive)
+ Addedspdx-license-ids@3.0.18(transitive)
+ Addedstring-width@1.0.2(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedstrip-bom@3.0.0(transitive)
+ Addedstrip-eof@1.0.0(transitive)
+ Addedsupports-color@4.5.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtapable@0.2.9(transitive)
+ Addedtype@2.7.3(transitive)
+ Addeduglify-js@2.8.29(transitive)
+ Addeduglify-to-browserify@1.0.2(transitive)
+ Addeduglifyjs-webpack-plugin@0.4.6(transitive)
+ Addedvalidate-npm-package-license@3.0.4(transitive)
+ Addedwebpack@3.12.0(transitive)
+ Addedwhich@1.3.1(transitive)
+ Addedwhich-module@2.0.1(transitive)
+ Addedwindow-size@0.1.0(transitive)
+ Addedwordwrap@0.0.2(transitive)
+ Addedwrap-ansi@2.1.0(transitive)
+ Addedy18n@3.2.2(transitive)
+ Addedyallist@2.1.2(transitive)
+ Addedyargs@3.10.08.0.2(transitive)
+ Addedyargs-parser@7.0.0(transitive)
- Removed@webassemblyjs/ast@1.9.0(transitive)
- Removed@webassemblyjs/floating-point-hex-parser@1.9.0(transitive)
- Removed@webassemblyjs/helper-api-error@1.9.0(transitive)
- Removed@webassemblyjs/helper-buffer@1.9.0(transitive)
- Removed@webassemblyjs/helper-code-frame@1.9.0(transitive)
- Removed@webassemblyjs/helper-fsm@1.9.0(transitive)
- Removed@webassemblyjs/helper-module-context@1.9.0(transitive)
- Removed@webassemblyjs/helper-wasm-bytecode@1.9.0(transitive)
- Removed@webassemblyjs/helper-wasm-section@1.9.0(transitive)
- Removed@webassemblyjs/ieee754@1.9.0(transitive)
- Removed@webassemblyjs/leb128@1.9.0(transitive)
- Removed@webassemblyjs/utf8@1.9.0(transitive)
- Removed@webassemblyjs/wasm-edit@1.9.0(transitive)
- Removed@webassemblyjs/wasm-gen@1.9.0(transitive)
- Removed@webassemblyjs/wasm-opt@1.9.0(transitive)
- Removed@webassemblyjs/wasm-parser@1.9.0(transitive)
- Removed@webassemblyjs/wast-parser@1.9.0(transitive)
- Removed@webassemblyjs/wast-printer@1.9.0(transitive)
- Removed@xtuc/ieee754@1.2.0(transitive)
- Removed@xtuc/long@4.2.2(transitive)
- Removedacorn@6.4.2(transitive)
- Removedajv-errors@1.0.1(transitive)
- Removedaproba@1.2.0(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbluebird@3.7.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedbuffer-from@1.1.2(transitive)
- Removedcacache@12.0.4(transitive)
- Removedchownr@1.1.4(transitive)
- Removedchrome-trace-event@1.0.4(transitive)
- Removedcommander@2.20.3(transitive)
- Removedcommondir@1.0.1(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedconcat-stream@1.6.2(transitive)
- Removedcopy-concurrently@1.0.5(transitive)
- Removedcyclist@1.0.2(transitive)
- Removedduplexify@3.7.1(transitive)
- Removedend-of-stream@1.4.4(transitive)
- Removedenhanced-resolve@4.5.0(transitive)
- Removedeslint-scope@4.0.3(transitive)
- Removedfiggy-pudding@3.5.2(transitive)
- Removedfind-cache-dir@2.1.0(transitive)
- Removedfind-up@3.0.0(transitive)
- Removedflush-write-stream@1.1.1(transitive)
- Removedfrom2@2.3.0(transitive)
- Removedfs-write-stream-atomic@1.0.10(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedglob@7.2.3(transitive)
- Removediferr@0.1.5(transitive)
- Removedimurmurhash@0.1.4(transitive)
- Removedinfer-owner@1.0.4(transitive)
- Removedinflight@1.0.6(transitive)
- Removedis-wsl@1.1.0(transitive)
- Removedjson-parse-better-errors@1.0.2(transitive)
- Removedlocate-path@3.0.0(transitive)
- Removedlru-cache@5.1.1(transitive)
- Removedmake-dir@2.1.0(transitive)
- Removedmemory-fs@0.5.0(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedmississippi@3.0.0(transitive)
- Removedmove-concurrently@1.0.1(transitive)
- Removedonce@1.4.0(transitive)
- Removedp-limit@2.3.0(transitive)
- Removedp-locate@3.0.0(transitive)
- Removedp-try@2.2.0(transitive)
- Removedparallel-transform@1.2.0(transitive)
- Removedpdfjs-dist@2.0.159(transitive)
- Removedpify@4.0.1(transitive)
- Removedpkg-dir@3.0.0(transitive)
- Removedpromise-inflight@1.0.1(transitive)
- Removedpump@2.0.13.0.0(transitive)
- Removedpumpify@1.5.1(transitive)
- Removedrimraf@2.7.1(transitive)
- Removedrun-queue@1.0.3(transitive)
- Removedschema-utils@1.0.0(transitive)
- Removedserialize-javascript@4.0.0(transitive)
- Removedsource-map-support@0.5.21(transitive)
- Removedssri@6.0.2(transitive)
- Removedstream-each@1.2.3(transitive)
- Removedstream-shift@1.0.3(transitive)
- Removedtapable@1.1.3(transitive)
- Removedterser@4.8.1(transitive)
- Removedterser-webpack-plugin@1.4.6(transitive)
- Removedthrough2@2.0.5(transitive)
- Removedtypedarray@0.0.6(transitive)
- Removedunique-filename@1.1.1(transitive)
- Removedunique-slug@2.0.2(transitive)
- Removedwebpack@4.47.0(transitive)
- Removedworker-farm@1.7.0(transitive)
- Removedwrappy@1.0.2(transitive)
- Removedy18n@4.0.3(transitive)
- Removedyallist@3.1.1(transitive)
Updatedpdfjs-dist@2.0.489