UNPKG

pdf-viewer-reactjs

Version:

Simple react PDF viewer component with controls based on PDF.js.

2 lines (1 loc) 27.3 kB
"use strict";var e=require("@babel/runtime/helpers/typeof"),t=require("@babel/runtime/helpers/classCallCheck"),a=require("@babel/runtime/helpers/createClass"),n=require("@babel/runtime/helpers/assertThisInitialized"),l=require("@babel/runtime/helpers/inherits"),s=require("@babel/runtime/helpers/possibleConstructorReturn"),r=require("@babel/runtime/helpers/getPrototypeOf"),i=require("react"),o=require("prop-types"),u=require("@babel/runtime/regenerator"),c=require("@babel/runtime/helpers/asyncToGenerator"),d=require("@babel/runtime/helpers/slicedToArray"),f=require("pdfjs-dist"),m=require("pdfjs-dist/build/pdf.worker.entry"),h=require("@babel/runtime/helpers/defineProperty");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=p(e),b=p(t),v=p(a),R=p(n),y=p(l),E=p(s),x=p(r),k=p(i),w=p(o),C=p(u),N=p(c),S=p(d),P=p(f),q=p(m),Z=p(h),A=function(e){var t=e.message;return k.default.createElement("div",{className:"columns has-text-danger has-margin-top-5 is-mobile"},k.default.createElement("div",{className:"column is-4 has-text-right has-padding-5"},k.default.createElement("span",{className:"icon"},k.default.createElement("i",{className:"material-icons"},"error_outline"))),k.default.createElement("div",{className:"column is-8 has-text-left has-padding-5"},k.default.createElement("small",null,t)))};function O(e){var t=i.useRef();return i.useEffect((function(){t.current=e})),t.current}A.propTypes={message:w.default.string.isRequired},P.default.GlobalWorkerOptions.workerSrc=q.default;var T=function(e){var t=e.document,a=e.withCredentials,n=e.password,l=e.pageNum,s=e.scale,r=e.rotation,o=e.pageCount,u=e.changePage,c=e.showThumbnail,d=e.protectContent,f=e.watermark,m=e.alert,h=e.canvasCss,p=i.useState(null),g=S.default(p,2),b=g[0],v=g[1],R=i.useState(null),y=S.default(R,2),E=y[0],x=y[1],w=i.useState(null),q=S.default(w,2),Z=q[0],T=q[1],B=i.useState({status:!1,message:""}),I=S.default(B,2),j=I[0],D=I[1],_=i.useRef(null),z=i.useRef(null),L=i.useRef(null),F=i.useState([]),M=S.default(F,2),W=M[0],H=M[1],V=O(t),G=O(n),J=m||A,U=function(){var e=N.default(C.default.mark((function e(){var l,s,r;return C.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=null,s=null,e.prev=2,JSON.stringify(V)===JSON.stringify(t)&&G.base64===n.url){e.next=16;break}return r={withCredentials:a,password:n},null==t.url?r.data=atob(t.base64):r.url=t.url,e.next=8,P.default.getDocument(r).promise;case 8:return l=e.sent,e.next=11,K(l);case 11:s=e.sent,o(l.numPages),Q(s),v(l),x(s);case 16:return e.next=18,X(l);case 18:e.next=25;break;case 20:e.prev=20,e.t0=e.catch(2),console.warn("Error while opening the document !\n",e.t0),o(-1),D({status:!0,message:"Error while opening the document !"});case 25:case"end":return e.stop()}}),e,null,[[2,20]])})));return function(){return e.apply(this,arguments)}}(),X=function(){var e=N.default(C.default.mark((function e(){var t,a,n,i,u,c,d,m,h,p,g,v,R,y,E,x,k=arguments;return C.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return null==(t=k.length>0&&void 0!==k[0]?k[0]:null)&&(t=b),e.prev=2,e.next=5,t.getPage(l);case 5:return a=e.sent,n=a.getViewport({scale:s,rotation:r}),(i=_.current).height=n.height,i.width=n.width,(u=i.getContext("2d")).clearRect(0,0,i.width,i.height),u.beginPath(),c={canvasContext:u,viewport:n},d=a.render(c),null!=Z&&Z._internalRenderTask.cancel(),e.prev=16,e.next=19,d.promise;case 19:0!==Object.entries(f).length&&(m=f.text,h=f.diagonal,p=f.opacity,g=f.font,v=f.size,R=f.color,u.globalAlpha=p,u.font="".concat(v*s,"px ").concat(""!==g?g:"Comic Sans MS"),u.fillStyle=R,y=u.measureText(m),E=y.width,x=v*s,u.translate(n.width/2,n.height/2),h&&u.rotate(-.785),u.fillText(m,-E/2,x/2)),e.next=27;break;case 22:e.prev=22,e.t0=e.catch(16),console.warn("Error occured while rendering !\n",e.t0),o(-1),D({status:!0,message:"Error occured while rendering !"});case 27:T(d),e.next=35;break;case 30:e.prev=30,e.t1=e.catch(2),console.warn("Error while reading the pages !\n",e.t1),o(-1),D({status:!0,message:"Error while reading the pages !"});case 35:case"end":return e.stop()}}),e,null,[[2,30],[16,22]])})));return function(){return e.apply(this,arguments)}}(),K=function(){var e=N.default(C.default.mark((function e(t){var a,n,l,s,r,i,o,u,d,m,h,p,g,b,v,R,y,E,x;return C.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=[],0===Object.entries(c).length){e.next=27;break}n=.1,l=0,1<=c.scale&&c.scale<=5&&(n=c.scale/10),-90!==c.rotationAngle&&90!==c.rotationAngle||(l=c.rotationAngle),s=1;case 7:if(!(s<=t.numPages)){e.next=27;break}return e.next=10,t.getPage(s);case 10:return r=e.sent,i=r.getViewport({scale:n,rotation:l}),(o=z.current).height=i.height,o.width=i.width,(u=o.getContext("2d")).clearRect(0,0,o.width,o.height),u.beginPath(),d={canvasContext:u,viewport:i},m=r.render(d),e.next=22,m.promise;case 22:0!==Object.entries(f).length&&(h=f.text,p=f.diagonal,g=f.opacity,b=f.font,v=f.size,R=f.color,u.globalAlpha=g,u.font="".concat(v*n,"px ").concat(""!==b?b:"Comic Sans MS"),u.fillStyle=R,y=u.measureText(h),E=y.width,x=v*n,u.translate(i.width/2,i.height/2),p&&u.rotate(-.785),u.fillText(h,-E/2,x/2)),a.push({image:o.toDataURL("image/png"),height:i.height,width:i.width});case 24:s++,e.next=7;break;case 27:return e.abrupt("return",a);case 28:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Q=function(e){if(0!==Object.entries(c).length&&null!==e){for(var t=[],a=function(a){var n=e[a-1].image,s="",r={height:e[a-1].height,width:e[a-1].width,display:"flex",cursor:"pointer"};c.thumbCss&&c.selectedThumbCss?s=l===a?c.selectedThumbCss:c.thumbCss:l===a?(r.margin="10px 20px",r.border="5px solid rgba(58, 58, 64, 1)",r.boxShadow="rgba(0, 0, 0, 0.6) 0 4px 8px 0, rgba(0, 0, 0, 0.58) 0 6px 20px 0"):(r.margin="15px 25px",r.boxShadow="rgba(0, 0, 0, 0.6) 0px 2px 2px 0px"),t.push(k.default.createElement("img",{style:r,className:s,onClick:function(){return u(a)},ref:l===a?L:null,key:a,alt:"thumbnail of page ".concat(a),src:n}))},n=1;n<=e.length;n++)a(n);t.push(k.default.createElement("div",{key:0,style:{padding:"0px 10px"}})),H(t)}};if(i.useEffect((function(){U()}),[t,n,l,s,r]),i.useEffect((function(){Q(E),null!==L.current&&0!==Object.entries(c).length&&L.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}),[l]),0!==Object.entries(c).length){var Y={backgroundColor:c.backgroundColor?c.backgroundColor:"#EAE6DA",display:"flex",flexDirection:"row",overflowX:"auto"};return c.onTop?k.default.createElement(k.default.Fragment,null,k.default.createElement("div",{className:h||"",style:h?{}:{height:"1000px",overflow:"auto"}},k.default.createElement("div",{style:j.status?{display:"block"}:{display:"none"}},k.default.createElement(J,{message:j.message})),k.default.createElement("div",{style:Y},W),k.default.createElement("canvas",{style:j.status?{display:"none"}:null,onContextMenu:function(e){return d?e.preventDefault():null},ref:_,width:"undefined"!=typeof window&&window.innerWidth,height:"undefined"!=typeof window&&window.innerHeight})),k.default.createElement("canvas",{ref:z,style:{display:"none"}})):k.default.createElement(k.default.Fragment,null,k.default.createElement("div",{className:h||"",style:h?{}:{height:"1000px",overflow:"auto"}},k.default.createElement("div",{style:j.status?{display:"block"}:{display:"none"}},k.default.createElement(J,{message:j.message})),k.default.createElement("canvas",{style:j.status?{display:"none"}:null,onContextMenu:function(e){return d?e.preventDefault():null},ref:_,width:"undefined"!=typeof window&&window.innerWidth,height:"undefined"!=typeof window&&window.innerHeight})),k.default.createElement("div",{style:Y},W),k.default.createElement("canvas",{ref:z,style:{display:"none"}}))}return k.default.createElement("div",null,k.default.createElement("div",{className:h||"",style:h?{}:{height:"1000px",overflow:"auto"}},k.default.createElement("div",{style:j.status?{display:"block"}:{display:"none"}},k.default.createElement(J,{message:j.message})),k.default.createElement("canvas",{style:j.status?{display:"none"}:null,onContextMenu:function(e){return d?e.preventDefault():null},ref:_,width:"undefined"!=typeof window&&window.innerWidth,height:"undefined"!=typeof window&&window.innerHeight})))};T.propTypes={document:w.default.any.isRequired,withCredentials:w.default.bool,password:w.default.string,pageNum:w.default.number.isRequired,scale:w.default.number.isRequired,rotation:w.default.number.isRequired,changePage:w.default.func,pageCount:w.default.func,showThumbnail:w.default.shape({scale:w.default.number,rotationAngle:w.default.number,onTop:w.default.bool,backgroundColor:w.default.string,thumbCss:w.default.string,selectedThumbCss:w.default.string}),protectContent:w.default.bool,watermark:w.default.shape({text:w.default.string,diagonal:w.default.bool,opacity:w.default.string,size:w.default.string,color:w.default.string}),canvasCss:w.default.string},T.defaultProps={changePage:function(){},pageCount:function(){},showThumbnail:{},protectContent:!1,watermark:{},canvasCss:""};var B=function(e){var t=e.css,a=e.page,n=e.pages,l=e.handleNextClick,s=t||"button is-black is-marginless";return a===n?k.default.createElement("button",{className:s,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"keyboard_arrow_right"))):k.default.createElement("button",{className:s,onClick:l},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"keyboard_arrow_right")))};B.propTypes={css:w.default.string,page:w.default.number.isRequired,pages:w.default.number.isRequired,handleNextClick:w.default.func.isRequired};var I=function(e){var t=e.css,a=e.page,n=e.pages,l=t||"is-size-7 is-vcentered has-text-centered is-inline-flex has-padding-top-5 button is-black is-marginless has-margin-left-5 has-margin-right-5";return k.default.createElement("span",{className:l},"Page ".concat(a," / ").concat(n))};I.propTypes={css:w.default.string,page:w.default.number.isRequired,pages:w.default.number.isRequired};var j=function(e){var t=e.css,a=e.page,n=e.handlePrevClick,l=t||"button is-black is-marginless";return 1===a?k.default.createElement("button",{className:l,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"keyboard_arrow_left"))):k.default.createElement("button",{className:l,onClick:n},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"keyboard_arrow_left")))};j.propTypes={css:w.default.string,page:w.default.number.isRequired,handlePrevClick:w.default.func.isRequired};var D=function(e){var t=e.css,a=e.scale,n=e.defaultScale,l=e.maxScale,s=e.handleZoomIn,r=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5",i=l;return n>l&&(i=n),a.toFixed(2)===i.toFixed(2)?k.default.createElement("button",{className:r,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"zoom_in"))):k.default.createElement("button",{className:r,onClick:s},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"zoom_in")))};D.propTypes={css:w.default.string,scale:w.default.number.isRequired,defaultScale:w.default.number.isRequired,maxScale:w.default.number.isRequired,handleZoomIn:w.default.func.isRequired};var _=function(e){var t=e.css,a=e.scale,n=e.defaultScale,l=e.minScale,s=e.handleZoomOut,r=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5",i=l;return n<l&&(i=n),a.toFixed(2)===i.toFixed(2)?k.default.createElement("button",{className:r,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"zoom_out"))):k.default.createElement("button",{className:r,onClick:s},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"zoom_out")))};_.propTypes={css:w.default.string,scale:w.default.number.isRequired,defaultScale:w.default.number.isRequired,minScale:w.default.number.isRequired,handleZoomOut:w.default.func.isRequired};var z=function(e){var t=e.css,a=e.scale,n=e.defaultScale,l=e.handleResetZoom,s=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5";return a.toFixed(2)===n.toFixed(2)?k.default.createElement("button",{className:s,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"refresh"))):k.default.createElement("button",{className:s,onClick:l},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"refresh")))};z.propTypes={css:w.default.string,scale:w.default.number.isRequired,defaultScale:w.default.number.isRequired,handleResetZoom:w.default.func.isRequired};var L=function(e){var t=e.css,a=e.rotationAngle,n=e.handleRotateLeft,l=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5";return-90===a?k.default.createElement("button",{className:l,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"rotate_left"))):k.default.createElement("button",{className:l,onClick:n},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"rotate_left")))};L.propTypes={css:w.default.string,rotationAngle:w.default.number.isRequired,handleRotateLeft:w.default.func.isRequired};var F=function(e){var t=e.css,a=e.rotationAngle,n=e.handleResetRotation,l=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5";return 0===a?k.default.createElement("button",{className:l,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"refresh"))):k.default.createElement("button",{className:l,onClick:n},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"refresh")))};F.propTypes={css:w.default.string,rotationAngle:w.default.number.isRequired,handleResetRotation:w.default.func.isRequired};var M=function(e){var t=e.css,a=e.rotationAngle,n=e.handleRotateRight,l=t||"button is-black is-marginless has-margin-left-5 has-margin-right-5";return 90===a?k.default.createElement("button",{className:l,disabled:!0},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"rotate_right"))):k.default.createElement("button",{className:l,onClick:n},k.default.createElement("span",{className:"icon is-small"},k.default.createElement("i",{className:"material-icons"},"rotate_right")))};M.propTypes={css:w.default.string,rotationAngle:w.default.number.isRequired,handleRotateRight:w.default.func.isRequired};var W=function(e){var t=e.page,a=e.pages,n=e.scale,l=e.defaultScale,s=e.maxScale,r=e.minScale,i=e.rotationAngle,o=e.hideZoom,u=e.hideRotation,c=e.css,d=e.handlePrevClick,f=e.handleNextClick,m=e.handleZoomIn,h=e.handleResetZoom,p=e.handleZoomOut,g=e.handleRotateLeft,b=e.handleResetRotation,v=e.handleRotateRight;return k.default.createElement("div",{className:"columns is-gapless ".concat(c.navbarWrapper||"box is-mobile has-text-white has-background-black has-margin-top-15 has-margin-bottom-15")},o?k.default.createElement("div",{className:"column is-2"}):k.default.createElement("div",{className:"column is-2 buttons are-small has-addons"},k.default.createElement(_,{scale:n,minScale:r,defaultScale:l,css:c.zoomOutBtn,handleZoomOut:p}),k.default.createElement(z,{scale:n,defaultScale:l,css:c.resetZoomBtn,handleResetZoom:h}),k.default.createElement(D,{scale:n,maxScale:s,defaultScale:l,css:c.zoomInBtn,handleZoomIn:m})),k.default.createElement("div",{className:"column"}),k.default.createElement("div",{className:"column is-3 buttons are-small has-addons is-centered"},k.default.createElement(j,{css:c.previousPageBtn,page:t,pages:a,handlePrevClick:d}),k.default.createElement(I,{css:c.pageIndicator,page:t,pages:a}),k.default.createElement(B,{css:c.nextPageBtn,page:t,pages:a,handleNextClick:f})),k.default.createElement("div",{className:"column"}),u?k.default.createElement("div",{className:"column is-2"}):k.default.createElement("div",{className:"column is-2 buttons are-small has-addons is-right"},k.default.createElement(L,{css:c.rotateLeftBtn,rotationAngle:i,handleRotateLeft:g}),k.default.createElement(F,{css:c.resetRotationBtn,rotationAngle:i,handleResetRotation:b}),k.default.createElement(M,{css:c.rotateRightBtn,rotationAngle:i,handleRotateRight:v})))};function H(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function V(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?H(Object(a),!0).forEach((function(t){Z.default(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):H(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}W.propTypes={page:w.default.number.isRequired,pages:w.default.number.isRequired,scale:w.default.number,defaultScale:w.default.number,maxScale:w.default.number,minScale:w.default.number,rotationAngle:w.default.number,hideZoom:w.default.bool,hideRotation:w.default.bool,css:w.default.shape({navbarWrapper:w.default.string,pages:w.default.string,pageIndicator:w.default.string,previousPageBtn:w.default.string,nextPageBtn:w.default.string,zoomOutBtn:w.default.string,resetZoomBtn:w.default.string,zoomInBtn:w.default.string,rotateLeftBtn:w.default.string,resetRotationBtn:w.default.string,rotateRightBtn:w.default.string}),elements:w.default.shape({previousPageBtn:w.default.any,nextPageBtn:w.default.any,pages:w.default.any}),handlePrevClick:w.default.func.isRequired,handleNextClick:w.default.func.isRequired,handleZoomIn:w.default.func.isRequired,handleResetZoom:w.default.func.isRequired,handleZoomOut:w.default.func.isRequired,handleRotateLeft:w.default.func.isRequired,handleResetRotation:w.default.func.isRequired,handleRotateRight:w.default.func.isRequired},W.defaultProps={css:{},elements:{}};var G={display:"inline-block",verticalAlign:"text-bottom",backgroundColor:"currentColor",borderRadius:"50%",opacity:0,width:"0.5rem",height:"0.5rem",animationDuration:"0.75s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationDirection:"normal",animationFillMode:"none",animationPlayState:"running",animationName:"spinner-grow"},J=V(V({},G),{},{animationDelay:"0s"}),U=V(V({},G),{},{animationDelay:"0.25s"}),X=V(V({},G),{},{animationDelay:"0.5s"}),K=function(){return k.default.createElement("div",{className:"flex-row has-margin-10 justify-center align-items-flex-end"},k.default.createElement("p",{className:"is-size-3 flex-column is-marginless"},"Loading"),k.default.createElement("div",{className:"flex-column has-padding-10"},k.default.createElement("div",{style:J})),k.default.createElement("div",{className:"flex-column has-padding-10"},k.default.createElement("div",{style:U})),k.default.createElement("div",{className:"flex-column has-padding-10"},k.default.createElement("div",{style:X})))};function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var a,n=x.default(e);if(t){var l=x.default(this).constructor;a=Reflect.construct(n,arguments,l)}else a=n.apply(this,arguments);return E.default(this,a)}}try{require("bulma/css/bulma.css"),require("bulma-helpers/css/bulma-helpers.min.css"),require("material-design-icons/iconfont/material-icons.css")}catch(e){}var Y=function(e){y.default(a,e);var t=Q(a);function a(e){var n;return b.default(this,a),(n=t.call(this,e)).state={page:n.props.page,prevPropPage:n.props.page,scale:n.props.scale,prevPropScale:n.props.scale,rotationAngle:n.props.rotationAngle,prevPropRotationAngle:n.props.rotationAngle,pages:0,defaultScale:n.props.scale,isReady:!1},n.getPageCount=n.getPageCount.bind(R.default(n)),n.handleThumbnailClick=n.handleThumbnailClick.bind(R.default(n)),n.handlePrevClick=n.handlePrevClick.bind(R.default(n)),n.handleNextClick=n.handleNextClick.bind(R.default(n)),n.handleZoomIn=n.handleZoomIn.bind(R.default(n)),n.handleResetZoom=n.handleResetZoom.bind(R.default(n)),n.handleZoomOut=n.handleZoomOut.bind(R.default(n)),n.handleRotateLeft=n.handleRotateLeft.bind(R.default(n)),n.handleResetRotation=n.handleResetRotation.bind(R.default(n)),n.handleRotateRight=n.handleRotateRight.bind(R.default(n)),n}return v.default(a,[{key:"getPageCount",value:function(e){this.state.pages!==e&&(this.setState({pages:e,isReady:!0}),this.props.getMaxPageCount&&this.props.getMaxPageCount(e))}},{key:"handleThumbnailClick",value:function(e){this.state.page!==e&&this.setState({page:e})}},{key:"handlePrevClick",value:function(){1!==this.state.page&&(this.setState((function(e){return{page:e.page-1}})),this.props.onPrevBtnClick&&this.props.onPrevBtnClick(this.state.page-1))}},{key:"handleNextClick",value:function(){this.state.page!==this.pages&&(this.setState((function(e){return{page:e.page+1}})),this.props.onNextBtnClick&&this.props.onNextBtnClick(this.state.page+1))}},{key:"handleZoomIn",value:function(){var e=this.props.maxScale;this.state.defaultScale>this.props.maxScale&&(e=this.state.defaultScale),this.state.scale<e&&this.setState((function(e,t){return{scale:e.scale+t.scaleStep}})),this.props.onZoom&&this.props.onZoom(this.state.scale+this.props.scaleStep)}},{key:"handleResetZoom",value:function(){this.setState((function(e){return{scale:e.defaultScale}})),this.props.onZoom&&this.props.onZoom(this.state.defaultScale)}},{key:"handleZoomOut",value:function(){var e=this.props.minScale;this.state.defaultScale<this.props.minScale&&(e=this.state.defaultScale),this.state.scale>e&&this.setState((function(e,t){return{scale:e.scale-t.scaleStep}})),this.props.onZoom&&this.props.onZoom(this.state.scale-this.props.scaleStep)}},{key:"handleRotateLeft",value:function(){-90!==this.state.rotationAngle&&this.setState({rotationAngle:-90}),this.props.onRotation&&this.props.onRotation(-90)}},{key:"handleResetRotation",value:function(){0!==this.state.rotationAngle&&this.setState({rotationAngle:0}),this.props.onRotation&&this.props.onRotation(0)}},{key:"handleRotateRight",value:function(){90!==this.state.rotationAngle&&this.setState({rotationAngle:90}),this.props.onRotation&&this.props.onRotation(90)}},{key:"render",value:function(){var e=this,t=this.props,a=t.document,n=t.withCredentials,l=t.password,s=t.loader,r=t.maxScale,i=t.minScale,o=t.externalInput,u=t.hideNavbar,c=t.hideZoom,d=t.hideRotation,f=t.navbarOnTop,m=t.navigation,h=t.css,p=t.canvasCss,b=t.onDocumentClick,v=t.showThumbnail,R=t.protectContent,y=t.watermark,E=t.alert,x=this.state,w=x.page,C=x.pages,N=x.scale,S=x.defaultScale,P=x.rotationAngle,q=m,Z=k.default.createElement(T,{document:a,withCredentials:n,password:l,pageNum:w,scale:N,rotation:P,changePage:function(t){return e.handleThumbnailClick(t)},pageCount:function(t){return e.getPageCount(t)},showThumbnail:v,protectContent:R,watermark:y,alert:E,canvasCss:p}),A=null,O=u;return o&&(O=!0),!O&&C>0&&(A=m&&"object"!==g.default(m)?k.default.createElement(q,{page:w,pages:C,scale:N,defaultScale:S,maxScale:r,minScale:i,rotationAngle:P,hideZoom:c,hideRotation:d,handleNextClick:this.handleNextClick,handlePrevClick:this.handlePrevClick,handleZoomIn:this.handleZoomIn,handleResetZoom:this.handleResetZoom,handleZoomOut:this.handleZoomOut,handleRotateLeft:this.handleRotateLeft,handleResetRotation:this.handleResetRotation,handleRotateRight:this.handleRotateRight}):k.default.createElement(W,{page:w,pages:C,scale:N,defaultScale:S,maxScale:r,minScale:i,rotationAngle:P,hideZoom:c,hideRotation:d,css:m?m.css:void 0,handleNextClick:this.handleNextClick,handlePrevClick:this.handlePrevClick,handleZoomIn:this.handleZoomIn,handleResetZoom:this.handleResetZoom,handleZoomOut:this.handleZoomOut,handleRotateLeft:this.handleRotateLeft,handleResetRotation:this.handleResetRotation,handleRotateRight:this.handleRotateRight})),k.default.createElement("div",{className:h||"container text-center"},k.default.createElement("div",{style:{display:this.state.isReady?"none":"block"}},k.default.createElement("div",{className:p||"",style:p?{}:{height:"1000px",overflow:"auto"}},s||k.default.createElement(K,null))),k.default.createElement("div",{style:{display:this.state.isReady?"block":"none"}},f?k.default.createElement("div",null,k.default.createElement("div",null,A),k.default.createElement("div",{onClick:b},Z)):k.default.createElement("div",null,k.default.createElement("div",{onClick:b},Z),k.default.createElement("div",null,A))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.externalInput?e.page!==t.prevPropPage&&1<=e.page&&e.page<=t.pages?{page:e.page,prevPropPage:e.page}:e.scale!==t.prevPropScale&&e.minScale<=e.scale&&e.scale<=e.maxScale?{scale:e.scale,prevPropScale:e.scale}:e.rotationAngle===t.prevPropRotationAngle||90!==e.rotationAngle&&0!==e.rotationAngle&&-90!==e.rotationAngle?null:{rotationAngle:e.rotationAngle,prevPropRotationAngle:e.rotationAngle}:null}}]),a}(k.default.Component);Y.propTypes={document:w.default.shape({url:w.default.string,base64:w.default.string}).isRequired,withCredentials:w.default.bool,password:w.default.string,loader:w.default.node,externalInput:w.default.bool,page:w.default.number,scale:w.default.number,scaleStep:w.default.number,maxScale:w.default.number,minScale:w.default.number,css:w.default.string,canvasCss:w.default.string,rotationAngle:w.default.number,onDocumentClick:w.default.func,onPrevBtnClick:w.default.func,onNextBtnClick:w.default.func,onZoom:w.default.func,onRotation:w.default.func,getMaxPageCount:w.default.func,hideNavbar:w.default.bool,navbarOnTop:w.default.bool,hideZoom:w.default.bool,hideRotation:w.default.bool,showThumbnail:w.default.shape({scale:w.default.number,rotationAngle:w.default.number,onTop:w.default.bool,backgroundColor:w.default.string,thumbCss:w.default.string,selectedThumbCss:w.default.string}),protectContent:w.default.bool,watermark:w.default.shape({text:w.default.string,diagonal:w.default.bool,opacity:w.default.string,font:w.default.string,size:w.default.string,color:w.default.string}),alert:w.default.any,navigation:w.default.oneOfType([w.default.shape({css:w.default.shape({navbarWrapper:w.default.string,zoomOutBtn:w.default.string,resetZoomBtn:w.default.string,zoomInBtn:w.default.string,previousPageBtn:w.default.string,pageIndicator:w.default.string,nextPageBtn:w.default.string,rotateLeftBtn:w.default.string,resetRotationBtn:w.default.string,rotateRightBtn:w.default.string})}),w.default.any])},Y.defaultProps={page:1,withCredentials:!1,password:"",scale:1,scaleStep:1,maxScale:3,minScale:1,rotationAngle:0,externalInput:!1,hideNavbar:!1,hideZoom:!1,hideRotation:!1,navbarOnTop:!1,canvasCss:""},module.exports=Y;