react-pic-gallery 1.3.6 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,67 @@
1
+ var An=Object.defineProperty,zn=Object.defineProperties;var En=Object.getOwnPropertyDescriptors;var Mi=Object.getOwnPropertySymbols;var Dn=Object.prototype.hasOwnProperty,Nn=Object.prototype.propertyIsEnumerable;var Hi=(c,b,S)=>b in c?An(c,b,{enumerable:!0,configurable:!0,writable:!0,value:S}):c[b]=S,k=(c,b)=>{for(var S in b||(b={}))Dn.call(b,S)&&Hi(c,S,b[S]);if(Mi)for(var S of Mi(b))Nn.call(b,S)&&Hi(c,S,b[S]);return c},Zi=(c,b)=>zn(c,En(b));(function(c,b){typeof exports=="object"&&typeof module!="undefined"?module.exports=b(require("react")):typeof define=="function"&&define.amd?define(["react"],b):(c=typeof globalThis!="undefined"?globalThis:c||self,c["react-pic-gallery"]=b(c.React))})(this,function(c){"use strict";function b(i){return i&&typeof i=="object"&&"default"in i?i:{default:i}}var S=b(c),Q={exports:{}},B={};/*
2
+ object-assign
3
+ (c) Sindre Sorhus
4
+ @license MIT
5
+ */var ri=Object.getOwnPropertySymbols,Ki=Object.prototype.hasOwnProperty,Ri=Object.prototype.propertyIsEnumerable;function Vi(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function Ui(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var r={},e=0;e<10;e++)r["_"+String.fromCharCode(e)]=e;var n=Object.getOwnPropertyNames(r).map(function(o){return r[o]});if(n.join("")!=="0123456789")return!1;var t={};return"abcdefghijklmnopqrst".split("").forEach(function(o){t[o]=o}),Object.keys(Object.assign({},t)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Ui();/** @license React v17.0.2
6
+ * react-jsx-runtime.production.min.js
7
+ *
8
+ * Copyright (c) Facebook, Inc. and its affiliates.
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */var Qi=S.default,ti=60103;if(B.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var oi=Symbol.for;ti=oi("react.element"),B.Fragment=oi("react.fragment")}var Fi=Qi.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,qi=Object.prototype.hasOwnProperty,Gi={key:!0,ref:!0,__self:!0,__source:!0};function ai(i,r,e){var n,t={},o=null,a=null;e!==void 0&&(o=""+e),r.key!==void 0&&(o=""+r.key),r.ref!==void 0&&(a=r.ref);for(n in r)qi.call(r,n)&&!Gi.hasOwnProperty(n)&&(t[n]=r[n]);if(i&&i.defaultProps)for(n in r=i.defaultProps,r)t[n]===void 0&&(t[n]=r[n]);return{$$typeof:ti,type:i,key:o,ref:a,props:t,_owner:Fi.current}}B.jsx=ai,B.jsxs=ai,Q.exports=B;const h=Q.exports.jsx,F=Q.exports.jsxs;var q=function(i,r){return q=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])},q(i,r)};function $i(i,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");q(i,r);function e(){this.constructor=i}i.prototype=r===null?Object.create(r):(e.prototype=r.prototype,new e)}var O=function(){return O=Object.assign||function(r){for(var e,n=1,t=arguments.length;n<t;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},O.apply(this,arguments)};function li(i,r,e){if(e||arguments.length===2)for(var n=0,t=r.length,o;n<t;n++)(o||!(n in r))&&(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return i.concat(o||r)}var Y=function(i,r){return Number(i.toFixed(r))},Ji=function(i,r){return typeof i=="number"?i:r},C=function(i,r,e){e&&typeof e=="function"&&e(i,r)},xi=function(i){return-Math.cos(i*Math.PI)/2+.5},Ii=function(i){return i},ie=function(i){return i*i},ee=function(i){return i*(2-i)},ne=function(i){return i<.5?2*i*i:-1+(4-2*i)*i},re=function(i){return i*i*i},te=function(i){return--i*i*i+1},oe=function(i){return i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1},ae=function(i){return i*i*i*i},le=function(i){return 1- --i*i*i*i},se=function(i){return i<.5?8*i*i*i*i:1-8*--i*i*i*i},ue=function(i){return i*i*i*i*i},de=function(i){return 1+--i*i*i*i*i},fe=function(i){return i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i},si={easeOut:xi,linear:Ii,easeInQuad:ie,easeOutQuad:ee,easeInOutQuad:ne,easeInCubic:re,easeOutCubic:te,easeInOutCubic:oe,easeInQuart:ae,easeOutQuart:le,easeInOutQuart:se,easeInQuint:ue,easeOutQuint:de,easeInOutQuint:fe},ui=function(i){typeof i=="number"&&cancelAnimationFrame(i)},_=function(i){!i.mounted||(ui(i.animation),i.animate=!1,i.animation=null,i.velocity=null)};function di(i,r,e,n){if(!!i.mounted){var t=new Date().getTime(),o=1;_(i),i.animation=function(){if(!i.mounted)return ui(i.animation);var a=new Date().getTime()-t,l=a/e,s=si[r],u=s(l);a>=e?(n(o),i.animation=null):i.animation&&(n(u),requestAnimationFrame(i.animation))},requestAnimationFrame(i.animation)}}function z(i,r,e,n){var t=me(r);if(!(!i.mounted||!t)){var o=i.setTransformState,a=i.transformState,l=a.scale,s=a.positionX,u=a.positionY,d=r.scale-l,f=r.positionX-s,m=r.positionY-u;e===0?o(r.scale,r.positionX,r.positionY):di(i,n,e,function(v){var p=l+d*v,g=s+f*v,w=u+m*v;o(p,g,w)})}}function me(i){var r=i.scale,e=i.positionX,n=i.positionY;return!(isNaN(r)||isNaN(e)||isNaN(n))}function ve(i,r,e){var n=i.offsetWidth,t=i.offsetHeight,o=r.offsetWidth,a=r.offsetHeight,l=o*e,s=a*e,u=n-l,d=t-s;return{wrapperWidth:n,wrapperHeight:t,newContentWidth:l,newDiffWidth:u,newContentHeight:s,newDiffHeight:d}}var pe=function(i,r,e,n,t,o,a){var l=i>r?e*(a?1:.5):0,s=n>t?o*(a?1:.5):0,u=i-r-l,d=l,f=n-t-s,m=s;return{minPositionX:u,maxPositionX:d,minPositionY:f,maxPositionY:m}},G=function(i,r){var e=i.wrapperComponent,n=i.contentComponent,t=i.setup.centerZoomedOut;if(!e||!n)throw new Error("Components are not mounted");var o=ve(e,n,r),a=o.wrapperWidth,l=o.wrapperHeight,s=o.newContentWidth,u=o.newDiffWidth,d=o.newContentHeight,f=o.newDiffHeight,m=pe(a,s,u,l,d,f,Boolean(t));return m},W=function(i,r){var e=G(i,r);return i.bounds=e,e};function K(i,r,e,n,t,o,a){var l=e.minPositionX,s=e.minPositionY,u=e.maxPositionX,d=e.maxPositionY,f=0,m=0;a&&(f=t,m=o);var v=$(i,l-f,u+f,n),p=$(r,s-m,d+m,n);return{x:v,y:p}}var $=function(i,r,e,n){return n?i<r?Y(r,2):i>e?Y(e,2):Y(i,2):Y(i,2)};function R(i,r,e,n,t,o){var a=i.transformState,l=a.scale,s=a.positionX,u=a.positionY,d=n-l;if(typeof r!="number"||typeof e!="number")return console.error("Mouse X and Y position were not provided!"),{x:s,y:u};var f=s-r*d,m=u-e*d,v=K(f,m,t,o,0,0,null);return v}function M(i,r,e,n,t){var o=t?n:0,a=r-o;return!isNaN(e)&&i>=e?e:!isNaN(r)&&i<=a?a:i}var fi=function(i,r){var e=i.setup.panning.excluded,n=i.isInitialized,t=i.wrapperComponent,o=r.target,a=t==null?void 0:t.contains(o),l=n&&o&&a;if(!l)return!1;var s=U(o,e);return!s},mi=function(i){var r=i.isInitialized,e=i.isPanning,n=i.setup,t=n.panning.disabled,o=r&&e&&!t;return!!o},ce=function(i,r){var e=i.transformState,n=e.positionX,t=e.positionY;i.isPanning=!0;var o=r.clientX,a=r.clientY;i.startCoords={x:o-n,y:a-t}},he=function(i,r){var e=r.touches,n=i.transformState,t=n.positionX,o=n.positionY;i.isPanning=!0;var a=e.length===1;if(a){var l=e[0].clientX,s=e[0].clientY;i.startCoords={x:l-t,y:s-o}}};function ge(i){var r=i.transformState,e=r.positionX,n=r.positionY,t=r.scale,o=i.setup,a=o.disabled,l=o.limitToBounds,s=o.centerZoomedOut,u=i.wrapperComponent;if(!(a||!u||!i.bounds)){var d=i.bounds,f=d.maxPositionX,m=d.minPositionX,v=d.maxPositionY,p=d.minPositionY,g=e>f||e<m,w=n>v||n<p,P=e>f?u.offsetWidth:i.setup.minPositionX||0,A=n>v?u.offsetHeight:i.setup.minPositionY||0,X=R(i,P,A,t,i.bounds,l||s),E=X.x,D=X.y;return{scale:t,positionX:g?E:e,positionY:w?D:n}}}function Se(i,r,e,n,t){var o=i.setup.limitToBounds,a=i.wrapperComponent,l=i.bounds,s=i.transformState,u=s.scale,d=s.positionX,f=s.positionY,m=r!==d,v=e!==f,p=!m||!v;if(!(!a||p||!l)){var g=K(r,e,l,o,n,t,a),w=g.x,P=g.y;i.setTransformState(u,w,P)}}var we=function(i,r,e){var n=i.startCoords,t=i.transformState,o=i.setup.panning,a=o.lockAxisX,l=o.lockAxisY,s=t.positionX,u=t.positionY;if(!n)return{x:s,y:u};var d=r-n.x,f=e-n.y,m=a?s:d,v=l?u:f;return{x:m,y:v}},V=function(i,r){var e=i.setup,n=i.transformState,t=n.scale,o=e.minScale;return r>0&&t>=o?r:0},ye=function(i){var r=i.mounted,e=i.setup,n=e.disabled,t=e.velocityAnimation,o=i.transformState.scale,a=t.disabled,l=!a||o>1||!n||r;return!!l},be=function(i){var r=i.mounted,e=i.velocity,n=i.bounds,t=i.setup,o=t.disabled,a=t.velocityAnimation,l=i.transformState.scale,s=a.disabled,u=!s||l>1||!o||r;return!(!u||!e||!n)};function Ce(i,r){var e=i.setup.velocityAnimation,n=e.equalToMove,t=e.animationTime,o=e.sensitivity;return n?t*r*o:t}function vi(i,r,e,n,t,o,a,l,s,u){if(t){if(r>a&&e>a){var d=a+(i-a)*u;return d>s?s:d<a?a:d}if(r<o&&e<o){var d=o+(i-o)*u;return d<l?l:d>o?o:d}}return n?r:$(i,o,a,t)}function Pe(i,r){var e=1;return r?Math.min(e,i.offsetWidth/window.innerWidth):e}function Te(i,r){var e=ye(i);if(!!e){var n=i.lastMousePosition,t=i.velocityTime,o=i.setup,a=i.wrapperComponent,l=o.velocityAnimation.equalToMove,s=Date.now();if(n&&t&&a){var u=Pe(a,l),d=r.x-n.x,f=r.y-n.y,m=d/u,v=f/u,p=s-t,g=d*d+f*f,w=Math.sqrt(g)/p;i.velocity={velocityX:m,velocityY:v,total:w}}i.lastMousePosition=r,i.velocityTime=s}}function Ye(i){var r=i.velocity,e=i.bounds,n=i.setup,t=i.wrapperComponent,o=be(i);if(!(!o||!r||!e||!t)){var a=r.velocityX,l=r.velocityY,s=r.total,u=e.maxPositionX,d=e.minPositionX,f=e.maxPositionY,m=e.minPositionY,v=n.limitToBounds,p=n.alignmentAnimation,g=n.zoomAnimation,w=n.panning,P=w.lockAxisY,A=w.lockAxisX,X=g.animationType,E=p.sizeX,D=p.sizeY,N=p.velocityAlignmentTime,L=N,Z=Ce(i,s),pn=Math.max(Z,L),cn=V(i,E),hn=V(i,D),Di=cn*t.offsetWidth/100,Ni=hn*t.offsetHeight/100,gn=u+Di,Sn=d-Di,wn=f+Ni,yn=m-Ni,Wi=i.transformState,bn=new Date().getTime();di(i,X,pn,function(Cn){var ii=i.transformState,Pn=ii.scale,ei=ii.positionX,ni=ii.positionY,Tn=new Date().getTime()-bn,Yn=Tn/L,Xn=si[p.animationType],ji=1-Xn(Math.min(1,Yn)),Li=1-Cn,ki=ei+a*Li,Bi=ni+l*Li,On=vi(ki,Wi.positionX,ei,A,v,d,u,Sn,gn,ji),_n=vi(Bi,Wi.positionY,ni,P,v,m,f,yn,wn,ji);(ei!==ki||ni!==Bi)&&i.setTransformState(Pn,On,_n)})}}function pi(i,r){var e=i.transformState.scale;_(i),W(i,e),r.touches?he(i,r):ce(i,r)}function ci(i,r,e){var n=i.startCoords,t=i.setup,o=t.alignmentAnimation,a=o.sizeX,l=o.sizeY;if(!!n){var s=we(i,r,e),u=s.x,d=s.y,f=V(i,a),m=V(i,l);Te(i,{x:u,y:d}),Se(i,u,d,f,m)}}function Xe(i){if(i.isPanning){var r=i.setup.panning.velocityDisabled,e=i.velocity,n=i.wrapperComponent,t=i.contentComponent;i.isPanning=!1,i.animate=!1,i.animation=null;var o=n==null?void 0:n.getBoundingClientRect(),a=t==null?void 0:t.getBoundingClientRect(),l=(o==null?void 0:o.width)||0,s=(o==null?void 0:o.height)||0,u=(a==null?void 0:a.width)||0,d=(a==null?void 0:a.height)||0,f=l<u||s<d,m=!r&&e&&(e==null?void 0:e.total)>.1&&f;m?Ye(i):hi(i)}}function hi(i){var r=i.transformState.scale,e=i.setup,n=e.minScale,t=e.alignmentAnimation,o=t.disabled,a=t.sizeX,l=t.sizeY,s=t.animationTime,u=t.animationType,d=o||r<n||!a&&!l;if(!d){var f=ge(i);f&&z(i,f,s,u)}}function gi(i,r,e){var n=i.transformState.scale,t=i.wrapperComponent,o=i.setup,a=o.minScale,l=o.limitToBounds,s=o.zoomAnimation,u=s.disabled,d=s.animationTime,f=s.animationType,m=u||n>=a;if((n>=1||l)&&hi(i),!(m||!t||!i.mounted)){var v=r||t.offsetWidth/2,p=e||t.offsetHeight/2,g=J(i,a,v,p);g&&z(i,g,d,f)}}function J(i,r,e,n){var t=i.setup,o=t.minScale,a=t.maxScale,l=t.limitToBounds,s=M(Y(r,2),o,a,0,!1),u=W(i,s),d=R(i,e,n,s,u,l),f=d.x,m=d.y;return{scale:s,positionX:f,positionY:m}}var j={previousScale:1,scale:1,positionX:0,positionY:0},Oe=O(O({},j),{setComponents:function(){},contextInstance:null}),H={disabled:!1,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,centerZoomedOut:!1,centerOnInit:!1,wheel:{step:.2,disabled:!1,wheelDisabled:!1,touchPadDisabled:!1,activationKeys:[],excluded:[]},panning:{disabled:!1,velocityDisabled:!1,lockAxisX:!1,lockAxisY:!1,activationKeys:[],excluded:[]},pinch:{step:5,disabled:!1,excluded:[]},doubleClick:{disabled:!1,step:.7,mode:"zoomIn",animationType:"easeOut",animationTime:200,excluded:[]},zoomAnimation:{disabled:!1,size:.4,animationTime:200,animationType:"easeOut"},alignmentAnimation:{disabled:!1,sizeX:100,sizeY:100,animationTime:200,velocityAlignmentTime:400,animationType:"easeOut"},velocityAnimation:{disabled:!1,sensitivity:1,animationTime:400,animationType:"easeOut",equalToMove:!0}},Si=function(i){var r,e,n,t;return{previousScale:(r=i.initialScale)!==null&&r!==void 0?r:j.scale,scale:(e=i.initialScale)!==null&&e!==void 0?e:j.scale,positionX:(n=i.initialPositionX)!==null&&n!==void 0?n:j.positionX,positionY:(t=i.initialPositionY)!==null&&t!==void 0?t:j.positionY}},wi=function(i){var r=O({},H);return Object.keys(i).forEach(function(e){var n=typeof i[e]!="undefined",t=typeof H[e]!="undefined";if(t&&n){var o=Object.prototype.toString.call(H[e]),a=o==="[object Object]",l=o==="[object Array]";a?r[e]=O(O({},H[e]),i[e]):l?r[e]=li(li([],H[e]),i[e]):r[e]=i[e]}}),r},yi=function(i,r,e){var n=i.transformState.scale,t=i.wrapperComponent,o=i.setup,a=o.maxScale,l=o.minScale,s=o.zoomAnimation,u=s.size;if(!t)throw new Error("Wrapper is not mounted");var d=n*Math.exp(r*e),f=M(Y(d,3),l,a,u,!1);return f};function bi(i,r,e,n,t){var o=i.wrapperComponent,a=i.transformState,l=a.scale,s=a.positionX,u=a.positionY;if(!o)return console.error("No WrapperComponent found");var d=o.offsetWidth,f=o.offsetHeight,m=(d/2-s)/l,v=(f/2-u)/l,p=yi(i,r,e),g=J(i,p,m,v);if(!g)return console.error("Error during zoom event. New transformation state was not calculated.");z(i,g,n,t)}function Ci(i,r,e){var n=i.setup,t=i.wrapperComponent,o=n.limitToBounds,a=Si(i.props),l=i.transformState,s=l.scale,u=l.positionX,d=l.positionY;if(!!t){var f=G(i,a.scale),m=K(a.positionX,a.positionY,f,o,0,0,t),v={scale:a.scale,positionX:m.x,positionY:m.y};s===a.scale&&u===a.positionX&&d===a.positionY||z(i,v,r,e)}}function _e(i,r,e){var n=i.wrapperComponent,t=i.setup,o=t.limitToBounds,a=t.minScale,l=t.maxScale;if(!n)return j;var s=n.getBoundingClientRect(),u=Ae(r),d=u.x,f=u.y,m=r.offsetWidth,v=r.offsetHeight,p=n.offsetWidth/m,g=n.offsetHeight/v,w=M(e||Math.min(p,g),a,l,0,!1),P=(s.width-m*w)/2,A=(s.height-v*w)/2,X=(s.left-d)*w+P,E=(s.top-f)*w+A,D=G(i,w),N=K(X,E,D,o,0,0,n),L=N.x,Z=N.y;return{positionX:L,positionY:Z,scale:w}}function Ae(i){for(var r=i,e=0,n=0;r;)e+=r.offsetLeft,n+=r.offsetTop,r=r.offsetParent;return{x:e,y:n}}function ze(i){if(i){if((i==null?void 0:i.offsetWidth)===void 0||(i==null?void 0:i.offsetHeight)===void 0)return console.error("Zoom node is not valid - it must contain offsetWidth and offsetHeight"),!1}else return console.error("Zoom node not found"),!1;return!0}var Ee=function(i){return function(r,e,n){r===void 0&&(r=.5),e===void 0&&(e=300),n===void 0&&(n="easeOut"),bi(i,1,r,e,n)}},De=function(i){return function(r,e,n){r===void 0&&(r=.5),e===void 0&&(e=300),n===void 0&&(n="easeOut"),bi(i,-1,r,e,n)}},Ne=function(i){return function(r,e,n,t,o){t===void 0&&(t=300),o===void 0&&(o="easeOut");var a=i.transformState,l=a.positionX,s=a.positionY,u=a.scale,d=i.wrapperComponent,f=i.contentComponent,m=i.setup.disabled;if(!(m||!d||!f)){var v={positionX:isNaN(r)?l:r,positionY:isNaN(e)?s:e,scale:isNaN(n)?u:n};z(i,v,t,o)}}},We=function(i){return function(r,e){r===void 0&&(r=200),e===void 0&&(e="easeOut"),Ci(i,r,e)}},je=function(i){return function(r,e,n){e===void 0&&(e=200),n===void 0&&(n="easeOut");var t=i.transformState,o=i.wrapperComponent,a=i.contentComponent;if(o&&a){var l=Ti(r||t.scale,o,a);z(i,l,e,n)}}},Le=function(i){return function(r,e,n,t){n===void 0&&(n=600),t===void 0&&(t="easeOut"),_(i);var o=i.wrapperComponent,a=typeof r=="string"?document.getElementById(r):r;if(o&&ze(a)&&a&&o.contains(a)){var l=_e(i,a,e);z(i,l,n,t)}}},y=function(i){return{instance:i,state:i.transformState,zoomIn:Ee(i),zoomOut:De(i),setTransform:Ne(i),resetTransform:We(i),centerView:je(i),zoomToElement:Le(i)}},x=!1;function I(){try{var i={get passive(){return x=!0,!1}};return i}catch{return x=!1,x}}var U=function(i,r){var e=i.tagName.toUpperCase(),n=r.find(function(o){return o.toUpperCase()===e});if(n)return!0;var t=r.find(function(o){return i.classList.contains(o)});return!!t},Pi=function(i){i&&clearTimeout(i)},ke=function(i,r,e){return"translate3d("+i+"px, "+r+"px, 0) scale("+e+")"},Ti=function(i,r,e){var n=e.offsetWidth*i,t=e.offsetHeight*i,o=(r.offsetWidth-n)/2,a=(r.offsetHeight-t)/2;return{scale:i,positionX:o,positionY:a}},Be=function(i,r){var e=i.setup.wheel,n=e.disabled,t=e.wheelDisabled,o=e.touchPadDisabled,a=e.excluded,l=i.isInitialized,s=i.isPanning,u=r.target,d=l&&!s&&!n&&u;if(!d||t&&!r.ctrlKey||o&&r.ctrlKey)return!1;var f=U(u,a);return!f};function Me(i,r){var e=i?i.deltaY<0?1:-1:0,n=Ji(r,e);return n}function Yi(i,r,e){var n=r.getBoundingClientRect(),t=0,o=0;if("clientX"in i)t=(i.clientX-n.left)/e,o=(i.clientY-n.top)/e;else{var a=i.touches[0];t=(a.clientX-n.left)/e,o=(a.clientY-n.top)/e}return(isNaN(t)||isNaN(o))&&console.error("No mouse or touch offset found"),{x:t,y:o}}var He=function(i,r,e,n,t){var o=i.transformState.scale,a=i.wrapperComponent,l=i.setup,s=l.maxScale,u=l.minScale,d=l.zoomAnimation,f=d.size,m=d.disabled;if(!a)throw new Error("Wrapper is not mounted");var v=o+r*(o-o*e)*e;if(t)return v;var p=n?!1:!m,g=M(Y(v,3),u,s,f,p);return g},Ze=function(i,r){var e=i.previousWheelEvent,n=i.transformState.scale,t=i.setup,o=t.maxScale,a=t.minScale;return e?n<o||n>a||Math.sign(e.deltaY)!==Math.sign(r.deltaY)||e.deltaY>0&&e.deltaY<r.deltaY||e.deltaY<0&&e.deltaY>r.deltaY||Math.sign(e.deltaY)!==Math.sign(r.deltaY):!1},Ke=function(i,r){var e=i.setup.pinch,n=e.disabled,t=e.excluded,o=i.isInitialized,a=r.target,l=o&&!n&&a;if(!l)return!1;var s=U(a,t);return!s},Re=function(i){var r=i.setup.pinch.disabled,e=i.isInitialized,n=i.pinchStartDistance,t=e&&!r&&n;return!!t},Ve=function(i,r,e){var n=e.getBoundingClientRect(),t=i.touches,o=Y(t[0].clientX-n.left,5),a=Y(t[0].clientY-n.top,5),l=Y(t[1].clientX-n.left,5),s=Y(t[1].clientY-n.top,5);return{x:(o+l)/2/r,y:(a+s)/2/r}},Xi=function(i){return Math.sqrt(Math.pow(i.touches[0].pageX-i.touches[1].pageX,2)+Math.pow(i.touches[0].pageY-i.touches[1].pageY,2))},Ue=function(i,r){var e=i.pinchStartScale,n=i.pinchStartDistance,t=i.setup,o=t.maxScale,a=t.minScale,l=t.zoomAnimation,s=l.size,u=l.disabled;if(!e||n===null||!r)throw new Error("Pinch touches distance was not provided");if(r<0)return i.transformState.scale;var d=r/n,f=d*e;return M(Y(f,2),a,o,s,!u)},Qe=160,Fe=100,qe=function(i,r){var e=i.props,n=e.onWheelStart,t=e.onZoomStart;i.wheelStopEventTimer||(_(i),C(y(i),r,n),C(y(i),r,t))},Ge=function(i,r){var e=i.props,n=e.onWheel,t=e.onZoom,o=i.contentComponent,a=i.setup,l=i.transformState,s=l.scale,u=a.limitToBounds,d=a.centerZoomedOut,f=a.zoomAnimation,m=a.wheel,v=f.size,p=f.disabled,g=m.step;if(!o)throw new Error("Component not mounted");r.preventDefault(),r.stopPropagation();var w=Me(r,null),P=He(i,w,g,!r.ctrlKey);if(s!==P){var A=W(i,P),X=Yi(r,o,s),E=p||v===0||d,D=u&&E,N=R(i,X.x,X.y,P,A,D),L=N.x,Z=N.y;i.previousWheelEvent=r,i.setTransformState(P,L,Z),C(y(i),r,n),C(y(i),r,t)}},$e=function(i,r){var e=i.props,n=e.onWheelStop,t=e.onZoomStop;Pi(i.wheelAnimationTimer),i.wheelAnimationTimer=setTimeout(function(){!i.mounted||(gi(i,r.x,r.y),i.wheelAnimationTimer=null)},Fe);var o=Ze(i,r);o&&(Pi(i.wheelStopEventTimer),i.wheelStopEventTimer=setTimeout(function(){!i.mounted||(i.wheelStopEventTimer=null,C(y(i),r,n),C(y(i),r,t))},Qe))},Je=function(i,r){var e=Xi(r);i.pinchStartDistance=e,i.lastDistance=e,i.pinchStartScale=i.transformState.scale,i.isPanning=!1,_(i)},xe=function(i,r){var e=i.contentComponent,n=i.pinchStartDistance,t=i.transformState.scale,o=i.setup,a=o.limitToBounds,l=o.centerZoomedOut,s=o.zoomAnimation,u=s.disabled,d=s.size;if(!(n===null||!e)){var f=Ve(r,t,e);if(!(!isFinite(f.x)||!isFinite(f.y))){var m=Xi(r),v=Ue(i,m);if(v!==t){var p=W(i,v),g=u||d===0||l,w=a&&g,P=R(i,f.x,f.y,v,p,w),A=P.x,X=P.y;i.pinchMidpoint=f,i.lastDistance=m,i.setTransformState(v,A,X)}}}},Ie=function(i){var r=i.pinchMidpoint;i.velocity=null,i.lastDistance=null,i.pinchMidpoint=null,i.pinchStartScale=null,i.pinchStartDistance=null,gi(i,r==null?void 0:r.x,r==null?void 0:r.y)};function en(i,r){var e=i.setup.doubleClick,n=e.disabled,t=e.mode,o=e.step,a=e.animationTime,l=e.animationType;if(!n){if(t==="reset")return Ci(i,a,l);var s=i.transformState.scale,u=i.contentComponent;if(!u)return console.error("No ContentComponent found");var d=t==="zoomOut"?-1:1,f=yi(i,d,o),m=Yi(r,u,s),v=J(i,f,m.x,m.y);if(!v)return console.error("Error during zoom event. New transformation state was not calculated.");z(i,v,a,l)}}var nn=function(i,r){var e=i.isInitialized,n=i.setup,t=i.wrapperComponent,o=n.doubleClick,a=o.disabled,l=o.excluded,s=r.target,u=t==null?void 0:t.contains(s),d=e&&s&&u&&!a;if(!d)return!1;var f=U(s,l);return!(f||!d)},Oi=S.default.createContext(Oe),rn=function(i){$i(r,i);function r(){var e=i!==null&&i.apply(this,arguments)||this;return e.mounted=!0,e.transformState=Si(e.props),e.setup=wi(e.props),e.wrapperComponent=null,e.contentComponent=null,e.isInitialized=!1,e.bounds=null,e.previousWheelEvent=null,e.wheelStopEventTimer=null,e.wheelAnimationTimer=null,e.isPanning=!1,e.startCoords=null,e.lastTouch=null,e.distance=null,e.lastDistance=null,e.pinchStartDistance=null,e.pinchStartScale=null,e.pinchMidpoint=null,e.velocity=null,e.velocityTime=null,e.lastMousePosition=null,e.animate=!1,e.animation=null,e.maxBounds=null,e.pressedKeys={},e.handleInitializeWrapperEvents=function(n){var t=I();n.addEventListener("wheel",e.onWheelZoom,t),n.addEventListener("dblclick",e.onDoubleClick,t),n.addEventListener("touchstart",e.onTouchPanningStart,t),n.addEventListener("touchmove",e.onTouchPanning,t),n.addEventListener("touchend",e.onTouchPanningStop,t)},e.handleInitialize=function(){var n=e.setup.centerOnInit;e.applyTransformation(),e.forceUpdate(),n&&(setTimeout(function(){e.mounted&&e.setCenter()},50),setTimeout(function(){e.mounted&&e.setCenter()},100),setTimeout(function(){e.mounted&&e.setCenter()},200))},e.onWheelZoom=function(n){var t=e.setup.disabled;if(!t){var o=Be(e,n);if(!!o){var a=e.isPressingKeys(e.setup.wheel.activationKeys);!a||(qe(e,n),Ge(e,n),$e(e,n))}}},e.onPanningStart=function(n){var t=e.setup.disabled,o=e.props.onPanningStart;if(!t){var a=fi(e,n);if(!!a){var l=e.isPressingKeys(e.setup.panning.activationKeys);!l||(n.preventDefault(),n.stopPropagation(),_(e),pi(e,n),C(y(e),n,o))}}},e.onPanning=function(n){var t=e.setup.disabled,o=e.props.onPanning;if(!t){var a=mi(e);if(!!a){var l=e.isPressingKeys(e.setup.panning.activationKeys);!l||(n.preventDefault(),n.stopPropagation(),ci(e,n.clientX,n.clientY),C(y(e),n,o))}}},e.onPanningStop=function(n){var t=e.props.onPanningStop;e.isPanning&&(Xe(e),C(y(e),n,t))},e.onPinchStart=function(n){var t=e.setup.disabled,o=e.props,a=o.onPinchingStart,l=o.onZoomStart;if(!t){var s=Ke(e,n);!s||(Je(e,n),_(e),C(y(e),n,a),C(y(e),n,l))}},e.onPinch=function(n){var t=e.setup.disabled,o=e.props,a=o.onPinching,l=o.onZoom;if(!t){var s=Re(e);!s||(n.preventDefault(),n.stopPropagation(),xe(e,n),C(y(e),n,a),C(y(e),n,l))}},e.onPinchStop=function(n){var t=e.props,o=t.onPinchingStop,a=t.onZoomStop;e.pinchStartScale&&(Ie(e),C(y(e),n,o),C(y(e),n,a))},e.onTouchPanningStart=function(n){var t=e.setup.disabled,o=e.props.onPanningStart;if(!t){var a=fi(e,n);if(!!a){var l=e.lastTouch&&+new Date-e.lastTouch<200;if(l&&n.touches.length===1)e.onDoubleClick(n);else{e.lastTouch=+new Date,_(e);var s=n.touches,u=s.length===1,d=s.length===2;u&&(_(e),pi(e,n),C(y(e),n,o)),d&&e.onPinchStart(n)}}}},e.onTouchPanning=function(n){var t=e.setup.disabled,o=e.props.onPanning;if(e.isPanning&&n.touches.length===1){if(t)return;var a=mi(e);if(!a)return;n.preventDefault(),n.stopPropagation();var l=n.touches[0];ci(e,l.clientX,l.clientY),C(y(e),n,o)}else n.touches.length>1&&e.onPinch(n)},e.onTouchPanningStop=function(n){e.onPanningStop(n),e.onPinchStop(n)},e.onDoubleClick=function(n){var t=e.setup.disabled;if(!t){var o=nn(e,n);!o||en(e,n)}},e.clearPanning=function(n){e.isPanning&&e.onPanningStop(n)},e.setKeyPressed=function(n){e.pressedKeys[n.key]=!0},e.setKeyUnPressed=function(n){e.pressedKeys[n.key]=!1},e.isPressingKeys=function(n){return n.length?Boolean(n.find(function(t){return e.pressedKeys[t]})):!0},e.setComponents=function(n,t){e.wrapperComponent=n,e.contentComponent=t,W(e,e.transformState.scale),e.handleInitializeWrapperEvents(n),e.handleInitialize(),e.handleRef(),e.isInitialized=!0,C(y(e),void 0,e.props.onInit)},e.setTransformState=function(n,t,o){!isNaN(n)&&!isNaN(t)&&!isNaN(o)?(n!==e.transformState.scale&&(e.transformState.previousScale=e.transformState.scale,e.transformState.scale=n),e.transformState.positionX=t,e.transformState.positionY=o,e.applyTransformation()):console.error("Detected NaN set state values")},e.setCenter=function(){if(e.wrapperComponent&&e.contentComponent){var n=Ti(e.transformState.scale,e.wrapperComponent,e.contentComponent);e.setTransformState(n.scale,n.positionX,n.positionY)}},e.applyTransformation=function(){if(!(!e.mounted||!e.contentComponent)){var n=e.transformState,t=n.scale,o=n.positionX,a=n.positionY,l=ke(o,a,t);e.contentComponent.style.transform=l,e.handleRef()}},e.handleRef=function(){e.props.setRef(y(e))},e}return r.prototype.componentDidMount=function(){var e=I();window.addEventListener("mousedown",this.onPanningStart,e),window.addEventListener("mousemove",this.onPanning,e),window.addEventListener("mouseup",this.onPanningStop,e),document.addEventListener("mouseleave",this.clearPanning,e),window.addEventListener("keyup",this.setKeyUnPressed,e),window.addEventListener("keydown",this.setKeyPressed,e),this.handleRef()},r.prototype.componentWillUnmount=function(){var e=I();window.removeEventListener("mousedown",this.onPanningStart,e),window.removeEventListener("mousemove",this.onPanning,e),window.removeEventListener("mouseup",this.onPanningStop,e),window.removeEventListener("keyup",this.setKeyUnPressed,e),window.removeEventListener("keydown",this.setKeyPressed,e),_(this)},r.prototype.componentDidUpdate=function(e){e!==this.props&&(W(this,this.transformState.scale),this.setup=wi(this.props))},r.prototype.render=function(){var e=y(this),n=this.props.children,t=typeof n=="function"?n(e):n;return h(Oi.Provider,{value:O(O({},this.transformState),{setComponents:this.setComponents,contextInstance:this}),children:t})},r}(c.Component),tn=S.default.forwardRef(function(i,r){var e=c.useState(null),n=e[0],t=e[1];return c.useImperativeHandle(r,function(){return n},[n]),h(rn,k({},O({},i,{setRef:t})))});function on(i,r){r===void 0&&(r={});var e=r.insertAt;if(!(!i||typeof document=="undefined")){var n=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",e==="top"&&n.firstChild?n.insertBefore(t,n.firstChild):n.appendChild(t),t.styleSheet?t.styleSheet.cssText=i:t.appendChild(document.createTextNode(i))}}var an=`.transform-component-module_wrapper__1_Fgj {
13
+ position: relative;
14
+ width: -moz-fit-content;
15
+ width: fit-content;
16
+ height: -moz-fit-content;
17
+ height: fit-content;
18
+ overflow: hidden;
19
+ -webkit-touch-callout: none; /* iOS Safari */
20
+ -webkit-user-select: none; /* Safari */
21
+ -khtml-user-select: none; /* Konqueror HTML */
22
+ -moz-user-select: none; /* Firefox */
23
+ -ms-user-select: none; /* Internet Explorer/Edge */
24
+ user-select: none;
25
+ margin: 0;
26
+ padding: 0;
27
+ }
28
+ .transform-component-module_content__2jYgh {
29
+ display: flex;
30
+ flex-wrap: wrap;
31
+ width: -moz-fit-content;
32
+ width: fit-content;
33
+ height: -moz-fit-content;
34
+ height: fit-content;
35
+ margin: 0;
36
+ padding: 0;
37
+ transform-origin: 0% 0%;
38
+ }
39
+ .transform-component-module_content__2jYgh img {
40
+ pointer-events: none;
41
+ }
42
+ `,_i={wrapper:"transform-component-module_wrapper__1_Fgj",content:"transform-component-module_content__2jYgh"};on(an);var ln=function(i){var r=i.children,e=i.wrapperClass,n=e===void 0?"":e,t=i.contentClass,o=t===void 0?"":t,a=i.wrapperStyle,l=i.contentStyle,s=c.useContext(Oi).setComponents,u=c.useRef(null),d=c.useRef(null);return c.useEffect(function(){var f=u.current,m=d.current;f!==null&&m!==null&&s&&s(f,m)},[]),h("div",{ref:u,className:"react-transform-wrapper "+_i.wrapper+" "+n,style:a,children:h("div",{ref:d,className:"react-transform-component "+_i.content+" "+o,style:l,children:r})})};const Ai=`
43
+ .lds-dual-ring {
44
+ display: inline-block;
45
+ width: 40px;
46
+ height: 40px;
47
+ }
48
+ .lds-dual-ring:after {
49
+ content: " ";
50
+ display: block;
51
+ width: 32px;
52
+ height: 32px;
53
+ margin: 8px;
54
+ border-radius: 50%;
55
+ border: 3px solid rgba(185, 185, 185, 0.466);
56
+ border-color: rgba(185, 185, 185, 0.466) transparent rgba(185, 185, 185, 0.466) transparent;
57
+ animation: lds-dual-ring 1.2s linear infinite;
58
+ }
59
+ @keyframes lds-dual-ring {
60
+ 0% {
61
+ transform: rotate(0deg);
62
+ }
63
+ 100% {
64
+ transform: rotate(360deg);
65
+ }
66
+ }
67
+ `;function zi(){const i=document.querySelector("#react-pic-style");if(i)i.innerHTML=i.innerHTML+Ai;else{const r=document.createElement("style");r.id="react-pic-style",r.innerHTML=Ai,document.body.appendChild(r)}return h("div",{className:"lds-dual-ring"})}let T={};T.lightbox={position:"fixed",top:0,left:0,width:"100%",height:"100%",background:"rgba(0, 0, 0, 0.454)",backdropFilter:"blur(6px)",zIndex:9999999,display:"grid",gridTemplateRows:"60px | auto | 300px",justifyContent:"center",alignContent:"center"},T.topCustomContent={position:"absolute",top:0},T.bottomCustomContent={position:"absolute",bottom:0},T.LbButton={float:"right",textDecoration:"none",color:"white",padding:"5px",border:"1px solid white",borderRadius:"5px"},T.ABtn={float:"right",textDecoration:"none",color:"white"},T.DescriptionDiv={background:"white",padding:"10px",color:"#666",textAlign:"center",position:"relative",zIndex:-1},T.Wrapper={display:"flex",width:"100%",minWidth:200,height:"100%"},T.Grid={display:"grid",gridTemplateRows:"1fr",gap:"2px",width:"100%",height:"auto"};const Ei=i=>{var t,o,a,l,s;const[r,e]=S.default.useState(""),n=((t=i.options)==null?void 0:t.customLoadComponent)!==void 0?i.options.customLoadComponent:zi;return S.default.useEffect(()=>{var d,f;const u=((d=i.imgObj)==null?void 0:d.fullSrc)?i.imgObj.fullSrc:((f=i.imgObj)==null?void 0:f.thumbnailSrc)?i.imgObj.thumbnailSrc:null;u&&fetch(u).then(m=>m.blob()).then(m=>{e(URL.createObjectURL(m))}),document.body.style.overflow="hidden"},[i.imgObj]),F("div",{className:"reactPic-lightbox",style:T.lightbox,onClick:u=>{document.body.style.overflow="",u.target.className==="reactPic-lightbox"&&i.onClose()},children:[h("div",{style:T.topCustomContent,className:"reactPic-topCustomContent",children:(o=i.topCustomContent)==null?void 0:o.call(i,{closeLightbox:i.onClose,imgObject:i.imgObj})}),r===""?h("div",{style:{display:"block",margin:"auto"},children:h(n,{})}):F("div",{children:[h(tn,{children:h(ln,{children:h("img",{src:r,alt:"",id:"lightboxImg",style:{maxWidth:"80vw",maxHeight:"calc(80vh - 20px)",margin:"auto",zIndex:99999999999}})})}),i.onClickPrevious&&h("div",{className:"react-lightbox-prevBtn",style:{position:"absolute",left:20,top:"50%",fontSize:50,cursor:"pointer",color:"white",display:((a=i.options)==null?void 0:a.hidePagination)?"none":"inherit"},onClick:i.onClickPrevious,children:"\u2039"}),i.onClickNext&&h("div",{className:"react-lightbox-nextBtn",style:{position:"absolute",right:20,top:"50%",fontSize:50,cursor:"pointer",color:"white",display:((l=i.options)==null?void 0:l.hidePagination)?"none":"inherit"},onClick:i.onClickNext,children:"\u203A"})]}),h("div",{style:T.bottomCustomContent,className:"reactPic-bottomCustomContent",children:(s=i.bottomCustomContent)==null?void 0:s.call(i,{closeLightbox:i.onClose,imgObject:i.imgObj})})]})},sn=i=>{var t;const[r,e]=S.default.useState(""),n=((t=i.options)==null?void 0:t.customLoadComponent)!==void 0?i.options.customLoadComponent:zi;return S.default.useEffect(()=>{const o=new AbortController;return i.imgSrc&&fetch(i.imgSrc).then(a=>a.blob()).then(a=>{e(URL.createObjectURL(a))}),()=>{o.abort()}},[i.imgSrc]),r?h("img",{src:r,alt:"",style:k({},i.style),onClick:()=>{i.onClick()}}):h("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",alignContent:"center",justifyContent:"center",background:"rgba(0, 0, 0, 0.157)",border:"1px solid rgba(0, 0, 0,0.3)"},children:h(n,{})})};function un(i){var r;return h("div",{className:"reactPic-grid",style:Zi(k({},T.Grid),{gridTemplateColumns:`repeat(${((r=i.options)==null?void 0:r.picsPerRow)?i.options.picsPerRow:"3"}, 1fr)`}),children:i.imgList.map((e,n)=>{var t;return h("div",{className:"reactPic-imgDiv",style:{overflow:"hidden",width:"100%",height:"100%",minHeight:"150px"},children:h("div",{className:"reactPic-innerImgDiv",style:{display:"flex",justifyContent:"center",alignItems:"center",overflow:"hidden !important",width:"100%",height:((t=i.options)==null?void 0:t.rowHeight)?i.options.rowHeight:"150px",cursor:"pointer"},children:h(sn,{options:i.options,imgSrc:e.thumbnailSrc?e.thumbnailSrc:e.fullSrc,style:{flexShrink:0,minWidth:"100%",minHeight:"100%"},onClick:()=>i.onOpen(n)})})},e.thumbnailSrc?e.thumbnailSrc:e.fullSrc)})})}var dn=S.default.memo(un);const fn={downloadBtnDisplay:!0,descriptionBoxDisplay:!0,navigation:!0};function mn(i){var l;const[r,e]=S.default.useState(!1),[n,t]=S.default.useState(0),o=k(k({},fn),i.options);c.useEffect(()=>{typeof i.setExtLightboxChildren=="function"&&(r?i.setExtLightboxChildren(h(Ei,{imgObj:i.imgList[n],options:o,onClose:()=>{e(!1)}})):i.setExtLightboxChildren(void 0))},[r]);const a=c.useCallback(s=>{t(s),e(!0)},[]);return F("div",{className:"reactPic-wrapper",style:T.Wrapper,children:[r&&!((l=i.options)==null?void 0:l.externalLightbox)?h(Ei,{imgObj:i.imgList[n],topCustomContent:i.topCustomContent,bottomCustomContent:i.bottomCustomContent,options:o,onClose:()=>e(!1),onClickPrevious:n-1>=0?()=>t(n-1):void 0,onClickNext:n+1<i.imgList.length?()=>{t(n+1),console.log(n)}:void 0}):null,h(dn,{options:i.options,imgList:i.imgList,onOpen:a})]})}var vn=S.default.memo(mn);return vn});
package/package.json CHANGED
@@ -1,46 +1,37 @@
1
- {
2
- "name": "react-pic-gallery",
3
- "version": "1.3.6",
4
- "description": "",
5
- "author": "marcelrsoub",
6
- "license": "MIT",
7
- "repository": "marcelrsoub/react-pic-gallery",
8
- "main": "dist/index.js",
9
- "module": "dist/index.modern.js",
10
- "source": "src/index.tsx",
11
- "engines": {
12
- "node": ">=10"
13
- },
14
- "scripts": {
15
- "build": "microbundle-crl --no-compress --format modern",
16
- "start": "microbundle-crl watch --no-compress --format modern",
17
- "prepare": "run-s build",
18
- "test": "run-s test:unit test:lint test:build",
19
- "test:build": "run-s build",
20
- "test:lint": "eslint .",
21
- "test:unit": "cross-env CI=1 react-scripts test --env=jsdom",
22
- "test:watch": "react-scripts test --env=jsdom",
23
- "predeploy": "cd example && npm install && npm run build",
24
- "deploy": "gh-pages -d example/build"
25
- },
26
- "peerDependencies": {
27
- "react": "^16.0.0"
28
- },
29
- "devDependencies": {
30
- "babel-eslint": "^10.0.3",
31
- "cross-env": "^7.0.2",
32
- "gh-pages": "^2.2.0",
33
- "microbundle-crl": "^0.13.10",
34
- "npm-run-all": "^4.1.5",
35
- "prettier": "^2.0.4",
36
- "react": "^16.13.1",
37
- "react-dom": "^16.13.1",
38
- "react-scripts": "^3.4.1"
39
- },
40
- "files": [
41
- "dist"
42
- ],
43
- "dependencies": {
44
- "react-zoom-pan-pinch": "^1.6.1"
45
- }
46
- }
1
+ {
2
+ "name": "react-pic-gallery",
3
+ "version": "1.5.0",
4
+ "author": "marcelrsoub",
5
+ "license": "MIT",
6
+ "repository": "marcelrsoub/react-pic-gallery",
7
+ "main": "./dist/react-pic-gallery.umd.js",
8
+ "module": "./dist/react-pic-gallery.es.js",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/react-pic-gallery.es.js",
15
+ "require": "./dist/react-pic-gallery.umd.js"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "dev": "vite",
20
+ "build": "tsc && vite build",
21
+ "preview": "vite preview",
22
+ "github-pages": "gh-pages -d build"
23
+ },
24
+ "dependencies": {
25
+ "react": "^17.0.2",
26
+ "react-dom": "^17.0.2",
27
+ "react-zoom-pan-pinch": "^2.1.3"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^16.11.12",
31
+ "@types/react": "^17.0.33",
32
+ "@types/react-dom": "^17.0.10",
33
+ "@vitejs/plugin-react": "^1.0.7",
34
+ "typescript": "^4.4.4",
35
+ "vite": "^2.7.0"
36
+ }
37
+ }
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom/extend-expect';
package/dist/index.d.ts DELETED
@@ -1,18 +0,0 @@
1
- /// <reference types="react" />
2
- export interface imageObject {
3
- fullSrc: string;
4
- thumbnailSrc?: string;
5
- description?: string;
6
- }
7
- export type Options = {
8
- downloadBtnDisplay?: boolean;
9
- downloadCustomBtn?: (props: { imgObj: imageObject }) => JSX.Element;
10
- descriptionBoxDisplay?: boolean;
11
- descriptionCustomBox?: (props: { imgObj: imageObject }) => JSX.Element;
12
- };
13
-
14
- declare const PicGallery: (props: {
15
- imgList: imageObject[];
16
- options?: Options;
17
- }) => JSX.Element;
18
- export default PicGallery;
@@ -1,342 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
3
-
4
- const extraStyle = `
5
- .lds-dual-ring {
6
- display: inline-block;
7
- width: 40px;
8
- height: 40px;
9
- }
10
- .lds-dual-ring:after {
11
- content: " ";
12
- display: block;
13
- width: 32px;
14
- height: 32px;
15
- margin: 8px;
16
- border-radius: 50%;
17
- border: 3px solid rgba(185, 185, 185, 0.466);
18
- border-color: rgba(185, 185, 185, 0.466) transparent rgba(185, 185, 185, 0.466) transparent;
19
- animation: lds-dual-ring 1.2s linear infinite;
20
- }
21
- @keyframes lds-dual-ring {
22
- 0% {
23
- transform: rotate(0deg);
24
- }
25
- 100% {
26
- transform: rotate(360deg);
27
- }
28
- }
29
- `;
30
- function CircularLoading() {
31
- const styleTag = document.querySelector('#react-pic-style');
32
-
33
- if (!styleTag) {
34
- const sheet = document.createElement('style');
35
- sheet.id = 'react-pic-style';
36
- sheet.innerHTML = extraStyle;
37
- document.body.appendChild(sheet);
38
- } else {
39
- styleTag.innerHTML = styleTag.innerText + extraStyle;
40
- }
41
-
42
- return /*#__PURE__*/React.createElement("div", {
43
- className: "lds-dual-ring"
44
- });
45
- }
46
-
47
- const ImgLazyLoading = props => {
48
- const [imgSrcUrl, setImgSrcUrl] = React.useState('');
49
- React.useEffect(() => {
50
- const ac = new AbortController();
51
-
52
- if (props.imgSrc) {
53
- fetch(props.imgSrc).then(response => response.blob()).then(blob => {
54
- setImgSrcUrl(URL.createObjectURL(blob));
55
- });
56
- }
57
-
58
- return () => {
59
- ac.abort();
60
- };
61
- }, [props.imgSrc]);
62
-
63
- if (imgSrcUrl) {
64
- return /*#__PURE__*/React.createElement("img", {
65
- src: imgSrcUrl,
66
- alt: "",
67
- style: { ...props.style
68
- },
69
- onClick: () => {
70
- props.onClick();
71
- }
72
- });
73
- } else {
74
- return /*#__PURE__*/React.createElement("div", {
75
- style: {
76
- height: '100%',
77
- width: '100%',
78
- display: 'flex',
79
- alignItems: 'center',
80
- alignContent: 'center',
81
- justifyContent: 'center',
82
- background: 'rgba(0, 0, 0, 0.157)',
83
- border: '1px solid rgba(0, 0, 0,0.3)'
84
- }
85
- }, /*#__PURE__*/React.createElement(CircularLoading, null));
86
- }
87
- };
88
-
89
- let styles = {};
90
- styles.ModalDiv = {
91
- position: 'fixed',
92
- top: 0,
93
- left: 0,
94
- width: '100%',
95
- height: '100%',
96
- background: `rgba(0, 0, 0, 0.454)`,
97
- backdropFilter: 'blur(6px)',
98
- display: 'flex',
99
- zIndex: 9999999,
100
- display: 'grid',
101
- gridTemplateRows: '60px | auto | 300px',
102
- justifyContent: 'center',
103
- alignContent: 'center'
104
- };
105
- styles.LbButtonsDiv = {
106
- position: 'absolute',
107
- top: '10px',
108
- width: 'calc(100% - 20px)'
109
- };
110
- styles.LbButton = {
111
- float: 'right',
112
- textDecoration: 'none',
113
- color: 'white',
114
- padding: '5px',
115
- border: '1px solid white',
116
- borderRadius: '5px'
117
- };
118
- styles.ABtn = {
119
- float: 'right',
120
- textDecoration: 'none',
121
- color: 'white'
122
- };
123
- styles.DescriptionDiv = {
124
- background: 'white',
125
- padding: '10px',
126
- color: '#666',
127
- textAlign: 'center',
128
- position: 'relative',
129
- zIndex: -1
130
- };
131
- styles.Wrapper = {
132
- display: 'flex',
133
- width: '100%',
134
- minWidth: 200,
135
- height: '100%'
136
- };
137
- styles.Grid = {
138
- display: 'grid',
139
- gridTemplateColumns: 'repeat(3, 1fr)',
140
- gridTemplateRows: '1fr',
141
- gap: '2px',
142
- width: '100%',
143
- height: 'auto'
144
- };
145
-
146
- const ImgLightbox = props => {
147
- var _props$options, _props$options2, _props$options3, _props$imgObj3, _props$imgObj4, _props$imgObj5;
148
-
149
- const [imgSrcUrl, setImgSrcUrl] = React.useState('');
150
- const DescriptionCustomBox = props.options.descriptionCustomBox;
151
- React.useEffect(() => {
152
- var _props$imgObj, _props$imgObj2;
153
-
154
- const imgSrc = (_props$imgObj = props.imgObj) !== null && _props$imgObj !== void 0 && _props$imgObj.fullSrc ? props.imgObj.fullSrc : (_props$imgObj2 = props.imgObj) !== null && _props$imgObj2 !== void 0 && _props$imgObj2.thumbnailSrc ? props.imgObj.thumbnailSrc : null;
155
-
156
- if (imgSrc) {
157
- fetch(imgSrc).then(response => response.blob()).then(blob => {
158
- setImgSrcUrl(URL.createObjectURL(blob));
159
- });
160
- }
161
-
162
- document.body.style.overflow = 'hidden';
163
- }, [props.imgObj]);
164
- return /*#__PURE__*/React.createElement("div", {
165
- className: "reactPic-lightbox",
166
- onClick: event => {
167
- document.body.style.overflow = '';
168
- const target = event.target;
169
-
170
- if (target.className === 'reactPic-lightbox') {
171
- props.onClose();
172
- }
173
- },
174
- style: styles.ModalDiv
175
- }, /*#__PURE__*/React.createElement("div", {
176
- style: styles.LbButtonsDiv
177
- }, (_props$options = props.options) !== null && _props$options !== void 0 && _props$options.downloadBtnDisplay || (_props$options2 = props.options) !== null && _props$options2 !== void 0 && _props$options2.downloadCustomBtn ? props.options.downloadCustomBtn ? /*#__PURE__*/React.createElement("a", {
178
- href: imgSrcUrl,
179
- download: true,
180
- style: styles.ABtn
181
- }, props.options.downloadCustomBtn()) : /*#__PURE__*/React.createElement("a", {
182
- href: imgSrcUrl,
183
- download: true,
184
- style: styles.LbButton
185
- }, "Download") : null), imgSrcUrl === '' ? /*#__PURE__*/React.createElement("div", {
186
- style: {
187
- display: 'block',
188
- margin: 'auto'
189
- }
190
- }, /*#__PURE__*/React.createElement(CircularLoading, null)) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(TransformWrapper, {
191
- defaultScale: 1,
192
- options: {
193
- limitToBounds: true,
194
- limitToWrapper: true,
195
- transformEnabled: true,
196
- centerContent: true
197
- }
198
- }, /*#__PURE__*/React.createElement(TransformComponent, null, /*#__PURE__*/React.createElement("img", {
199
- src: imgSrcUrl,
200
- alt: "",
201
- id: "lightboxImg",
202
- style: {
203
- maxWidth: '80vw',
204
- maxHeight: 'calc(80vh - 20px)',
205
- margin: 'auto',
206
- zIndex: 99999999999
207
- }
208
- })), (_props$options3 = props.options) !== null && _props$options3 !== void 0 && _props$options3.descriptionBoxDisplay ? (_props$imgObj3 = props.imgObj) !== null && _props$imgObj3 !== void 0 && _props$imgObj3.description || DescriptionCustomBox ? DescriptionCustomBox ? /*#__PURE__*/React.createElement(DescriptionCustomBox, {
209
- imgObj: props.imgObj,
210
- onClose: props.onClose
211
- }, (_props$imgObj4 = props.imgObj) === null || _props$imgObj4 === void 0 ? void 0 : _props$imgObj4.description) : /*#__PURE__*/React.createElement("div", {
212
- className: "reactPic-description",
213
- style: styles.DescriptionDiv
214
- }, (_props$imgObj5 = props.imgObj) === null || _props$imgObj5 === void 0 ? void 0 : _props$imgObj5.description) : null : null), props.hasPrevious && /*#__PURE__*/React.createElement("div", {
215
- className: "react-lightbox-prevBtn",
216
- style: {
217
- position: 'absolute',
218
- left: 20,
219
- top: '50%',
220
- fontSize: 50,
221
- cursor: 'pointer',
222
- color: 'white',
223
- display: props.options.hidePagination ? 'none' : 'inherit'
224
- },
225
- onClick: () => {
226
- props.onNavigation('previous');
227
- }
228
- }, "\u2039"), props.hasNext && /*#__PURE__*/React.createElement("div", {
229
- className: "react-lightbox-nextBtn",
230
- style: {
231
- position: 'absolute',
232
- right: 20,
233
- top: '50%',
234
- fontSize: 50,
235
- cursor: 'pointer',
236
- color: 'white',
237
- display: props.options.hidePagination ? 'none' : 'inherit'
238
- },
239
- onClick: () => {
240
- props.onNavigation('next');
241
- }
242
- }, "\u203A")));
243
- };
244
-
245
- const extraStyle$1 = `
246
- `;
247
- const defaultOptions = {
248
- downloadBtnDisplay: true,
249
- descriptionBoxDisplay: true,
250
- navigation: true
251
- };
252
- function PicGallery(props) {
253
- const [open, setOpen] = React.useState(false);
254
- const [modalImgIndex, setModalImgIndex] = React.useState(0);
255
- const options = { ...defaultOptions,
256
- ...props.options
257
- };
258
- useEffect(() => {
259
- if (typeof props.setExtLightboxChildren == 'function') {
260
- if (open) {
261
- props.setExtLightboxChildren(React.createElement(ImgLightbox, {
262
- imgObj: props.imgList[modalImgIndex],
263
- options: options,
264
- onClose: () => {
265
- setOpen(false);
266
- }
267
- }));
268
- } else {
269
- props.setExtLightboxChildren(null);
270
- }
271
- }
272
- }, [open]);
273
- const styleTag = document.querySelector('#react-pic-style');
274
-
275
- if (!styleTag) {
276
- const sheet = document.createElement('style');
277
- sheet.innerHTML = '.react-transform-component { overflow: unset !important; }' + extraStyle$1;
278
- sheet.id = 'react-pic-style';
279
- document.body.appendChild(sheet);
280
- } else {
281
- styleTag.innerHTML = styleTag.innerHTML + extraStyle$1;
282
- }
283
-
284
- return React.createElement("div", {
285
- className: 'reactPic-wrapper',
286
- style: styles.Wrapper
287
- }, open && !props.options.externalLightbox ? React.createElement(ImgLightbox, {
288
- imgObj: props.imgList[modalImgIndex],
289
- options: options,
290
- onNavigation: action => {
291
- if (action === 'next' && modalImgIndex + 1 < props.imgList.length) {
292
- setModalImgIndex(modalImgIndex + 1);
293
- } else if (action === 'previous' && modalImgIndex - 1 >= 0) {
294
- setModalImgIndex(modalImgIndex - 1);
295
- }
296
- },
297
- onClose: () => {
298
- setOpen(false);
299
- },
300
- hasPrevious: modalImgIndex - 1 >= 0 ? true : false,
301
- hasNext: modalImgIndex + 1 < props.imgList.length ? true : false
302
- }) : null, React.createElement("div", {
303
- className: 'reactPic-grid',
304
- style: styles.Grid
305
- }, props.imgList.map((element, count) => {
306
- return React.createElement("div", {
307
- key: element.thumbnailSrc ? element.thumbnailSrc : element.fullSrc,
308
- className: 'reactPic-imgDiv',
309
- style: {
310
- overflow: 'hidden',
311
- width: '100%',
312
- height: '100%',
313
- minHeight: '150px'
314
- }
315
- }, React.createElement("div", {
316
- className: 'reactPic-innerImgDiv',
317
- style: {
318
- display: 'flex',
319
- justifyContent: 'center',
320
- alignItems: 'center',
321
- overflow: 'hidden !important',
322
- width: '100%',
323
- height: options.rowHeight ? options.rowHeight : '150px',
324
- cursor: 'pointer'
325
- }
326
- }, React.createElement(ImgLazyLoading, {
327
- imgSrc: element.thumbnailSrc ? element.thumbnailSrc : element.fullSrc,
328
- style: {
329
- flexShrink: 0,
330
- minWidth: '100%',
331
- minHeight: '100%'
332
- },
333
- onClick: () => {
334
- setModalImgIndex(count);
335
- setOpen(!open);
336
- }
337
- })));
338
- })));
339
- }
340
-
341
- export default PicGallery;
342
- //# sourceMappingURL=index.modern.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/CircularLoading.jsx","../src/ImgLazyLoading.jsx","../src/styles.js","../src/ImgLightbox.jsx","../src/index.tsx"],"sourcesContent":["import React from 'react'\r\n\r\nconst extraStyle = `\r\n.lds-dual-ring {\r\n display: inline-block;\r\n width: 40px;\r\n height: 40px;\r\n}\r\n.lds-dual-ring:after {\r\n content: \" \";\r\n display: block;\r\n width: 32px;\r\n height: 32px;\r\n margin: 8px;\r\n border-radius: 50%;\r\n border: 3px solid rgba(185, 185, 185, 0.466);\r\n border-color: rgba(185, 185, 185, 0.466) transparent rgba(185, 185, 185, 0.466) transparent;\r\n animation: lds-dual-ring 1.2s linear infinite;\r\n}\r\n@keyframes lds-dual-ring {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n`\r\n\r\n// 3. Lightbox and Image Component\r\n\r\nexport default function CircularLoading() {\r\n const styleTag = document.querySelector('#react-pic-style')\r\n if (!styleTag) {\r\n const sheet = document.createElement('style')\r\n sheet.id = 'react-pic-style'\r\n sheet.innerHTML = extraStyle\r\n document.body.appendChild(sheet)\r\n }else{\r\n styleTag.innerHTML = styleTag.innerText + extraStyle;\r\n }\r\n return <div className='lds-dual-ring'></div>\r\n}\r\n","import React from 'react'\r\nimport CircularLoading from './CircularLoading'\r\n\r\n// const ImgLazyLoading = (props: {\r\n// imgSrc: string\r\n// style: React.CSSProperties\r\n// onClick: () => void\r\n// }) => {\r\n\r\nconst ImgLazyLoading = (props) => {\r\n const [imgSrcUrl, setImgSrcUrl] = React.useState('')\r\n \r\n React.useEffect(() => {\r\n const ac = new AbortController()\r\n if (props.imgSrc) {\r\n fetch(props.imgSrc)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n setImgSrcUrl(URL.createObjectURL(blob))\r\n })\r\n }\r\n return () => {\r\n ac.abort()\r\n } // cleanup function\r\n }, [props.imgSrc])\r\n \r\n if (imgSrcUrl) {\r\n return (\r\n <img\r\n src={imgSrcUrl}\r\n alt=''\r\n style={{\r\n ...props.style\r\n }}\r\n onClick={() => {\r\n props.onClick()\r\n }}\r\n />\r\n )\r\n } else {\r\n return (\r\n <div\r\n style={{\r\n height: '100%',\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n background: 'rgba(0, 0, 0, 0.157)',\r\n border: '1px solid rgba(0, 0, 0,0.3)'\r\n }}\r\n >\r\n <CircularLoading />\r\n </div>\r\n )\r\n }\r\n }\r\n\r\n export default ImgLazyLoading;","let styles = {}\r\n\r\nstyles.ModalDiv = {\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n background: `rgba(0, 0, 0, 0.454)`,\r\n backdropFilter: 'blur(6px)',\r\n display: 'flex',\r\n zIndex: 9999999,\r\n display: 'grid',\r\n gridTemplateRows: '60px | auto | 300px',\r\n justifyContent: 'center',\r\n alignContent: 'center'\r\n}\r\n\r\nstyles.LbButtonsDiv = {\r\n position: 'absolute',\r\n top: '10px',\r\n width: 'calc(100% - 20px)'\r\n}\r\n\r\nstyles.LbButton = {\r\n float: 'right',\r\n textDecoration: 'none',\r\n color: 'white',\r\n padding: '5px',\r\n border: '1px solid white',\r\n borderRadius: '5px'\r\n}\r\nstyles.ABtn = {\r\n float: 'right',\r\n textDecoration: 'none',\r\n color: 'white'\r\n}\r\n\r\nstyles.DescriptionDiv = {\r\n background: 'white',\r\n padding: '10px',\r\n color: '#666',\r\n textAlign: 'center',\r\n position:'relative',\r\n zIndex:-1,\r\n}\r\n\r\nstyles.Wrapper = {\r\n display: 'flex',\r\n width: '100%',\r\n minWidth: 200,\r\n height: '100%'\r\n}\r\n\r\nstyles.Grid = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n gridTemplateRows: '1fr',\r\n gap: '2px',\r\n width: '100%',\r\n height: 'auto'\r\n}\r\n\r\nexport default styles;","import React from 'react'\r\nimport { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch'\r\nimport CircularLoading from './CircularLoading'\r\nimport styles from './styles'\r\n\r\n// const ImgLightbox = (props: {\r\n// imgObj: imageObject | null\r\n// options?: Options\r\n// onClose: () => void\r\n// onNavigation: (arg0: 'next' | 'previous') => void\r\n// hasPrevious: boolean\r\n// hasNext: boolean\r\n// }) => {\r\n\r\nconst ImgLightbox = (props) => {\r\n const [imgSrcUrl, setImgSrcUrl] = React.useState('')\r\n\r\n const DescriptionCustomBox = props.options.descriptionCustomBox\r\n\r\n React.useEffect(() => {\r\n const imgSrc = props.imgObj?.fullSrc\r\n ? props.imgObj.fullSrc\r\n : props.imgObj?.thumbnailSrc\r\n ? props.imgObj.thumbnailSrc\r\n : null\r\n if (imgSrc) {\r\n fetch(imgSrc)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n setImgSrcUrl(URL.createObjectURL(blob))\r\n })\r\n }\r\n // fixing body scrolling while lightbox is open\r\n document.body.style.overflow = 'hidden'\r\n }, [props.imgObj])\r\n\r\n return (\r\n <div\r\n className='reactPic-lightbox'\r\n onClick={(event) => {\r\n document.body.style.overflow = ''\r\n const target = event.target\r\n\r\n if (target.className === 'reactPic-lightbox') {\r\n props.onClose()\r\n }\r\n }}\r\n style={styles.ModalDiv}\r\n >\r\n <div style={styles.LbButtonsDiv}>\r\n {props.options?.downloadBtnDisplay ||\r\n props.options?.downloadCustomBtn ? (\r\n props.options.downloadCustomBtn ? (\r\n <a href={imgSrcUrl} download style={styles.ABtn}>\r\n {props.options.downloadCustomBtn()}\r\n </a>\r\n ) : (\r\n <a href={imgSrcUrl} download style={styles.LbButton}>\r\n Download\r\n </a>\r\n )\r\n ) : null}\r\n </div>\r\n\r\n {imgSrcUrl === '' ? (\r\n <div style={{ display: 'block', margin: 'auto' }}>\r\n <CircularLoading />\r\n </div>\r\n ) : (\r\n <div>\r\n <TransformWrapper\r\n defaultScale={1}\r\n options={{\r\n limitToBounds: true,\r\n limitToWrapper: true,\r\n transformEnabled: true,\r\n centerContent:true,\r\n }}\r\n >\r\n <TransformComponent>\r\n <img\r\n src={imgSrcUrl}\r\n alt=''\r\n id='lightboxImg'\r\n style={{\r\n maxWidth: '80vw',\r\n maxHeight: 'calc(80vh - 20px)',\r\n margin: 'auto',\r\n zIndex: 99999999999\r\n }}\r\n />\r\n </TransformComponent>\r\n {props.options?.descriptionBoxDisplay ? (\r\n props.imgObj?.description || DescriptionCustomBox ? (\r\n DescriptionCustomBox ? (\r\n <DescriptionCustomBox imgObj={props.imgObj} onClose={props.onClose}>\r\n {props.imgObj?.description}\r\n </DescriptionCustomBox>\r\n ) : (\r\n <div\r\n className='reactPic-description'\r\n style={styles.DescriptionDiv}\r\n >\r\n {props.imgObj?.description}\r\n </div>\r\n )\r\n ) : null\r\n ) : null}\r\n </TransformWrapper>\r\n {props.hasPrevious && (\r\n <div\r\n className=\"react-lightbox-prevBtn\"\r\n style={{\r\n position: 'absolute',\r\n left: 20,\r\n top: '50%',\r\n fontSize: 50,\r\n cursor: 'pointer',\r\n color:'white',\r\n display: props.options.hidePagination ? 'none' : 'inherit'\r\n }}\r\n onClick={() => {\r\n props.onNavigation('previous')\r\n }}\r\n >\r\n &#8249;\r\n </div>\r\n )}\r\n\r\n {props.hasNext && (\r\n <div\r\n className=\"react-lightbox-nextBtn\"\r\n style={{\r\n position: 'absolute',\r\n right: 20,\r\n top: '50%',\r\n fontSize: 50,\r\n cursor: 'pointer',\r\n color:'white',\r\n display: props.options.hidePagination ? 'none' : 'inherit'\r\n }}\r\n onClick={() => {\r\n props.onNavigation('next')\r\n }}\r\n >\r\n &#8250;\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default ImgLightbox\r\n","import React, { useEffect } from 'react'\r\nimport ImgLazyLoading from './ImgLazyLoading'\r\nimport ImgLightbox from './ImgLightbox'\r\nimport styles from './styles'\r\n\r\n// 1. Types Declaration\r\n\r\nexport interface imageObject {\r\n fullSrc: string;\r\n thumbnailSrc?: string;\r\n description?: string;\r\n [key: string]: string\r\n}\r\n\r\nexport interface Options {\r\n downloadBtnDisplay?: boolean;\r\n downloadCustomBtn?: (props: { imgObj: imageObject }) => Element;\r\n descriptionBoxDisplay?: boolean;\r\n descriptionCustomBox?: (props: { imgObj: imageObject }) => Element;\r\n externalLightbox?: boolean;\r\n hidePagination?: boolean;\r\n rowHeight?: string | number;\r\n}\r\n\r\n// 2. Styles\r\n\r\nconst extraStyle = `\r\n`\r\n\r\n// 3. Lightbox and Image Component\r\n\r\n// 4. Main Component\r\n\r\n// 4.1. Default Options\r\n\r\nconst defaultOptions = {\r\n downloadBtnDisplay: true,\r\n descriptionBoxDisplay: true,\r\n navigation: true\r\n}\r\n\r\n// 4.2. Main\r\n\r\nexport default function PicGallery(props: {\r\n imgList: imageObject[];\r\n options?: Options,\r\n bottomCustomContent?: (imgObject) => Element,\r\n setExtLightboxChildren?: (imgLightbox: React.Node) => void\r\n}) {\r\n // export default function PicGallery(props) {\r\n const [open, setOpen] = React.useState(false)\r\n const [modalImgIndex, setModalImgIndex] = React.useState(0)\r\n\r\n const options: Options = { ...defaultOptions, ...props.options }\r\n\r\n // solving lightbox not in full screen problem\r\n useEffect(() => {\r\n //TODO: add setExtLightboxChildren to Lightbox\r\n if (typeof props.setExtLightboxChildren == 'function') {\r\n\r\n if (open) {\r\n props.setExtLightboxChildren(\r\n <ImgLightbox\r\n imgObj={props.imgList[modalImgIndex]}\r\n options={options}\r\n onClose={() => {\r\n setOpen(false)\r\n }}\r\n />\r\n )\r\n } else {\r\n props.setExtLightboxChildren(null)\r\n }\r\n }\r\n }, [open])\r\n\r\n // allowing full screen zooming on react-zoom library\r\n const styleTag = document.querySelector('#react-pic-style')\r\n if (!styleTag) {\r\n const sheet = document.createElement('style')\r\n sheet.innerHTML =\r\n '.react-transform-component { overflow: unset !important; }' + extraStyle;\r\n sheet.id = 'react-pic-style';\r\n document.body.appendChild(sheet)\r\n } else {\r\n styleTag.innerHTML = styleTag.innerHTML + extraStyle\r\n }\r\n\r\n return (\r\n <div className='reactPic-wrapper' style={styles.Wrapper}>\r\n {open && !props.options.externalLightbox ? (\r\n <ImgLightbox\r\n imgObj={props.imgList[modalImgIndex]}\r\n options={options}\r\n onNavigation={(action) => {\r\n if (action === 'next' && modalImgIndex + 1 < props.imgList.length) {\r\n setModalImgIndex(modalImgIndex + 1)\r\n } else if (action === 'previous' && modalImgIndex - 1 >= 0) {\r\n setModalImgIndex(modalImgIndex - 1)\r\n }\r\n }}\r\n onClose={() => {\r\n setOpen(false)\r\n }}\r\n hasPrevious={modalImgIndex - 1 >= 0 ? true : false}\r\n hasNext={modalImgIndex + 1 < props.imgList.length ? true : false}\r\n />\r\n ) : null}\r\n <div className='reactPic-grid' style={styles.Grid}>\r\n {props.imgList.map((element, count) => {\r\n return (\r\n <div\r\n key={\r\n element.thumbnailSrc ? element.thumbnailSrc : element.fullSrc\r\n }\r\n className='reactPic-imgDiv'\r\n style={{\r\n overflow: 'hidden',\r\n width: '100%',\r\n height: '100%',\r\n minHeight: '150px'\r\n }}\r\n >\r\n <div\r\n className='reactPic-innerImgDiv'\r\n style={{\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n overflow: 'hidden !important',\r\n width: '100%',\r\n height: options.rowHeight ? options.rowHeight : '150px',\r\n cursor: 'pointer'\r\n }}\r\n >\r\n <ImgLazyLoading\r\n imgSrc={\r\n element.thumbnailSrc\r\n ? element.thumbnailSrc\r\n : element.fullSrc\r\n }\r\n style={{\r\n flexShrink: 0,\r\n minWidth: '100%',\r\n minHeight: '100%'\r\n }}\r\n onClick={() => {\r\n setModalImgIndex(count)\r\n setOpen(!open)\r\n }}\r\n />\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["extraStyle","CircularLoading","styleTag","document","querySelector","sheet","createElement","id","innerHTML","body","appendChild","innerText","ImgLazyLoading","props","imgSrcUrl","setImgSrcUrl","React","useState","useEffect","ac","AbortController","imgSrc","fetch","then","response","blob","URL","createObjectURL","abort","style","onClick","height","width","display","alignItems","alignContent","justifyContent","background","border","styles","ModalDiv","position","top","left","backdropFilter","zIndex","gridTemplateRows","LbButtonsDiv","LbButton","float","textDecoration","color","padding","borderRadius","ABtn","DescriptionDiv","textAlign","Wrapper","minWidth","Grid","gridTemplateColumns","gap","ImgLightbox","DescriptionCustomBox","options","descriptionCustomBox","imgObj","fullSrc","thumbnailSrc","overflow","event","target","className","onClose","downloadBtnDisplay","downloadCustomBtn","margin","limitToBounds","limitToWrapper","transformEnabled","centerContent","maxWidth","maxHeight","descriptionBoxDisplay","description","hasPrevious","fontSize","cursor","hidePagination","onNavigation","hasNext","right","defaultOptions","navigation","PicGallery","open","setOpen","modalImgIndex","setModalImgIndex","setExtLightboxChildren","imgList","externalLightbox","action","length","map","element","count","key","minHeight","rowHeight","flexShrink"],"mappings":"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"}