From cf4d89ee653051d6b0cccdb2eaa693354836c2cb Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Sat, 7 Oct 2023 19:07:57 -0700 Subject: [PATCH] Lint the javascript code --- js/main.js | 220 ++++++++++++++++++++++---------------------- js/save_files.js | 50 +++++----- js/show_controls.js | 30 +++--- js/switch_tabs.js | 48 +++++----- 4 files changed, 174 insertions(+), 174 deletions(-) diff --git a/js/main.js b/js/main.js index 2155794a..01ad4af9 100644 --- a/js/main.js +++ b/js/main.js @@ -1,33 +1,33 @@ -let main_parent = document.getElementById('chat-tab').parentNode; -let extensions = document.getElementById('extensions'); +let main_parent = document.getElementById("chat-tab").parentNode; +let extensions = document.getElementById("extensions"); main_parent.childNodes[0].classList.add("header_bar"); main_parent.style = "padding: 0; margin: 0"; main_parent.parentNode.style = "gap: 0"; main_parent.parentNode.parentNode.style = "padding: 0"; -document.querySelector('.header_bar').addEventListener('click', function(event) { - if (event.target.tagName === 'BUTTON') { - const buttonText = event.target.textContent.trim(); +document.querySelector(".header_bar").addEventListener("click", function(event) { + if (event.target.tagName === "BUTTON") { + const buttonText = event.target.textContent.trim(); - let chat_visible = (buttonText == 'Chat'); - let default_visible = (buttonText == 'Default'); - let notebook_visible = (buttonText == 'Notebook'); + let chat_visible = (buttonText == "Chat"); + let default_visible = (buttonText == "Default"); + let notebook_visible = (buttonText == "Notebook"); - // Check if one of the generation tabs is visible - if (chat_visible || notebook_visible || default_visible) { - extensions.style.display = 'flex'; - if (chat_visible) { - extensions.style.maxWidth = "880px"; - extensions.style.padding = "0px"; - } else { - extensions.style.maxWidth = "none"; - extensions.style.padding = "15px"; - } - } else { - extensions.style.display = 'none'; - } + // Check if one of the generation tabs is visible + if (chat_visible || notebook_visible || default_visible) { + extensions.style.display = "flex"; + if (chat_visible) { + extensions.style.maxWidth = "880px"; + extensions.style.padding = "0px"; + } else { + extensions.style.maxWidth = "none"; + extensions.style.padding = "15px"; + } + } else { + extensions.style.display = "none"; } + } }); //------------------------------------------------ @@ -48,49 +48,49 @@ document.addEventListener("keydown", function(event) { else if (event.ctrlKey && event.key == "s") { event.preventDefault(); - var showControlsElement = document.getElementById('show-controls'); + var showControlsElement = document.getElementById("show-controls"); if (showControlsElement && showControlsElement.childNodes.length >= 4) { showControlsElement.childNodes[3].click(); - var arr = document.getElementById('chat-input').childNodes[2].childNodes; + var arr = document.getElementById("chat-input").childNodes[2].childNodes; arr[arr.length - 1].focus(); } } // Regenerate on Ctrl + Enter - else if (event.ctrlKey && event.key === 'Enter') { + else if (event.ctrlKey && event.key === "Enter") { event.preventDefault(); - document.getElementById('Regenerate').click(); + document.getElementById("Regenerate").click(); } // Continue on Alt + Enter - else if (event.altKey && event.key === 'Enter') { + else if (event.altKey && event.key === "Enter") { event.preventDefault(); - document.getElementById('Continue').click(); + document.getElementById("Continue").click(); } // Remove last on Ctrl + Shift + Backspace - else if (event.ctrlKey && event.shiftKey && event.key === 'Backspace') { + else if (event.ctrlKey && event.shiftKey && event.key === "Backspace") { event.preventDefault(); - document.getElementById('Remove-last').click(); + document.getElementById("Remove-last").click(); } // Copy last on Ctrl + Shift + K - else if (event.ctrlKey && event.shiftKey && event.key === 'K') { + else if (event.ctrlKey && event.shiftKey && event.key === "K") { event.preventDefault(); - document.getElementById('Copy-last').click(); + document.getElementById("Copy-last").click(); } // Replace last on Ctrl + Shift + L - else if (event.ctrlKey && event.shiftKey && event.key === 'L') { + else if (event.ctrlKey && event.shiftKey && event.key === "L") { event.preventDefault(); - document.getElementById('Replace-last').click(); + document.getElementById("Replace-last").click(); } // Impersonate on Ctrl + Shift + M - else if (event.ctrlKey && event.shiftKey && event.key === 'M') { + else if (event.ctrlKey && event.shiftKey && event.key === "M") { event.preventDefault(); - document.getElementById('Impersonate').click(); + document.getElementById("Impersonate").click(); } }); @@ -98,7 +98,7 @@ document.addEventListener("keydown", function(event) { //------------------------------------------------ // Position the chat typing dots //------------------------------------------------ -typing = document.getElementById('typing-container'); +typing = document.getElementById("typing-container"); typingParent = typing.parentNode; typingSibling = typing.previousElementSibling; typingSibling.insertBefore(typing, typingSibling.childNodes[2]); @@ -106,12 +106,12 @@ typingSibling.insertBefore(typing, typingSibling.childNodes[2]); //------------------------------------------------ // Chat scrolling //------------------------------------------------ -const targetElement = document.getElementById('chat').parentNode.parentNode.parentNode; -targetElement.classList.add('pretty_scrollbar'); -targetElement.classList.add('chat-parent'); +const targetElement = document.getElementById("chat").parentNode.parentNode.parentNode; +targetElement.classList.add("pretty_scrollbar"); +targetElement.classList.add("chat-parent"); let isScrolled = false; -targetElement.addEventListener('scroll', function() { +targetElement.addEventListener("scroll", function() { let diff = targetElement.scrollHeight - targetElement.clientHeight; if(Math.abs(targetElement.scrollTop - diff) <= 10 || diff == 0) { isScrolled = false; @@ -128,14 +128,14 @@ const observer = new MutationObserver(function(mutations) { } const firstChild = targetElement.children[0]; - if (firstChild.classList.contains('generating')) { - typing.parentNode.classList.add('visible-dots'); - document.getElementById('stop').style.display = 'flex'; - document.getElementById('Generate').style.display = 'none'; + if (firstChild.classList.contains("generating")) { + typing.parentNode.classList.add("visible-dots"); + document.getElementById("stop").style.display = "flex"; + document.getElementById("Generate").style.display = "none"; } else { - typing.parentNode.classList.remove('visible-dots'); - document.getElementById('stop').style.display = 'none'; - document.getElementById('Generate').style.display = 'flex'; + typing.parentNode.classList.remove("visible-dots"); + document.getElementById("stop").style.display = "none"; + document.getElementById("Generate").style.display = "flex"; } }); @@ -156,10 +156,10 @@ observer.observe(targetElement, config); //------------------------------------------------ // Notebook box scrolling //------------------------------------------------ -const notebookElement = document.querySelector('#textbox-notebook textarea'); +const notebookElement = document.querySelector("#textbox-notebook textarea"); let notebookScrolled = false; -notebookElement.addEventListener('scroll', function() { +notebookElement.addEventListener("scroll", function() { let diff = notebookElement.scrollHeight - notebookElement.clientHeight; if(Math.abs(notebookElement.scrollTop - diff) <= 10 || diff == 0) { notebookScrolled = false; @@ -181,10 +181,10 @@ notebookObserver.observe(notebookElement.parentNode.parentNode.parentNode, confi //------------------------------------------------ // Default box scrolling //------------------------------------------------ -const defaultElement = document.querySelector('#textbox-default textarea'); +const defaultElement = document.querySelector("#textbox-default textarea"); let defaultScrolled = false; -defaultElement.addEventListener('scroll', function() { +defaultElement.addEventListener("scroll", function() { let diff = defaultElement.scrollHeight - defaultElement.clientHeight; if(Math.abs(defaultElement.scrollTop - diff) <= 10 || diff == 0) { defaultScrolled = false; @@ -206,20 +206,20 @@ defaultObserver.observe(defaultElement.parentNode.parentNode.parentNode, config) //------------------------------------------------ // Add some scrollbars //------------------------------------------------ -const textareaElements = document.querySelectorAll('.add_scrollbar textarea'); +const textareaElements = document.querySelectorAll(".add_scrollbar textarea"); for(i = 0; i < textareaElements.length; i++) { - textareaElements[i].classList.remove('scroll-hide'); - textareaElements[i].classList.add('pretty_scrollbar'); - textareaElements[i].style.resize = "none"; + textareaElements[i].classList.remove("scroll-hide"); + textareaElements[i].classList.add("pretty_scrollbar"); + textareaElements[i].style.resize = "none"; } //------------------------------------------------ // Remove some backgrounds //------------------------------------------------ -const noBackgroundelements = document.querySelectorAll('.no-background'); +const noBackgroundelements = document.querySelectorAll(".no-background"); for(i = 0; i < noBackgroundelements.length; i++) { - noBackgroundelements[i].parentNode.style.border = 'none'; - noBackgroundelements[i].parentNode.parentNode.parentNode.style.alignItems = 'center'; + noBackgroundelements[i].parentNode.style.border = "none"; + noBackgroundelements[i].parentNode.parentNode.parentNode.style.alignItems = "center"; } //------------------------------------------------ @@ -228,89 +228,89 @@ for(i = 0; i < noBackgroundelements.length; i++) { // https://github.com/SillyTavern/SillyTavern/blob/6c8bd06308c69d51e2eb174541792a870a83d2d6/public/script.js //------------------------------------------------ var buttonsInChat = document.querySelectorAll("#chat-tab:not(.old-ui) #chat-buttons button"); -var button = document.getElementById('hover-element-button'); -var menu = document.getElementById('hover-menu'); +var button = document.getElementById("hover-element-button"); +var menu = document.getElementById("hover-menu"); function showMenu() { - menu.style.display = 'flex'; // Show the menu + menu.style.display = "flex"; // Show the menu } function hideMenu() { - menu.style.display = 'none'; // Hide the menu - document.querySelector('#chat-input textarea').focus(); + menu.style.display = "none"; // Hide the menu + document.querySelector("#chat-input textarea").focus(); } if (buttonsInChat.length > 0) { - for (let i = buttonsInChat.length - 1; i >= 0; i--) { - const thisButton = buttonsInChat[i]; - menu.appendChild(thisButton); + for (let i = buttonsInChat.length - 1; i >= 0; i--) { + const thisButton = buttonsInChat[i]; + menu.appendChild(thisButton); - thisButton.addEventListener("click", () => { - hideMenu(); - }); + thisButton.addEventListener("click", () => { + hideMenu(); + }); - const buttonText = thisButton.textContent; - const matches = buttonText.match(/(\(.*?\))/); + const buttonText = thisButton.textContent; + const matches = buttonText.match(/(\(.*?\))/); - if (matches && matches.length > 1) { - // Apply the transparent-substring class to the matched substring - const substring = matches[1]; - const newText = buttonText.replace(substring, ` ${substring.slice(1, -1)}`); - thisButton.innerHTML = newText; - } + if (matches && matches.length > 1) { + // Apply the transparent-substring class to the matched substring + const substring = matches[1]; + const newText = buttonText.replace(substring, ` ${substring.slice(1, -1)}`); + thisButton.innerHTML = newText; } + } } else { - buttonsInChat = document.querySelectorAll("#chat-tab.old-ui #chat-buttons button"); - for (let i = 0; i < buttonsInChat.length; i++) { - buttonsInChat[i].textContent = buttonsInChat[i].textContent.replace(/ \(.*?\)/, ''); - } - document.getElementById('gr-hover-container').style.display = 'none'; + buttonsInChat = document.querySelectorAll("#chat-tab.old-ui #chat-buttons button"); + for (let i = 0; i < buttonsInChat.length; i++) { + buttonsInChat[i].textContent = buttonsInChat[i].textContent.replace(/ \(.*?\)/, ""); + } + document.getElementById("gr-hover-container").style.display = "none"; } function isMouseOverButtonOrMenu() { - return menu.matches(':hover') || button.matches(':hover'); + return menu.matches(":hover") || button.matches(":hover"); } -button.addEventListener('mouseenter', function () { - showMenu(); +button.addEventListener("mouseenter", function () { + showMenu(); }); -button.addEventListener('click', function () { - showMenu(); +button.addEventListener("click", function () { + showMenu(); }); // Add event listener for mouseleave on the button -button.addEventListener('mouseleave', function () { - // Delay to prevent menu hiding when the mouse leaves the button into the menu - setTimeout(function () { - if (!isMouseOverButtonOrMenu()) { - hideMenu(); - } - }, 100); +button.addEventListener("mouseleave", function () { + // Delay to prevent menu hiding when the mouse leaves the button into the menu + setTimeout(function () { + if (!isMouseOverButtonOrMenu()) { + hideMenu(); + } + }, 100); }); // Add event listener for mouseleave on the menu -menu.addEventListener('mouseleave', function () { - // Delay to prevent menu hide when the mouse leaves the menu into the button - setTimeout(function () { - if (!isMouseOverButtonOrMenu()) { - hideMenu(); - } - }, 100); +menu.addEventListener("mouseleave", function () { + // Delay to prevent menu hide when the mouse leaves the menu into the button + setTimeout(function () { + if (!isMouseOverButtonOrMenu()) { + hideMenu(); + } + }, 100); }); // Add event listener for click anywhere in the document -document.addEventListener('click', function (event) { - // Check if the click is outside the button/menu and the menu is visible - if (!isMouseOverButtonOrMenu() && menu.style.display === 'flex') { - hideMenu(); - } +document.addEventListener("click", function (event) { + // Check if the click is outside the button/menu and the menu is visible + if (!isMouseOverButtonOrMenu() && menu.style.display === "flex") { + hideMenu(); + } }); //------------------------------------------------ // Relocate the "Show controls" checkbox //------------------------------------------------ -var elementToMove = document.getElementById('show-controls'); +var elementToMove = document.getElementById("show-controls"); var parent = elementToMove.parentNode; for (var i = 0; i < 2; i++) { parent = parent.parentNode; @@ -321,10 +321,10 @@ parent.insertBefore(elementToMove, parent.firstChild); //------------------------------------------------ // Make the chat input grow upwards instead of downwards //------------------------------------------------ -document.getElementById('show-controls').parentNode.style.position = 'absolute'; -document.getElementById('show-controls').parentNode.style.bottom = '0px'; +document.getElementById("show-controls").parentNode.style.position = "absolute"; +document.getElementById("show-controls").parentNode.style.bottom = "0px"; //------------------------------------------------ // Focus on the chat input //------------------------------------------------ -document.querySelector('#chat-input textarea').focus() +document.querySelector("#chat-input textarea").focus(); diff --git a/js/save_files.js b/js/save_files.js index d5b22c4b..bdb0e334 100644 --- a/js/save_files.js +++ b/js/save_files.js @@ -1,40 +1,40 @@ // Functions for downloading JSON files function getCurrentTimestamp() { - const now = new Date(); - const timezoneOffset = now.getTimezoneOffset() * 60000; // Convert to milliseconds - const localTime = new Date(now.getTime() - timezoneOffset); - const formattedTimestamp = localTime.toISOString().replace(/[-:]/g, '').slice(0, 15); - return formattedTimestamp; + const now = new Date(); + const timezoneOffset = now.getTimezoneOffset() * 60000; // Convert to milliseconds + const localTime = new Date(now.getTime() - timezoneOffset); + const formattedTimestamp = localTime.toISOString().replace(/[-:]/g, "").slice(0, 15); + return formattedTimestamp; } function saveFile(contents, filename) { - const element = document.createElement('a'); - element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(contents)); - element.setAttribute('download', filename); - element.style.display = 'none'; - document.body.appendChild(element); - element.click(); - document.body.removeChild(element); + const element = document.createElement("a"); + element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(contents)); + element.setAttribute("download", filename); + element.style.display = "none"; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); } function saveHistory(history, character, mode) { - let path = null; + let path = null; - if (['chat', 'chat-instruct'].includes(mode) && character && character.trim() !== '') { - path = `history_${character}_${getCurrentTimestamp()}.json`; - } else { - try { - path = `history_${mode}_${getCurrentTimestamp()}.json`; - } catch (error) { - path = `history_${getCurrentTimestamp()}.json`; - } + if (["chat", "chat-instruct"].includes(mode) && character && character.trim() !== "") { + path = `history_${character}_${getCurrentTimestamp()}.json`; + } else { + try { + path = `history_${mode}_${getCurrentTimestamp()}.json`; + } catch (error) { + path = `history_${getCurrentTimestamp()}.json`; } - saveFile(history, path); + } + saveFile(history, path); } function saveSession(session) { - let path = null; + let path = null; - path = `session_${getCurrentTimestamp()}.json`; - saveFile(session, path); + path = `session_${getCurrentTimestamp()}.json`; + saveFile(session, path); } diff --git a/js/show_controls.js b/js/show_controls.js index b35463b5..0173963b 100644 --- a/js/show_controls.js +++ b/js/show_controls.js @@ -2,21 +2,21 @@ const belowChatInput = document.querySelectorAll("#chat-tab > div > :nth-child(n const chatParent = document.querySelector(".chat-parent"); function toggle_controls(value) { - if (value) { - belowChatInput.forEach(element => { - element.style.display = "inherit"; - }); + if (value) { + belowChatInput.forEach(element => { + element.style.display = "inherit"; + }); - chatParent.classList.remove("bigchat"); - document.getElementById('chat-input-row').classList.remove("bigchat"); - document.getElementById('chat-col').classList.remove("bigchat"); - } else { - belowChatInput.forEach(element => { - element.style.display = "none"; - }); + chatParent.classList.remove("bigchat"); + document.getElementById("chat-input-row").classList.remove("bigchat"); + document.getElementById("chat-col").classList.remove("bigchat"); + } else { + belowChatInput.forEach(element => { + element.style.display = "none"; + }); - chatParent.classList.add("bigchat"); - document.getElementById('chat-input-row').classList.add("bigchat") - document.getElementById('chat-col').classList.add("bigchat"); - } + chatParent.classList.add("bigchat"); + document.getElementById("chat-input-row").classList.add("bigchat"); + document.getElementById("chat-col").classList.add("bigchat"); + } } diff --git a/js/switch_tabs.js b/js/switch_tabs.js index e49fef4e..75d56367 100644 --- a/js/switch_tabs.js +++ b/js/switch_tabs.js @@ -1,15 +1,15 @@ -let chat_tab = document.getElementById('chat-tab'); +let chat_tab = document.getElementById("chat-tab"); let main_parent = chat_tab.parentNode; function scrollToTop() { - window.scrollTo({ - top: 0, - // behavior: 'smooth' - }); + window.scrollTo({ + top: 0, + // behavior: 'smooth' + }); } function findButtonsByText(buttonText) { - const buttons = document.getElementsByTagName('button'); + const buttons = document.getElementsByTagName("button"); const matchingButtons = []; buttonText = buttonText.trim(); @@ -26,34 +26,34 @@ function findButtonsByText(buttonText) { } function switch_to_chat() { - let chat_tab_button = main_parent.childNodes[0].childNodes[1]; - chat_tab_button.click(); - scrollToTop(); + let chat_tab_button = main_parent.childNodes[0].childNodes[1]; + chat_tab_button.click(); + scrollToTop(); } function switch_to_default() { - let default_tab_button = main_parent.childNodes[0].childNodes[4]; - default_tab_button.click(); - scrollToTop(); + let default_tab_button = main_parent.childNodes[0].childNodes[4]; + default_tab_button.click(); + scrollToTop(); } function switch_to_notebook() { - let notebook_tab_button = main_parent.childNodes[0].childNodes[7]; - notebook_tab_button.click(); - findButtonsByText('Raw')[1].click() - scrollToTop(); + let notebook_tab_button = main_parent.childNodes[0].childNodes[7]; + notebook_tab_button.click(); + findButtonsByText("Raw")[1].click(); + scrollToTop(); } function switch_to_generation_parameters() { - let parameters_tab_button = main_parent.childNodes[0].childNodes[10]; - parameters_tab_button.click(); - findButtonsByText('Generation')[0].click() - scrollToTop(); + let parameters_tab_button = main_parent.childNodes[0].childNodes[10]; + parameters_tab_button.click(); + findButtonsByText("Generation")[0].click(); + scrollToTop(); } function switch_to_character() { - let parameters_tab_button = main_parent.childNodes[0].childNodes[10]; - parameters_tab_button.click(); - findButtonsByText('Character')[0].click() - scrollToTop(); + let parameters_tab_button = main_parent.childNodes[0].childNodes[10]; + parameters_tab_button.click(); + findButtonsByText("Character")[0].click(); + scrollToTop(); }