machines/assets/js/iframe-lightbox.min.js
2024-02-01 12:42:45 +01:00

1 line
4.3 KiB
JavaScript

!function(s,o){"use strict";var n=o.documentElement||"",a=o.body||"",l="iframe-lightbox",d="iframe-lightbox-window--is-binded",t="iframe-lightbox--open",r="iframe-lightbox-link--is-binded",c="is-loaded",e="is-opened",h="is-showing",m=null!==navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)||void 0!==o.createTouch||"ontouchstart"in s||"onmsgesturechange"in s||navigator.msMaxTouchPoints,i=function(t,e){var i=e||{};this.trigger=t,this.el=o.getElementsByClassName(l)[0]||"",this.body=this.el?this.el.getElementsByClassName("body")[0]:"",this.content=this.el?this.el.getElementsByClassName("content")[0]:"",this.src=t.dataset.src||"",this.href=t.getAttribute("href")||"",this.dataPaddingBottom=t.dataset.paddingBottom||"",this.dataScrolling=t.dataset.scrolling||"",this.dataTouch=t.dataset.touch||"",this.rate=i.rate||500,this.scrolling=i.scrolling,this.touch=i.touch,this.onOpened=i.onOpened,this.onIframeLoaded=i.onIframeLoaded,this.onLoaded=i.onLoaded,this.onCreated=i.onCreated,this.onClosed=i.onClosed,this.init()};i.prototype.init=function(){var t=this;this.el||this.create();var e=function(){t.open()},i=function(t){var i,s,n,o,a,l;t.stopPropagation(),t.preventDefault(),(i=e,s=this.rate,function(){a=this,o=[].slice.call(arguments,0),l=new Date;var e=function(){var t=new Date-l;t<s?n=setTimeout(e,s-t):(n=null,i.apply(a,o))};n||(n=setTimeout(e,s))}).call()};this.trigger.classList.contains(r)||(this.trigger.classList.add(r),this.trigger.addEventListener("click",i),m&&(t.touch||t.dataTouch)&&this.trigger.addEventListener("touchstart",i))},i.prototype.create=function(){var e=this,t=o.createElement("div");t.classList.add("backdrop"),this.el=o.createElement("div"),this.el.classList.add(l),this.el.appendChild(t),this.content=o.createElement("div"),this.content.classList.add("content"),this.body=o.createElement("div"),this.body.classList.add("body"),this.content.appendChild(this.body),this.contentHolder=o.createElement("div"),this.contentHolder.classList.add("content-holder"),this.contentHolder.appendChild(this.content),this.el.appendChild(this.contentHolder),this.btnClose=o.createElement("a"),this.btnClose.classList.add("btn-close"),this.btnClose.setAttribute("href","javascript:void(0);"),this.el.appendChild(this.btnClose),a.appendChild(this.el),t.addEventListener("click",function(){e.close()}),this.btnClose.addEventListener("click",function(){e.close()}),n.classList.contains(d)||(n.classList.add(d),s.addEventListener("keyup",function(t){27===(t.which||t.keyCode)&&e.close()}));var i=function(){e.isOpen()||(e.el.classList.remove(h),e.body.innerHTML="")};this.el.addEventListener("transitionend",i,!1),this.el.addEventListener("webkitTransitionEnd",i,!1),this.el.addEventListener("mozTransitionEnd",i,!1),this.el.addEventListener("msTransitionEnd",i,!1),this.callCallback(this.onCreated,this)},i.prototype.loadIframe=function(){var t=this;this.iframeId=l+Date.now(),this.iframeSrc=this.src||this.href||"";var e,i,s,n=[];n.push('<iframe src="'+this.iframeSrc+'" name="'+this.iframeId+'" id="'+this.iframeId+'" onload="this.style.opacity=1;" style="opacity:0;border:none;" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen="true" height="166" frameborder="no"></iframe>'),n.push('<div class="half-circle-spinner"><div class="circle circle-1"></div><div class="circle circle-2"></div></div>'),this.body.innerHTML=n.join(""),e=this.iframeId,i=this.body,(s=o.getElementById(e)).onload=function(){this.style.opacity=1,i.classList.add(c),t.scrolling||t.dataScrolling?(s.removeAttribute("scrolling"),s.style.overflow="scroll"):(s.setAttribute("scrolling","no"),s.style.overflow="hidden"),t.callCallback(t.onIframeLoaded,t),t.callCallback(t.onLoaded,t)}},i.prototype.open=function(){this.loadIframe(),this.dataPaddingBottom?this.content.style.paddingBottom=this.dataPaddingBottom:this.content.removeAttribute("style"),this.el.classList.add(h),this.el.classList.add(e),n.classList.add(t),a.classList.add(t),this.callCallback(this.onOpened,this)},i.prototype.close=function(){this.el.classList.remove(e),this.body.classList.remove(c),n.classList.remove(t),a.classList.remove(t),this.callCallback(this.onClosed,this)},i.prototype.isOpen=function(){return this.el.classList.contains(e)},i.prototype.callCallback=function(t,e){"function"==typeof t&&t.bind(this)(e)},s.IframeLightbox=i}("undefined"!=typeof window?window:this,document);