|
|
|
function openSettingBox() { |
|
chuanhuPopup.classList.add('showBox'); |
|
popupWrapper.classList.add('showBox'); |
|
settingBox.classList.remove('hideBox'); |
|
trainingBox.classList.add('hideBox'); |
|
showMask("box"); |
|
|
|
} |
|
|
|
function openTrainingBox() { |
|
chuanhuPopup.classList.add('showBox'); |
|
popupWrapper.classList.add('showBox'); |
|
trainingBox.classList.remove('hideBox'); |
|
settingBox.classList.add('hideBox'); |
|
showMask("box"); |
|
} |
|
|
|
function openChatMore() { |
|
chatbotArea.classList.add('show-chat-more'); |
|
showMask("chat-more"); |
|
} |
|
|
|
function closeChatMore() { |
|
chatbotArea.classList.remove('show-chat-more'); |
|
chatbotArea.querySelector('.chuanhu-mask')?.remove(); |
|
} |
|
|
|
|
|
function showMask(obj) { |
|
const mask = document.createElement('div'); |
|
mask.classList.add('chuanhu-mask'); |
|
if (obj == "box") { |
|
mask.classList.add('mask-blur'); |
|
document.body.classList.add('popup-open'); |
|
popupWrapper.appendChild(mask); |
|
} else if (obj == "chat-more") { |
|
mask.classList.add('transparent-mask'); |
|
chatbotArea.querySelector('#chatbot-input-more-area').parentNode.appendChild(mask); |
|
} else if (obj == "update-toast") { |
|
mask.classList.add('chuanhu-top-mask'); |
|
if (document.querySelector('.chuanhu-top-mask')) { |
|
for (var i = 0; i < document.querySelectorAll('.chuanhu-top-mask').length; i++) { |
|
document.querySelectorAll('.chuanhu-top-mask')[i].remove(); |
|
} |
|
} |
|
document.body.appendChild(mask); |
|
|
|
} |
|
|
|
|
|
mask.addEventListener('click', () => { |
|
if (obj == "box") { |
|
closeBox(); |
|
} else if (obj == "chat-more") { |
|
closeChatMore(); |
|
} else if (obj == "update-toast") { |
|
closeUpdateToast(); |
|
} |
|
}); |
|
} |
|
|
|
function chatMoreBtnClick() { |
|
if (chatbotArea.classList.contains('show-chat-more')) { |
|
closeChatMore(); |
|
} else { |
|
openChatMore(); |
|
} |
|
} |
|
|
|
function closeBtnClick(obj) { |
|
if (obj == "box") { |
|
closeBox(); |
|
} else if (obj == "toolbox") { |
|
closeSide(toolbox); |
|
wantOpenToolbox = false; |
|
} |
|
} |
|
|
|
function closeBox() { |
|
chuanhuPopup.classList.remove('showBox'); |
|
popupWrapper.classList.remove('showBox'); |
|
trainingBox.classList.add('hideBox'); |
|
settingBox.classList.add('hideBox'); |
|
document.querySelector('.chuanhu-mask')?.remove(); |
|
document.body.classList.remove('popup-open'); |
|
} |
|
|
|
function closeSide(sideArea) { |
|
document.body.classList.remove('popup-open'); |
|
sideArea.classList.remove('showSide'); |
|
if (sideArea == toolbox) { |
|
chuanhuHeader.classList.remove('under-box'); |
|
chatbotArea.classList.remove('toolbox-open') |
|
toolboxOpening = false; |
|
} else if (sideArea == menu) { |
|
chatbotArea.classList.remove('menu-open') |
|
menuOpening = false; |
|
} |
|
adjustMask(); |
|
} |
|
|
|
function openSide(sideArea) { |
|
sideArea.classList.add('showSide'); |
|
if (sideArea == toolbox) { |
|
chuanhuHeader.classList.add('under-box'); |
|
chatbotArea.classList.add('toolbox-open') |
|
toolboxOpening = true; |
|
} else if (sideArea == menu) { |
|
chatbotArea.classList.add('menu-open') |
|
menuOpening = true; |
|
} |
|
|
|
} |
|
|
|
function menuClick() { |
|
shouldAutoClose = false; |
|
if (menuOpening) { |
|
closeSide(menu); |
|
wantOpenMenu = false; |
|
} else { |
|
if (windowWidth < 1024 && toolboxOpening) { |
|
closeSide(toolbox); |
|
wantOpenToolbox = false; |
|
} |
|
openSide(menu); |
|
wantOpenMenu = true; |
|
} |
|
adjustSide(); |
|
} |
|
|
|
function toolboxClick() { |
|
shouldAutoClose = false; |
|
if (toolboxOpening) { |
|
closeSide(toolbox); |
|
wantOpenToolbox = false; |
|
} else { |
|
if (windowWidth < 1024 && menuOpening) { |
|
closeSide(menu); |
|
wantOpenMenu = false; |
|
} |
|
openSide(toolbox); |
|
wantOpenToolbox = true; |
|
} |
|
adjustSide(); |
|
} |
|
|
|
var menuOpening = false; |
|
var toolboxOpening = false; |
|
var shouldAutoClose = true; |
|
var wantOpenMenu = windowWidth > 768; |
|
var wantOpenToolbox = windowWidth >= 1024; |
|
|
|
function adjustSide() { |
|
if (windowWidth >= 1024) { |
|
shouldAutoClose = true; |
|
if (wantOpenMenu) { |
|
openSide(menu); |
|
if (wantOpenToolbox) openSide(toolbox); |
|
} else if (wantOpenToolbox) { |
|
openSide(toolbox); |
|
} else { |
|
closeSide(menu); |
|
closeSide(toolbox); |
|
} |
|
} else if (windowWidth > 768 && windowWidth < 1024 ) { |
|
shouldAutoClose = true; |
|
if (wantOpenToolbox) { |
|
if (wantOpenMenu) { |
|
closeSide(toolbox); |
|
openSide(menu); |
|
} else { |
|
closeSide(menu); |
|
openSide(toolbox); |
|
} |
|
} else if (wantOpenMenu) { |
|
if (wantOpenToolbox) { |
|
closeSide(menu); |
|
openSide(toolbox); |
|
} else { |
|
closeSide(toolbox); |
|
openSide(menu); |
|
} |
|
} else if (!wantOpenMenu && !wantOpenToolbox){ |
|
closeSide(menu); |
|
closeSide(toolbox); |
|
} |
|
} else { |
|
if (shouldAutoClose) { |
|
closeSide(menu); |
|
|
|
} |
|
} |
|
checkChatbotWidth(); |
|
adjustMask(); |
|
} |
|
|
|
function adjustMask() { |
|
var sideMask = null; |
|
if (!gradioApp().querySelector('.chuanhu-side-mask')) { |
|
sideMask = document.createElement('div'); |
|
sideMask.classList.add('chuanhu-side-mask'); |
|
gradioApp().appendChild(sideMask); |
|
sideMask.addEventListener('click', () => { |
|
closeSide(menu); |
|
closeSide(toolbox); |
|
}); |
|
} |
|
sideMask = gradioApp().querySelector('.chuanhu-side-mask'); |
|
|
|
if (windowWidth > 768) { |
|
sideMask.style.backgroundColor = 'rgba(0, 0, 0, 0)'; |
|
setTimeout(() => {sideMask.style.display = 'none'; }, 100); |
|
return; |
|
} |
|
|
|
if (menuOpening || toolboxOpening) { |
|
document.body.classList.add('popup-open'); |
|
sideMask.style.display = 'block'; |
|
setTimeout(() => {sideMask.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';}, 200); |
|
sideMask.classList.add('mask-blur'); |
|
} else if (!menuOpening && !toolboxOpening) { |
|
sideMask.style.backgroundColor = 'rgba(0, 0, 0, 0)'; |
|
setTimeout(() => {sideMask.style.display = 'none'; }, 100); |
|
} |
|
} |
|
|
|
function checkChatbotWidth() { |
|
|
|
|
|
if (windowWidth > 768) { |
|
chatbotArea.classList.add('chatbot-full-width'); |
|
} else { |
|
chatbotArea.classList.remove('chatbot-full-width'); |
|
} |
|
|
|
if (windowWidth > 768) { |
|
chatbotArea.classList.remove('no-toolbox'); |
|
chatbotArea.classList.remove('no-menu'); |
|
|
|
if (!chatbotArea.classList.contains('toolbox-open') && chatbotArea.classList.contains('menu-open')) { |
|
chatbotArea.classList.add('no-toolbox'); |
|
} else if (!chatbotArea.classList.contains('menu-open') && chatbotArea.classList.contains('toolbox-open')) { |
|
chatbotArea.classList.add('no-menu'); |
|
} else if (!chatbotArea.classList.contains('menu-open') && !chatbotArea.classList.contains('toolbox-open')) { |
|
chatbotArea.classList.add('no-toolbox'); |
|
chatbotArea.classList.add('no-menu'); |
|
} |
|
} |
|
|
|
checkChatMoreMask(); |
|
} |
|
|
|
function checkChatMoreMask() { |
|
if (!chatbotArea.classList.contains('chatbot-full-width')) { |
|
chatbotArea.querySelector('.chuanhu-mask')?.remove(); |
|
chatbotArea.classList.remove('show-chat-more'); |
|
} |
|
} |
|
|
|
function showKnowledgeBase(){ |
|
if (!toolboxOpening) { |
|
toolboxClick(); |
|
} |
|
switchToolBoxTab(0); |
|
let knoledgeBaseAccordion = gradioApp().querySelector('#gr-kb-accordion'); |
|
let knoledgeBase = knoledgeBaseAccordion.querySelector('#upload-index-file'); |
|
if (knoledgeBase.parentElement.parentElement.style.display == 'none') { |
|
knoledgeBaseAccordion.querySelector('.label-wrap')?.click(); |
|
} |
|
|
|
setTimeout(() => {knoledgeBaseAccordion.scrollIntoView({ behavior: "smooth"}); }, 100); |
|
letThisSparkle(knoledgeBase, 5000); |
|
} |
|
|
|
function letThisSparkle(element, sparkleTime = 3000) { |
|
element.classList.add('chuanhu-sparkle'); |
|
setTimeout(() => {element.classList.remove('chuanhu-sparkle');}, sparkleTime); |
|
} |
|
|
|
function switchToolBoxTab(tabIndex) { |
|
let tabButtons = gradioApp().querySelectorAll('#chuanhu-toolbox-tabs .tab-nav > button'); |
|
let tab = tabButtons[tabIndex]; |
|
tab.click(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|