1/* 2 * custombox - Modal dialog effects with transitions CSS3 3 * version: 4.0.1 4 * http://dixso.github.io/custombox/ 5 * (c) 2017 Julio de la Calle - @dixso9 6 * 7 * Under MIT License - http://opensource.org/licenses/MIT 8 */ 9"use strict";function _possibleConstructorReturn(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _extends=Object.assign||function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a},_createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),Custombox;!function(a){var b="custombox",c=b+"-open",d=b+"-close",e=b+"-lock",f="animateFrom",g=["top","right","bottom","left"],h=["slide","blur","flip","rotate","letmein","makeway","slip","corner","slidetogether","push","contentscale"],i=["blur","makeway","slip","push","contentscale"],j=["letmein","makeway","slip","corner","slidetogether","door","push","contentscale"],k=["corner","slidetogether","scale","door","push","contentscale"],l=["fall","sidefall","flip","sign","slit","letmein","makeway","slip"],m=function(){function a(){_classCallCheck(this,a)}return _createClass(a,null,[{key:"check",value:function(a,b){return a.indexOf(b)>-1}},{key:"isIE",value:function(){var a=window.navigator.userAgent,b=a.indexOf("MSIE ");if(b>0)return!isNaN(parseInt(a.substring(b+5,a.indexOf(".",b)),10));if(a.indexOf("Trident/")>0){var c=a.indexOf("rv:");return!isNaN(parseInt(a.substring(c+3,a.indexOf(".",c)),10))}var d=a.indexOf("Edge/");return d>0&&!isNaN(parseInt(a.substring(d+5,a.indexOf(".",d)),10))}}]),a}(),n=function(){function a(){_classCallCheck(this,a),this.position=document.documentElement&&document.documentElement.scrollTop||document.body&&document.body.scrollTop||0,document.documentElement.classList.add(b+"-perspective")}return _createClass(a,[{key:"remove",value:function(){document.documentElement.classList.remove(b+"-perspective"),window.scrollTo(0,this.position)}}]),a}(),o=function a(){_classCallCheck(this,a),this.overlay={color:"#000",opacity:.48,close:!0,speedIn:300,speedOut:300,onOpen:null,onComplete:null,onClose:null,active:!0},this.content={id:null,target:null,container:null,animateFrom:"top",animateTo:"top",positionX:"center",positionY:"center",width:null,effect:"fadein",speedIn:300,speedOut:300,delay:150,fullscreen:!1,onOpen:null,onComplete:null,onClose:null,escKey:!0},this.loader={active:!0,color:"#FFF",background:"#999",speed:1e3}},p=function(a){function b(a){_classCallCheck(this,b);var c=_possibleConstructorReturn(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));return Object.keys(c).forEach(function(b){a[b]&&_extends(c[b],a[b])}),c}return _inherits(b,a),b}(o),q=function(){function a(c){_classCallCheck(this,a),this.options=c,this.element=document.createElement("div"),this.element.classList.add(b+"-loader"),this.element.style.borderColor=this.options.loader.background,this.element.style.borderTopColor=this.options.loader.color,this.element.style.animationDuration=this.options.loader.speed+"ms",document.body.appendChild(this.element)}return _createClass(a,[{key:"show",value:function(){this.element.style.display="block"}},{key:"destroy",value:function(){this.element.parentElement.removeChild(this.element)}}]),a}(),r=function(){function a(c){if(_classCallCheck(this,a),this.options=c,"loading"===document.readyState)throw new Error("You need to instantiate Custombox when the document is fully loaded");var d=document.querySelector(this.options.content.container);if(d)this.element=d;else if(document.querySelector("."+b+"-container"))document.querySelector("."+b+"-container")&&(this.element=document.querySelector("."+b+"-container"));else{for(this.element=document.createElement("div");document.body.firstChild;)this.element.appendChild(document.body.firstChild);document.body.appendChild(this.element)}this.addSimpleClass(),this.element.style.animationDuration=this.options.content.speedIn+"ms",m.check(h,this.options.content.effect)&&this.setAnimation()}return _createClass(a,[{key:"bind",value:function(a){var b=this;return a===d&&(m.check(h,this.options.content.effect)&&this.setAnimation("animateTo"),this.element.classList.remove(c)),this.element.classList.add(a),new Promise(function(a){return b.listener().then(function(){return a()})})}},{key:"remove",value:function(){this.element.classList.remove(d),this.element.classList.remove(b+"-"+this.options.content.effect),this.element.style.removeProperty("animation-duration")}},{key:"listener",value:function(){var a=this;return new Promise(function(b){m.isIE()?setTimeout(b,a.options.content.speedIn):a.element.addEventListener("animationend",function(){return b()},!0)})}},{key:"addSimpleClass",value:function(){this.element.classList.add(b+"-container"),this.element.classList.add(b+"-"+this.options.content.effect)}},{key:"setAnimation",value:function(){for(var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,c=0,d=g.length;c<d;c++)this.element.classList.contains(b+"-"+g[c])&&this.element.classList.remove(b+"-"+g[c]);this.element.classList.add(b+"-"+this.options.content[a])}}]),a}(),s=function(){function a(c){_classCallCheck(this,a),this.options=c,this.element=document.createElement("div"),this.element.style.backgroundColor=this.options.overlay.color,this.element.classList.add(b+"-overlay"),this.setAnimation()}return _createClass(a,[{key:"bind",value:function(a){var e=this;switch(a){case d:m.check(j,this.options.content.effect)&&this.toggleAnimation("animateTo"),this.element.classList.add(d),this.element.classList.remove(c);break;default:document.body.appendChild(this.element),this.element.classList.add(b+"-"+this.options.content.effect),this.element.classList.add(c)}return new Promise(function(a){return e.listener().then(function(){return a()})})}},{key:"remove",value:function(){try{this.element.parentNode.removeChild(this.element),this.style.parentNode.removeChild(this.style)}catch(a){}}},{key:"createSheet",value:function(){return this.style=document.createElement("style"),this.style.setAttribute("id",b+"-overlay-"+Date.now()),document.head.appendChild(this.style),this.style.sheet}},{key:"listener",value:function(){var a=this;return new Promise(function(b){m.isIE()?setTimeout(b,a.options.overlay.speedIn):a.element.addEventListener("animationend",function(){return b()},!0)})}},{key:"setAnimation",value:function(){var a=this.createSheet();if(m.check(j,this.options.content.effect)?(this.element.style.opacity=this.options.overlay.opacity.toString(),this.element.style.animationDuration=this.options.overlay.speedIn+"ms",this.toggleAnimation()):(a.insertRule("."+b+"-overlay { animation: CloseFade "+this.options.overlay.speedOut+"ms; }",0),a.insertRule("."+c+"."+b+"-overlay { animation: OpenFade "+this.options.overlay.speedIn+"ms; opacity: "+this.options.overlay.opacity+" }",0),a.insertRule("@keyframes OpenFade { from {opacity: 0} to {opacity: "+this.options.overlay.opacity+"} }",0),a.insertRule("@keyframes CloseFade { from {opacity: "+this.options.overlay.opacity+"} to {opacity: 0} }",0)),m.check(k,this.options.content.effect)){var d=this.options.overlay.speedIn;m.check(k,this.options.content.effect)&&(d=this.options.content.speedIn),this.element.style.animationDuration=d+"ms"}}},{key:"toggleAnimation",value:function(){for(var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,c=0,d=g.length;c<d;c++)this.element.classList.contains(b+"-"+g[c])&&this.element.classList.remove(b+"-"+g[c]);this.element.classList.add(b+"-"+this.options.content[a])}}]),a}(),t=function(){function a(c){_classCallCheck(this,a),this.options=c,this.element=document.createElement("div"),this.element.style.animationDuration=this.options.content.speedIn+"ms",this.options.content.id&&this.element.setAttribute("id",b+"-"+this.options.content.id),m.check(k,this.options.content.effect)||(this.element.style.animationDelay=this.options.content.delay+"ms"),this.element.classList.add(b+"-content"),this.options.content.fullscreen?this.element.classList.add(b+"-fullscreen"):(this.element.classList.add(b+"-x-"+this.options.content.positionX),this.element.classList.add(b+"-y-"+this.options.content.positionY)),m.check(h,this.options.content.effect)&&this.setAnimation()}return _createClass(a,[{key:"fetch",value:function(){var a=this;return new Promise(function(b,c){var d=a.options.content.target.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);if(d&&11==d[2].length){var e=document.createElement("div"),f=document.createElement("iframe");
9if(f.setAttribute("src","https://www.youtube.com/embed/"+d[2]),f.setAttribute("frameborder","0"),f.setAttribute("allowfullscreen",""),f.setAttribute("width","100%"),f.setAttribute("height","100%"),e.appendChild(f),!a.options.content.fullscreen){var g=window.innerWidth>560?560:window.innerWidth,h=window.innerHeight>315?315:window.innerHeight,i=parseInt(a.options.content.width,10);a.options.content.width&&window.innerWidth>i&&(h=Math.round(h*i/g),g=i),f.setAttribute("width",g+"px"),f.setAttribute("height",h+"px")}a.element.appendChild(e),b()}else if("#"!==a.options.content.target.charAt(0)&&"."!==a.options.content.target.charAt(0)){var j=new XMLHttpRequest;j.open("GET",a.options.content.target),j.onload=function(){if(200===j.status){a.element.insertAdjacentHTML("beforeend",j.response);var d=a.element.firstChild;try{d.style.display="block"}catch(a){c(new Error("The ajax response need a wrapper element"))}a.options.content.width&&(d.style.flexBasis=a.options.content.width),b()}else c(new Error(j.statusText))},j.onerror=function(){return c(new Error("Network error"))},j.send()}else{var k=document.querySelector(a.options.content.target);if(k){var l=k.cloneNode(!0);l.removeAttribute("id"),l.style.display="block",a.options.content.width&&(l.style.flexBasis=a.options.content.width),a.element.appendChild(l),b()}else c(new Error("The element doesn't exist"))}})}},{key:"bind",value:function(a){var e=this;switch(a){case d:this.element.style.animationDelay="0ms",this.element.style.animationDuration=this.options.content.speedOut+"ms",this.element.classList.remove(c),this.element.classList.add(d),this.setAnimation("animateTo");break;default:document.body.appendChild(this.element),this.element.classList.add(b+"-"+this.options.content.effect),this.element.classList.add(c)}return new Promise(function(a){return e.listener().then(function(){return a()})})}},{key:"remove",value:function(){try{this.element.parentNode.removeChild(this.element)}catch(a){}}},{key:"listener",value:function(){var a=this;return new Promise(function(b){m.isIE()?setTimeout(b,a.options.content.speedIn):a.element.addEventListener("animationend",function(){return b()},!0)})}},{key:"setAnimation",value:function(){for(var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,c=0,d=g.length;c<d;c++)this.element.classList.contains(b+"-"+g[c])&&this.element.classList.remove(b+"-"+g[c]);this.element.classList.add(b+"-"+this.options.content[a])}}]),a}(),u=function(){function f(b){_classCallCheck(this,f),this.action=function(b){27===b.keyCode&&a.modal.close()},this.options=new p(b)}return _createClass(f,[{key:"open",value:function(){var a=this;this.build(),this.options.loader.active&&this.loader.show(),this.content.fetch().then(function(){m.check(l,a.options.content.effect)&&(a.scroll=new n),a.options.overlay.active?(a.dispatchEvent("overlay.onOpen"),a.overlay.bind(c).then(function(){a.dispatchEvent("overlay.onComplete"),a.options.loader.active&&a.loader.destroy()})):a.options.loader.active&&a.loader.destroy(),a.container&&a.container.bind(c),document.body.classList.add(e),a.content.bind(c).then(function(){return a.dispatchEvent("content.onComplete")}
9),a.dispatchEvent("content.onOpen"),a.listeners()}).catch(function(b){throw a.options.loader.active&&a.loader.destroy(),b})}},{key:"build",value:function(){this.options.loader.active&&(this.loader=new q(this.options)),m.check(i,this.options.content.effect)&&(this.container=new r(this.options)),this.options.overlay.active&&(this.overlay=new s(this.options)),this.content=new t(this.options)}},{key:"_close",value:function(){var a=this,b=[this.content.bind(d).then(function(){return a.content.remove()})];this.options.overlay.active&&b.push(this.overlay.bind(d).then(function(){a.scroll&&a.scroll.remove(),a.overlay.remove(),a.dispatchEvent("overlay.onClose")})),this.container&&b.push(this.container.bind(d).then(function(){return a.container.remove()})),Promise.all(b).then(function(){a.options.content.escKey&&document.removeEventListener("keydown",a.action,!0),a.dispatchEvent("content.onClose"),document.body.classList.remove(e)})}},{key:"dispatchEvent",value:function(a){var c=a.replace(".on",":").toLowerCase(),d=new CustomEvent(b+":"+c),e=Object.create(this.options);document.dispatchEvent(d);try{a.split(".").reduce(function(a,b){return a[b]},e).call()}catch(a){}}},{key:"listeners",value:function(){var a=this;this.options.content.escKey&&document.addEventListener("keydown",this.action,!0),this.content.element.addEventListener("click",function(b){b.target===a.content.element&&a._close()},!0),this.content.element.addEventListener(b+":close",function(){a._close()},!0)}}],[{key:"close",value:function(a){var c=new CustomEvent(b+":close"),d=document.querySelectorAll("."+b+"-content");a&&(d=document.querySelectorAll("#"+b+"-"+a));try{d[d.length-1].dispatchEvent(c)}catch(a){throw new Error("Custombox is not instantiated")}}},{key:"closeAll",value:function(){for(var a=new CustomEvent(b+":close"),c=document.querySelectorAll("."+b+"-content"),d=c.length,e=0;e<d;e++)c[e].dispatchEvent(a)}}]),f}();a.modal=u}(Custombox||(Custombox={}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.