import {getAllModels} from "../getAll"; import {Tab} from "../Tab"; import {Graph} from "./Graph"; import {Outline} from "./Outline"; import {switchWnd} from "../util"; import {Backlink} from "./Backlink"; export const openBacklink = (protyle: IProtyle) => { const backlink = getAllModels().backlink.find(item => { if (item.blockId === protyle.block.id && item.type === "local") { item.parent.parent.removeTab(item.parent.id); return true; } }); if (backlink) { return; } const newWnd = protyle.model.parent.parent.split("lr"); const tab = new Tab({ icon: "iconLink", title: protyle.title.editElement.textContent, callback(tab: Tab) { tab.addModel(new Backlink({ type: "local", tab, // 通过搜索打开的包含上下文,但不是缩放,因此需要传 rootID https://ld246.com/article/1666786639708 blockId: protyle.block.showAll ? protyle.block.id : protyle.block.rootID, rootId: protyle.block.rootID, })); } }); newWnd.addTab(tab); }; export const openGraph = (protyle: IProtyle) => { const graph = getAllModels().graph.find(item => { if (item.blockId === protyle.block.id && item.type === "local") { item.parent.parent.removeTab(item.parent.id); return true; } }); if (graph) { return; } const wnd = protyle.model.parent.parent.split("lr"); const tab = new Tab({ icon: "iconGraph", title: protyle.title.editElement.textContent, callback(tab: Tab) { tab.addModel(new Graph({ type: "local", tab, blockId: protyle.block.id, rootId: protyle.block.rootID, })); } }); wnd.addTab(tab); }; export const openOutline = (protyle: IProtyle) => { const outlinePanel = getAllModels().outline.find(item => { if (item.blockId === protyle.block.rootID && item.type === "local") { item.parent.parent.removeTab(item.parent.id); return true; } }); if (outlinePanel) { return; } const newWnd = protyle.model.parent.parent.split("lr"); const tab = new Tab({ icon: "iconAlignCenter", title: protyle.title.editElement.textContent, callback(tab: Tab) { tab.addModel(new Outline({ type: "local", tab, blockId: protyle.block.rootID, })); } }); newWnd.addTab(tab); newWnd.element.classList.remove("fn__flex-1"); newWnd.element.style.width = "200px"; switchWnd(newWnd, protyle.model.parent.parent); }; export const resetFloatDockSize = () => { if (!window.siyuan.layout.leftDock.pin) { window.siyuan.layout.leftDock.layout.element.style.top = (1 + document.getElementById("toolbar").clientHeight + document.getElementById("dockTop").clientHeight) + "px"; window.siyuan.layout.leftDock.layout.element.style.bottom = (document.getElementById("status").clientHeight + document.getElementById("dockBottom").clientHeight + 1) + "px"; if (window.siyuan.layout.leftDock.layout.element.style.opacity === "1") { window.siyuan.layout.leftDock.layout.element.style.left = (window.siyuan.layout.leftDock.element.clientWidth + .5) + "px"; } } if (!window.siyuan.layout.rightDock.pin) { window.siyuan.layout.rightDock.layout.element.style.top = (1 + document.getElementById("toolbar").clientHeight + document.getElementById("dockTop").clientHeight) + "px"; window.siyuan.layout.rightDock.layout.element.style.bottom = (document.getElementById("status").clientHeight + document.getElementById("dockBottom").clientHeight + 1) + "px"; if (window.siyuan.layout.rightDock.layout.element.style.opacity === "1") { window.siyuan.layout.rightDock.layout.element.style.right = (window.siyuan.layout.rightDock.element.clientWidth + .5) + "px"; } } if (!window.siyuan.layout.topDock.pin && window.siyuan.layout.topDock.layout.element.style.opacity === "1") { window.siyuan.layout.topDock.layout.element.style.top = (document.getElementById("dockTop").clientHeight + document.getElementById("toolbar").clientHeight + 1) + "px"; } if (!window.siyuan.layout.bottomDock.pin && window.siyuan.layout.bottomDock.layout.element.style.opacity === "1") { window.siyuan.layout.bottomDock.layout.element.style.bottom = (document.getElementById("dockBottom").clientHeight + document.getElementById("status").clientHeight + 1) + "px"; } };