New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

imagelightbox

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

imagelightbox - npm Package Compare versions

Comparing version 0.14.0 to 1.0.0

36

CHANGELOG.md

@@ -10,2 +10,17 @@ # Changelog

## [1.0.0] - 2019-05-31
### Changed
- Don't display caption "bar" if there is no caption for the image #191 (@marekdedic)
- Do no use real image size to determine if prev or next #194 (@marekdedic)
- Adding onclick swipe to next only if not a video #195 (@marekdedic)
- Moved to pupeteer for testing (@rejas)
### Updated
- Update fullscreen code #190 (@rejas)
- Update dependencies
## [0.14.0] - 2018-12-19

@@ -15,3 +30,3 @@

- Removed origTargets #175 (@genabitu)
- Removed origTargets #175 (@marekdedic)

@@ -22,7 +37,7 @@ ## [0.13.0] - 2018-11-27

- Expose openHistory function #170 (@genabitu)
- Expose openHistory function #170 (@marekdedic)
### Fixed
- Fixed #167 History and dynamic adding don't work together (@genabitu)
- Fixed #167 History and dynamic adding don't work together (@marekdedic)

@@ -33,9 +48,9 @@ ## [0.12.0] - 2018-10-12

- Fixed #161 All videos playing simultaneously (@genabitu)
- Fixed error with history sometimes deleting path (@genabitu)
- Fixed #161 All videos playing simultaneously (@marekdedic)
- Fixed error with history sometimes deleting path (@marekdedic)
### Changed
- Use correct html element for close-button (@genabitu)
- Updated style (@genabitu)
- Use correct html element for close-button (@marekdedic)
- Updated style (@marekdedic)

@@ -46,3 +61,3 @@ ## [0.11.0] - 2018-09-15

- Added video functionality (@genabitu)
- Added video functionality (@marekdedic)

@@ -53,3 +68,3 @@ ## [0.10.0] - 2018-06-29

- Added history functionality (@genabitu & @paxperscientiam)
- Added history functionality (@marekdedic & @paxperscientiam)

@@ -213,3 +228,4 @@ ### Changed

[Unreleased]: https://github.com/rejas/imagelightbox/compare/0.14.0...HEAD
[Unreleased]: https://github.com/rejas/imagelightbox/compare/1.0.0...HEAD
[1.0.0]: https://github.com/rejas/imagelightbox/compare/0.14.0...1.0.0
[0.14.0]: https://github.com/rejas/imagelightbox/compare/0.13.0...0.14.0

@@ -216,0 +232,0 @@ [0.13.0]: https://github.com/rejas/imagelightbox/compare/0.12.0...0.13.0

@@ -1,1 +0,1 @@

