1"use strict"; 2 3var m = document.querySelector('._inner'); 4 5/* ============================ */ 6/* Bloc Cofidis vous accompagne */ 7/* ============================ */ 8function track_event_bloc_accompagne(label) 9{ trackEvent({"category": "Carrousel_Damier", "action": "Infos_Accompagnement", "label": "Tuile_" + label}); 10} 11 12 13/*=============================== */ 14/* Slide => FAQ / aller plus loin */ 15/* ============================== */ 16function slide_toggle(e, class_textHeight, class_items, class_reponse) 17{ let parent_elem = e.target.closest(class_items); 18 let content = parent_elem.children[0].nextElementSibling; 19 let textHeight = content.querySelector(class_textHeight).offsetHeight; 20 21 if(!parent_elem.classList.contains("open")) 22 { 23 let items = document.querySelectorAll(class_items); 24 25 items.forEach(item => { 26 if(item.classList.contains("open")) 27 { let reponse = item.querySelector(class_reponse); 28 item.classList.remove("open"); 29 reponse.style.maxHeight = "0px"; 30 }; 31 }); 32 33 parent_elem.classList.add("open"); 34 content.style.maxHeight = textHeight + "px"; 35 } 36 else 37 { 38 parent_elem.classList.remove("open"); 39 content.style.maxHeight = "0px"; 40 } 41} 42 43 44document.addEventListener("DOMContentLoaded", function () 45{ /* ======== */ 46 /* LazyLoad */ 47 /* ======== */ 48 new LazyLoad({ 49 elements_selector: '.lazy', 50 use_native: true 51 }); 52 53 /* ======================================= */ 54 /* Slider2 avec GLIDE2 (maillage produits) */ 55 /* ======================================= */ 56 var g2 = m.querySelector('.glide2 .glide__slides'); 57 var bullets2 = document.querySelector('.glide2 .glide__bullets'); 58 var bar2 = bullets2.querySelector('.glide2 .bar'); 59 let glide2_search = document.getElementsByClassName("glide2")[0]; 60 let glide_arrows = glide2_search.getElementsByClassName("glide__arrow"); 61 let glide_arrow_left = glide2_search.getElementsByClassName("glide__arrow--left")[0]; 62 let glide_arrow_right = glide2_search.getElementsByClassName("glide__arrow--right")[0]; 63 64 var settings2 = 65 { type: 'slider', 66 rewind: false, 67 startAt: 0, 68 gap: 15, 69 perView: 1.3, 70 bound: true 71 }; 72 73 var nb_elements2 = g2.childElementCount; 74 75 var narrowerPerView2 = [window.matchMedia('(min-width: 1024px)').matches]; 76 77 if (narrowerPerView2.some(Boolean)) 78 { // Desktop: affichage de l'ensemble des blocs, suppression de la barre de défilement, suppression des bulles gauche/droite 79 settings2.perView = 2; 80 if (nb_elements2 < 3) 81 { bullets2.style.backgroundColor = "transparent"; 82 bar2.style.display = "none"; 83 glide_arrow_left.classList.add("disable"); 84 glide_arrow_right.classList.add("disable"); 85 } 86 } 87 88 var glide2 = new Glide('.glide2', settings2).mount(); 89 90 // Desktop: supprimer l'effet slide 91 if ((narrowerPerView2.some(Boolean)) && (nb_elements2 < 3)) 92 { glide2.disable(); 93 } 94 95 // set bar width by counting number of slides 96 if (narrowerPerView2.some(Boolean)) 97 { nb_elements2 = nb_elements2 - 1; 98 } 99 bar2.style.width = 100 / nb_elements2 + '%'; 100 101 102 function getTranslateX2(el2) 103 { var style2 = window.getComputedStyle(el2); 104 var matrix2 = new WebKitCSSMatrix(style2.webkitTransform); 105 return matrix2.m41; 106 } 107 108 glide2.on('swipe.start', function () 109 { bar2.style.transition = '0s'; 110 }); 111 112 var val2 = void 0; 113 114 glide2.on('swipe.move', function () 115 { var gX2 = getTranslateX2(g2) * -1; 116 val2 = gX2 / g2.clientWidth * 100; 117 bar2.style.left = val2 + '%'; 118 }); 119 120 glide2.on(['swipe.end', 'run'], function () 121 { bar2.style.transition = ''; 122 var gX2 = getTranslateX2(g2) * -1; 123 bar2.style.left = 100 / nb_elements2 * glide2.index + '%'; 124 }); 125 126 function glide_arrow() 127 { if (glide2.index == 0) 128 { // Initialisation 129 glide_arrow_left.classList.add("disable"); 130 glide_arrow_right.classList.remove("disable"); 131 } 132 else 133 { if (glide2.index == (nb_elements2 - 1)) 134 { // Si bout du slide 135 glide_arrow_left.classList.remove("disable"); 136 glide_arrow_right.classList.add("disable"); 137 } 138 else 139 { // Si pas bout du slide 140 glide_arrow_left.classList.remove("disable"); 141 glide_arrow_right.classList.remove("disable"); 142 } 143 } 144 } 145 146 147 // Evénement au click des "boutons flèches" 148 for(let arrow of glide_arrows){arrow.addEventListener("click", () => glide_arrow())} 149 150 // Evénement au click sur la barre de défilement horizontal 151 bullets2.addEventListener("click", () => glide_arrow()); 152 153 // Evénement au swipe sur le slider 154 glide2.on('run.after', function () 155 { glide_arrow(); 156 }); 157 158 /* ============== */ 159 /* Bloc Plus loin */ 160 /* ============== */ 161 let bloc_plus_loin_questions = document.querySelectorAll(".bloc_plus_loin__item .bloc_plus_loin_question"); 162 163 for(let question of bloc_plus_loin_questions) 164 { question.addEventListener("click", (e) => { 165 slide_toggle(e, ".bloc_plus_loin_reponseInner", ".bloc_plus_loin__item", ".bloc_plus_loin_reponse"); 166 167 // Tracking Analytics // 168 trackEvent({"category": "Plus_loin", "action": "Page_Produit", "label": e.target.textContent}); 169 }); 170 } 171}); 172 173 174/* ============================================ */ 175/* Tracking Analytics (blocs Quelques conseils) */ 176/* ============================================ */ 177function track_event_qq_conseils(id) 178{ trackEvent({"category": "Carrousel_Damier", "action": "Conseils", "label": "Tuile_" + id}); 179} 180 181 182/* =========================================== */ 183/* Tracking Analytics (carrousel des produits) */ 184/* =========================================== */ 185function track_event_slider_produit(id) 186{ // Initialisation des variables 187 var tracking_action = ""; 188 var tracking_label = ""; 189 190 // Affectation des variables 191 switch(id) 192 { case 1: tracking_action = "Credits"; 193 tracking_label = "Tuile_MyLine"; 194 break; 195 case 2: tracking_action = "Credits"; 196 tracking_label = "Tuile_Mastercard"; 197 break; 198 case 3: tracking_action = "Credits"; 199 tracking_label = "Tuile_Mastercard_Gold"; 200 break; 201 case 4: tracking_action = "Credits"; 202 tracking_label = "Tuile_PAT_Classique"; 203 break; 204 case 5: tracking_action = "Credits";
205 tracking_label = "Tuile_PAT_Auto_Non_Affecte"; 206 break; 207 case 6: tracking_action = "Credits"; 208 tracking_label = "Tuile_PAT_Travaux"; 209 break; 210 case 7: tracking_action = "Credits"; 211 tracking_label = "Tuile_Rachat"; 212 break; 213 default: tracking_action = "-"; 214 tracking_label = "-"; 215 break; 216 } 217 218 // Tracking Analytics (bloc slider produit) 219 trackEvent({"category": "Carrousel_Damier", "action": tracking_action, "label": tracking_label}); 220}
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.