1<!DOCTYPE html><html lang="ca"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Història de FGC, ferrocarrils de la Generalitat de Catalunya</title><meta name="description" content="Història de Ferrocarrils de la Generalitat de Catalunya. LÃnies Catalans (Llobregat Anoia) i Catalunya (Sabadell Terrassa). Brill, Naval, vapor, etc."><meta name="generator" content="Publii Open-Source CMS for Static Site"><link rel="canonical" href="https://wefer.com/fgc-la-historia/"><link rel="alternate" type="application/atom+xml" href="https://wefer.com/feed.xml" title="wefer.com, Web Ferrovià ria - RSS"><link rel="alternate" type="application/json" href="https://wefer.com/feed.json" title="wefer.com, Web Ferrovià ria - JSON"><meta property="og:title" content="FGC: la història"><meta property="og:image" content="https://wefer.com/media/posts/11/18-Brill-Pl-Catalunya-01-19-09-04.jpg"><meta property="og:image:width" content="2048"><meta property="og:image:height" content="1536"><meta property="og:site_name" content="wefer.com, Web Ferrovià ria"><meta property="og:description" content="Història de Ferrocarrils de la Generalitat de Catalunya. LÃnies Catalans (Llobregat Anoia) i Catalunya (Sabadell Terrassa). Brill, Naval, vapor, etc."><meta property="og:url" content="https://wefer.com/fgc-la-historia/"><meta property="og:type" content="article"><link rel="shortcut icon" href="https://wefer.com/media/website/logo-2020-ico.png" type="image/png"><link rel="stylesheet" href="https://wefer.com/assets/css/style.css?v=6d6cf38d016e094e9cdc73e9152b6d30">
1<script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://wefer.com/fgc-la-historia/"},"headline":"FGC: la història","datePublished":"2020-04-01T13:07+02:00","dateModified":"2025-11-19T01:26+01:00","image":{"@type":"ImageObject","url":"https://wefer.com/media/posts/11/18-Brill-Pl-Catalunya-01-19-09-04.jpg","height":1536,"width":2048},"description":"Història de Ferrocarrils de la Generalitat de Catalunya. LÃnies Catalans (Llobregat Anoia) i Catalunya (Sabadell Terrassa). Brill, Naval, vapor, etc.","author":{"@type":"Person","name":"Marçal Guardiola","url":"https://wefer.com/authors/marcal-guardiola/"},"publisher":{"@type":"Organization","name":"Marçal Guardiola","logo":{"@type":"ImageObject","url":"https://wefer.com/media/website/logo-2020-b-2.gif","height":81,"width":320}}}</script>
1<noscript><style>img[loading] { 2 opacity: 1; 3 }</style></noscript><meta name="author" content="Marçal Guardiola Sanchez">
vendor: 63 bytes, line 3
3<script async src="https://www.googletagmanager.com/gtag/js?id=
3G-5G2469F4EE
vendor: 11 bytes, line 3
3"></script>
3<script>
vendor: 134 bytes, lines 3-7
3window.dataLayer = window.dataLayer || []; 4 function gtag(){dataLayer.push(arguments);} 5 gtag('js', new Date()); 6 7 gtag('config', '
7G-5G2469F4EE
vendor: 3 bytes, line 7
7');
7</script>
7<script>document.onmousedown = right; 8 document.onmouseup = right; 9 function right(e) { 10 var msg = "© WEFER 1997-2025\n\nEl contenido de esta página se encuentra protegido por Copyright y registrado.\nCualquier uso sin autorización será perseguido legalmente.\nEn caso de querer usar este contenido, contacte con el autor en:\n\[email protected]\n"; 11 if (navigator.appName == 'Netscape' && e.which == 3) { 12 alert(msg); 13 return false; 14 } 15 if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2) { 16 alert(msg); 17 return false; 18 } 19 else return true; 20 }</script>
20<script>document.ondragstart = function () { return false; }; 21 document.onselectstart = function () { return false; };</script>
21<script>document.onmousedown = right; 22 document.onmouseup = right; 23 function right(e) { 24 var msg = "© WEFER 1997-2025\n\nEl contenido de esta página se encuentra protegido por Copyright y registrado.\nCualquier uso sin autorización será perseguido legalmente.\nEn caso de querer usar este contenido, contacte con el autor en:\n\[email protected]\n"; 25 if (navigator.appName == 'Netscape' && e.which == 3) { 26 alert(msg); 27 return false; 28 } 29 if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2) { 30 alert(msg); 31 return false; 32 } 33 else return true; 34 }</script>
34<script>document.ondragstart = function () { return false; }; 35 document.onselectstart = function () { return false; };</script>
35<script>document.addEventListener("DOMContentLoaded", function() { 36 // Inicializar el selector de idioma según los divs presentes 37 function initLanguageSelector() { 38 var languageSelector = document.getElementById("languageSelector"); 39 40 if (!languageSelector) { 41 console.error("Error: No s'ha trobat l'element #languageSelector."); 42 return; 43 } 44 45 // Esborrar totes les opcions existents 46 while (languageSelector.firstChild) { 47 languageSelector.removeChild(languageSelector.firstChild); 48 } 49 50 var availableLangs = []; 51 52 if (document.getElementById("textCat")) { 53 availableLangs.push({value: "ca", text: "Català "}); 54 } 55 if (document.getElementById("textEsp")) { 56 availableLangs.push({value: "es", text: "Español"}); 57 } 58 if (document.getElementById("textEng")) { 59 availableLangs.push({value: "en", text: "English"}); 60 } 61 if (document.getElementById("textFra")) { 62 availableLangs.push({value: "fr", text: "Français"}); 63 } 64 65 if (availableLangs.length > 0) { 66 availableLangs.forEach(function(lang) { 67 var option = document.createElement("option"); 68 option.value = lang.value; 69 option.text = lang.text; 70 languageSelector.appendChild(option); 71 }); 72 } else { 73 languageSelector.style.display = "none"; 74 } 75} 76 77 78 initLanguageSelector(); 79 80 // Detectar el idioma del navegador y actualizar el selector 81 var userLang = navigator.language || navigator.userLanguage; 82 updateLanguage(userLang.substring(0, 2)); 83 84 // Listener para cambios en el selector de idioma 85 document.getElementById("languageSelector").addEventListener("change", function() { 86 updateLanguage(this.value); 87 }); 88}); 89 90// Función para actualizar el idioma 91function updateLanguage(lang) { 92 // Esconder todos los divs 93 var langs = ['Cat', 'Esp', 'Eng', 'Fra'];
94 langs.forEach(function(l) { 95 var element = document.getElementById("text" + l); 96 if (element) { 97 element.style.display = "none"; 98 } 99 }); 100 101 // Mostrar el div correspondiente al nuevo idioma 102 var selectedElement; 103 switch(lang) { 104 case "ca": 105 selectedElement = document.getElementById("textCat"); 106 break; 107 case "es": 108 selectedElement = document.getElementById("textEsp"); 109 break; 110 case "fr": 111 selectedElement = document.getElementById("textFra"); 112 break; 113 default: 114 selectedElement = document.getElementById("textEng"); 115 break; 116 } 117 118 if (selectedElement) { 119 selectedElement.style.display = "block"; 120 } else { 121 selectedElement = document.getElementById("textEng"); 122 selectedElement.style.display = "block"; 123 } 124 125 // Actualizar el selector para reflejar el cambio 126 var languageSelector = document.getElementById("languageSelector"); 127 if (languageSelector) { 128 languageSelector.value = lang; 129 } 130} 131 132function capitalizeFirstLetter(string) { 133 return string.charAt(0).toUpperCase() + string.slice(1); 134}</script>
134<script async src="https://cse.google.com/cse.js?cx=901ea5833fa8e41bf"></script>
134</head><body class="post-template"><div class="container js-container"><nav class="menu"><ul class="navbar__menu"><li><a href="https://wefer.com/renfe-adif-historia-de-la-via-ampla/" target="_self">Renfe / ADIF: història</a></li><li><a href="https://wefer.com/renfe-adif-el-material-mobil/" target="_self">Renfe / ADIF: material mòbil</a></li><li class="has-submenu"><a href="https://wefer.com/renfe-adif-les-estacions/" target="_self">Renfe / ADIF: estacions</a><ul class="navbar__submenu"><li><span>----</span></li></ul></li><li class="active"><a href="https://wefer.com/fgc-la-historia/" target="_self">FGC: història</a></li><li><a href="https://wefer.com/fgc-les-estacions/" target="_self">FGC: estacions</a></li><li><a href="https://wefer.com/fgc-el-material-mobil/" target="_self">FGC: material mòbil</a></li><li><span>----</span></li><li><a href="https://wefer.com/metro-de-barcelona-les-estacions-2/" target="_self">Metro de Barcelona: història</a></li><li><a href="https://wefer.com/metro-de-barcelona-les-estacions/" target="_self">Metro de Barcelona: estacions</a></li><li class="has-submenu"><a href="https://wefer.com/metro-de-barcelona-material-mobil/" target="_self">Metro de Barcelona: material mòbil</a><ul class="navbar__submenu"><li><span>----</span></li></ul></li><li><a href="https://wefer.com/historia-del-ferrocarril-espanol/" target="_self">El ferrocarril espanyol abans de 1941</a></li><li><a href="https://wefer.com/maquetismo-ferroviario-escala-h0-n-etc/" target="_self">Modelisme ferroviari (ferromodelisme)</a></li><li><a href="https://wefer.com/museos-ferroviarios/" target="_self">Museus ferroviaris</a></li></ul></nav><div class="container__content"><header class="top"><div class="top__item"><a class="logo" href="https://wefer.com/"><img src="https://wefer.com/media/website/logo-2020-b-2.gif" alt="wefer.com, Web Ferrovià ria" width="320" height="81"></a></div><div class="top__item top__item--right"><button class="menu-toggle js-menu-toggle" aria-label="Menu" aria-expanded="false"><span class="menu-toggle-box"><span class="menu-toggle-inner">Menu</span></span></button></div></header><main class="main post"><article class="content"><div class="main__left"><figure class="hero"><img src="https://wefer.com/media/posts/11/18-Brill-Pl-Catalunya-01-19-09-04.jpg" srcset="https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-xs.jpg 300w, https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-sm.jpg 480w, https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-md.jpg 768w, https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-lg.jpg 1024w, https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-xl.jpg 1280w, https://wefer.com/media/posts/11/responsive/18-Brill-Pl-Catalunya-01-19-09-04-2xl.jpg 1600w" sizes="(min-width: 1800px) 50vw, (min-width: 900px) 40vw, 100vw" loading="eager" height="1536" width="2048" alt=""><figcaption class="hero__caption">FGC, Ferrocarrils de la Generalitat de Catalunya</figcaption></figure><header><h1>FGC: la història</h1></header></div><div class="main__right"><div class="banner banner--before-content"><div id="simple_website_translator"></div><p></p></div><div class="content__entry"><p><em><a href="https://wefer.com/">Inici</a> --> </em><strong>FGC: la historia</strong></p><div id="simple_website_translator"></div><h3>Introducció</h3><p data-start="16" data-end="664"><a href="https://www.fgc.cat/" target="_blank" rel="noopener noreferrer">Ferrocarrils de la Generalitat de Catalunya (FGC)</a> és un operador de transport ferroviari de lâà rea metropolitana de Barcelona, gestionat pel govern autònom de Catalunya. Es va crear lâany 1979 arran del traspà s de diverses lÃnies ferrovià ries estatals (abans gestionades per FEVE) a la Generalitat de Catalunya. Actualment, FGC forma part de lâAutoritat del Transport Metropolità (ATM) de Barcelona, el consorci que coordina les xarxes de transport públic de FGC, TMB, Renfe i altres operadors, amb un sistema tarifari integrat vigent des de 2001 que permet utilitzar diferents transports amb el mateix bitllet.</p><p data-start="666" data-end="792">FGC compta actualment amb dues xarxes principals amb caracterÃstiques diferenciades per la seva diversa procedència històrica:</p><ul data-start="794" data-end="1423"><li data-start="794" data-end="1102"><p data-start="796" data-end="1102"><strong data-start="796" data-end="822">LÃnia Barcelona-Vallès</strong>: connecta Barcelona (estació de Plaça de Catalunya) amb el Vallès Occidental (Sant Cugat del Vallès, Terrassa i Sabadell). Prové de lâantic Ferrocarril de Barcelona a Sarrià (inaugurat el 1863) i utilitza via dâample està ndard (1435 mm), fet que la diferencia de lâaltra xarxa.</p></li><li data-start="1103" data-end="1423"><p data-start="1105" data-end="1423"><strong data-start="1105" data-end="1130">LÃnia Llobregat-Anoia</strong>: connecta Barcelona (Plaça dâEspanya) amb les comarques del Baix Llobregat, lâAnoia i el Bages (arribant fins a Martorell, Igualada i Manresa). Prové de lâantic âTren dels Catalansâ (inaugurat el 1892) i utilitza via dâample mètric (1000 mm), incompatible amb lâample de la lÃnia del Vallès.</p></li></ul><p data-start="1425" data-end="2161">En les darreres dècades, FGC ha experimentat millores i ampliacions a la seva xarxa metropolitana. Lâany 2015 es va inaugurar el perllongament del ramal de Terrassa amb tres noves estacions, i el 2017 el de Sabadell amb quatre estacions addicionals, fet que va incrementar notablement el nombre dâusuaris de les lÃnies S1 (Terrassa) i S2 (Sabadell). A més, està en marxa lâextensió de la lÃnia Llobregat-Anoia (actual <strong data-start="1843" data-end="1849">L8</strong> del metro) per connectar Plaça Espanya amb lâestació de Grà cia, creant tres noves estacions (Hospital ClÃnic, Francesc Macià i Grà cia) en un nou túnel de 4 km. Aquesta obra, prevista per al 2029-2030, permetrà enllaçar per primera vegada les dues xarxes dâFGC i millorarà la connectivitat interna de Barcelona.</p><p data-start="2163" data-end="3072" data-is-last-node="" data-is-only-node="">Fora de lâà rea de Barcelona, FGC també opera altres serveis ferroviaris a Catalunya. Entre aquests hi ha la lÃnia regional de <strong data-start="2289" data-end="2319">Lleida â La Pobla de Segur</strong> (de via ampla, transferida a FGC lâany 2005) i diverses lÃnies ferrovià ries turÃstiques i de muntanya, com el <strong data-start="2430" data-end="2458">cremallera de Montserrat</strong>, el <strong data-start="2463" data-end="2486">cremallera de Núria</strong> i el <strong data-start="2492" data-end="2511">Tren del Ciment</strong> (Alt Llobregat).</p><p data-start="2163" data-end="3072" data-is-last-node="" data-is-only-node="">En total, la xarxa dâFGC abasta 6 lÃnies ferrovià ries (2 de rodalies, 1 regional i 3 turÃstiques), amb uns 110 estacions en servei. FGC transportava prop de 75 milions de viatgers anuals el 2004, xifra que ha anat augmentant any rere any. Lâany 2018 ja es va assolir un rècord de <strong data-start="2809" data-end="2836">87,2 milions de viatges</strong>, i abans de la pandèmia de 2020 el ritme anual superava els 90 milions. El 2022 el volum de passatgers es va situar al voltant dels <strong data-start="2969" data-end="2985">92,7 milions</strong> de viatgers anuals, reflex del creixement sostingut de la demanda de les lÃnies dâFGC.</p><h3>La lÃnia CATALUNYA (Pl. Catalunya - Vallès)</h3><p>(Vegeu plà nols detallats) Aquesta lÃnia inclou un tram final subterrani (actualment L6 i L7) que funciona com a ferrocarril metropolità (Metro). Del mateix tronc parteix la prolongació cap a les afores de la ciutat de Barcelona i arriba, en forma dâY, fins a Terrassa (S1) i fins a Sabadell (S2). Totes les lÃnies tenen el seu final a lâestació de Pl. Catalunya. Clica sobre la imatge per conèixer més de prop les estacions.</p><p> </p><figure class="post__image post__image--center"><img loading="lazy" src="https://wefer.com/media/posts/11/fgc-linies-valles-9.gif" width="694" height="267"><figcaption>Plà nol de la xarxa a principis dels 2000</figcaption></figure><p>Tècnicament, tota la lÃnia és de doble via, excepte algun petit tram de la lÃnia de Sabadell. Lâample és el normal UIC dâ1.435 mm i es troba totalment electrificada a 1.500 V=, arribant a una longitud de traçat propera als 50 km. Actualment només sâhi dóna servei de viatgers amb automotors elèctrics, amb freqüències de pas que van en hora punta des dels 2 minuts al tram final de Pl. Catalunya fins als 12 minuts a Terrassa i Sabadell. Aquesta xarxa va passar a mans del govern català a finals dels anys 70 a causa dels problemes econòmics de lâempresa privada que lâhavia construït i explotat durant més de 50 anys.</p><h3>La lÃnia CATALANS (Pl. Espanya - Llobregat)</h3><p>(Vegeu plà nols detallats) Aquesta lÃnia té un carà cter més interurbà que la xarxa anteriorment comentada, encara que al seu tram subterrani final fins a Pl. Espanya també funciona de manera similar a un ferrocarril metropolità . També té forma dâY amb un tronc central entre Barcelona i Martorell, des dâon surt una lÃnia cap a Igualada (R6) i una altra cap a Manresa (R5), finalitzant totes a lâestació de Pl. Espanya.</p><p>Tècnicament, es tracta dâuna xarxa de via mètrica (1.000 mm) de més de 100 km de traçat. Tot és en via doble, excepte els trams Martorell-Igualada i Olesa de Montserrat-Manresa.</p><p>Totes les lÃnies on es dóna servei regular de viatgers estan electrificades. Clica sobre la imatge per conèixer més de prop les estacions.</p><p> </p><figure class="post__image post__image--center"><a href="https://wefer.com/fgc-les-estacions/"><img loading="lazy" src="https://wefer.com/media/posts/11/fgc-linies-llobregat-9.gif" width="690" height="527"></a></figure><p></p><p> </p><p>A més, hi ha una lÃnia de via única sense electrificar que arriba fins al port de Barcelona, aixà com una altra que constitueix la prolongació de la lÃnia de Manresa fins a les mines de Sallent. Aquestes lÃnies tenen un trà nsit exclusivament de mercaderies. Aquesta xarxa havia estat molt més extensa, ja que havia arribat fins al Berguedà , cosa que feia que sâapropés als 200 km de traçat en els seus millors temps. Però als anys 70 es va clausurar tot el tram Manresa-Olvan i lâempresa privada que explotava tota la xarxa va fer fallida, passant la lÃnia primer a mans de FEVE (Ferrocarriles Españoles de VÃa Estrecha) i posteriorment a la Generalitat de Catalunya. Avui dia, sâestà fent un gran esforç de modernització tant dâinfraestructures com de material per poder donar freqüències de pas iguals a les que sâofereixen a la lÃnia de Pl. Catalunya.</p><footer><div class="content__tag-share"><ul class="content__tag"><li><a href="https://wefer.com/tag/fgc/">Ferrocarrils de la Generalitat de Catalunya (FGC)</a></li><li><a href="https://wefer.com/tag/fgc-linea-llobregat/">FGC LÃnia Llobregat</a></li><li><a href="https://wefer.com/tag/fgc-linea-valles/">FGC LÃnia Vallès</a></li><li><a href="https://wefer.com/tag/historia/">història</a></li></ul><div class="content__share"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwefer.com%2Ffgc-la-historia%2F" class="js-share facebook" aria-label="Share with Facebook" rel="nofollow noopener noreferrer"><svg class="icon"><use xlink:href="https://wefer.com/assets/svg/svg-map.svg#facebook"/></svg> </a><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwefer.com%2Ffgc-la-historia%2F&via=wefer.com%2C%20Web%20Ferrovi%C3%A0ria&text=FGC%3A%20la%20hist%C3%B2ria" class="js-share twitter" aria-label="Share with Twitter" rel="nofollow noopener noreferrer"><svg class="icon"><use xlink:href="https://wefer.com/assets/svg/svg-map.svg#twitter"/></svg> </a><a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fwefer.com%2Ffgc-la-historia%2F&media=https%3A%2F%2Fwefer.com%2Fmedia%2Fposts%2F11%2F18-Brill-Pl-Catalunya-01-19-09-04.jpg&description=FGC%3A%20la%20hist%C3%B2ria" class="js-share pinterest" aria-label="Share with Pinterest" rel="nofollow noopener noreferrer"><svg class="icon"><use xlink:href="https://wefer.com/assets/svg/svg-map.svg#pinterest"/></svg></a></div></div></footer></div></div></article>
134<div class="main__right main__right--bottom"><div class="related"><h2 class="related__title">Related posts:</h2><ul class="related__items"><li class="related__item"><h3 class="h5"><a href="https://wefer.com/fgc-estacion-igualada/">FGC: estació Igualada</a></h3></li><li class="related__item"><h3 class="h5"><a href="https://wefer.com/fgc-estacion-de-provenca-bcn/">FGC: estació de Provença (BCN)</a></h3></li><li class="related__item"><h3 class="h5"><a href="https://wefer.com/fgc-estacion-de-barcelona-pl-catalunya/">FGC: estació de Barcelona Pl. Catalunya</a></h3></li><li class="related__item"><h3 class="h5"><a href="https://wefer.com/historia-del-ferrocarril-espanol/">Història del ferrocarril a Espanya: 1848 a 1941</a></h3></li><li class="related__item"><h3 class="h5"><a href="https://wefer.com/metro-de-barcelona-les-estacions-2/">Metro de Barcelona: la història</a></h3></li></ul></div><div class="banner banner--after-content"><a href="https://www.wefer.com"><div align="center"><img src="/media/files/wefer-logo.gif" alt="WEFER, Web ferroviaria. Fotos e historia del ferrocarril en Cataluña y España"></div></a><hr><h6 align="center">WEFER, web ferroviaria - El ferrocarril en España - Marçal Guardiola Sánchez - Copyright 1997-2025</h6><hr><p align="center">Si te ha interesado esta página, también pueden interesarte:<br><a href="https://railmotif.es" target="_blank"><b>railmotif.es</b><i> - Modelismo ferroviario en escala H0 y N</i></a><br><a href="https://transport.cat" target="_blank"><b>transport.cat</b><i> - Foro del transporte en Cataluña</i></a></p></div></div></main><footer class="footer"><div class="footer__copyright"><p>Powered by Publii</p><p>Copyright Marçal Guardiola Sánchez 1997 - 2025</p></div></footer></div></div>
134<script defer="defer" src="https://wefer.com/assets/js/scripts.min.js?v=1ea8317abae2e05fa2a65ed7bbff7ba7"></script>
134<script>var images = document.querySelectorAll('img[loading]'); 135 136 for (var i = 0; i < images.length; i++) { 137 if (images[i].complete) { 138 images[i].classList.add('is-loaded'); 139 } else { 140 images[i].addEventListener('load', function () { 141 this.classList.add('is-loaded'); 142 }, false); 143 } 144 }</script>
144<script type="text/javascript">async function SimpleWebsiteTranslator(){new google.translate.TranslateElement({pageLanguage:"es",includedLanguages:"ca,es,en,fr,de,eu,gl,pt,it,nl,zh,ja,eo,ru,id,ko",layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL,autoDisplay:false},"simple_website_translator");}</script>
144<script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=SimpleWebsiteTranslator"></script>
144<div class="pcb" data-behaviour="badge" data-behaviour-link="#cookie-settings" data-revision="1" data-config-ttl="90" data-debug-mode="false"><div role="dialog" aria-modal="true" aria-hidden="true" aria-labelledby="pcb-title" aria-describedby="pcb-txt" class="pcb__banner"><div class="pcb__inner"><div id="pcb-title" role="heading" aria-level="2" class="pcb__title">la ley nos obliga a molestarte avisándote de que esta página usa "Cookies"</div><div id="pcb-txt" class="pcb__txt">Selecciona las cookies que quieres permitir mediante las casillas de verificación a continuación; nuestro sitio web utiliza cookies para examinar el tráfico del sitio y la actividad del usuario mientras se encuentra en nuestro sitio y para proporcionar funcionalidad de redes sociales. <a href="#not-specified">More details...</a></div><div class="pcb__buttons"><button type="button" class="pcb__btn pcb__btn--link pcb__btn--configure" aria-haspopup="dialog">Editar preferencias</button> <button type="button" class="pcb__btn pcb__btn--solid pcb__btn--accept">Guardar</button></div></div></div><div class="pcb__popup" role="dialog" aria-modal="true" aria-hidden="true" aria-labelledby="pcb-popup-title"><div class="pcb__popup__wrapper"><div class="pcb__inner pcb__popup__inner"><div class="pcb__popup__heading"><div id="pcb-popup-title" role="heading" aria-level="2" class="pcb__title">Preferencias de "cookies"</div><button class="pcb__popup__close" aria-label="Close"></button></div><div class="pcb__popup__content"><div class="pcb__txt pcb__popup__txt">Usamos cookies para mejorar su experiencia de navegación, mostrar anuncios o contenido personalizados y analizar nuestro tráfico. Al hacer clic en "Aceptar todo", usted acepta nuestro uso de cookies. <a href="#not-specified">More details...</a></div><ul class="pcb__groups"><li class="pcb__group"><details><summary class="pcb__group__title no-desc">Requeridas</summary></details><div class="pcb__popup__switch is-checked"><input type="checkbox" data-group-name="" id="pcb-group-0" checked="checked"> <label for="pcb-group-0">Requeridas</label></div></li><li class="pcb__group"><details><summary class="pcb__group__title no-desc">Funcionales</summary></details><div class="pcb__popup__switch"><input type="checkbox" data-group-name="functions" id="functions-cookies"> <label for="functions-cookies">Funcionales</label></div></li><li class="pcb__group"><details><summary class="pcb__group__title no-desc">AnalÃticas</summary></details><div class="pcb__popup__switch"><input type="checkbox" data-group-name="analytics" id="analytics-cookies"> <label for="analytics-cookies">AnalÃticas</label></div></li></ul></div><div class="pcb__buttons pcb__popup__buttons"><button type="button" class="pcb__btn pcb__btn--solid pcb__btn--accept">Aceptar todo</button> <button type="button" class="pcb__btn pcb__btn--reject">Denegar todo</button> <button type="button" class="pcb__btn pcb__btn--save">Guardar preferencias</button></div></div></div></div><div class="pcb__overlay" aria-hidden="true"></div><button class="pcb__badge" aria-label="PolÃtica de cookies" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" width="40" height="40" viewBox="0 0 23 23" fill="currentColor"><path d="M21.41 12.71c-.08-.01-.15 0-.22 0h-.03c-.03 0-.05 0-.08.01-.07 0-.13.01-.19.04-.52.21-1.44.19-2.02-.22-.44-.31-.65-.83-.62-1.53a.758.758 0 0 0-.27-.61.73.73 0 0 0-.65-.14c-1.98.51-3.49.23-4.26-.78-.82-1.08-.73-2.89.24-4.49.14-.23.14-.52 0-.75a.756.756 0 0 0-.67-.36c-.64.03-1.11-.1-1.31-.35-.19-.26-.13-.71-.01-1.29.04-.18.06-.38.03-.59-.05-.4-.4-.7-.81-.66C5.1 1.54 1 6.04 1 11.48 1 17.28 5.75 22 11.6 22c5.02 0 9.39-3.54 10.39-8.42.08-.4-.18-.78-.58-.87Zm-9.81 7.82c-5.03 0-9.12-4.06-9.12-9.06 0-4.34 3.05-8 7.25-8.86-.08.7.05 1.33.42 1.81.24.32.66.67 1.38.84-.76 1.86-.65 3.78.36 5.11.61.81 2.03 2 4.95 1.51.18.96.71 1.54 1.18 1.87.62.43 1.38.62 2.1.62.05 0 .09 0 .13-.01-1.23 3.64-4.7 6.18-8.64 6.18ZM13 17c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1Zm5.29-12.3a.99.99 0 0 1-.29-.71c0-.55.45-.99 1-.99a1 1 0 0 1 .71.3c.19.19.29.44.29.71 0 .55-.45.99-1 .99a1 1 0 0 1-.71-.3ZM9 13.5c0 .83-.67 1.5-1.5 1.5S6 14.33 6 13.5 6.67 12 7.5 12s1.5.67 1.5 1.5Zm3.25.81a.744.744 0 0 1-.06-1.05c.28-.32.75-.34 1.05-.06.31.28.33.75.05 1.06-.15.16-.35.25-.56.25-.18 0-.36-.06-.5-.19ZM8.68 7.26c.41.37.44 1 .07 1.41-.2.22-.47.33-.75.33a.96.96 0 0 1-.67-.26c-.41-.37-.44-1-.07-1.41.37-.42 1-.45 1.41-.08Zm11.48 1.88c.18-.19.52-.19.7 0 .05.04.09.1.11.16.03.06.04.12.04.19 0 .13-.05.26-.15.35-.09.1-.22.15-.35.15s-.26-.05-.35-.15a.355.355 0 0 1-.11-.
14416.433.433 0 0 1-.04-.19c0-.13.05-.26.15-.35Zm-4.93-1.86a.75.75 0 1 1 1.059-1.06.75.75 0 0 1-1.059 1.06Z"/></svg></button></div>
144<script>(function(win) { 145 if (!document.querySelector('.pcb')) { 146 return; 147 } 148 149 var cbConfig = { 150 behaviour: document.querySelector('.pcb').getAttribute('data-behaviour'), 151 behaviourLink: document.querySelector('.pcb').getAttribute('data-behaviour-link'), 152 revision: document.querySelector('.pcb').getAttribute('data-revision'), 153 configTTL: parseInt(document.querySelector('.pcb').getAttribute('data-config-ttl'), 10), 154 debugMode: document.querySelector('.pcb').getAttribute('data-debug-mode') === 'true', 155 initialState: null, 156 initialLsState: null, 157 previouslyAccepted: [] 158 }; 159 160 var cbUI = { 161 wrapper: document.querySelector('.pcb'), 162 banner: { 163 element: null, 164 btnAccept: null, 165 btnReject: null, 166 btnConfigure: null 167 }, 168 popup: { 169 element: null, 170 btnClose: null, 171 btnSave: null, 172 btnAccept: null, 173 btnReject: null, 174 checkboxes: null, 175 }, 176 overlay: null, 177 badge: null, 178 blockedScripts: document.querySelectorAll('script[type^="gdpr-blocker/"]'), 179 triggerLinks: cbConfig.behaviourLink ? document.querySelectorAll('a[href*="' + cbConfig.behaviourLink + '"]') : null 180 }; 181 182 function initUI () { 183 // setup banner elements 184 cbUI.banner.element = cbUI.wrapper.querySelector('.pcb__banner'); 185 cbUI.banner.btnAccept = cbUI.banner.element.querySelector('.pcb__btn--accept'); 186 cbUI.banner.btnReject = cbUI.banner.element.querySelector('.pcb__btn--reject'); 187 cbUI.banner.btnConfigure = cbUI.banner.element.querySelector('.pcb__btn--configure'); 188 189 // setup popup elements 190 if (cbUI.wrapper.querySelector('.pcb__popup')) { 191 cbUI.popup.element = cbUI.wrapper.querySelector('.pcb__popup'); 192 cbUI.popup.btnClose = cbUI.wrapper.querySelector('.pcb__popup__close'); 193 cbUI.popup.btnSave = cbUI.popup.element.querySelector('.pcb__btn--save'); 194 cbUI.popup.btnAccept = cbUI.popup.element.querySelector('.pcb__btn--accept'); 195 cbUI.popup.btnReject = cbUI.popup.element.querySelector('.pcb__btn--reject'); 196 cbUI.popup.checkboxes = cbUI.popup.element.querySelector('input[type="checkbox"]'); 197 // setup overlay 198 cbUI.overlay = cbUI.wrapper.querySelector('.pcb__overlay'); 199 } 200 201 cbUI.badge = cbUI.wrapper.querySelector('.pcb__badge'); 202 203 if (cbConfig.behaviour.indexOf('link') > -1) { 204 for (var i = 0; i < cbUI.triggerLinks.length; i++) { 205 cbUI.triggerLinks[i].addEventListener('click', function(e) { 206 e.preventDefault(); 207 showBannerOrPopup(); 208 }); 209 } 210 } 211 } 212 213 function initState () { 214 var lsKeyName = getConfigName(); 215 var currentConfig = localStorage.getItem(lsKeyName); 216 var configIsFresh = checkIfConfigIsFresh(); 217 218 if (!configIsFresh || currentConfig === null) { 219 if (cbConfig.debugMode) { 220 console.log('ðª Config not found, or configuration expired'); 221 } 222 223 if (window.publiiCBGCM) { 224 gtag('consent', 'default', { 225 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 226 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 227 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 228 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 229 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 230 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 231 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' 232 }); 233 234 if (cbConfig.debugMode) { 235 console.log('ðª GCMv2 DEFAULT STATE: ' + JSON.stringify({ 236 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 237 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 238 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied',
239 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 240 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 241 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 242 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' 243 })); 244 } 245 } 246 247 showBanner(); 248 } else if (typeof currentConfig === 'string') { 249 if (cbConfig.debugMode) { 250 console.log('ðª Config founded'); 251 } 252 253 cbConfig.initialLsState = currentConfig.split(','); 254 255 if (window.publiiCBGCM) { 256 gtag('consent', 'default', { 257 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 258 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 259 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 260 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 261 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 262 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 263 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') 264 }); 265 266 if (cbConfig.debugMode) { 267 console.log('ðª GCMv2 DEFAULT STATE: ' + JSON.stringify({ 268 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 269 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 270 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 271 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 272 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 273 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 274 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') 275 })); 276 } 277 } 278 279 showBadge(); 280 281 if (cbUI.popup.element) { 282 var allowedGroups = currentConfig.split(','); 283 var checkedCheckboxes = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); 284 285 for (var j = 0; j < checkedCheckboxes.length; j++) { 286 var name = checkedCheckboxes[j].getAttribute('data-group-name'); 287 288 if (name && name !== '-' && allowedGroups.indexOf(name) === -1) { 289 checkedCheckboxes[j].checked = false; 290 } 291 } 292 293 for (var i = 0; i < allowedGroups.length; i++) { 294 var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + allowedGroups[i] + '"]'); 295 296 if (checkbox) { 297 checkbox.checked = true; 298 } 299 300 allowCookieGroup(allowedGroups[i]); 301 } 302 } 303 } 304 305 setTimeout(function () { 306 cbConfig.initialState = getInitialStateOfConsents(); 307 }, 0); 308 } 309 310 function checkIfConfigIsFresh () { 311 var lastConfigSave = localStorage.getItem('publii-gdpr-cookies-config-save-date'); 312 313 if (lastConfigSave === null) { 314 return false; 315 } 316 317 lastConfigSave = parseInt(lastConfigSave, 10); 318 319 if (lastConfigSave === 0) { 320 return true; 321 } 322 323 if (+new Date() - lastConfigSave < cbConfig.configTTL * 24 * 60 * 60 * 1000) { 324 return true; 325 } 326 327 return false; 328 } 329 330 function getDefaultConsentState (currentConfig, consentGroup) { 331 let configGroups = currentConfig.split(','); 332 333 for (let i = 0; i < configGroups.length; i++) { 334 let groupName = configGroups[i]; 335 let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === groupName); 336 337 if (group && group[consentGroup]) { 338 return 'granted'; 339 } 340 } 341 342 if (window.publiiCBGCM.defaultState[consentGroup]) { 343 return 'granted'; 344 } 345 346 return 'denied'; 347 } 348 349 function initBannerEvents () { 350 cbUI.banner.btnAccept.addEventListener('click', function (e) { 351 e.preventDefault(); 352 acceptAllCookies('banner'); 353 showBadge(); 354 }, false); 355 356 if (cbUI.banner.btnReject) { 357 cbUI.banner.btnReject.addEventListener('click', function (e) { 358 e.preventDefault(); 359 rejectAllCookies(); 360 showBadge(); 361 }, false); 362 } 363 364 if (cbUI.banner.btnConfigure) { 365 cbUI.banner.btnConfigure.addEventListener('click', function (e) { 366 e.preventDefault(); 367 hideBanner(); 368 showAdvancedPopup(); 369 showBadge(); 370 }, false); 371 } 372 } 373 374 function initPopupEvents () { 375 if (!cbUI.popup.element) { 376 return; 377 } 378 379 cbUI.overlay.addEventListener('click', function (e) { 380 hideAdvancedPopup(); 381 }, false); 382 383 cbUI.popup.element.addEventListener('click', function (e) { 384 e.stopPropagation(); 385 }, false); 386 387 cbUI.popup.btnAccept.addEventListener('click', function (e) { 388 e.preventDefault(); 389 acceptAllCookies('popup'); 390 }, false); 391 392 cbUI.popup.btnReject.addEventListener('click', function (e) { 393 e.preventDefault(); 394 rejectAllCookies(); 395 }, false); 396 397 cbUI.popup.btnSave.addEventListener('click', function (e) { 398 e.preventDefault(); 399 saveConfiguration(); 400 }, false); 401 402 cbUI.popup.btnClose.addEventListener('click', function (e) { 403 e.preventDefault(); 404 hideAdvancedPopup(); 405 }, false); 406 } 407 408 function initBadgeEvents () { 409 if (!cbUI.badge) { 410 return; 411 } 412 413 cbUI.badge.addEventListener('click', function (e) { 414 showBannerOrPopup(); 415 }, false); 416 } 417 418 initUI(); 419 initState(); 420 initBannerEvents(); 421 initPopupEvents(); 422 initBadgeEvents(); 423 424 /** 425 * API 426 */ 427 function addScript (src, inline) { 428 var newScript = document.createElement('script'); 429 430 if (src) { 431 newScript.setAttribute('src', src); 432 } 433 434 if (inline) { 435 newScript.text = inline; 436 } 437 438 document.body.appendChild(newScript); 439 } 440 441 function allowCookieGroup (allowedGroup) { 442 var scripts = document.querySelectorAll('script[type="gdpr-blocker/' + allowedGroup + '"]'); 443 cbConfig.previouslyAccepted.push(allowedGroup); 444 445 for (var j = 0; j < scripts.length; j++) { 446 addScript(scripts[j].src, scripts[j].text); 447 } 448 449 var groupEvent = new Event('publii-cookie-banner-unblock-' + allowedGroup); 450 document.body.dispatchEvent(groupEvent); 451 unlockEmbeds(allowedGroup); 452 453 if (cbConfig.debugMode) { 454 console.log('ðª Allowed group: ' + allowedGroup); 455 } 456 457 if (window.publiiCBGCM && (!cbConfig.initialLsState || cbConfig.initialLsState.indexOf(allowedGroup) === -1)) { 458 let consentResult = {}; 459 let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === allowedGroup); 460 461 if (group) { 462 let foundSomeConsents = false; 463
464 Object.keys(group).forEach(key => { 465 if (key !== 'cookieGroup' && group[key] === true) { 466 consentResult[key] = 'granted'; 467 foundSomeConsents = true; 468 } 469 }); 470 471 if (foundSomeConsents) { 472 gtag('consent', 'update', consentResult); 473 474 if (cbConfig.debugMode) { 475 console.log('ðª GCMv2 UPDATE: ' + JSON.stringify(consentResult)); 476 } 477 } 478 } 479 } 480 } 481 482 function showBannerOrPopup () { 483 if (cbUI.popup.element) { 484 showAdvancedPopup(); 485 } else { 486 showBanner(); 487 } 488 } 489 490 function showAdvancedPopup () { 491 cbUI.popup.element.classList.add('is-visible'); 492 cbUI.overlay.classList.add('is-visible'); 493 cbUI.popup.element.setAttribute('aria-hidden', 'false'); 494 cbUI.overlay.setAttribute('aria-hidden', 'false'); 495 } 496 497 function hideAdvancedPopup () { 498 cbUI.popup.element.classList.remove('is-visible'); 499 cbUI.overlay.classList.remove('is-visible'); 500 cbUI.popup.element.setAttribute('aria-hidden', 'true'); 501 cbUI.overlay.setAttribute('aria-hidden', 'true'); 502 } 503 504 function showBanner () { 505 cbUI.banner.element.classList.add('is-visible'); 506 cbUI.banner.element.setAttribute('aria-hidden', 'false'); 507 } 508 509 function hideBanner () { 510 cbUI.banner.element.classList.remove('is-visible'); 511 cbUI.banner.element.setAttribute('aria-hidden', 'true'); 512 } 513 514 function showBadge () { 515 if (!cbUI.badge) { 516 return; 517 } 518 519 cbUI.badge.classList.add('is-visible'); 520 cbUI.badge.setAttribute('aria-hidden', 'false'); 521 } 522 523 function getConfigName () { 524 var lsKeyName = 'publii-gdpr-allowed-cookies'; 525 526 if (cbConfig.revision) { 527 lsKeyName = lsKeyName + '-v' + parseInt(cbConfig.revision, 10); 528 } 529 530 return lsKeyName; 531 } 532 533 function storeConfiguration (allowedGroups) { 534 var lsKeyName = getConfigName(); 535 var dataToStore = allowedGroups.join(','); 536 localStorage.setItem(lsKeyName, dataToStore); 537 538 if (cbConfig.configTTL === 0) { 539 localStorage.setItem('publii-gdpr-cookies-config-save-date', 0); 540 541 if (cbConfig.debugMode) { 542 console.log('ðª Store never expiring configuration'); 543 } 544 } else { 545 localStorage.setItem('publii-gdpr-cookies-config-save-date', +new Date()); 546 } 547 } 548 549 function getInitialStateOfConsents () { 550 if (!cbUI.popup.element) { 551 return []; 552 } 553 554 var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); 555 var groups = []; 556 557 for (var i = 0; i < checkedGroups.length; i++) { 558 var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); 559 560 if (allowedGroup !== '') { 561 groups.push(allowedGroup); 562 } 563 } 564 565 if (cbConfig.debugMode) { 566 console.log('ðª Initial state: ' + groups.join(', ')); 567 } 568 569 return groups; 570 } 571 572 function getCurrentStateOfConsents () { 573 if (!cbUI.popup.element) { 574 return []; 575 } 576 577 var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); 578 var groups = []; 579 580 for (var i = 0; i < checkedGroups.length; i++) { 581 var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); 582 583 if (allowedGroup !== '') { 584 groups.push(allowedGroup); 585 } 586 } 587 588 if (cbConfig.debugMode) { 589 console.log('ðª State to save: ' + groups.join(', ')); 590 } 591 592 return groups; 593 } 594 595 function getAllGroups () { 596 if (!cbUI.popup.element) { 597 return []; 598 } 599 600 var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); 601 var groups = []; 602 603 for (var i = 0; i < checkedGroups.length; i++) { 604 var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); 605 606 if (allowedGroup !== '') { 607 groups.push(allowedGroup); 608 } 609 } 610 611 return groups; 612 } 613 614 function acceptAllCookies (source) { 615 var groupsToAccept = getAllGroups(); 616 storeConfiguration(groupsToAccept); 617 618 for (var i = 0; i < groupsToAccept.length; i++) { 619 var group = groupsToAccept[i]; 620 621 if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { 622 if (cbConfig.debugMode) { 623 console.log('ðª Skip previously activated group: ' + group); 624 } 625 626 continue; 627 } 628 629 allowCookieGroup(group); 630 } 631 632 if (cbUI.popup.element) { 633 var checkboxesToCheck = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); 634 635 for (var j = 0; j < checkboxesToCheck.length; j++) { 636 checkboxesToCheck[j].checked = true; 637 } 638 } 639 640 if (cbConfig.debugMode) { 641 console.log('ðª Accept all cookies: ', groupsToAccept.join(', ')); 642 } 643 644 if (source === 'popup') { 645 hideAdvancedPopup(); 646 } else if (source === 'banner') { 647 hideBanner(); 648 } 649 } 650 651 function rejectAllCookies () { 652 if (cbConfig.debugMode) {
653 console.log('ðª Reject all cookies'); 654 } 655 656 storeConfiguration([]); 657 setTimeout(function () { 658 window.location.reload(); 659 }, 100); 660 } 661 662 function saveConfiguration () { 663 var groupsToAccept = getCurrentStateOfConsents(); 664 storeConfiguration(groupsToAccept); 665 666 if (cbConfig.debugMode) { 667 console.log('ðª Save new config: ', groupsToAccept.join(', ')); 668 } 669 670 if (reloadIsNeeded(groupsToAccept)) { 671 setTimeout(function () { 672 window.location.reload(); 673 }, 100); 674 return; 675 } 676 677 for (var i = 0; i < groupsToAccept.length; i++) { 678 var group = groupsToAccept[i]; 679 680 if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { 681 if (cbConfig.debugMode) { 682 console.log('ðª Skip previously activated group: ' + group); 683 } 684 685 continue; 686 } 687 688 allowCookieGroup(group); 689 } 690 691 hideAdvancedPopup(); 692 } 693 694 function reloadIsNeeded (groupsToAccept) { 695 // check if user rejected consent for initial groups 696 var initialGroups = cbConfig.initialState; 697 var previouslyAcceptedGroups = cbConfig.previouslyAccepted; 698 var groupsToCheck = initialGroups.concat(previouslyAcceptedGroups); 699 700 for (var i = 0; i < groupsToCheck.length; i++) { 701 var groupToCheck = groupsToCheck[i]; 702 703 if (groupToCheck !== '' && groupsToAccept.indexOf(groupToCheck) === -1) { 704 if (cbConfig.debugMode) { 705 console.log('ðª Reload is needed due lack of: ', groupToCheck); 706 } 707 708 return true; 709 } 710 } 711 712 return false; 713 } 714 715 function unlockEmbeds (cookieGroup) { 716 var iframesToUnlock = document.querySelectorAll('.pec-wrapper[data-consent-group-id="' + cookieGroup + '"]'); 717 718 for (var i = 0; i < iframesToUnlock.length; i++) { 719 var iframeWrapper = iframesToUnlock[i]; 720 iframeWrapper.querySelector('.pec-overlay').classList.remove('is-active'); 721 iframeWrapper.querySelector('.pec-overlay').setAttribute('aria-hidden', 'true'); 722 var iframe = iframeWrapper.querySelector('iframe'); 723 iframe.setAttribute('src', iframe.getAttribute('data-consent-src')); 724 } 725 } 726 727 win.publiiEmbedConsentGiven = function (cookieGroup) { 728 // it will unlock embeds 729 allowCookieGroup(cookieGroup); 730 731 var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + cookieGroup + '"]'); 732 733 if (checkbox) { 734 checkbox.checked = true; 735 } 736 737 var groupsToAccept = getCurrentStateOfConsents(); 738 storeConfiguration(groupsToAccept); 739 740 if (cbConfig.debugMode) { 741 console.log('ðª Save new config: ', groupsToAccept.join(', ')); 742 } 743 } 744 })(window);</script>
744</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.