Resultados Alcanzados

 

Helicóptero llevando cable de alta tensión
 


 

 

Mejorando por ti cada día

 

 

En i-DE trabajamos de forma intensa y continuada para conseguir mejorar cada día nuestro servicio al cliente, la operación de la red y su fiabilidad. Para ello, introducimos las mejores prácticas en cada una de nuestras áreas de actividad.

 

El éxito de los siguientes proyectos y acciones es fruto de nuestro compromiso con la excelencia y el esfuerzo innovador que siempre nos ha caracterizado.

 

 

Liderando la transformación digital

 

El proyecto de Sistemas de Telegestión y Automatización de la Red (STAR) ha sido una ambiciosa iniciativa, que llevamos a cabo con el objetivo de llevar a cabo una transformación tecnológica en el campo de las redes inteligentes.

 

Este proyecto, que finalizó en 2018, ha supuesto una inversión global en el entorno de 1.300 millones de euros, e implicó la sustitución de en torno a 11 millones de contadores y la adaptación de unos 99.000 centros de transformación. Cabe destacar la eficiencia de este proyecto, con un reducido coste para el cliente, muy inferior a cualquier otro desarrollo de red inteligente conocido.

 

Esta innovación nos permite ofrecer a nuestros clientes niveles de calidad de suministro superiores. Además, ponemos a su disposición a través de los canales digitales información más precisa y detallada sobre su consumo.

 

Tras el proyecto STAR, se le dio continuidad a la transformación extendiendo la automatización y digitalización de la red de media tensión, y abordando también la baja tensión. Así nació STAR+, una iniciativa que se ha centrado en mejorar la red de baja tensión. En el marco de este programa, hemos trabajado en el desarrollo de funcionalidades nuevas de mayor relevancia para optimizar la red de baja tensión, como la conectividad automática o la predicción de incidencias con la tecnología existente.

 


En i-DE apostamos por convertirnos en un Operador del Sistema de Distribución (Distribution System Operator) y, para ello, avanzamos en el desarrollo de tecnologías y sistemas que permitan gestionar los recursos energéticos distribuidos (principalmente baterías y plantas fotovoltaicas), así como realizar una gestión activa de la demanda.

 


Esto aportará a los clientes flexibilidad y control sobre su comportamiento en los escenarios futuros. Uno de estos escenarios futuros se ha simulado en la microrred del Campus Iberdrola, en Madrid. Las instalaciones constan de dos plantas fotovoltaicas, tres sistemas de almacenamiento de baterías y un sistema de control, sobre el que se han desarrollado las aplicaciones para el control basado en los servicios y casos de uso que aportarán a la red.

 


Para facilitar que esta innovación llegue de manera transversal a todos los usuarios de la red estamos desarrollando el proyecto eLVIS, cuyo objetivo es la implantación de un sistema de control de la red de baja tensión, con herramientas de movilidad que saquen el máximo valor de la información que hoy tenemos disponible.

 


Este proyecto permitirá optimizar la explotación de la red de baja tensión y optimizar su uso, mejorar la continuidad del servicio en momentos de mantenimiento por incidencia o por mejora de la red, acelerar la identificación de disponibilidad para incrementar la carga de la red de baja tensión, y mejorar la calidad de la onda.
 

Operario de i-de controlando calidad de servicio
 

 

Mejora en la calidad del suministro

 

 

La calidad del suministro se traduce en la fiabilidad y seguridad en el servicio que prestamos a todos los clientes. Gracias a la renovación y a los trabajos de mantenimiento de la red, hemos reducido el número de incidencias y el tiempo de reposición del suministro.

 

La calidad del suministro se mide a través de dos indicadores principales:


•    TIEPI: es el tiempo de interrupción equivalente de la potencia instalada en media tensión, es decir, el tiempo medio que está sin suministro un cliente durante un año en España.
•    NIEPI: es el número de interrupciones equivalente de la potencia instalada en media tensión, es decir, el número de veces que se va la luz a cada cliente durante un año en España.

 

