43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
|
/*************
|
||
|
* Preview JS *
|
||
|
**************/
|
||
|
|
||
|
async function initPreview(view) {
|
||
|
const btnUndock = document.getElementById("btn-undock");
|
||
|
const btnDock = document.getElementById("btn-dock");
|
||
|
const editorContainer = document.getElementById("editor-main-container");
|
||
|
const previewContainer = document.getElementById("previewer-main-container");
|
||
|
|
||
|
function hidePreview() {
|
||
|
setVisibility(btnUndock, false);
|
||
|
// if not opened via button and therefore a popup, `window.close` won't work
|
||
|
setVisibility(btnDock, window.opener);
|
||
|
if (editorContainer) editorContainer.style.width = "100%";
|
||
|
if (previewContainer) setVisibility(previewContainer, false);
|
||
|
}
|
||
|
function showPreview() {
|
||
|
setVisibility(btnUndock, true);
|
||
|
setVisibility(btnDock, false);
|
||
|
if (editorContainer) editorContainer.style.removeProperty("width");
|
||
|
if (previewContainer) setVisibility(previewContainer, true);
|
||
|
}
|
||
|
function undock() {
|
||
|
const url = new URL(window.location.href);
|
||
|
url.searchParams.set("view", "previewer");
|
||
|
const previewer = window.open(url, "PlantUML Diagram Previewer", "popup");
|
||
|
if (previewer) {
|
||
|
previewer.onbeforeunload = showPreview;
|
||
|
hidePreview();
|
||
|
}
|
||
|
}
|
||
|
// add listener
|
||
|
btnUndock.addEventListener("click", undock);
|
||
|
// init preview components
|
||
|
await initializeDiagram();
|
||
|
initializePaginator()
|
||
|
// check preview visibility
|
||
|
if (["previewer", "editor"].includes(view)) {
|
||
|
hidePreview();
|
||
|
}
|
||
|
}
|