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 48: Linha 48:
     if (totalPlanetas === 0) return;
     if (totalPlanetas === 0) return;


     var raio = 94; // Aumentado de 80 para 94 (espalha mais os planetas)
    // Configurações de escala ideais para comportar até 16 anexos
     var centroX = 120; // Ajustado para a metade de 240px
     var raio = 96;     // Mantém os planetas bem distribuídos na borda da órbita
     var centroY = 120; // Ajustado para a metade de 240px
     var centroX = 120; // Centro horizontal da caixa de 240px
     var centroY = 120; // Centro vertical da caixa de 240px


     $listaPlanetas.each(function(index) {
     $listaPlanetas.each(function(index) {
        // Divide os 360 graus igualmente entre os anexos existentes
         var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2);  
         var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2);  
          
          
         // Calcula as coordenadas X e Y na órbita
         // Aplica o cálculo matemático posicionando com desconto do novo tamanho (44px / 2 = 22)
         var x = centroX + raio * Math.cos(angulo) - 25; // Desconto de metade da largura do planeta (50px / 2)
         var x = centroX + raio * Math.cos(angulo) - 22;  
         var y = centroY + raio * Math.sin(angulo) - 25; // Desconto de metade da altura do planeta
         var y = centroY + raio * Math.sin(angulo) - 22;  


        // Aplica a posição física no elemento
         $(this).css({
         $(this).css({
             'left': x + 'px',
             'left': x + 'px',
             'top': y + 'px'
             'top': y + 'px',
            'width': '44px',  // Força o tamanho compacto dinamicamente
            'height': '44px'
         });
         });
     });
     });
});
});

Edição das 14h40min 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;

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

    var numeroBloco = 1;
    var grupoValido = [];

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

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

        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) {
            // Cria a caixa mãe física com a classe de cor correspondente
            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++) {
                $wrapper.append(grupoValido[j]);
            }

            // Adiciona a caixa mãe pronta ao final do container
            $container.append($wrapper);

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

/* Lógica do Sistema Orbital de Anexos */
$(document).ready(function() {
    var $listaPlanetas = $('#sistema-orbital .planeta-satelite');
    var totalPlanetas = $listaPlanetas.length;
    if (totalPlanetas === 0) return;

    // Configurações de escala ideais para comportar até 16 anexos
    var raio = 96;     // Mantém os planetas bem distribuídos na borda da órbita
    var centroX = 120; // Centro horizontal da caixa de 240px
    var centroY = 120; // Centro vertical da caixa de 240px

    $listaPlanetas.each(function(index) {
        var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2); 
        
        // Aplica o cálculo matemático posicionando com desconto do novo tamanho (44px / 2 = 22)
        var x = centroX + raio * Math.cos(angulo) - 22; 
        var y = centroY + raio * Math.sin(angulo) - 22; 

        $(this).css({
            'left': x + 'px',
            'top': y + 'px',
            'width': '44px',  // Força o tamanho compacto dinamicamente
            'height': '44px'
        });
    });
});