Ir para o conteúdo

MediaWiki:Common.js: mudanças entre as edições

De Normas Regulamentadoras
Sem resumo de edição
Sem resumo de edição
Linha 35: Linha 35:
             $(this).nextUntil('.linha-nivel-' + nivelAtual).filter('.linha-nivel-' + proximoNivel).addClass('show');
             $(this).nextUntil('.linha-nivel-' + nivelAtual).filter('.linha-nivel-' + proximoNivel).addClass('show');
         }
         }
    });
});
/* Página Normas - Sistema Orbital - Lógica do Sistema Orbital com Auto-Ocultação e Suporte a Apelidos Dinâmicos */
$(document).ready(function() {
    var $containerOrbital = $('#sistema-orbital');
    var $listaPlanetas = $containerOrbital.find('.planeta-satelite');
    var totalPlanetas = $listaPlanetas.length;
    // Se a norma não tiver anexos (total de luas = 0), oculta a caixa inteira
    if (totalPlanetas === 0) {
        $containerOrbital.closest('.caixa-orbital-container').hide();
        return;
    } else {
        $containerOrbital.closest('.caixa-orbital-container').show();
    }
    var raio = 96;   
    var centroX = 120; // Centro horizontal da caixa de 240px
    var centroY = 120; // Centro vertical da caixa de 240px
    $listaPlanetas.each(function(index) {
        var $item = $(this);
       
        // Distribui os planetas igualmente em 360 graus
        var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2);
        var x = centroX + raio * Math.cos(angulo) - 22; // Desconto do raio do planeta (44px / 2)
        var y = centroY + raio * Math.sin(angulo) - 22;
        $item.css({
            'left': x + 'px',
            'top': y + 'px',
            'width': '44px', 
            'height': '44px'
        });
     });
     });
});
});

Edição das 09h31min de 15 de julho de 2026

/* Página Normas - Texto Principal  Lógica para Ativação de Notas Explicativas no texto de Norma/Anexo */
$(document).ready(function() {
    // Varre todas as notas sobrescritas que possuem conteúdo vindo do banco
    $('.item-nr .nota-sup').each(function() {
        var textoNota = $(this).text().trim();
        
        // Se a nota contiver texto (ex: [1]), transforma esse texto no Tooltip oficial
        if (textoNota && textoNota !== "[]") {
            $(this).attr('title', 'Nota Explicativa ' + textoNota);
        }
    });
});

/* Tabela NR 04 Anexo 1 */
$(function() {
    // Função genérica para alternar visibilidade e limpar descendentes
    $('.linha-nivel-1, .linha-nivel-2, .linha-nivel-3').on('click', function(e) {
        e.stopPropagation();
        
        var nivelAtual = parseInt($(this).attr('class').match(/linha-nivel-(\d)/)[1]);
        var proximoNivel = nivelAtual + 1;
        
        // Se a linha já estiver aberta, estamos fechando (recolhendo)
        if ($(this).hasClass('aberto')) {
            // Remove a classe 'aberto' desta linha
            $(this).removeClass('aberto');
            
            // Fecha todos os descendentes (recursivo)
            $(this).nextUntil('.linha-nivel-' + nivelAtual).removeClass('show aberto');
        } else {
            // Se estamos abrindo:
            $(this).addClass('aberto');
            
            // Mostra apenas os filhos imediatos (do próximo nível)
            $(this).nextUntil('.linha-nivel-' + nivelAtual).filter('.linha-nivel-' + proximoNivel).addClass('show');
        }
    });
});


/* Página Normas - Sistema Orbital - Lógica do Sistema Orbital com Auto-Ocultação e Suporte a Apelidos Dinâmicos */
$(document).ready(function() {
    var $containerOrbital = $('#sistema-orbital');
    var $listaPlanetas = $containerOrbital.find('.planeta-satelite');
    var totalPlanetas = $listaPlanetas.length;

    // Se a norma não tiver anexos (total de luas = 0), oculta a caixa inteira
    if (totalPlanetas === 0) {
        $containerOrbital.closest('.caixa-orbital-container').hide();
        return;
    } else {
        $containerOrbital.closest('.caixa-orbital-container').show();
    }

    var raio = 96;     
    var centroX = 120; // Centro horizontal da caixa de 240px
    var centroY = 120; // Centro vertical da caixa de 240px

    $listaPlanetas.each(function(index) {
        var $item = $(this);
        
        // Distribui os planetas igualmente em 360 graus
        var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2); 
        var x = centroX + raio * Math.cos(angulo) - 22; // Desconto do raio do planeta (44px / 2)
        var y = centroY + raio * Math.sin(angulo) - 22; 

        $item.css({
            'left': x + 'px',
            'top': y + 'px',
            'width': '44px',  
            'height': '44px'
        });
    });
});