(function(c,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(c=typeof globalThis<"u"?globalThis:c||self,h(c.Spotlight={}))})(this,function(c){"use strict";function h(e,t){e.classList.add(t)}function T(e,t){e.classList.remove(t)}function he(e,t,n){n?h(e,t):T(e,t)}function Xt(e){for(var t in e)t.startsWith("_s_")&&e.style.setProperty(t.substring(3),e[t])}function f(e,t,n){n=""+n,e["_s_"+t]!==n&&(e.style.setProperty(t,n),e["_s_"+t]=n)}let dt=0;function ge(e,t){t&&(f(e,"transition","none"),t()),dt||(dt=e.clientTop&&0),t&&f(e,"transition","")}function me(e,t){e.firstChild.nodeValue=t}function pt(e,t){return(t||document).getElementsByClassName(e)}function y(e,t,n,o){Q(!0,e,t,n,o)}function Q(e,t,n,o,s){t[(e?"add":"remove")+"EventListener"](n,o,s||s===!1?s:!0)}function ve(e,t){e.stopPropagation(),t&&e.preventDefault()}function Ft(e,t){const n=A("a"),o=t.src;n.href=o,n.download=o.substring(o.lastIndexOf("/")+1),e.appendChild(n),n.click(),e.removeChild(n)}function A(e){return document.createElement(e)}function Z(e,t){f(e,"display",t?"":"none")}function $(e,t){f(e,"visibility",t?"":"hidden")}function P(e,t){f(e,"transition",t?"":"none")}const ee=["info","theme","download","play","page","close","autofit","zoom-in","zoom-out","prev","next","fullscreen"],It={info:1,page:1,close:1,autofit:1,"zoom-in":1,"zoom-out":1,prev:1,next:1,fullscreen:1},b={BACKSPACE:8,ESCAPE:27,SPACEBAR:32,LEFT:37,RIGHT:39,UP:38,NUMBLOCK_PLUS:107,PLUS:187,DOWN:40,NUMBLOCK_MINUS:109,MINUS:189,INFO:73},u=A("div");u.id="spotlight",u.innerHTML="
";const Ie={},Yt=A("video");function _t(e,t,n,o){let s,l;if(o!=="node"){const v=Object.keys(n);for(let ut=0,z;ut0){s=n[z];break}}else if(Yt.canPlayType("video/"+z.substring(3).replace("-","").toLowerCase())){Ie[z]=1,s=n[z];break}else Ie[z]=-1}else{const pe=parseInt(z.substring(4),10);if(pe){const _e=t-pe;(l===void 0||_e<=0&&_e>l||_e>0&&_e0)}function nt(){N=u.clientWidth,R=u.clientHeight}function ae(){Ye=i.clientWidth,Be=i.clientHeight}function St(e){f(i,"transform","translate(-50%, -50%) scale("+(e||S)+")")}function F(e,t){f(_,"transform",e||t?"translate("+e+"px, "+t+"px)":"")}function fe(e,t,n){t?ge(le,function(){fe(e,!1,n)}):f(le,"transform","translateX("+(-e*100+(n||0))+"%)")}function Et(e){Q(e,window,"keydown",xt),Q(e,window,"wheel",Kt),Q(e,window,"resize",Wt),Q(e,window,"popstate",jt)}function jt(e){_&&e.state.spl&&I(!0)}function xt(e){if(_){const t=r["zoom-in"]!==!1;switch(e.keyCode){case b.BACKSPACE:t&&Ue();break;case b.ESCAPE:I();break;case b.SPACEBAR:H&&V();break;case b.LEFT:Fe();break;case b.RIGHT:ue();break;case b.UP:case b.NUMBLOCK_PLUS:case b.PLUS:t&&rt();break;case b.DOWN:case b.NUMBLOCK_MINUS:case b.MINUS:t&&ct();break;case b.INFO:ft();break}}}function Kt(e){if(_&&r["zoom-in"]!==!1){let t=e.deltaY;t=(t<0?1:t?-1:0)*.5,t<0?ct(e,e.clientX,e.clientY):t>0&&rt(e,e.clientX,e.clientY)}}function V(e,t){(typeof e=="boolean"?e:!m)===!m&&(m=m?clearTimeout(m):1,he(yt,"on",m),t||it(m))}function it(e){mt&&(ge(K,function(){f(K,"transition-duration",""),f(K,"transform","")}),e&&(f(K,"transition-duration",We+"s"),f(K,"transform","translateX(0)"))),e&&(m=setTimeout(ue,We*1e3))}function J(){Se&&($e=Date.now()+2950,k||(h(u,"menu"),Lt(3e3)))}function Lt(e){k=setTimeout(function(){const t=Date.now();t>=$e?(T(u,"menu"),k=0):Lt($e-t)},e)}function Tt(e){typeof e=="boolean"&&(k=e?k:0),k?(k=clearTimeout(k),T(u,"menu")):J()}function Pt(e){ve(e,!0),ye=!0,ne=!1,D=!1;let t=e,n=e.touches;q=n,n&&(n=n[0])&&(t=n),be=Ye*S<=N&&Be*S<=R,Y=t.pageX,B=t.pageY,P(_)}function ot(e){if(ve(e),q=null,ye){if(!ne)Tt();else{if(be&&ne){const t=d<-(N/7)&&(aN/7&&(a>1||U||oe);(t||n)&&(fe(a-1,!0,d/N*100),t&&ue()||n&&Fe()),D&&p<-(R/4)?I():(d=0,p=0),F()}P(_,!0)}ye=!1}}function Nt(e){return Math.sqrt(Math.pow(e[0].clientX-e[1].clientX,2)+Math.pow(e[0].clientY-e[1].clientY,2))}function Gt(e){return[(e[0].clientX+e[1].clientX)*.5,(e[0].clientY+e[1].clientY)*.5]}function Vt(e){if(r["zoom-in"]!==!1&&e&&e.length===2&&q&&q.length===2){const t=Nt(e)/Nt(q),n=Gt(e);lt(t,n[0],n[1],!1)}return q=e,e&&e[0]}function Mt(e){if(ve(e),ye){let t=Vt(e.touches);if(t&&(e=t),!ne){const n=Y-e.pageX,o=B-e.pageY;D=be&&o>Math.abs(n)*1.15}if(D)p-=B-(B=e.pageY);else if(be)d-=Y-(Y=e.pageX);else{let n=(Ye*S-N)/2,o=Math.abs(n);n>0&&(d-=Y-(Y=e.pageX)),d>o?d=o:d<-o&&(d=-o),n=(Be*S-R)/2,o=Math.abs(n),n>0&&(p-=B-(B=e.pageY)),p>o?p=o:p<-o&&(p=-o)}ne=!0,F(d,p)}else J()}function st(e){const t=kt();(typeof e!="boolean"||e!==!!t)&&(t?document[bt]():u[E]())}function Oe(e){typeof e!="string"&&(e=O?"":Ee||"white"),O!==e&&(O&&T(u,O),e&&h(u,e),O=e)}function Ue(e){typeof e=="boolean"&&(ie=!e),ie=S===1&&!ie,he(i,"autofit",ie),f(i,"transform",""),S=1,d=0,p=0,ae(),P(_),F()}function lt(e,t,n,o){let s=S*e;if(P(_,o),P(i,o),At(),s<=1){d=p=0,F(d,p),at(1);return}if(!(s>50)){if(n){const l=N/2,v=R/2;d=t-(t-d-l)*e-l,p=n-(n-p-v)*e-v}else d*=e,p*=e;F(d,p),at(s)}}function rt(e,t,n){lt(1/.65,t,n,!0)}function ct(e,t,n){lt(.65,t,n,!0)}function at(e){S=e||1,St()}function ft(){re=!re,$(x,re)}function At(){ie&&Ue()}function Jt(){history.pushState({spl:1},""),history.pushState({spl:2},""),P(u,!0),h(C,"hide-scrollbars"),h(u,"show"),Et(!0),nt(),J(),H&&V(!0,!0)}function Ot(){Ft(C,i)}function I(e){setTimeout(function(){C.removeChild(u),_=i=X=r=we=M=Ce=ke=ze=Le=null,D=!1},200),T(C,"hide-scrollbars"),T(u,"show"),st(!1),Et(),history.go(e===!0?-1:-2),G&&(xe.src=""),m&&V(),i&&Xe(i),k&&(k=clearTimeout(k)),O&&Oe(),W&&T(u,W),ze&&ze()}function Xe(e){if(e._root)e.setAttribute("style",e._style||""),e._root.appendChild(e),e._root=e._style=null;else{const t=e.parentNode;t&&t.removeChild(e),e.onerror=null,e.src=""}}function Fe(e){if(e&&J(),w>1){if(a>1)return de(a-1);if(U)return fe(w,!0),de(w);oe&&I()}}function ue(e){if(e&&J(),w>1){if(aa;return a=e,Ut(t),!0}}function Qt(e){let t=M[a-1];Ht(t);const n=ht&&ht.downlink;let o=Math.max(R,N)*Bt;n&&n*12001),$(Qe,U||a1?a+" / "+w:""),ke&&ke(a,r)}c.addControl=L,c.autofit=Ue,c.close=I,c.download=Ot,c.fullscreen=st,c.goto=de,c.info=ft,c.init=wt,c.menu=Tt,c.next=ue,c.play=V,c.prev=Fe,c.removeControl=Rt,c.show=Dt,c.theme=Oe,c.zoom=at,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});