"use strict" /*! By André Rinas, www.andrerinas.de Documentation, www.simplelightbox.de Available for use under the MIT License Version 2.1.5 */ ;function _createForOfIteratorHelper(o){if(typeof Symbol==="undefined"||o[Symbol.iterator]==null){if(Array.isArray(o)||(o=_unsupportedIterableToArray(o))){var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e){throw _e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion=true,didErr=false,err;return{s:function s(){it=o[Symbol.iterator]();},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e2){didErr=true;err=_e2;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};} function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);} function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i0?Array.from(elements):[elements];} this.relatedElements=[];this.transitionPrefix=this.calculateTransitionPrefix();this.transitionCapable=this.transitionPrefix!==false;this.initialLocationHash=this.hash;if(this.options.rel){this.elements=this.getRelated(this.options.rel);} this.createDomNodes();if(this.options.close){this.domNodes.wrapper.appendChild(this.domNodes.closeButton);} if(this.options.nav){this.domNodes.wrapper.appendChild(this.domNodes.navigation);} if(this.options.spinner){this.domNodes.wrapper.appendChild(this.domNodes.spinner);} this.addEventListener(this.elements,'click.'+this.eventNamespace,function(event){if(_this.isValidLink(event.currentTarget)){event.preventDefault();if(_this.isAnimating){return false;} _this.initialImageIndex=_this.elements.indexOf(event.currentTarget);_this.openImage(event.currentTarget);}});if(this.options.docClose){this.addEventListener(this.domNodes.overlay,['click.'+this.eventNamespace,'touchstart.'+this.eventNamespace],function(event){if(_this.isOpen){_this.close();}});} if(this.options.disableRightClick){this.addEventListener(document.body,'contextmenu.'+this.eventNamespace,function(event){if(event.target.classList.contains('sl-overlay')){event.preventDefault();}});} if(this.options.enableKeyboard){this.addEventListener(document.body,'keyup.'+this.eventNamespace,this.throttle(function(event){_this.controlCoordinates.swipeDiff=0;if(_this.isAnimating&&event.key==='Escape'){_this.currentImage.setAttribute('src','');_this.isAnimating=false;return _this.close();} if(_this.isOpen){event.preventDefault();if(event.key==='Escape'){_this.close();} if(!_this.isAnimating&&['ArrowLeft','ArrowRight'].indexOf(event.key)>-1){_this.loadImage(event.key==='ArrowRight'?1:-1);}}},this.options.throttleInterval));} this.addEvents();} _createClass(SimpleLightbox,[{key:"createDomNodes",value:function createDomNodes(){this.domNodes.overlay=document.createElement('div');this.domNodes.overlay.classList.add('sl-overlay');this.domNodes.overlay.dataset.opacityTarget=".7";this.domNodes.closeButton=document.createElement('button');this.domNodes.closeButton.classList.add('sl-close');this.domNodes.closeButton.innerHTML=this.options.closeText;this.domNodes.spinner=document.createElement('div');this.domNodes.spinner.classList.add('sl-spinner');this.domNodes.spinner.innerHTML='

';this.domNodes.navigation=document.createElement('div');this.domNodes.navigation.classList.add('sl-navigation');this.domNodes.navigation.innerHTML="");this.domNodes.counter=document.createElement('div');this.domNodes.counter.classList.add('sl-counter');this.domNodes.counter.innerHTML='/';this.domNodes.caption=document.createElement('div');this.domNodes.caption.classList.add('sl-caption','pos-'+this.options.captionPosition);if(this.options.captionClass){this.domNodes.caption.classList.add(this.options.captionClass);} this.domNodes.image=document.createElement('div');this.domNodes.image.classList.add('sl-image');this.domNodes.wrapper=document.createElement('div');this.domNodes.wrapper.classList.add('sl-wrapper');if(this.options.className){this.domNodes.wrapper.classList.add(this.options.className);} if(this.options.rtl){this.domNodes.wrapper.classList.add('sl-dir-rtl');}}},{key:"throttle",value:function throttle(func,limit){var inThrottle;return function(){if(!inThrottle){func.apply(this,arguments);inThrottle=true;setTimeout(function(){return inThrottle=false;},limit);}};}},{key:"isValidLink",value:function isValidLink(element){return!this.options.fileExt||'pathname'in element&&new RegExp('('+this.options.fileExt+')$','i').test(element.pathname);}},{key:"calculateTransitionPrefix",value:function calculateTransitionPrefix(){var s=(document.body||document.documentElement).style;return'transition'in s?'':'WebkitTransition'in s?'-webkit-':'MozTransition'in s?'-moz-':'OTransition'in s?'-o':false;}},{key:"toggleScrollbar",value:function toggleScrollbar(type){var scrollbarWidth=0;if(type==='hide'){var fullWindowWidth=window.innerWidth;if(!fullWindowWidth){var documentElementRect=document.documentElement.getBoundingClientRect();fullWindowWidth=documentElementRect.right-Math.abs(documentElementRect.left);} if(document.body.clientWidth0){document.body.classList.add('hidden-scroll');document.body.style.paddingRight=paddingRight+scrollbarWidth+'px';}}}else{document.body.classList.remove('hidden-scroll');document.body.style.paddingRight=document.body.dataset.originalPaddingRight;} return scrollbarWidth;}},{key:"close",value:function close(){var _this2=this;if(!this.isOpen||this.isAnimating||this.isClosing){return false;} this.isClosing=true;var element=this.relatedElements[this.currentImageIndex];element.dispatchEvent(new Event('close.simplelightbox'));if(this.options.history){this.historyHasChanges=false;if(!this.hashReseted){this.resetHash();}} this.fadeOut(document.querySelectorAll('.sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter'),300,function(){if(_this2.options.disableScroll){_this2.toggleScrollbar('show');} if(_this2.options.htmlClass&&_this2.options.htmlClass!==''){document.querySelector('html').classList.remove(_this2.options.htmlClass);} document.body.removeChild(_this2.domNodes.wrapper);document.body.removeChild(_this2.domNodes.overlay);_this2.domNodes.additionalHtml=null;element.dispatchEvent(new Event('closed.simplelightbox'));_this2.isClosing=false;});this.currentImage=null;this.isOpen=false;this.isAnimating=false;for(var key in this.controlCoordinates){this.controlCoordinates[key]=0;} this.controlCoordinates.mousedown=false;this.controlCoordinates.zoomed=false;this.controlCoordinates.capture=false;this.controlCoordinates.initialScale=this.minMax(1,1,this.options.maxZoom);this.controlCoordinates.doubleTapped=false;}},{key:"preload",value:function preload(){var _this3=this;var index=this.currentImageIndex,length=this.relatedElements.length,next=index+1<0?length-1:index+1>=length-1?0:index+1,prev=index-1<0?length-1:index-1>=length-1?0:index-1,nextImage=new Image(),prevImage=new Image();nextImage.addEventListener('load',function(event){var src=event.target.getAttribute('src');if(_this3.loadedImages.indexOf(src)===-1){_this3.loadedImages.push(src);} _this3.relatedElements[index].dispatchEvent(new Event('nextImageLoaded.'+_this3.eventNamespace));});nextImage.setAttribute('src',this.relatedElements[next].getAttribute(this.options.sourceAttr));prevImage.addEventListener('load',function(event){var src=event.target.getAttribute('src');if(_this3.loadedImages.indexOf(src)===-1){_this3.loadedImages.push(src);} _this3.relatedElements[index].dispatchEvent(new Event('prevImageLoaded.'+_this3.eventNamespace));});prevImage.setAttribute('src',this.relatedElements[prev].getAttribute(this.options.sourceAttr));}},{key:"loadImage",value:function loadImage(direction){var _this4=this;var slideDirection=direction;if(this.options.rtl){direction=-direction;} this.relatedElements[this.currentImageIndex].dispatchEvent(new Event('change.'+this.eventNamespace));this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((direction===1?'next':'prev')+'.'+this.eventNamespace));var newIndex=this.currentImageIndex+direction;if(this.isAnimating||(newIndex<0||newIndex>=this.relatedElements.length)&&this.options.loop===false){return false;} this.currentImageIndex=newIndex<0?this.relatedElements.length-1:newIndex>this.relatedElements.length-1?0:newIndex;this.domNodes.counter.querySelector('.sl-current').innerHTML=this.currentImageIndex+1;if(this.options.animationSlide){this.slide(this.options.animationSpeed/1000,-100*slideDirection-this.controlCoordinates.swipeDiff+'px');} this.fadeOut(this.domNodes.image,300,function(){_this4.isAnimating=true;setTimeout(function(){var element=_this4.relatedElements[_this4.currentImageIndex];_this4.currentImage.setAttribute('src',element.getAttribute(_this4.options.sourceAttr));if(_this4.loadedImages.indexOf(element.getAttribute(_this4.options.sourceAttr))===-1){_this4.show(_this4.domNodes.spinner);} if(_this4.domNodes.image.contains(_this4.domNodes.caption)){_this4.domNodes.image.removeChild(_this4.domNodes.caption);} _this4.adjustImage(slideDirection);if(_this4.options.preloading)_this4.preload();},100);});}},{key:"adjustImage",value:function adjustImage(direction){var _this5=this;if(!this.currentImage){return false;} var tmpImage=new Image(),windowWidth=window.innerWidth*this.options.widthRatio,windowHeight=window.innerHeight*this.options.heightRatio;tmpImage.setAttribute('src',this.currentImage.getAttribute('src'));this.currentImage.dataset.scale=1;this.currentImage.dataset.translateX=0;this.currentImage.dataset.translateY=0;this.zoomPanElement(0,0,1);tmpImage.addEventListener('error',function(event){_this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('error.'+_this5.eventNamespace));_this5.isAnimating=false;_this5.isOpen=false;_this5.domNodes.spinner.style.display='none';var dirIsDefined=direction===1||direction===-1;if(_this5.initialImageIndex===_this5.currentImageIndex&&dirIsDefined){return _this5.close();} if(_this5.options.alertError){alert(_this5.options.alertErrorMessage);} _this5.loadImage(dirIsDefined?direction:1);});tmpImage.addEventListener('load',function(event){if(typeof direction!=='undefined'){_this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('changed.'+_this5.eventNamespace));_this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event((direction===1?'nextDone':'prevDone')+'.'+_this5.eventNamespace));} if(_this5.options.history){_this5.updateURL();} if(_this5.loadedImages.indexOf(_this5.currentImage.getAttribute('src'))===-1){_this5.loadedImages.push(_this5.currentImage.getAttribute('src'));} var imageWidth=event.target.width,imageHeight=event.target.height;if(_this5.options.scaleImageToRatio||imageWidth>windowWidth||imageHeight>windowHeight){var ratio=imageWidth/imageHeight>windowWidth/windowHeight?imageWidth/windowWidth:imageHeight/windowHeight;imageWidth/=ratio;imageHeight/=ratio;} _this5.domNodes.image.style.top=(window.innerHeight-imageHeight)/2+'px';_this5.domNodes.image.style.left=(window.innerWidth-imageWidth-_this5.globalScrollbarWidth)/2+'px';_this5.domNodes.image.style.width=imageWidth+'px';_this5.domNodes.image.style.height=imageHeight+'px';_this5.domNodes.spinner.style.display='none';_this5.fadeIn(_this5.currentImage,300);_this5.isOpen=true;var captionContainer=_this5.options.captionSelector==='self'?_this5.relatedElements[_this5.currentImageIndex]:_this5.relatedElements[_this5.currentImageIndex].querySelector(_this5.options.captionSelector),captionText;if(_this5.options.captions&&captionContainer){if(_this5.options.captionType==='data'){captionText=captionContainer.dataset[_this5.options.captionsData];}else if(_this5.options.captionType==='text'){captionText=captionContainer.innerHTML;}else{captionText=captionContainer.getAttribute(_this5.options.captionsData);}} if(!_this5.options.loop){if(_this5.currentImageIndex===0){_this5.hide(_this5.domNodes.navigation.querySelector('.sl-prev'));} if(_this5.currentImageIndex>=_this5.relatedElements.length-1){_this5.hide(_this5.domNodes.navigation.querySelector('.sl-next'));} if(_this5.currentImageIndex>0){_this5.show(_this5.domNodes.navigation.querySelector('.sl-prev'));} if(_this5.currentImageIndex<_this5.relatedelements.length-1 if .sl-next _this5.fadein zoompanelement scale minmax value>max?max:value;}},{key:"setZoomData",value:function setZoomData(initialScale,targetOffsetX,targetOffsetY){this.currentImage.dataset.scale=initialScale;this.currentImage.dataset.translateX=targetOffsetX;this.currentImage.dataset.translateY=targetOffsetY;}},{key:"hashchangeHandler",value:function hashchangeHandler(){if(this.isOpen&&this.hash===this.initialLocationHash){this.hashReseted=true;this.close();}}},{key:"addEvents",value:function addEvents(){var _this6=this;this.addEventListener(window,'resize.'+this.eventNamespace,function(event){if(_this6.isOpen){_this6.adjustImage();}});this.addEventListener(this.domNodes.closeButton,['click.'+this.eventNamespace,'touchstart.'+this.eventNamespace],this.close.bind(this));if(this.options.history){setTimeout(function(){_this6.addEventListener(window,'hashchange.'+_this6.eventNamespace,function(event){if(_this6.isOpen){_this6.hashchangeHandler();}});},40);} this.addEventListener(this.domNodes.navigation.getElementsByTagName('button'),'click.'+this.eventNamespace,function(event){if(!event.currentTarget.tagName.match(/button/i)){return true;} event.preventDefault();_this6.controlCoordinates.swipeDiff=0;_this6.loadImage(event.currentTarget.classList.contains('sl-next')?1:-1);});this.addEventListener(this.domNodes.image,['touchstart.'+this.eventNamespace,'mousedown.'+this.eventNamespace],function(event){if(event.target.tagName==='A'&&event.type==='touchstart'){return true;} if(event.type==='mousedown'){_this6.controlCoordinates.initialPointerOffsetX=event.clientX;_this6.controlCoordinates.initialPointerOffsetY=event.clientY;_this6.controlCoordinates.containerHeight=_this6.getDimensions(_this6.domNodes.image).height;_this6.controlCoordinates.containerWidth=_this6.getDimensions(_this6.domNodes.image).width;_this6.controlCoordinates.imgHeight=_this6.getDimensions(_this6.currentImage).height;_this6.controlCoordinates.imgWidth=_this6.getDimensions(_this6.currentImage).width;_this6.controlCoordinates.containerOffsetX=_this6.domNodes.image.offsetLeft;_this6.controlCoordinates.containerOffsetY=_this6.domNodes.image.offsetTop;_this6.controlCoordinates.initialOffsetX=parseFloat(_this6.currentImage.dataset.translateX);_this6.controlCoordinates.initialOffsetY=parseFloat(_this6.currentImage.dataset.translateY);_this6.controlCoordinates.capture=true;}else{_this6.controlCoordinates.touchCount=event.touches.length;_this6.controlCoordinates.initialPointerOffsetX=event.touches[0].clientX;_this6.controlCoordinates.initialPointerOffsetY=event.touches[0].clientY;_this6.controlCoordinates.containerHeight=_this6.getDimensions(_this6.domNodes.image).height;_this6.controlCoordinates.containerWidth=_this6.getDimensions(_this6.domNodes.image).width;_this6.controlCoordinates.imgHeight=_this6.getDimensions(_this6.currentImage).height;_this6.controlCoordinates.imgWidth=_this6.getDimensions(_this6.currentImage).width;_this6.controlCoordinates.containerOffsetX=_this6.domNodes.image.offsetLeft;_this6.controlCoordinates.containerOffsetY=_this6.domNodes.image.offsetTop;if(_this6.controlCoordinates.touchCount===1) {if(!_this6.controlCoordinates.doubleTapped){_this6.controlCoordinates.doubleTapped=true;setTimeout(function(){_this6.controlCoordinates.doubleTapped=false;},300);}else{_this6.currentImage.classList.add('sl-transition');if(!_this6.controlCoordinates.zoomed){_this6.controlCoordinates.initialScale=_this6.options.doubleTapZoom;_this6.setZoomData(_this6.controlCoordinates.initialScale,0,0);_this6.zoomPanElement(0+"px",0+"px",_this6.controlCoordinates.initialScale);if(!_this6.domNodes.caption.style.opacity&&_this6.domNodes.caption.style.display!=='none'){_this6.fadeOut(_this6.domNodes.caption,200);} _this6.controlCoordinates.zoomed=true;}else{_this6.controlCoordinates.initialScale=1;_this6.setZoomData(_this6.controlCoordinates.initialScale,0,0);_this6.zoomPanElement(0+"px",0+"px",_this6.controlCoordinates.initialScale);_this6.controlCoordinates.zoomed=false;} setTimeout(function(){if(_this6.currentImage){_this6.currentImage.classList.remove('sl-transition');}},200);return false;} _this6.controlCoordinates.initialOffsetX=parseFloat(_this6.currentImage.dataset.translateX);_this6.controlCoordinates.initialOffsetY=parseFloat(_this6.currentImage.dataset.translateY);}else if(_this6.controlCoordinates.touchCount===2) {_this6.controlCoordinates.initialPointerOffsetX2=event.touches[1].clientX;_this6.controlCoordinates.initialPointerOffsetY2=event.touches[1].clientY;_this6.controlCoordinates.initialOffsetX=parseFloat(_this6.currentImage.dataset.translateX);_this6.controlCoordinates.initialOffsetY=parseFloat(_this6.currentImage.dataset.translateY);_this6.controlCoordinates.pinchOffsetX=(_this6.controlCoordinates.initialPointerOffsetX+_this6.controlCoordinates.initialPointerOffsetX2)/2;_this6.controlCoordinates.pinchOffsetY=(_this6.controlCoordinates.initialPointerOffsetY+_this6.controlCoordinates.initialPointerOffsetY2)/2;_this6.controlCoordinates.initialPinchDistance=Math.sqrt((_this6.controlCoordinates.initialPointerOffsetX-_this6.controlCoordinates.initialPointerOffsetX2)*(_this6.controlCoordinates.initialPointerOffsetX-_this6.controlCoordinates.initialPointerOffsetX2)+(_this6.controlCoordinates.initialPointerOffsetY-_this6.controlCoordinates.initialPointerOffsetY2)*(_this6.controlCoordinates.initialPointerOffsetY-_this6.controlCoordinates.initialPointerOffsetY2));} _this6.controlCoordinates.capture=true;} if(_this6.controlCoordinates.mousedown)return true;if(_this6.transitionCapable){_this6.controlCoordinates.imageLeft=parseInt(_this6.domNodes.image.style.left,10);} _this6.controlCoordinates.mousedown=true;_this6.controlCoordinates.swipeDiff=0;_this6.controlCoordinates.swipeYDiff=0;_this6.controlCoordinates.swipeStart=event.pageX||event.touches[0].pageX;_this6.controlCoordinates.swipeYStart=event.pageY||event.touches[0].pageY;return false;});this.addEventListener(this.domNodes.image,['touchmove.'+this.eventNamespace,'mousemove.'+this.eventNamespace,'MSPointerMove'],function(event){if(!_this6.controlCoordinates.mousedown){return true;} event.preventDefault();if(event.type==='touchmove'){if(_this6.controlCoordinates.capture===false){return false;} _this6.controlCoordinates.pointerOffsetX=event.touches[0].clientX;_this6.controlCoordinates.pointerOffsetY=event.touches[0].clientY;_this6.controlCoordinates.touchCount=event.touches.length;_this6.controlCoordinates.touchmoveCount++;if(_this6.controlCoordinates.touchCount>1) {_this6.controlCoordinates.pointerOffsetX2=event.touches[1].clientX;_this6.controlCoordinates.pointerOffsetY2=event.touches[1].clientY;_this6.controlCoordinates.targetPinchDistance=Math.sqrt((_this6.controlCoordinates.pointerOffsetX-_this6.controlCoordinates.pointerOffsetX2)*(_this6.controlCoordinates.pointerOffsetX-_this6.controlCoordinates.pointerOffsetX2)+(_this6.controlCoordinates.pointerOffsetY-_this6.controlCoordinates.pointerOffsetY2)*(_this6.controlCoordinates.pointerOffsetY-_this6.controlCoordinates.pointerOffsetY2));if(_this6.controlCoordinates.initialPinchDistance===null){_this6.controlCoordinates.initialPinchDistance=_this6.controlCoordinates.targetPinchDistance;} if(Math.abs(_this6.controlCoordinates.initialPinchDistance-_this6.controlCoordinates.targetPinchDistance)>=1){_this6.controlCoordinates.targetScale=_this6.minMax(_this6.controlCoordinates.targetPinchDistance/_this6.controlCoordinates.initialPinchDistance*_this6.controlCoordinates.initialScale,1,_this6.options.maxZoom);_this6.controlCoordinates.limitOffsetX=(_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerWidth)/2;_this6.controlCoordinates.limitOffsetY=(_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerHeight)/2;_this6.controlCoordinates.scaleDifference=_this6.controlCoordinates.targetScale-_this6.controlCoordinates.initialScale;_this6.controlCoordinates.targetOffsetX=_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerWidth?0:_this6.minMax(_this6.controlCoordinates.initialOffsetX-(_this6.controlCoordinates.pinchOffsetX-_this6.controlCoordinates.containerOffsetX-_this6.controlCoordinates.containerWidth/2-_this6.controlCoordinates.initialOffsetX)/(_this6.controlCoordinates.targetScale-_this6.controlCoordinates.scaleDifference)*_this6.controlCoordinates.scaleDifference,_this6.controlCoordinates.limitOffsetX*-1,_this6.controlCoordinates.limitOffsetX);_this6.controlCoordinates.targetOffsetY=_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerHeight?0:_this6.minMax(_this6.controlCoordinates.initialOffsetY-(_this6.controlCoordinates.pinchOffsetY-_this6.controlCoordinates.containerOffsetY-_this6.controlCoordinates.containerHeight/2-_this6.controlCoordinates.initialOffsetY)/(_this6.controlCoordinates.targetScale-_this6.controlCoordinates.scaleDifference)*_this6.controlCoordinates.scaleDifference,_this6.controlCoordinates.limitOffsetY*-1,_this6.controlCoordinates.limitOffsetY);_this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX+"px",_this6.controlCoordinates.targetOffsetY+"px",_this6.controlCoordinates.targetScale);if(_this6.controlCoordinates.targetScale>1){_this6.controlCoordinates.zoomed=true;if(!_this6.domNodes.caption.style.opacity&&_this6.domNodes.caption.style.display!=='none'){_this6.fadeOut(_this6.domNodes.caption,200);}} _this6.controlCoordinates.initialPinchDistance=_this6.controlCoordinates.targetPinchDistance;_this6.controlCoordinates.initialScale=_this6.controlCoordinates.targetScale;_this6.controlCoordinates.initialOffsetX=_this6.controlCoordinates.targetOffsetX;_this6.controlCoordinates.initialOffsetY=_this6.controlCoordinates.targetOffsetY;}}else{_this6.controlCoordinates.targetScale=_this6.controlCoordinates.initialScale;_this6.controlCoordinates.limitOffsetX=(_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerWidth)/2;_this6.controlCoordinates.limitOffsetY=(_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerHeight)/2;_this6.controlCoordinates.targetOffsetX=_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerWidth?0:_this6.minMax(_this6.controlCoordinates.pointerOffsetX-(_this6.controlCoordinates.initialPointerOffsetX-_this6.controlCoordinates.initialOffsetX),_this6.controlCoordinates.limitOffsetX*-1,_this6.controlCoordinates.limitOffsetX);_this6.controlCoordinates.targetOffsetY=_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerHeight?0:_this6.minMax(_this6.controlCoordinates.pointerOffsetY-(_this6.controlCoordinates.initialPointerOffsetY-_this6.controlCoordinates.initialOffsetY),_this6.controlCoordinates.limitOffsetY*-1,_this6.controlCoordinates.limitOffsetY);if(Math.abs(_this6.controlCoordinates.targetOffsetX)===Math.abs(_this6.controlCoordinates.limitOffsetX)){_this6.controlCoordinates.initialOffsetX=_this6.controlCoordinates.targetOffsetX;_this6.controlCoordinates.initialPointerOffsetX=_this6.controlCoordinates.pointerOffsetX;} if(Math.abs(_this6.controlCoordinates.targetOffsetY)===Math.abs(_this6.controlCoordinates.limitOffsetY)){_this6.controlCoordinates.initialOffsetY=_this6.controlCoordinates.targetOffsetY;_this6.controlCoordinates.initialPointerOffsetY=_this6.controlCoordinates.pointerOffsetY;} _this6.setZoomData(_this6.controlCoordinates.initialScale,_this6.controlCoordinates.targetOffsetX,_this6.controlCoordinates.targetOffsetY);_this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX+"px",_this6.controlCoordinates.targetOffsetY+"px",_this6.controlCoordinates.targetScale);}} if(event.type==='mousemove'&&_this6.controlCoordinates.mousedown){if(event.type=='touchmove')return true;if(_this6.controlCoordinates.capture===false)return false;_this6.controlCoordinates.pointerOffsetX=event.clientX;_this6.controlCoordinates.pointerOffsetY=event.clientY;_this6.controlCoordinates.targetScale=_this6.controlCoordinates.initialScale;_this6.controlCoordinates.limitOffsetX=(_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerWidth)/2;_this6.controlCoordinates.limitOffsetY=(_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale-_this6.controlCoordinates.containerHeight)/2;_this6.controlCoordinates.targetOffsetX=_this6.controlCoordinates.imgWidth*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerWidth?0:_this6.minMax(_this6.controlCoordinates.pointerOffsetX-(_this6.controlCoordinates.initialPointerOffsetX-_this6.controlCoordinates.initialOffsetX),_this6.controlCoordinates.limitOffsetX*-1,_this6.controlCoordinates.limitOffsetX);_this6.controlCoordinates.targetOffsetY=_this6.controlCoordinates.imgHeight*_this6.controlCoordinates.targetScale<=_this6.controlCoordinates.containerHeight?0:_this6.minMax(_this6.controlCoordinates.pointerOffsetY-(_this6.controlCoordinates.initialPointerOffsetY-_this6.controlCoordinates.initialOffsetY),_this6.controlCoordinates.limitOffsetY*-1,_this6.controlCoordinates.limitOffsetY);if(Math.abs(_this6.controlCoordinates.targetOffsetX)===Math.abs(_this6.controlCoordinates.limitOffsetX)){_this6.controlCoordinates.initialOffsetX=_this6.controlCoordinates.targetOffsetX;_this6.controlCoordinates.initialPointerOffsetX=_this6.controlCoordinates.pointerOffsetX;} if(Math.abs(_this6.controlCoordinates.targetOffsetY)===Math.abs(_this6.controlCoordinates.limitOffsetY)){_this6.controlCoordinates.initialOffsetY=_this6.controlCoordinates.targetOffsetY;_this6.controlCoordinates.initialPointerOffsetY=_this6.controlCoordinates.pointerOffsetY;} _this6.setZoomData(_this6.controlCoordinates.initialScale,_this6.controlCoordinates.targetOffsetX,_this6.controlCoordinates.targetOffsetY);_this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX+"px",_this6.controlCoordinates.targetOffsetY+"px",_this6.controlCoordinates.targetScale);} if(!_this6.controlCoordinates.zoomed){_this6.controlCoordinates.swipeEnd=event.pageX||event.touches[0].pageX;_this6.controlCoordinates.swipeYEnd=event.pageY||event.touches[0].pageY;_this6.controlCoordinates.swipeDiff=_this6.controlCoordinates.swipeStart-_this6.controlCoordinates.swipeEnd;_this6.controlCoordinates.swipeYDiff=_this6.controlCoordinates.swipeYStart-_this6.controlCoordinates.swipeYEnd;if(_this6.options.animationSlide){_this6.slide(0,-_this6.controlCoordinates.swipeDiff+'px');}}});this.addEventListener(this.domNodes.image,['touchend.'+this.eventNamespace,'mouseup.'+this.eventNamespace,'touchcancel.'+this.eventNamespace,'mouseleave.'+this.eventNamespace,'pointerup','pointercancel','MSPointerUp','MSPointerCancel'],function(event){if(_this6.isTouchDevice&&event.type==='touchend'){_this6.controlCoordinates.touchCount=event.touches.length;if(_this6.controlCoordinates.touchCount===0) {_this6.setZoomData(_this6.controlCoordinates.initialScale,_this6.controlCoordinates.targetOffsetX,_this6.controlCoordinates.targetOffsetY);if(_this6.controlCoordinates.initialScale===1){_this6.controlCoordinates.zoomed=false;if(_this6.domNodes.caption.style.display==='none'){_this6.fadeIn(_this6.domNodes.caption,200);}} _this6.controlCoordinates.initialPinchDistance=null;_this6.controlCoordinates.capture=false;}else if(_this6.controlCoordinates.touchCount===1) {_this6.controlCoordinates.initialPointerOffsetX=event.touches[0].clientX;_this6.controlCoordinates.initialPointerOffsetY=event.touches[0].clientY;}else if(_this6.controlCoordinates.touchCount>1) {_this6.controlCoordinates.initialPinchDistance=null;}} if(_this6.controlCoordinates.mousedown){_this6.controlCoordinates.mousedown=false;var possibleDir=true;if(!_this6.options.loop){if(_this6.currentImageIndex===0&&_this6.controlCoordinates.swipeDiff<0){possibleDir=false;} if(_this6.currentImageIndex>=_this6.relatedElements.length-1&&_this6.controlCoordinates.swipeDiff>0){possibleDir=false;}} if(Math.abs(_this6.controlCoordinates.swipeDiff)>_this6.options.swipeTolerance&&possibleDir){_this6.loadImage(_this6.controlCoordinates.swipeDiff>0?1:-1);}else if(_this6.options.animationSlide){_this6.slide(_this6.options.animationSpeed/1000,0+'px');} if(_this6.options.swipeClose&&Math.abs(_this6.controlCoordinates.swipeYDiff)>50&&Math.abs(_this6.controlCoordinates.swipeDiff)<_this6.options.swipetolerance _this6.controlcoordinates.zoomed="true;}else{_this6.controlCoordinates.initialScale=1;_this6.setZoomData(_this6.controlCoordinates.initialScale,0,0);_this6.zoomPanElement(0+"px",0+"px",_this6.controlCoordinates.initialScale);_this6.controlCoordinates.zoomed=false;if(_this6.domNodes.caption.style.display==='none'){_this6.fadeIn(_this6.domNodes.caption,200);}}" settimeout false getdimensions styles='window.getComputedStyle(element),height=element.offsetHeight,width=element.offsetWidth,borderTopWidth=parseFloat(styles.borderTopWidth),borderBottomWidth=parseFloat(styles.borderBottomWidth),paddingTop=parseFloat(styles.paddingTop),paddingBottom=parseFloat(styles.paddingBottom),borderLeftWidth=parseFloat(styles.borderLeftWidth),borderRightWidth=parseFloat(styles.borderRightWidth),paddingLeft=parseFloat(styles.paddingLeft),paddingRight=parseFloat(styles.paddingRight);return{height:height-borderBottomWidth-borderTopWidth-paddingTop-paddingBottom,width:width-borderLeftWidth-borderRightWidth-paddingLeft-paddingRight};}},{key:"updateHash",value:function' updatehash newhash="pid=" if this.historyhaschanges='true;}},{key:"resetHash",value:function' resethash cleartimeout updateurl setcaption _this7="this;if(this.options.captions&&captionText&&captionText!==''&&typeof" captiontext slide this.domnodes.image.style.left="pos;}" this.domnodes.image.style linear getrelated elems element.getattribute return openimage _this8="this;element.dispatchEvent(new" event document.body.appendchild this.relatedelements="this.getRelated(element.rel);if(this.options.showCounter){if(this.relatedElements.length==1&&this.domNodes.wrapper.contains(this.domNodes.counter)){this.domNodes.wrapper.removeChild(this.domNodes.counter);}else">1&&!this.domNodes.wrapper.contains(this.domNodes.counter)){this.domNodes.wrapper.appendChild(this.domNodes.counter);}} this.isAnimating=true;this.currentImageIndex=this.relatedElements.indexOf(element);var targetURL=element.getAttribute(this.options.sourceAttr);this.currentImage=document.createElement('img');this.currentImage.style.display='none';this.currentImage.setAttribute('src',targetURL);this.currentImage.dataset.scale=1;this.currentImage.dataset.translateX=0;this.currentImage.dataset.translateY=0;if(this.loadedImages.indexOf(targetURL)===-1){this.loadedImages.push(targetURL);} this.domNodes.image.innerHTML='';this.domNodes.image.setAttribute('style','');this.domNodes.image.appendChild(this.currentImage);this.fadeIn(this.domNodes.overlay,300);this.fadeIn([this.domNodes.counter,this.domNodes.navigation,this.domNodes.closeButton],300);this.show(this.domNodes.spinner);this.domNodes.counter.querySelector('.sl-current').innerHTML=this.currentImageIndex+1;this.domNodes.counter.querySelector('.sl-total').innerHTML=this.relatedElements.length;this.adjustImage();if(this.options.preloading){this.preload();} setTimeout(function(){element.dispatchEvent(new Event('shown.'+_this8.eventNamespace));},this.options.animationSpeed);}},{key:"addEventListener",value:function addEventListener(elements,events,callback,opts){elements=this.wrap(elements);events=this.wrap(events);var _iterator=_createForOfIteratorHelper(elements),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var element=_step.value;if(!element.namespaces){element.namespaces={};} var _iterator2=_createForOfIteratorHelper(events),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var event=_step2.value;var options=opts||false;element.namespaces[event]=callback;element.addEventListener(event.split('.')[0],callback,options);}}catch(err){_iterator2.e(err);}finally{_iterator2.f();}}}catch(err){_iterator.e(err);}finally{_iterator.f();}}},{key:"removeEventListener",value:function removeEventListener(elements,events){elements=this.wrap(elements);events=this.wrap(events);var _iterator3=_createForOfIteratorHelper(elements),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var element=_step3.value;var _iterator4=_createForOfIteratorHelper(events),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;element.removeEventListener(event.split('.')[0],element.namespaces[event]);delete element.namespaces[event];}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}}}catch(err){_iterator3.e(err);}finally{_iterator3.f();}}},{key:"fadeOut",value:function fadeOut(elements,duration,callback){var _this9=this;elements=this.wrap(elements);var _iterator5=_createForOfIteratorHelper(elements),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var element=_step5.value;element.style.opacity=1;}}catch(err){_iterator5.e(err);}finally{_iterator5.f();} var step=16.66666/(duration||300),fade=function fade(){var currentOpacity=parseFloat(elements[0].style.opacity);if((currentOpacity-=step)<0){var _iterator6=_createForOfIteratorHelper(elements),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var element=_step6.value;element.style.display="none";element.style.opacity='';}}catch(err){_iterator6.e(err);}finally{_iterator6.f();} callback&&callback.call(_this9,elements);}else{var _iterator7=_createForOfIteratorHelper(elements),_step7;try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var _element=_step7.value;_element.style.opacity=currentOpacity;}}catch(err){_iterator7.e(err);}finally{_iterator7.f();} requestAnimationFrame(fade);}};fade();}},{key:"fadeIn",value:function fadeIn(elements,duration,callback,display){var _this10=this;elements=this.wrap(elements);var _iterator8=_createForOfIteratorHelper(elements),_step8;try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var element=_step8.value;element.style.opacity=0;element.style.display=display||"block";}}catch(err){_iterator8.e(err);}finally{_iterator8.f();} var opacityTarget=parseFloat(elements[0].dataset.opacityTarget||1),step=16.66666*opacityTarget/(duration||300),fade=function fade(){var currentOpacity=parseFloat(elements[0].style.opacity);if(!((currentOpacity+=step)>opacityTarget)){var _iterator9=_createForOfIteratorHelper(elements),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var element=_step9.value;element.style.opacity=currentOpacity;}}catch(err){_iterator9.e(err);}finally{_iterator9.f();} requestAnimationFrame(fade);}else{var _iterator10=_createForOfIteratorHelper(elements),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var _element2=_step10.value;_element2.style.opacity='';}}catch(err){_iterator10.e(err);}finally{_iterator10.f();} callback&&callback.call(_this10,elements);}};fade();}},{key:"hide",value:function hide(elements){elements=this.wrap(elements);var _iterator11=_createForOfIteratorHelper(elements),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var element=_step11.value;element.dataset.initialDisplay=element.style.display;element.style.display='none';}}catch(err){_iterator11.e(err);}finally{_iterator11.f();}}},{key:"show",value:function show(elements,display){elements=this.wrap(elements);var _iterator12=_createForOfIteratorHelper(elements),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var element=_step12.value;element.style.display=element.dataset.initialDisplay||display||'block';}}catch(err){_iterator12.e(err);}finally{_iterator12.f();}}},{key:"wrap",value:function wrap(input){return typeof input[Symbol.iterator]==='function'&&typeof input!=='string'?input:[input];}},{key:"on",value:function on(events,callback){events=this.wrap(events);var _iterator13=_createForOfIteratorHelper(this.elements),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var element=_step13.value;if(!element.fullyNamespacedEvents){element.fullyNamespacedEvents={};} var _iterator14=_createForOfIteratorHelper(events),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var event=_step14.value;element.fullyNamespacedEvents[event]=callback;element.addEventListener(event,callback);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();} return this;}},{key:"off",value:function off(events){events=this.wrap(events);var _iterator15=_createForOfIteratorHelper(this.elements),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var element=_step15.value;var _iterator16=_createForOfIteratorHelper(events),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var event=_step16.value;if(typeof element.fullyNamespacedEvents!=='undefined'&&event in element.fullyNamespacedEvents){element.removeEventListener(event,element.fullyNamespacedEvents[event]);}}}catch(err){_iterator16.e(err);}finally{_iterator16.f();}}}catch(err){_iterator15.e(err);}finally{_iterator15.f();} return this;}},{key:"open",value:function open(elem){elem=elem||this.elements[0];if(typeof jQuery!=="undefined"&&elem instanceof jQuery){elem=elem.get(0);} this.initialImageIndex=this.elements.indexOf(elem);if(this.initialImageIndex>-1){this.openImage(elem);}}},{key:"next",value:function next(){this.loadImage(1);}},{key:"prev",value:function prev(){this.loadImage(-1);}},{key:"destroy",value:function destroy(){this.off(['close.'+this.eventNamespace,'closed.'+this.eventNamespace,'nextImageLoaded.'+this.eventNamespace,'prevImageLoaded.'+this.eventNamespace,'change.'+this.eventNamespace,'nextDone.'+this.eventNamespace,'prevDone.'+this.eventNamespace,'error.'+this.eventNamespace,'changed.'+this.eventNamespace,'next.'+this.eventNamespace,'prev.'+this.eventNamespace,'show.'+this.eventNamespace,'shown.'+this.eventNamespace]);this.removeEventListener(this.elements,'click.'+this.eventNamespace);this.removeEventListener(document.body,'contextmenu.'+this.eventNamespace);this.removeEventListener(document.body,'keyup.'+this.eventNamespace);this.removeEventListener(this.domNodes.navigation.getElementsByTagName('button'),'click.'+this.eventNamespace);this.removeEventListener(this.domNodes.closeButton,'click.'+this.eventNamespace);this.removeEventListener(window,'resize.'+this.eventNamespace);this.removeEventListener(window,'hashchange.'+this.eventNamespace);this.close();if(this.isOpen){document.body.removeChild(this.domNodes.wrapper);document.body.removeChild(this.domNodes.overlay);} this.elements=null;}},{key:"refresh",value:function refresh(){if(!this.initialSelector){throw'refreshing only works when you initialize using a selector!';} var options=this.options,selector=this.initialSelector;this.destroy();this.constructor(selector,options);return this;}},{key:"hash",get:function get(){return window.location.hash.substring(1);}}]);return SimpleLightbox;}();(function($,window,document,undefined){'use strict';$.fn.simpleLightbox=function(options){return new SimpleLightbox(this.get(),options);};})(jQuery,window,document);