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"; import {ai} from "./ai"; import {flashcard} from "./flashcard"; import {App} from "../index"; export const genItemPanel = (type: string, containerElement:Element, app: App) => { switch (type) { case "filetree": containerElement.innerHTML = fileTree.genHTML(); fileTree.element = containerElement; fileTree.bindEvent(); break; case "AI": containerElement.innerHTML = ai.genHTML(); ai.element = containerElement; ai.bindEvent(); break; case "card": containerElement.innerHTML = flashcard.genHTML(); flashcard.element = containerElement; flashcard.bindEvent(); break; case "image": containerElement.innerHTML = image.genHTML(); image.element = containerElement; image.bindEvent(); break; case "export": containerElement.innerHTML = exportConfig.genHTML(); exportConfig.element = containerElement; exportConfig.bindEvent(); break; case "appearance": containerElement.innerHTML = appearance.genHTML(); appearance.element = containerElement; appearance.bindEvent(); break; case "keymap": containerElement.innerHTML = keymap.genHTML(); keymap.element = containerElement; keymap.bindEvent(); break; case "bazaar": bazaar.element = containerElement; containerElement.innerHTML = bazaar.genHTML(); bazaar.bindEvent(app); break; case "account": containerElement.innerHTML = account.genHTML(); account.element = containerElement; account.bindEvent(account.element); break; case "repos": containerElement.innerHTML = repos.genHTML(); repos.element = containerElement; repos.bindEvent(); break; case "about": containerElement.innerHTML = about.genHTML(); about.element = containerElement; about.bindEvent(); break; case "search": containerElement.innerHTML = query.genHTML(); query.element = containerElement; query.bindEvent(); break; default: break; } }; export const openSetting = (app:App) => { const exitDialog = window.siyuan.dialogs.find((item) => { if (item.element.querySelector(".config__tab-container")) { item.destroy(); return true; } }); if (exitDialog) { return exitDialog; } const dialog = new Dialog({ content: `
`, width: "90vw", }); initConfigSearch(dialog.element, app); (dialog.element.querySelector(".b3-dialog__container") as HTMLElement).style.maxWidth = "1280px"; 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(`.config__tab-container[data-name="${type}"]`); dialog.element.querySelectorAll(".config__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" || type === "bazaar") { genItemPanel(type, containerElement, app); } }); }); editor.element = dialog.element.querySelector('.config__tab-container[data-name="editor"]'); editor.bindEvent(); return dialog; };