Ambos indicadores se han reducido más de un 60% en la última década. Así, el TIEPI ha pasado de situarse en más de dos horas a estar por debajo de 45 minutos, mientras que el NIEPI ha bajado desde dos veces y media a estar por debajo de una.

 

Operarios en torre de alta tensión realizando tareas de mantenimiento

 

 

Facilitar la conexión de casi 7 GW renovables a la red del área de i-DE

 

 

Hasta el 31 de diciembre de 2021, en i-DE hemos contribuido a la conexión de un total de 67.786 instalaciones a su red de distribución, que suman una potencia instalada de 6.991 MW.

 

 

Mejora de las pérdidas de red: lucha contra el fraude

 


El fraude eléctrico repercute de forma directa y significativa en el bolsillo de los clientes que pagan su factura, ya que también pagan lo que consumen los defraudadores de forma gratuita. Por otro lado, las conexiones ilegales a la red eléctrica y las manipulaciones de los contadores conllevan un elevado riesgo para la seguridad e integridad física de las personas, ya que se realizan al margen de la legalidad y de la normativa técnica vigente, sin los requisitos de seguridad necesarios. No hay que olvidar, además, que este tipo de fraude está recogido en el Código Penal y que puede constituir un delito.

 

En cumplimiento de las funciones y obligaciones de las normas que el sector eléctrico español establece, desde  i-DE realizamos labores de detección y regularización de situaciones de defraudación de fluido eléctrico. Somos capaces de detectar de forma muy precisa y eficiente el 100% de los casos de fraude utilizando tecnología de vanguardia.

 

Para poder combatir este problema, necesitamos de la implicación de toda la sociedad. En este sentido, puedes entrar en nuestra Área Privada  y comunicarnos cualquier presunta situación de fraude que hayas observado entrando en "Ayuda y contacto" y pinchando en "Denunciar fraude".

 

 

Mejora del conocimiento y posición tecnológica de i-DE

 


Nuestra trayectoria en materia de I+D+i (investigación, desarrollo e innovación) demuestra nuestro permanente interés por la innovación sin perder de vista el enfoque práctico y de mejora del servicio al cliente. El esfuerzo y dedicación de un equipo humano con alta cualificación técnica y la colaboración de nuestros socios habituales (universidades, centros tecnológicos y empresas nacionales) han permitido extraer valiosos resultados que, al implantarse en la red, han revertido en el cliente.

 

En Redes, trabajamos con la vista puesta en el futuro: avanzamos hacia la digitalización, las nuevas tecnologías y los nuevos servicios para nuestros clientes, así como hacia una nueva forma de diseñar, construir, explotar y mantener nuestros activos. La innovación es nuestra principal herramienta para hacer realidad de manera eficaz todos los retos que tenemos por delante.

 

Además, centramos nuestros esfuerzos en la digitalización de cara a transformar la red convencional en una red inteligente, capaz de integrar de forma inteligente el comportamiento y las acciones de todos los clientes conectados a ella (generadores, consumidores y aquellos que realizan ambas acciones) para proporcionar un suministro de electricidad seguro, económico y sostenible. Esto permite al distribuidor ejercer plenamente el papel de Operador del Sistema de Distribución (DSO, por sus siglas en inglés).

 

Para acelerar toda esta transformación, en i-DE hemos puesto en marcha el Global Smart Grids Innovation Hub , centro de innovación y conocimiento que aspira a convertirse en referente mundial en redes inteligentes que dé respuesta a los retos de la transición energética.

 

 

Cuidado del medioambiente

 


La dimensión ambiental es un aspecto fundamental a la hora de diseñar, construir y mantener nuestras redes. Desde i-DE trabajamos en la reducción de los principales riesgos ambientales mediante la implementación de diversas medidas preventivas y de control, como la dotación de sistemas de recogida de aceite para prevenir posibles derrames de los transformadores, la identificación y corrección de posibles fugas de gas SF6, así como tratando la vegetación existente en el entorno de las redes para prevenir posibles incendios forestales.

 

