| |
|
| | 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(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |