import {editor} from "./editor"; import {about} from "./about"; import {appearance} from "./appearance"; import {image} from "./image"; import {initConfigSearch} from "./search"; import {fileTree} from "./fileTree"; import {exportConfig} from "./exportConfig"; import {account} from "./account"; import {repos} from "./repos"; import {keymap} from "./keymap"; import {bazaar} from "./bazaar"; import {query} from "./query"; import {Dialog} from "../dialog"; export const openSetting = () => { const exitDialog = window.siyuan.dialogs.find((item) => { if (item.element.querySelector(".b3-tab-container")) { item.destroy(); return true; } }); if (exitDialog) { return exitDialog; } const height = Math.min(window.innerHeight * .9, Math.max(window.innerHeight * .7, 52 * 11)); const dialog = new Dialog({ content: `
${editor.genHTML()}
`, width: "80vw", }); initConfigSearch(dialog.element); dialog.element.querySelectorAll(".b3-tab-bar .b3-list-item").forEach(item => { item.addEventListener("click", () => { const type = item.getAttribute("data-name"); const containerElement = dialog.element.querySelector(`.b3-tab-container[data-name="${type}"]`); dialog.element.querySelectorAll(".b3-tab-container").forEach((container) => { container.classList.add("fn__none"); }); dialog.element.querySelector(".b3-tab-bar .b3-list-item.b3-list-item--focus").classList.remove("b3-list-item--focus"); item.classList.add("b3-list-item--focus"); containerElement.classList.remove("fn__none"); if (containerElement.innerHTML === "" || type === "repos") { switch (type) { case "filetree": containerElement.innerHTML = fileTree.genHTML(); fileTree.element = dialog.element.querySelector('.b3-tab-container[data-name="filetree"]'); fileTree.bindEvent(); break; case "image": containerElement.innerHTML = image.genHTML(); image.element = dialog.element.querySelector('.b3-tab-container[data-name="image"]'); image.bindEvent(); break; case "export": containerElement.innerHTML = exportConfig.genHTML(); exportConfig.element = dialog.element.querySelector('.b3-tab-container[data-name="export"]'); exportConfig.bindEvent(); break; case "appearance": containerElement.innerHTML = appearance.genHTML(); appearance.element = dialog.element.querySelector('.b3-tab-container[data-name="appearance"]'); appearance.bindEvent(); break; case "keymap": containerElement.innerHTML = keymap.genHTML(); keymap.element = dialog.element.querySelector('.b3-tab-container[data-name="keymap"]'); keymap.bindEvent(); break; case "bazaar": bazaar.element = dialog.element.querySelector('.b3-tab-container[data-name="bazaar"]'); containerElement.innerHTML = bazaar.genHTML(); bazaar.bindEvent(); break; case "account": containerElement.innerHTML = account.genHTML(); account.element = dialog.element.querySelector('.b3-tab-container[data-name="account"]'); account.bindEvent(); break; case "repos": containerElement.innerHTML = repos.genHTML(); repos.element = dialog.element.querySelector('.b3-tab-container[data-name="repos"]'); repos.bindEvent(); break; case "about": containerElement.innerHTML = about.genHTML(); about.element = dialog.element.querySelector('.b3-tab-container[data-name="about"]'); about.bindEvent(); break; case "search": containerElement.innerHTML = query.genHTML(); query.element = dialog.element.querySelector('.b3-tab-container[data-name="search"]'); query.bindEvent(); break; default: break; } } }); }); editor.element = dialog.element.querySelector('.b3-tab-container[data-name="editor"]'); editor.bindEvent(); return dialog; };