The following has evaluated to null or missing:
==> cur_cardGroup.cardIcon.getAttribute('alt') [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 77]
----
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: ${cur_cardGroup.cardIcon.getAttribute... [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 75]
----
1<div class="c-calc-modal">
2 <div class="container-fluid c-calc-header__container">
3 <div class="container">
4 <header class="c-calc-header">
5 <a href="/" class="c-calc-header__logo">
6 <#if headerLogo?? && headerLogo.getData()?? && headerLogo.getData() != "">
7 <img alt="${headerLogo.getAttribute('alt')}" data-fileentryid="${headerLogo.getAttribute('fileEntryId')}" src="${headerLogo.getData()}" />
8 </#if>
9 </a>
10 <#if closeButtonText?? && closeButtonText.getData()?? && closeButtonText.getData() != "">
11 <a href="#" class="c-calc-header__close js-close-header"> <span class="icon-arrow-right"></span> ${closeButtonText.getData()}</a>
12 </#if>
13 </header>
14 </div>
15 </div>
16
17
18 <div class="section-wrapper">
19 <div class="c-buttons-text c-buttons-text--seg section-wrapper">
20 <#if title?? && title.getData()?? && title.getData() != "">
21
22 <p class="c-buttons-text__title c-buttons-text__title--insuranceCard">
23 ${title.getData()}
24 </p>
25 </#if>
26 <p class="c-buttons-text__subtitle c-buttons-text__subtitle--insuranceCard">
27 <#if subtitle?? && subtitle.getData()?? && subtitle.getData() != "">
28 ${subtitle.getData()}
29 </#if>
30 </p>
31 </div>
32
33 <div id="insuranceCard--slider">
34 <div class="owl-slider js-modal-carousel owl-carousel owl-theme owl-loaded owl-drag" id="carouselTipoSeguros">
35 <#if cardGroup.getSiblings()?has_content>
36 <#list cardGroup.getSiblings() as cur_cardGroup>
37 <div class="c-insuranceCard">
38 <div class="c-insuranceCard__image">
39 <img alt="${cur_cardGroup.cardIcon.getAttribute('alt')}" data-fileentryid="${cur_cardGroup.cardIcon.getAttribute('fileEntryId')}" src="${cur_cardGroup.cardIcon.getData()}" />
40 </div>
41 <p>
42 <#if cur_cardGroup.cardTitle?? && cur_cardGroup.cardTitle.getData()?? && cur_cardGroup.cardTitle.getData() != "">
43 ${cur_cardGroup.cardTitle.getData()}
44 </#if>
45 </p>
46 <#assign linkTarget = "_self">
47 <#assign link = "#">
48 <#if cur_cardGroup.buttonLink?? && cur_cardGroup.buttonLink.getData()?? && cur_cardGroup.buttonLink.getData() != "">
49 <#assign link = cur_cardGroup.buttonLink.getData()>
50 </#if>
51 <#if cur_cardGroup.buttonTarget?? && cur_cardGroup.buttonTarget.getData()?? && cur_cardGroup.buttonTarget.getData() != "">
52 <#assign linkTarget = cur_cardGroup.buttonTarget.getData()>
53 </#if>
54 <a target="${linkTarget}" class="button variant-contained color-blue" href="${link}">
55 <span class="button__text">
56 <#if cur_cardGroup.cardButtonText?? && cur_cardGroup.cardButtonText.getData()?? && cur_cardGroup.cardButtonText.getData() != "">
57 ${cur_cardGroup.cardButtonText.getData()}
58 </#if>
59 </span>
60 </a>
61 </div>
62 </#list>
63 </#if>
64 </div>
65 </div>
66 <div class="c-insuranceContent">
67 <p class="c-insuranceContent__text--small">
68 <#if middleText?? && middleText.getData()?? && middleText.getData() != "">
69 ${middleText.getData()}
70 </#if>
71 </p>
72 <#if secondMiddleText?? && secondMiddleText.getData()?? && secondMiddleText.getData() != "" && middleLink?? && middleLink.getData()?? && middleLink.getData() != "" >
73 <#assign linkTarget = "_self">
74 <#if middleLinkTarget?? && middleLinkTarget.getData()?? && middleLinkTarget.getData() != "">
75 <#assign linkTarget = middleLinkTarget.getData()>
76 </#if>
77 <a class="button-transparent blue" href="${middleLink.getData()}" target="${linkTarget}">
78 ${secondMiddleText.getData()}
79 <span class="icon-arrow-right icon-chevron-right c-insurance-card__srrow-icon"></span>
80 </a>
81 </#if>
82 </div>
83 <div class="container-fluid">
84 <div class="c-insuranceContentCard">
85 <div class="c-insuranceContentCard__content">
86 <#if phoneCallGroup.callTitle?? && phoneCallGroup.callTitle.getData()?? && phoneCallGroup.callTitle.getData() != "">
87 <p class="c-insuranceContentCard__title">
88 ${phoneCallGroup.callTitle.getData()}
89 </p>
90 </#if>
91
92 <#if phoneCallGroup.callSubtitle?? && phoneCallGroup.callSubtitle.getData()?? && phoneCallGroup.callSubtitle.getData() != "">
93 <p class="c-insuranceContentCard__text">
94 ${phoneCallGroup.callSubtitle.getData()}
95 </p>
96 </#if>
97 </div>
98 <#assign CallLinkTarget = "_self">
99 <#assign callLink = "#">
100 <#if phoneCallGroup.callButtonLink?? && phoneCallGroup.callButtonLink.getData()?? && phoneCallGroup.callButtonLink.getData() != "">
101 <#assign callLink = phoneCallGroup.callButtonLink.getData()>
102 </#if>
103 <#if phoneCallGroup.callButtonTarget?? && phoneCallGroup.callButtonTarget.getData()?? && phoneCallGroup.callButtonTarget.getData() != "">
104 <#assign CallLinkTarget = phoneCallGroup.callButtonTarget.getData()>
105 </#if>
106 <#if phoneCallGroup.callButtonText?? && phoneCallGroup.callButtonText.getData()?? && phoneCallGroup.callButtonText.getData() != "">
107 <a class="button variant-outlined color-blue" href="${callLink}" target="${CallLinkTarget}">
108 <span class="button__text">
109 <svg fill="none" height="12" viewbox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"> <path d="M2.41 5.19C3.37614 7.07795 4.91206 8.61386 6.8 9.58L8.27 8.11C8.46816 7.92795 8.757 7.88442 9 8C9.76807 8.25245 10.5715 8.38073 11.38 8.38C11.712 8.40397 11.976 8.66802 12 9V11.33C12 11.7 11.7 12 11.33 12C5.07261 12 0 6.92739 0 0.67C0 0.299969 0.299969 0 0.67 0H3C3.37003 0 3.67 0.299969 3.67 0.67C3.65787 1.45912 3.76921 2.24528 4 3C4.07587 3.2406 4.01017 3.50341 3.83 3.68L2.41 5.19Z" fill="#00008F"></path> </svg>
110 ${phoneCallGroup.callButtonText.getData()}
111 </span>
112 </a>
113 </#if>
114 </div>
115
116 <div class="c-insuranceContentCard">
117 <div class="c-insuranceContentCard__content">
118 <#if officeGroup.officeTitle?? && officeGroup.officeTitle.getData()?? && officeGroup.officeTitle.getData() != "">
119 <p class="c-insuranceContentCard__title">
120 ${officeGroup.officeTitle.getData()}
121 </p>
122 </#if>
123 <#if officeGroup.officeSubtitle?? && officeGroup.officeSubtitle.getData()?? && officeGroup.officeSubtitle.getData() != "">
124 <p class="c-insuranceContentCard__text">
125 ${officeGroup.officeSubtitle.getData()}
126 </p>
127 </#if>
128 </div>
129 <#assign officeLinkTarget = "_self">
130 <#assign officeLink = "#">
131 <#if officeGroup.officeButtonLink?? && officeGroup.officeButtonLink.getData()?? && officeGroup.officeButtonLink.getData() != "">
132 <#assign officeLink = officeGroup.officeButtonLink.getData()>
133 </#if>
134 <#if officeGroup.officeButtonTarget?? && officeGroup.officeButtonTarget.getData()?? && officeGroup.officeButtonTarget.getData() != "">
135 <#assign officeLinkTarget = officeGroup.officeButtonTarget.getData()>
136 </#if>
137 <#if officeGroup.officeButtonText?? && officeGroup.officeButtonText.getData()?? && officeGroup.officeButtonText.getData() != "">
138 <a target="${officeLinkTarget}" class="button variant-outlined color-blue" href="#">
139 <span class="button__text">
140 ${officeGroup.officeButtonText.getData()}
141 </span>
142 </a>
143 </#if>
144 </div>
145 </div>
146</div>
147 </div>
148
149
150
151
152<script>
153
154 $( document ).ready(function() {
155 //let abNavPrev = '<svg class="ab-nav-prev" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"> <g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon> <polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
156 //let abNavNext ='<svg class="ab-nav-next" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"><g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon><polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
157
158 let abNavPrev = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9 15L2 8L9 1" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
159 let abNavNext = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L8 8L1 15" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
160
161 let chevron_l = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
162 let chevron_r = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
163
164
165 let detener;
166 let ind = 0;
167 let tiempo = 3000;
168 let activarAuto = false;
169
170 let modd = document.getElementsByClassName("c-calc-modal");
171 let carr = document.getElementsByClassName('js-modal-carousel');
172
173 let evnts = ["scroll", "touchmove", "touchstart", "touchend", "mousedown", "mouseup", "dragstart", "drag", "dragend", "dragenter", "dragover", "dragleave", "drop"];
174
175
176 window.addEventListener('resize', carouselResponsive);
177
178 evnts.forEach(e => {
179 modd[0].addEventListener(e, stopcarrousel);
180 carr[0].addEventListener(e, stopcarrousel);
181 })
182
183
184 let observer = new MutationObserver(function(mutations){
185 mutations.forEach(function(mutation){
186 if(mutation.type == 'attributes' && mutation.attributeName == 'class'){
187 $('.js-modal-carousel').trigger('stop.owl.autoplay');
188 changeIco();
189 waiting();
190 }
191 })
192 })
193
194 let config = {
195 attributes: true,
196 }
197
198 observer.observe(modd[0], config);
199
200
201 carouselResponsive();
202
203 function stopcarrousel(){
204 $('.js-modal-carousel').trigger('stop.owl.autoplay');
205 waiting();
206 }
207
208 function waiting(){
209 setTimeout(function(){
210 $('.js-modal-carousel').trigger('stop.owl.autoplay');
211 },tiempo)
212 }
213
214
215 /*
216 function activeAuto(){
217
218 if(!activarAuto){
219 $('.js-modal-carousel').trigger('play.owl.autoplay', [tiempo]);
220 $('.js-modal-carousel').addClass('autoplay-enabled');
221 activarAuto = true;
222 }
223
224 } */
225
226
227 function carouselResponsive () {
228
229 let wi = window.innerWidth;
230
231 $('.js-modal-carousel').owlCarousel({
232
233 autoplay:false,
234 autoplayTimeout:tiempo,
235 autoplayHoverPause:true,
236 navText: [abNavPrev, abNavNext],
237 margin:10,
238 loop:true,
239 responsive:{
240 0:{
241 items:1,
242 center:true,
243 stagePadding: 74,
244 slideBy: 1,
245 nav:false,
246 margin: 8
247 },
248 600:{
249 items:3,
250 slideBy:1,
251 nav:false,
252 margin: 16
253 },
254 1000:{nav:true,
255 items:4,
256 slideBy:1,
257 margin: 21,
258 stagePadding: 1 //5 muestra la card completa
259 }
260 }
261 })
262
263 $('.js-modal-carousel').trigger('stop.owl.autoplay');
264 waiting();
265
266
267 }
268
269 function tinyCarouselPaging() {
270 }
271
272 function changeIco(){
273
274 $(".owl-prev").empty();
275 $(".owl-next").empty();
276
277 $(".owl-next").append(chevron_r);
278 $(".owl-prev").append(chevron_l);
279 }
280
281 });
282</script>
Què és el Codi ètic i de compliment d'AXA?
AXA té un Codi ètic i de compliment del grup (el “Codi”) que s'aplica a totes les seves entitats, empleats i socis de negoci a tot el món.
El 2019, AXA ha renovat el seu codi deontològic i ha elaborat un Codi ètic i de compliment a escala mundial. El Codi pretén ser un document més fàcil d'usar, amb un disseny modern i accessible. El contingut reflecteix els desafiaments d'avui dia i inclou temes com el compromís amb les xarxes socials, la prevenció de la discriminació i l'assetjament, i la protecció i ús responsable de les dades dels clients.
Valors i ètica
Tal com indica Thomas Buberl (Chief Executive Officer del Grup AXA): Els valors guien els comportaments, que impulsen els resultats. Customer First (el client primer), Integritat, Valentia i One AXA; cadascun dels nostres valors només té sentit si són compartits i encarnats per tots. Han d'aplicar-se cada dia i en tots els sentits. Si tenim dubtes sobre la millor decisió a prendre, els nostres valors ens ajuden a decidir, tenint en compte la nostra missió d'empoderar les persones perquè tinguin una vida millor. AXA té una llarga història de compromís amb una ètica professional sòlida. Hem desenvolupat aquest Codi ètic i de compliment per establir una comprensió compartida del que s'espera de cadascun de nosaltres i dels negocis del Grup.
Aquests compromisos han de guiar-nos, a cadascun de nosaltres, en l'acompliment del nostre treball diari. No hi ha conflicte entre un acompliment sòlid de negoci i uns elevats estàndards d'ètica, compliment i govern que, de fet, se sostenen entre si. Per això, espero que tots a AXA es comprometin personalment a complir els requisits del nostre Codi ètic i de compliment.
Compromesos amb la prevenció de delictes.
AXA adopta una política de tolerància zero davant la comissió de delictes, sota qualsevol de les seves formes, i està totalment compromesa amb el compliment de totes les lleis i regulacions contra la corrupció i suborn allà on operi.
Canal de denúncies
Què és el canal de denúncies Whistleblowing?
És una via de comunicació a través de la qual rebem i gestionem les comunicacions o informacions formulades pels empleats i professionals d'AXA, els seus accionistes, partícips i persones pertanyents a l'òrgan d'administració, direcció o supervisió d'AXA, inclosos els membres no executius; i qualsevol persona que treballi per a o sota la supervisió i la direcció de contractistes, subcontractistes i proveïdors de l'organització, sobre possibles conductes irregulars de les quals hagin tingut coneixement, contràries a l'ètica o a les normes, tant externes com internes.
Què hi he de comunicar?
T'animem a comunicar-hi qualsevol inquietud que tinguis sobre irregularitats o conductes inadequades que hagis detectat o presenciat realitzades per qualsevol empleat o tercer que tingui vincle amb qualsevol entitat del Grup AXA a Espanya.
Entre d'altres, s'hi inclouen els tipus de comportaments següents: Corrupció i suborn, matèries de Recursos Humans (incloent-hi situacions d'assetjament de qualsevol mena o de discriminació), frau en estats financers, apropiació indeguda d'actius (incloent-hi actius físics o digitals i dades), altres declaracions fraudulentes, infraccions legals (incloent-hi alteració, tergiversació o falsificació documental).
On puc denunciar una irregularitat o un comportament inadequat: canal Whistleblowing?
- Pots fer-ho identificant-te des del teu correu electrònic a la bústia de correu buzonlocalfraud@axa.es (a AXA Espanya) o speak-up@axa.com (Grup AXA).
També pots denunciar-ho de manera anònima per les vies següents:
- Identificant-te o de manera anònima amb un fax al número 91.555.02.06
- A través de servei postal o per correu intern dirigit a “Investigaciones Internas -Auditoría Interna”, en un sobre tancat amb la indicació de “confidencial/personal”.
Quina protecció i quines garanties tinc que no em passarà res si denuncio de bona fe?
Tant la normativa interna com les lleis i regulacions aplicables protegeixen especialment el comunicant, i està prohibit revelar la seva identitat o qualsevol informació que pogués permetre identificar-lo, excepte per ordre judicial.
Tots els intervinents en el procés de denúncia i investigació estan obligats a guardar una estricta confidencialitat.
Si a causa de la investigació és necessari desvelar aquesta identitat a més persones (per exemple, de cara a mesures disciplinàries o accions judicials), les persones que coneguin aquesta identitat estaran subjectes a un deure de secret permanent sobre aquesta identitat, i el seu incompliment és sancionable.
D'altra banda, AXA no tolera cap acte de represàlia contra ningú que informi de bona fe d'una conducta inadequada o irregularitat, real o presumpta.
Què ocorre després que es posi una denúncia?
Tots els casos escalats o identificats són examinats en profunditat a fi de poder assegurar una investigació independent.
Si existeixen elements que confirmen la denúncia, es duu a terme aquesta investigació.
Perquè una investigació conclogui com a fundada, ha de basar-se en fets objectivament provats. Per això, es garanteix sempre la presumpció d'innocència. I per aquesta raó, tota persona que pogués estar sent investigada gaudeix també de la màxima protecció quant a la seva identitat.
La investigació acaba sempre amb l'emissió d'un informe oficial confidencial.
Protecció de dades de Canal de Denúncies:
AXA SEGUROS GENERALES S.A. DE SEGUROS Y REASEGUROS, amb CIF: A60917978, i domicili social al carrer de Monsenyor Palmer, núm. 1, 07014, Palma de Mallorca (Espanya) tractarà totes les dades personals subministrades voluntàriament pels denunciants a través de les bústies de correu electrònic de consultes i denúncies, per a les finalitats següents:
- Tramitar i resoldre la denúncia rebuda.
En cas de comunicació en què hi hagi identificació del denunciant, aquest, com a titular de les dades, té dret a dirigir-se a AXA, Ejercicio derechos de privacidad - Atención Cliente, calle Emilio Vargas, 6, 28043, Madrid, o a l’adreça de correu electrònic buzon.lopd@axa.es, per exercir els drets següents: accés, rectificació i supressió, limitació o revocació del tractament de les seves dades, oposició al tractament de les seves dades.
- Codi ètic i de compliment PDF (1MB)
- Principis corporatius d'AXA Espanya-Prevenció penal i anticorrupció PDF (140KB)