Jump to content

MediaWiki:Common.js: Difference between revisions

No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 79: Line 79:




/* --- LÓGICA DE CHEVRONS PARA O ÍNDICE (TOC) --- */
/* --- LÓGICA DE CHEVRONS UNIVERSAL (Vector 2022 + Legacy) --- */
$(function() {
$(function() {
     var $toc = $('#toc');
    // Tenta encontrar o índice em qualquer um dos formatos possíveis
     var $toc = $('.vector-toc, #toc, .toc');
     if (!$toc.length) return;
     if (!$toc.length) return;


     // Procura listas que são sub-itens (ul dentro de li)
     // Procura as listas de sub-itens
     $toc.find('li > ul').each(function() {
     $toc.find('li ul').each(function() {
         var $subList = $(this);
         var $subList = $(this);
         var $parentLi = $subList.parent();
         var $parentLi = $subList.parent();
          
          
         // Criar a seta (Chevron)
         // Evita duplicar setas se o script correr duas vezes
        if ($parentLi.find('.toc-custom-toggle').length) return;
 
         var $chevron = $('<span class="toc-custom-toggle"></span>')
         var $chevron = $('<span class="toc-custom-toggle"></span>')
             .html('&#9662;') // Seta para baixo
             .html('&#9656;') // Seta para a direita (fechado)
             .css({
             .css({
                 'cursor': 'pointer',
                 'cursor': 'pointer',
                 'margin-right': '6px',
                 'margin-right': '8px',
                 'display': 'inline-block',
                 'display': 'inline-block',
                 'transition': 'transform 0.2s',
                 'transition': 'transform 0.2s',
                 'color': '#0645ad',
                 'color': '#4477aa',
                 'font-weight': 'bold'
                 'font-size': '14px'
             });
             });


         // Insere a seta no início do item da lista
         // No Vector 2022, o link está dentro de uma div .vector-toc-link
         $parentLi.prepend($chevron);
        var $anchor = $parentLi.find('> a, > .vector-toc-link');
         $anchor.before($chevron);


         // Evento de clique
         // Começar colapsado
        $subList.hide();
       
         $chevron.on('click', function(e) {
         $chevron.on('click', function(e) {
            e.preventDefault();
             e.stopPropagation();
             e.stopPropagation();
             $subList.slideToggle('fast');
             $subList.slideToggle('fast');
              
              
            // Roda a seta
             if ($(this).data('collapsed')) {
             if ($(this).data('collapsed')) {
                 $(this).css('transform', 'rotate(0deg)').data('collapsed', false);
                 $(this).css('transform', 'rotate(0deg)').data('collapsed', false);
             } else {
             } else {
                 $(this).css('transform', 'rotate(-90deg)').data('collapsed', true);
                 $(this).css('transform', 'rotate(90deg)').data('collapsed', true);
             }
             }
         });
         });
        // Opcional: Descomenta a linha abaixo para o índice começar todo fechado
        // $subList.hide(); $chevron.css('transform', 'rotate(-90deg)').data('collapsed', true);
     });
     });
});
});