class ChatbotComponent extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = `
Android Test Assistant
Welcome! How can I help you test your Android application today?
`; // Initialize feather icons feather.replace(); // Add event listeners this.shadowRoot.getElementById('chatbotSubmit').addEventListener('click', this.sendMessage.bind(this)); this.shadowRoot.getElementById('chatbotInput').addEventListener('keypress', (e) => { if (e.key === 'Enter') this.sendMessage(); }); this.shadowRoot.getElementById('closeChatbot').addEventListener('click', () => { this.style.display = 'none'; }); // Action buttons this.shadowRoot.getElementById('installBtn').addEventListener('click', () => { this.addMessage('Installing application...', 'bot'); }); this.shadowRoot.getElementById('testBtn').addEventListener('click', () => { this.addMessage('Running automated tests...', 'bot'); }); this.shadowRoot.getElementById('evidenceBtn').addEventListener('click', () => { this.addMessage('Opening test evidence...', 'bot'); }); this.shadowRoot.getElementById('clearBtn').addEventListener('click', () => { this.shadowRoot.getElementById('chatbotMessages').innerHTML = ''; this.addMessage('Chat cleared. How can I help?', 'bot'); }); this.shadowRoot.getElementById('settingsBtn').addEventListener('click', () => { this.addMessage('Opening settings panel...', 'bot'); }); } sendMessage() { const input = this.shadowRoot.getElementById('chatbotInput'); const message = input.value.trim(); if (message) { this.addMessage(message, 'user'); input.value = ''; // Simulate bot response setTimeout(() => { this.addMessage('I can help you with that. What exactly would you like to test?', 'bot'); }, 1000); } } addMessage(text, sender) { const messagesDiv = this.shadowRoot.getElementById('chatbotMessages'); const messageDiv = document.createElement('div'); messageDiv.className = `message ${sender}-message`; messageDiv.textContent = text; messagesDiv.appendChild(messageDiv); messagesDiv.scrollTop = messagesDiv.scrollHeight; // Refresh feather icons feather.replace(); } } customElements.define('custom-chatbot', ChatbotComponent);