"use strict";function _typeof(e){"@babel/helpers - typeof";return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}(function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1)}function t(n,o){for(var r in o)"Object"===e(o[r])?("object"!==_typeof(n[r])&&(n[r]={}),n[r]=t(n[r],o[r])):n[r]=o[r];return n}function n(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/"),o=e.indexOf("Edge/");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(n>0){var r=e.indexOf("rv:");return parseInt(e.substring(r+3,e.indexOf(".",r)),10)}return o>0?parseInt(e.substring(o+5,e.indexOf(".",o)),10):!1}function o(e){if(console.error("[ZemezCore] error:","\n",e),!document.querySelector("#global-errors")){var t=document.createElement("div");t.setAttribute("id","global-errors"),t.setAttribute("style","position: fixed; display: none; bottom: 1vh; left: 1vw; z-index: 1000; max-width: 98vw; padding: 10px 15px; border-radius: 4px; font-family: monospace; background: #f2564d; color: white;"),t.innerText="There was an error on this page, please try again later.",document.body.appendChild(t)}}function r(e){t(this,r.defaults),t(this,e);var o=n();if(o!==!1&&12>o){console.warn("[ZemezCore] detected IE"+o+", load alert");var i=document.createElement("script");i.src="./components/base/support.js",document.querySelector("head").appendChild(i)}else this.init(e)}r.defaults={observeDOM:!0,firstInit:!0,debug:!1,IEPolyfill:"https://polyfill.io/v3/polyfill.min.js?features=Array.from%2CCustomEvent%2CNodeList.prototype.forEach%2CObject.assign%2CIntersectionObserver%2CPromise",IEHandler:null,onScriptsReady:null,onStylesReady:null,onError:o,onReady:null},r.prototype.init=function(){var e=this;if(this.firstInit&&this.initComponents(),this.observeDOM){var t=new MutationObserver(function(t){t.forEach(function(t){"childList"===t.type&&t.addedNodes.length&&t.addedNodes.forEach(function(t){t.nodeType===Node.ELEMENT_NODE&&e.initComponents(t)})})});t.observe(document,{childList:!0,subtree:!0})}},r.prototype.checkComponent=function(e){var t=this;return new Promise(function(n){var o=t.components[e];o&&"absent"!==o.state?"ready"===o.state?n():window.addEventListener("".concat(e,":readyScripts"),n):n()})},r.prototype.makeAsync=function(e,t){var n=[];return e.forEach(function(e){n.push(t(e))}),Promise.all(n)},r.prototype.makeSync=function(e,t){var n=Promise.resolve();return e.forEach(function(e){n=n.then(t.bind(null,e))}),n},r.prototype.includeStyles=function(e){return new Promise(function(t,n){if(document.querySelector('link[href="'.concat(e,'"]')))t();else{var o=document.createElement("link");o.setAttribute("rel","stylesheet"),o.setAttribute("href",e),o.addEventListener("load",t),o.addEventListener("error",n),document.querySelector("head").appendChild(o)}})},r.prototype.includeScript=function(e){return new Promise(function(t,n){var o=document.querySelector('script[src="'.concat(e,'"]'));if(o)"true"===o.getAttribute("data-loaded")?t():(o.addEventListener("load",t),o.addEventListener("error",n));else{var r=document.createElement("script");r.src=e,r.addEventListener("load",function(){r.setAttribute("data-loaded","true"),t()}),r.addEventListener("error",n),document.querySelector("head").appendChild(r)}})},r.prototype.initComponent=function(e){var t=Promise.resolve(),n=Promise.resolve();return this.debug&&console.log("%c[".concat(e.name,"] init:"),"color: lightgreen; font-weight: 900;",e.nodes.length),e.state="load",e.styles&&(t=t.then(this.makeAsync.bind(this,e.styles,this.includeStyles))["catch"](this.onError)),e.script&&(n=n.then(this.makeSync.bind(this,e.script,this.includeScript))["catch"](this.onError)),e.dependencies&&(n=n.then(this.makeSync.bind(this,e.dependencies,this.checkComponent.bind(this)))["catch"](this.onError)),e.init&&(n=n.then(e.init.bind(this,e.nodes))["catch"](this.onError)),t.then(function(){window.dispatchEvent(new CustomEvent("".concat(e.name,":readyStyles")))}),n.then(function(){window.dispatchEvent(new CustomEvent("".concat(e.name,":readyScripts"))),e.state="ready"}),{scriptsState:n,stylesState:t}},r.prototype.initComponents=function(e,t){var n=this,o=[],r=[];if(!this.components)throw new Error("components is not defined");var i=this.components;e=e||document;for(var s in i){var c=i[s];c.name=s,c.nodes=Array.from(e.querySelectorAll(c.selector)),"HTMLElement"===e.constructor.name&&e.matches(c.selector)&&c.nodes.unshift(e),!c.styles||c.styles instanceof Array||(c.styles=[c.styles]),!c.script||c.script instanceof Array||(c.script=[c.script]),!c.dependencies||c.dependencies instanceof Array||(c.dependencies=[c.dependencies]),c.nodes.length?c.state="pending":c.state="absent"}for(var a in i){var d=i[a];if("pending"===d.state){var l=this.initComponent(d);o.push(l.stylesState),r.push(l.scriptsState)}}Promise.all([Promise.all(r).then(function(){n.debug&&console.log("%c[components]: scriptsReady","color: orange; font-weight: 900;"),n.onScriptsReady instanceof Function&&n.onScriptsReady.call(n),window.dispatchEvent(new CustomEvent("components:scriptsReady"))}),Promise.all(o).then(function(){n.debug&&console.log("%c[components]: stylesReady","color: orange; font-weight: 900;"),n.onStylesReady instanceof Function&&n.onStylesReady.call(n),window.dispatchEvent(new CustomEvent("components:stylesReady"))})]).then(function(){n.debug&&console.log("%c[components]: ready","color: orange; font-weight: 900;"),t instanceof Function&&t.call(n),n.onReady instanceof Function&&n.onReady.call(n),window.dispatchEvent(new CustomEvent("components:ready"))})},window.ZemezCore||(window.ZemezCore=r)}).call();