4 lines
9.2 KiB
JavaScript
4 lines
9.2 KiB
JavaScript
/*! PhotoSwipe Default UI - 4.0.1 - 2014-12-16
|
|
* http://photoswipe.com
|
|
* Copyright (c) 2014 Dmitry Semenov; */
|
|
!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b():a.PhotoSwipeUI_Default=b()}(this,function(){"use strict";var a=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s=this,t=!1,u=!0,v=!0,w={barsSize:{top:44,bottom:"auto"},closeElClasses:["item","caption","zoom-wrap","ui","top-bar"],timeToIdle:4e3,timeToIdleOutside:1e3,loadingIndicatorDelay:1e3,addCaptionHTMLFn:function(a,b){return a.title?(b.children[0].innerHTML=a.title,!0):(b.children[0].innerHTML="",!1)},closeEl:!0,captionEl:!0,fullscreenEl:!0,zoomEl:!0,shareEl:!0,counterEl:!0,arrowEl:!0,preloaderEl:!0,tapToClose:!1,tapToToggleControls:!0,shareButtons:[{id:"facebook",label:"Share on Facebook",url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"},{id:"twitter",label:"Tweet",url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"},{id:"pinterest",label:"Pin it",url:"http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"},{id:"download",label:"Download image",url:"{{raw_image_url}}",download:!0}],indexIndicatorSep:" / "},x=function(a){if(o)return!0;a=a||window.event;for(var c,d,e=a.target||a.srcElement,f=e.className,g=0;g<H.length;g++)c=H[g],c.onTap&&f.indexOf("pswp__"+c.name)>-1&&(c.onTap(),d=!0);if(d){a.stopPropagation&&a.stopPropagation(),o=!0;var h=b.features.isOldAndroid?600:30;p=setTimeout(function(){o=!1},h)}},y=function(){return!a.likelyTouchDevice||a.options.mouseUsed||screen.width>1200},z=function(){return v=!v,v?(b.removeClass(i,"pswp__share-modal--fade-in"),setTimeout(function(){v&&b[(v?"add":"remove")+"Class"](i,"pswp__share-modal--hidden")},300)):(b[(v?"add":"remove")+"Class"](i,"pswp__share-modal--hidden"),setTimeout(function(){v||b.addClass(i,"pswp__share-modal--fade-in")},30)),v||B(),!1},A=function(a){a=a||window.event;var b=a.target||a.srcElement;return b.href?b.hasAttribute("download")?!0:(window.open(b.href,"pswp_share","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left="+(window.screen?Math.round(screen.width/2-275):100)),v||z(),!1):!1},B=function(){for(var b,c,d="",e=0;e<a.options.shareButtons.length;e++)b=a.options.shareButtons[e],c=b.url.replace("{{url}}",encodeURIComponent(window.location.href)).replace("{{image_url}}",encodeURIComponent(a.currItem.src||"")).replace("{{raw_image_url}}",a.currItem.src||"").replace("{{text}}",encodeURIComponent(a.currItem.title||"")),d+='<a href="'+c+'" target="_blank" class="pswp__share--'+b.id+'"'+(b.download?"download":"")+">"+b.label+"</a>";i.children[0].innerHTML=d,i.children[0].onclick=A},C=function(c){for(var d=0;d<a.options.closeElClasses.length;d++)if(b.hasClass(c,"pswp__"+a.options.closeElClasses[d]))return!0},D=0,E=function(){clearTimeout(r),D=0,k&&s.setIdle(!1)},F=function(b){b=b?b:window.event;var c=b.relatedTarget||b.toElement;c&&"HTML"!==c.nodeName||(clearTimeout(r),r=setTimeout(function(){s.setIdle(!0)},a.options.timeToIdleOutside))},G=function(a){m!==a&&(b[(a?"remove":"add")+"Class"](l,"pswp__preloader--active"),m=a)},H=[{name:"caption",option:"captionEl",onInit:function(a){e=a}},{name:"share-modal",option:"shareEl",onInit:function(a){i=a},onTap:function(){z()}},{name:"button--share",option:"shareEl",onInit:function(a){h=a},onTap:function(){z()}},{name:"button--zoom",option:"zoomEl",onTap:a.toggleDesktopZoom},{name:"counter",option:"counterEl",onInit:function(a){g=a}},{name:"button--close",option:"closeEl",onTap:a.close},{name:"button--arrow--left",option:"arrowEl",onTap:a.prev},{name:"button--arrow--right",option:"arrowEl",onTap:a.next},{name:"button--fs",option:"fullscreenEl",onTap:function(){c.isFullscreen()?c.exit():c.enter()}},{name:"preloader",option:"preloaderEl",onInit:function(a){l=a}}];s.init=function(){b.extend(a.options,w,!0),d=a.scrollWrap.children[1];var g=a.listen;g("onVerticalDrag",function(a){u&&.95>a?s.hideControls():!u&&a>=.95&&s.showControls()});var j;g("onPinchClose",function(a){u&&.9>a?(s.hideControls(),j=!0):j&&!u&&a>.9&&s.showControls()}),g("zoomGestureEnded",function(){j=!1,j&&!u&&s.showControls()}),g("beforeChange",s.update),g("doubleTap",function(b){var c=a.currItem.initialZoomLevel;a.getZoomLevel()!==c?a.zoomTo(c,b,333):a.zoomTo(a.currItem.doubleTapZoom,b,333)}),a.options.timeToIdle&&g("mouseUsed",function(){b.bind(document,"mousemove",E),b.bind(document,"mouseout",F),q=setInterval(function(){D++,2===D&&s.setIdle(!0)},a.options.timeToIdle/2)}),g("preventDragEvent",function(a,b,c){var d=a.target||a.srcElement;d&&d.className&&a.type.indexOf("mouse")>-1&&(d.className.indexOf("__caption")>0||/(SMALL|STRONG|EM)/i.test(d.tagName))&&(c.prevent=!1)}),g("bindEvents",function(){b.bind(d,"pswpTap click",x),b.bind(a.scrollWrap,"pswpTap",s.onGlobalTap),a.likelyTouchDevice||b.bind(a.scrollWrap,"mouseover",s.onMouseOver)}),g("unbindEvents",function(){v||z(),q&&clearInterval(q),b.unbind(document,"mouseout",F),b.unbind(document,"mousemove",E),b.unbind(d,"pswpTap click",x),b.unbind(a.scrollWrap,"pswpTap",s.onGlobalTap),b.unbind(a.scrollWrap,"mouseover",s.onMouseOver),c&&(b.unbind(document,c.eventK,s.updateFullscreen),c.isFullscreen()&&(w.hideAnimationDuration=0,c.exit()),c=null)}),g("destroy",function(){a.options.captionEl&&(f&&d.removeChild(f),b.removeClass(e,"pswp__caption--empty")),i&&(i.children[0].onclick=null),b.removeClass(d,"pswp__ui--over-close"),b.addClass(d,"pswp__ui--hidden"),s.setIdle(!1)}),a.options.showAnimationDuration||b.removeClass(d,"pswp__ui--hidden"),g("initialZoomIn",function(){a.options.showAnimationDuration&&b.removeClass(d,"pswp__ui--hidden")}),g("initialZoomOut",function(){b.addClass(d,"pswp__ui--hidden")}),g("parseVerticalMargin",function(c){var g=c.vGap;if(y()){var h=a.options.barsSize;if(a.options.captionEl&&"auto"===h.bottom)if(f||(f=b.createEl("pswp__caption pswp__caption--fake"),f.appendChild(b.createEl("pswp__caption__center")),d.insertBefore(f,e),b.addClass(d,"pswp__ui--fit")),a.options.addCaptionHTMLFn(c,f,!0)){var i=f.clientHeight;g.bottom=parseInt(i,10)||44}else g.bottom=h.top;else g.bottom=h.bottom;g.top=h.top}else g.top=g.bottom=0});var k,l,m,o=function(c){for(var d=c.length,e=0;d>e;e++){k=c[e],l=k.className;for(var f=0;f<H.length;f++)m=H[f],l.indexOf("pswp__"+m.name)>-1&&(a.options[m.option]?(b.removeClass(k,"pswp__element--disabled"),m.onInit&&m.onInit(k)):b.addClass(k,"pswp__element--disabled"))}};o(d.children),o(d.children[0].children),a.options.shareEl&&h&&i&&(v=!0),a.options.fullscreenEl&&(c||(c=s.getFullscreenAPI()),c?(b.bind(document,c.eventK,s.updateFullscreen),s.updateFullscreen(),b.addClass(a.template,"pswp--supports-fs")):b.removeClass(a.template,"pswp--supports-fs")),a.options.preloaderEl&&(G(!0),g("beforeChange",function(){clearTimeout(n),n=setTimeout(function(){a.currItem&&a.currItem.loading?(!a.allowProgressiveImg()||a.currItem.img&&!a.currItem.img.naturalWidth)&&G(!1):G(!0)},a.options.loadingIndicatorDelay)}),g("imageLoadComplete",function(b,c){a.currItem===c&&G(!0)}))},s.setIdle=function(a){k=a,b[(a?"add":"remove")+"Class"](d,"pswp__ui--idle")},s.update=function(){u&&a.currItem?(s.updateIndexIndicator(),a.options.captionEl&&(a.options.addCaptionHTMLFn(a.currItem,e),a.currItem.title?b.removeClass(e,"pswp__caption--empty"):b.addClass(e,"pswp__caption--empty")),t=!0):t=!1},s.updateFullscreen=function(){b[(c.isFullscreen()?"add":"remove")+"Class"](a.template,"pswp--fs")},s.updateIndexIndicator=function(){a.options.counterEl&&(g.innerHTML=a.getCurrentIndex()+1+a.options.indexIndicatorSep+a.options.getNumItemsFn())},s.onGlobalTap=function(c){c=c||window.event;var d=c.target||c.srcElement;if(!o)if(c.detail&&"mouse"===c.detail.pointerType)C(d)&&a.close(),b.hasClass(d,"pswp__img")&&(1===a.getZoomLevel()&&a.getZoomLevel()<=a.currItem.fitRatio?a.close():a.toggleDesktopZoom(c.detail.releasePoint));else if(a.options.tapToToggleControls&&(u?s.hideControls():s.showControls()),a.options.tapToClose&&(b.hasClass(d,"pswp__img")||C(d)))return void a.close()},s.onMouseOver=function(a){a=a||window.event;var c=a.target||a.srcElement;C(c)?b.addClass(d,"pswp__ui--over-close"):b.removeClass(d,"pswp__ui--over-close")},s.hideControls=function(){b.addClass(d,"pswp__ui--hidden"),u=!1},s.showControls=function(){u=!0,t||s.update(),b.removeClass(d,"pswp__ui--hidden")},s.supportsFullscreen=function(){var a=document;return!!(a.exitFullscreen||a.mozCancelFullScreen||a.webkitExitFullscreen||a.msExitFullscreen)},s.getFullscreenAPI=function(){var b,c=document.documentElement,d="fullscreenchange";return c.requestFullscreen?b={enterK:"requestFullscreen",exitK:"exitFullscreen",elementK:"fullscreenElement",eventK:d}:c.mozRequestFullScreen?b={enterK:"mozRequestFullScreen",exitK:"mozCancelFullScreen",elementK:"mozFullScreenElement",eventK:"moz"+d}:c.webkitRequestFullscreen?b={enterK:"webkitRequestFullscreen",exitK:"webkitExitFullscreen",elementK:"webkitFullscreenElement",eventK:"webkit"+d}:c.msRequestFullscreen&&(b={enterK:"msRequestFullscreen",exitK:"msExitFullscreen",elementK:"msFullscreenElement",eventK:"MSFullscreenChange"}),b&&(b.enter=function(){return j=a.options.closeOnScroll,a.options.closeOnScroll=!1,"webkitRequestFullscreen"!==this.enterK?a.template[this.enterK]():void a.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT)},b.exit=function(){return a.options.closeOnScroll=j,document[this.exitK]()},b.isFullscreen=function(){return document[this.elementK]}),b}};return a}); |