(async function (global, doc) { async function loadCustomHtmlFromHablla(obj, type) { const apiResponse = await fetch( `https://htm.hablla.io/api/tag-manager/html/${type}`, { method: "POST", body: JSON.stringify(obj), } ); if (!apiResponse.ok) console.log("????"); else { const script = doc.createElement('script'); script.async = true; script.innerHTML = await apiResponse.text(); doc.body.appendChild(script); } } async function loadAllFromContainer() { try { const apiResponse = await fetch(`https://htm.hablla.io/api/tag-manager/get-all/container/67d99004b14368ab3ec5d35f`); if (!apiResponse.ok) throw new Error("Failed to fetch container data"); const data = await apiResponse.json(); console.log("Container Configurations:", data); let tagFromArray; for(tagFromArray of data.tags) { if (Boolean.valueOf(tagFromArray['is_enabled'])) { if (tagFromArray['configuration']) { tagObj = JSON.parse(tagFromArray['configuration']) switch(tagFromArray['type']) { case 'custom_html': if (tagObj['type']) { await loadCustomHtmlFromHablla(tagObj, tagObj['type']); } break; case 'custom_js': case 'utm_tracking': case 'utm_access': if (tagObj['url']) { const script = doc.createElement('script'); script.async = true; script.src = tagObj['url']; script.setAttribute('data-id', tagFromArray.id); doc.head.appendChild(script); } break; default: console.log("Unsuported tag type: " + tagFromArray['type']); } } } else { console.log('Tag ' + tagFromArray['name'] + ' not loaded.'); } }; } catch (error) { console.error("Error loading tag configurations:", error); } } await loadAllFromContainer(); })(window, document)