Initial import of NODEDC BIM Viewer

This commit is contained in:
CODEX
2026-06-04 13:25:42 +03:00
commit 9aaf82862f
2075 changed files with 3592575 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
export function createObjectModal({ panel, backdrop, onDelete, onClose }) {
let activeTarget = null;
const hide = () => {
if (panel) {
panel.classList.add("hidden");
panel.style.display = "";
}
if (backdrop) {
backdrop.classList.add("hidden");
backdrop.style.display = "";
}
activeTarget = null;
onClose?.();
};
const render = () => {
if (!panel) return;
panel.innerHTML = "";
const header = document.createElement("div");
header.className = "templates-header";
header.innerHTML = `<span class="templates-title">Объект</span>`;
const closeBtn = document.createElement("button");
closeBtn.className = "templates-close";
closeBtn.textContent = "×";
closeBtn.addEventListener("click", hide);
header.appendChild(closeBtn);
panel.appendChild(header);
const list = document.createElement("div");
list.className = "template-list";
panel.appendChild(list);
if (activeTarget?.label) {
const label = document.createElement("div");
label.className = "muted";
label.style.margin = "0 0 8px";
label.textContent = activeTarget.label;
list.appendChild(label);
}
const deleteBtn = document.createElement("button");
deleteBtn.className = "example-card danger-btn";
deleteBtn.textContent = "Удалить объект";
deleteBtn.addEventListener("click", () => {
if (!activeTarget?.modelId) return;
onDelete?.(activeTarget);
});
list.appendChild(deleteBtn);
};
const show = ({ modelId, label } = {}) => {
activeTarget = { modelId, label };
render();
if (panel) {
panel.classList.remove("hidden");
panel.style.display = "grid";
}
if (backdrop) {
backdrop.classList.remove("hidden");
backdrop.style.display = "block";
}
};
if (backdrop) {
backdrop.addEventListener("click", hide);
}
return {
show,
hide,
};
}