@starlly-labs/photo-viewer
Version:
An exquisite React photo preview component
3 lines (2 loc) • 28 kB
JavaScript
var e=require("react"),t=require("react-dom");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=/*#__PURE__*/n(e);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function i(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function a(t){var n=e.useRef({fn:t,curr:void 0}).current;if(n.fn=t,!n.curr){var r=Object.create(null);Object.keys(t).forEach(function(e){r[e]=function(){var t;return(t=n.fn[e]).call.apply(t,[n.fn].concat([].slice.call(arguments)))}}),n.curr=r}return n.curr}function l(t){return e.useReducer(function(e,t){return o({},e,"function"==typeof t?t(e):t)},t)}var u=e.createContext(void 0),c="cubic-bezier(0.25, 0.8, 0.25, 1)",s=20,d="undefined"!=typeof window&&"ontouchstart"in window,f=function(e,t,n){return Math.max(Math.min(e,n),t)},v=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=0),f(e,1*(1-n),Math.max(6,t)*(1+n))},m="undefined"==typeof window||/ServerSideRendering/.test(navigator&&navigator.userAgent)?e.useEffect:e.useLayoutEffect;function h(t,n,r){var o=e.useRef(n);o.current=n,e.useEffect(function(){function e(e){o.current(e)}return t&&window.addEventListener(t,e,r),function(){t&&window.removeEventListener(t,e)}},[t])}var p=["container"];function g(e){var n=e.container,a=void 0===n?document.body:n,l=i(e,p);return t.createPortal(r.default.createElement("div",o({},l)),a)}function w(e){return r.default.createElement("svg",o({width:"44",height:"44",viewBox:"0 0 768 768"},e),r.default.createElement("path",{d:"M640.5 352.5v63h-390l178.5 180-45 45-256.5-256.5 256.5-256.5 45 45-178.5 180h390z"}))}function b(e){return r.default.createElement("svg",o({width:"44",height:"44",viewBox:"0 0 768 768"},e),r.default.createElement("path",{d:"M384 127.5l256.5 256.5-256.5 256.5-45-45 178.5-180h-390v-63h390l-178.5-180z"}))}function E(){return e.useEffect(function(){var e=document.body.style,t=e.overflow;return e.overflow="hidden",function(){e.overflow=t}},[]),null}function y(e){return r.default.createElement("svg",o({width:"44",height:"44",viewBox:"0 0 768 768"},e),r.default.createElement("path",{d:"M607.5 205.5l-178.5 178.5 178.5 178.5-45 45-178.5-178.5-178.5 178.5-45-45 178.5-178.5-178.5-178.5 45-45 178.5 178.5 178.5-178.5z"}))}function x(e){var t=e.toolbarRender,n=e.overlayParams,o=e.toolbarLeftRender,i=e.toolbarRightRender;return r.default.createElement(r.default.Fragment,null,e.bannerVisible&&r.default.createElement("div",{className:"PhotoView-Slider__BannerWrap"},r.default.createElement("div",{className:"PhotoView-Slider__Counter"},e.index+1," / ",e.imageLength),r.default.createElement("div",{className:"PhotoView-Slider__BannerRight"},t&&n&&t(n),r.default.createElement(y,{className:"PhotoView-Slider__toolbarIcon",onClick:close}))),o&&n&&r.default.createElement("div",{className:"PhotoView-Slider__Toolbar PhotoView-Slider__Toolbar--Left"},o(n)),i&&n&&r.default.createElement("div",{className:"PhotoView-Slider__Toolbar PhotoView-Slider__Toolbar--Right"},i(n)))}function R(e){var t=e.touches[0],n=t.clientX,r=t.clientY;if(e.touches.length>=2){var o=e.touches[1],i=o.clientX,a=o.clientY;return[(n+i)/2,(r+a)/2,Math.sqrt(Math.pow(i-n,2)+Math.pow(a-r,2))]}return[n,r,0]}var k=function(e,t,n,r){var o,i=n*t,a=(i-r)/2,l=e;return i<=r?(o=1,l=0):e>0&&a-e<=0?(o=2,l=a):e<0&&a+e<=0&&(o=3,l=-a),[o,l]};function C(e,t,n){var r=e%180!=0;return r?[n,t,r]:[t,n,r]}function L(t,n){var r=n.leading,o=void 0!==r&&r,i=n.maxWait,a=n.wait,l=void 0===a?i||0:a,u=e.useRef(t);u.current=t;var c=e.useRef(0),s=e.useRef(),d=function(){return s.current&&clearTimeout(s.current)},f=e.useCallback(function(){var e=[].slice.call(arguments),t=Date.now();function n(){c.current=t,d(),u.current.apply(null,e)}var r=c.current,a=t-r;if(0===r&&(o&&n(),c.current=t),void 0!==i){if(a>i)return void n()}else a<l&&(c.current=t);d(),s.current=setTimeout(function(){n(),c.current=0},l)},[l,i,o]);return f.cancel=d,f}var S=function(){};S.globalDivRef=null,S.sidebarWidth=400,S.fullScreen=!1;var P=function(e){S.globalDivRef=e},_=function(){return innerWidth-(innerWidth<=900||S.fullScreen?0:S.sidebarWidth)};function M(e,t,n,r,o,i,a,l,u,c){void 0===a&&(a=_()/2),void 0===l&&(l=innerHeight/2),void 0===u&&(u=0),void 0===c&&(c=0);var s=k(e,i,n,_())[0],d=k(t,i,r,innerHeight)[0],f=_()/2,v=innerHeight/2,m=l-i/o*(l-(v+t))-v;return{x:a-i/o*(a-(f+e))-f+(r/n>=3&&n*i===_()?0:s?u/2:u),y:m+(d?c/2:c),lastCX:a,lastCY:l}}var V=function(e,t,n){return F(e,t,n,100,function(e){return e},function(){return F(t,e,n)})},N=function(e){return 1-Math.pow(1-e,4)};function F(e,t,n,r,o,i){void 0===r&&(r=400),void 0===o&&(o=N);var a=t-e;if(0!==a){var l=Date.now(),u=0,c=function(){var t=Math.min(1,(Date.now()-l)/r);n(e+o(t)*a)&&t<1?s():(cancelAnimationFrame(u),t>=1&&i&&i())};s()}function s(){u=requestAnimationFrame(c)}}var T={T:0,L:0,W:0,H:0,FIT:void 0},W=function(){var t=e.useRef(!1);return e.useEffect(function(){return t.current=!0,function(){t.current=!1}},[]),t},Y=["className"];function X(e){var t=e.className,n=void 0===t?"":t,a=i(e,Y);return r.default.createElement("div",o({className:"PhotoView__Spinner "+n},a),r.default.createElement("svg",{viewBox:"0 0 32 32",width:"36",height:"36",fill:"white"},r.default.createElement("path",{opacity:".25",d:"M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4"}),r.default.createElement("path",{d:"M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z"})))}var I=["src","loaded","broken","className","onPhotoLoad","loadingElement","brokenElement"];function B(e){var t=e.src,n=e.loaded,a=e.broken,l=e.className,u=e.onPhotoLoad,c=e.loadingElement,s=e.brokenElement,d=i(e,I),f=W();return t&&!a?r.default.createElement(r.default.Fragment,null,r.default.createElement("img",o({className:"PhotoView__Photo"+(l?" "+l:""),src:t,onLoad:function(e){var t=e.target;f.current&&u({loaded:!0,naturalWidth:t.naturalWidth,naturalHeight:t.naturalHeight})},onError:function(){f.current&&u({broken:!0})},onContextMenu:function(e){e.preventDefault(),e.stopPropagation()},alt:""},d)),!n&&(r.default.createElement("span",{className:"PhotoView__icon"},c)||r.default.createElement(X,{className:"PhotoView__icon"}))):s?r.default.createElement("span",{className:"PhotoView__icon"},"function"==typeof s?s({src:t}):s):null}function A(e,t,n){var r=C(n,_(),innerHeight),o=r[0],i=r[1],a=0,l=o,u=i,c=e/t*i,s=t/e*o;return e<o&&t<i?(l=e,u=t):e<o&&t>=i?l=c:e>=o&&t<i||e/t>o/i?u=s:t/e>=3&&!r[2]?a=((u=s)-i)/2:l=c,{width:l,height:u,x:0,y:a,pause:!0}}var D={naturalWidth:void 0,naturalHeight:void 0,width:void 0,height:void 0,loaded:void 0,broken:!1,x:0,y:0,touched:!1,maskTouched:!1,rotate:0,scale:1,CX:0,CY:0,lastX:0,lastY:0,lastCX:0,lastCY:0,lastScale:1,touchTime:0,touchLength:0,pause:!0,stopRaf:!0,reach:void 0};function q(t){var n=t.item,i=n.src,u=n.render,c=n.width,s=void 0===c?0:c,f=n.height,p=void 0===f?0:f,g=n.originRef,w=t.visible,b=t.speed,E=t.easing,y=t.wrapClassName,x=t.className,S=t.style,P=t.loadingElement,N=t.brokenElement,Y=t.onPhotoTap,X=t.onMaskTap,I=t.onReachMove,q=t.onReachUp,H=t.onPhotoResize,j=t.isActive,z=t.expose,O=l(D),K=O[0],U=O[1],Z=e.useRef(0),G=W(),J=K.naturalWidth,Q=void 0===J?s:J,$=K.naturalHeight,ee=void 0===$?p:$,te=K.width,ne=void 0===te?s:te,re=K.height,oe=void 0===re?p:re,ie=K.loaded,ae=void 0===ie?!i:ie,le=K.broken,ue=K.x,ce=K.y,se=K.touched,de=K.stopRaf,fe=K.maskTouched,ve=K.rotate,me=K.scale,he=K.CX,pe=K.CY,ge=K.lastX,we=K.lastY,be=K.lastCX,Ee=K.lastCY,ye=K.lastScale,xe=K.touchTime,Re=K.touchLength,ke=K.pause,Ce=K.reach,Le=a({onScale:function(e){return Se(v(e))},onRotate:function(e){ve!==e&&(z({rotate:e}),U(o({rotate:e},A(Q,ee,e))))}});function Se(e,t,n){me!==e&&(z({scale:e}),U(o({scale:e},M(ue,ce,ne,oe,me,e,t,n),e<=1&&{x:0,y:0})))}var Pe=L(function(e,t,n){if(void 0===n&&(n=0),(se||fe)&&j){var r=C(ve,ne,oe),i=r[0],a=r[1];if(0===n&&0===Z.current){var l=Math.abs(e-he)<=20,u=Math.abs(t-pe)<=20;if(l&&u)return void U({lastCX:e,lastCY:t});Z.current=l?t>pe?3:2:1}var c,s=e-be,d=t-Ee;if(0===n){var f=k(s+ge,me,i,_())[0],m=k(d+we,me,a,innerHeight);c=function(e,t,n,r){return t&&1===e||"x"===r?"x":n&&e>1||"y"===r?"y":void 0}(Z.current,f,m[0],Ce),void 0!==c&&I(c,e,t,me)}if("x"===c||fe)return void U({reach:"x"});var h=v(me+(n-Re)/100/2*me,Q/ne,.2);z({scale:h}),U(o({touchLength:n,reach:c,scale:h},M(ue,ce,ne,oe,me,h,e,t,s,d)))}},{maxWait:8});function _e(e){return!de&&!se&&(G.current&&U(o({},e,{pause:w})),G.current)}var Me,Ve,Ne,Fe,Te,We,Ye,Xe,Ie=(Te=function(e){return _e({x:e})},We=function(e){return _e({y:e})},Ye=function(e){return G.current&&(z({scale:e}),U({scale:e})),!se&&G.current},Xe=a({X:function(e){return Te(e)},Y:function(e){return We(e)},S:function(e){return Ye(e)}}),function(e,t,n,r,o,i,a,l,u,c,s){var d=C(c,o,i),f=d[0],v=d[1],m=k(e,l,f,_()),h=m[0],p=m[1],g=k(t,l,v,innerHeight),w=g[0],b=g[1],E=Date.now()-s;if(E>=200||l!==a||Math.abs(u-a)>1){var y=M(e,t,o,i,a,l),x=y.x,R=y.y,L=h?p:x!==e?x:null,S=w?b:R!==t?R:null;return null!==L&&F(e,L,Xe.X),null!==S&&F(t,S,Xe.Y),void(l!==a&&F(a,l,Xe.S))}var P=(e-n)/E,N=(t-r)/E,T=Math.sqrt(Math.pow(P,2)+Math.pow(N,2)),W=!1,Y=!1;!function(e,t){var n,r=e,o=0,i=0,a=function(i){n||(n=i);var a=i-n,c=Math.sign(e),s=-.001*c,d=Math.sign(-r)*Math.pow(r,2)*2e-4,f=r*a+(s+d)*Math.pow(a,2)/2;o+=f,n=i,c*(r+=(s+d)*a)<=0?u():t(o)?l():u()};function l(){i=requestAnimationFrame(a)}function u(){cancelAnimationFrame(i)}l()}(T,function(n){var r=e+n*(P/T),o=t+n*(N/T),i=k(r,a,f,_()),l=i[0],u=i[1],c=k(o,a,v,innerHeight),s=c[0],d=c[1];if(l&&!W&&(W=!0,h?F(r,u,Xe.X):V(u,r+(r-u),Xe.X)),s&&!Y&&(Y=!0,w?F(o,d,Xe.Y):V(d,o+(o-d),Xe.Y)),W&&Y)return!1;var m=W||Xe.X(u),p=Y||Xe.Y(d);return m&&p})}),Be=(Me=Y,Ve=function(e,t){Ce||Se(1!==me?1:Math.max(2,Q/ne),e,t)},Ne=e.useRef(0),Fe=L(function(){Ne.current=0,Me.apply(void 0,[].slice.call(arguments))},{wait:300}),function(){var e=[].slice.call(arguments);Ne.current+=1,Fe.apply(void 0,e),Ne.current>=2&&(Fe.cancel(),Ne.current=0,Ve.apply(void 0,e))});function Ae(e,t){if(Z.current=0,(se||fe)&&j){U({touched:!1,maskTouched:!1,pause:!1,stopRaf:!1,reach:void 0});var n=v(me,Q/ne);if(Ie(ue,ce,ge,we,ne,oe,me,n,ye,ve,xe),q(e,t),he===e&&pe===t){if(se)return void Be(e,t);fe&&X(e,t)}}}function De(e,t,n){void 0===n&&(n=0),U({touched:!0,CX:e,CY:t,lastCX:e,lastCY:t,lastX:ue,lastY:ce,lastScale:me,touchLength:n,touchTime:Date.now()})}function qe(e){U({maskTouched:!0,CX:e.clientX,CY:e.clientY,lastX:ue,lastY:ce})}h(d?void 0:"mousemove",function(e){e.preventDefault(),Pe(e.clientX,e.clientY)}),h(d?void 0:"mouseup",function(e){Ae(e.clientX,e.clientY)}),h(d?"touchmove":void 0,function(e){e.preventDefault();var t=R(e);Pe.apply(void 0,t)},{passive:!1}),h(d?"touchend":void 0,function(e){var t=e.changedTouches[0];Ae(t.clientX,t.clientY)},{passive:!1}),h("resize",L(function(){ae&&!se&&(U(A(Q,ee,ve)),H())},{maxWait:8})),m(function(){j&&z(o({scale:me,rotate:ve},Le))},[j]);var He=function(t,n,r,o,i,u,c,s,d,f){var v=function(t,n,r,o,i){var a=e.useRef(!1),u=l({lead:!0,scale:r}),c=u[0],s=c.lead,d=c.scale,f=u[1],v=L(function(e){try{return i(!0),f({lead:!1,scale:e}),Promise.resolve()}catch(e){return Promise.reject(e)}},{wait:o});return m(function(){a.current?(i(!1),f({lead:!0}),v(r)):a.current=!0},[r]),s?[t*d,n*d,r/d]:[t*r,n*r,1]}(u,c,s,d,f),h=v[0],p=v[1],g=v[2],w=function(t,n,r,o,i){var l=e.useState(T),u=l[0],c=l[1],s=e.useState(0),d=s[0],f=s[1],v=e.useRef(),m=a({OK:function(){return t&&f(4)}});function h(e){i(!1),f(e)}return e.useEffect(function(){if(v.current||(v.current=Date.now()),r){if(function(e,t){var n=e&&e.current;if(n&&1===n.nodeType){var r=n.getBoundingClientRect();t({T:r.top,L:r.left,W:r.width,H:r.height,FIT:"IMG"===n.tagName?getComputedStyle(n).objectFit:void 0})}}(n,c),t)return Date.now()-v.current<250?(f(1),requestAnimationFrame(function(){f(2),requestAnimationFrame(function(){return h(3)})}),void setTimeout(m.OK,o)):void f(4);h(5)}},[t,r]),[d,u]}(t,n,r,d,f),b=w[0],E=w[1],y=E.T,x=E.L,R=E.W,k=E.H,C=E.FIT,S=_()/2,P=innerHeight/2,M=b<3||b>4;return[M?R?x:S:o+(S-u*s/2),M?R?y:P:i+(P-c*s/2),h,M&&C?h*(k/R):p,0===b?g:M?R/(u*s)||.01:g,M?C?1:0:1,b,C]}(w,g,ae,ue,ce,ne,oe,me,b,function(e){return U({pause:e})}),je=He[4],ze=He[6],Oe="transform "+b+"ms "+E,Ke={className:x,onMouseDown:d?void 0:function(e){e.stopPropagation(),0===e.button&&De(e.clientX,e.clientY,0)},onTouchStart:d?function(e){e.stopPropagation(),De.apply(void 0,R(e))}:void 0,onWheel:function(e){if(!Ce){var t=v(me-e.deltaY/100/2,Q/ne);U({stopRaf:!0}),Se(t,e.clientX,e.clientY)}},style:{width:He[2]+"px",height:He[3]+"px",opacity:He[5],objectFit:4===ze?void 0:He[7],transform:ve?"rotate("+ve+"deg)":void 0,transition:ze>2?Oe+", opacity "+b+"ms ease, height "+(ze<4?b/2:ze>4?b:0)+"ms "+E:void 0}};return r.default.createElement("div",{className:"PhotoView__PhotoWrap"+(y?" "+y:""),style:S,onMouseDown:!d&&j?qe:void 0,onTouchStart:d&&j?function(e){return qe(e.touches[0])}:void 0},r.default.createElement("div",{className:"PhotoView__PhotoBox",style:{transform:"matrix("+je+", 0, 0, "+je+", "+He[0]+", "+He[1]+")",transition:se||ke?void 0:Oe,willChange:j?"transform":void 0}},i?r.default.createElement(B,o({src:i,loaded:ae,broken:le},Ke,{onPhotoLoad:function(e){U(o({},e,e.loaded&&A(e.naturalWidth||0,e.naturalHeight||0,ve)))},loadingElement:P,brokenElement:N})):u&&u({attrs:Ke,scale:je,rotate:ve})))}function H(e){var t=e.onRestore,n=e.reason,o=void 0===n?"focus":n;if(!e.isVisible)return null;var i=function(){switch(o){case"printscreen":return{title:"Captura Bloqueada",description:"Las capturas de pantalla están deshabilitadas para proteger el contenido",icon:r.default.createElement("svg",{width:"80",height:"80",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"24px",opacity:.9}},r.default.createElement("path",{d:"M3 3L21 21M9 9V15C9 16.1046 9.89543 17 11 17H13C14.1046 17 15 16.1046 15 15V9M7 7V15C7 17.2091 8.79086 19 11 19H13C15.2091 19 17 17.2091 17 15V7",stroke:"#ff6b6b",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),r.default.createElement("rect",{x:"9",y:"3",width:"6",height:"4",rx:"1",stroke:"#ff6b6b",strokeWidth:"2"}))};case"command":return{title:"Contenido Protegido",description:"El contenido está temporalmente oculto mientras usas atajos de teclado",icon:r.default.createElement("svg",{width:"80",height:"80",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"24px",opacity:.9}},r.default.createElement("path",{d:"M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1Z",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",fill:"rgba(255, 255, 255, 0.1)"}),r.default.createElement("path",{d:"M9 12L11 14L15 10",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}))};default:return{title:"Contenido Protegido",description:"El contenido está temporalmente oculto para proteger su privacidad",icon:r.default.createElement("svg",{width:"80",height:"80",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"24px",opacity:.9}},r.default.createElement("path",{d:"M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1Z",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",fill:"rgba(255, 255, 255, 0.1)"}),r.default.createElement("path",{d:"M9 12L11 14L15 10",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}))}}}();return r.default.createElement("div",{onClick:t,onContextMenu:function(e){return e.preventDefault()},style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:9999,backgroundColor:"#222",pointerEvents:"auto",transition:"opacity 0.1s ease-in-out",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"#ffffff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',cursor:"pointer"}},i.icon,r.default.createElement("h3",{style:{margin:"0 0 12px 0",fontSize:"24px",fontWeight:"600",textAlign:"center",opacity:.95}},i.title),r.default.createElement("p",{style:{margin:"0 0 16px 0",fontSize:"16px",textAlign:"center",opacity:.8,lineHeight:"1.5",maxWidth:"400px",padding:"0 20px"}},i.description),r.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px",opacity:.7,backgroundColor:"rgba(255, 255, 255, 0.1)",padding:"8px 16px",borderRadius:"20px",border:"1px solid rgba(255, 255, 255, 0.2)"}},r.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{marginRight:"8px"}},r.default.createElement("path",{d:"M9 12L11 14L15 10",stroke:"#ffffff",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),r.default.createElement("circle",{cx:"12",cy:"12",r:"10",stroke:"#ffffff",strokeWidth:"2"})),"Haz click aquí para mostrar el contenido"))}function j(t){var n=t.enabled,o=t.protectionLayerRender,i=e.useState(!0),a=i[0],l=i[1],u=e.useState(!1),c=u[0],s=u[1],d=e.useState(!1),f=d[0],v=d[1],m=e.useRef(null);if(e.useEffect(function(){if(n){var e=function(){return l(!0)},t=function(){return l(!1)};return window.addEventListener("focus",e),window.addEventListener("blur",t),function(){window.removeEventListener("focus",e),window.removeEventListener("blur",t)}}},[n]),e.useEffect(function(){if(n){var e=function(e){(e.metaKey||e.ctrlKey)&&s(!0),"PrintScreen"!==e.key&&44!==e.keyCode||(e.preventDefault(),e.stopPropagation(),m.current&&clearTimeout(m.current),v(!0),m.current=setTimeout(function(){v(!1),m.current=null},5e3))},t=function(e){e.metaKey||e.ctrlKey||s(!1)};return window.addEventListener("keydown",e),window.addEventListener("keyup",t),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",t),m.current&&clearTimeout(m.current)}}},[n]),!n)return null;var h=!a||c||f,p=f?"printscreen":c?"command":"focus",g=function(){l(!0),s(!1),v(!1)};return r.default.createElement(r.default.Fragment,null,o?o({isVisible:h,onRestore:g,reason:p}):r.default.createElement(H,{isVisible:h,reason:p,onRestore:g}))}var z={x:0,touched:!1,pause:!1,lastCX:void 0,lastCY:void 0,bg:void 0,lastBg:void 0,overlay:!0,minimal:!0,scale:1,rotate:0};function O(t){var n=t.loop,o=void 0===n?3:n,i=t.speed,u=t.easing,v=t.photoClosable,p=t.maskClosable,y=void 0===p||p,R=t.maskOpacity,k=void 0===R?1:R,C=t.pullClosable,L=void 0===C||C,M=t.pullAction,V=t.bannerVisible,N=void 0===V||V,F=t.overlayRender,T=t.toolbarRender,W=t.showBackdropImage,Y=t.disableScroll,X=void 0===Y||Y,I=t.toolbarLeftRender,B=t.toolbarRightRender,A=t.toolbarBottomRender,D=t.sidebarWidth,H=t.sidebarLeftRender,O=t.sidebarRightRender,K=t.className,U=t.maskClassName,Z=t.photoClassName,G=t.photoWrapClassName,J=t.loadingElement,Q=t.brokenElement,$=t.images,ee=t.index,te=void 0===ee?0:ee,ne=t.onIndexChange,re=t.visible,oe=t.onClose,ie=t.afterClose,ae=t.portalContainer,le=t.fullScreen,ue=t.onFullScreen,ce=t.protectionLayerEnable,se=t.protectionLayerRender,de=l(z),fe=de[0],ve=de[1],me=e.useState(0),he=me[0],pe=me[1],ge=e.useRef();e.useEffect(function(){return ge.current&&P(ge.current),function(){P(null)}},[re]);var we=fe.x,be=fe.touched,Ee=fe.pause,ye=fe.lastCX,xe=fe.lastCY,Re=fe.bg,ke=void 0===Re?k:Re,Ce=fe.lastBg,Le=fe.overlay,Se=fe.minimal,Pe=fe.scale,_e=fe.rotate,Me=fe.onScale,Ve=fe.onRotate,Ne=t.hasOwnProperty("index"),Fe=Ne?te:he,Te=Ne?ne:pe,We=e.useRef(Fe),Ye=$.length,Xe=$[Fe],Ie="boolean"==typeof o?o:Ye>o,Be=function(t,n){var r=e.useReducer(function(e){return!e},!1)[1],o=e.useRef(0),i=function(n){var r=e.useRef(n);function i(e){r.current=e}return e.useMemo(function(){!function(e){t?(e(t),o.current=1):o.current=2}(i)},[n]),[r.current,i]}(t),a=i[1];return[i[0],o.current,function(){r(),2===o.current&&(a(!1),n&&n()),o.current=0}]}(re,ie),Ae=Be[0],De=Be[1],qe=Be[2];m(function(){if(Ae)return ve({pause:!0,x:Fe*-(_()+s)}),void(We.current=Fe);ve(z)},[Ae]);var He=a({close:function(e){Ve&&Ve(0),ve({overlay:!0,lastBg:ke}),oe(e)},changeIndex:function(e,t){void 0===t&&(t=!1);var n=Ie?We.current+(e-Fe):e,r=Ye-1,o=f(n,0,r),i=Ie?n:o,a=_()+s;ve({touched:!1,lastCX:void 0,lastCY:void 0,x:-a*i,pause:t}),We.current=i,Te&&Te(Ie?e<0?r:e>r?0:e:o)}}),je=He.close,ze=He.changeIndex,Oe=e.useCallback(function(){ue(!le)},[le,ue]),Ke=e.useMemo(function(){return function(){!document.fullscreenElement&&le&&Oe()}},[le,Oe]),Ue=e.useMemo(function(){return function(){if(document.fullscreenElement)document.exitFullscreen();else if(le){var e=ge.current;if(!e)return;!function(e){try{e&&(e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen())}catch(e){console.log("Error al intentar activar el modo de pantalla completa",e)}}(e)}}},[ge,le]);function Ze(e){return e?je():ve({overlay:!Le})}function Ge(){ve({x:-(_()+s)*Fe,lastCX:void 0,lastCY:void 0,pause:!0}),We.current=Fe}function Je(e,t,n,r){"x"===e?function(e){if(void 0!==ye){var t=e-ye,n=t;!Ie&&(0===Fe&&t>0||Fe===Ye-1&&t<0)&&(n=t/2),ve({touched:!0,lastCX:ye,x:-(_()+s)*We.current+n,pause:!1})}else ve({touched:!0,lastCX:e,x:we,pause:!1})}(t):"y"===e&&function(e,t){if(void 0!==xe){var n=null===k?null:f(k,.01,k-Math.abs(e-xe)/100/4);ve({touched:!0,lastCY:xe,bg:1===t?n:k,minimal:1===t})}else ve({touched:!0,lastCY:e,bg:ke,minimal:!0})}(n,r)}function Qe(e,t){var n=e-(null!=ye?ye:e),r=t-(null!=xe?xe:t),o=!1;if(n<-40)ze(Fe+1);else if(n>40)ze(Fe-1);else{var i=-(_()+s)*We.current;Math.abs(r)>100&&Se&&L?(o=!0,je()):Math.abs(r)>100&&Se&&"function"==typeof M&&M({direction:r<0?"top":"bottom",offsetY:r}),ve({touched:!1,x:i,lastCX:void 0,lastCY:void 0,bg:k,overlay:!!o||Le})}}e.useEffect(function(){if(ge.current)return Ue(),function(e){S.fullScreen=e}(le),document.addEventListener("fullscreenchange",Ke),function(){document.removeEventListener("fullscreenchange",Ke)}},[ge,le,Ke,Ue]),h("keydown",function(e){if(re)switch(e.key){case"ArrowLeft":ze(Fe-1,!1);break;case"ArrowRight":ze(Fe+1,!1);break;case"Escape":je()}});var $e=function(t,n,r){return e.useMemo(function(){var e=t.length;return r?t.concat(t).concat(t).slice(e+n-1,e+n+2):t.slice(Math.max(n-1,0),Math.min(n+2,e+1))},[t,n,r])}($,Fe,Ie);if(!Ae)return null;var et=Le&&!De,tt=re?ke:Ce,nt=Me&&Ve&&{images:$,index:Fe,visible:re,onClose:je,onIndexChange:ze,overlayVisible:et,overlay:Xe&&Xe.overlay,scale:Pe,rotate:_e,onScale:Me,onRotate:Ve,fullScreen:le,fullScreenAvailable:document.documentElement.requestFullscreen||document.documentElement.mozRequestFullScreen||document.documentElement.webkitRequestFullscreen||document.documentElement.msRequestFullscreen,toggleFullScreen:function(){return ue(!le)}},rt=i?i(De):400,ot=u?u(De):c,it=i?i(3):600,at=u?u(3):c,lt="number"==typeof D?D+"px":D,ut=window.innerWidth<=900;return r.default.createElement(g,{className:"PhotoView-Portal"+(et?"":" PhotoView-Slider__clean")+(re?"":" PhotoView-Slider__willClose")+(K?" "+K:""),role:"dialog",onContextMenu:function(e){e.preventDefault(),e.stopPropagation()},onClick:function(e){return e.stopPropagation()},container:ae},re&&X&&r.default.createElement(E,null),r.default.createElement("div",{className:"PhotoView-Container"},H&&nt&&!ut&&r.default.createElement("div",{className:"PhotoView-Sidebar PhotoView-Sidebar__Left "+(1===De?" PhotoView-Slider__fadeIn":2===De?" PhotoView-Slider__fadeOut":""),style:{width:lt,transitionTimingFunction:ot,transitionDuration:(be?0:rt)+"ms",animationDuration:rt+"ms"}},H(nt)),r.default.createElement("div",{ref:ge,className:"PhotoView-Viewer"},r.default.createElement("div",{className:"PhotoView-Slider__Backdrop"+(U?" "+U:"")+(1===De?" PhotoView-Slider__fadeIn":2===De?" PhotoView-Slider__fadeOut":"")+" "+(W?"with-backdrop-image":""),style:{background:W?"url("+Xe.src+")":tt?"rgba(0, 0, 0, "+tt+")":void 0,transitionTimingFunction:ot,transitionDuration:(be?0:rt)+"ms",animationDuration:rt+"ms"},onAnimationEnd:qe}),r.default.createElement(x,{bannerVisible:N,index:Fe,imageLength:Ye,overlayParams:nt,toolbarRender:T,toolbarLeftRender:I,toolbarRightRender:B,toolbarBottomRender:A}),$e.map(function(e,t){var n=Ie||0!==Fe?We.current-1+t:Fe+t;return r.default.createElement(q,{key:Ie?e.key+"/"+e.src+"/"+n:e.key,item:e,speed:rt,easing:ot,visible:re,onReachMove:Je,onReachUp:Qe,onPhotoTap:function(){return Ze(v)},onMaskTap:function(){return Ze(y)},wrapClassName:G,className:Z,style:{left:(_()+s)*n+"px",transform:"translate3d("+we+"px, 0px, 0)",transition:be||Ee?void 0:"transform "+it+"ms "+at},loadingElement:J,brokenElement:Q,onPhotoResize:Ge,isActive:We.current===n,expose:ve})}),!d&&N&&r.default.createElement(r.default.Fragment,null,(Ie||0!==Fe)&&r.default.createElement("div",{className:"PhotoView-Slider__ArrowLeft",onClick:function(){return ze(Fe-1,!0)}},r.default.createElement(w,null)),(Ie||Fe+1<Ye)&&r.default.createElement("div",{className:"PhotoView-Slider__ArrowRight",onClick:function(){return ze(Fe+1,!0)}},r.default.createElement(b,null))),F&&nt&&r.default.createElement("div",{className:"PhotoView-Slider__Overlay"},F(nt))),O&&nt&&!ut&&r.default.createElement("div",{className:"PhotoView-Sidebar PhotoView-Sidebar__Right "+(1===De?" PhotoView-Slider__fadeIn":2===De?" PhotoView-Slider__fadeOut":""),style:{width:lt,transitionTimingFunction:ot,transitionDuration:(be?0:rt)+"ms",animationDuration:rt+"ms"}},O(nt)),A&&nt&&r.default.createElement("div",{className:"PhotoView-Slider__Toolbar PhotoView-Slider__Toolbar--Bottom",style:{width:"calc(100% - "+(ut?0:lt)+")"}},A(nt)),r.default.createElement(j,{enabled:ce||!1,protectionLayerRender:se})))}var K=["children","onIndexChange","onVisibleChange","sidebarLeftRender","sidebarRightRender","sidebarWidth","protectionLayerEnable","protectionLayerRender"],U={images:[],visible:!1,index:0,fullScreen:!1};exports.PhotoProvider=function(t){var n=t.children,c=t.onIndexChange,s=t.onVisibleChange,d=t.sidebarLeftRender,f=t.sidebarRightRender,v=t.sidebarWidth,m=void 0===v?400:v,h=t.protectionLayerEnable,p=t.protectionLayerRender,g=i(t,K),w=l(U),b=w[0],E=w[1],y=e.useRef(0),x=b.images,R=b.visible,k=b.index;e.useEffect(function(){S.sidebarWidth=d||f?m:0},[d,f,m]);var C=a({nextId:function(){return y.current+=1},update:function(e){var t=x.findIndex(function(t){return t.key===e.key});if(t>-1){var n=x.slice();return n.splice(t,1,e),void E({images:n})}E(function(t){return{images:t.images.concat(e)}})},remove:function(e){E(function(t){var n=t.images.filter(function(t){return t.key!==e});return{images:n,index:Math.min(n.length-1,k)}})},show:function(e){var t=x.findIndex(function(t){return t.key===e});E({visible:!0,index:t}),s&&s(!0,t,b)}}),L=a({close:function(){E({visible:!1}),s&&s(!1,k,b)},changeIndex:function(e){E({index:e}),c&&c(e,b)},fullScreen:function(e){E({fullScreen:e})}}),P=e.useMemo(function(){return o({},b,C)},[b,C]);return r.default.createElement(u.Provider,{value:P},n,r.default.createElement(O,o({images:x,visible:R,index:k,fullScreen:b.fullScreen,onIndexChange:L.changeIndex,onClose:L.close,onFullScreen:L.fullScreen,sidebarWidth:m,sidebarLeftRender:d,sidebarRightRender:f,protectionLayerEnable:h,protectionLayerRender:p},g)))},exports.PhotoSlider=O,exports.PhotoView=function(t){var n,r,i=t.src,l=t.render,c=t.overlay,s=t.width,d=t.height,f=t.triggers,v=void 0===f?["onClick"]:f,m=t.children,h=e.useContext(u),p=(n=function(){return h.nextId()},(r=e.useRef({sign:!1,fn:void 0}).current).sign||(r.sign=!0,r.fn=n()),r.fn),g=e.useRef(null);e.useImperativeHandle(null==m?void 0:m.ref,function(){return g.current}),e.useEffect(function(){return function(){h.remove(p)}},[]);var w=a({render:function(e){return l&&l(e)},show:function(e,t){h.show(p),function(e,t){if(m){var n=m.props[e];n&&n(t)}}(e,t)}}),b=e.useMemo(function(){var e={};return v.forEach(function(t){e[t]=w.show.bind(null,t)}),e},[]);return e.useEffect(function(){h.update({key:p,src:i,originRef:g,render:w.render,overlay:c,width:s,height:d})},[i]),m?e.Children.only(e.cloneElement(m,o({},b,{ref:g}))):null};
//# sourceMappingURL=react-photo-view.js.map