2022-01-07 15:18:07 +00:00
|
|
|
const Storage = require("store2")
|
2024-01-09 08:29:41 +00:00
|
|
|
const { v4: uuidv4 } = require("uuid")
|
2022-05-31 12:14:01 +00:00
|
|
|
const { COLOR_THEME_DARK, THEME, COLOR_THEME_AUTO } = require("./config.js")
|
2022-01-06 12:58:10 +00:00
|
|
|
|
2024-01-09 08:29:41 +00:00
|
|
|
import mermaid from "mermaid"
|
|
|
|
|
2022-01-06 12:58:10 +00:00
|
|
|
document.addEventListener("DOMContentLoaded", function (event) {
|
|
|
|
let lstore = Storage.namespace(THEME)
|
2022-11-02 14:09:14 +00:00
|
|
|
let currentMode = lstore.get("color-theme") || COLOR_THEME_AUTO
|
2022-01-06 12:58:10 +00:00
|
|
|
let darkModeQuery = window.matchMedia("(prefers-color-scheme: dark)")
|
|
|
|
let darkMode = false
|
2022-05-30 19:26:43 +00:00
|
|
|
let theme = "default"
|
2022-01-06 12:58:10 +00:00
|
|
|
|
2022-05-31 12:14:01 +00:00
|
|
|
if (
|
|
|
|
currentMode === COLOR_THEME_DARK ||
|
|
|
|
(currentMode === COLOR_THEME_AUTO && darkModeQuery.matches)
|
|
|
|
) {
|
2022-01-06 12:58:10 +00:00
|
|
|
darkMode = true
|
2022-05-30 19:26:43 +00:00
|
|
|
theme = "dark"
|
2022-01-06 12:58:10 +00:00
|
|
|
}
|
|
|
|
|
2024-01-09 08:29:41 +00:00
|
|
|
mermaid.initialize({
|
|
|
|
startOnLoad: false,
|
|
|
|
flowchart: { useMaxWidth: true },
|
|
|
|
theme: theme,
|
|
|
|
themeVariables: {
|
|
|
|
darkMode: darkMode
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
document.querySelectorAll(".mermaid").forEach(function (el) {
|
|
|
|
let id = "graph-" + uuidv4()
|
|
|
|
|
|
|
|
mermaid.render(id, el.innerText).then(({ svg, bindFunctions }) => {
|
|
|
|
el.innerHTML = svg
|
|
|
|
bindFunctions?.(el)
|
2022-01-06 12:58:10 +00:00
|
|
|
})
|
2024-01-09 08:29:41 +00:00
|
|
|
})
|
2022-01-06 12:58:10 +00:00
|
|
|
})
|