Socket
Socket
Sign inDemoInstall

@react-pdf-viewer/highlight

Package Overview
Dependencies
74
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.11.0 to 3.12.0

6

lib/cjs/highlight.js

@@ -733,3 +733,7 @@ 'use strict';

var leftOffset = function (viewportWidth, _) { return ((100 - area.left) * viewportWidth) / 100; };
jumpToDestination(area.pageIndex, bottomOffset, leftOffset);
jumpToDestination({
pageIndex: area.pageIndex,
bottomOffset: bottomOffset,
leftOffset: leftOffset,
});
}

@@ -736,0 +740,0 @@ };

2

lib/cjs/highlight.min.js

@@ -1,1 +0,1 @@

"use strict";var e=require("@react-pdf-viewer/core");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var n,i=t(require("react"));!function(e){e.NoSelection="NoSelection",e.Selecting="Selecting",e.Selected="Selected",e.Selection="Selection",e.ClickDragging="ClickDragging",e.ClickDragged="ClickDragged"}(n||(n={}));var r,a={height:0,left:0,pageIndex:-1,top:0,width:0},o={highlightAreas:[],selectionRegion:a,type:n.NoSelection},c={highlightAreas:[],selectionRegion:a,type:n.Selecting},g=function(e){var t=e.canvasLayerRef,r=e.canvasLayerRendered,a=e.pageIndex,c=e.store,g=e.textLayerRef,l=e.textLayerRendered,h=i.useRef(),u=i.useRef(document.body.style.cursor),s=i.useRef({x:0,y:0}),d=i.useRef({top:0,left:0}),f=function(){var e=h.current;e&&e.classList.add("rpv-highlight__click-drag--hidden")},p=function(e){var t=g.current,i=h.current;if(e.altKey&&t&&i&&0===e.button){e.preventDefault(),document.body.style.cursor="crosshair";var r=t.getBoundingClientRect(),a={x:e.clientX,y:e.clientY};s.current=a;var o={top:100*(a.y-r.top)/r.height,left:100*(a.x-r.left)/r.width};d.current=o,i.style.top="".concat(o.top,"%"),i.style.left="".concat(o.left,"%"),i.style.height="0px",i.style.width="0px",document.addEventListener("mousemove",v),document.addEventListener("mouseup",w),c.updateCurrentValue("highlightState",(function(e){return Object.assign({},e,{type:n.ClickDragging})}))}},v=function(e){var t=g.current,n=h.current;if(t&&n){e.preventDefault();var i=e.clientX-s.current.x,r=e.clientY-s.current.y,a=t.getBoundingClientRect();n.classList.contains("rpv-highlight__click-drag--hidden")&&n.classList.remove("rpv-highlight__click-drag--hidden");var o=Math.min(100-d.current.left,100*i/a.width),c=Math.min(100-d.current.top,100*r/a.height);n.style.width="".concat(o,"%"),n.style.height="".concat(c,"%")}},m=function(e){"Escape"===e.key&&c.get("highlightState").type===n.ClickDragged&&(e.preventDefault(),f(),c.update("highlightState",o))},x=function(e){var t=h.current;t&&(c.get("highlightState").type===n.NoSelection&&e.target!==t&&f())},w=function(e){e.preventDefault(),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",w),y();var i=h.current,r=t.current;if(i&&r){var o,g,l={pageIndex:a,top:parseFloat(i.style.top.slice(0,-1)),left:parseFloat(i.style.left.slice(0,-1)),height:parseFloat(i.style.height.slice(0,-1)),width:parseFloat(i.style.width.slice(0,-1))},u=(o=document.createElement("canvas"),g=window.devicePixelRatio||1,function(e,t){var n=e.getBoundingClientRect(),i=t.left*n.width/100,r=t.top*n.height/100,a=t.width*n.width/100,c=t.height*n.height/100,l=o.getContext("2d");return o.width=a,o.height=c,null==l||l.drawImage(e,i*g,r*g,a*g,c*g,0,0,a,c),o.toDataURL("image/png")})(r,l),s={highlightAreas:[l],previewImage:u,selectionRegion:l,type:n.ClickDragged};c.update("highlightState",s)}},y=function(){u.current?document.body.style.cursor=u.current:document.body.style.removeProperty("cursor")},S=function(e){(e.type===n.Selection||e.type===n.ClickDragging&&e.selectionRegion.pageIndex!==a)&&f()};return i.useEffect((function(){return c.subscribe("highlightState",S),function(){c.unsubscribe("highlightState",S)}}),[]),i.useEffect((function(){var e=t.current,n=g.current;if(r&&l&&e&&n){n.addEventListener("mousedown",p);var i={capture:!0};return document.addEventListener("keydown",m),document.addEventListener("click",x,i),function(){n.removeEventListener("mousedown",p),document.removeEventListener("click",x,i),document.removeEventListener("keydown",m)}}}),[l]),i.createElement("div",{ref:h,className:"rpv-highlight__click-drag rpv-highlight__click-drag--hidden"})},l="data-highlight-text-layer",h="data-highlight-text-page",u=function(e){return e>=0?e:360+e},s=function(e,t){switch(u(t)){case 90:return{height:"".concat(e.width,"%"),position:"absolute",right:"".concat(e.top,"%"),top:"".concat(e.left,"%"),width:"".concat(e.height,"%")};case 180:return{bottom:"".concat(e.top,"%"),height:"".concat(e.height,"%"),position:"absolute",right:"".concat(e.left,"%"),width:"".concat(e.width,"%")};case 270:return{height:"".concat(e.width,"%"),position:"absolute",left:"".concat(e.top,"%"),bottom:"".concat(e.left,"%"),width:"".concat(e.height,"%")};default:return{height:"".concat(e.height,"%"),position:"absolute",top:"".concat(e.top,"%"),left:"".concat(e.left,"%"),width:"".concat(e.width,"%")}}},d=function(e){var t=e.area,n=e.rotation;return i.createElement("div",{className:"rpv-highlight__selected-text",style:s(t,n)})},f=function(e){var t=i.useState(e.get("rotation")||0),n=t[0],r=t[1],a=function(e){return r(e)};return i.useEffect((function(){return e.subscribe("rotation",a),function(){e.unsubscribe("rotation",a)}}),[]),{rotation:n}},p=function(e){var t=e.pageIndex,r=e.renderHighlightContent,a=e.renderHighlightTarget,c=e.renderHighlights,g=e.store,l=i.useState(g.get("highlightState")),h=l[0],u=l[1],p=f(g).rotation,v=function(e){return u(e)},m=function(){window.getSelection().removeAllRanges(),g.update("highlightState",o)};i.useEffect((function(){return g.subscribe("highlightState",v),function(){g.unsubscribe("highlightState",v)}}),[]);var x=h.type===n.Selection?h.highlightAreas.filter((function(e){return e.pageIndex===t})):[];return i.createElement(i.Fragment,null,a&&(h.type===n.Selected||h.type===n.ClickDragged)&&h.selectionRegion.pageIndex===t&&a({highlightAreas:h.highlightAreas,previewImage:h.previewImage||"",selectedText:h.selectedText||"",selectionRegion:h.selectionRegion,selectionData:h.selectionData,cancel:m,toggle:function(){var e=Object.assign({},h,{type:n.Selection});g.update("highlightState",e),window.getSelection().removeAllRanges()}}),r&&h.type==n.Selection&&h.selectionRegion.pageIndex===t&&r({highlightAreas:h.highlightAreas,previewImage:h.previewImage||"",selectedText:h.selectedText||"",selectionRegion:h.selectionRegion,selectionData:h.selectionData,cancel:m}),x.length>0&&i.createElement("div",null,x.map((function(e,t){return i.createElement(d,{key:t,area:e,rotation:p})}))),c&&c({pageIndex:t,rotation:p,getCssProperties:s}))};exports.Trigger=void 0,(r=exports.Trigger||(exports.Trigger={})).None="None",r.TextSelection="TextSelection";var v,m=function(e,t,n){var i=e.cloneNode(!0);e.parentNode.appendChild(i);var r=i.firstChild,a=new Range;a.setStart(r,t),a.setEnd(r,n);var o=document.createElement("span");a.surroundContents(o);var c=o.getBoundingClientRect();return i.parentNode.removeChild(i),c},x=function(e,t,n,i,r,a){if(n<r){var o=e.slice(n,n+1).map((function(e){return e.textContent.substring(i).trim()})).join(" "),c=e.slice(n+1,r).map((function(e){return e.textContent.trim()})).join(" "),g=e.slice(r,r+1).map((function(e){return e.textContent.substring(0,a||e.textContent.length)})).join(" "),l="".concat(o," ").concat(c," ").concat(g);return{divTexts:e.slice(n,r+1).map((function(e,i){return{divIndex:n+i,pageIndex:t,textContent:e.textContent}})),wholeText:l}}var h=e[n];l=h.textContent.substring(i,a||h.textContent.length).trim();return{divTexts:[{divIndex:n,pageIndex:t,textContent:h.textContent}],wholeText:l}};!function(e){e.SameDiv="SameDiv",e.DifferentDivs="DifferentDivs",e.DifferentPages="DifferentPages"}(v||(v={}));var w=["","\n"],y=function(e){var t=e.store,r=f(t).rotation,a=i.useRef(null),o=i.useState(!1),c=o[0],g=o[1],s=i.useState(t.get("trigger")),d=s[0],p=s[1],y=function(e){var t=e();a.current=t,g(!!t)},S=function(e){return p(e)},b=function(){var e=document.getSelection(),i=t.get("highlightState");if((i.type===n.NoSelection||i.type===n.Selected)&&e.rangeCount>0&&-1===w.indexOf(e.toString())){var a,o,c=e.getRangeAt(0),g=c.startContainer.parentNode,s=c.endContainer.parentNode,d=s instanceof HTMLElement&&s.hasAttribute(l);if(g&&g.parentNode==c.endContainer?o=(a=g).textContent.length:d&&0==c.endOffset?o=(a=c.endContainer.previousSibling).textContent.length:d?(a=c.endContainer,o=c.endOffset):(a=s,o=c.endOffset),g instanceof HTMLElement&&a instanceof HTMLElement){var f=parseInt(g.getAttribute(h),10),p=parseInt(a.getAttribute(h),10),y=g.parentElement,S=a.parentElement,b=y.getBoundingClientRect(),C=[].slice.call(y.querySelectorAll("[".concat(h,"]"))),E=C.indexOf(g),R=S.getBoundingClientRect(),D=[].slice.call(S.querySelectorAll("[".concat(h,"]"))),I=D.indexOf(a),L=c.startOffset,T=v.DifferentPages;switch(!0){case f===p&&E===I:T=v.SameDiv;break;case f===p&&E<I:T=v.DifferentDivs;break;default:T=v.DifferentPages}var k=function(e,t,n){return Array(t-e+1).fill(0).map((function(t,i){return n[e+i].getBoundingClientRect()}))},A=[];switch(T){case v.SameDiv:var P=m(g,L,o);A=[{height:100*P.height/b.height,left:100*(P.left-b.left)/b.width,pageIndex:f,top:100*(P.top-b.top)/b.height,width:100*P.width/b.width}];break;case v.DifferentDivs:A=[m(g,L,g.textContent.length)].concat(k(E+1,I-1,C)).concat([m(a,0,o)]).map((function(e){return{height:100*e.height/b.height,left:100*(e.left-b.left)/b.width,pageIndex:f,top:100*(e.top-b.top)/b.height,width:100*e.width/b.width}}));break;case v.DifferentPages:var N=[m(g,L,g.textContent.length)].concat(k(E+1,C.length-1,C)).map((function(e){return{height:100*e.height/b.height,left:100*(e.left-b.left)/b.width,pageIndex:f,top:100*(e.top-b.top)/b.height,width:100*e.width/b.width}})),O=k(0,I-1,D).concat([m(a,0,o)]).map((function(e){return{height:100*e.height/R.height,left:100*(e.left-R.left)/R.width,pageIndex:p,top:100*(e.top-R.top)/R.height,width:100*e.width/R.width}}));A=N.concat(O)}var _,j="",H=[];switch(T){case v.SameDiv:var M=x(C,f,E,L,E,o);j=M.wholeText,H=M.divTexts;break;case v.DifferentDivs:var q=x(C,f,E,L,I,o);j=q.wholeText,H=q.divTexts;break;case v.DifferentPages:var B=x(C,f,E,L,C.length),F=x(D,p,0,0,I,o);j="".concat(B.wholeText,"\n").concat(F.wholeText),H=B.divTexts.concat(F.divTexts)}if(A.length>0)_=A[A.length-1];else{var V=a.getBoundingClientRect();_={height:100*V.height/R.height,left:100*(V.left-R.left)/R.width,pageIndex:p,top:100*(V.top-R.top)/R.height,width:100*V.width/R.width}}var Y={divTexts:H,selectedText:j,startPageIndex:f,endPageIndex:p,startOffset:L,startDivIndex:E,endOffset:o,endDivIndex:I},X={type:n.Selected,selectedText:j,highlightAreas:A.map((function(e){return function(e,t){switch(u(t)){case 90:return{height:e.width,left:e.top,pageIndex:e.pageIndex,top:100-e.width-e.left,width:e.height};case 180:return{height:e.height,left:100-e.width-e.left,pageIndex:e.pageIndex,top:100-e.height-e.top,width:e.width};case 270:return{height:e.width,left:100-e.height-e.top,pageIndex:e.pageIndex,top:e.left,width:e.height};default:return e}}(e,r)})),selectionData:Y,selectionRegion:_};t.update("highlightState",X)}}};return i.useEffect((function(){var e=a.current;if(e&&d!==exports.Trigger.None)return e.addEventListener("mouseup",b),function(){e.removeEventListener("mouseup",b)}}),[c,d,r]),i.useEffect((function(){return t.subscribe("getPagesContainer",y),t.subscribe("trigger",S),function(){t.unsubscribe("getPagesContainer",y),t.unsubscribe("trigger",S)}}),[]),i.createElement(i.Fragment,null)},S="rpv-highlight__selected-end";exports.MessageIcon=function(){return i.createElement(e.Icon,{size:16},i.createElement("path",{d:"M23.5,17a1,1,0,0,1-1,1h-11l-4,4V18h-6a1,1,0,0,1-1-1V3a1,1,0,0,1,1-1h21a1,1,0,0,1,1,1Z"}),i.createElement("path",{d:"M5.5 12L18.5 12"}),i.createElement("path",{d:"M5.5 7L18.5 7"}))},exports.highlightPlugin=function(t){var r=Object.assign({},{trigger:exports.Trigger.TextSelection},t),a=i.useMemo((function(){return e.createStore({highlightState:o,trigger:r.trigger})}),[]);return{install:function(e){a.update("jumpToDestination",e.jumpToDestination),a.update("getPagesContainer",e.getPagesContainer)},onViewerStateChange:function(e){return a.update("rotation",e.rotation),e},onTextLayerRender:function(t){var i,r=(i=t,function(e){if(a.get("trigger")!==exports.Trigger.None&&0===e.button){var t=i.ele,r=t.getBoundingClientRect(),g=a.get("highlightState");if(g.type===n.Selected){var l=e.clientY-r.top,h=e.clientX-r.left;g.highlightAreas.filter((function(e){return e.pageIndex===i.pageIndex})).find((function(e){var t=e.top*r.height/100,n=e.left*r.width/100,i=e.height*r.height/100,a=e.width*r.width/100;return t<=l&&l<=t+i&&n<=h&&h<=n+a}))?(window.getSelection().removeAllRanges(),a.update("highlightState",o)):a.update("highlightState",c)}else a.update("highlightState",o);var u=100*(e.clientY-r.top)/r.height,s=t.querySelector(".".concat(S));s&&e.target!==t&&(s.style.top="".concat(Math.max(0,u),"%"))}}),g=function(e){return function(t){if(a.get("trigger")!==exports.Trigger.None){var n=e.ele.querySelector(".".concat(S));n&&n.style.removeProperty("top")}}}(t),u=t.ele;if(t.status===e.LayerRenderStatus.PreRender){u.removeEventListener("mousedown",r),u.removeEventListener("mouseup",g);var s=u.querySelector(".".concat(S));s&&u.removeChild(s)}else if(t.status===e.LayerRenderStatus.DidRender&&(u.addEventListener("mousedown",r),u.addEventListener("mouseup",g),u.setAttribute(l,"true"),u.querySelectorAll(".rpv-core__text-layer-text").forEach((function(e){return e.setAttribute(h,"".concat(t.pageIndex))})),!u.querySelector(".".concat(S)))){var d=document.createElement("div");d.classList.add(S),d.classList.add("rpv-core__text-layer-text--not"),u.appendChild(d)}},renderPageLayer:function(e){return i.createElement(i.Fragment,null,i.createElement(g,{canvasLayerRef:e.canvasLayerRef,canvasLayerRendered:e.canvasLayerRendered,pageIndex:e.pageIndex,store:a,textLayerRef:e.textLayerRef,textLayerRendered:e.textLayerRendered}),i.createElement(p,{pageIndex:e.pageIndex,renderHighlightContent:r.renderHighlightContent,renderHighlightTarget:r.renderHighlightTarget,renderHighlights:r.renderHighlights,store:a}))},renderViewer:function(e){var t=e.slot;return t.subSlot&&t.subSlot.children&&(t.subSlot.children=i.createElement(i.Fragment,null,i.createElement(y,{store:a}),t.subSlot.children)),t},jumpToHighlightArea:function(e){var t=a.get("jumpToDestination");if(t){t(e.pageIndex,(function(t,n){return(100-e.top)*n/100}),(function(t,n){return(100-e.left)*t/100}))}},switchTrigger:function(e){a.update("trigger",e)}}};
"use strict";var e=require("@react-pdf-viewer/core");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var n,i=t(require("react"));!function(e){e.NoSelection="NoSelection",e.Selecting="Selecting",e.Selected="Selected",e.Selection="Selection",e.ClickDragging="ClickDragging",e.ClickDragged="ClickDragged"}(n||(n={}));var r,a={height:0,left:0,pageIndex:-1,top:0,width:0},o={highlightAreas:[],selectionRegion:a,type:n.NoSelection},c={highlightAreas:[],selectionRegion:a,type:n.Selecting},g=function(e){var t=e.canvasLayerRef,r=e.canvasLayerRendered,a=e.pageIndex,c=e.store,g=e.textLayerRef,l=e.textLayerRendered,h=i.useRef(),s=i.useRef(document.body.style.cursor),u=i.useRef({x:0,y:0}),d=i.useRef({top:0,left:0}),f=function(){var e=h.current;e&&e.classList.add("rpv-highlight__click-drag--hidden")},p=function(e){var t=g.current,i=h.current;if(e.altKey&&t&&i&&0===e.button){e.preventDefault(),document.body.style.cursor="crosshair";var r=t.getBoundingClientRect(),a={x:e.clientX,y:e.clientY};u.current=a;var o={top:100*(a.y-r.top)/r.height,left:100*(a.x-r.left)/r.width};d.current=o,i.style.top="".concat(o.top,"%"),i.style.left="".concat(o.left,"%"),i.style.height="0px",i.style.width="0px",document.addEventListener("mousemove",v),document.addEventListener("mouseup",w),c.updateCurrentValue("highlightState",(function(e){return Object.assign({},e,{type:n.ClickDragging})}))}},v=function(e){var t=g.current,n=h.current;if(t&&n){e.preventDefault();var i=e.clientX-u.current.x,r=e.clientY-u.current.y,a=t.getBoundingClientRect();n.classList.contains("rpv-highlight__click-drag--hidden")&&n.classList.remove("rpv-highlight__click-drag--hidden");var o=Math.min(100-d.current.left,100*i/a.width),c=Math.min(100-d.current.top,100*r/a.height);n.style.width="".concat(o,"%"),n.style.height="".concat(c,"%")}},m=function(e){"Escape"===e.key&&c.get("highlightState").type===n.ClickDragged&&(e.preventDefault(),f(),c.update("highlightState",o))},x=function(e){var t=h.current;t&&(c.get("highlightState").type===n.NoSelection&&e.target!==t&&f())},w=function(e){e.preventDefault(),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",w),y();var i=h.current,r=t.current;if(i&&r){var o,g,l={pageIndex:a,top:parseFloat(i.style.top.slice(0,-1)),left:parseFloat(i.style.left.slice(0,-1)),height:parseFloat(i.style.height.slice(0,-1)),width:parseFloat(i.style.width.slice(0,-1))},s=(o=document.createElement("canvas"),g=window.devicePixelRatio||1,function(e,t){var n=e.getBoundingClientRect(),i=t.left*n.width/100,r=t.top*n.height/100,a=t.width*n.width/100,c=t.height*n.height/100,l=o.getContext("2d");return o.width=a,o.height=c,null==l||l.drawImage(e,i*g,r*g,a*g,c*g,0,0,a,c),o.toDataURL("image/png")})(r,l),u={highlightAreas:[l],previewImage:s,selectionRegion:l,type:n.ClickDragged};c.update("highlightState",u)}},y=function(){s.current?document.body.style.cursor=s.current:document.body.style.removeProperty("cursor")},S=function(e){(e.type===n.Selection||e.type===n.ClickDragging&&e.selectionRegion.pageIndex!==a)&&f()};return i.useEffect((function(){return c.subscribe("highlightState",S),function(){c.unsubscribe("highlightState",S)}}),[]),i.useEffect((function(){var e=t.current,n=g.current;if(r&&l&&e&&n){n.addEventListener("mousedown",p);var i={capture:!0};return document.addEventListener("keydown",m),document.addEventListener("click",x,i),function(){n.removeEventListener("mousedown",p),document.removeEventListener("click",x,i),document.removeEventListener("keydown",m)}}}),[l]),i.createElement("div",{ref:h,className:"rpv-highlight__click-drag rpv-highlight__click-drag--hidden"})},l="data-highlight-text-layer",h="data-highlight-text-page",s=function(e){return e>=0?e:360+e},u=function(e,t){switch(s(t)){case 90:return{height:"".concat(e.width,"%"),position:"absolute",right:"".concat(e.top,"%"),top:"".concat(e.left,"%"),width:"".concat(e.height,"%")};case 180:return{bottom:"".concat(e.top,"%"),height:"".concat(e.height,"%"),position:"absolute",right:"".concat(e.left,"%"),width:"".concat(e.width,"%")};case 270:return{height:"".concat(e.width,"%"),position:"absolute",left:"".concat(e.top,"%"),bottom:"".concat(e.left,"%"),width:"".concat(e.height,"%")};default:return{height:"".concat(e.height,"%"),position:"absolute",top:"".concat(e.top,"%"),left:"".concat(e.left,"%"),width:"".concat(e.width,"%")}}},d=function(e){var t=e.area,n=e.rotation;return i.createElement("div",{className:"rpv-highlight__selected-text",style:u(t,n)})},f=function(e){var t=i.useState(e.get("rotation")||0),n=t[0],r=t[1],a=function(e){return r(e)};return i.useEffect((function(){return e.subscribe("rotation",a),function(){e.unsubscribe("rotation",a)}}),[]),{rotation:n}},p=function(e){var t=e.pageIndex,r=e.renderHighlightContent,a=e.renderHighlightTarget,c=e.renderHighlights,g=e.store,l=i.useState(g.get("highlightState")),h=l[0],s=l[1],p=f(g).rotation,v=function(e){return s(e)},m=function(){window.getSelection().removeAllRanges(),g.update("highlightState",o)};i.useEffect((function(){return g.subscribe("highlightState",v),function(){g.unsubscribe("highlightState",v)}}),[]);var x=h.type===n.Selection?h.highlightAreas.filter((function(e){return e.pageIndex===t})):[];return i.createElement(i.Fragment,null,a&&(h.type===n.Selected||h.type===n.ClickDragged)&&h.selectionRegion.pageIndex===t&&a({highlightAreas:h.highlightAreas,previewImage:h.previewImage||"",selectedText:h.selectedText||"",selectionRegion:h.selectionRegion,selectionData:h.selectionData,cancel:m,toggle:function(){var e=Object.assign({},h,{type:n.Selection});g.update("highlightState",e),window.getSelection().removeAllRanges()}}),r&&h.type==n.Selection&&h.selectionRegion.pageIndex===t&&r({highlightAreas:h.highlightAreas,previewImage:h.previewImage||"",selectedText:h.selectedText||"",selectionRegion:h.selectionRegion,selectionData:h.selectionData,cancel:m}),x.length>0&&i.createElement("div",null,x.map((function(e,t){return i.createElement(d,{key:t,area:e,rotation:p})}))),c&&c({pageIndex:t,rotation:p,getCssProperties:u}))};exports.Trigger=void 0,(r=exports.Trigger||(exports.Trigger={})).None="None",r.TextSelection="TextSelection";var v,m=function(e,t,n){var i=e.cloneNode(!0);e.parentNode.appendChild(i);var r=i.firstChild,a=new Range;a.setStart(r,t),a.setEnd(r,n);var o=document.createElement("span");a.surroundContents(o);var c=o.getBoundingClientRect();return i.parentNode.removeChild(i),c},x=function(e,t,n,i,r,a){if(n<r){var o=e.slice(n,n+1).map((function(e){return e.textContent.substring(i).trim()})).join(" "),c=e.slice(n+1,r).map((function(e){return e.textContent.trim()})).join(" "),g=e.slice(r,r+1).map((function(e){return e.textContent.substring(0,a||e.textContent.length)})).join(" "),l="".concat(o," ").concat(c," ").concat(g);return{divTexts:e.slice(n,r+1).map((function(e,i){return{divIndex:n+i,pageIndex:t,textContent:e.textContent}})),wholeText:l}}var h=e[n];l=h.textContent.substring(i,a||h.textContent.length).trim();return{divTexts:[{divIndex:n,pageIndex:t,textContent:h.textContent}],wholeText:l}};!function(e){e.SameDiv="SameDiv",e.DifferentDivs="DifferentDivs",e.DifferentPages="DifferentPages"}(v||(v={}));var w=["","\n"],y=function(e){var t=e.store,r=f(t).rotation,a=i.useRef(null),o=i.useState(!1),c=o[0],g=o[1],u=i.useState(t.get("trigger")),d=u[0],p=u[1],y=function(e){var t=e();a.current=t,g(!!t)},S=function(e){return p(e)},b=function(){var e=document.getSelection(),i=t.get("highlightState");if((i.type===n.NoSelection||i.type===n.Selected)&&e.rangeCount>0&&-1===w.indexOf(e.toString())){var a,o,c=e.getRangeAt(0),g=c.startContainer.parentNode,u=c.endContainer.parentNode,d=u instanceof HTMLElement&&u.hasAttribute(l);if(g&&g.parentNode==c.endContainer?o=(a=g).textContent.length:d&&0==c.endOffset?o=(a=c.endContainer.previousSibling).textContent.length:d?(a=c.endContainer,o=c.endOffset):(a=u,o=c.endOffset),g instanceof HTMLElement&&a instanceof HTMLElement){var f=parseInt(g.getAttribute(h),10),p=parseInt(a.getAttribute(h),10),y=g.parentElement,S=a.parentElement,b=y.getBoundingClientRect(),C=[].slice.call(y.querySelectorAll("[".concat(h,"]"))),E=C.indexOf(g),R=S.getBoundingClientRect(),D=[].slice.call(S.querySelectorAll("[".concat(h,"]"))),I=D.indexOf(a),L=c.startOffset,T=v.DifferentPages;switch(!0){case f===p&&E===I:T=v.SameDiv;break;case f===p&&E<I:T=v.DifferentDivs;break;default:T=v.DifferentPages}var k=function(e,t,n){return Array(t-e+1).fill(0).map((function(t,i){return n[e+i].getBoundingClientRect()}))},A=[];switch(T){case v.SameDiv:var P=m(g,L,o);A=[{height:100*P.height/b.height,left:100*(P.left-b.left)/b.width,pageIndex:f,top:100*(P.top-b.top)/b.height,width:100*P.width/b.width}];break;case v.DifferentDivs:A=[m(g,L,g.textContent.length)].concat(k(E+1,I-1,C)).concat([m(a,0,o)]).map((function(e){return{height:100*e.height/b.height,left:100*(e.left-b.left)/b.width,pageIndex:f,top:100*(e.top-b.top)/b.height,width:100*e.width/b.width}}));break;case v.DifferentPages:var O=[m(g,L,g.textContent.length)].concat(k(E+1,C.length-1,C)).map((function(e){return{height:100*e.height/b.height,left:100*(e.left-b.left)/b.width,pageIndex:f,top:100*(e.top-b.top)/b.height,width:100*e.width/b.width}})),N=k(0,I-1,D).concat([m(a,0,o)]).map((function(e){return{height:100*e.height/R.height,left:100*(e.left-R.left)/R.width,pageIndex:p,top:100*(e.top-R.top)/R.height,width:100*e.width/R.width}}));A=O.concat(N)}var _,j="",H=[];switch(T){case v.SameDiv:var M=x(C,f,E,L,E,o);j=M.wholeText,H=M.divTexts;break;case v.DifferentDivs:var q=x(C,f,E,L,I,o);j=q.wholeText,H=q.divTexts;break;case v.DifferentPages:var B=x(C,f,E,L,C.length),F=x(D,p,0,0,I,o);j="".concat(B.wholeText,"\n").concat(F.wholeText),H=B.divTexts.concat(F.divTexts)}if(A.length>0)_=A[A.length-1];else{var V=a.getBoundingClientRect();_={height:100*V.height/R.height,left:100*(V.left-R.left)/R.width,pageIndex:p,top:100*(V.top-R.top)/R.height,width:100*V.width/R.width}}var Y={divTexts:H,selectedText:j,startPageIndex:f,endPageIndex:p,startOffset:L,startDivIndex:E,endOffset:o,endDivIndex:I},X={type:n.Selected,selectedText:j,highlightAreas:A.map((function(e){return function(e,t){switch(s(t)){case 90:return{height:e.width,left:e.top,pageIndex:e.pageIndex,top:100-e.width-e.left,width:e.height};case 180:return{height:e.height,left:100-e.width-e.left,pageIndex:e.pageIndex,top:100-e.height-e.top,width:e.width};case 270:return{height:e.width,left:100-e.height-e.top,pageIndex:e.pageIndex,top:e.left,width:e.height};default:return e}}(e,r)})),selectionData:Y,selectionRegion:_};t.update("highlightState",X)}}};return i.useEffect((function(){var e=a.current;if(e&&d!==exports.Trigger.None)return e.addEventListener("mouseup",b),function(){e.removeEventListener("mouseup",b)}}),[c,d,r]),i.useEffect((function(){return t.subscribe("getPagesContainer",y),t.subscribe("trigger",S),function(){t.unsubscribe("getPagesContainer",y),t.unsubscribe("trigger",S)}}),[]),i.createElement(i.Fragment,null)},S="rpv-highlight__selected-end";exports.MessageIcon=function(){return i.createElement(e.Icon,{size:16},i.createElement("path",{d:"M23.5,17a1,1,0,0,1-1,1h-11l-4,4V18h-6a1,1,0,0,1-1-1V3a1,1,0,0,1,1-1h21a1,1,0,0,1,1,1Z"}),i.createElement("path",{d:"M5.5 12L18.5 12"}),i.createElement("path",{d:"M5.5 7L18.5 7"}))},exports.highlightPlugin=function(t){var r=Object.assign({},{trigger:exports.Trigger.TextSelection},t),a=i.useMemo((function(){return e.createStore({highlightState:o,trigger:r.trigger})}),[]);return{install:function(e){a.update("jumpToDestination",e.jumpToDestination),a.update("getPagesContainer",e.getPagesContainer)},onViewerStateChange:function(e){return a.update("rotation",e.rotation),e},onTextLayerRender:function(t){var i,r=(i=t,function(e){if(a.get("trigger")!==exports.Trigger.None&&0===e.button){var t=i.ele,r=t.getBoundingClientRect(),g=a.get("highlightState");if(g.type===n.Selected){var l=e.clientY-r.top,h=e.clientX-r.left;g.highlightAreas.filter((function(e){return e.pageIndex===i.pageIndex})).find((function(e){var t=e.top*r.height/100,n=e.left*r.width/100,i=e.height*r.height/100,a=e.width*r.width/100;return t<=l&&l<=t+i&&n<=h&&h<=n+a}))?(window.getSelection().removeAllRanges(),a.update("highlightState",o)):a.update("highlightState",c)}else a.update("highlightState",o);var s=100*(e.clientY-r.top)/r.height,u=t.querySelector(".".concat(S));u&&e.target!==t&&(u.style.top="".concat(Math.max(0,s),"%"))}}),g=function(e){return function(t){if(a.get("trigger")!==exports.Trigger.None){var n=e.ele.querySelector(".".concat(S));n&&n.style.removeProperty("top")}}}(t),s=t.ele;if(t.status===e.LayerRenderStatus.PreRender){s.removeEventListener("mousedown",r),s.removeEventListener("mouseup",g);var u=s.querySelector(".".concat(S));u&&s.removeChild(u)}else if(t.status===e.LayerRenderStatus.DidRender&&(s.addEventListener("mousedown",r),s.addEventListener("mouseup",g),s.setAttribute(l,"true"),s.querySelectorAll(".rpv-core__text-layer-text").forEach((function(e){return e.setAttribute(h,"".concat(t.pageIndex))})),!s.querySelector(".".concat(S)))){var d=document.createElement("div");d.classList.add(S),d.classList.add("rpv-core__text-layer-text--not"),s.appendChild(d)}},renderPageLayer:function(e){return i.createElement(i.Fragment,null,i.createElement(g,{canvasLayerRef:e.canvasLayerRef,canvasLayerRendered:e.canvasLayerRendered,pageIndex:e.pageIndex,store:a,textLayerRef:e.textLayerRef,textLayerRendered:e.textLayerRendered}),i.createElement(p,{pageIndex:e.pageIndex,renderHighlightContent:r.renderHighlightContent,renderHighlightTarget:r.renderHighlightTarget,renderHighlights:r.renderHighlights,store:a}))},renderViewer:function(e){var t=e.slot;return t.subSlot&&t.subSlot.children&&(t.subSlot.children=i.createElement(i.Fragment,null,i.createElement(y,{store:a}),t.subSlot.children)),t},jumpToHighlightArea:function(e){var t=a.get("jumpToDestination");if(t){t({pageIndex:e.pageIndex,bottomOffset:function(t,n){return(100-e.top)*n/100},leftOffset:function(t,n){return(100-e.left)*t/100}})}},switchTrigger:function(e){a.update("trigger",e)}}};
{
"name": "@react-pdf-viewer/highlight",
"version": "3.11.0",
"version": "3.12.0",
"description": "A React component to view a PDF document",

@@ -36,3 +36,3 @@ "license": "https://react-pdf-viewer.dev/license",

"dependencies": {
"@react-pdf-viewer/core": "3.11.0"
"@react-pdf-viewer/core": "3.12.0"
},

@@ -52,3 +52,3 @@ "peerDependencies": {

},
"gitHead": "25039b7717eb30743eaaabbb4bb2eb75529b49e2"
"gitHead": "ea84015146e8c5d4c78d7f10df2fba84567ef4aa"
}
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc