Array

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 3: Line 3:
// COLLAPSIBLE HEADERS
// COLLAPSIBLE HEADERS
$(document).ready(function () {
$(document).ready(function () {
     $(".collapsible-header").each(function () {
    // Procesar wrappers que contienen wikitext renderizado
         var header = $(this);
     $(".collapsible-wrapper").each(function () {
         var content = header.next(".collapsible-content");
         var wrapper = $(this);
         if (content.length === 0) return;
         var titleContent = wrapper.find(".collapsible-title-content");
         var startsOpen = header.hasClass("open");
        var bodyContent = wrapper.find(".collapsible-body-content");
       
         if (titleContent.length === 0 || bodyContent.length === 0) return;
       
         var startsOpen = wrapper.data("state") === "open";
       
        // Extraer el contenido ya renderizado
        var titleHTML = titleContent.html();
        var bodyHTML = bodyContent.html();
       
        // Crear estructura colapsable
        var header = $('<div class="collapsible-header"></div>');
        var content = $('<div class="collapsible-content"></div>');
       
        if (startsOpen) header.addClass("open");
       
         var arrow = startsOpen ? "▲" : "▼";
         var arrow = startsOpen ? "▲" : "▼";
         header.prepend('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
         header.append('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
        header.append(titleHTML);
        content.html(bodyHTML);
       
         if (!startsOpen) content.hide();
         if (!startsOpen) content.hide();
       
        // Reemplazar wrapper con nueva estructura
        wrapper.replaceWith(header.add(content));
       
        // Agregar evento click
         header.on("click", function () {
         header.on("click", function () {
             content.slideToggle(150);
             content.slideToggle(150);

Revision as of 14:22, 9 December 2025

/* Any JavaScript here will be loaded for all users on every page load. */

// COLLAPSIBLE HEADERS
$(document).ready(function () {
    // Procesar wrappers que contienen wikitext renderizado
    $(".collapsible-wrapper").each(function () {
        var wrapper = $(this);
        var titleContent = wrapper.find(".collapsible-title-content");
        var bodyContent = wrapper.find(".collapsible-body-content");
        
        if (titleContent.length === 0 || bodyContent.length === 0) return;
        
        var startsOpen = wrapper.data("state") === "open";
        
        // Extraer el contenido ya renderizado
        var titleHTML = titleContent.html();
        var bodyHTML = bodyContent.html();
        
        // Crear estructura colapsable
        var header = $('<div class="collapsible-header"></div>');
        var content = $('<div class="collapsible-content"></div>');
        
        if (startsOpen) header.addClass("open");
        
        var arrow = startsOpen ? "▲" : "▼";
        header.append('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
        header.append(titleHTML);
        content.html(bodyHTML);
        
        if (!startsOpen) content.hide();
        
        // Reemplazar wrapper con nueva estructura
        wrapper.replaceWith(header.add(content));
        
        // Agregar evento click
        header.on("click", function () {
            content.slideToggle(150);
            header.toggleClass("open");
            var icon = header.hasClass("open") ? "▲" : "▼";
            header.find(".collapse-toggle").text(icon);
        });
    });
});