Tsumugii24
initial commit
f7161fa
raw
history blame
10.7 kB
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.classList.add('transparent-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;
}
// document.body.classList.add('popup-open');
}
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 { // windowWidth <= 768
if (shouldAutoClose) {
closeSide(menu);
// closeSide(toolbox);
}
}
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 (windowWidth <= 768)
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() {
// let chatbotWidth = chatbotArea.clientWidth;
// if (chatbotWidth > 488) {
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();
}
// 将 knoledgeBase 滚动到可见区域
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();
}
/*
function setHistroyPanel() {
const historySelectorInput = gradioApp().querySelector('#history-select-dropdown input');
const historyPanel = document.createElement('div');
historyPanel.classList.add('chuanhu-history-panel');
historySelector.parentNode.insertBefore(historyPanel, historySelector);
var historyList=null;
historySelectorInput.addEventListener('click', (e) => {
e.stopPropagation();
historyList = gradioApp().querySelector('#history-select-dropdown ul.options');
if (historyList) {
// gradioApp().querySelector('.chuanhu-history-panel')?.remove();
historyPanel.innerHTML = '';
let historyListClone = historyList.cloneNode(true);
historyListClone.removeAttribute('style');
// historyList.classList.add('hidden');
historyList.classList.add('hideK');
historyPanel.appendChild(historyListClone);
addHistoryPanelListener(historyPanel);
// historySelector.parentNode.insertBefore(historyPanel, historySelector);
}
});
}
*/
// function addHistoryPanelListener(historyPanel){
// historyPanel.querySelectorAll('ul.options > li').forEach((historyItem) => {
// historyItem.addEventListener('click', (e) => {
// const historySelectorInput = gradioApp().querySelector('#history-select-dropdown input');
// const historySelectBtn = gradioApp().querySelector('#history-select-btn');
// historySelectorInput.value = historyItem.innerText;
// historySelectBtn.click();
// });
// });
// }
// function testTrain() {
// trainBody.classList.toggle('hide-body');
// trainingBox.classList.remove('hideBox');
// var chuanhuBody = document.querySelector('#chuanhu-body');
// chuanhuBody.classList.toggle('hide-body');
// }