window.initAi = () => { const n = "difyChatbotConfig" , a = "dify-chatbot-bubble-button" , c = "dify-chatbot-bubble-window" , p = window[n] , h = { open: ` `, close: ` ` }; async function e() { if (p && p.token) { var e = new URLSearchParams(await async function() { var e = p?.inputs || {}; const n = {}; return await Promise.all(Object.entries(e).map(async ([e,t]) => { n[e] = (e = t, e = (new TextEncoder).encode(e), e = new Response(new Blob([e]).stream().pipeThrough(new CompressionStream("gzip"))).arrayBuffer(), e = new Uint8Array(await e), await btoa(String.fromCharCode(...e))) } )), n }()); const i = `${p.baseUrl || `https://${p.isDev ? "dev." : ""}udify.app`}/chatbot/${p.token}?` + e; function o() { var e, t; window.innerWidth <= 640 || (e = document.getElementById(c), t = document.getElementById(a), e && t && ((t = t.getBoundingClientRect()).top - 5 > e.clientHeight ? (e.style.bottom = t.height + 5 + "px", e.style.top = "unset") : (e.style.bottom = "unset", e.style.top = t.height + 5 + "px"), t.right > e.clientWidth ? (e.style.right = "0", e.style.left = "unset") : (e.style.right = "unset", e.style.left = 0))) } function t() { const n = document.createElement("div"); Object.entries(p.containerProps || {}).forEach( ([e,t]) => { "className" === e ? n.classList.add(...t.split(" ")) : "style" === e ? "object" == typeof t ? Object.assign(n.style, t) : n.style.cssText = t : "function" == typeof t ? n.addEventListener(e.replace(/^on/, "").toLowerCase(), t) : n[e] = t } ), n.id = a; var e = document.createElement("style"); document.head.appendChild(e), e.sheet.insertRule(` #${n.id} { position: fixed; bottom: var(--${n.id}-bottom, 1rem); right: var(--${n.id}-right, 1rem); left: var(--${n.id}-left, unset); top: var(--${n.id}-top, unset); width: var(--${n.id}-width, 50px); height: var(--${n.id}-height, 50px); border-radius: var(--${n.id}-border-radius, 25px); background-color: var(--${n.id}-bg-color, #155EEF); box-shadow: var(--${n.id}-box-shadow, rgba(0, 0, 0, 0.2) 0px 4px 8px 0px); cursor: pointer; z-index: 2147483647; } `); const t = document.createElement("div"); if (t.style.cssText = "display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; z-index: 2147483647;", t.innerHTML = h.open, n.appendChild(t), document.body.appendChild(n), n.addEventListener("click", function() { var e = document.getElementById(c); e ? (e.style.display = "none" === e.style.display ? "block" : "none", t.innerHTML = "none" === e.style.display ? h.open : h.close, "none" === e.style.display ? document.removeEventListener("keydown", d) : document.addEventListener("keydown", d), o()) : (n.appendChild(((e = document.createElement("iframe")).allow = "fullscreen;microphone", e.title = "dify chatbot bubble window", e.id = c, e.src = i, e.style.cssText = ` border: none; position: absolute; flex-direction: column; justify-content: space-between; box-shadow: rgba(150, 150, 150, 0.2) 0px 10px 30px 0px, rgba(150, 150, 150, 0.2) 0px 0px 0px 1px; bottom: 55px; right: 0; width: 24rem; max-width: calc(100vw - 2rem); height: 40rem; max-height: calc(100vh - 6rem); border-radius: 0.75rem; display: flex; z-index: 2147483647; overflow: hidden; left: unset; background-color: #F3F4F6;user-select: none; `, e)), o(), this.title = "Exit (ESC)", t.innerHTML = h.close, document.addEventListener("keydown", d)) }), p.draggable) { var s = n; var l = p.dragAxis || "both"; let i = !1, d, r; s.addEventListener("mousedown", function(e) { i = !0, d = e.clientX - s.offsetLeft, r = e.clientY - s.offsetTop }), document.addEventListener("mousemove", function(e) { var t, n, o; i && (s.style.transition = "none", s.style.cursor = "grabbing", (t = document.getElementById(c)) && (t.style.display = "none", s.querySelector("div").innerHTML = h.open), t = e.clientX - d, e = window.innerHeight - e.clientY - r, o = s.getBoundingClientRect(), n = window.innerWidth - o.width, o = window.innerHeight - o.height, "x" !== l && "both" !== l || s.style.setProperty(`--${a}-left`, Math.max(0, Math.min(t, n)) + "px"), "y" !== l && "both" !== l || s.style.setProperty(`--${a}-bottom`, Math.max(0, Math.min(e, o)) + "px")) }), document.addEventListener("mouseup", function() { i = !1, s.style.transition = "", s.style.cursor = "pointer" }) } } 2048 < i.length && console.error("The URL is too long, please reduce the number of inputs to prevent the bot from failing to load"), document.getElementById(a) || t() } else console.error(n + " is empty or token is not provided") } function d(e) { var t; "Escape" === e.key && (e = document.getElementById(c), t = document.getElementById(a), e) && "none" !== e.style.display && (e.style.display = "none", t.querySelector("div").innerHTML = h.open) } document.addEventListener("keydown", d), console.log(p) // p?.dynamicScript ? e() : document.body.onload = e; e(); } ;