function showTrace()

in src/frontend_service/static/index.js [210:251]


function showTrace(event, id) {
    const trace = traces[id];
    const rect = event.target.getBoundingClientRect();

    let leftPosition = rect.left + window.scrollX;
    let topPosition = rect.bottom + window.scrollY;
    const windowWidth = window.innerWidth;
    const windowHeight = window.innerHeight;

    if (leftPosition + 500 > windowWidth) {
        leftPosition = windowWidth - 500;
    }
    if (topPosition + 500 > windowHeight) {
        topPosition = windowHeight - 500;
    }

    const tooltip = document.createElement('div');
    tooltip.id = "trace"
    tooltip.innerHTML = trace;
    tooltip.style.left = `${leftPosition}px`;
    tooltip.style.top = `${topPosition}px`;

    const overlay = document.createElement('div');
    overlay.style.position = 'fixed';
    overlay.style.top = '0';
    overlay.style.left = '0';
    overlay.style.width = '100%';
    overlay.style.height = '100%';
    overlay.style.backgroundColor = 'rgba(0,0,0,0.5)';

    overlay.addEventListener('click', function() {
        if (tooltip.parentNode) {
          tooltip.parentNode.removeChild(tooltip);
        }
        if (overlay.parentNode) {
          overlay.parentNode.removeChild(overlay);
        }
      });

    document.body.appendChild(overlay);
    document.body.appendChild(tooltip);
}