(function(n,t){"function"==typeof define&&define.amd?define(t):"object"==typeof module&&module.exports?module.exports=t():n.Tobi=t()})(this,function(){"use strict";return function(n){var t={},k=window,d=null,g=[],ft=0,s=0,i=null,o=null,c=[],e=null,f=null,h=null,a=null,r=0,u={},p=!1,w=!1,v=!1,ri=null,et=null,ot=null,st=null,ht=null,ct=!1,lt=!1,at=!1,ui=!1,vt=[],y=[],yt=0,pt=0,di=function(n){var t={selector:".lightbox",captions:!0,captionsSelector:"img",captionAttribute:"alt",nav:"auto",navText:['<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><polyline points="14 18 8 12 14 6 14 6"><\/polyline><\/svg>','<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><polyline points="10 6 16 12 10 18 10 18"><\/polyline><\/svg>'],navLabel:["Previous","Next"],close:!0,closeText:'<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M6.34314575 6.34314575L17.6568542 17.6568542M6.34314575 17.6568542L17.6568542 6.34314575"><\/path><\/svg>',closeLabel:"Close",loadingIndicatorLabel:"Image loading",counter:!0,download:!1,downloadText:"",downloadLabel:"Download",keyboard:!0,zoom:!0,zoomText:'<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><polyline points="21 16 21 21 16 21"/><polyline points="8 21 3 21 3 16"/><polyline points="16 3 21 3 21 8"/><polyline points="3 8 3 3 8 3"/><\/svg>',docClose:!0,swipeClose:!0,hideScrollbar:!0,draggable:!0,threshold:100,rtl:!1,loop:!1,autoplayVideo:!1,theme:"dark"};return n&&Object.keys(n).forEach(function(i){t[i]=n[i]}),t},gi=function(){return"string"==typeof document.documentElement.style.transform?"transform":"WebkitTransform"},l={image:{checkSupport:function(n){return!n.hasAttribute("data-type")&&n.href.match(/\.(png|jpe?g|tiff|tif|gif|bmp|webp|svg|ico)\??.*$/i)},init:function(n,i){var o=document.createElement("figure"),r=document.createElement("figcaption"),u=document.createElement("img"),f=n.querySelector("img"),e=document.createElement("div");u.style.opacity="0";f&&(u.alt=f.alt||"");u.setAttribute("src","");u.setAttribute("data-src",n.href);o.appendChild(u);t.captions&&(r.style.opacity="0","self"===t.captionsSelector&&n.getAttribute(t.captionAttribute)?r.textContent=n.getAttribute(t.captionAttribute):"img"===t.captionsSelector&&f&&f.getAttribute(t.captionAttribute)&&(r.textContent=f.getAttribute(t.captionAttribute)),r.textContent&&(r.id="tobi-figcaption-"+ft,o.appendChild(r),u.setAttribute("aria-labelledby",r.id),++ft));i.appendChild(o);e.className="tobi-loader";e.setAttribute("role","progressbar");e.setAttribute("aria-label",t.loadingIndicatorLabel);i.appendChild(e);i.setAttribute("data-type","image")},onPreload:function(n){l.image.onLoad(n)},onLoad:function(n){var t=n.querySelector("img"),i,r;t.hasAttribute("data-src")&&(i=n.querySelector("figcaption"),r=n.querySelector(".tobi-loader"),t.onload=function(){n.removeChild(r);t.style.opacity="1";i&&(i.style.opacity="1")},t.setAttribute("src",t.getAttribute("data-src")),t.removeAttribute("data-src"))},onLeave:function(){},onCleanup:function(){}},html:{checkSupport:function(n){return ti(n,"html")},init:function(n,t){var i=n.hasAttribute("href")?n.getAttribute("href"):n.getAttribute("data-target"),r=document.querySelector(i);if(!r)throw new Error("Ups, I can't find the target "+i+".");t.appendChild(r);t.setAttribute("data-type","html")},onPreload:function(){},onLoad:function(n){var i=n.querySelector("video");i&&(i.hasAttribute("data-time")&&i.readyState>0&&(i.currentTime=i.getAttribute("data-time")),t.autoplayVideo&&i.play())},onLeave:function(n){var t=n.querySelector("video");t&&(t.paused||t.pause(),t.readyState>0&&t.setAttribute("data-time",t.currentTime))},onCleanup:function(n){var t=n.querySelector("video"),i;t&&t.readyState>0&&t.readyState<3&&t.duration!==t.currentTime&&(i=t.cloneNode(!0),or(t),t.load(),t.parentNode.removeChild(t),n.appendChild(i))}},iframe:{checkSupport:function(n){return ti(n,"iframe")},init:function(n,t){var i=document.createElement("iframe"),r=n.hasAttribute("href")?n.getAttribute("href"):n.getAttribute("data-target");i.setAttribute("frameborder","0");i.setAttribute("src","");i.setAttribute("data-src",r);t.appendChild(i);t.setAttribute("data-type","iframe")},onPreload:function(){},onLoad:function(n){var t=n.querySelector("iframe");t.setAttribute("src",t.getAttribute("data-src"))},onLeave:function(){},onCleanup:function(){}},youtube:{checkSupport:function(n){return ti(n,"youtube")},init:function(n,t){var i=document.createElement("div");t.appendChild(i);y[yt]=new window.YT.Player(i,{host:"https://www.youtube-nocookie.com",height:n.getAttribute("data-height")||"360",width:n.getAttribute("data-width")||"640",videoId:n.getAttribute("data-id"),playerVars:{controls:n.getAttribute("data-controls")||1,rel:0,playsinline:1}});t.setAttribute("data-player",yt);t.setAttribute("data-type","youtube");yt++},onPreload:function(){},onLoad:function(n){t.autoplayVideo&&y[n.getAttribute("data-player")].playVideo()},onLeave:function(n){1===y[n.getAttribute("data-player")].getPlayerState()&&y[n.getAttribute("data-player")].pauseVideo()},onCleanup:function(n){1===y[n.getAttribute("data-player")].getPlayerState()&&y[n.getAttribute("data-player")].pauseVideo()}}},nr=function(n){t=di(n);d=gi();i||tr();var r=document.querySelectorAll(t.selector);if(!r)throw new Error("Ups, I can't find the selector "+t.selector+".");Array.prototype.forEach.call(r,function(n){fi(n)})},fi=function(n){if(null===document.querySelector('[data-type="youtube"]')||ui)ei(n);else{if(null===document.getElementById("iframe_api")){var t=document.createElement("script"),i=document.getElementsByTagName("script")[0];t.id="iframe_api";t.src="https://www.youtube.com/iframe_api";i.parentNode.insertBefore(t,i)}vt.indexOf(n)===-1&&vt.push(n);window.onYouTubePlayerAPIReady=function(){Array.prototype.forEach.call(vt,function(n){ei(n)});ui=!0}}},ei=function(n,i){if(g.indexOf(n)!==-1)throw new Error("Ups, element already added to the lightbox.");if(g.push(n),s++,t.zoom&&n.querySelector("img")){var r=document.createElement("div");r.className="tobi-zoom__icon";r.innerHTML=t.zoomText;n.classList.add("tobi-zoom");n.appendChild(r)}n.addEventListener("click",function(n){n.preventDefault();oi(g.indexOf(this))});ir(n);b()&&(bi(),ut());i&&i.call(this)},tr=function(){i=document.createElement("div");i.setAttribute("role","dialog");i.setAttribute("aria-hidden","true");i.className="tobi tobi--theme-"+t.theme;o=document.createElement("div");o.className="tobi__slider";i.appendChild(o);e=document.createElement("button");e.className="tobi__prev";e.setAttribute("type","button");e.setAttribute("aria-label",t.navLabel[0]);e.innerHTML=t.navText[0];i.appendChild(e);f=document.createElement("button");f.className="tobi__next";f.setAttribute("type","button");f.setAttribute("aria-label",t.navLabel[1]);f.innerHTML=t.navText[1];i.appendChild(f);h=document.createElement("button");h.className="tobi__close";h.setAttribute("type","button");h.setAttribute("aria-label",t.closeLabel);h.innerHTML=t.closeText;i.appendChild(h);a=document.createElement("div");a.className="tobi__counter";i.appendChild(a);k.addEventListener("resize",function(){ct||(ct=!0,k.requestAnimationFrame(function(){bt();ct=!1}))});document.body.appendChild(i)},ir=function(n){var i,t,r;for(i in l)if(l.hasOwnProperty(i)&&l[i].checkSupport(n)){t=document.createElement("div");r=document.createElement("div");t.className="tobi__slider__slide";t.style.position="absolute";t.style.left=100*pt+"%";r.className="tobi__slider__slide__content";l[i].init(n,r);t.appendChild(r);o.appendChild(t);c.push(t);++pt;break}},oi=function(n,u){if(b()||n||(n=0),b()){if(!n)throw new Error("Ups, Tobi is aleady open.");if(n===r)throw new Error("Ups, slide "+n+" is already selected.");}if(n===-1||n>=s)throw new Error("Ups, I can't find slide "+n+".");t.hideScrollbar&&(document.documentElement.classList.add("tobi-is-open"),document.body.classList.add("tobi-is-open"));bi();t.close||(h.disabled=!1,h.setAttribute("aria-hidden","true"));ri=document.activeElement;r=n;kt();fr();wt(r);i.setAttribute("aria-hidden","false");ut();tt(r+1);tt(r-1);u&&u.call(this)},nt=function(n){if(!b())throw new Error("Tobi is already closed.");t.hideScrollbar&&(document.documentElement.classList.remove("tobi-is-open"),document.body.classList.remove("tobi-is-open"));er();ri.focus();var u=c[r].querySelector(".tobi__slider__slide__content"),f=u.getAttribute("data-type");l[f].onLeave(u);l[f].onCleanup(u);i.setAttribute("aria-hidden","true");r=0;n&&n.call(this)},tt=function(n){if(void 0!==c[n]){var t=c[n].querySelector(".tobi__slider__slide__content"),i=t.getAttribute("data-type");l[i].onPreload(t)}},wt=function(n){if(void 0!==c[n]){var t=c[n].querySelector(".tobi__slider__slide__content"),i=t.getAttribute("data-type");l[i].onLoad(t)}},it=function(n){r>0&&(si(r),wt(--r),ut("left"),hi(r+1),tt(r-1),n&&n.call(this))},rt=function(n){r<s-1&&(si(r),wt(++r),ut("right"),hi(r-1),tt(r+1),n&&n.call(this))},si=function(n){if(void 0!==c[n]){var t=c[n].querySelector(".tobi__slider__slide__content"),i=t.getAttribute("data-type");l[i].onLeave(t)}},hi=function(n){if(void 0!==c[n]){var t=c[n].querySelector(".tobi__slider__slide__content"),i=t.getAttribute("data-type");l[i].onCleanup(t)}},bt=function(){st=-r*window.innerWidth;o.style[d]="translate3d("+st+"px, 0, 0)";ht=st},rr=function(){a.textContent=r+1+"/"+s},ur=function(n){var u=null;t.nav?(e.disabled=!1,f.disabled=!1,1===s?(e.disabled=!0,f.disabled=!0,t.close&&h.focus()):0===r?e.disabled=!0:r===s-1&&(f.disabled=!0),n||f.disabled?n||!f.disabled||e.disabled?f.disabled||"right"!==n?f.disabled&&"right"===n&&!e.disabled?e.focus():e.disabled||"left"!==n?e.disabled&&"left"===n&&!f.disabled&&f.focus():e.focus():f.focus():e.focus():f.focus()):t.close&&h.focus();u=i.querySelectorAll("button:not(:disabled)");et=u[0];ot=1===u.length?u[0]:u[u.length-1]},kt=function(){u={startX:0,endX:0,startY:0,endY:0}},ci=function(){var n=u.endX-u.startX,i=u.endY-u.startY,f=Math.abs(n),e=Math.abs(i);n>0&&f>t.threshold&&r>0?it():n<0&&f>t.threshold&&r!==s-1?rt():i<0&&e>t.threshold&&t.swipeClose?nt():bt()},li=function(n){n.target===e?it():n.target===f?rt():(n.target===h||"tobi__slider__slide"===n.target.className&&t.docClose)&&nt();n.stopPropagation()},ai=function(n){9===n.keyCode?n.shiftKey?document.activeElement===et&&(ot.focus(),n.preventDefault()):document.activeElement===ot&&(et.focus(),n.preventDefault()):27===n.keyCode?(n.preventDefault(),nt()):37===n.keyCode?(n.preventDefault(),it()):39===n.keyCode&&(n.preventDefault(),rt())},dt=function(n){ki(n.target)||(n.stopPropagation(),v=!0,u.startX=n.touches[0].pageX,u.startY=n.touches[0].pageY,o.classList.add("tobi__slider--is-dragging"))},gt=function(n){n.stopPropagation();v&&(n.preventDefault(),u.endX=n.touches[0].pageX,u.endY=n.touches[0].pageY,lt||(lt=!0,k.requestAnimationFrame(function(){wi();lt=!1})))},ni=function(n){n.stopPropagation();v=!1;o.classList.remove("tobi__slider--is-dragging");u.endX&&(p=!1,w=!1,ci());kt()},vi=function(n){ki(n.target)||(n.preventDefault(),n.stopPropagation(),v=!0,u.startX=n.pageX,u.startY=n.pageY,o.classList.add("tobi__slider--is-dragging"))},yi=function(n){n.preventDefault();v&&(u.endX=n.pageX,u.endY=n.pageY,at||(at=!0,k.requestAnimationFrame(function(){wi();at=!1})))},pi=function(n){n.stopPropagation();v=!1;o.classList.remove("tobi__slider--is-dragging");u.endX&&(p=!1,w=!1,ci());kt()},wi=function(){Math.abs(u.startX-u.endX)>0&&!w&&t.swipeClose?(o.style[d]="translate3d("+(ht-Math.round(u.startX-u.endX))+"px, 0, 0)",p=!0,w=!1):Math.abs(u.startY-u.endY)>0&&!p&&(o.style[d]="translate3d("+(ht+"px, -"+Math.round(u.startY-u.endY))+"px, 0)",p=!1,w=!0)},fr=function(){t.keyboard&&document.addEventListener("keydown",ai);i.addEventListener("click",li);t.draggable&&(ii()&&(i.addEventListener("touchstart",dt),i.addEventListener("touchmove",gt),i.addEventListener("touchend",ni)),i.addEventListener("mousedown",vi),i.addEventListener("mouseup",pi),i.addEventListener("mousemove",yi))},er=function(){t.keyboard&&document.removeEventListener("keydown",ai);i.removeEventListener("click",li);t.draggable&&(ii()&&(i.addEventListener("touchstart",dt),i.addEventListener("touchmove",gt),i.addEventListener("touchend",ni)),i.removeEventListener("touchstart",dt),i.removeEventListener("touchmove",gt),i.removeEventListener("touchend",ni),i.removeEventListener("mousedown",vi),i.removeEventListener("mouseup",pi),i.removeEventListener("mousemove",yi))},ti=function(n,t){return n.getAttribute("data-type")===t},or=function(n){var t=n.querySelectorAll("src");t&&Array.prototype.forEach.call(t,function(n){n.setAttribute("src","")})},bi=function(){t.draggable&&s>1&&!o.classList.contains("tobi__slider--is-draggable")&&o.classList.add("tobi__slider--is-draggable");!t.nav||1===s||"auto"===t.nav&&ii()?(e.setAttribute("aria-hidden","true"),f.setAttribute("aria-hidden","true")):(e.setAttribute("aria-hidden","false"),f.setAttribute("aria-hidden","false"));t.counter&&1!==s?a.setAttribute("aria-hidden","false"):a.setAttribute("aria-hidden","true")},ut=function(n){bt();rr();ur(n)},sr=function(n){if(o)for(;o.firstChild;)o.removeChild(o.firstChild);g.length=c.length=s=ft=pt=0;n&&n.call(this)},b=function(){return"false"===i.getAttribute("aria-hidden")},ii=function(){return"ontouchstart"in window},ki=function(n){return["TEXTAREA","OPTION","INPUT","SELECT"].indexOf(n.nodeName)!==-1||n===e||n===f||n===h||1===s},hr=function(){return r};return nr(n),{open:oi,prev:it,next:rt,close:nt,add:fi,reset:sr,isOpen:b,currentSlide:hr}}})