const exportURL = window.location.href.replace("settings.html", "") + "index.html#" + btoa(JSON.stringify(dataExport));
- if (!window.navigator.userAgent.includes("Mozilla")) {
+ if (!window.navigator.userAgent.includes("Firefox")) {
try {
}
});
+const backupData = () => {
+
+ localStorage.setItem("theme", JSON.stringify(theme));
+}
+
const override_css = document.getElementById("override_css");
-const update = () => {
+override_css.onkeydown = (event) => {
+ if (event.keyCode == 9) {
+
+ // Hacky workaround here that doesn't work right, will just prevent default for now.
+ // event.target.setRangeText("\t", this.selectionStart, this.selectionEnd, "end");
+ return false;
+ }
+}
+
+override_css.addEventListener("input", (event) => {
+
+ theme.css = event.target.value;
+ backupData();
+ update(true);
+});
+
+const update = (force = false) => {
+
+ if (theme.colorScheme != "default") {
+
+ document.getElementByTagName("body")[0].classList.add(theme.colorScheme);
+ }
+
+ if (theme.css != "" || force) {
+
+ const cssOverride = document.createElement("style");
+ cssOverride.setAttribute("id", "styleOverride");
+ cssOverride.innerHTML = theme.css.replaceAll("<", "<").replaceAll(">", ">");
+ if (document.getElementById("styleOverride")) document.getElementById("styleOverride").remove();
+ document.getElementsByTagName("head")[0].appendChild(cssOverride);
+
+ if (!force) override_css.value = theme.css;
+ }
}
+
+update();