/This content is password protected
To view it
(function () { function setup(wrap) { if (wrap.dataset.tooltipReady) return; wrap.dataset.tooltipReady = "1"; const svg = wrap.querySelector("svg"); const tooltip = wrap.querySelector(".diagram-tooltip"); if (!svg || !tooltip) return; svg.addEventListener("pointermove", (e) => { const g = e.target.closest("g"); if (!g) return; tooltip.textContent = g.getAttribute("data-name") || g.id || "Part"; tooltip.classList.add("is-visible"); const r = wrap.getBoundingClientRect(); tooltip.style.left = (e.clientX - r.left) + "px"; tooltip.style.top = (e.clientY - r.top) + "px"; }); svg.addEventListener("pointerleave", () => { tooltip.classList.remove("is-visible"); }); } const boot = () => document.querySelectorAll(".diagram-wrap").forEach(setup); boot(); new MutationObserver(boot).observe(document.documentElement, { childList: true, subtree: true }); })();