(function () { var src = new URL (document.currentScript.getAttribute ('src')) var origin = "https://widget.x.cloud.audaris.icu" var clientId = parseInt (src.searchParams.get ('cid'), 10) var useShadowDom = src.searchParams.has ('shadow') ? !!src.searchParams.get ('shadow') : true fetch (origin + '/assets-manifest.json') .then (response => response.json ()) .then (manifest => initWidget (clientId, useShadowDom, manifest.entrypoints.app)) function initWidget (clientId, useShadowDom, entrypoint) { var elem = document.getElementById ('audaris-widget') if (elem.attachShadow && useShadowDom) { var shadow = elem.attachShadow ({ mode: 'open' }) elem = document.createElement ('div') shadow.appendChild (elem) addStyles (shadow, entrypoint.css) } addStyles (document.head, entrypoint.css) var count = entrypoint.js.length addScripts (document.body, entrypoint.js, function () { count -= 1 if (count === 0) { window.AudarisWidget.initShowroom ({ node: elem, clientId: clientId }) } }) } function addStyles (parent, srcs) { for (var i = 0; i < srcs.length; ++i) { addStyle (parent, srcs[i]) } } function addScripts (parent, srcs, callback) { for (var i = 0; i < srcs.length; ++i) { addScript (parent, srcs[i], callback) } } function addScript (parent, src, callback) { var tag = document.createElement ('script') tag.setAttribute ('src', src) tag.setAttribute ('charset', 'utf-8') tag.onload = callback parent.appendChild (tag) } function addStyle (parent, src) { var tag = document.createElement ('link') tag.setAttribute ('rel', 'stylesheet') tag.setAttribute ('type', 'text/css') tag.setAttribute ('href', src) tag.setAttribute ('charset', 'utf-8') parent.appendChild (tag) } }) ()