También realizamos campañas de renovación de líneas eléctricas y de adecuación de apoyos que nos permiten reducir el riesgo de electrocución de aves.

An error occurred while processing the template.
The following has evaluated to null or missing:
==> TituloSeccion.AnclaWrap  [in template "19842963717691#2803100#3628711" at line 115, column 46]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign anclaWrap = TituloSeccion.Anc...  [in template "19842963717691#2803100#3628711" at line 115, column 25]
----
1<style> 
2	.acordeon-card:not(:last-child){ 
3		margin-bottom: 20px !important; 
4
5	 
6	.titulodesplegable{ 
7		padding: 0px !important; 
8		margin-bottom: 0px !important; 
9
10	 
11	.nuevoIcono40_{ 
12		width: 40px !important; 
13		height: 40px !important; 
14		min-width: 40px; 
15
16	 
17	#simple_wrap .show { 
18		margin-bottom: 20px; 
19
20	 
21	#simple_wrap .titulo { 
22		min-height: 40px; 
23		display: flex; 
24		align-items: center; 
25
26	 
27	#simple_wrap .flecha-dcha { 
28		display: flex	; 
29		align-items: center; 
30
31	#simple_wrap .contenidodesplegableSinIcono { 
32		padding-left: 15px; 
33
34	 
35	@media (min-width: 992px) { 
36		.icono-izq { 
37			flex: 0 0 7.333333%; 
38
39
40 
41	@media only screen and (max-width: 575px) { 
42		.contenidodesplegable { 
43		padding-left: 15px !important; 
44
45
46 
47	<#if (Margenes.MargenSuperior.getData())?? && Margenes.MargenSuperior.getData() != "" > 
48		#simple_wrap.margin-top-comp { 
49			margin-top: ${Margenes.MargenSuperior.getData()}px !important; 
50
51	<#else> 
52		#simple_wrap.margin-top-comp { 
53			margin-top: 80px !important; 
54
55	</#if> 
56	 
57	<#if (Margenes.MargenInferior.getData())?? && Margenes.MargenInferior.getData() != "" > 
58		#simple_wrap.margin-bottom-comp { 
59			margin-bottom: ${Margenes.MargenInferior.getData()}px !important; 
60
61	<#else> 
62		#simple_wrap.margin-bottom-comp { 
63			margin-bottom: 0px !important; 
64
65	</#if> 
66</style> 
67 
68<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
69<#assign journalArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data) /> 
70 
71<#assign articleId = journalArticle.getId() /> 
72 
73<#assign DLAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService") > 
74<#assign file = DLAppServiceUtil.getFileEntry(getterUtil.getLong(groupId), 0, "flecha_SimpleWrap") > 
75<#assign default_text_size = "h3" > 
76 
77<#assign page = layout> 
78<#assign the_title = languageUtil.get(locale, the_title, page.getName(locale)) > 
79 
80<#function fileUrl file > 
81	<#local backslash = "/" > 
82	<#local furl = "/documents/" + file.getGroupId() + backslash + file.getFolderId() + backslash + file.getTitle() + backslash + file.getUuid() > 
83	<#return furl > 
84</#function> 
85 
86<#if (TituloSeccion.AtributoTituloSeccion.getData())?? && TituloSeccion.AtributoTituloSeccion.getData() != ""> 
87	<#assign titulo_seccion_size = TituloSeccion.AtributoTituloSeccion.getData()> 
88<#else> 
89	<#assign titulo_seccion_size = default_text_size > 
90</#if> 
91 
92<#assign anclaTitulo = TituloSeccion.AnclaTitulo.getData()> 
93	 
94<div id="simple_wrap" class="row content margin-top-comp margin-bottom-comp normalized-acordeon-group"> 
95	<#-- TITULO DE SECCION--> 
96	<#if (TituloSeccion.getData())?? && TituloSeccion.getData() != "" > 
97		<div class="tituloseccion col-lg-12 col-md-12 col-sm-12 col-12" style="margin-bottom: 40px !important;"> 
98			<${titulo_seccion_size} <@anclaH anclaTitulo/>>${TituloSeccion.getData()}</${titulo_seccion_size}> 
99		</div> 
100	</#if> 
101	 
102	<#-- INFORMACION DE WRAP --> 
103	<#if InformacionWrap.getSiblings()?has_content> 
104		 
105		<#assign  numColum = 'col-sm-11' /> 
106		<#if (numeroColumnas.getData())?? && numeroColumnas.getData() != ""> 
107			<#assign numColum = numeroColumnas.getData() /> 
108		</#if> 
109		 
110		<#list InformacionWrap.getSiblings() as item> 
111			<#assign id_item_simple_wrap = "espacioFlecha_" + item?index > 
112			<#assign id_simple_wrap = "simple_wrap_" + articleId + "_" + item?index > 
113			<#assign reclamacion_item_target = "reclamacion_" + articleId + "_" + item?index > 
114			<#assign titulo_principal_size = ""> 
115			<#assign anclaWrap = TituloSeccion.AnclaWrap.getData()> 
116 
117			<#if (item.Titulo.AtributoTitulo.getData())?? && item.Titulo.AtributoTitulo.getData() != ""> 
118				<#assign titulo_principal_size = item.Titulo.AtributoTitulo.getData()> 
119			<#else> 
120				<#assign titulo_principal_size = default_text_size > 
121			</#if> 
122			 
123			<#if (item.TituloURL.eventoLabelGTAG.getData())?? && item.TituloURL.eventoLabelGTAG.getData() != ""> 
124				<#assign eventLabel = item.TituloURL.eventoLabelGTAG.getData()> 
125			<#else> 
126				<#assign eventLabel = item.TituloURL.TextoURL.getData() > 
127			</#if> 
128 
129			<#assign contenidodesplegableClass = "contenidodesplegableSinIcono" /> 
130 
131			<#-- CARD CERRADA --> 
132			<div id="${id_simple_wrap}" class="simple-wrap flex col-12 ${numColum} collapsed acordeon-card" data-toggle="collapse" data-target="#${reclamacion_item_target}" aria-expanded="false" 
133				onclick="alturaAcordeon('${id_simple_wrap}', event)"> 
134				<#-- ICONO + TITULO + FLECHA --> 
135				<div class="contenedor-small col-12 titulodesplegable justify-content-center onclick="gtag('event', '${the_title}', {'event_category' : '${item.Titulo.getData()}','event_label' : '${item.Titulo.getData()}'});"> 
136					<div class="d-flex" style="padding: 10px;"> 
137						<#-- ICONO FLECHA IZQUIERDA --> 
138						<#if (item.Icono.PosicionIcono.getData())?? && item.Icono.PosicionIcono.getData() == "1" > 
139							<div class="flecha-izq col-lg-1 col-md-1 col-sm-1 col-2"> 
140								<div id="${id_item_simple_wrap}" class="icono24 icono_flecha_abajo"> 
141								</div> 
142							</div> 
143						</#if> 
144						 
145						<#-- INCIO ICONO PRINCIPAL IZQUIERDA --> 
146						<#if item.Icono.PosicionIcono.getData() == "0" || validator.isNull(item.Icono.PosicionIcono.getData()) > 
147							<#if (item.Icono.getData())?? && item.Icono.getData() != ""> 
148								<#assign contenidodesplegableClass = "contenidodesplegable" /> 
149								<div class="icono-izq col-lg-1 col-md-1 col-sm-1 col-2"> 
150									<img class="nuevoIcono40_" alt="${item.Icono.getAttribute("alt")}" src="${item.Icono.getData()}" /> 
151								</div> 
152							</#if> 
153						</#if> 
154						 
155						<#-- TITULO PRINCIPAL DESKTOP --> 
156						<div class="titulo">	 
157							<${titulo_principal_size} <@anclaH anclaWrap/>>${item.Titulo.getData()}</${titulo_principal_size}> 
158						</div> 
159						<#-- FIN ICONO PRINCIPAL IZQUIERDA --> 
160						 
161						<#-- ICONO FLECHA DERECHA --> 
162						<#if item.Icono.PosicionIcono.getData() == "0" || validator.isNull(item.Icono.PosicionIcono.getData()) > 
163							<div class="flecha-dcha"> 
164								<div id="${id_item_simple_wrap}" class="icono24 icono_flecha_abajo"> 
165								</div> 
166							</div> 
167						</#if> 
168						 
169						<#-- ICONO PRINCIPAL DERECHA --> 
170						<#if (item.Icono.PosicionIcono.getData())?? && item.Icono.PosicionIcono.getData() == "1" > 
171							<#if (item.Icono.getData())?? && item.Icono.getData() != ""> 
172								<div class="icono-dcha col-lg-1 col-md-1 col-sm-1 col-2"> 
173									<img class="nuevoIcono40_" alt="${item.Icono.getAttribute("alt")}" src="${item.Icono.getData()}" /> 
174								</div> 
175							</#if> 
176						</#if> 
177					</div> 
178					 
179					<div class="row contenido-oculto" style="margin: 0;"> 
180						<#-- SUBTITULO MOBILE--> 
181						<#if (item.Subtitulo.getData())?? && item.Subtitulo.getData() != ""> 
182							<div class="subtitulo col-md-10 col-sm-10 col-12"> 
183								${item.Subtitulo.getData()} 
184							</div> 
185						</#if> 
186						 
187						<#-- INICIO COLLAPSE --> 
188						<div id="${reclamacion_item_target}" class="col-12 col-sm-10 ${contenidodesplegableClass} collapse"> 
189							<#-- INICIO BODY --> 
190							<#if (item.Body.getData())?? && item.Body.getData() != "" >  
191								<div class="body "> 
192									${item.Body.getData()} 
193								</div> 
194							</#if> 
195							<#-- FIN BODY --> 
196							<#-- INICIO BOTON --> 
197							<#if (item.tituloBoton.getData())?? && item.tituloBoton.getData() != "" >  
198								<#assign pestania = "_self"/> 
199								<#if (item.tituloBoton.botonPestania.getData())?? && item.tituloBoton.botonPestania.getData() != "" >  
200									<#assign pestania = item.tituloBoton.botonPestania.getData()/> 
201								</#if> 
202								 
203								<#assign eventoLabelButtonGtag = item.tituloBoton.getData()/> 
204								 
205								<#if (item.tituloBoton.EventoLabelButtonGtag.getData())?? && item.tituloBoton.EventoLabelButtonGtag.getData() != "" >  
206									<#assign eventoLabelButtonGtag = item.tituloBoton.EventoLabelButtonGtag.getData()/> 
207								</#if> 
208								 
209		 
210								<div class="boton col-md-6 col-sm-12" onclick="handleButtonClick(event); gtag('event', '${the_title}', {'event_category' : '${item.Titulo.getData()}','event_label' : '${eventoLabelButtonGtag}'})"> 
211									<a href="${item.tituloBoton.URLBoton.getData()}" target="${pestania}" rel="noopener noreferrer"> 
212										<button class="${item.tituloBoton.botonType.getData()} heightbtnnav col-md-12 col-sm-12 cta"> 
213											${item.tituloBoton.getData()} 
214										</button> 
215									</a> 
216								</div> 
217							</#if> 
218							<#-- FIN BOTON --> 
219							 
220							<#-- INICIO VIDEO --> 
221							<#if (item.urlVideo.getData())?? && item.urlVideo.getData() != "" >  
222							     
223							    <#if (item.urlVideo.posicinVdeo.getData())?? && item.urlVideo.posicinVdeo.getData() != "" >  
224							        <#assign justifyContentValue = item.urlVideo.posicinVdeo.getData()> 
225							    <#else> 
226							        <#assign justifyContentValue = "flex-start"> 
227							    </#if> 
228							     
229							    <#if (item.urlVideo.Controls.getData())?? && item.urlVideo.Controls.getData() != "false" && item.urlVideo.Controls.getData() != "" >  
230							        <#assign controls = "controls"> 
231							    <#else> 
232							        <#assign controls = ""> 
233							    </#if> 
234							     
235							    <#if (item.urlVideo.Autoplay.getData())?? && item.urlVideo.Autoplay.getData() != "false" && item.urlVideo.Autoplay.getData() != "" >  
236							        <#assign autoplay = "autoplay"> 
237							    <#else> 
238							        <#assign autoplay = ""> 
239							    </#if> 
240							     
241							    <#if (item.urlVideo.ReproducirEnBucle.getData())?? && item.urlVideo.ReproducirEnBucle.getData() != "false" && item.urlVideo.ReproducirEnBucle.getData() != "" >  
242							        <#assign loop = "loop"> 
243							    <#else> 
244							        <#assign loop = ""> 
245							    </#if> 
246							     
247							    <#if (item.urlVideo.AnchoVdeo.getData())?? && item.urlVideo.AnchoVdeo.getData() != "" >  
248							        <#assign anchoVideo = item.urlVideo.AnchoVdeo.getData() + '%'> 
249							    <#else> 
250							        <#assign anchoVideo = "320"> 
251							    </#if> 
252							     
253							    <#if (item.urlVideo.AltoVdeo.getData())?? && item.urlVideo.AltoVdeo.getData() != "" >  
254							        <#assign altoVideo = item.urlVideo.AltoVdeo.getData() + '%'> 
255							    <#else> 
256							        <#assign altoVideo = "240"> 
257							    </#if> 
258							     
259								<div style="display: flex; justify-content: ${justifyContentValue}; margin: 20px 0;"> 
260								    <video ${autoplay} ${controls} ${loop} height="${altoVideo}" width="${anchoVideo}"> 
261		                                <source src="${item.urlVideo.getData()}" type="video/mp4" />  
262                                    	Your browser does not support the video tag. 
263                                    </video> 
264								</div> 
265							</#if> 
266							 
267							<#-- INICIO URL --> 
268							<#assign url = "#"> 
269							<#if (item.TituloURL.URL.getData())?? && item.TituloURL.URL.getData() != "" >  
270								<#assign url = item.TituloURL.URL.getData()> 
271							</#if> 
272							<#assign targetURL = "_self"> 
273							<#if (item.TituloURL.URL.urlPestania.getData())?? && item.TituloURL.URL.urlPestania.getData() != ""  > 
274								<#assign targetURL = item.TituloURL.URL.urlPestania.getData() > 
275							</#if> 
276							 
277							<#if (item.TituloURL.getData())?? && item.TituloURL.getData() != "" >  
278								<#if (item.TituloURL.TextoURL.getData())?? && item.TituloURL.TextoURL.getData() != "" >  
279									<div class="divEnlace"> 
280										${item.TituloURL.getData()} 
281										<a class="enlaces enlacesUrl" style="color: #008F60; text-decoration: underline;" href ="${url}"  
282											target="${targetURL}" rel="noopener noreferrer"  
283										onclick="gtag('event', '${the_title}', {'event_category' : '${item.Titulo.getData()}','event_label' : '${eventLabel}'})"> ${item.TituloURL.TextoURL.getData()} 
284										</a> 
285									</div> 
286								<#elseif (item.TituloURL.getData())?? && iitem.TituloURL.getData() != ""> 
287									<div class="divEnlace"> 
288										<a class="enlaces enlacesUrl" style="color: #008F60; text-decoration: underline;" href ="${url}" target="${targetURL}" rel="noopener noreferrer" onclick="gtag('event', '${the_title}', {'event_category' : '${item.Titulo.getData()}','event_label' : '${eventLabel}}'})">${item.TituloURL.getData()} 
289										</a> 
290									</div> 
291								</#if> 
292							<#elseif (item.TituloURL.TextoURL.getData())?? && item.TituloURL.TextoURL.getData() != ""> 
293								<div class="divEnlace"> 
294									<a class="enlaces enlacesUrl" style="color: #008F60; text-decoration: underline;" href ="${url}" target="${targetURL}" rel="noopener noreferrer"  
295										onclick="gtag('event', '${the_title}', {'event_category' : '${item.Titulo.getData()}','event_label' : '${eventLabel}'})"> 
296										${item.TituloURL.TextoURL.getData()} 
297									</a> 
298								</div> 
299							</#if> 
300							<#-- FIN URL --> 
301						</div> 
302						<#-- FIN COLLAPSE --> 
303					</div> 
304				</div> 
305			</div> 
306		</#list> 
307	</#if> 
308</div> 
309 
310<#if getterUtil.getBoolean(ScrollHorizontal.getData())> 
311	<div style="display:none"> 
312		<div class="mensajeScroll"> 
313			<#if (AvisoScrollHorizontal.ImagenAvisoScroll.getData())?? && AvisoScrollHorizontal.ImagenAvisoScroll.getData() != ""> 
314				<img alt="${AvisoScrollHorizontal.ImagenAvisoScroll.getAttribute("alt")}" data-fileentryid="${AvisoScrollHorizontal.ImagenAvisoScroll.getAttribute("fileEntryId")}" src="${AvisoScrollHorizontal.ImagenAvisoScroll.getData()}" /> 
315			</#if> 
316			<span>${AvisoScrollHorizontal.TextoAvisoScroll.getData()}</span> 
317		</div> 
318	</div> 
319</#if> 
320 
321<#macro anclaH ancla> 
322	<#if ancla?? && ancla != ""> 
323    	id="${ancla}" 
324    </#if> 
325</#macro> 
326 
327<script> 
328 
329	$(document).ready(function() { 
330		const enlacesAnclados = document.querySelectorAll("a[href*='#ancla']"); 
331		enlacesAnclados.forEach((enlace) => { 
332			enlace.addEventListener("click", redireccionar); 
333		}); 
334	}); 
335 
336	//Ajusta la altura en funciona de si esta abierto o no 
337	function alturaAcordeon(id, event) { 
338		console.log(id); 
339		const contenidoOculto = $(event.target).closest('.contenido-oculto'); 
340 
341		// Detiene la propagacion del evento si se hace clic dentro de contenido-oculto 
342		if (contenidoOculto.length > 0) { 
343			event.stopPropagation(); 
344			return; 
345
346 
347		if ($('#' + id).hasClass('collapsed')) { 
348			$('#' + id).css({ 'height': 'auto' }); 
349			$('#' + id + ' .contenido-oculto').css({ 'height': 'calc(100% - 40px)' }); 
350 
351		} else { 
352			$('#' + id).css({ 'height': 'fit-content' }); 
353			$('#' + id + ' .contenido-oculto').css({ 'height': 'auto' }); 
354
355
356 
357	//Evita que se haga el efecto de cerrar al pulsar el boton 
358	function handleButtonClick(event) { 
359		event.stopPropagation(); 
360
361	 
362	function redireccionar(event) { 
363		event.preventDefault(); 
364		var idAncla = event.target.getAttribute("href").split("#")[1]; 
365        const elementoRedirectAncla = document.getElementById(idAncla); 
366         
367        <#-- Verificar si se encontro el elemento antes de ajustar la altura y hacer el scroll --> 
368        if (elementoRedirectAncla) { 
369            const padreConClase = elementoRedirectAncla.closest(".titulodesplegable "); 
370     
371            if(padreConClase){ 
372                const padreDelPadre = padreConClase.parentNode; 
373     
374                if($('#'+padreDelPadre.id).hasClass('collapsed')){ 
375                    padreDelPadre.click(); <#-- Llama a una funcion para que se abra el desplegable --> 
376
377                 
378
379    	 
380            <#-- Obtener la posición del ancla --> 
381            const rect = elementoRedirectAncla.getBoundingClientRect(); 
382            const offsetX = Math.floor(rect.x); 
383             
384            var posicionAncla = Math.floor(rect.y) ; 
385            var scrollY = window.scrollY; 
386            var pantallaTamanio = window.innerHeight / 2; 
387            //Caja donde se pulsa el ancla 
388            var tamianioPadreEnlanceAncla = event.target.offsetParent.offsetHeight; 
389            var menuTamanio = 100; 
390             
391            //elementoRedirectAncla.scrollIntoView({behavior: 'smooth',  block: 'start'}); 
392            var offsetY ; 
393             
394            posicionAncla >= tamianioPadreEnlanceAncla ? offsetY = posicionAncla  - menuTamanio - tamianioPadreEnlanceAncla : offsetY = posicionAncla  - menuTamanio; 
395                         
396            window.scrollBy(0, offsetY); 
397
398
399     
400	<#if getterUtil.getBoolean(ScrollHorizontal.getData())> 
401		window.onload = function() { 
402			var textCards = document.querySelectorAll('.contenido-oculto'); 
403 
404			textCards.forEach(function(textCard) { 
405				var parrafosConImagen = textCard.querySelectorAll('p:has(picture)'); 
406 
407				if (parrafosConImagen.length > 0) { 
408					 
409					parrafosConImagen.forEach(function(parrafoConImagen) { 
410						var divImageContainer = document.createElement('div'); 
411						divImageContainer.className = 'image-container'; 
412 
413						parrafoConImagen.parentNode.insertBefore(divImageContainer, parrafoConImagen); 
414 
415						divImageContainer.appendChild(parrafoConImagen); 
416 
417						var imagenesEnPicture = divImageContainer.querySelectorAll('picture img'); 
418						imagenesEnPicture.forEach(function(imagen) { 
419							imagen.classList.add('imgScroll'); 
420						}); 
421 
422						var mensajeScrollDiv = document.querySelector('.mensajeScroll'); 
423 
424						if (mensajeScrollDiv) { 
425							var mensajeScrollClone = mensajeScrollDiv.cloneNode(true); 
426							divImageContainer.parentNode.insertBefore(mensajeScrollClone, divImageContainer.nextSibling); 
427
428					}); 
429
430			}); 
431		}; 
432	</#if> 
433 
434</script> 
435 
436<style> 
437    #simple_wrap .boton { 
438        margin-top: 35px; 
439        max-width: 347px; 
440        padding: 0; 
441
442     
443    .icon48{ 
444        width: 48px; 
445        height: 48px; 
446
447     
448    .divEnlace{ 
449        min-height: 40px; 
450        margin-top: 30px; 
451        display: flex; 
452        align-items: center; 
453        padding: 0; 
454
455     
456    .enlacesUrl{ 
457        margin-left: 5px; 
458
459     
460</style> 
461 
462<#if getterUtil.getBoolean(ScrollHorizontal.getData())> 
463    <style> 
464 
465        .mensajeScroll{ 
466            display: flex; 
467            justify-content: center; 
468            align-items: center; 
469            margin-top: 2em; 
470            margin-bottom: 2em; 
471
472 
473         @media only screen and (min-width: 992px){ 
474            .mensajeScroll{ 
475                display: none; 
476
477
478 
479        @media (min-width: 769px){ 
480            div.image-container{ 
481                max-width: 100%; 
482                display: flex;  
483                justify-content: center;  
484                align-items: center;  
485                overflow-x: auto; 
486
487
488     
489        @media (max-width: 768px){ 
490            div.image-container{ 
491              max-width: none!important;  
492              overflow-x: auto;  
493              white-space: nowrap; 
494            }  
495            .portlet-journal-content .journal-content-article img.imgScroll{ 
496                max-width: none!important; 
497
498     
499            .textCard{ 
500                width: 100%; 
501
502
503    </style> 
504</#if> 

More about us

You might also be interested in

Icono de un candado

Safety and Prevention

Icono de un coche con la señal de electricidad

New energy models