/* * custombox - Modal dialog effects with transitions CSS3 * version: 4.0.1 * http://dixso.github.io/custombox/ * (c) 2017 Julio de la Calle - @dixso9 * * Under MIT License - http://opensource.org/licenses/MIT */ "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-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;c0&&void 0!==arguments[0]?arguments[0]:f,c=0,d=g.length;c560?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