function wpaicgChatInit() {
let wpaicgMicIcon = '';
let wpaicgStopIcon = '';
var wpaicgChatStream;
var wpaicgChatRec;
var wpaicgInput;
var wpaicgChatAudioContext = window.AudioContext || window.webkitAudioContext;
var wpaicgaudioContext;
var wpaicgMicBtns = document.querySelectorAll('.wpaicg-mic-icon');
var wpaicgChatTyping = document.querySelectorAll('.wpaicg-chatbox-typing');
var wpaicgShortcodeTyping = document.querySelectorAll('.wpaicg-chat-shortcode-typing');
var wpaicgChatSend = document.querySelectorAll('.wpaicg-chatbox-send');
var wpaicgShortcodeSend = document.querySelectorAll('.wpaicg-chat-shortcode-send');
function wpaicgescapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(//g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
function wpaicgstartChatRecording() {
let constraints = {audio: true, video: false}
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
wpaicgaudioContext = new wpaicgChatAudioContext();
wpaicgChatStream = stream;
wpaicgInput = wpaicgaudioContext.createMediaStreamSource(stream);
wpaicgChatRec = new Recorder(wpaicgInput, {numChannels: 1});
wpaicgChatRec.record();
})
}
function wpaicgstopChatRecording(mic) {
wpaicgChatRec.stop();
wpaicgChatStream.getAudioTracks()[0].stop();
wpaicgChatRec.exportWAV(function (blob) {
let type = mic.getAttribute('data-type');
let parentChat;
let chatContent;
let chatTyping;
if (type === 'widget') {
parentChat = mic.closest('.wpaicg-chatbox');
chatContent = parentChat.querySelectorAll('.wpaicg-chatbox-content')[0];
chatTyping = parentChat.querySelectorAll('.wpaicg-chatbox-typing')[0];
} else {
parentChat = mic.closest('.wpaicg-chat-shortcode');
chatContent = parentChat.querySelectorAll('.wpaicg-chat-shortcode-content')[0];
chatTyping = parentChat.querySelectorAll('.wpaicg-chat-shortcode-typing')[0];
}
wpaicgSendChatMessage(parentChat, chatTyping, type, blob);
});
}
function wpaicgSendChatMessage(chat, typing, type, blob) {
let wpaicg_box_typing = typing;
let wpaicg_ai_thinking, wpaicg_messages_box, class_user_item, class_ai_item;
let wpaicgMessage = '';
let wpaicgData = new FormData();
let wpaicg_you = chat.getAttribute('data-you') + ':';
let wpaicg_ai_name = chat.getAttribute('data-ai-name') + ':';
let wpaicg_nonce = chat.getAttribute('data-nonce');
let wpaicg_use_avatar = parseInt(chat.getAttribute('data-use-avatar'));
let wpaicg_bot_id = parseInt(chat.getAttribute('data-bot-id'));
let wpaicg_user_avatar = chat.getAttribute('data-user-avatar');
let wpaicg_ai_avatar = chat.getAttribute('data-ai-avatar');
let wpaicg_user_bg = chat.getAttribute('data-user-bg-color');
let wpaicg_font_size = chat.getAttribute('data-fontsize');
let url = chat.getAttribute('data-url');
let post_id = chat.getAttribute('data-post-id');
let wpaicg_ai_bg = chat.getAttribute('data-ai-bg-color');
let wpaicg_font_color = chat.getAttribute('data-color');
if (type === 'widget') {
wpaicg_ai_thinking = chat.getElementsByClassName('wpaicg-bot-thinking')[0];
wpaicg_messages_box = chat.getElementsByClassName('wpaicg-chatbox-messages')[0];
class_user_item = 'wpaicg-chat-user-message';
class_ai_item = 'wpaicg-chat-ai-message';
} else {
wpaicg_ai_thinking = chat.getElementsByClassName('wpaicg-bot-thinking')[0];
wpaicg_messages_box = chat.getElementsByClassName('wpaicg-chat-shortcode-messages')[0];
class_user_item = 'wpaicg-user-message';
class_ai_item = 'wpaicg-ai-message';
}
if (wpaicg_use_avatar) {
wpaicg_you = '';
wpaicg_ai_name = '
';
}
wpaicg_ai_thinking.style.display = 'block';
let wpaicg_question = wpaicgescapeHtml(wpaicg_box_typing.value);
wpaicgMessage += '
' + wpaicg_ai_name + '
' + wpaicg_ai_name + '
' + wpaicg_ai_name + '
$1
');
}
}
wpaicg_typeWriter();
}
}
}
}
function wpaicgMicEvent(mic) {
if (mic.classList.contains('wpaicg-recording')) {
mic.innerHTML = '';
mic.innerHTML = wpaicgMicIcon;
mic.classList.remove('wpaicg-recording');
wpaicgstopChatRecording(mic)
} else {
let checkRecording = document.querySelectorAll('.wpaicg-recording');
if (checkRecording && checkRecording.length) {
alert('Please finish previous recording');
} else {
mic.innerHTML = '';
mic.innerHTML = wpaicgStopIcon;
mic.classList.add('wpaicg-recording');
wpaicgstartChatRecording();
}
}
}
if (wpaicgChatTyping && wpaicgChatTyping.length) {
for (let i = 0; i < wpaicgChatTyping.length; i++) {
wpaicgChatTyping[i].addEventListener('keyup', function (event) {
if (event.which === 13 || event.keyCode === 13) {
let parentChat = wpaicgChatTyping[i].closest('.wpaicg-chatbox');
let chatTyping = parentChat.querySelectorAll('.wpaicg-chatbox-typing')[0];
wpaicgSendChatMessage(parentChat, chatTyping, 'widget');
}
})
}
}
if (wpaicgShortcodeTyping && wpaicgShortcodeTyping.length) {
for (let i = 0; i < wpaicgShortcodeTyping.length; i++) {
wpaicgShortcodeTyping[i].addEventListener('keyup', function (event) {
if (event.which === 13 || event.keyCode === 13) {
let parentChat = wpaicgShortcodeTyping[i].closest('.wpaicg-chat-shortcode');
let chatTyping = parentChat.querySelectorAll('.wpaicg-chat-shortcode-typing')[0];
wpaicgSendChatMessage(parentChat, chatTyping, 'shortcode');
}
})
}
}
if (wpaicgChatSend && wpaicgChatSend.length) {
for (let i = 0; i < wpaicgChatSend.length; i++) {
wpaicgChatSend[i].addEventListener('click', function (event) {
let parentChat = wpaicgChatSend[i].closest('.wpaicg-chatbox');
let chatTyping = parentChat.querySelectorAll('.wpaicg-chatbox-typing')[0];
wpaicgSendChatMessage(parentChat, chatTyping, 'widget');
})
}
}
if (wpaicgShortcodeSend && wpaicgShortcodeSend.length) {
for (let i = 0; i < wpaicgShortcodeSend.length; i++) {
wpaicgShortcodeSend[i].addEventListener('click', function (event) {
let parentChat = wpaicgShortcodeSend[i].closest('.wpaicg-chat-shortcode');
let chatTyping = parentChat.querySelectorAll('.wpaicg-chat-shortcode-typing')[0];
wpaicgSendChatMessage(parentChat, chatTyping, 'shortcode');
})
}
}
if (wpaicgMicBtns && wpaicgMicBtns.length) {
for (let i = 0; i < wpaicgMicBtns.length; i++) {
wpaicgMicBtns[i].addEventListener('click', function () {
wpaicgMicEvent(wpaicgMicBtns[i]);
});
}
}
}
wpaicgChatInit();
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Recorder = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o