@ihoomanai/chat-widget 2.0.1 → 2.1.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/cdn/SRI_HASHES.md +8 -8
- package/cdn/health.json +3 -3
- package/cdn/latest/chat.js +103 -17
- package/cdn/latest/chat.js.map +1 -1
- package/cdn/latest/chat.min.js +1 -1
- package/cdn/latest/chat.min.js.map +1 -1
- package/cdn/manifest.json +10 -10
- package/cdn/v2/chat.js +103 -17
- package/cdn/v2/chat.js.map +1 -1
- package/cdn/v2/chat.min.js +1 -1
- package/cdn/v2/chat.min.js.map +1 -1
- package/cdn/{v2.0.0 → v2.0.2}/chat.js +103 -17
- package/cdn/v2.0.2/chat.js.map +1 -0
- package/cdn/{v2.0.0 → v2.0.2}/chat.min.js +1 -1
- package/cdn/v2.0.2/chat.min.js.map +1 -0
- package/dist/index.cjs.js +163 -24
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +163 -24
- 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 +163 -24
- 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 +7 -1
- 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 +7 -1
- package/src/widget.ts +171 -25
- package/cdn/CDN_DEPLOYMENT.md +0 -199
- package/cdn/cloudflare-config.json +0 -203
- package/cdn/cloudfront-config.json +0 -153
- package/cdn/nginx.conf +0 -185
- package/cdn/v2.0.0/chat.js.map +0 -1
- package/cdn/v2.0.0/chat.min.js.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @ihoomanai/chat-widget v2.0
|
|
2
|
+
* @ihoomanai/chat-widget v2.1.0
|
|
3
3
|
* Universal chat support widget for any website - secure Widget ID based initialization
|
|
4
4
|
*
|
|
5
5
|
* @license MIT
|
|
@@ -63,6 +63,8 @@ const icons = {
|
|
|
63
63
|
minimize: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line></svg>`,
|
|
64
64
|
refresh: `<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>`,
|
|
65
65
|
bot: `<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>`,
|
|
66
|
+
agent: `<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>`,
|
|
67
|
+
ticket: `<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>`,
|
|
66
68
|
};
|
|
67
69
|
/**
|
|
68
70
|
* Internal widget state
|
|
@@ -254,6 +256,14 @@ function generateStyles() {
|
|
|
254
256
|
.ihooman-powered { text-align: center; padding: 8px; font-size: 11px; color: ${mutedColor}; background: ${bgColor}; }
|
|
255
257
|
.ihooman-powered a { color: ${primaryColor}; text-decoration: none; }
|
|
256
258
|
.ihooman-error { padding: 16px; text-align: center; color: #ef4444; background: ${bgColor}; }
|
|
259
|
+
.ihooman-escalation-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
|
|
260
|
+
.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; }
|
|
261
|
+
.ihooman-escalation-btn svg { width: 16px; height: 16px; }
|
|
262
|
+
.ihooman-escalation-btn.primary { background: linear-gradient(135deg, ${gradientFrom}, ${gradientTo}); color: white; }
|
|
263
|
+
.ihooman-escalation-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 174, 255, 0.3); }
|
|
264
|
+
.ihooman-escalation-btn.secondary { background: ${isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.05)'}; color: ${textColor}; border: 1px solid ${borderColor}; }
|
|
265
|
+
.ihooman-escalation-btn.secondary:hover { background: ${isDark ? 'rgba(255,255,255,0.15)' : 'rgba(0,0,0,0.08)'}; }
|
|
266
|
+
.ihooman-escalation-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
|
|
257
267
|
@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 { ${positionRight ? 'right: 16px' : 'left: 16px'}; bottom: 16px; } }
|
|
258
268
|
`;
|
|
259
269
|
}
|
|
@@ -372,10 +382,39 @@ function addMessage(content, sender = 'bot', metadata = {}) {
|
|
|
372
382
|
return message;
|
|
373
383
|
const el = document.createElement('div');
|
|
374
384
|
el.className = `ihooman-message ${sender}`;
|
|
385
|
+
// Check if this message should show escalation buttons
|
|
386
|
+
const showEscalationButtons = sender === 'bot' && metadata?.escalation_offered === true;
|
|
387
|
+
let escalationButtonsHtml = '';
|
|
388
|
+
if (showEscalationButtons) {
|
|
389
|
+
escalationButtonsHtml = `
|
|
390
|
+
<div class="ihooman-escalation-actions">
|
|
391
|
+
<button class="ihooman-escalation-btn primary" data-action="live-agent">
|
|
392
|
+
${icons.agent}
|
|
393
|
+
<span>Talk to Agent</span>
|
|
394
|
+
</button>
|
|
395
|
+
<button class="ihooman-escalation-btn secondary" data-action="create-ticket">
|
|
396
|
+
${icons.ticket}
|
|
397
|
+
<span>Create Ticket</span>
|
|
398
|
+
</button>
|
|
399
|
+
</div>
|
|
400
|
+
`;
|
|
401
|
+
}
|
|
375
402
|
el.innerHTML = `
|
|
376
403
|
<div class="ihooman-message-content">${parseMarkdown(content)}</div>
|
|
404
|
+
${escalationButtonsHtml}
|
|
377
405
|
${config.showTimestamps ? `<div class="ihooman-message-time">${formatTime(message.timestamp)}</div>` : ''}
|
|
378
406
|
`;
|
|
407
|
+
// Add event listeners for escalation buttons
|
|
408
|
+
if (showEscalationButtons) {
|
|
409
|
+
const liveAgentBtn = el.querySelector('[data-action="live-agent"]');
|
|
410
|
+
const ticketBtn = el.querySelector('[data-action="create-ticket"]');
|
|
411
|
+
if (liveAgentBtn) {
|
|
412
|
+
liveAgentBtn.addEventListener('click', () => handleEscalationAction('live-agent'));
|
|
413
|
+
}
|
|
414
|
+
if (ticketBtn) {
|
|
415
|
+
ticketBtn.addEventListener('click', () => handleEscalationAction('create-ticket'));
|
|
416
|
+
}
|
|
417
|
+
}
|
|
379
418
|
// Remove typing indicator if present
|
|
380
419
|
const typing = elements.messages.querySelector('.ihooman-typing');
|
|
381
420
|
if (typing)
|
|
@@ -394,6 +433,26 @@ function addMessage(content, sender = 'bot', metadata = {}) {
|
|
|
394
433
|
emit('message', message);
|
|
395
434
|
return message;
|
|
396
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* Handle escalation action button clicks
|
|
438
|
+
*/
|
|
439
|
+
function handleEscalationAction(action) {
|
|
440
|
+
// Disable all escalation buttons to prevent double-clicks
|
|
441
|
+
const buttons = document.querySelectorAll('.ihooman-escalation-btn');
|
|
442
|
+
buttons.forEach(btn => btn.disabled = true);
|
|
443
|
+
if (action === 'live-agent') {
|
|
444
|
+
// Send message to request live agent
|
|
445
|
+
addMessage('Connect me with a live agent', 'user');
|
|
446
|
+
showTyping();
|
|
447
|
+
sendMessageToServer('Connect me with a live agent');
|
|
448
|
+
}
|
|
449
|
+
else if (action === 'create-ticket') {
|
|
450
|
+
// Send message to create ticket
|
|
451
|
+
addMessage('I would like to create a support ticket', 'user');
|
|
452
|
+
showTyping();
|
|
453
|
+
sendMessageToServer('I would like to create a support ticket');
|
|
454
|
+
}
|
|
455
|
+
}
|
|
397
456
|
/**
|
|
398
457
|
* Show typing indicator
|
|
399
458
|
*/
|
|
@@ -436,8 +495,18 @@ function handleSendClick() {
|
|
|
436
495
|
}
|
|
437
496
|
/**
|
|
438
497
|
* Send message to the server
|
|
498
|
+
* Uses WebSocket if connected, otherwise falls back to REST API
|
|
439
499
|
*/
|
|
440
500
|
async function sendMessageToServer(content) {
|
|
501
|
+
// If WebSocket is connected, send via WebSocket
|
|
502
|
+
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
503
|
+
ws.send(JSON.stringify({
|
|
504
|
+
type: 'message',
|
|
505
|
+
content: content,
|
|
506
|
+
}));
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
// Fallback to REST API
|
|
441
510
|
try {
|
|
442
511
|
const response = await fetch(`${config.serverUrl}/api/v1/public/chat`, {
|
|
443
512
|
method: 'POST',
|
|
@@ -511,39 +580,47 @@ function playSound() {
|
|
|
511
580
|
// WEBSOCKET CONNECTION
|
|
512
581
|
// ============================================================================
|
|
513
582
|
/**
|
|
514
|
-
* Connect to WebSocket for real-time messaging
|
|
515
|
-
*
|
|
516
|
-
*
|
|
583
|
+
* Connect to WebSocket for real-time messaging.
|
|
584
|
+
*
|
|
585
|
+
* For public widgets (using Widget ID), connects to /public/ws endpoint
|
|
586
|
+
* which authenticates via Widget ID + Domain validation.
|
|
587
|
+
*
|
|
588
|
+
* For authenticated users (dashboard), connects to /ws endpoint with JWT.
|
|
517
589
|
*/
|
|
518
590
|
function connectWebSocket(chatEndpoint) {
|
|
519
|
-
// For public widgets (using widget ID), skip WebSocket and use REST
|
|
520
|
-
// WebSocket is only for authenticated dashboard users
|
|
521
|
-
if (config.widgetId) {
|
|
522
|
-
startPolling();
|
|
523
|
-
return;
|
|
524
|
-
}
|
|
525
591
|
if (!config.serverUrl && !chatEndpoint)
|
|
526
592
|
return;
|
|
527
|
-
|
|
593
|
+
let wsUrl;
|
|
594
|
+
if (config.widgetId) {
|
|
595
|
+
// Public widget - use /public/ws endpoint with widget_id auth
|
|
596
|
+
const baseWsUrl = config.serverUrl?.replace(/^http/, 'ws');
|
|
597
|
+
const params = new URLSearchParams({
|
|
598
|
+
widget_id: config.widgetId,
|
|
599
|
+
});
|
|
600
|
+
if (state.visitorId) {
|
|
601
|
+
params.append('visitor_id', state.visitorId);
|
|
602
|
+
}
|
|
603
|
+
if (state.sessionId) {
|
|
604
|
+
params.append('session_id', state.sessionId);
|
|
605
|
+
}
|
|
606
|
+
wsUrl = `${baseWsUrl}/public/ws?${params.toString()}`;
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
// Authenticated user - use /ws endpoint
|
|
610
|
+
wsUrl = chatEndpoint || config.serverUrl?.replace(/^http/, 'ws') + '/ws';
|
|
611
|
+
}
|
|
528
612
|
try {
|
|
529
613
|
ws = new WebSocket(wsUrl);
|
|
530
614
|
ws.onopen = () => {
|
|
531
615
|
state.isConnected = true;
|
|
532
616
|
reconnectAttempts = 0;
|
|
533
617
|
updateStatus(true);
|
|
534
|
-
|
|
535
|
-
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
536
|
-
ws.send(JSON.stringify({
|
|
537
|
-
type: 'connect',
|
|
538
|
-
widget_id: config.widgetId,
|
|
539
|
-
visitor_id: state.visitorId,
|
|
540
|
-
session_id: state.sessionId,
|
|
541
|
-
}));
|
|
542
|
-
}
|
|
618
|
+
emit('connected');
|
|
543
619
|
};
|
|
544
620
|
ws.onclose = () => {
|
|
545
621
|
state.isConnected = false;
|
|
546
622
|
updateStatus(false);
|
|
623
|
+
emit('disconnected');
|
|
547
624
|
// Attempt reconnection with exponential backoff
|
|
548
625
|
if (reconnectAttempts < maxReconnectAttempts) {
|
|
549
626
|
reconnectAttempts++;
|
|
@@ -551,34 +628,94 @@ function connectWebSocket(chatEndpoint) {
|
|
|
551
628
|
setTimeout(() => connectWebSocket(chatEndpoint), delay);
|
|
552
629
|
}
|
|
553
630
|
else {
|
|
554
|
-
// Fall back to polling
|
|
631
|
+
// Fall back to polling after max reconnect attempts
|
|
632
|
+
console.warn('WebSocket reconnection failed, falling back to polling');
|
|
555
633
|
startPolling();
|
|
556
634
|
}
|
|
557
635
|
};
|
|
558
|
-
ws.onerror = () => {
|
|
636
|
+
ws.onerror = (error) => {
|
|
637
|
+
console.error('WebSocket error:', error);
|
|
559
638
|
// WebSocket error - will trigger onclose
|
|
560
639
|
};
|
|
561
640
|
ws.onmessage = (e) => {
|
|
562
641
|
try {
|
|
563
642
|
const data = JSON.parse(e.data);
|
|
564
|
-
if (data.type === '
|
|
643
|
+
if (data.type === 'connected') {
|
|
644
|
+
// Server confirmed connection - update session info
|
|
645
|
+
if (data.session_id) {
|
|
646
|
+
state.sessionId = data.session_id;
|
|
647
|
+
if (config.persistSession)
|
|
648
|
+
storage('session_id', state.sessionId);
|
|
649
|
+
}
|
|
650
|
+
if (data.visitor_id) {
|
|
651
|
+
state.visitorId = data.visitor_id;
|
|
652
|
+
if (config.persistSession)
|
|
653
|
+
storage('visitor_id', state.visitorId);
|
|
654
|
+
}
|
|
655
|
+
// Show welcome message if provided
|
|
656
|
+
if (data.welcome_message && state.messages.length === 0) {
|
|
657
|
+
addMessage(data.welcome_message, 'bot');
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
else if (data.type === 'message') {
|
|
565
661
|
hideTyping();
|
|
566
|
-
|
|
662
|
+
const sender = data.sender === 'user' ? 'user' : 'bot';
|
|
663
|
+
addMessage(data.content, sender, {
|
|
664
|
+
confidence: data.confidence,
|
|
665
|
+
agent_name: data.agent_name,
|
|
666
|
+
escalation_offered: data.escalation_offered,
|
|
667
|
+
escalated: data.escalated,
|
|
668
|
+
});
|
|
567
669
|
}
|
|
568
670
|
else if (data.type === 'typing') {
|
|
569
671
|
data.is_typing ? showTyping() : hideTyping();
|
|
570
672
|
}
|
|
673
|
+
else if (data.type === 'pong') {
|
|
674
|
+
// Heartbeat response - connection is alive
|
|
675
|
+
}
|
|
676
|
+
else if (data.type === 'error') {
|
|
677
|
+
console.error('WebSocket server error:', data.message);
|
|
678
|
+
emit('error', { message: data.message });
|
|
679
|
+
}
|
|
571
680
|
}
|
|
572
681
|
catch {
|
|
573
682
|
// Ignore parse errors
|
|
574
683
|
}
|
|
575
684
|
};
|
|
685
|
+
// Start heartbeat to keep connection alive
|
|
686
|
+
startHeartbeat();
|
|
576
687
|
}
|
|
577
688
|
catch {
|
|
578
689
|
// WebSocket not supported, fall back to polling
|
|
690
|
+
console.warn('WebSocket not supported, using polling');
|
|
579
691
|
startPolling();
|
|
580
692
|
}
|
|
581
693
|
}
|
|
694
|
+
/**
|
|
695
|
+
* Heartbeat interval reference
|
|
696
|
+
*/
|
|
697
|
+
let heartbeatInterval = null;
|
|
698
|
+
/**
|
|
699
|
+
* Start heartbeat to keep WebSocket connection alive
|
|
700
|
+
*/
|
|
701
|
+
function startHeartbeat() {
|
|
702
|
+
if (heartbeatInterval)
|
|
703
|
+
return;
|
|
704
|
+
heartbeatInterval = setInterval(() => {
|
|
705
|
+
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
706
|
+
ws.send(JSON.stringify({ type: 'ping' }));
|
|
707
|
+
}
|
|
708
|
+
}, 30000); // Ping every 30 seconds
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* Stop heartbeat
|
|
712
|
+
*/
|
|
713
|
+
function stopHeartbeat() {
|
|
714
|
+
if (heartbeatInterval) {
|
|
715
|
+
clearInterval(heartbeatInterval);
|
|
716
|
+
heartbeatInterval = null;
|
|
717
|
+
}
|
|
718
|
+
}
|
|
582
719
|
/**
|
|
583
720
|
* Start polling for messages (fallback when WebSocket unavailable)
|
|
584
721
|
*/
|
|
@@ -677,6 +814,8 @@ function startNewConversation() {
|
|
|
677
814
|
* Destroy the widget and clean up resources
|
|
678
815
|
*/
|
|
679
816
|
function destroy() {
|
|
817
|
+
// Stop heartbeat
|
|
818
|
+
stopHeartbeat();
|
|
680
819
|
// Close WebSocket
|
|
681
820
|
if (ws) {
|
|
682
821
|
ws.close();
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/widget.ts","../src/index.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
package/dist/index.esm.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e={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>',t='<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>',o='<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>',i='<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>',a='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',s='<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>',r='<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>';let d={widgetId:"",...e},l={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},c={};const p={};let h=null,g=null,m=0;function u(e=""){return e+Math.random().toString(36).slice(2,14)+Date.now().toString(36)}function f(e){const n=document.createElement("div");return n.textContent=e,n.innerHTML}function b(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 V(e,n){(p[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=d[t];if("function"==typeof o)try{o(n)}catch(e){console.error(`Error in ${t} callback:`,e)}}function x(){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:l}=d,c="dark"===d.theme,p=c?"#1a1a2e":"#ffffff",h=c?"#e4e4e7":"#1f2937",g=c?"#71717a":"#6b7280",m=c?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",u=c?"#16162a":"#f9fafb",f=`linear-gradient(135deg, ${n}, ${t})`,b=c?"#252542":"#f1f5f9",V=d.position?.includes("right")??!0,x=d.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; ${V?"right: 20px":"left: 20px"}; ${x?"bottom: 20px":"top: 20px"}; width: ${l}px; height: ${l}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; ${V?"right: 20px":"left: 20px"}; ${x?"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: ${p}; 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: ${p}; }\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: ${p}; 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: ${p}; }\n .ihooman-powered a { color: ${e}; text-decoration: none; }\n .ihooman-error { padding: 16px; text-align: center; color: #ef4444; background: ${p}; }\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 { ${V?"right: 16px":"left: 16px"}; bottom: 16px; } }\n `}(),document.head.appendChild(e);const l=document.createElement("div");l.className="ihooman-widget",l.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">${t}</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">${d.avatarUrl?`<img src="${f(d.avatarUrl)}" alt="Support">`:r}</div>\n <div class="ihooman-header-info">\n <div class="ihooman-header-title">${f(d.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">${s}</button>\n <button class="ihooman-header-btn" data-action="minimize" title="Minimize">${a}</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 ${d.enableFileUpload?`<button class="ihooman-input-btn attach" title="Attach file">${i}</button><input type="file" class="ihooman-file-input">`:""}\n <textarea class="ihooman-input" placeholder="${f(d.placeholder||"Type a message...")}" rows="1" aria-label="Message input"></textarea>\n <button class="ihooman-input-btn send" title="Send message" disabled>${o}</button>\n </div>\n </div>\n ${d.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(l),c={widget:l,toggle:l.querySelector(".ihooman-toggle"),badge:l.querySelector(".ihooman-badge"),window:l.querySelector(".ihooman-window"),messages:l.querySelector(".ihooman-messages"),input:l.querySelector(".ihooman-input"),sendBtn:l.querySelector(".ihooman-input-btn.send"),attachBtn:l.querySelector(".ihooman-input-btn.attach"),fileInput:l.querySelector(".ihooman-file-input"),statusDot:l.querySelector(".ihooman-status-dot"),statusText:l.querySelector(".ihooman-status-text")},function(){if(!c.toggle||!c.sendBtn||!c.input)return;c.toggle.addEventListener("click",U),c.sendBtn.addEventListener("click",v),c.input.addEventListener("input",()=>{c.sendBtn&&(c.sendBtn.disabled=!c.input?.value.trim()),c.input&&(c.input.style.height="auto",c.input.style.height=Math.min(c.input.scrollHeight,100)+"px")}),c.input.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),c.sendBtn?.disabled||v())}),c.attachBtn&&c.fileInput&&(c.attachBtn.addEventListener("click",()=>c.fileInput?.click()),c.fileInput.addEventListener("change",$));c.widget?.querySelector('[data-action="refresh"]')?.addEventListener("click",B),c.widget?.querySelector('[data-action="minimize"]')?.addEventListener("click",T)}()}function w(e,n="bot",t={}){const o={id:u("msg_"),content:e,sender:n,timestamp:new Date,metadata:t};if(l.messages.push(o),!c.messages)return o;const i=document.createElement("div");var a,s;i.className=`ihooman-message ${n}`,i.innerHTML=`\n <div class="ihooman-message-content">${s=e,s?f(s).replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\n/g,"<br>"):""}</div>\n ${d.showTimestamps?`<div class="ihooman-message-time">${a=o.timestamp,new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}</div>`:""}\n `;const r=c.messages.querySelector(".ihooman-typing");return r&&r.remove(),c.messages.appendChild(i),c.messages.scrollTop=c.messages.scrollHeight,"bot"!==n||l.isOpen||(l.unreadCount++,c.badge&&(c.badge.textContent=String(l.unreadCount)),d.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 y(){if(!d.showTypingIndicator||!c.messages)return;if(c.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>',c.messages.appendChild(e),c.messages.scrollTop=c.messages.scrollHeight}function A(){const e=c.messages?.querySelector(".ihooman-typing");e&&e.remove()}function v(){const e=c.input?.value.trim();e&&(c.input&&(c.input.value="",c.input.style.height="auto"),c.sendBtn&&(c.sendBtn.disabled=!0),w(e,"user"),y(),async function(e){try{const n=await fetch(`${d.serverUrl}/api/v1/public/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,session_id:l.sessionId,visitor_id:l.visitorId,widget_id:d.widgetId})}),t=await n.json();A(),t.session_id&&(l.sessionId=t.session_id,d.persistSession&&b("session_id",l.sessionId)),t.response&&w(t.response,"bot",{sources:t.sources,confidence:t.confidence})}catch(e){A(),w("Sorry, something went wrong. Please try again.","bot"),V("error",e)}}(e))}function $(e){const n=e.target,t=n.files?.[0];if(!t)return;w(`📎 Uploading: ${t.name}...`,"user"),y();const o=new FormData;o.append("file",t),o.append("session_id",l.sessionId||""),o.append("visitor_id",l.visitorId||""),o.append("widget_id",d.widgetId),fetch(`${d.serverUrl}/api/upload`,{method:"POST",body:o}).then(e=>e.json()).then(e=>{A(),e.message&&w(e.message,"bot")}).catch(()=>{A(),w("Failed to upload file.","bot")}),n.value=""}function k(e){if(d.widgetId)return void I();if(!d.serverUrl&&!e)return;const n=e||d.serverUrl?.replace(/^http/,"ws")+"/ws";try{h=new WebSocket(n),h.onopen=()=>{l.isConnected=!0,m=0,S(!0),h&&h.readyState===WebSocket.OPEN&&h.send(JSON.stringify({type:"connect",widget_id:d.widgetId,visitor_id:l.visitorId,session_id:l.sessionId}))},h.onclose=()=>{if(l.isConnected=!1,S(!1),m<5){m++;const n=Math.min(1e3*Math.pow(2,m),3e4);setTimeout(()=>k(e),n)}else I()},h.onerror=()=>{},h.onmessage=e=>{try{const n=JSON.parse(e.data);"message"===n.type?(A(),w(n.content,n.sender_type||"bot",n.metadata)):"typing"===n.type&&(n.is_typing?y():A())}catch{}}}catch{I()}}function I(){g||(g=setInterval(async()=>{if(l.sessionId)try{const e=await fetch(`${d.serverUrl}/api/messages?session_id=${l.sessionId}&since=${Date.now()-5e3}&widget_id=${d.widgetId}`),n=await e.json();n.messages&&n.messages.forEach(e=>{l.messages.find(n=>n.id===e.id)||w(e.content,e.sender_type,e.metadata)})}catch{}},5e3))}function S(e){c.statusDot&&c.statusDot.classList.toggle("offline",!e),c.statusText&&(c.statusText.textContent=e?"Online":"Offline")}function C(){l.isOpen||(l.isOpen=!0,l.unreadCount=0,c.badge&&(c.badge.textContent=""),c.toggle&&c.toggle.classList.add("open"),c.window&&c.window.classList.add("open"),setTimeout(()=>c.input?.focus(),300),V("open"))}function T(){l.isOpen&&(l.isOpen=!1,c.toggle&&c.toggle.classList.remove("open"),c.window&&c.window.classList.remove("open"),V("close"))}function U(){l.isOpen?T():C()}function B(){l.sessionId=null,l.messages=[],b("session_id",null),c.messages&&(c.messages.innerHTML=""),d.welcomeMessage&&w(d.welcomeMessage,"bot")}async function z(n){if(!n.widgetId)return console.error("IhoomanChat: widgetId is required"),null;d={...e,...n},l.visitorId=b("visitor_id")||u("v_"),b("visitor_id",l.visitorId),d.persistSession&&(l.sessionId=b("session_id"));const t=d.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."}}}(d.widgetId,t);let i;var a;return o.success&&o.config?(a=o.config,d.title=a.title||d.title,d.subtitle=a.subtitle||d.subtitle,d.welcomeMessage=a.welcomeMessage||d.welcomeMessage,d.placeholder=a.placeholder||d.placeholder,d.position=a.position||d.position,a.theme&&(d.primaryColor=a.theme.primaryColor||d.primaryColor,d.gradientFrom=a.theme.gradientFrom||d.gradientFrom,d.gradientTo=a.theme.gradientTo||d.gradientTo,d.fontFamily=a.theme.fontFamily||d.fontFamily,a.theme.borderRadius&&(d.borderRadius=parseInt(a.theme.borderRadius,10)||d.borderRadius)),a.behavior&&(d.startOpen=a.behavior.startOpen??d.startOpen,d.showTypingIndicator=a.behavior.showTypingIndicator??d.showTypingIndicator,d.showTimestamps=a.behavior.showTimestamps??d.showTimestamps,d.enableSounds=a.behavior.enableSounds??d.enableSounds,d.enableFileUpload=a.behavior.enableFileUpload??d.enableFileUpload,d.persistSession=a.behavior.persistSession??d.persistSession),a.branding&&(d.avatarUrl=a.branding.avatarUrl||d.avatarUrl,d.poweredBy=a.branding.poweredBy??d.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.")),x(),l.messages.forEach(e=>w(e.content,e.sender,e.metadata)),0===l.messages.length&&d.welcomeMessage&&w(d.welcomeMessage,"bot"),k(i),d.startOpen&&setTimeout(C,500),V("ready"),M}const M={init:z,open:C,close:T,toggle:U,destroy:function(){h&&(h.close(),h=null),g&&(clearInterval(g),g=null),c.widget&&c.widget.remove();const e=document.getElementById("ihooman-widget-styles");e&&e.remove(),l={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},c={},m=0},sendMessage:function(e){e.trim()&&(c.input&&(c.input.value=e),v())},setUser:function(e){e.name&&b("user_name",e.name),e.email&&b("user_email",e.email),e.metadata&&b("user_metadata",e.metadata)},clearHistory:function(){B()},on:function(e,n){p[e]||(p[e]=[]),p[e].push(n)},off:function(e,n){p[e]&&(p[e]=p[e].filter(e=>e!==n))},getState:function(){return{...l}},version:"2.0.0"},_=M;function E(){return{...M}}!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",()=>z(t)):z(t)}}(),"undefined"!=typeof window&&(window.IhoomanChat=_);export{_ as IhoomanChat,E as createWidgetInstance,_ as default};
|
|
1
|
+
const e={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>',t='<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>',o='<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>',i='<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>',a='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line></svg>',s='<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>',r='<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 c={widgetId:"",...e},p={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},h={};const g={};let m=null,u=null,f=0;function b(e=""){return e+Math.random().toString(36).slice(2,14)+Date.now().toString(36)}function x(e){const n=document.createElement("div");return n.textContent=e,n.innerHTML}function V(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 y(e,n){(g[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=c[t];if("function"==typeof o)try{o(n)}catch(e){console.error(`Error in ${t} callback:`,e)}}function w(){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:l}=c,d="dark"===c.theme,p=d?"#1a1a2e":"#ffffff",h=d?"#e4e4e7":"#1f2937",g=d?"#71717a":"#6b7280",m=d?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",u=d?"#16162a":"#f9fafb",f=`linear-gradient(135deg, ${n}, ${t})`,b=d?"#252542":"#f1f5f9",x=c.position?.includes("right")??!0,V=c.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: ${l}px; height: ${l}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: ${p}; 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: ${p}; }\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: ${p}; 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: ${p}; }\n .ihooman-powered a { color: ${e}; text-decoration: none; }\n .ihooman-error { padding: 16px; text-align: center; color: #ef4444; background: ${p}; }\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: ${d?"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: ${d?"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 l=document.createElement("div");l.className="ihooman-widget",l.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">${t}</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">${c.avatarUrl?`<img src="${x(c.avatarUrl)}" alt="Support">`:r}</div>\n <div class="ihooman-header-info">\n <div class="ihooman-header-title">${x(c.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">${s}</button>\n <button class="ihooman-header-btn" data-action="minimize" title="Minimize">${a}</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 ${c.enableFileUpload?`<button class="ihooman-input-btn attach" title="Attach file">${i}</button><input type="file" class="ihooman-file-input">`:""}\n <textarea class="ihooman-input" placeholder="${x(c.placeholder||"Type a message...")}" rows="1" aria-label="Message input"></textarea>\n <button class="ihooman-input-btn send" title="Send message" disabled>${o}</button>\n </div>\n </div>\n ${c.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(l),h={widget:l,toggle:l.querySelector(".ihooman-toggle"),badge:l.querySelector(".ihooman-badge"),window:l.querySelector(".ihooman-window"),messages:l.querySelector(".ihooman-messages"),input:l.querySelector(".ihooman-input"),sendBtn:l.querySelector(".ihooman-input-btn.send"),attachBtn:l.querySelector(".ihooman-input-btn.attach"),fileInput:l.querySelector(".ihooman-file-input"),statusDot:l.querySelector(".ihooman-status-dot"),statusText:l.querySelector(".ihooman-status-text")},function(){if(!h.toggle||!h.sendBtn||!h.input)return;h.toggle.addEventListener("click",M),h.sendBtn.addEventListener("click",S),h.input.addEventListener("input",()=>{h.sendBtn&&(h.sendBtn.disabled=!h.input?.value.trim()),h.input&&(h.input.style.height="auto",h.input.style.height=Math.min(h.input.scrollHeight,100)+"px")}),h.input.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),h.sendBtn?.disabled||S())}),h.attachBtn&&h.fileInput&&(h.attachBtn.addEventListener("click",()=>h.fileInput?.click()),h.fileInput.addEventListener("change",C));h.widget?.querySelector('[data-action="refresh"]')?.addEventListener("click",L),h.widget?.querySelector('[data-action="minimize"]')?.addEventListener("click",z)}()}function v(e,n="bot",t={}){const o={id:b("msg_"),content:e,sender:n,timestamp:new Date,metadata:t};if(p.messages.push(o),!h.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,g;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">${g=e,g?x(g).replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\n/g,"<br>"):""}</div>\n ${s}\n ${c.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",()=>A("live-agent")),n&&n.addEventListener("click",()=>A("create-ticket"))}const m=h.messages.querySelector(".ihooman-typing");return m&&m.remove(),h.messages.appendChild(i),h.messages.scrollTop=h.messages.scrollHeight,"bot"!==n||p.isOpen||(p.unreadCount++,h.badge&&(h.badge.textContent=String(p.unreadCount)),c.enableSounds&&function(){try{const e=new Audio("data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAAA//tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAABhgC7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7//////////////////////////////////////////////////////////////////8AAAAATGF2YzU4LjEzAAAAAAAAAAAAAAAAJAAAAAAAAAAAAYYNBrP/AAAAAAAAAAAAAAAAAAAAAP/7UMQAA8AAAaQAAAAgAAA0gAAABExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tQxBKDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=");e.volume=.3,e.play().catch(()=>{})}catch{}}()),y("message",o),o}function A(e){document.querySelectorAll(".ihooman-escalation-btn").forEach(e=>e.disabled=!0),"live-agent"===e?(v("Connect me with a live agent","user"),k(),I("Connect me with a live agent")):"create-ticket"===e&&(v("I would like to create a support ticket","user"),k(),I("I would like to create a support ticket"))}function k(){if(!c.showTypingIndicator||!h.messages)return;if(h.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>',h.messages.appendChild(e),h.messages.scrollTop=h.messages.scrollHeight}function $(){const e=h.messages?.querySelector(".ihooman-typing");e&&e.remove()}function S(){const e=h.input?.value.trim();e&&(h.input&&(h.input.value="",h.input.style.height="auto"),h.sendBtn&&(h.sendBtn.disabled=!0),v(e,"user"),k(),I(e))}async function I(e){if(m&&m.readyState===WebSocket.OPEN)m.send(JSON.stringify({type:"message",content:e}));else try{const n=await fetch(`${c.serverUrl}/api/v1/public/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,session_id:p.sessionId,visitor_id:p.visitorId,widget_id:c.widgetId})}),t=await n.json();$(),t.session_id&&(p.sessionId=t.session_id,c.persistSession&&V("session_id",p.sessionId)),t.response&&v(t.response,"bot",{sources:t.sources,confidence:t.confidence})}catch(e){$(),v("Sorry, something went wrong. Please try again.","bot"),y("error",e)}}function C(e){const n=e.target,t=n.files?.[0];if(!t)return;v(`📎 Uploading: ${t.name}...`,"user"),k();const o=new FormData;o.append("file",t),o.append("session_id",p.sessionId||""),o.append("visitor_id",p.visitorId||""),o.append("widget_id",c.widgetId),fetch(`${c.serverUrl}/api/upload`,{method:"POST",body:o}).then(e=>e.json()).then(e=>{$(),e.message&&v(e.message,"bot")}).catch(()=>{$(),v("Failed to upload file.","bot")}),n.value=""}function T(e){if(!c.serverUrl&&!e)return;let n;if(c.widgetId){const e=c.serverUrl?.replace(/^http/,"ws"),t=new URLSearchParams({widget_id:c.widgetId});p.visitorId&&t.append("visitor_id",p.visitorId),p.sessionId&&t.append("session_id",p.sessionId),n=`${e}/public/ws?${t.toString()}`}else n=e||c.serverUrl?.replace(/^http/,"ws")+"/ws";try{m=new WebSocket(n),m.onopen=()=>{p.isConnected=!0,f=0,B(!0),y("connected")},m.onclose=()=>{if(p.isConnected=!1,B(!1),y("disconnected"),f<5){f++;const n=Math.min(1e3*Math.pow(2,f),3e4);setTimeout(()=>T(e),n)}else console.warn("WebSocket reconnection failed, falling back to polling"),U()},m.onerror=e=>{console.error("WebSocket error:",e)},m.onmessage=e=>{try{const n=JSON.parse(e.data);if("connected"===n.type)n.session_id&&(p.sessionId=n.session_id,c.persistSession&&V("session_id",p.sessionId)),n.visitor_id&&(p.visitorId=n.visitor_id,c.persistSession&&V("visitor_id",p.visitorId)),n.welcome_message&&0===p.messages.length&&v(n.welcome_message,"bot");else if("message"===n.type){$();const e="user"===n.sender?"user":"bot";v(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?k():$():"pong"===n.type||"error"===n.type&&(console.error("WebSocket server error:",n.message),y("error",{message:n.message}))}catch{}},function(){if(_)return;_=setInterval(()=>{m&&m.readyState===WebSocket.OPEN&&m.send(JSON.stringify({type:"ping"}))},3e4)}()}catch{console.warn("WebSocket not supported, using polling"),U()}}let _=null;function U(){u||(u=setInterval(async()=>{if(p.sessionId)try{const e=await fetch(`${c.serverUrl}/api/messages?session_id=${p.sessionId}&since=${Date.now()-5e3}&widget_id=${c.widgetId}`),n=await e.json();n.messages&&n.messages.forEach(e=>{p.messages.find(n=>n.id===e.id)||v(e.content,e.sender_type,e.metadata)})}catch{}},5e3))}function B(e){h.statusDot&&h.statusDot.classList.toggle("offline",!e),h.statusText&&(h.statusText.textContent=e?"Online":"Offline")}function E(){p.isOpen||(p.isOpen=!0,p.unreadCount=0,h.badge&&(h.badge.textContent=""),h.toggle&&h.toggle.classList.add("open"),h.window&&h.window.classList.add("open"),setTimeout(()=>h.input?.focus(),300),y("open"))}function z(){p.isOpen&&(p.isOpen=!1,h.toggle&&h.toggle.classList.remove("open"),h.window&&h.window.classList.remove("open"),y("close"))}function M(){p.isOpen?z():E()}function L(){p.sessionId=null,p.messages=[],V("session_id",null),h.messages&&(h.messages.innerHTML=""),c.welcomeMessage&&v(c.welcomeMessage,"bot")}async function O(n){if(!n.widgetId)return console.error("IhoomanChat: widgetId is required"),null;c={...e,...n},p.visitorId=V("visitor_id")||b("v_"),V("visitor_id",p.visitorId),c.persistSession&&(p.sessionId=V("session_id"));const t=c.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."}}}(c.widgetId,t);let i;var a;return o.success&&o.config?(a=o.config,c.title=a.title||c.title,c.subtitle=a.subtitle||c.subtitle,c.welcomeMessage=a.welcomeMessage||c.welcomeMessage,c.placeholder=a.placeholder||c.placeholder,c.position=a.position||c.position,a.theme&&(c.primaryColor=a.theme.primaryColor||c.primaryColor,c.gradientFrom=a.theme.gradientFrom||c.gradientFrom,c.gradientTo=a.theme.gradientTo||c.gradientTo,c.fontFamily=a.theme.fontFamily||c.fontFamily,a.theme.borderRadius&&(c.borderRadius=parseInt(a.theme.borderRadius,10)||c.borderRadius)),a.behavior&&(c.startOpen=a.behavior.startOpen??c.startOpen,c.showTypingIndicator=a.behavior.showTypingIndicator??c.showTypingIndicator,c.showTimestamps=a.behavior.showTimestamps??c.showTimestamps,c.enableSounds=a.behavior.enableSounds??c.enableSounds,c.enableFileUpload=a.behavior.enableFileUpload??c.enableFileUpload,c.persistSession=a.behavior.persistSession??c.persistSession),a.branding&&(c.avatarUrl=a.branding.avatarUrl||c.avatarUrl,c.poweredBy=a.branding.poweredBy??c.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.")),w(),p.messages.forEach(e=>v(e.content,e.sender,e.metadata)),0===p.messages.length&&c.welcomeMessage&&v(c.welcomeMessage,"bot"),T(i),c.startOpen&&setTimeout(E,500),y("ready"),F}const F={init:O,open:E,close:z,toggle:M,destroy:function(){_&&(clearInterval(_),_=null),m&&(m.close(),m=null),u&&(clearInterval(u),u=null),h.widget&&h.widget.remove();const e=document.getElementById("ihooman-widget-styles");e&&e.remove(),p={isOpen:!1,isConnected:!1,messages:[],sessionId:null,visitorId:null,unreadCount:0},h={},f=0},sendMessage:function(e){e.trim()&&(h.input&&(h.input.value=e),S())},setUser:function(e){e.name&&V("user_name",e.name),e.email&&V("user_email",e.email),e.metadata&&V("user_metadata",e.metadata)},clearHistory:function(){L()},on:function(e,n){g[e]||(g[e]=[]),g[e].push(n)},off:function(e,n){g[e]&&(g[e]=g[e].filter(e=>e!==n))},getState:function(){return{...p}},version:"2.0.0"},q=F;function j(){return{...F}}!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",()=>O(t)):O(t)}}(),"undefined"!=typeof window&&(window.IhoomanChat=q);export{q as IhoomanChat,j as createWidgetInstance,q as default};
|
|
2
2
|
//# sourceMappingURL=index.esm.min.js.map
|