@ihoomanai/chat-widget 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +307 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +307 -15
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.umd.js +307 -15
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/widget.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/types.ts +2 -0
- package/src/widget.ts +350 -14
package/dist/index.umd.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).IhoomanChat={})}(this,function(e){"use strict";const n={serverUrl:"https://api.ihooman.ai",theme:"light",position:"bottom-right",title:"Chat Support",subtitle:"We typically reply within minutes",welcomeMessage:"Hi there! 👋 How can we help you today?",placeholder:"Type a message...",primaryColor:"#00aeff",gradientFrom:"#00aeff",gradientTo:"#0066ff",showTimestamps:!0,showTypingIndicator:!0,enableSounds:!0,enableFileUpload:!0,startOpen:!1,persistSession:!0,zIndex:9999,width:380,height:560,buttonSize:60,borderRadius:16,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',avatarUrl:"",poweredBy:!0},t='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>',o='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',i='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>',a='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path></svg>',s='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',r='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>',d='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"></rect><circle cx="12" cy="5" r="2"></circle><path d="M12 7v4"></path></svg>',l='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>',c='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><line x1="10" y1="9" x2="8" y2="9"></line></svg>';let p={widgetId:"",...n},h={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},g={};const m={};let u=null,f=null,b=0;function x(e=""){return e+Math.random().toString(36).slice(2,14)+Date.now().toString(36)}function V(e){const n=document.createElement("div");return n.textContent=e,n.innerHTML}function y(e,n){const t="ihooman_chat_"+e;try{if(void 0===n){const e=localStorage.getItem(t);return e?JSON.parse(e):null}return null===n?(localStorage.removeItem(t),null):(localStorage.setItem(t,JSON.stringify(n)),n)}catch{return null}}function w(e,n){(m[e]||[]).forEach(t=>{try{t(n)}catch(n){console.error(`Error in ${e} event handler:`,n)}});const t=`on${e.charAt(0).toUpperCase()}${e.slice(1)}`,o=p[t];if("function"==typeof o)try{o(n)}catch(e){console.error(`Error in ${t} callback:`,e)}}function v(){const e=document.createElement("style");e.id="ihooman-widget-styles",e.textContent=function(){const{primaryColor:e,gradientFrom:n,gradientTo:t,fontFamily:o,borderRadius:i,zIndex:a,width:s,height:r,buttonSize:d}=p,l="dark"===p.theme,c=l?"#1a1a2e":"#ffffff",h=l?"#e4e4e7":"#1f2937",g=l?"#71717a":"#6b7280",m=l?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",u=l?"#16162a":"#f9fafb",f=`linear-gradient(135deg, ${n}, ${t})`,b=l?"#252542":"#f1f5f9",x=p.position?.includes("right")??!0,V=p.position?.includes("bottom")??!0;return`\n .ihooman-widget * { box-sizing: border-box; margin: 0; padding: 0; }\n .ihooman-widget { font-family: ${o}; font-size: 14px; line-height: 1.5; color: ${h}; -webkit-font-smoothing: antialiased; }\n .ihooman-toggle { position: fixed; ${x?"right: 20px":"left: 20px"}; ${V?"bottom: 20px":"top: 20px"}; width: ${d}px; height: ${d}px; border-radius: 50%; background: linear-gradient(135deg, ${n}, ${t}); border: none; cursor: pointer; z-index: ${a}; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 20px rgba(0, 174, 255, 0.35); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; }\n .ihooman-toggle:hover { transform: scale(1.08); box-shadow: 0 6px 28px rgba(0, 174, 255, 0.45); }\n .ihooman-toggle:active { transform: scale(0.95); }\n .ihooman-toggle::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(255,255,255,0.2), transparent); border-radius: 50%; }\n .ihooman-toggle svg { width: 26px; height: 26px; color: white; transition: transform 0.3s ease, opacity 0.2s ease; position: relative; z-index: 1; }\n .ihooman-toggle.open svg.chat-icon { transform: rotate(90deg) scale(0); opacity: 0; }\n .ihooman-toggle.open svg.close-icon { transform: rotate(0) scale(1); opacity: 1; }\n .ihooman-toggle svg.close-icon { position: absolute; transform: rotate(-90deg) scale(0); opacity: 0; }\n .ihooman-pulse { position: absolute; inset: 0; border-radius: 50%; background: ${e}; animation: ihooman-pulse 2s ease-out infinite; }\n @keyframes ihooman-pulse { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.6); opacity: 0; } }\n .ihooman-toggle.open .ihooman-pulse { display: none; }\n .ihooman-badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 6px; background: #ef4444; color: white; font-size: 11px; font-weight: 600; border-radius: 10px; display: flex; align-items: center; justify-content: center; z-index: 2; }\n .ihooman-badge:empty { display: none; }\n .ihooman-window { position: fixed; ${x?"right: 20px":"left: 20px"}; ${V?"bottom: 90px":"top: 90px"}; width: ${s}px; height: ${r}px; max-height: calc(100vh - 120px); z-index: ${(a??9999)-1}; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(20px) scale(0.95); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }\n .ihooman-window.open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }\n .ihooman-container { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; border-radius: ${i}px; overflow: hidden; }\n .ihooman-container::before { content: ''; position: absolute; inset: 0; background: ${c}; opacity: 0.97; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: ${i}px; border: 1px solid ${m}; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }\n .ihooman-container > * { position: relative; z-index: 1; }\n .ihooman-header { padding: 16px 20px; background: linear-gradient(135deg, ${n}, ${t}); color: white; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }\n .ihooman-header-avatar { width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n .ihooman-header-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }\n .ihooman-header-avatar svg { width: 22px; height: 22px; }\n .ihooman-header-info { flex: 1; min-width: 0; }\n .ihooman-header-title { font-size: 16px; font-weight: 600; margin-bottom: 2px; }\n .ihooman-header-status { display: flex; align-items: center; gap: 6px; font-size: 12px; opacity: 0.9; }\n .ihooman-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; }\n .ihooman-status-dot.offline { background: #f59e0b; }\n .ihooman-header-actions { display: flex; gap: 8px; }\n .ihooman-header-btn { width: 32px; height: 32px; border-radius: 8px; background: rgba(255,255,255,0.15); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: white; transition: background 0.2s; }\n .ihooman-header-btn:hover { background: rgba(255,255,255,0.25); }\n .ihooman-header-btn svg { width: 16px; height: 16px; }\n .ihooman-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; background: ${c}; }\n .ihooman-messages::-webkit-scrollbar { width: 6px; }\n .ihooman-messages::-webkit-scrollbar-track { background: transparent; }\n .ihooman-messages::-webkit-scrollbar-thumb { background: ${m}; border-radius: 3px; }\n .ihooman-message { display: flex; flex-direction: column; max-width: 85%; animation: ihooman-fadeIn 0.3s ease; }\n @keyframes ihooman-fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n .ihooman-message.user { align-self: flex-end; align-items: flex-end; }\n .ihooman-message.bot { align-self: flex-start; align-items: flex-start; }\n .ihooman-message-content { padding: 12px 16px; border-radius: 16px; word-wrap: break-word; }\n .ihooman-message.user .ihooman-message-content { background: ${f}; color: white; border-bottom-right-radius: 4px; }\n .ihooman-message.bot .ihooman-message-content { background: ${b}; color: ${h}; border-bottom-left-radius: 4px; }\n .ihooman-message-content code { background: rgba(0,0,0,0.1); padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 13px; }\n .ihooman-message-time { font-size: 11px; color: ${g}; margin-top: 4px; padding: 0 4px; }\n .ihooman-typing { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: ${b}; border-radius: 16px; border-bottom-left-radius: 4px; max-width: 80px; align-self: flex-start; }\n .ihooman-typing-dots { display: flex; gap: 4px; }\n .ihooman-typing-dot { width: 8px; height: 8px; background: ${g}; border-radius: 50%; animation: ihooman-typing 1.4s infinite; }\n .ihooman-typing-dot:nth-child(2) { animation-delay: 0.2s; }\n .ihooman-typing-dot:nth-child(3) { animation-delay: 0.4s; }\n @keyframes ihooman-typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } 30% { transform: translateY(-4px); opacity: 1; } }\n .ihooman-input-area { padding: 12px 16px; background: ${c}; border-top: 1px solid ${m}; flex-shrink: 0; }\n .ihooman-input-wrapper { display: flex; align-items: flex-end; gap: 8px; background: ${u}; border: 1px solid ${m}; border-radius: 12px; padding: 8px 12px; transition: border-color 0.2s, box-shadow 0.2s; }\n .ihooman-input-wrapper:focus-within { border-color: ${e}; box-shadow: 0 0 0 3px rgba(0, 174, 255, 0.1); }\n .ihooman-input { flex: 1; border: none; background: transparent; font-family: inherit; font-size: 14px; color: ${h}; resize: none; max-height: 100px; outline: none; line-height: 1.4; }\n .ihooman-input::placeholder { color: ${g}; }\n .ihooman-input-btn { width: 36px; height: 36px; border-radius: 10px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; background: transparent; color: ${g}; }\n .ihooman-input-btn:hover { background: ${m}; color: ${h}; }\n .ihooman-input-btn.send { background: linear-gradient(135deg, ${n}, ${t}); color: white; }\n .ihooman-input-btn.send:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }\n .ihooman-input-btn.send:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }\n .ihooman-input-btn svg { width: 18px; height: 18px; }\n .ihooman-file-input { display: none; }\n .ihooman-powered { text-align: center; padding: 8px; font-size: 11px; color: ${g}; background: ${c}; }\n .ihooman-powered a { color: ${e}; text-decoration: none; }\n .ihooman-error { padding: 16px; text-align: center; color: #ef4444; background: ${c}; }\n .ihooman-escalation-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }\n .ihooman-escalation-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 8px; border: none; cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 500; transition: all 0.2s ease; }\n .ihooman-escalation-btn svg { width: 16px; height: 16px; }\n .ihooman-escalation-btn.primary { background: linear-gradient(135deg, ${n}, ${t}); color: white; }\n .ihooman-escalation-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }\n .ihooman-escalation-btn.secondary { background: ${l?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.05)"}; color: ${h}; border: 1px solid ${m}; }\n .ihooman-escalation-btn.secondary:hover { background: ${l?"rgba(255,255,255,0.15)":"rgba(0,0,0,0.08)"}; }\n .ihooman-escalation-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }\n @media (max-width: 480px) { .ihooman-window { width: calc(100vw - 20px); height: calc(100vh - 100px); left: 10px; right: 10px; bottom: 80px; max-height: none; } .ihooman-toggle { ${x?"right: 16px":"left: 16px"}; bottom: 16px; } }\n `}(),document.head.appendChild(e);const n=document.createElement("div");n.className="ihooman-widget",n.innerHTML=`\n <button class="ihooman-toggle" aria-label="Open chat">\n <span class="ihooman-pulse"></span>\n <span class="ihooman-badge"></span>\n <span class="chat-icon">${t}</span>\n <span class="close-icon">${o}</span>\n </button>\n <div class="ihooman-window" role="dialog" aria-label="Chat window">\n <div class="ihooman-container">\n <div class="ihooman-header">\n <div class="ihooman-header-avatar">${p.avatarUrl?`<img src="${V(p.avatarUrl)}" alt="Support">`:d}</div>\n <div class="ihooman-header-info">\n <div class="ihooman-header-title">${V(p.title||"Chat Support")}</div>\n <div class="ihooman-header-status"><span class="ihooman-status-dot"></span><span class="ihooman-status-text">Online</span></div>\n </div>\n <div class="ihooman-header-actions">\n <button class="ihooman-header-btn" data-action="refresh" title="New conversation">${r}</button>\n <button class="ihooman-header-btn" data-action="minimize" title="Minimize">${s}</button>\n </div>\n </div>\n <div class="ihooman-messages" role="log" aria-live="polite"></div>\n <div class="ihooman-input-area">\n <div class="ihooman-input-wrapper">\n ${p.enableFileUpload?`<button class="ihooman-input-btn attach" title="Attach file">${a}</button><input type="file" class="ihooman-file-input">`:""}\n <textarea class="ihooman-input" placeholder="${V(p.placeholder||"Type a message...")}" rows="1" aria-label="Message input"></textarea>\n <button class="ihooman-input-btn send" title="Send message" disabled>${i}</button>\n </div>\n </div>\n ${p.poweredBy?'<div class="ihooman-powered">Powered by <a href="https://ihooman.ai" target="_blank" rel="noopener">Ihooman AI</a></div>':""}\n </div>\n </div>\n `,document.body.appendChild(n),g={widget:n,toggle:n.querySelector(".ihooman-toggle"),badge:n.querySelector(".ihooman-badge"),window:n.querySelector(".ihooman-window"),messages:n.querySelector(".ihooman-messages"),input:n.querySelector(".ihooman-input"),sendBtn:n.querySelector(".ihooman-input-btn.send"),attachBtn:n.querySelector(".ihooman-input-btn.attach"),fileInput:n.querySelector(".ihooman-file-input"),statusDot:n.querySelector(".ihooman-status-dot"),statusText:n.querySelector(".ihooman-status-text")},function(){if(!g.toggle||!g.sendBtn||!g.input)return;g.toggle.addEventListener("click",L),g.sendBtn.addEventListener("click",I),g.input.addEventListener("input",()=>{g.sendBtn&&(g.sendBtn.disabled=!g.input?.value.trim()),g.input&&(g.input.style.height="auto",g.input.style.height=Math.min(g.input.scrollHeight,100)+"px")}),g.input.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),g.sendBtn?.disabled||I())}),g.attachBtn&&g.fileInput&&(g.attachBtn.addEventListener("click",()=>g.fileInput?.click()),g.fileInput.addEventListener("change",T));g.widget?.querySelector('[data-action="refresh"]')?.addEventListener("click",O),g.widget?.querySelector('[data-action="minimize"]')?.addEventListener("click",z)}()}function A(e,n="bot",t={}){const o={id:x("msg_"),content:e,sender:n,timestamp:new Date,metadata:t};if(h.messages.push(o),!g.messages)return o;const i=document.createElement("div");i.className=`ihooman-message ${n}`;const a="bot"===n&&!0===t?.escalation_offered;let s="";var r,d;if(a&&(s=`\n <div class="ihooman-escalation-actions">\n <button class="ihooman-escalation-btn primary" data-action="live-agent">\n ${l}\n <span>Talk to Agent</span>\n </button>\n <button class="ihooman-escalation-btn secondary" data-action="create-ticket">\n ${c}\n <span>Create Ticket</span>\n </button>\n </div>\n `),i.innerHTML=`\n <div class="ihooman-message-content">${d=e,d?V(d).replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\n/g,"<br>"):""}</div>\n ${s}\n ${p.showTimestamps?`<div class="ihooman-message-time">${r=o.timestamp,new Date(r).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}</div>`:""}\n `,a){const e=i.querySelector('[data-action="live-agent"]'),n=i.querySelector('[data-action="create-ticket"]');e&&e.addEventListener("click",()=>k("live-agent")),n&&n.addEventListener("click",()=>k("create-ticket"))}const m=g.messages.querySelector(".ihooman-typing");return m&&m.remove(),g.messages.appendChild(i),g.messages.scrollTop=g.messages.scrollHeight,"bot"!==n||h.isOpen||(h.unreadCount++,g.badge&&(g.badge.textContent=String(h.unreadCount)),p.enableSounds&&function(){try{const e=new Audio("data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAAA//tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAABhgC7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7//////////////////////////////////////////////////////////////////8AAAAATGF2YzU4LjEzAAAAAAAAAAAAAAAAJAAAAAAAAAAAAYYNBrP/AAAAAAAAAAAAAAAAAAAAAP/7UMQAA8AAAaQAAAAgAAA0gAAABExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tQxBKDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=");e.volume=.3,e.play().catch(()=>{})}catch{}}()),w("message",o),o}function k(e){document.querySelectorAll(".ihooman-escalation-btn").forEach(e=>e.disabled=!0),"live-agent"===e?(A("Connect me with a live agent","user"),$(),C("Connect me with a live agent")):"create-ticket"===e&&(A("I would like to create a support ticket","user"),$(),C("I would like to create a support ticket"))}function $(){if(!p.showTypingIndicator||!g.messages)return;if(g.messages.querySelector(".ihooman-typing"))return;const e=document.createElement("div");e.className="ihooman-typing",e.innerHTML='<div class="ihooman-typing-dots"><span class="ihooman-typing-dot"></span><span class="ihooman-typing-dot"></span><span class="ihooman-typing-dot"></span></div>',g.messages.appendChild(e),g.messages.scrollTop=g.messages.scrollHeight}function S(){const e=g.messages?.querySelector(".ihooman-typing");e&&e.remove()}function I(){const e=g.input?.value.trim();e&&(g.input&&(g.input.value="",g.input.style.height="auto"),g.sendBtn&&(g.sendBtn.disabled=!0),A(e,"user"),$(),C(e))}async function C(e){if(u&&u.readyState===WebSocket.OPEN)u.send(JSON.stringify({type:"message",content:e}));else try{const n=await fetch(`${p.serverUrl}/api/v1/public/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,session_id:h.sessionId,visitor_id:h.visitorId,widget_id:p.widgetId})}),t=await n.json();S(),t.session_id&&(h.sessionId=t.session_id,p.persistSession&&y("session_id",h.sessionId)),t.response&&A(t.response,"bot",{sources:t.sources,confidence:t.confidence})}catch(e){S(),A("Sorry, something went wrong. Please try again.","bot"),w("error",e)}}function T(e){const n=e.target,t=n.files?.[0];if(!t)return;A(`📎 Uploading: ${t.name}...`,"user"),$();const o=new FormData;o.append("file",t),o.append("session_id",h.sessionId||""),o.append("visitor_id",h.visitorId||""),o.append("widget_id",p.widgetId),fetch(`${p.serverUrl}/api/upload`,{method:"POST",body:o}).then(e=>e.json()).then(e=>{S(),e.message&&A(e.message,"bot")}).catch(()=>{S(),A("Failed to upload file.","bot")}),n.value=""}function _(e){if(!p.serverUrl&&!e)return;let n;if(p.widgetId){const e=p.serverUrl?.replace(/^http/,"ws"),t=new URLSearchParams({widget_id:p.widgetId});h.visitorId&&t.append("visitor_id",h.visitorId),h.sessionId&&t.append("session_id",h.sessionId),n=`${e}/public/ws?${t.toString()}`}else n=e||p.serverUrl?.replace(/^http/,"ws")+"/ws";try{u=new WebSocket(n),u.onopen=()=>{h.isConnected=!0,b=0,E(!0),w("connected")},u.onclose=()=>{if(h.isConnected=!1,E(!1),w("disconnected"),b<5){b++;const n=Math.min(1e3*Math.pow(2,b),3e4);setTimeout(()=>_(e),n)}else console.warn("WebSocket reconnection failed, falling back to polling"),B()},u.onerror=e=>{console.error("WebSocket error:",e)},u.onmessage=e=>{try{const n=JSON.parse(e.data);if("connected"===n.type)n.session_id&&(h.sessionId=n.session_id,p.persistSession&&y("session_id",h.sessionId)),n.visitor_id&&(h.visitorId=n.visitor_id,p.persistSession&&y("visitor_id",h.visitorId)),n.welcome_message&&0===h.messages.length&&A(n.welcome_message,"bot");else if("message"===n.type){S();const e="user"===n.sender?"user":"bot";A(n.content,e,{confidence:n.confidence,agent_name:n.agent_name,escalation_offered:n.escalation_offered,escalated:n.escalated})}else"typing"===n.type?n.is_typing?$():S():"pong"===n.type||"error"===n.type&&(console.error("WebSocket server error:",n.message),w("error",{message:n.message}))}catch{}},function(){if(U)return;U=setInterval(()=>{u&&u.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"ping"}))},3e4)}()}catch{console.warn("WebSocket not supported, using polling"),B()}}let U=null;function B(){f||(f=setInterval(async()=>{if(h.sessionId)try{const e=await fetch(`${p.serverUrl}/api/messages?session_id=${h.sessionId}&since=${Date.now()-5e3}&widget_id=${p.widgetId}`),n=await e.json();n.messages&&n.messages.forEach(e=>{h.messages.find(n=>n.id===e.id)||A(e.content,e.sender_type,e.metadata)})}catch{}},5e3))}function E(e){g.statusDot&&g.statusDot.classList.toggle("offline",!e),g.statusText&&(g.statusText.textContent=e?"Online":"Offline")}function M(){h.isOpen||(h.isOpen=!0,h.unreadCount=0,g.badge&&(g.badge.textContent=""),g.toggle&&g.toggle.classList.add("open"),g.window&&g.window.classList.add("open"),setTimeout(()=>g.input?.focus(),300),w("open"))}function z(){h.isOpen&&(h.isOpen=!1,g.toggle&&g.toggle.classList.remove("open"),g.window&&g.window.classList.remove("open"),w("close"))}function L(){h.isOpen?z():M()}function O(){h.sessionId=null,h.messages=[],y("session_id",null),g.messages&&(g.messages.innerHTML=""),p.welcomeMessage&&A(p.welcomeMessage,"bot")}async function F(e){if(!e.widgetId)return console.error("IhoomanChat: widgetId is required"),null;p={...n,...e},h.visitorId=y("visitor_id")||x("v_"),y("visitor_id",h.visitorId),p.persistSession&&(h.sessionId=y("session_id"));const t=p.serverUrl||"https://api.ihooman.ai",o=await async function(e,n){try{const t=await fetch(`${n}/api/widget/config?widget_id=${encodeURIComponent(e)}`);return t.ok?await t.json():{success:!1,error:(await t.json().catch(()=>({}))).error||`HTTP ${t.status}`}}catch(e){return{success:!1,error:"Unable to connect. Please check your internet connection."}}}(p.widgetId,t);let i;var a;return o.success&&o.config?(a=o.config,p.title=a.title||p.title,p.subtitle=a.subtitle||p.subtitle,p.welcomeMessage=a.welcomeMessage||p.welcomeMessage,p.placeholder=a.placeholder||p.placeholder,p.position=a.position||p.position,a.theme&&(p.primaryColor=a.theme.primaryColor||p.primaryColor,p.gradientFrom=a.theme.gradientFrom||p.gradientFrom,p.gradientTo=a.theme.gradientTo||p.gradientTo,p.fontFamily=a.theme.fontFamily||p.fontFamily,a.theme.borderRadius&&(p.borderRadius=parseInt(a.theme.borderRadius,10)||p.borderRadius)),a.behavior&&(p.startOpen=a.behavior.startOpen??p.startOpen,p.showTypingIndicator=a.behavior.showTypingIndicator??p.showTypingIndicator,p.showTimestamps=a.behavior.showTimestamps??p.showTimestamps,p.enableSounds=a.behavior.enableSounds??p.enableSounds,p.enableFileUpload=a.behavior.enableFileUpload??p.enableFileUpload,p.persistSession=a.behavior.persistSession??p.persistSession),a.branding&&(p.avatarUrl=a.branding.avatarUrl||p.avatarUrl,p.poweredBy=a.branding.poweredBy??p.poweredBy),i=o.chatEndpoint):o.error&&(console.warn("IhoomanChat: Could not fetch server config:",o.error),"Widget not authorized for this domain"===o.error&&console.error("IhoomanChat: Widget configuration error. Please contact support.")),v(),h.messages.forEach(e=>A(e.content,e.sender,e.metadata)),0===h.messages.length&&p.welcomeMessage&&A(p.welcomeMessage,"bot"),_(i),p.startOpen&&setTimeout(M,500),w("ready"),j}const j={init:F,open:M,close:z,toggle:L,destroy:function(){U&&(clearInterval(U),U=null),u&&(u.close(),u=null),f&&(clearInterval(f),f=null),g.widget&&g.widget.remove();const e=document.getElementById("ihooman-widget-styles");e&&e.remove(),h={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},g={},b=0},sendMessage:function(e){e.trim()&&(g.input&&(g.input.value=e),I())},setUser:function(e){e.name&&y("user_name",e.name),e.email&&y("user_email",e.email),e.metadata&&y("user_metadata",e.metadata)},clearHistory:function(){O()},on:function(e,n){m[e]||(m[e]=[]),m[e].push(n)},off:function(e,n){m[e]&&(m[e]=m[e].filter(e=>e!==n))},getState:function(){return{...h}},version:"2.0.0"},q=j;!function(){if("undefined"==typeof document)return;let e=document.currentScript;if(!e){const n=document.getElementsByTagName("script");for(let t=0;t<n.length;t++)if(n[t].src&&n[t].src.includes("ihooman")){e=n[t];break}}if(!e)return;const n=e.getAttribute("data-widget-id");if(n){const t={widgetId:n},o=e.getAttribute("data-server-url");o&&(t.serverUrl=o);const i=e.getAttribute("data-theme");"light"!==i&&"dark"!==i||(t.theme=i);const a=e.getAttribute("data-position");a&&(t.position=a);"true"===e.getAttribute("data-start-open")&&(t.startOpen=!0),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>F(t)):F(t)}}(),"undefined"!=typeof window&&(window.IhoomanChat=q),e.IhoomanChat=q,e.createWidgetInstance=function(){return{...j}},e.default=q,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).IhoomanChat={})}(this,function(e){"use strict";const t={serverUrl:"https://api.ihooman.ai",theme:"light",position:"bottom-right",title:"Chat Support",subtitle:"We typically reply within minutes",welcomeMessage:"Hi there! 👋 How can we help you today?",placeholder:"Type a message...",primaryColor:"#00aeff",gradientFrom:"#00aeff",gradientTo:"#0066ff",showTimestamps:!0,showTypingIndicator:!0,enableSounds:!0,enableFileUpload:!0,startOpen:!1,persistSession:!0,zIndex:9999,width:380,height:560,buttonSize:60,borderRadius:16,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',avatarUrl:"",poweredBy:!0},n='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>',o='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',i='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>',a='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path></svg>',s='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',r='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>',c='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"></rect><circle cx="12" cy="5" r="2"></circle><path d="M12 7v4"></path></svg>',l='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>',d='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><line x1="10" y1="9" x2="8" y2="9"></line></svg>';let p={widgetId:"",...t},u={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},h=!1,m={};const g={};let b=null,f=null,x=0;function v(e=""){return e+Math.random().toString(36).slice(2,14)+Date.now().toString(36)}function y(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function w(e,t){const n="ihooman_chat_"+e;try{if(void 0===t){const e=localStorage.getItem(n);return e?JSON.parse(e):null}return null===t?(localStorage.removeItem(n),null):(localStorage.setItem(n,JSON.stringify(t)),t)}catch{return null}}function V(e,t){(g[e]||[]).forEach(n=>{try{n(t)}catch(t){console.error(`Error in ${e} event handler:`,t)}});const n=`on${e.charAt(0).toUpperCase()}${e.slice(1)}`,o=p[n];if("function"==typeof o)try{o(t)}catch(e){console.error(`Error in ${n} callback:`,e)}}function k(){const e=document.createElement("style");e.id="ihooman-widget-styles",e.textContent=function(){const{primaryColor:e,gradientFrom:t,gradientTo:n,fontFamily:o,borderRadius:i,zIndex:a,width:s,height:r,buttonSize:c}=p,l="dark"===p.theme,d=l?"#1a1a2e":"#ffffff",u=l?"#e4e4e7":"#1f2937",h=l?"#71717a":"#6b7280",m=l?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",g=l?"#16162a":"#f9fafb",b=`linear-gradient(135deg, ${t}, ${n})`,f=l?"#252542":"#f1f5f9",x=p.position?.includes("right")??!0,v=p.position?.includes("bottom")??!0;return`\n .ihooman-widget * { box-sizing: border-box; margin: 0; padding: 0; }\n .ihooman-widget { font-family: ${o}; font-size: 14px; line-height: 1.5; color: ${u}; -webkit-font-smoothing: antialiased; }\n .ihooman-toggle { position: fixed; ${x?"right: 20px":"left: 20px"}; ${v?"bottom: 20px":"top: 20px"}; width: ${c}px; height: ${c}px; border-radius: 50%; background: linear-gradient(135deg, ${t}, ${n}); border: none; cursor: pointer; z-index: ${a}; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 20px rgba(0, 174, 255, 0.35); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; }\n .ihooman-toggle:hover { transform: scale(1.08); box-shadow: 0 6px 28px rgba(0, 174, 255, 0.45); }\n .ihooman-toggle:active { transform: scale(0.95); }\n .ihooman-toggle::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(255,255,255,0.2), transparent); border-radius: 50%; }\n .ihooman-toggle svg { width: 26px; height: 26px; color: white; transition: transform 0.3s ease, opacity 0.2s ease; position: relative; z-index: 1; }\n .ihooman-toggle.open svg.chat-icon { transform: rotate(90deg) scale(0); opacity: 0; }\n .ihooman-toggle.open svg.close-icon { transform: rotate(0) scale(1); opacity: 1; }\n .ihooman-toggle svg.close-icon { position: absolute; transform: rotate(-90deg) scale(0); opacity: 0; }\n .ihooman-pulse { position: absolute; inset: 0; border-radius: 50%; background: ${e}; animation: ihooman-pulse 2s ease-out infinite; }\n @keyframes ihooman-pulse { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.6); opacity: 0; } }\n .ihooman-toggle.open .ihooman-pulse { display: none; }\n .ihooman-badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 6px; background: #ef4444; color: white; font-size: 11px; font-weight: 600; border-radius: 10px; display: flex; align-items: center; justify-content: center; z-index: 2; }\n .ihooman-badge:empty { display: none; }\n .ihooman-window { position: fixed; ${x?"right: 20px":"left: 20px"}; ${v?"bottom: 90px":"top: 90px"}; width: ${s}px; height: ${r}px; max-height: calc(100vh - 120px); z-index: ${(a??9999)-1}; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(20px) scale(0.95); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }\n .ihooman-window.open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }\n .ihooman-container { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; border-radius: ${i}px; overflow: hidden; }\n .ihooman-container::before { content: ''; position: absolute; inset: 0; background: ${d}; opacity: 0.97; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: ${i}px; border: 1px solid ${m}; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }\n .ihooman-container > * { position: relative; z-index: 1; }\n .ihooman-header { padding: 16px 20px; background: linear-gradient(135deg, ${t}, ${n}); color: white; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }\n .ihooman-header-avatar { width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n .ihooman-header-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }\n .ihooman-header-avatar svg { width: 22px; height: 22px; }\n .ihooman-header-info { flex: 1; min-width: 0; }\n .ihooman-header-title { font-size: 16px; font-weight: 600; margin-bottom: 2px; }\n .ihooman-header-status { display: flex; align-items: center; gap: 6px; font-size: 12px; opacity: 0.9; }\n .ihooman-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; }\n .ihooman-status-dot.offline { background: #f59e0b; }\n .ihooman-header-actions { display: flex; gap: 8px; }\n .ihooman-header-btn { width: 32px; height: 32px; border-radius: 8px; background: rgba(255,255,255,0.15); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: white; transition: background 0.2s; }\n .ihooman-header-btn:hover { background: rgba(255,255,255,0.25); }\n .ihooman-header-btn svg { width: 16px; height: 16px; }\n .ihooman-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; background: ${d}; }\n .ihooman-messages::-webkit-scrollbar { width: 6px; }\n .ihooman-messages::-webkit-scrollbar-track { background: transparent; }\n .ihooman-messages::-webkit-scrollbar-thumb { background: ${m}; border-radius: 3px; }\n .ihooman-message { display: flex; flex-direction: column; max-width: 85%; animation: ihooman-fadeIn 0.3s ease; }\n @keyframes ihooman-fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n .ihooman-message.user { align-self: flex-end; align-items: flex-end; }\n .ihooman-message.bot { align-self: flex-start; align-items: flex-start; }\n .ihooman-message-content { padding: 12px 16px; border-radius: 16px; word-wrap: break-word; }\n .ihooman-message.user .ihooman-message-content { background: ${b}; color: white; border-bottom-right-radius: 4px; }\n .ihooman-message.bot .ihooman-message-content { background: ${f}; color: ${u}; border-bottom-left-radius: 4px; }\n .ihooman-message-content code { background: rgba(0,0,0,0.1); padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 13px; }\n .ihooman-message-time { font-size: 11px; color: ${h}; margin-top: 4px; padding: 0 4px; }\n .ihooman-typing { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: ${f}; border-radius: 16px; border-bottom-left-radius: 4px; max-width: 80px; align-self: flex-start; }\n .ihooman-typing-dots { display: flex; gap: 4px; }\n .ihooman-typing-dot { width: 8px; height: 8px; background: ${h}; border-radius: 50%; animation: ihooman-typing 1.4s infinite; }\n .ihooman-typing-dot:nth-child(2) { animation-delay: 0.2s; }\n .ihooman-typing-dot:nth-child(3) { animation-delay: 0.4s; }\n @keyframes ihooman-typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } 30% { transform: translateY(-4px); opacity: 1; } }\n .ihooman-input-area { padding: 12px 16px; background: ${d}; border-top: 1px solid ${m}; flex-shrink: 0; }\n .ihooman-input-wrapper { display: flex; align-items: flex-end; gap: 8px; background: ${g}; border: 1px solid ${m}; border-radius: 12px; padding: 8px 12px; transition: border-color 0.2s, box-shadow 0.2s; }\n .ihooman-input-wrapper:focus-within { border-color: ${e}; box-shadow: 0 0 0 3px rgba(0, 174, 255, 0.1); }\n .ihooman-input { flex: 1; border: none; background: transparent; font-family: inherit; font-size: 14px; color: ${u}; resize: none; max-height: 100px; outline: none; line-height: 1.4; }\n .ihooman-input::placeholder { color: ${h}; }\n .ihooman-input-btn { width: 36px; height: 36px; border-radius: 10px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; background: transparent; color: ${h}; }\n .ihooman-input-btn:hover { background: ${m}; color: ${u}; }\n .ihooman-input-btn.send { background: linear-gradient(135deg, ${t}, ${n}); color: white; }\n .ihooman-input-btn.send:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }\n .ihooman-input-btn.send:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }\n .ihooman-input-btn svg { width: 18px; height: 18px; }\n .ihooman-file-input { display: none; }\n .ihooman-powered { text-align: center; padding: 8px; font-size: 11px; color: ${h}; background: ${d}; }\n .ihooman-powered a { color: ${e}; text-decoration: none; }\n .ihooman-error { padding: 16px; text-align: center; color: #ef4444; background: ${d}; }\n .ihooman-escalation-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }\n .ihooman-escalation-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 8px; border: none; cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 500; transition: all 0.2s ease; }\n .ihooman-escalation-btn svg { width: 16px; height: 16px; }\n .ihooman-escalation-btn.primary { background: linear-gradient(135deg, ${t}, ${n}); color: white; }\n .ihooman-escalation-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }\n .ihooman-escalation-btn.secondary { background: ${l?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.05)"}; color: ${u}; border: 1px solid ${m}; }\n .ihooman-escalation-btn.secondary:hover { background: ${l?"rgba(255,255,255,0.15)":"rgba(0,0,0,0.08)"}; }\n .ihooman-escalation-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }\n .ihooman-status-bar { padding: 10px 16px; text-align: center; font-size: 13px; display: none; }\n .ihooman-status-bar.show { display: block; }\n .ihooman-status-bar.waiting { background: #fef3c7; color: #92400e; }\n .ihooman-status-bar.connected { background: #dcfce7; color: #166534; }\n .ihooman-chat-view { display: flex; flex-direction: column; flex: 1; overflow: hidden; }\n .ihooman-chat-view.hidden { display: none; }\n .ihooman-ticket-view { display: none; flex-direction: column; padding: 20px; gap: 16px; background: ${d}; flex: 1; overflow-y: auto; }\n .ihooman-ticket-view.show { display: flex; }\n .ihooman-ticket-title { font-size: 18px; font-weight: 600; color: ${u}; margin: 0; display: flex; align-items: center; gap: 8px; }\n .ihooman-ticket-subtitle { font-size: 13px; color: ${h}; margin: 0; }\n .ihooman-ticket-input { padding: 12px 14px; border: 1px solid ${m}; border-radius: 10px; font-size: 14px; font-family: inherit; background: ${g}; color: ${u}; outline: none; transition: border-color 0.2s; }\n .ihooman-ticket-input:focus { border-color: ${e}; }\n .ihooman-ticket-input::placeholder { color: ${h}; }\n .ihooman-ticket-textarea { min-height: 100px; resize: vertical; }\n .ihooman-ticket-submit { padding: 14px; background: linear-gradient(135deg, ${t}, ${n}); color: white; border: none; border-radius: 10px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s; }\n .ihooman-ticket-submit:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }\n .ihooman-ticket-submit:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }\n .ihooman-ticket-back { padding: 10px; background: transparent; color: ${h}; border: 1px solid ${m}; border-radius: 10px; font-size: 13px; cursor: pointer; transition: all 0.2s; }\n .ihooman-ticket-back:hover { background: ${l?"rgba(255,255,255,0.05)":"rgba(0,0,0,0.03)"}; }\n .ihooman-action-buttons { display: flex; gap: 8px; padding: 0 16px 12px; }\n .ihooman-action-btn { flex: 1; padding: 10px; border: none; border-radius: 8px; font-size: 13px; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; transition: all 0.2s; }\n .ihooman-action-btn svg { width: 16px; height: 16px; }\n .ihooman-action-btn.ticket { background: #6366f1; color: white; }\n .ihooman-action-btn.ticket:hover { background: #4f46e5; }\n .ihooman-action-btn.live { background: #10b981; color: white; }\n .ihooman-action-btn.live:hover { background: #059669; }\n .ihooman-action-btn:disabled { opacity: 0.5; cursor: not-allowed; }\n @media (max-width: 480px) { .ihooman-window { width: calc(100vw - 20px); height: calc(100vh - 100px); left: 10px; right: 10px; bottom: 80px; max-height: none; } .ihooman-toggle { ${x?"right: 16px":"left: 16px"}; bottom: 16px; } }\n `}(),document.head.appendChild(e);const t=document.createElement("div");t.className="ihooman-widget",t.innerHTML=`\n <button class="ihooman-toggle" aria-label="Open chat">\n <span class="ihooman-pulse"></span>\n <span class="ihooman-badge"></span>\n <span class="chat-icon">${n}</span>\n <span class="close-icon">${o}</span>\n </button>\n <div class="ihooman-window" role="dialog" aria-label="Chat window">\n <div class="ihooman-container">\n <div class="ihooman-header">\n <div class="ihooman-header-avatar">${p.avatarUrl?`<img src="${y(p.avatarUrl)}" alt="Support">`:c}</div>\n <div class="ihooman-header-info">\n <div class="ihooman-header-title">${y(p.title||"Chat Support")}</div>\n <div class="ihooman-header-status"><span class="ihooman-status-dot"></span><span class="ihooman-status-text">Online</span></div>\n </div>\n <div class="ihooman-header-actions">\n <button class="ihooman-header-btn" data-action="refresh" title="New conversation">${r}</button>\n <button class="ihooman-header-btn" data-action="minimize" title="Minimize">${s}</button>\n </div>\n </div>\n \n \x3c!-- Chat View --\x3e\n <div class="ihooman-chat-view">\n <div class="ihooman-status-bar"></div>\n <div class="ihooman-messages" role="log" aria-live="polite"></div>\n <div class="ihooman-action-buttons">\n <button class="ihooman-action-btn ticket" data-action="show-ticket">\n <svg viewBox="0 0 24 24" fill="currentColor"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg>\n Submit Ticket\n </button>\n <button class="ihooman-action-btn live" data-action="live-agent">\n <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>\n Live Agent\n </button>\n </div>\n <div class="ihooman-input-area">\n <div class="ihooman-input-wrapper">\n ${p.enableFileUpload?`<button class="ihooman-input-btn attach" title="Attach file">${a}</button><input type="file" class="ihooman-file-input">`:""}\n <textarea class="ihooman-input" placeholder="${y(p.placeholder||"Type a message...")}" rows="1" aria-label="Message input"></textarea>\n <button class="ihooman-input-btn send" title="Send message" disabled>${i}</button>\n </div>\n </div>\n </div>\n \n \x3c!-- Ticket Form View --\x3e\n <div class="ihooman-ticket-view">\n <h4 class="ihooman-ticket-title">📝 Submit a Ticket</h4>\n <p class="ihooman-ticket-subtitle">We'll get back to you via email</p>\n <input class="ihooman-ticket-input" id="ihooman-ticket-name" placeholder="Your name" required>\n <input class="ihooman-ticket-input" id="ihooman-ticket-email" type="email" placeholder="Your email" required>\n <textarea class="ihooman-ticket-input ihooman-ticket-textarea" id="ihooman-ticket-issue" placeholder="Describe your issue..."></textarea>\n <button class="ihooman-ticket-submit" id="ihooman-ticket-submit">Submit Ticket</button>\n <button class="ihooman-ticket-back" id="ihooman-ticket-back">← Back to Chat</button>\n </div>\n \n ${p.poweredBy?'<div class="ihooman-powered">Powered by <a href="https://ihooman.ai" target="_blank" rel="noopener">Ihooman AI</a></div>':""}\n </div>\n </div>\n `,document.body.appendChild(t),m={widget:t,toggle:t.querySelector(".ihooman-toggle"),badge:t.querySelector(".ihooman-badge"),window:t.querySelector(".ihooman-window"),chatView:t.querySelector(".ihooman-chat-view"),ticketView:t.querySelector(".ihooman-ticket-view"),messages:t.querySelector(".ihooman-messages"),input:t.querySelector(".ihooman-input"),sendBtn:t.querySelector(".ihooman-input-btn.send"),attachBtn:t.querySelector(".ihooman-input-btn.attach"),fileInput:t.querySelector(".ihooman-file-input"),statusDot:t.querySelector(".ihooman-status-dot"),statusText:t.querySelector(".ihooman-status-text"),statusBar:t.querySelector(".ihooman-status-bar"),ticketName:t.querySelector("#ihooman-ticket-name"),ticketEmail:t.querySelector("#ihooman-ticket-email"),ticketIssue:t.querySelector("#ihooman-ticket-issue"),ticketSubmitBtn:t.querySelector("#ihooman-ticket-submit"),ticketBackBtn:t.querySelector("#ihooman-ticket-back")},function(){if(!m.toggle||!m.sendBtn||!m.input)return;m.toggle.addEventListener("click",W),m.sendBtn.addEventListener("click",q),m.input.addEventListener("input",()=>{m.sendBtn&&(m.sendBtn.disabled=!m.input?.value.trim()),m.input&&(m.input.style.height="auto",m.input.style.height=Math.min(m.input.scrollHeight,100)+"px")}),m.input.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),m.sendBtn?.disabled||q())}),m.attachBtn&&m.fileInput&&(m.attachBtn.addEventListener("click",()=>m.fileInput?.click()),m.fileInput.addEventListener("change",M));m.widget?.querySelector('[data-action="refresh"]')?.addEventListener("click",D),m.widget?.querySelector('[data-action="minimize"]')?.addEventListener("click",H),m.widget?.querySelector('[data-action="show-ticket"]')?.addEventListener("click",I),m.widget?.querySelector('[data-action="live-agent"]')?.addEventListener("click",B),m.ticketSubmitBtn&&m.ticketSubmitBtn.addEventListener("click",C);m.ticketBackBtn&&m.ticketBackBtn.addEventListener("click",()=>S("chat"))}()}function A(e,t="bot",n={}){const o={id:v("msg_"),content:e,sender:t,timestamp:new Date,metadata:n};if(u.messages.push(o),!m.messages)return o;const i=document.createElement("div");i.className=`ihooman-message ${t}`;const a="bot"===t&&!0===n?.escalation_offered;let s="";var r,c;if(a&&(s=`\n <div class="ihooman-escalation-actions">\n <button class="ihooman-escalation-btn primary" data-action="live-agent">\n ${l}\n <span>Talk to Agent</span>\n </button>\n <button class="ihooman-escalation-btn secondary" data-action="create-ticket">\n ${d}\n <span>Create Ticket</span>\n </button>\n </div>\n `),i.innerHTML=`\n <div class="ihooman-message-content">${c=e,c?y(c).replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\n/g,"<br>"):""}</div>\n ${s}\n ${p.showTimestamps?`<div class="ihooman-message-time">${r=o.timestamp,new Date(r).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}</div>`:""}\n `,a){const e=i.querySelector('[data-action="live-agent"]'),t=i.querySelector('[data-action="create-ticket"]');e&&e.addEventListener("click",()=>$("live-agent")),t&&t.addEventListener("click",()=>$("create-ticket"))}const h=m.messages.querySelector(".ihooman-typing");return h&&h.remove(),m.messages.appendChild(i),m.messages.scrollTop=m.messages.scrollHeight,"bot"!==t||u.isOpen||(u.unreadCount++,m.badge&&(m.badge.textContent=String(u.unreadCount)),p.enableSounds&&function(){try{const e=new Audio("data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAAA//tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAABhgC7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7//////////////////////////////////////////////////////////////////8AAAAATGF2YzU4LjEzAAAAAAAAAAAAAAAAJAAAAAAAAAAAAYYNBrP/AAAAAAAAAAAAAAAAAAAAAP/7UMQAA8AAAaQAAAAgAAA0gAAABExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tQxBKDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=");e.volume=.3,e.play().catch(()=>{})}catch{}}()),V("message",o),o}function $(e){document.querySelectorAll(".ihooman-escalation-btn").forEach(e=>e.disabled=!0),"live-agent"===e?B():"create-ticket"===e&&I()}function S(e){m.chatView&&m.chatView.classList.toggle("hidden","chat"!==e),m.ticketView&&m.ticketView.classList.toggle("show","ticket"===e)}function I(){S("ticket"),setTimeout(()=>m.ticketName?.focus(),100)}function _(e,t){m.statusBar&&("hidden"!==e?(m.statusBar.classList.add("show"),m.statusBar.classList.remove("waiting","connected"),m.statusBar.classList.add(e),t&&(m.statusBar.textContent=t)):m.statusBar.classList.remove("show"))}async function C(){const e=m.ticketName?.value.trim(),t=m.ticketEmail?.value.trim(),n=m.ticketIssue?.value.trim();if(e&&t){m.ticketSubmitBtn&&(m.ticketSubmitBtn.disabled=!0,m.ticketSubmitBtn.textContent="Submitting...");try{const o=await fetch(`${p.serverUrl}/api/v1/public/submit-ticket`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:u.sessionId,user_name:e,user_email:t,issue:n||"No description provided",escalation_type:"ticket",widget_id:p.widgetId})}),i=await o.json();m.ticketName&&(m.ticketName.value=""),m.ticketEmail&&(m.ticketEmail.value=""),m.ticketIssue&&(m.ticketIssue.value=""),S("chat");A(`✅ Ticket submitted! We'll contact you at ${t}. Reference: #${i.ticket_id?i.ticket_id.slice(0,8):"submitted"}`,"bot",{is_system_message:!0})}catch(e){console.error("Error submitting ticket:",e),A("❌ Error submitting ticket. Please try again.","bot",{is_system_message:!0})}m.ticketSubmitBtn&&(m.ticketSubmitBtn.disabled=!1,m.ticketSubmitBtn.textContent="Submit Ticket")}else alert("Please fill in your name and email")}async function B(){if(!u.sessionId)return void A("Please send a message first to start a conversation.","bot",{is_system_message:!0});const e=m.widget?.querySelector('[data-action="live-agent"]');e&&(e.disabled=!0,e.innerHTML='<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg> Connecting...');try{const e=await fetch(`${p.serverUrl}/api/v1/public/live-agent`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:u.sessionId,visitor_id:u.visitorId,widget_id:p.widgetId})}),t=await e.json();h=!0,t.position_in_queue&&t.position_in_queue>1?_("waiting",`⏳ Waiting for agent (Position: #${t.position_in_queue})`):_("connected","🟢 Connected to live support");const n=m.widget?.querySelector(".ihooman-action-buttons");n&&(n.style.display="none"),function(){if(T)return;T=setInterval(async()=>{if(u.sessionId&&h)try{const e=await fetch(`${p.serverUrl}/api/v1/public/transcript/${u.sessionId}`,{headers:{"Content-Type":"application/json"}});if(!e.ok)return;const t=await e.json(),n=t.messages?.length||0;if(n>z){t.messages.slice(z).forEach(e=>{"agent"===e.sender_type?A(e.content,"bot",{agent_name:"Agent"}):"ai"===e.sender_type&&e.content.includes("connected to live support")&&A(e.content,"bot",{is_system_message:!0})}),z=n}if("closed"===t.status){h=!1,E(),_("hidden"),A("This conversation has been closed. Thank you for contacting us!","bot",{is_system_message:!0});const e=m.widget?.querySelector(".ihooman-action-buttons");e&&(e.style.display="flex")}try{const e=await fetch(`${p.serverUrl}/api/v1/public/escalation-status/${u.sessionId}`);if(e.ok){const t=await e.json();t.escalated&&("in_progress"===t.ticket_status?_("connected","🟢 Connected to live agent"):"open"===t.ticket_status&&t.position_in_queue>1&&_("waiting",`⏳ Waiting for agent (Position: #${t.position_in_queue})`))}}catch{}}catch(e){console.error("Error polling for messages:",e)}else E()},3e3)}()}catch(e){console.error("Error requesting live agent:",e),A("❌ Unable to connect to live support. Please try again.","bot",{is_system_message:!0})}e&&(e.disabled=!1,e.innerHTML='<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg> Live Agent')}let T=null,z=0;function E(){T&&(clearInterval(T),T=null)}function L(){if(!p.showTypingIndicator||!m.messages)return;if(m.messages.querySelector(".ihooman-typing"))return;const e=document.createElement("div");e.className="ihooman-typing",e.innerHTML='<div class="ihooman-typing-dots"><span class="ihooman-typing-dot"></span><span class="ihooman-typing-dot"></span><span class="ihooman-typing-dot"></span></div>',m.messages.appendChild(e),m.messages.scrollTop=m.messages.scrollHeight}function U(){const e=m.messages?.querySelector(".ihooman-typing");e&&e.remove()}function q(){const e=m.input?.value.trim();e&&(m.input&&(m.input.value="",m.input.style.height="auto"),m.sendBtn&&(m.sendBtn.disabled=!0),A(e,"user"),L(),async function(e){if(b&&b.readyState===WebSocket.OPEN)return void b.send(JSON.stringify({type:"message",content:e}));try{const t=await fetch(`${p.serverUrl}/api/v1/public/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,session_id:u.sessionId,visitor_id:u.visitorId,widget_id:p.widgetId})}),n=await t.json();U(),n.session_id&&(u.sessionId=n.session_id,p.persistSession&&w("session_id",u.sessionId)),n.response&&A(n.response,"bot",{sources:n.sources,confidence:n.confidence})}catch(e){U(),A("Sorry, something went wrong. Please try again.","bot"),V("error",e)}}(e))}function M(e){const t=e.target,n=t.files?.[0];if(!n)return;A(`📎 Uploading: ${n.name}...`,"user"),L();const o=new FormData;o.append("file",n),o.append("session_id",u.sessionId||""),o.append("visitor_id",u.visitorId||""),o.append("widget_id",p.widgetId),fetch(`${p.serverUrl}/api/upload`,{method:"POST",body:o}).then(e=>e.json()).then(e=>{U(),e.message&&A(e.message,"bot")}).catch(()=>{U(),A("Failed to upload file.","bot")}),t.value=""}function O(e){if(!p.serverUrl&&!e)return;let t;if(p.widgetId){const e=p.serverUrl?.replace(/^http/,"ws"),n=new URLSearchParams({widget_id:p.widgetId});u.visitorId&&n.append("visitor_id",u.visitorId),u.sessionId&&n.append("session_id",u.sessionId),t=`${e}/public/ws?${n.toString()}`}else t=e||p.serverUrl?.replace(/^http/,"ws")+"/ws";try{b=new WebSocket(t),b.onopen=()=>{u.isConnected=!0,x=0,N(!0),V("connected")},b.onclose=()=>{if(u.isConnected=!1,N(!1),V("disconnected"),x<5){x++;const t=Math.min(1e3*Math.pow(2,x),3e4);setTimeout(()=>O(e),t)}else console.warn("WebSocket reconnection failed, falling back to polling"),F()},b.onerror=e=>{console.error("WebSocket error:",e)},b.onmessage=e=>{try{const t=JSON.parse(e.data);if("connected"===t.type)t.session_id&&(u.sessionId=t.session_id,p.persistSession&&w("session_id",u.sessionId)),t.visitor_id&&(u.visitorId=t.visitor_id,p.persistSession&&w("visitor_id",u.visitorId)),t.welcome_message&&0===u.messages.length&&A(t.welcome_message,"bot");else if("message"===t.type){U();const e="user"===t.sender?"user":"bot";A(t.content,e,{confidence:t.confidence,agent_name:t.agent_name,escalation_offered:t.escalation_offered,escalated:t.escalated})}else"typing"===t.type?t.is_typing?L():U():"pong"===t.type||"error"===t.type&&(console.error("WebSocket server error:",t.message),V("error",{message:t.message}))}catch{}},function(){if(j)return;j=setInterval(()=>{b&&b.readyState===WebSocket.OPEN&&b.send(JSON.stringify({type:"ping"}))},3e4)}()}catch{console.warn("WebSocket not supported, using polling"),F()}}let j=null;function F(){f||(f=setInterval(async()=>{if(u.sessionId)try{const e=await fetch(`${p.serverUrl}/api/messages?session_id=${u.sessionId}&since=${Date.now()-5e3}&widget_id=${p.widgetId}`),t=await e.json();t.messages&&t.messages.forEach(e=>{u.messages.find(t=>t.id===e.id)||A(e.content,e.sender_type,e.metadata)})}catch{}},5e3))}function N(e){m.statusDot&&m.statusDot.classList.toggle("offline",!e),m.statusText&&(m.statusText.textContent=e?"Online":"Offline")}function P(){u.isOpen||(u.isOpen=!0,u.unreadCount=0,m.badge&&(m.badge.textContent=""),m.toggle&&m.toggle.classList.add("open"),m.window&&m.window.classList.add("open"),setTimeout(()=>m.input?.focus(),300),V("open"))}function H(){u.isOpen&&(u.isOpen=!1,m.toggle&&m.toggle.classList.remove("open"),m.window&&m.window.classList.remove("open"),V("close"))}function W(){u.isOpen?H():P()}function D(){u.sessionId=null,u.messages=[],w("session_id",null),m.messages&&(m.messages.innerHTML=""),p.welcomeMessage&&A(p.welcomeMessage,"bot")}async function Y(e){if(!e.widgetId)return console.error("IhoomanChat: widgetId is required"),null;p={...t,...e},u.visitorId=w("visitor_id")||v("v_"),w("visitor_id",u.visitorId),p.persistSession&&(u.sessionId=w("session_id"));const n=p.serverUrl||"https://api.ihooman.ai",o=await async function(e,t){try{const n=await fetch(`${t}/api/widget/config?widget_id=${encodeURIComponent(e)}`);return n.ok?await n.json():{success:!1,error:(await n.json().catch(()=>({}))).error||`HTTP ${n.status}`}}catch(e){return{success:!1,error:"Unable to connect. Please check your internet connection."}}}(p.widgetId,n);let i;var a;return o.success&&o.config?(a=o.config,p.title=a.title||p.title,p.subtitle=a.subtitle||p.subtitle,p.welcomeMessage=a.welcomeMessage||p.welcomeMessage,p.placeholder=a.placeholder||p.placeholder,p.position=a.position||p.position,a.theme&&(p.primaryColor=a.theme.primaryColor||p.primaryColor,p.gradientFrom=a.theme.gradientFrom||p.gradientFrom,p.gradientTo=a.theme.gradientTo||p.gradientTo,p.fontFamily=a.theme.fontFamily||p.fontFamily,a.theme.borderRadius&&(p.borderRadius=parseInt(a.theme.borderRadius,10)||p.borderRadius)),a.behavior&&(p.startOpen=a.behavior.startOpen??p.startOpen,p.showTypingIndicator=a.behavior.showTypingIndicator??p.showTypingIndicator,p.showTimestamps=a.behavior.showTimestamps??p.showTimestamps,p.enableSounds=a.behavior.enableSounds??p.enableSounds,p.enableFileUpload=a.behavior.enableFileUpload??p.enableFileUpload,p.persistSession=a.behavior.persistSession??p.persistSession),a.branding&&(p.avatarUrl=a.branding.avatarUrl||p.avatarUrl,p.poweredBy=a.branding.poweredBy??p.poweredBy),i=o.chatEndpoint):o.error&&(console.warn("IhoomanChat: Could not fetch server config:",o.error),"Widget not authorized for this domain"===o.error&&console.error("IhoomanChat: Widget configuration error. Please contact support.")),k(),u.messages.forEach(e=>A(e.content,e.sender,e.metadata)),0===u.messages.length&&p.welcomeMessage&&A(p.welcomeMessage,"bot"),O(i),p.startOpen&&setTimeout(P,500),V("ready"),R}const R={init:Y,open:P,close:H,toggle:W,destroy:function(){j&&(clearInterval(j),j=null),E(),b&&(b.close(),b=null),f&&(clearInterval(f),f=null),m.widget&&m.widget.remove();const e=document.getElementById("ihooman-widget-styles");e&&e.remove(),u={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},m={},x=0},sendMessage:function(e){e.trim()&&(m.input&&(m.input.value=e),q())},setUser:function(e){e.name&&w("user_name",e.name),e.email&&w("user_email",e.email),e.metadata&&w("user_metadata",e.metadata)},clearHistory:function(){D()},on:function(e,t){g[e]||(g[e]=[]),g[e].push(t)},off:function(e,t){g[e]&&(g[e]=g[e].filter(e=>e!==t))},getState:function(){return{...u}},version:"2.0.0"},J=R;!function(){if("undefined"==typeof document)return;let e=document.currentScript;if(!e){const t=document.getElementsByTagName("script");for(let n=0;n<t.length;n++)if(t[n].src&&t[n].src.includes("ihooman")){e=t[n];break}}if(!e)return;const t=e.getAttribute("data-widget-id");if(t){const n={widgetId:t},o=e.getAttribute("data-server-url");o&&(n.serverUrl=o);const i=e.getAttribute("data-theme");"light"!==i&&"dark"!==i||(n.theme=i);const a=e.getAttribute("data-position");a&&(n.position=a);"true"===e.getAttribute("data-start-open")&&(n.startOpen=!0),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>Y(n)):Y(n)}}(),"undefined"!=typeof window&&(window.IhoomanChat=J),e.IhoomanChat=J,e.createWidgetInstance=function(){return{...R}},e.default=J,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=index.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.min.js","sources":["../src/widget.ts"],"sourcesContent":[null],"names":["defaultConfig","serverUrl","theme","position","title","subtitle","welcomeMessage","placeholder","primaryColor","gradientFrom","gradientTo","showTimestamps","showTypingIndicator","enableSounds","enableFileUpload","startOpen","persistSession","zIndex","width","height","buttonSize","borderRadius","fontFamily","avatarUrl","poweredBy","icons","config","widgetId","state","isOpen","isConnected","messages","sessionId","visitorId","unreadCount","elements","eventListeners","ws","pollInterval","reconnectAttempts","generateId","prefix","Math","random","toString","slice","Date","now","escapeHtml","text","div","document","createElement","textContent","innerHTML","storage","key","value","fullKey","undefined","item","localStorage","getItem","JSON","parse","removeItem","setItem","stringify","emit","event","data","forEach","fn","e","console","error","callbackName","charAt","toUpperCase","callback","createWidget","styleEl","id","isDark","bgColor","textColor","mutedColor","borderColor","inputBg","messageBgUser","messageBgBot","positionRight","includes","positionBottom","generateStyles","head","appendChild","widget","className","body","toggle","querySelector","badge","window","input","sendBtn","attachBtn","fileInput","statusDot","statusText","addEventListener","handleSendClick","disabled","trim","style","min","scrollHeight","shiftKey","preventDefault","click","handleFileSelect","startNewConversation","close","setupEventListeners","addMessage","content","sender","metadata","message","timestamp","push","el","showEscalationButtons","escalation_offered","escalationButtonsHtml","date","replace","toLocaleTimeString","hour","minute","liveAgentBtn","ticketBtn","handleEscalationAction","typing","remove","scrollTop","String","audio","Audio","volume","play","catch","playSound","action","querySelectorAll","btn","showTyping","sendMessageToServer","hideTyping","async","readyState","WebSocket","OPEN","send","type","response","fetch","method","headers","session_id","visitor_id","widget_id","json","sources","confidence","target","file","files","name","formData","FormData","append","then","r","connectWebSocket","chatEndpoint","wsUrl","baseWsUrl","params","URLSearchParams","onopen","updateStatus","onclose","delay","pow","setTimeout","warn","startPolling","onerror","onmessage","welcome_message","length","agent_name","escalated","is_typing","heartbeatInterval","setInterval","startHeartbeat","msg","find","m","sender_type","online","classList","open","add","focus","init","userConfig","configResponse","encodeURIComponent","ok","success","status","fetchWidgetConfig","serverConfig","parseInt","behavior","branding","publicAPI","destroy","clearInterval","styles","getElementById","sendMessage","setUser","user","email","clearHistory","on","off","filter","getState","version","IhoomanChat","script","currentScript","scripts","getElementsByTagName","i","src","getAttribute","autoConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.min.js","sources":["../src/widget.ts"],"sourcesContent":[null],"names":["defaultConfig","serverUrl","theme","position","title","subtitle","welcomeMessage","placeholder","primaryColor","gradientFrom","gradientTo","showTimestamps","showTypingIndicator","enableSounds","enableFileUpload","startOpen","persistSession","zIndex","width","height","buttonSize","borderRadius","fontFamily","avatarUrl","poweredBy","icons","config","widgetId","state","isOpen","isConnected","messages","sessionId","visitorId","unreadCount","isLiveAgentMode","elements","eventListeners","ws","pollInterval","reconnectAttempts","generateId","prefix","Math","random","toString","slice","Date","now","escapeHtml","text","div","document","createElement","textContent","innerHTML","storage","key","value","fullKey","undefined","item","localStorage","getItem","JSON","parse","removeItem","setItem","stringify","emit","event","data","forEach","fn","e","console","error","callbackName","charAt","toUpperCase","callback","createWidget","styleEl","id","isDark","bgColor","textColor","mutedColor","borderColor","inputBg","messageBgUser","messageBgBot","positionRight","includes","positionBottom","generateStyles","head","appendChild","widget","className","body","toggle","querySelector","badge","window","chatView","ticketView","input","sendBtn","attachBtn","fileInput","statusDot","statusText","statusBar","ticketName","ticketEmail","ticketIssue","ticketSubmitBtn","ticketBackBtn","addEventListener","handleSendClick","disabled","trim","style","min","scrollHeight","shiftKey","preventDefault","click","handleFileSelect","startNewConversation","close","handleShowTicketForm","handleRequestLiveAgent","handleSubmitTicket","showView","setupEventListeners","addMessage","content","sender","metadata","message","timestamp","push","el","showEscalationButtons","escalation_offered","escalationButtonsHtml","date","replace","toLocaleTimeString","hour","minute","liveAgentBtn","ticketBtn","handleEscalationAction","typing","remove","scrollTop","String","audio","Audio","volume","play","catch","playSound","action","querySelectorAll","btn","view","classList","setTimeout","focus","updateStatusBar","status","add","async","name","email","issue","response","fetch","method","headers","session_id","user_name","user_email","escalation_type","widget_id","json","ticket_id","is_system_message","alert","liveBtn","visitor_id","position_in_queue","actionsDiv","display","liveAgentPollInterval","setInterval","ok","msgCount","length","lastMessageCount","msg","sender_type","agent_name","stopLiveAgentPolling","escResponse","escData","escalated","ticket_status","startLiveAgentPolling","clearInterval","showTyping","hideTyping","readyState","WebSocket","OPEN","send","type","sources","confidence","sendMessageToServer","target","file","files","formData","FormData","append","then","r","connectWebSocket","chatEndpoint","wsUrl","baseWsUrl","params","URLSearchParams","onopen","updateStatus","onclose","delay","pow","warn","startPolling","onerror","onmessage","welcome_message","is_typing","heartbeatInterval","startHeartbeat","find","m","online","open","init","userConfig","configResponse","encodeURIComponent","success","fetchWidgetConfig","serverConfig","parseInt","behavior","branding","publicAPI","destroy","styles","getElementById","sendMessage","setUser","user","clearHistory","on","off","filter","getState","version","IhoomanChat","script","currentScript","scripts","getElementsByTagName","i","src","getAttribute","autoConfig"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/widget.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAMV,cAAc,EAEf,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAMV,cAAc,EAEf,MAAM,SAAS,CAAC;AAy+CjB;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,cAA0B,CAAC;AAErD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|
package/package.json
CHANGED
package/src/types.ts
CHANGED