!function(t){"object"==typeof module&&"object"==typeof module.exports?t(require("jquery"),window,document):t(jQuery,window,document)}(function(R,D,z){"use strict";var X=R("<div/>").attr("class","imagelightbox-loading").append(R("<div/>")),t=R("<button/>",{type:"button",class:"imagelightbox-arrow imagelightbox-arrow-left"}),e=R("<button/>",{type:"button",class:"imagelightbox-arrow imagelightbox-arrow-right"}),j=t.add(e),N=R("<div/>",{class:"imagelightbox-caption",html:"&nbsp;"}),U=R("<button/>",{type:"button",class:"imagelightbox-close"}),V=R("<div/>",{class:"imagelightbox-overlay"}),K=R("<a/>",{href:"#",class:"imagelightbox-navitem"}),Y=R("<div/>",{class:"imagelightbox-nav"}),_=R("<div/>",{class:"imagelightbox-wrapper"}),H=R("body"),o=function(){var t=z.body||z.documentElement;return""===(t=t.style).WebkitTransition?"-webkit-":""===t.MozTransition?"-moz-":""===t.OTransition?"-o-":""===t.transition&&""},W=!1!==o(),$=function(t,e,i){var n={},a=o();n[a+"transform"]="translateX("+e+") translateY(-50%)",n[a+"transition"]=a+"transform "+i+"s linear",t.css(n)},B="ontouchstart"in D,Q=D.navigator.pointerEnabled||D.navigator.msPointerEnabled,A=function(t){if(B)return!0;if(!Q||void 0===t||void 0===t.pointerType)return!1;if(void 0!==t.MSPOINTER_TYPE_MOUSE){if(t.MSPOINTER_TYPE_MOUSE!==t.pointerType)return!0}else if("mouse"!==t.pointerType)return!0;return!1},G=!1!=!!(z.fullscreenEnabled||z.webkitFullscreenEnabled||z.mozFullScreenEnabled||z.msFullscreenEnabled),J=!(!D.history||!history.pushState);R.fn.imageLightbox=function(t){var i="",c=R([]),s=R(),u=R([]),r=-1,d=R(),g=0,l=0,f=0,h=!1,n=0,p=R.extend({selector:"a[data-imagelightbox]",id:"imagelightbox",allowedTypes:"png|jpg|jpeg|gif",animationSpeed:250,activity:!1,arrows:!1,button:!1,caption:!1,enableKeyboard:!0,history:!1,fullscreen:!1,gutter:10,offsetY:0,navigation:!1,overlay:!1,preloadNext:!0,quitOnEnd:!1,quitOnImgClick:!1,quitOnDocClick:!0,quitOnEscKey:!0},t),b=function(){p.activity&&E(),p.arrows&&j.css("display","block")},a=function(t,e,i){var n=e+"="+i,a="?"+n;if(t){var o=new RegExp("([?&])"+e+"=[^&]*");a=null!==t.match(o)?t.replace(o,"$1"+n):t+"&"+n}return a},o=function(){if(J&&p.history){var t=c[r].dataset.ilb2Id;t||(t=r);var e={imageLightboxIndex:t},i=c[r].dataset.imagelightbox;i&&(e.imageLightboxSet=i);var n=a(z.location.search,"imageLightboxIndex",t);i&&(n=a(n,"imageLightboxSet",i)),D.history.pushState(e,"",z.location.pathname+n)}},e=function(t,e){var i=t;if(i){var n=new RegExp("[?]"+e+"=[^&]*"),a=new RegExp("&"+e+"=[^&]*");i=(i=i.replace(n,"?")).replace(a,"")}return i},m=function(t){var e=new RegExp("[?&]"+t+"(=([^&#]*)|&|#|$)").exec(z.location.search);if(e&&e[2])return decodeURIComponent(e[2].replace(/\+/g," "))},v=function(){if(J&&p.history){var t=m("imageLightboxIndex");if(t){var e=c.filter('[data-ilb2-id="'+t+'"]');0<e.length?r=c.index(e):e=R(c[r=t]);var i=m("imageLightboxSet");!e[0]||i&&i!==e[0].dataset.imagelightbox||L(e,!0)}}},x=function(){if(--r<0){if(!0===p.quitOnEnd)return P(),!1;r=c.length-1}s=c.eq(r),o(),_.trigger("previous.ilb2",s),T(1)},y=function(){if(++r>=c.length){if(!0===p.quitOnEnd)return P(),!1;r=0}o(),s=c.eq(r),_.trigger("next.ilb2",s),T(-1)},w=function(){_.append(X)},E=function(){R(".imagelightbox-loading").remove()},S=function(){_.append(V)},q=function(){U.appendTo(_).on("click.ilb7",function(){return P(),!1})},I=function(){N.html("&nbsp;"),R(s).data("ilb2-caption")?N.html(R(s).data("ilb2-caption")):0<R(s).find("img").length&&N.html(R(s).find("img").attr("alt"))},k=function(){if(c.length){for(var t=0;t<c.length;t++)Y.append(K.clone());var e=Y.children("a");e.eq(c.index(s)).addClass("active"),_.on("previous.ilb2 next.ilb2",function(){e.removeClass("active").eq(c.index(s)).addClass("active")}),_.append(Y),Y.on("click.ilb7 touchend.ilb7",function(){return!1}).on("click.ilb7 touchend.ilb7","a",function(){var t=R(this);if(c.eq(t.index()).attr("href")!==R(".imagelightbox").attr("src")){var e=c.eq(t.index());e.length&&(n=c.index(s),s=e,T(t.index()<n?-1:1))}t.addClass("active").siblings().removeClass("active")})}},O=function(){_.append(j),j.on("click.ilb7 touchend.ilb7",function(t){return t.stopImmediatePropagation(),t.preventDefault(),R(this).hasClass("imagelightbox-arrow-left")?x():y(),!1})},C=function(){if(!d.length)return!0;var t=p.caption?N.outerHeight():0,a=R(D).width(),o=R(D).height()-t,r=Math.abs(1-p.gutter/100);function e(){if(a<g||o<l){var t=a/o<g/l?g/a:l/o;g/=t,l/=t}var e=l*r,i=g*r,n=(R(D).width()-i)/2;d.css({width:i+"px",height:e+"px",left:n+"px"})}if(void 0!==d.get(0).videoWidth)return g=d.get(0).videoWidth,l=d.get(0).videoHeight,void e();var i=new Image;i.src=d.attr("src"),i.onload=function(){g=i.width,l=i.height,e()}},T=function(l){if(h)return!1;if(d.length){var t={opacity:0};W?$(d,100*l-f+"px",p.animationSpeed/1e3):t.left=parseInt(d.css("left"))+100*l+"px",d.animate(t,p.animationSpeed,function(){F()}),f=0}h=!0,p.activity&&w(),p.caption&&I(),setTimeout(function(){var t,e,i=s.attr("href"),n=0,a=0,o=0;function r(){var t={opacity:1};if(d.appendTo(_),C(),d.css("opacity",0),W)$(d,-100*l+"px",0),setTimeout(function(){$(d,"0px",p.animationSpeed/1e3)},50);else{var e=parseInt(d.css("left"));t.left=e+"px",d.css("left",e-100*l+"px")}if(d.animate(t,p.animationSpeed,function(){h=!1,b()}),p.preloadNext){var i=c.eq(c.index(s)+1);i.length||(i=c.eq(0)),R("<img />").attr("src",i.attr("href"))}_.trigger("loaded.ilb2")}s.data("ilb2Video")?u.each(function(){this.i===s.data("ilb2VideoId")&&(t=this.l,e=this.e,this.a&&(!1===t&&e.attr("autoplay",this.a),!0===t&&e.get(0).play()))}):e=R("<img id='"+p.id+"' />").attr("src",i),d=e.on("load.ilb7",r).on("error.ilb7",function(){b()}).on(Q?"pointerup.ilb7 MSPointerUp.ilb7":"click.ilb7",function(t){return t.preventDefault(),p.quitOnImgClick?(P(),!1):!!A(t.originalEvent)||void((t.pageX||t.originalEvent.pageX)-t.target.offsetLeft<g/2?x():y())}).on("touchstart.ilb7 pointerdown.ilb7 MSPointerDown.ilb7",function(t){if(!A(t.originalEvent)||p.quitOnImgClick)return!0;W&&(o=parseInt(d.css("left"))),n=t.originalEvent.pageX||t.originalEvent.touches[0].pageX}).on("touchmove.ilb7 pointermove.ilb7 MSPointerMove.ilb7",function(t){if(!Q&&"pointermove"===t.type||!A(t.originalEvent)||p.quitOnImgClick)return!0;t.preventDefault(),a=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,f=n-a,W?$(d,-f+"px",0):d.css("left",o-f+"px")}).on("touchend.ilb7 touchcancel.ilb7 pointerup.ilb7 pointercancel.ilb7 MSPointerUp.ilb7 MSPointerCancel.ilb7",function(t){if(!A(t.originalEvent)||p.quitOnImgClick)return!0;50<Math.abs(f)?f<0?x():y():W?$(d,"0px",p.animationSpeed/1e3):d.animate({left:o+"px"},p.animationSpeed/2)}),!0===t&&r(),!1===t&&(d=d.on("loadedmetadata.ilb7",r))},p.animationSpeed+100)},F=function(){if(!d.length)return!1;d.remove(),d=R()},L=function(t,e){if(h)return!1;h=!1,s=t,r=c.index(s),e||o(),function(){p.arrows&&O(this),p.navigation&&k(),p.overlay&&S(),p.button&&q(),p.caption&&_.append(N)}(),H.append(_).addClass("imagelightbox-open"),_.trigger("start.ilb2",t),T(0)},P=function(t){if(r=-1,t||function(){if(J&&p.history){var t=e(z.location.search,"imageLightboxIndex");t=e(t,"imageLightboxSet"),D.history.pushState({},"",z.location.pathname+t)}}(),_.trigger("quit.ilb2"),H.removeClass("imagelightbox-open"),!d.length)return!1;d.animate({opacity:0},p.animationSpeed,function(){F(),h=!1,_.remove().find("*").remove()})},M=function(e){e.each(function(){c=e.add(R(this))}),e.on("click.ilb7",{set:i},function(t){t.preventDefault(),i=R(t.currentTarget).data("imagelightbox"),e.filter(function(){return R(this).data("imagelightbox")===i}).filter(function(){return t=R(this),"a"===R(t).prop("tagName").toLowerCase()&&(new RegExp(".("+p.allowedTypes+")$","i").test(R(t).attr("href"))||R(t).data("ilb2Video"));var t}).each(function(){c=c.add(R(this))}),c.length<1?P():L(R(this))})};return R(D).on("resize.ilb7",C),J&&p.history&&R(D).on("popstate",function(t){var e=t.originalEvent.state;if(e){var i=e.imageLightboxIndex;if(void 0!==i){var n=c.filter('[data-ilb2-id="'+i+'"]');if(0<n.length)var a=c.index(n);else n=R(c[a=i]);if(n[0]&&(!e.imageLightboxSet||e.imageLightboxSet===n[0].dataset.imagelightbox))if(r<0)L(n,!0);else{var o=1;r<a&&(o=-1),s=n,r=a,T(o)}}else P(!0)}else P(!0)}),R(z).ready(function(){p.quitOnDocClick&&R(z).on(B?"touchend.ilb7":"click.ilb7",function(t){d.length&&!R(t.target).is(d)&&(t.preventDefault(),P())}),p.fullscreen&&G&&R(z).on("keydown.ilb7",function(t){if(!d.length)return!0;var e;-1<[9,32,38,40].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault()),-1<[13].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),(e=z.getElementById(p.id).parentElement).requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen(),z.exitFullscreen?z.exitFullscreen():z.mozCancelFullScreen?z.mozCancelFullScreen():z.webkitExitFullscreen&&z.webkitExitFullscreen())}),p.enableKeyboard&&R(z).on("keydown.ilb7",function(t){if(!d.length)return!0;-1<[27].indexOf(t.which)&&p.quitOnEscKey&&(t.stopPropagation(),t.preventDefault(),P()),-1<[37].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),x()),-1<[39].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),y())})}),R(z).off("click",p.selector),M(R(this)),v(),c.each(function(){var t=R(this).data("ilb2Video");if(t){var e=R(this).data("ilb2Id");e||(e="a"+(65536*(1+Math.random())|0).toString(16)),R(this).data("ilb2VideoId",e);var n={e:R("<video id='"+p.id+"' preload='metadata'>"),i:e,l:!1,a:void 0};R.each(t,function(t,e){"autoplay"===t?n.a=e:"sources"!==t&&(n.e=n.e.attr(t,e))}),t.sources&&R.each(t.sources,function(t,e){var i=R("<source>");R.each(e,function(t,e){i=i.attr(t,e)}),n.e.append(i)}),n.e.on("loadedmetadata.ilb7",function(){n.l=!0}),u=u.add(n)}}),this.addToImageLightbox=function(t){M(t)},this.openHistory=function(){v()},this.loadPreviousImage=function(){x()},this.loadNextImage=function(){y()},this.quitImageLightbox=function(){return P(),this},this.startImageLightbox=function(t){t?t.trigger("click.ilb7"):R(this).trigger("click.ilb7")},this}});
!function(F,M,D){"use strict";var R=F("<div/>").attr("class","imagelightbox-loading").append(F("<div/>")),t=F("<button/>",{type:"button",class:"imagelightbox-arrow imagelightbox-arrow-left"}),e=F("<button/>",{type:"button",class:"imagelightbox-arrow imagelightbox-arrow-right"}),z=t.add(e),X=F("<div/>",{class:"imagelightbox-caption",html:"&nbsp;"}),j=F("<button/>",{type:"button",class:"imagelightbox-close"}),N=F("<div/>",{class:"imagelightbox-overlay"}),U=F("<a/>",{href:"#",class:"imagelightbox-navitem"}),V=F("<div/>",{class:"imagelightbox-nav"}),K=F("<div/>",{class:"imagelightbox-wrapper"}),Y=F("body"),o=function(){var t=D.body||D.documentElement;return""===(t=t.style).transition?"":""===t.WebkitTransition?"-webkit-":""===t.MozTransition?"-moz-":""===t.OTransition&&"-o-"},_=!1!==o(),H=function(t,e,i){var n={},a=o();n[a+"transform"]="translateX("+e+") translateY(-50%)",n[a+"transition"]=a+"transform "+i+"s ease-in",t.css(n)},W="ontouchstart"in M,$=M.navigator.pointerEnabled||M.navigator.msPointerEnabled,B=function(t){if(W)return!0;if(!$||void 0===t||void 0===t.pointerType)return!1;if(void 0!==t.MSPOINTER_TYPE_MOUSE){if(t.MSPOINTER_TYPE_MOUSE!==t.pointerType)return!0}else if("mouse"!==t.pointerType)return!0;return!1},Q=!!(D.fullscreenEnabled||D.webkitFullscreenEnabled||D.mozFullScreenEnabled||D.msFullscreenEnabled),A=!(!M.history||!history.pushState);F.fn.imageLightbox=function(t){var i="",s=F([]),u=F(),d=F([]),r=-1,g=F(),f=0,h=!1,n=0,p=F.extend({selector:"a[data-imagelightbox]",id:"imagelightbox",allowedTypes:"png|jpg|jpeg|gif",animationSpeed:250,activity:!1,arrows:!1,button:!1,caption:!1,enableKeyboard:!0,history:!1,fullscreen:!1,gutter:10,offsetY:0,navigation:!1,overlay:!1,preloadNext:!0,quitOnEnd:!1,quitOnImgClick:!1,quitOnDocClick:!0,quitOnEscKey:!0},t),b=function(){p.activity&&y(),p.arrows&&z.css("display","block")},a=function(t,e,i){var n=e+"="+i,a="?"+n;if(t){var o=new RegExp("([?&])"+e+"=[^&]*");a=null!==t.match(o)?t.replace(o,"$1"+n):t+"&"+n}return a},o=function(){if(A&&p.history){var t=s[r].dataset.ilb2Id;t||(t=r);var e={imageLightboxIndex:t},i=s[r].dataset.imagelightbox;i&&(e.imageLightboxSet=i);var n=a(D.location.search,"imageLightboxIndex",t);i&&(n=a(n,"imageLightboxSet",i)),M.history.pushState(e,"",D.location.pathname+n)}},e=function(t,e){var i=t;if(i){var n=new RegExp("\\?"+e+"=[^&]*"),a=new RegExp("&"+e+"=[^&]*");i=(i=i.replace(n,"?")).replace(a,"")}return i},l=function(t){var e=new RegExp("[?&]"+t+"(=([^&#]*)|&|#|$)").exec(D.location.search);if(e&&e[2])return decodeURIComponent(e[2].replace(/\+/g," "))},c=function(){if(A&&p.history){var t=l("imageLightboxIndex");if(t){var e=s.filter('[data-ilb2-id="'+t+'"]');0<e.length?r=s.index(e):e=F(s[r=t]);var i=l("imageLightboxSet");!e[0]||i&&i!==e[0].dataset.imagelightbox||T(e,!0)}}},m=function(){if(--r<0){if(!0===p.quitOnEnd)return void L();r=s.length-1}u=s.eq(r),o(),K.trigger("previous.ilb2",u),O(1)},v=function(){if(++r>=s.length){if(!0===p.quitOnEnd)return void L();r=0}o(),u=s.eq(r),K.trigger("next.ilb2",u),O(-1)},x=function(){K.append(R)},y=function(){F(".imagelightbox-loading").remove()},E=function(){K.append(N)},w=function(){j.appendTo(K).on("click.ilb7",function(){return L(),!1})},S=function(){X.css("opacity","0"),X.html("&nbsp;"),F(u).data("ilb2-caption")?(X.css("opacity","1"),X.html(F(u).data("ilb2-caption"))):F(u).find("img").attr("alt")&&(X.css("opacity","1"),X.html(F(u).find("img").attr("alt")))},q=function(){if(s.length){for(var t=0;t<s.length;t++)V.append(U.clone());var e=V.children("a");e.eq(s.index(u)).addClass("active"),K.on("previous.ilb2 next.ilb2",function(){e.removeClass("active").eq(s.index(u)).addClass("active")}),K.append(V),V.on("click.ilb7 touchend.ilb7",function(){return!1}).on("click.ilb7 touchend.ilb7","a",function(){var t=F(this);if(s.eq(t.index()).attr("href")!==F(".imagelightbox").attr("src")){var e=s.eq(t.index());e.length&&(n=s.index(u),u=e,O(t.index()<n?-1:1))}t.addClass("active").siblings().removeClass("active")})}},I=function(){K.append(z),z.on("click.ilb7 touchend.ilb7",function(t){return t.stopImmediatePropagation(),t.preventDefault(),F(this).hasClass("imagelightbox-arrow-left")?m():v(),!1})},k=function(){if(!g.length)return!0;var t=p.caption?X.outerHeight():0,r=F(M).width(),l=F(M).height()-t,c=Math.abs(1-p.gutter/100);function e(t,e){if(r<t||l<e){var i=r/l<t/e?t/r:e/l;t/=i,e/=i}var n=e*c,a=t*c,o=(F(M).width()-a)/2;g.css({width:a+"px",height:n+"px",left:o+"px"})}if(void 0===g.get(0).videoWidth){var i=new Image;i.src=g.attr("src"),i.onload=function(){e(i.width,i.height)}}else e(g.get(0).videoWidth,g.get(0).videoHeight)},O=function(c){if(h)return!1;if(g.length){var t={opacity:0};_?H(g,100*c-f+"px",p.animationSpeed/1e3):t.left=parseInt(g.css("left"))+100*c+"px",g.animate(t,p.animationSpeed,function(){C()}),f=0}h=!0,p.activity&&x(),p.caption&&S(),setTimeout(function(){var t,e,i=u.attr("href"),n=0,a=0,o=0,r=u.data("ilb2Video");function l(){var t={opacity:1};if(g.appendTo(K),k(),g.css("opacity",0),_)H(g,-100*c+"px",0),setTimeout(function(){H(g,"0px",p.animationSpeed/1e3)},50);else{var e=parseInt(g.css("left"));t.left=e+"px",g.css("left",e-100*c+"px")}if(g.animate(t,p.animationSpeed,function(){h=!1,b()}),p.preloadNext){var i=s.eq(s.index(u)+1);i.length||(i=s.eq(0)),F("<img />").attr("src",i.attr("href"))}K.trigger("loaded.ilb2")}r?d.each(function(){this.i===u.data("ilb2VideoId")&&(t=this.l,e=this.e,this.a&&(!1===t&&e.attr("autoplay",this.a),!0===t&&e.get(0).play()))}):e=F("<img id='"+p.id+"' />").attr("src",i),g=e.on("load.ilb7",l).on("error.ilb7",function(){b()}).on("touchstart.ilb7 pointerdown.ilb7 MSPointerDown.ilb7",function(t){if(!B(t.originalEvent)||p.quitOnImgClick)return!0;_&&(o=parseInt(g.css("left"))),n=t.originalEvent.pageX||t.originalEvent.touches[0].pageX}).on("touchmove.ilb7 pointermove.ilb7 MSPointerMove.ilb7",function(t){if(!$&&"pointermove"===t.type||!B(t.originalEvent)||p.quitOnImgClick)return!0;t.preventDefault(),a=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,f=n-a,_?H(g,-f+"px",0):g.css("left",o-f+"px")}).on("touchend.ilb7 touchcancel.ilb7 pointerup.ilb7 pointercancel.ilb7 MSPointerUp.ilb7 MSPointerCancel.ilb7",function(t){if(!B(t.originalEvent)||p.quitOnImgClick)return!0;50<Math.abs(f)?f<0?m():v():_?H(g,"0px",p.animationSpeed/1e3):g.animate({left:o+"px"},p.animationSpeed/2)}),!0===t&&l(),!1===t&&(g=g.on("loadedmetadata.ilb7",l)),r||(g=g.on($?"pointerup.ilb7 MSPointerUp.ilb7":"click.ilb7",function(t){if(t.preventDefault(),p.quitOnImgClick)return L(),!1;if(B(t.originalEvent))return!0;var e=(t.pageX||t.originalEvent.pageX)-t.target.offsetLeft;t.target.width/2>e?m():v()}))},p.animationSpeed+100)},C=function(){if(!g.length)return!1;g.remove(),g=F()},T=function(t,e){if(h)return!1;h=!1,u=t,r=s.index(u),e||o(),function(){p.arrows&&I(this),p.navigation&&q(),p.overlay&&E(),p.button&&w(),p.caption&&K.append(X)}(),Y.append(K).addClass("imagelightbox-open"),K.trigger("start.ilb2",t),O(0)},L=function(t){if(r=-1,t||function(){if(A&&p.history){var t=e(D.location.search,"imageLightboxIndex");t=e(t,"imageLightboxSet"),M.history.pushState({},"",D.location.pathname+t)}}(),K.trigger("quit.ilb2"),Y.removeClass("imagelightbox-open"),!g.length)return!1;g.animate({opacity:0},p.animationSpeed,function(){C(),h=!1,K.remove().find("*").remove()})},P=function(e){e.each(function(){s=e.add(F(this))}),e.on("click.ilb7",{set:i},function(t){t.preventDefault(),i=F(t.currentTarget).data("imagelightbox"),e.filter(function(){return F(this).data("imagelightbox")===i}).filter(function(){return function(t){return"a"===F(t).prop("tagName").toLowerCase()&&(new RegExp(".("+p.allowedTypes+")$","i").test(F(t).attr("href"))||F(t).data("ilb2Video"))}(F(this))}).each(function(){s=s.add(F(this))}),s.length<1?L():T(F(this))})};return F(M).on("resize.ilb7",k),A&&p.history&&F(M).on("popstate",function(t){var e=t.originalEvent.state;if(e){var i=e.imageLightboxIndex;if(void 0!==i){var n=s.filter('[data-ilb2-id="'+i+'"]');if(0<n.length)var a=s.index(n);else n=F(s[a=i]);if(n[0]&&(!e.imageLightboxSet||e.imageLightboxSet===n[0].dataset.imagelightbox))if(r<0)T(n,!0);else{var o=1;r<a&&(o=-1),u=n,r=a,O(o)}}else L(!0)}else L(!0)}),F(D).ready(function(){p.quitOnDocClick&&F(D).on(W?"touchend.ilb7":"click.ilb7",function(t){g.length&&!F(t.target).is(g)&&(t.preventDefault(),L())}),p.fullscreen&&Q&&F(D).on("keydown.ilb7",function(t){if(!g.length)return!0;-1<[9,32,38,40].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault()),-1<[13].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),function(){var t=M.document,e=D.getElementById(p.id).parentElement,i=e.requestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullScreen||e.msRequestFullscreen,n=t.exitFullscreen||t.mozCancelFullScreen||t.webkitExitFullscreen||t.msExitFullscreen;t.fullscreenElement||t.mozFullScreenElement||t.webkitFullscreenElement||t.msFullscreenElement?n.call(t):i.call(e)}())}),p.enableKeyboard&&F(D).on("keydown.ilb7",function(t){if(!g.length)return!0;-1<[27].indexOf(t.which)&&p.quitOnEscKey&&(t.stopPropagation(),t.preventDefault(),L()),-1<[37].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),m()),-1<[39].indexOf(t.which)&&(t.stopPropagation(),t.preventDefault(),v())})}),F(D).off("click",p.selector),P(F(this)),c(),s.each(function(){var t=F(this).data("ilb2Video");if(t){var e=F(this).data("ilb2Id");e||(e="a"+(65536*(1+Math.random())|0).toString(16)),F(this).data("ilb2VideoId",e);var n={e:F("<video id='"+p.id+"' preload='metadata'>"),i:e,l:!1,a:void 0};F.each(t,function(t,e){"autoplay"===t?n.a=e:"sources"!==t&&(n.e=n.e.attr(t,e))}),t.sources&&F.each(t.sources,function(t,e){var i=F("<source>");F.each(e,function(t,e){i=i.attr(t,e)}),n.e.append(i)}),n.e.on("loadedmetadata.ilb7",function(){n.l=!0}),d=d.add(n)}}),this.addToImageLightbox=function(t){P(t)},this.openHistory=function(){c()},this.loadPreviousImage=function(){m()},this.loadNextImage=function(){v()},this.quitImageLightbox=function(){return L(),this},this.startImageLightbox=function(t){t?t.trigger("click.ilb7"):F(this).trigger("click.ilb7")},this}}("object"==typeof module&&"object"==typeof module.exports?require("jquery"):jQuery,window,document);

