Spaces:
Running
Running
Sebastiankay
commited on
Commit
•
fa18eeb
1
Parent(s):
e04cd4e
24. Sept. 2024, 19:19
Browse files- _res/_custom.js +94 -11
_res/_custom.js
CHANGED
@@ -87,19 +87,47 @@ function gradioCustomJS() {
|
|
87 |
body.style.setProperty("--primary-300", "color-mix(in srgb, var(--primary-600) 60%, white)")
|
88 |
body.style.setProperty("--primary-400", "color-mix(in srgb, var(--primary-600) 70%, white)")
|
89 |
body.style.setProperty("--primary-500", "color-mix(in srgb, var(--primary-600) 80%, white)")
|
90 |
-
body.style.setProperty("--primary-700", "color-mix(in srgb, var(--primary-600)
|
91 |
-
body.style.setProperty("--primary-800", "color-mix(in srgb, var(--primary-600)
|
92 |
-
body.style.setProperty("--primary-900", "color-mix(in srgb, var(--primary-600)
|
93 |
-
body.style.setProperty("--primary-950", "color-mix(in srgb, var(--primary-600)
|
94 |
-
|
95 |
-
body.style.setProperty("--block-title-text-color", "var(--neutral-950)")
|
96 |
-
body.style.setProperty("--block-label-text-color", "var(--neutral-950)")
|
97 |
-
body.style.setProperty("--checkbox-label-text-color", "var(--neutral-950)")
|
98 |
|
|
|
|
|
|
|
99 |
body.style.setProperty("--text-color-by-luminance", anpasseTextfarbe(usedColor))
|
100 |
-
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
const prompt_input = document.querySelector("#prompt_input")
|
105 |
prompt_input.setAttribute("autocomplete", "off")
|
@@ -173,5 +201,60 @@ function gradioCustomJS() {
|
|
173 |
// })
|
174 |
// })
|
175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
return "Custom Gradio JS"
|
177 |
}
|
|
|
87 |
body.style.setProperty("--primary-300", "color-mix(in srgb, var(--primary-600) 60%, white)")
|
88 |
body.style.setProperty("--primary-400", "color-mix(in srgb, var(--primary-600) 70%, white)")
|
89 |
body.style.setProperty("--primary-500", "color-mix(in srgb, var(--primary-600) 80%, white)")
|
90 |
+
body.style.setProperty("--primary-700", "color-mix(in srgb, var(--primary-600) 80%, black)")
|
91 |
+
body.style.setProperty("--primary-800", "color-mix(in srgb, var(--primary-600) 65%, black)")
|
92 |
+
body.style.setProperty("--primary-900", "color-mix(in srgb, var(--primary-600) 40%, black)")
|
93 |
+
body.style.setProperty("--primary-950", "color-mix(in srgb, var(--primary-600) 30%, black)")
|
|
|
|
|
|
|
|
|
94 |
|
95 |
+
body.style.setProperty("--button-primary-background-fill", "var(--primary-600)")
|
96 |
+
body.style.setProperty("--button-primary-background-fill-hover", "var(--primary-500)")
|
97 |
+
body.style.setProperty("--blur-value", "0px")
|
98 |
body.style.setProperty("--text-color-by-luminance", anpasseTextfarbe(usedColor))
|
99 |
+
|
100 |
+
// MARK: Selectors & Elements
|
101 |
+
const gradioApp = document.querySelector("gradio-app")
|
102 |
+
const gradioContainer = document.querySelector("body > gradio-app > div.gradio-container")
|
103 |
+
const alertModalElem = document.createElement("div")
|
104 |
+
const alertModalElemP = document.createElement("p")
|
105 |
+
const alertModalElemI = document.createElement("i")
|
106 |
+
alertModalElemI.className = "fas fa-exclamation-circle"
|
107 |
+
const alertModalElemSpan = document.createElement("span")
|
108 |
+
alertModalElemSpan.id = "alertModalText"
|
109 |
+
const alertModalElemButton = document.createElement("button")
|
110 |
+
alertModalElemButton.className = "lg primary run-btn svelte-cmf5ev"
|
111 |
+
alertModalElemButton.id = "alertModalBtn"
|
112 |
+
alertModalElemButton.textContent = "Ok"
|
113 |
+
alertModalElemP.id = "alertModalP"
|
114 |
+
alertModalElemP.append(alertModalElemI, alertModalElemSpan)
|
115 |
+
alertModalElem.id = "alertModal"
|
116 |
+
alertModalElem.style.display = "none"
|
117 |
+
alertModalElem.append(alertModalElemP, alertModalElemButton)
|
118 |
+
//alertModalElem.innerHTML = '<p></p>'
|
119 |
+
gradioApp.appendChild(alertModalElem)
|
120 |
+
|
121 |
+
alertModalElemButton.addEventListener("click", () => {
|
122 |
+
oldText = alertModalElemSpan.textContent
|
123 |
+
alertModalElemButton.disabled = true
|
124 |
+
alertModalElemSpan.innerHTML = 'Der "Ok" Button ändert nur diesen Text. 🫢<br/>In 2.5 Sekunden wird wieder die ursprüngliche Meldung gezeigt. Cool oder?'
|
125 |
+
setTimeout(() => {
|
126 |
+
alertModalElemSpan.textContent = oldText
|
127 |
+
alertModalElemButton.disabled = false
|
128 |
+
alertModalElemButton.textContent = "Noch mal?"
|
129 |
+
}, 2500)
|
130 |
+
})
|
131 |
|
132 |
const prompt_input = document.querySelector("#prompt_input")
|
133 |
prompt_input.setAttribute("autocomplete", "off")
|
|
|
201 |
// })
|
202 |
// })
|
203 |
|
204 |
+
// MARK: Element-Ready function
|
205 |
+
function elementReady(selector) {
|
206 |
+
return new Promise((resolve, reject) => {
|
207 |
+
const el = document.querySelector(selector)
|
208 |
+
if (el) {
|
209 |
+
resolve(el)
|
210 |
+
}
|
211 |
+
|
212 |
+
new MutationObserver((mutationRecords, observer) => {
|
213 |
+
Array.from(document.querySelectorAll(selector)).forEach((element) => {
|
214 |
+
resolve(element)
|
215 |
+
observer.disconnect()
|
216 |
+
})
|
217 |
+
}).observe(document.documentElement, {
|
218 |
+
childList: true,
|
219 |
+
subtree: true,
|
220 |
+
})
|
221 |
+
})
|
222 |
+
}
|
223 |
+
|
224 |
+
// MARK: Mobile Check
|
225 |
+
function istMobile() {
|
226 |
+
// Überprüfen, ob das Gerät ein Touchscreen hat
|
227 |
+
if ("ontouchstart" in window || (navigator.maxTouchPoints && window.innerWidth < 768)) {
|
228 |
+
gradioContainer.classList.add("blur-container")
|
229 |
+
body.style.setProperty("--blur-value", "12px")
|
230 |
+
gradioApp.style.height = "calc(100vh - 120px)"
|
231 |
+
alertModalElem.style.display = ""
|
232 |
+
alertModalElemSpan.textContent = "Diese Seite ist nicht für mobile Geräte optimiert. Bitte besuche diese Seite von einem Desktop-Computer aus."
|
233 |
+
} else if (window.innerWidth < 1024) {
|
234 |
+
gradioContainer.classList.add("blur-container")
|
235 |
+
body.style.setProperty("--blur-value", "12px")
|
236 |
+
gradioApp.style.height = "calc(100vh - 120px)"
|
237 |
+
alertModalElem.style.display = ""
|
238 |
+
alertModalElemSpan.textContent = "Bildschirm Auflösung oder Fensterbreite zu gering. Bitte besuche diese Seite von einem Desktop-Computer aus."
|
239 |
+
} else {
|
240 |
+
gradioContainer.classList.remove("blur-container")
|
241 |
+
body.style.setProperty("--blur-value", "0px")
|
242 |
+
gradioApp.style.height = ""
|
243 |
+
alertModalElem.style.display = "none"
|
244 |
+
alertModalElemSpan.textContent = ""
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
// MARK: Event Listeners
|
249 |
+
window.addEventListener("resize", () => {
|
250 |
+
console.log("Event Window resize.")
|
251 |
+
istMobile()
|
252 |
+
})
|
253 |
+
|
254 |
+
elementReady("body > gradio-app > div.gradio-container").then((element) => {
|
255 |
+
console.log("Element exist: " + element)
|
256 |
+
istMobile()
|
257 |
+
})
|
258 |
+
|
259 |
return "Custom Gradio JS"
|
260 |
}
|