Spaces:
Build error
Build error
// SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
// SPDX-License-Identifier: MIT | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a | |
// copy of this software and associated documentation files (the "Software"), | |
// to deal in the Software without restriction, including without limitation | |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
// and/or sell copies of the Software, and to permit persons to whom the | |
// Software is furnished to do so, subject to the following conditions: | |
// | |
// The above copyright notice and this permission notice shall be included in | |
// all copies or substantial portions of the Software. | |
// | |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
// DEALINGS IN THE SOFTWARE. | |
() => { | |
// file to customize behavior | |
console.log('js loaded', window.location.href); | |
//handle launch | |
let reload = false; | |
let gradioURL = new URL(window.location.href); | |
if(gradioURL.searchParams.has('cookie')) { | |
const secureCookie = gradioURL.searchParams.get('cookie'); | |
gradioURL.searchParams.delete('cookie'); | |
// to do set the cookie | |
const SESSION_COOKIE_EXPIRY = 60 * 60 * 24; // 1 day | |
//document.cookie = `_s_chat_=${secureCookie}; path=${location.pathname}; max-age=${SESSION_COOKIE_EXPIRY}; samesite=strict`; | |
document.cookie = `_s_chat_=${secureCookie}; path=${location.pathname}; samesite=strict`; | |
reload = true; | |
} | |
if( | |
!gradioURL.searchParams.has('__theme') || | |
(gradioURL.searchParams.has('__theme') && gradioURL.searchParams.get('__theme') !== 'dark') | |
) { | |
gradioURL.searchParams.delete('__theme'); | |
gradioURL.searchParams.set('__theme', 'dark'); | |
reload = true; | |
} | |
if(reload) { | |
window.location.replace(gradioURL.href); | |
} | |
//tool tip | |
var elements = document.getElementsByClassName("tooltip-component"); | |
console.log('elements found', elements.length) | |
Array.prototype.forEach.call(elements, function (element) { | |
// Get the tooltip content based on the element's ID | |
var tooltipContent = getTooltipContent(element.id); | |
console.log('tooltip content', tooltipContent); | |
if(tooltipContent) { | |
var tooltip = document.createElement("div"); | |
// var tooltipContentElement = document.getElementById("tooltip-content-element"); | |
// tooltipContentElement.forEach(className => { | |
// tooltip.classList.add(className); | |
// }); | |
tooltip.classList.add("tooltip"); | |
tooltip.style.display = "none"; | |
tooltip.innerHTML = tooltipContent; | |
document.body.appendChild(tooltip); | |
element.addEventListener("mouseover", function () { | |
console.log('mouse over', elements.length); | |
var rect = element.getBoundingClientRect(); | |
tooltip.style.left = rect.left + "px"; | |
tooltip.style.top = (rect.bottom + 5) + "px"; | |
tooltip.style.display = "block"; | |
}); | |
element.addEventListener("mouseout", function () { | |
tooltip.style.display = "none"; | |
}); | |
} | |
}); | |
// Function to get tooltip content based on the element's ID | |
function getTooltipContent(elementId) { | |
// Example logic, you can customize it based on your needs | |
if (elementId === "shutdown-btn") { | |
return "Shutdown"; | |
} else if (elementId === "dataset-regenerate-index-btn") { | |
return "Refresh dataset"; | |
} else if (elementId === "dataset-update-source-edit-button") { | |
return "Change folder path"; | |
} else if (elementId === "chatbot-retry-button") { | |
return "Regenerate response"; | |
} else if (elementId === "chatbot-reset-button") { | |
return "Clear chat"; | |
} else if (elementId === "chatbot-undo-button") { | |
return "Undo"; | |
} | |
return null; | |
} | |
} |