PlotDirector/PlotLine/wwwroot/js/scene-inspector-v2.js

56 lines
1.8 KiB
JavaScript

(() => {
const titles = {
"scene-details": "Manage scene details",
purpose: "Manage purpose",
metrics: "Manage metrics",
threads: "Manage threads",
characters: "Manage characters",
knowledge: "Manage knowledge",
relationships: "Manage relationships",
locations: "Manage locations",
assets: "Manage assets",
custody: "Manage custody",
notes: "Manage notes",
checklist: "Manage checklist",
attachments: "Manage attachments",
warnings: "Review warnings"
};
document.addEventListener("click", event => {
const openButton = event.target.closest("[data-scene-editor]");
if (openButton) {
const root = openButton.closest("[data-scene-inspector-v2]");
const overlay = root?.querySelector("[data-scene-editor-overlay]");
if (!overlay) {
return;
}
const key = openButton.dataset.sceneEditor;
const title = overlay.querySelector("[data-scene-editor-title]");
const body = overlay.querySelector("[data-scene-editor-body]");
if (title) {
title.textContent = titles[key] || "Focused editor";
}
if (body) {
body.textContent = "";
}
overlay.hidden = false;
overlay.setAttribute("aria-hidden", "false");
root.classList.add("editor-overlay-open");
overlay.querySelector("[data-scene-editor-close]")?.focus();
return;
}
const closeButton = event.target.closest("[data-scene-editor-close]");
if (closeButton) {
const overlay = closeButton.closest("[data-scene-editor-overlay]");
const root = closeButton.closest("[data-scene-inspector-v2]");
if (overlay) {
overlay.hidden = true;
overlay.setAttribute("aria-hidden", "true");
}
root?.classList.remove("editor-overlay-open");
}
});
})();