@@ -6,10 +6,5 @@ (function (factory) {

// the jQuery object that the module system is using and pass it in.
if(typeof module === 'object' && typeof module.exports === 'object') {
factory(require('jquery'), window, document);
}
// Otherwise, we're working in a browser, so just pass in the global
// jQuery object.
else {
factory(jQuery, window, document);
}
factory((typeof module === 'object' && typeof module.exports === 'object') ? require('jquery') : jQuery, window, document );
}(function ($, window, document) {

@@ -54,2 +49,5 @@ 'use strict';

s = s.style;
if (s.transition === '') {
return '';
}
if (s.WebkitTransition === '') {

@@ -64,5 +62,2 @@ return '-webkit-';

}
if (s.transition === '') {
return '';
}
return false;

@@ -76,3 +71,3 @@ },

options[prefix + 'transform'] = 'translateX(' + positionX + ') translateY(-50%)';
options[prefix + 'transition'] = prefix + 'transform ' + speed + 's linear';
options[prefix + 'transition'] = prefix + 'transform ' + speed + 's ease-in';
element.css(options);

@@ -104,9 +99,6 @@ },

fullscreenSupport = function () {
return !!(document.fullscreenEnabled ||
hasFullscreenSupport = !!(document.fullscreenEnabled ||
document.webkitFullscreenEnabled ||
document.mozFullScreenEnabled ||
document.msFullscreenEnabled);
},
hasFullscreenSupport = fullscreenSupport() !== false,
document.msFullscreenEnabled),
hasHistorySupport = !!(window.history && history.pushState);

@@ -121,4 +113,2 @@

image = $(),
imageWidth = 0,
imageHeight = 0,
swipeDiff = 0,

@@ -219,3 +209,3 @@ inProgress = false,

if (newQuery) {
var keyRegex1 = new RegExp('[?]' + key + '=[^&]*');
var keyRegex1 = new RegExp('\\?' + key + '=[^&]*');
var keyRegex2 = new RegExp('&' + key + '=[^&]*');

@@ -301,3 +291,3 @@ newQuery = newQuery.replace(keyRegex1, '?');

_quitImageLightbox();
return false;
return;
}

@@ -318,3 +308,3 @@ else {

_quitImageLightbox();
return false;
return;
}

@@ -346,6 +336,9 @@ else {

captionReset = function () {
$captionObject.css('opacity', '0');
$captionObject.html('&nbsp;');
if ($(target).data('ilb2-caption')) {
$captionObject.css('opacity', '1');
$captionObject.html($(target).data('ilb2-caption'));
} else if ($(target).find('img').length > 0) {
} else if ($(target).find('img').attr('alt')) {
$captionObject.css('opacity', '1');
$captionObject.html($(target).find('img').attr('alt'));

@@ -355,31 +348,32 @@ }

navigationOn = function () {
if (targets.length) {
for (var i = 0; i < targets.length; i++) {
$navObject.append($navItem.clone());
}
var $navItems = $navObject.children('a');
$navItems.eq(targets.index(target)).addClass('active');
//
$wrapper.on('previous.ilb2 next.ilb2', function () {
$navItems.removeClass('active').eq(targets.index(target)).addClass('active');
if (!targets.length) {
return;
}
for (var i = 0; i < targets.length; i++) {
$navObject.append($navItem.clone());
}
var $navItems = $navObject.children('a');
$navItems.eq(targets.index(target)).addClass('active');
$wrapper.on('previous.ilb2 next.ilb2', function () {
$navItems.removeClass('active').eq(targets.index(target)).addClass('active');
});
$wrapper.append($navObject);
$navObject
.on('click.ilb7 touchend.ilb7', function () {
return false;
})
.on('click.ilb7 touchend.ilb7', 'a', function () {
var $this = $(this);
if (targets.eq($this.index()).attr('href') !== $('.imagelightbox').attr('src')) {
var tmpTarget = targets.eq($this.index());
if (tmpTarget.length) {
currentIndex = targets.index(target);
target = tmpTarget;
_loadImage($this.index() < currentIndex ? -1 : 1);
}
}
$this.addClass('active').siblings().removeClass('active');
});
$wrapper.append($navObject);
//
$navObject
.on('click.ilb7 touchend.ilb7', function () {
return false;
})
.on('click.ilb7 touchend.ilb7', 'a', function () {
var $this = $(this);
if (targets.eq($this.index()).attr('href') !== $('.imagelightbox').attr('src')) {
var tmpTarget = targets.eq($this.index());
if (tmpTarget.length) {
currentIndex = targets.index(target);
target = tmpTarget;
_loadImage($this.index() < currentIndex ? -1 : 1);
}
}
$this.addClass('active').siblings().removeClass('active');
});
}
},

@@ -415,3 +409,3 @@ arrowsOn = function () {

function setSizes () {
function setSizes (imageWidth, imageHeight) {
if (imageWidth > screenWidth || imageHeight > screenHeight) {

@@ -434,5 +428,3 @@ var ratio = imageWidth / imageHeight > screenWidth / screenHeight ? imageWidth / screenWidth : imageHeight / screenHeight;

if(image.get(0).videoWidth !== undefined) {
imageWidth = image.get(0).videoWidth;
imageHeight = image.get(0).videoHeight;
setSizes();
setSizes(image.get(0).videoWidth, image.get(0).videoHeight);
return;

@@ -444,5 +436,3 @@ }

tmpImage.onload = function() {
imageWidth = tmpImage.width;
imageHeight = tmpImage.height;
setSizes();
setSizes(tmpImage.width, tmpImage.height);
};

@@ -534,2 +524,18 @@ },

}
function onclick (e) {
e.preventDefault();
if (options.quitOnImgClick) {
_quitImageLightbox();
return false;
}
if (wasTouched(e.originalEvent)) {
return true;
}
var posX = (e.pageX || e.originalEvent.pageX) - e.target.offsetLeft;
if (e.target.width / 2 > posX) {
_previousTarget();
} else {
_nextTarget();
}
}
image = element

@@ -540,18 +546,2 @@ .on('load.ilb7', onload)

})
.on(hasPointers ? 'pointerup.ilb7 MSPointerUp.ilb7' : 'click.ilb7', function (e) {
e.preventDefault();
if (options.quitOnImgClick) {
_quitImageLightbox();
return false;
}
if (wasTouched(e.originalEvent)) {
return true;
}
var posX = (e.pageX || e.originalEvent.pageX) - e.target.offsetLeft;
if (imageWidth / 2 > posX) {
_previousTarget();
} else {
_nextTarget();
}
})
.on('touchstart.ilb7 pointerdown.ilb7 MSPointerDown.ilb7', function (e) {

@@ -603,2 +593,5 @@ if (!wasTouched(e.originalEvent) || options.quitOnImgClick) {

}
if(!videoOptions) {
image = image.on(hasPointers ? 'pointerup.ilb7 MSPointerUp.ilb7' : 'click.ilb7', onclick);
}

@@ -769,31 +762,17 @@ }, options.animationSpeed + 100);

function launchIntoFullscreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
return false;
}
function toggleFullScreen() {
var doc = window.document;
var docEl = document.getElementById(options.id).parentElement;
function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
var exitFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
if(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
requestFullScreen.call(docEl);
}
return false;
else {
exitFullScreen.call(doc);
}
}
function toggleFullScreen() {
launchIntoFullscreen(document.getElementById(options.id).parentElement) ||
exitFullscreen();
}
$(document).off('click', options.selector);

@@ -800,0 +779,0 @@

@@ -60,3 +60,3 @@ $(document).ready(function() {

*/
var instanceI = $('a[data-imagelightbox="i"]').imageLightbox({
var instanceI = $('a[data-imagelightbox="i"]').imageLightbox({
arrows: true

@@ -63,0 +63,0 @@ });

@@ -8,3 +8,2 @@ var gulp = require('gulp'),

lintspaces = require('gulp-lintspaces'),
nightwatch = require('gulp-nightwatch'),
rename = require('gulp-rename'),

@@ -67,3 +66,3 @@ uglify = require('gulp-uglify');

gulp.task('serve', gulp.parallel('build', 'watch', function(done) {
gulp.task('dev', gulp.parallel('build', 'watch', function(done) {
connect.server({

@@ -75,13 +74,2 @@ livereload: true

gulp.task('night:js', gulp.series('serve', function() {
return gulp.src('./gulpfile.js')
.pipe(nightwatch({
configFile: './nightwatch.json'
}));
}));
gulp.task('default', gulp.series('build'));
gulp.task('dev', gulp.series('serve'));
gulp.task('test', gulp.series('night:js'));
{
"name": "imagelightbox",
"version": "0.14.0",
"version": "1.0.0",
"description": "Image Lightbox, Responsive and Touch‑friendly",

@@ -14,12 +14,15 @@ "homepage": "https://rejas.github.io/imagelightbox",

"devDependencies": {
"gulp": "^4.0.0",
"gulp-autoprefixer": "^6.0.0",
"gulp-clean-css": "^4.0.0",
"chai": "^4.2.0",
"express": "^4.17.1",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^6.1.0",
"gulp-clean-css": "^4.2.0",
"gulp-connect": "^5.7.0",
"gulp-csslint": "^1.0.1",
"gulp-eslint": "^5.0.0",
"gulp-lintspaces": "^1.0.0",
"gulp-nightwatch": "^1.0.1",
"gulp-lintspaces": "^1.0.1",
"gulp-rename": "^1.4.0",
"gulp-uglify": "^3.0.1"
"gulp-uglify": "^3.0.2",
"mocha": "^6.1.4",
"puppeteer": "^1.17.0"
},

@@ -31,7 +34,9 @@ "keywords": [

"scripts": {
"check": "eslint src/**/*.js",
"fix": "eslint src/**/*.js --fix",
"build": "gulp",
"start": "gulp dev",
"test": "gulp test"
"fix:js": "eslint --fix src/**/*.js",
"test": "npm run test:js && npm run test:html",
"test:html": "mocha --recursive test/src",
"test:js": "eslint src/**/*.js"
}
}

@@ -6,10 +6,5 @@ (function (factory) {

// the jQuery object that the module system is using and pass it in.
if(typeof module === 'object' && typeof module.exports === 'object') {
factory(require('jquery'), window, document);
}
// Otherwise, we're working in a browser, so just pass in the global
// jQuery object.
else {
factory(jQuery, window, document);
}
factory((typeof module === 'object' && typeof module.exports === 'object') ? require('jquery') : jQuery, window, document );
}(function ($, window, document) {

@@ -54,2 +49,5 @@ 'use strict';

s = s.style;
if (s.transition === '') {
return '';
}
if (s.WebkitTransition === '') {

@@ -64,5 +62,2 @@ return '-webkit-';

}
if (s.transition === '') {
return '';
}
return false;

@@ -76,3 +71,3 @@ },

options[prefix + 'transform'] = 'translateX(' + positionX + ') translateY(-50%)';
options[prefix + 'transition'] = prefix + 'transform ' + speed + 's linear';
options[prefix + 'transition'] = prefix + 'transform ' + speed + 's ease-in';
element.css(options);

@@ -104,9 +99,6 @@ },

fullscreenSupport = function () {
return !!(document.fullscreenEnabled ||
hasFullscreenSupport = !!(document.fullscreenEnabled ||
document.webkitFullscreenEnabled ||
document.mozFullScreenEnabled ||
document.msFullscreenEnabled);
},
hasFullscreenSupport = fullscreenSupport() !== false,
document.msFullscreenEnabled),
hasHistorySupport = !!(window.history && history.pushState);

@@ -121,4 +113,2 @@

image = $(),
imageWidth = 0,
imageHeight = 0,
swipeDiff = 0,

@@ -219,3 +209,3 @@ inProgress = false,

if (newQuery) {
var keyRegex1 = new RegExp('[?]' + key + '=[^&]*');
var keyRegex1 = new RegExp('\\?' + key + '=[^&]*');
var keyRegex2 = new RegExp('&' + key + '=[^&]*');

@@ -301,3 +291,3 @@ newQuery = newQuery.replace(keyRegex1, '?');

_quitImageLightbox();
return false;
return;
}

@@ -318,3 +308,3 @@ else {

_quitImageLightbox();
return false;
return;
}

@@ -346,6 +336,9 @@ else {

captionReset = function () {
$captionObject.css('opacity', '0');
$captionObject.html('&nbsp;');
if ($(target).data('ilb2-caption')) {
$captionObject.css('opacity', '1');
$captionObject.html($(target).data('ilb2-caption'));
} else if ($(target).find('img').length > 0) {
} else if ($(target).find('img').attr('alt')) {
$captionObject.css('opacity', '1');
$captionObject.html($(target).find('img').attr('alt'));

@@ -355,31 +348,32 @@ }

navigationOn = function () {
if (targets.length) {
for (var i = 0; i < targets.length; i++) {
$navObject.append($navItem.clone());
}
var $navItems = $navObject.children('a');
$navItems.eq(targets.index(target)).addClass('active');
//
$wrapper.on('previous.ilb2 next.ilb2', function () {
$navItems.removeClass('active').eq(targets.index(target)).addClass('active');
if (!targets.length) {
return;
}
for (var i = 0; i < targets.length; i++) {
$navObject.append($navItem.clone());
}
var $navItems = $navObject.children('a');
$navItems.eq(targets.index(target)).addClass('active');
$wrapper.on('previous.ilb2 next.ilb2', function () {
$navItems.removeClass('active').eq(targets.index(target)).addClass('active');
});
$wrapper.append($navObject);
$navObject
.on('click.ilb7 touchend.ilb7', function () {
return false;
})
.on('click.ilb7 touchend.ilb7', 'a', function () {
var $this = $(this);
if (targets.eq($this.index()).attr('href') !== $('.imagelightbox').attr('src')) {
var tmpTarget = targets.eq($this.index());
if (tmpTarget.length) {
currentIndex = targets.index(target);
target = tmpTarget;
_loadImage($this.index() < currentIndex ? -1 : 1);
}
}
$this.addClass('active').siblings().removeClass('active');
});
$wrapper.append($navObject);
//
$navObject
.on('click.ilb7 touchend.ilb7', function () {
return false;
})
.on('click.ilb7 touchend.ilb7', 'a', function () {
var $this = $(this);
if (targets.eq($this.index()).attr('href') !== $('.imagelightbox').attr('src')) {
var tmpTarget = targets.eq($this.index());
if (tmpTarget.length) {
currentIndex = targets.index(target);
target = tmpTarget;
_loadImage($this.index() < currentIndex ? -1 : 1);
}
}
$this.addClass('active').siblings().removeClass('active');
});
}
},

@@ -415,3 +409,3 @@ arrowsOn = function () {

function setSizes () {
function setSizes (imageWidth, imageHeight) {
if (imageWidth > screenWidth || imageHeight > screenHeight) {

@@ -434,5 +428,3 @@ var ratio = imageWidth / imageHeight > screenWidth / screenHeight ? imageWidth / screenWidth : imageHeight / screenHeight;

if(image.get(0).videoWidth !== undefined) {
imageWidth = image.get(0).videoWidth;
imageHeight = image.get(0).videoHeight;
setSizes();
setSizes(image.get(0).videoWidth, image.get(0).videoHeight);
return;

@@ -444,5 +436,3 @@ }

tmpImage.onload = function() {
imageWidth = tmpImage.width;
imageHeight = tmpImage.height;
setSizes();
setSizes(tmpImage.width, tmpImage.height);
};

@@ -534,2 +524,18 @@ },

}
function onclick (e) {
e.preventDefault();
if (options.quitOnImgClick) {
_quitImageLightbox();
return false;
}
if (wasTouched(e.originalEvent)) {
return true;
}
var posX = (e.pageX || e.originalEvent.pageX) - e.target.offsetLeft;
if (e.target.width / 2 > posX) {
_previousTarget();
} else {
_nextTarget();
}
}
image = element

@@ -540,18 +546,2 @@ .on('load.ilb7', onload)

})
.on(hasPointers ? 'pointerup.ilb7 MSPointerUp.ilb7' : 'click.ilb7', function (e) {
e.preventDefault();
if (options.quitOnImgClick) {
_quitImageLightbox();
return false;
}
if (wasTouched(e.originalEvent)) {
return true;
}
var posX = (e.pageX || e.originalEvent.pageX) - e.target.offsetLeft;
if (imageWidth / 2 > posX) {
_previousTarget();
} else {
_nextTarget();
}
})
.on('touchstart.ilb7 pointerdown.ilb7 MSPointerDown.ilb7', function (e) {

@@ -603,2 +593,5 @@ if (!wasTouched(e.originalEvent) || options.quitOnImgClick) {

}
if(!videoOptions) {
image = image.on(hasPointers ? 'pointerup.ilb7 MSPointerUp.ilb7' : 'click.ilb7', onclick);
}

@@ -769,31 +762,17 @@ }, options.animationSpeed + 100);

function launchIntoFullscreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
return false;
}
function toggleFullScreen() {
var doc = window.document;
var docEl = document.getElementById(options.id).parentElement;
function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
var exitFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
if(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
requestFullScreen.call(docEl);
}
return false;
else {
exitFullScreen.call(doc);
}
}
function toggleFullScreen() {
launchIntoFullscreen(document.getElementById(options.id).parentElement) ||
exitFullscreen();
}
$(document).off('click', options.selector);

@@ -800,0 +779,0 @@

@@ -1,85 +0,133 @@

function openDemo (browser, hash) {
var url = 'http://localhost:8080/docs/index.html';
if (hash)
url += hash;
browser.url(url);
browser.expect.element('#main_content').to.be.present;
}
const puppeteer = require('puppeteer');
const express = require('express');
const expect = require('chai').expect;
const app = express();
function closeDemo (browser) {
browser.end();
}
// helper functions to start/stop server before/after tests
let server = null;
const startServer = () => {
app.use(express.static(__dirname + '/../../docs'));
server = app.listen(8080);
};
const stopServer = () => {
server.close();
};
module.exports = {
// puppeteer options
const opts = {
headless: true,
timeout: 2000
};
'Open and Close lightbox page' : function (browser) {
openDemo(browser);
browser.click('.demo_activity li [src="images/thumb1.jpg"]')
.waitForElementPresent('#imagelightbox', 1000)
.execute(function() {
document.querySelector('#container').click();
browser.waitForElementNotPresent('#imagelightbox', 1000);
closeDemo(browser);
});
},
// helper functions for pupeteer
const isElementVisible = async (page, cssSelector) => {
let visible = true;
await page.waitForSelector(cssSelector, { visible: true })
.catch(() => {
visible = false;
});
return visible;
};
'Caption' : function (browser) {
openDemo(browser);
browser.click('.demo_caption li [src="images/thumb1.jpg"]')
.waitForElementVisible('#imagelightbox', 1000)
.assert.elementPresent('#imagelightbox')
.waitForElementVisible('.imagelightbox-caption', 1000)
.assert.containsText('.imagelightbox-caption', 'Sunset in Tanzania');
closeDemo(browser);
},
const isElementNotVisible = async (page, cssSelector) => {
let visible = false;
await page.waitForSelector(cssSelector, { visible: false })
.catch(() => {
visible = true;
});
return visible;
};
'Deep links' : function (browser) {
openDemo(browser, '?imageLightboxIndex=2');
browser
.waitForElementVisible('#imagelightbox', 2000)
.assert.elementPresent('#imagelightbox')
.waitForElementVisible('img[src$="images/demo3.jpg"]', 1000)
.assert.elementPresent('img[src$="images/demo3.jpg"]');
closeDemo(browser);
},
describe('imagelightbox', function () {
'Dynamic add' : function (browser) {
openDemo(browser);
browser.click('.add_image')
.click('.demo_dynamic li [src="images/thumb4.jpg"]')
.waitForElementVisible('#imagelightbox', 1000)
.assert.elementPresent('#imagelightbox')
.waitForElementVisible('img[src$="images/demo4.jpg"]', 1000)
.assert.elementPresent('img[src$="images/demo4.jpg"]')
.click('.imagelightbox-arrow-right')
.waitForElementVisible('img[src$="images/demo1.jpg"]', 1000)
.assert.elementPresent('img[src$="images/demo1.jpg"]');
closeDemo(browser);
},
let browser;
let page;
'Manual trigger' : function (browser) {
openDemo(browser);
browser.click('.trigger_lightbox')
.waitForElementVisible('#imagelightbox', 1000)
.assert.elementPresent('#imagelightbox')
.waitForElementVisible('.imagelightbox-arrow-right', 1000)
.click('.imagelightbox-arrow-right')
.waitForElementVisible('img[src$="images/demo2.jpg"]', 1000)
.assert.elementPresent('img[src$="images/demo2.jpg"]');
closeDemo(browser);
},
before(async function () {
startServer();
browser = await puppeteer.launch(opts);
page = await browser.newPage();
});
'Navigation' : function (browser) {
openDemo(browser);
browser
.click('.demo_navigation li [src="images/thumb1.jpg"]')
.waitForElementVisible('#imagelightbox', 1000)
.assert.elementPresent('#imagelightbox')
.assert.elementPresent('.imagelightbox-nav')
.assert.elementPresent('.imagelightbox-navitem')
.click('.imagelightbox-navitem:nth-child(2)')
.waitForElementVisible('img[src$="images/demo2.jpg"]', 1000)
.assert.elementPresent('img[src$="images/demo2.jpg"]');
closeDemo(browser);
}
};
beforeEach(async function () {
page = await browser.newPage();
await page.goto('http://localhost:8080',{ waitUntil: "load" });
});
afterEach(async function () {
await page.close();
});
after(async function () {
await browser.close();
stopServer();
});
it('should have the correct page title', async function () {
expect(await page.title()).to.eql('Imagelightbox');
});
it('should open and close its lightbox', async function () {
await page.click('.demo_activity li [src="images/thumb1.jpg"]');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
await page.click('#container');
expect(await isElementNotVisible(page, '#imagelightbox')).to.equal(false);
});
it('should show a caption', async function () {
await page.click('.demo_caption li [src="images/thumb1.jpg"]');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
expect(await isElementVisible(page, '.imagelightbox-caption')).to.equal(true);
const caption = await page.$(".imagelightbox-caption");
expect(await (await caption.getProperty('textContent')).jsonValue()).to.equal('Sunset in Tanzania');
});
it('should be able to be triggered manually', async function () {
await page.click('.trigger_lightbox');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
});
it('should be controllable with arrows', async function () {
await page.click('.demo_arrows li [src="images/thumb1.jpg"]');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
expect(await isElementVisible(page, '.imagelightbox-arrow-right')).to.equal(true);
await page.click('.imagelightbox-arrow-right');
expect(await isElementVisible(page, 'img[src$="images/demo2.jpg"]')).to.equal(true);
});
it('should add images dynamically', async function () {
await page.click('.add_image');
expect(await isElementVisible(page, '.demo_dynamic li [src="images/thumb4.jpg"]')).to.equal(true);
await page.click('.demo_dynamic li [src="images/thumb4.jpg"]');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
expect(await isElementVisible(page, 'img[src$="images/demo4.jpg"]')).to.equal(true);
});
it('should go to deep links', async function () {
await page.goto('http://localhost:8080?imageLightboxIndex=2',{ waitUntil: "load" });
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
expect(await isElementVisible(page, 'img[src$="images/demo3.jpg"]')).to.equal(true);
});
/**
* TODO fix that one by testing not only if the nav shows up but also if the nav works
*/
it('should have a functionable navigation', async function () {
await page.click('.demo_navigation li [src="images/thumb2.jpg"]');
expect(await isElementVisible(page, '#imagelightbox')).to.equal(true);
expect(await isElementVisible(page, '.imagelightbox-navitem')).to.equal(true);
//await page.click('a.imagelightbox-navitem');
//expect(await isElementVisible(page, 'img[src$="images/demo1.jpg"]')).to.equal(true);
});
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc