MediaWiki:Common.js

De Grêmiopédia, a enciclopédia do Grêmio
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
/* CDB2026 AUTO BEGIN */ (function () {  'use strict';  function boot(context) {  (context || document).querySelectorAll('.br2026-auto[data-competition="CDB2026"]').forEach(function (root) {  if (root.dataset.ready) return;  var panels=Array.from(root.querySelectorAll('[data-cdb-phase]'));  if(panels.length!==9) return;  var controls=document.createElement('nav');controls.className='br2026-controls';controls.setAttribute('aria-label','Navegação entre fases da Copa do Brasil');  var prev=document.createElement('button'),next=document.createElement('button'),select=document.createElement('select');  prev.type=next.type='button';prev.textContent='‹';next.textContent='›';prev.setAttribute('aria-label','Fase anterior');next.setAttribute('aria-label','Próxima fase');select.setAttribute('aria-label','Selecionar fase');  panels.forEach(function(p){var o=document.createElement('option');o.value=p.dataset.cdbPhase;o.textContent=p.dataset.phaseLabel;select.appendChild(o);});controls.append(prev,select,next);root.querySelector('.br2026-rounds').prepend(controls);  var current=Math.min(9,Math.max(1,Number(root.dataset.defaultPhase)||1));  function show(n){current=n;panels.forEach(function(p){var visible=Number(p.dataset.cdbPhase)===n;p.hidden=!visible;p.style.display=visible?'':'none';});select.value=String(n);prev.disabled=n===1;next.disabled=n===9;}  prev.addEventListener('click',function(){show(Math.max(1,current-1));});next.addEventListener('click',function(){show(Math.min(9,current+1));});select.addEventListener('change',function(){show(Number(select.value));});root.dataset.ready='1';show(current);  });  }  if(typeof mw!=='undefined'&&mw.hook)mw.hook('wikipage.content').add(function(c){boot(c[0]||c);});  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',function(){boot(document);});else boot(document); })(); /* CDB2026 AUTO END */   /* BR2026 AUTO BEGIN */ /* Scoped enhancement for Predefinição:BR2026-01_automatico; append, do not replace Common.js. */ (function () {  'use strict';  function boot(context) {  (context || document).querySelectorAll('.br2026-auto').forEach(function (root) {  if (root.dataset.ready) return;   var panels = Array.from(root.querySelectorAll('[data-br-round]'));  if ([38,46].indexOf(panels.length) === -1 && !((root.dataset.season === '2002' && panels.length === 35) || (root.dataset.season === '2001' && panels.length === 31) || (root.dataset.season === '2000' && panels.length === 73) || (root.dataset.season === '1999' && panels.length === 63) || (root.dataset.season === '1998' && panels.length === 59) || (root.dataset.season === '1997' && panels.length === 34) || (root.dataset.season === '1996' && panels.length === 29) || (root.dataset.season === '1995' && panels.length === 71) || (root.dataset.season === '1994' && panels.length === 92) || (root.dataset.season === '1993' && panels.length === 24) || (root.dataset.season === '1988' && panels.length === 29) || (root.dataset.season === "1970" && panels.length === 45) || (root.dataset.season === "1969" && panels.length === 41) || (root.dataset.season === "1968" && panels.length === 49) || (root.dataset.season === "1968_tbr" && panels.length === 54) || (root.dataset.season === "1967" && panels.length === 41) || (root.dataset.season === "1967_tbr" && panels.length === 46) || (root.dataset.season === "1966" && panels.length === 45) || (root.dataset.season === "1965" && panels.length === 40) || (root.dataset.season === "1964" && panels.length === 42) || (root.dataset.season === "1963" && panels.length === 42) || (root.dataset.season === "1961" && panels.length === 35) || (root.dataset.season === "1960" && panels.length === 35) || (root.dataset.season === "1959" && panels.length === 32) || (root.dataset.season === "1986" && panels.length === 29) || (root.dataset.season === "1985" && panels.length === 31) || (root.dataset.season === "1984" && panels.length === 29) || (root.dataset.season === "1983" && panels.length === 29) || (root.dataset.season === "1982" && panels.length === 24) || (root.dataset.season === "1981" && panels.length === 23) || (root.dataset.season === "1980" && panels.length === 23) || (root.dataset.season === "1979" && panels.length === 56) || (root.dataset.season === "1978" && panels.length === 90) || (root.dataset.season === "1977" && panels.length === 52) || (root.dataset.season === "1976" && panels.length === 43) || (root.dataset.season === "1975" && panels.length === 48) || (root.dataset.season === "1974" && panels.length === 27) || (root.dataset.season === "1973" && panels.length === 75) || (root.dataset.season === "1972" && panels.length === 30) || (root.dataset.season === "1971" && panels.length === 53) || (root.dataset.season === "1987" && panels.length === 83) || (root.dataset.season === '1991' && panels.length === 62) || (root.dataset.season === '1990' && panels.length === 52) || (root.dataset.season === '1989' && panels.length === 51))) return;  root.dataset.ready = '1';  var controls = document.createElement('nav'); controls.className = 'br2026-controls'; controls.setAttribute('aria-label','Navegação entre rodadas');  var prev = document.createElement('button'), next = document.createElement('button'), select = document.createElement('select');  prev.type = next.type = 'button'; prev.textContent = '‹'; next.textContent = '›';  prev.setAttribute('aria-label','Rodada anterior'); next.setAttribute('aria-label','Próxima rodada'); select.setAttribute('aria-label','Selecionar rodada');  panels.forEach(function (panel, i) { var option = document.createElement('option'); option.value = i + 1; option.textContent = panel.getAttribute('data-round-label') || (i + 1) + 'ª rodada'; select.appendChild(option); });  var label = document.createElement('span'); label.className = 'br2026-selected'; label.setAttribute('aria-live','polite');  controls.append(prev, select, next, label); root.querySelector('.br2026-rounds').prepend(controls);  var host = root.closest('.rodada-viewer') || root;  var current = Math.min(panels.length, Math.max(1, Number(host.dataset.br2026Selection || root.dataset.defaultRound) || 1));  function show(n) { current = n; host.dataset.br2026Selection = String(n); panels.forEach(function (p) { p.hidden = Number(p.dataset.brRound) !== n; p.style.display = p.hidden ? 'none' : ''; }); select.value = String(n); prev.disabled = n === 1; next.disabled = n === panels.length; label.textContent = panels[n - 1].getAttribute('data-round-label') || n + 'ª rodada'; }  prev.addEventListener('click',function () { show(Math.max(1,current-1)); }); next.addEventListener('click',function () { show(Math.min(panels.length,current+1)); }); select.addEventListener('change',function () { show(Number(select.value)); }); show(current);  });  }  if (typeof mw !== 'undefined' && mw.hook) mw.hook('wikipage.content').add(function (content) { boot(content[0] || content); });  function start() {  boot(document);  document.querySelectorAll('.rodada-viewer[data-giro="BR2026-01_automatico"],.rodada-viewer[data-rodada="BR2026-01_automatico"],.rodada-viewer[data-giro="BR2026_automatico"],.rodada-viewer[data-rodada="BR2026_automatico"],.rodada-viewer[data-giro="BR2025-01_automatico"],.rodada-viewer[data-rodada="BR2025-01_automatico"],.rodada-viewer[data-giro="BR2025_automatico"],.rodada-viewer[data-rodada="BR2025_automatico"],.rodada-viewer[data-giro="BR2023_automatico"],.rodada-viewer[data-rodada="BR2023_automatico"],.rodada-viewer[data-giro="BR2021_automatico"],.rodada-viewer[data-rodada="BR2021_automatico"],.rodada-viewer[data-giro="BR2003_automatico"],.rodada-viewer[data-rodada="BR2003_automatico"],.rodada-viewer[data-giro="BR2004_automatico"],.rodada-viewer[data-rodada="BR2004_automatico"],.rodada-viewer[data-giro="BR2006_automatico"],.rodada-viewer[data-rodada="BR2006_automatico"],.rodada-viewer[data-giro="BR2007_automatico"],.rodada-viewer[data-rodada="BR2007_automatico"],.rodada-viewer[data-giro="BR2008_automatico"],.rodada-viewer[data-rodada="BR2008_automatico"],.rodada-viewer[data-giro="BR2009_automatico"],.rodada-viewer[data-rodada="BR2009_automatico"],.rodada-viewer[data-giro="BR2010_automatico"],.rodada-viewer[data-rodada="BR2010_automatico"],.rodada-viewer[data-giro="BR2011_automatico"],.rodada-viewer[data-rodada="BR2011_automatico"],.rodada-viewer[data-giro="BR2012_automatico"],.rodada-viewer[data-rodada="BR2012_automatico"],.rodada-viewer[data-giro="BR2013_automatico"],.rodada-viewer[data-rodada="BR2013_automatico"],.rodada-viewer[data-giro="BR2014_automatico"],.rodada-viewer[data-rodada="BR2014_automatico"],.rodada-viewer[data-giro="BR2015_automatico"],.rodada-viewer[data-rodada="BR2015_automatico"],.rodada-viewer[data-giro="BR2016_automatico"],.rodada-viewer[data-rodada="BR2016_automatico"],.rodada-viewer[data-giro="BR2017_automatico"],.rodada-viewer[data-rodada="BR2017_automatico"],.rodada-viewer[data-giro="BR2018_automatico"],.rodada-viewer[data-rodada="BR2018_automatico"],.rodada-viewer[data-giro="BR2019_automatico"],.rodada-viewer[data-rodada="BR2019_automatico"],.rodada-viewer[data-giro="BR2020_automatico"],.rodada-viewer[data-rodada="BR2020_automatico"],.rodada-viewer[data-giro="BR2022_automatico"],.rodada-viewer[data-rodada="BR2022_automatico"],.rodada-viewer[data-giro="BR2024_automatico"],.rodada-viewer[data-rodada="BR2024_automatico"]').forEach(function (viewer) {  var observer = new MutationObserver(function () {  boot(viewer);  });  observer.observe(viewer, {childList:true});  });  }  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded',start);  else start(); })();  /* BR2026 AUTO END */     /* Qualquer código JavaScript presente aqui será carregado por todos os usuários em cada página carregada. */ /*jshint camelcase: true, curly: true, eqeqeq: true, immed: true, latedef: true, newcap: true, noarg: true, noempty: true, nonew: true, quotmark: single, trailing: true, undef: true, unused: true, bitwise: true, forin: true, regexp: true, strict: true, onevar: true, laxbreak: true */ /*global mediaWiki, jQuery */  // Esconde botões "Ver código-fonte" e "Ver histórico" para usuários anônimos mw.loader.using(['mediawiki.user', 'mediawiki.util'], function () {  $(document).ready(function () {  if (!mw.user.isLoggedIn()) {  // Remove botões visíveis diretamente (skins antigas ou personalizadas)  $('#ca-viewsource, #ca-history').remove();   // Observa mudanças no DOM para pegar botões que aparecem depois  const observer = new MutationObserver(function () {  // Remove itens do menu suspenso  $('a[href*="action=history"], a[href*="action=edit"], a[href*="action=submit"]').each(function () {  const texto = $(this).text().toLowerCase();  if (texto.includes('histórico') || texto.includes('ver código-fonte')) {  $(this).closest('li').remove();  }  });  });   observer.observe(document.body, {  childList: true,  subtree: true  });  }  }); });  //carrocel de imagens de 3 segundos mw.loader.using('jquery', function() {  $(document).ready(function() {  setInterval(function() {  var slides = $("#slideshow .slide");  slides.each(function(i) {  if ($(this).css("display") === "block") {  $(this).css("display", "none");  var next = (i + 1) % slides.length;  slides.eq(next).css("display", "block");  return false;  }  });  }, 3000); // Troca a cada 3 segundos  }); });  ( function ( mw, $ ) { 'use strict';  /**  * Oculta botão editar da [[Wikipédia:Esplanada/propostas]] e da [[Wikipédia:Esplanada/geral]]  *  * @author: Helder (https://github.com/he7d3r)  * @license: CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/>  */ function hideEditButton() {  var temp = 'Template:Esplanada2/Preload';   if ( mw.config.get( 'wgUserLanguage' ) !== 'pt' ) {  temp += '/en';  }   $( '#ca-addsection' ).find( 'a' ).attr(  'href',  mw.util.getUrl( mw.config.get( 'wgPageName' ), {  action: 'edit',  section: 'new',  preload: temp  } )  );   if ( mw.config.get( 'skin' ) === 'vector' ) {  // Move o botão "editar" para o menu de ações  $( '#p-cactions' ).removeClass( 'emptyPortlet' ).find( 'ul' ).append( $( '#ca-edit' ) );  } }  /**  * Parâmetros &withCSS= e &withJS= para a URL  *   * Permite que sejam testados scripts e folhas de estilos do domínio MediaWiki  * sem precisar editar páginas ".css" ou ".js" pessoais  * @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL  * @revision 2016-03-26  */ mw.loader.using( ['mediawiki.util', 'mediawiki.notify'], function () {  var extraCSS = mw.util.getParamValue( 'withCSS' ),  extraJS = mw.util.getParamValue( 'withJS' );   if ( extraCSS ) {  if ( /^MediaWiki:[^&<>=%#]*\.css$/.test( extraCSS ) ) {  mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );  } else {  mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withCSS inválido' } );  }  }   if ( extraJS ) {  if ( /^MediaWiki:[^&<>=%#]*\.js$/.test( extraJS ) ) {  mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );  } else {  mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withJS inválido' } );  }  } } );  // Ocultar a barra de sumário das páginas de pedidos mw.loader.using( 'mediawiki.util', function () {  if ( /Wikipédia:Pedidos\/(?!Outros|Revisão_de_ações_administrativas$)/.test( mw.config.get( 'wgPageName' ) ) && mw.util.getParamValue( 'section' ) === 'new' ) {  $( '.mw-summary' ).hide();  } } );  // Scripts para páginas específicas if ( $.inArray( mw.config.get( 'wgPageName' ), [ 'Wikipédia:Esplanada/propostas', 'Wikipédia:Esplanada/geral' ] ) !== -1 ) {  $( hideEditButton ); }  }( mediaWiki, jQuery ) );  if (mw.config.get('wgPagename') === 'Usuário:Maicon_Silva/sandbox') {  window.location.replace(mw.util.getUrl('Usuário:Maicon Silva/Testes')); }  //testes lazy document.addEventListener("DOMContentLoaded", function () {  // Seleciona todas as imagens  const images = document.querySelectorAll('img');   images.forEach(function (img) {  // Verifica se a imagem está dentro de um NavFrame  if (img.closest('.NavFrame')) {  // Remove o atributo 'loading="lazy"' das imagens dentro de NavFrame  img.removeAttribute('loading');  } else {  // Garante que as imagens fora de NavFrame tenham lazy loading  if (!img.hasAttribute('loading')) {  img.setAttribute('loading', 'lazy');  }  }  }); });  // proteger o código fonte $(document).ready(function () {  var viewSourceTab = $('#ca-viewsource');   if (viewSourceTab.length) {  var link = viewSourceTab.find('a');  var label = link.text();  var href = link.attr('href');   // Cria novo item no menu lateral  var newItem = $('<li><a href="' + href + '">' + label + '</a></li>');   // Adiciona no menu lateral, em uma seção customizada  var toolbox = $('#p-tb ul');  if (!toolbox.length) {  // Se não existir a toolbox, cria  $('#mw-panel').append(  '<div class="portal" role="navigation" id="p-custom" aria-labelledby="p-custom-label">' +  '<h3 id="p-custom-label">Ações</h3>' +  '<div class="body"><ul></ul></div></div>'  );  toolbox = $('#p-custom ul');  }   toolbox.append(newItem);   // Remove a aba do topo  viewSourceTab.remove();  } });   // Começa código Giro (function (mw, $) {  'use strict';   function normalizeKey(key) {  return String(key).replace(/[^a-z0-9]/gi, '_');  }   function getRodadaFromHash(key) {  var h = window.location.hash || '';  var re = new RegExp('(?:^|[&#])rodada_' + key + '=([^&]+)', 'i');  var m = h.match(re);  return m ? decodeURIComponent(m[1]) : null;  }   function setRodadaInHash(key, value) {  var hash = (window.location.hash || '').replace(/^#/, '');  var parts = hash ? hash.split('&') : [];  var found = false;   parts = parts.map(function (p) {  if (p.toLowerCase().indexOf(('rodada_' + key + '=').toLowerCase()) === 0) {  found = true;  return 'rodada_' + key + '=' + encodeURIComponent(value);  }  return p;  });   if (!found) {  parts.push('rodada_' + key + '=' + encodeURIComponent(value));  }   window.location.hash = parts.filter(Boolean).join('&');  }   function renderRodada($box, rodada) {  if (!rodada) return;  // Initial HTML is server-rendered for the reviewed heavy championship modules.  if ($box.attr('data-initial-rendered') === '1' && String(rodada) === String($box.attr('data-rodada'))) return;   $box.addClass('is-loading');   new mw.Api().post({  action: 'parse',  format: 'json',  contentmodel: 'wikitext',  prop: 'text',  disableeditsection: 1,  disablelimitreport: 1,  title: mw.config.get('wgPageName'),  text: '{{' + rodada + '}}'  }).then(function (data) {  var html = data && data.parse && data.parse.text && data.parse.text['*'];  $box.html(html || '<div>Falha ao renderizar</div>');  }).catch(function (e) {  $box.html('<div>Erro ao carregar rodada</div>');  if (window.console) console.error(e);  }).always(function () {  $box.removeClass('is-loading');  });  }   function boot() {  var $boxes = $('.rodada-viewer');  if (!$boxes.length) return;   function loadOne($box) {  var rawKey = $box.data('giro');  var key = normalizeKey(rawKey);  var rodada = getRodadaFromHash(key) || $box.data('rodada');  renderRodada($box, rodada);  }   function loadAll() {  $boxes.each(function () { loadOne($(this)); });  }   loadAll();  $(window).on('hashchange', loadAll);   $boxes.on('click', 'a', function (e) {  var href = this.getAttribute('href') || '';  if (href.indexOf('#rodada=') === 0) {  e.preventDefault();   var $box = $(this).closest('.rodada-viewer');  var rawKey = $box.data('giro');  var key = normalizeKey(rawKey);  var rodadaNova = href.substring('#rodada='.length);   setRodadaInHash(key, rodadaNova);  }  });  }   mw.loader.using(['mediawiki.api', 'jquery']).then(boot);  })(mediaWiki, jQuery);  /* SULA UNIFIED NAVIGATION BEGIN */ (function () {  'use strict';  function boot(context) {  (context || document).querySelectorAll('.br2026-auto[data-competition="SULA2021"],.br2026-auto[data-competition="SULA2025"],.br2026-auto[data-competition="SULA2026"]').forEach(function(root) {  if(root.dataset.sulaUnified) return;  var panels=Array.from(root.querySelectorAll('[data-cdb-phase]'));  var groupPanel=root.querySelector('[data-cdb-phase="2"]');  var rounds=groupPanel?Array.from(groupPanel.querySelectorAll('[data-sula-round]')):[];  var expected=root.dataset.competition==='SULA2021'?6:7;  if(panels.length!==expected||rounds.length!==6||panels.some(function(p,i){return Number(p.dataset.cdbPhase)!==i+1;})||rounds.some(function(p,i){return Number(p.dataset.sulaRound)!==i+1;}))return;  if(!document.getElementById('sula2026-responsive-style')){  var style=document.createElement('style');style.id='sula2026-responsive-style';style.textContent='.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-team{flex-direction:column;align-items:center;gap:3px;text-align:center}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-clubname{max-width:none;overflow-wrap:normal;word-break:normal;text-align:center}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-home .br2026-clubname{order:2}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-home .br2026-crest{order:1}';document.head.appendChild(style);  }  function fit(){root.classList.toggle('cdb2026-narrow',root.getBoundingClientRect().width<420);}fit();  if(typeof ResizeObserver!=='undefined'&&!root.dataset.cdbResponsive){new ResizeObserver(fit).observe(root);root.dataset.cdbResponsive='1';}  var steps=[];  panels.forEach(function(p){  if(p===groupPanel){rounds.forEach(function(r){steps.push({phase:p,round:r,label:'Grupos — '+r.dataset.sulaRound+'ª rodada'});});}  else steps.push({phase:p,round:null,label:p.dataset.phaseLabel});  });  root.querySelectorAll('nav.br2026-controls').forEach(function(n){n.remove();});  var nav=document.createElement('nav');nav.className='br2026-controls';nav.setAttribute('aria-label','Navegação da Copa Sul-Americana');  var prev=document.createElement('button'),next=document.createElement('button'),select=document.createElement('select');  prev.type=next.type='button';prev.textContent='‹';next.textContent='›';prev.setAttribute('aria-label','Etapa anterior');next.setAttribute('aria-label','Próxima etapa');select.setAttribute('aria-label','Selecionar etapa da competição');  steps.forEach(function(s,i){var o=document.createElement('option');o.value=String(i);o.textContent=s.label;select.appendChild(o);});nav.append(prev,select,next);root.querySelector('.br2026-rounds').prepend(nav);  var current=steps.findIndex(function(s){return Number(s.phase.dataset.cdbPhase)===(Number(root.dataset.defaultPhase)||1);});if(current<0)current=0;  function show(n){  current=n;var selected=steps[n];  panels.forEach(function(p){var visible=p===selected.phase;p.hidden=!visible;p.style.display=visible?'':'none';});  rounds.forEach(function(r){var visible=r===selected.round;r.hidden=!visible;r.style.display=visible?'':'none';});  select.value=String(n);prev.disabled=n===0;next.disabled=n===steps.length-1;  }  prev.addEventListener('click',function(){show(Math.max(0,current-1));});next.addEventListener('click',function(){show(Math.min(steps.length-1,current+1));});select.addEventListener('change',function(){show(Number(select.value));});  root.dataset.ready='1';groupPanel.dataset.roundsReady='1';root.dataset.sulaUnified='1';show(current);  });  }  if(typeof mw!=='undefined'&&mw.hook)mw.hook('wikipage.content').add(function(c){boot(c[0]||c);});  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',function(){boot(document);});else boot(document); })(); /* SULA UNIFIED NAVIGATION END */  /* SULA HISTORICAL NAVIGATION BEGIN */ (function(){'use strict';function boot(context){(context||document).querySelectorAll('.br2026-auto[data-sula-historical="1"]').forEach(function(root){  if(root.dataset.sulaHistoricalReady)return;var panels=Array.from(root.querySelectorAll('[data-cdb-phase]'));if(panels.length!==Number(root.dataset.sulaPhaseCount)||panels.some(function(p,i){return Number(p.dataset.cdbPhase)!==i+1;}))return;  if(!document.getElementById('sula2026-responsive-style')){  var style=document.createElement('style');style.id='sula2026-responsive-style';style.textContent='.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-team{flex-direction:column;align-items:center;gap:3px;text-align:center}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-clubname{max-width:none;overflow-wrap:normal;word-break:normal;text-align:center}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-home .br2026-clubname{order:2}.br2026-auto[data-competition^="SULA"].cdb2026-narrow .br2026-home .br2026-crest{order:1}';document.head.appendChild(style);  }  function fit(){root.classList.toggle('cdb2026-narrow',root.getBoundingClientRect().width<420);}fit();  if(typeof ResizeObserver!=='undefined'&&!root.dataset.cdbResponsive){new ResizeObserver(fit).observe(root);root.dataset.cdbResponsive='1';}   var nav=document.createElement('nav');nav.className='br2026-controls';nav.setAttribute('aria-label','Navegação da Copa Sul-Americana');var prev=document.createElement('button'),next=document.createElement('button'),select=document.createElement('select');prev.type=next.type='button';prev.textContent='‹';next.textContent='›';prev.setAttribute('aria-label','Etapa anterior');next.setAttribute('aria-label','Próxima etapa');select.setAttribute('aria-label','Selecionar etapa da competição');panels.forEach(function(p,i){var o=document.createElement('option');o.value=String(i);o.textContent=p.dataset.phaseLabel;select.appendChild(o);});nav.append(prev,select,next);root.querySelector('.br2026-rounds').prepend(nav);var current=0;function show(n){current=n;panels.forEach(function(p,i){var v=i===n;p.hidden=!v;p.style.display=v?'':'none';});select.value=String(n);prev.disabled=n===0;next.disabled=n===panels.length-1;}prev.addEventListener('click',function(){show(Math.max(0,current-1));});next.addEventListener('click',function(){show(Math.min(panels.length-1,current+1));});select.addEventListener('change',function(){show(Number(select.value));});root.dataset.ready='1';root.dataset.sulaHistoricalReady='1';show(0);  });}if(typeof mw!=='undefined'&&mw.hook)mw.hook('wikipage.content').add(function(c){boot(c[0]||c);});if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',function(){boot(document);});else boot(document);})(); /* SULA HISTORICAL NAVIGATION END */