{"version":3,"sources":["util-html-inject-loader.js"],"names":["UtilHtmlInjectLoader","constructor","let","elements","document","querySelectorAll","i","length","endpoint","getAttribute","callback","this","loadAndReplace","element","self","req","XMLHttpRequest","addEventListener","reqListener","open","send","responseText","replace","replaceWith","createElementFromHTML","performCallback","htmlString","div","createElement","innerHTML","trim","firstChild","window","call"],"mappings":"qBAAqBA,qBACjBC,cAGI,IAFAC,IACIC,EAAWC,SAASC,iBADT,eACkC,EACxCC,EAAI,EAAGA,EAAIH,EAASI,OAAQD,CAAC,GAAI,CACtCJ,IAAIM,EAAWL,EAASG,GAAGG,aAAa,eAAe,EACnDC,EAAWP,EAASG,GAAGG,aAAa,eAAe,EACvDE,KAAKC,eAAeJ,EAAUL,EAASG,GAAII,CAAQ,CACvD,CACJ,CAEAE,eAAeJ,EAAUK,EAASH,GAC9BR,IAAIY,EAAOH,KACX,IAAMI,EAAM,IAAIC,eAChBD,EAAIE,iBAAiB,OAAQ,WACzBH,EAAKI,YAAYP,KAAME,EAASH,CAAQ,CAC5C,CAAC,EACDK,EAAII,KAAK,MAAOX,CAAQ,EACxBO,EAAIK,KAAK,CACb,CAEAF,YAAYH,EAAKF,EAASH,GACuB,IAA1CK,EAAIM,aAAaC,QAAQ,SAAU,EAAE,IACpCT,EAAQU,YAAYZ,KAAKa,sBAAsBT,EAAIM,YAAY,CAAC,EAChEV,KAAKc,gBAAgBf,CAAQ,EAErC,CAEAc,sBAAsBE,GAClBxB,IAAIyB,EAAMvB,SAASwB,cAAc,KAAK,EAEtC,OADAD,EAAIE,UAAYH,EAAWI,KAAK,EACzBH,EAAII,UACf,CAEAN,gBAAgBf,GACY,KAAA,IAAbA,GACwB,YAA5B,OAAOsB,OAAOtB,IACbsB,OAAOtB,GAAUuB,KAAK,CAIlC,CACJ","file":"util-html-inject-loader.min.js","sourcesContent":["export default class UtilHtmlInjectLoader {\r\n constructor() {\r\n let selector = '[data-inject]';\r\n let elements = document.querySelectorAll(selector);\r\n for (var i = 0; i < elements.length; i++) {\r\n let endpoint = elements[i].getAttribute('data-endpoint');\r\n let callback = elements[i].getAttribute('data-callback');\r\n this.loadAndReplace(endpoint, elements[i], callback);\r\n }\r\n }\r\n\r\n loadAndReplace(endpoint, element, callback) {\r\n let self = this;\r\n const req = new XMLHttpRequest();\r\n req.addEventListener(\"load\", function() {\r\n self.reqListener(this, element, callback);\r\n });\r\n req.open(\"GET\", endpoint);\r\n req.send();\r\n }\r\n\r\n reqListener(req, element, callback) {\r\n if(req.responseText.replace(/\\s+/gim, '') != '') {\r\n element.replaceWith(this.createElementFromHTML(req.responseText));\r\n this.performCallback(callback);\r\n }\r\n }\r\n \r\n createElementFromHTML(htmlString) {\r\n let div = document.createElement('div');\r\n div.innerHTML = htmlString.trim();\r\n return div.firstChild;\r\n }\r\n \r\n performCallback(callback) {\r\n if (typeof callback !== 'undefined') {\r\n if(typeof window[callback] === 'function') {\r\n window[callback].call();\r\n return;\r\n }\r\n } \r\n }\r\n}"]}