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 4: Linha 4:
     if ($container.length === 0) return;
     if ($container.length === 0) return;


    // Seleciona apenas os elementos válidos gerados pelo Cargo
     var $itens = $container.find('.timeline-item');
     var $itens = $container.find('.timeline-item');
     if ($itens.length === 0) return;
     if ($itens.length === 0) return;
Linha 11: Linha 10:
     var grupoValido = [];
     var grupoValido = [];


    // Limpa o container para reconstruirmos na ordem exata e sem sujeira do MediaWiki
     var itensArray = $itens.toArray();
     var itensArray = $itens.toArray();
     $container.empty();
     $container.empty();


    // Varre de cima para baixo (do mais recente ao mais antigo)
     for (var i = 0; i < itensArray.length; i++) {
     for (var i = 0; i < itensArray.length; i++) {
         var $item = $(itensArray[i]);
         var $item = $(searchResults = itensArray[i]);
         var verbo = $item.data('verbo');
         var verbo = $item.data('verbo');


         grupoValido.push($item);
         grupoValido.push($item);


        // Se o item atual for um "R" OU se for o ÚLTIMO item da lista completa
         if (verbo === 'R' || i === itensArray.length - 1) {
         if (verbo === 'R' || i === itensArray.length - 1) {
            // Cria a caixa mãe física com a classe de cor correspondente
             var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
             var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
              
              
            // Joga todos os anos acumulados para dentro desta caixa mãe
             for (var j = 0; j < grupoValido.length; j++) {
             for (var j = 0; j < grupoValido.length; j++) {
                 $wrapper.append(grupoValido[j]);
                 $wrapper.append(grupoValido[j]);
             }
             }


             // Adiciona a caixa mãe pronta ao final do container
             // SE FOR O BLOCO 1 (VERDE VIGENTE), INJETA O TÍTULO DE VIGÊNCIAS ANTES DELE
            if (numeroBloco === 1) {
                var $tituloVigencias = $('<div class="titulo-bloco-vigencias">Vigências</div>');
                $container.append($tituloVigencias);
            }
 
             $container.append($wrapper);
             $container.append($wrapper);


            // Reseta o acumulador e avança para o próximo tom de cor
             grupoValido = [];
             grupoValido = [];
             numeroBloco++;
             numeroBloco++;

Edição das 21h25min de 8 de julho de 2026

/* Lógica de Agrupamento em Blocos Sólidos para o Infográfico */
$(document).ready(function() {
    var $container = $('#infografico-vigencia');
    if ($container.length === 0) return;

    var $itens = $container.find('.timeline-item');
    if ($itens.length === 0) return;

    var numeroBloco = 1;
    var grupoValido = [];

    var itensArray = $itens.toArray();
    $container.empty();

    for (var i = 0; i < itensArray.length; i++) {
        var $item = $(searchResults = itensArray[i]);
        var verbo = $item.data('verbo');

        grupoValido.push($item);

        if (verbo === 'R' || i === itensArray.length - 1) {
            var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
            
            for (var j = 0; j < grupoValido.length; j++) {
                $wrapper.append(grupoValido[j]);
            }

            // SE FOR O BLOCO 1 (VERDE VIGENTE), INJETA O TÍTULO DE VIGÊNCIAS ANTES DELE
            if (numeroBloco === 1) {
                var $tituloVigencias = $('<div class="titulo-bloco-vigencias">Vigências</div>');
                $container.append($tituloVigencias);
            }

            $container.append($wrapper);

            grupoValido = [];
            numeroBloco++;
        }
    }
});

/* Lógica do Sistema Orbital de Anexos com Tradução de Nomes e Auto-Ocultação */
$(document).ready(function() {
    var $containerOrbital = $('#sistema-orbital');
    var $listaPlanetas = $containerOrbital.find('.planeta-satelite');
    var totalPlanetas = $listaPlanetas.length;

    // SE NÃO HOUVER ANEXOS, FAZ A CAIXA INTEIRA SUMIR DO LAYOUT
    if (totalPlanetas === 0) {
        $containerOrbital.closest('.caixa-orbital-container').hide();
        return;
    }

    // O restante do seu script matemático continua exatamente igual daqui para baixo:
    var mapeamentoNomes = {
        "30": "13-A",
        "50": "Glossário",
        "60": "(*)"
    };

    var raio = 96;     
    var centroX = 120; 
    var centroY = 120; 

    $listaPlanetas.each(function(index) {
        var $item = $(this);
        var idOrigem = $item.data('anexo').toString().trim();
        
        if (mapeamentoNomes[idOrigem]) {
            if (mapeamentoNomes[idOrigem] === "Glossário" || mapeamentoNomes[idOrigem] === "(*)") {
                $item.find('span').html(mapeamentoNomes[idOrigem]);
            } else {
                $item.find('span').html("Anexo<br>" + mapeamentoNomes[idOrigem]);
            }
        } else {
            $item.find('span').html("Anexo<br>" + idOrigem);
        }

        var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2); 
        var x = centroX + raio * Math.cos(angulo) - 22; 
        var y = centroY + raio * Math.sin(angulo) - 22; 

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

/* Lógica para Ativação de Notas Explicativas na Lauda */
$(document).ready(function() {
    $('.item-linha[data-nota]:not([data-nota=""])').each(function() {
        var textoNota = $(this).attr('data-nota');
        $(this).find('.item-nota-explicativa').attr('title', textoNota);
    });
});