1let hash = window.location.hash; 2let pageCourante = window.location.pathname.split("/").slice(-1)[0]; 3let sectionVisible; 4let largeurMobile = 810; 5 6$(function() { 7 affichageAsynchrone(); 8 ajusteAffichageMobile(); 9 10 let blocs = '.colonne-produit'; 11 let selecteursAEgaliser = '.detail-langue'; 12 egaliseHauteur(conteneur='#aperso', blocs, selecteursAEgaliser, '.description'); 13 egaliseHauteur(conteneur='#afam', blocs, selecteursAEgaliser, '.description'); 14 15 if (location.pathname.endsWith('antidote-12')) { 16 initAntidote12(); 17 } 18 19 if (hash) { 20 let ancre = $(`h3${hash}`) 21 if ($(`h3${hash}`).length) { 22 ancre.get(0).scrollIntoView(); 23 } 24 } else { 25 $("#" + pageCourante).find("li:first-child a").addClass("actif page-courante"); 26 } 27 28 $('.declencheur-menu.active-on-hover').on({ 29 mouseenter: function() { 30 let id_declencheur = $(this).attr('id') 31 $(`[data-declencheur="${id_declencheur}"]`).menuflottant('affiche'); 32 }, mouseleave: function() { 33 let id_declencheur = $(this).attr('id') 34 $(`[data-declencheur="${id_declencheur}"]`).menuflottant('masque'); 35 } 36 }); 37}); 38 39$(window).on("scroll", function(param) { 40 $(".arborescence").css("--bs", $("#barre-menu").css("--bs")) 41 $("header").css("--opacity", $("html").css("--opacity")) 42 43 if ($("section.module").has("h3[id]").length) { 44 let documentScroll = $(document).scrollTop(); 45 let deuxiemeSection = $("section.module").has("h3[id]")[1]; 46 let premiereSectionID = $("section.module").has("h3[id]")[0].querySelector("h3[id]").id; 47 let deuxiemeSectionID = deuxiemeSection.querySelector("h3[id]").id; 48 49 if (deuxiemeSection.offsetHeight < documentScroll) { 50 $("body").find(`a[href="#${deuxiemeSectionID}"]`).addClass('actif page-courante'); 51 $("body").find(`a[href="#${premiereSectionID}"]`).removeClass('actif page-courante'); 52 } else { 53 $("body").find(`a[href="#${premiereSectionID}"]`).addClass('actif page-courante'); 54 $("body").find(`a[href="#${deuxiemeSectionID}"]`).removeClass('actif page-courante'); 55 } 56 } 57 58 if ($('#afam').length) { 59 let fenetreOffsetBottom = $(window).scrollTop() + $(window).height();
60 let estForfaitFamilialVisible = fenetreOffsetBottom > ($('#afam .entete-colonne').offset().top + $('#afam .entete-colonne').height()); 61 let estIntroVisible = (($(window).scrollTop() + 150) < $('#_tableau-produits').offset().top) && (fenetreOffsetBottom > $('#_tableau-produits').offset().top); 62 63 if (estForfaitFamilialVisible && !estIntroVisible) { 64 $('#bt-ancre-produit').addClass('disparait'); 65 } else { 66 $('#bt-ancre-produit').removeClass('disparait'); 67 } 68 } 69}) 70 71function selecteursProduits(selection, autreProduit) { 72 $("#selecteur-produits-" + selection).click(function() { 73 $("#boutique-caracteristiques, #_mise-a-niveau-aplus #entete").addClass("mobile-affiche-" + selection); 74 $("#boutique-caracteristiques, #_mise-a-niveau-aplus #entete").removeClass("mobile-affiche-" + autreProduit); 75 $(".selecteur-produits div").removeClass("selectionne"); 76 $(this).addClass("selectionne"); 77 }); 78} 79 80function clicAffiche(selection) { 81 $(".clic-affiche-" + selection).click(function() { 82 $("#selecteur-produits-" + selection).click(); 83 }); 84} 85 86// Ajuster onglet sélectionné selon paramètre dans URL 87function selectionOngletURL() { 88 let query = donneParam('produit') || donneParam('product'); 89 $("#selecteur-produits-" + query).click(); 90} 91 92function activeMenuDeroulantMobile() { 93 var $conteneurMenu = $(".arborescence > ul"); 94 95 if ($(window).width() <= largeurMobile) { 96 $("aside h4.titre-page-mobile").on("click", function(data) { 97 if (!($(".arborescence").hasClass("visible"))) { 98 $(".arborescence").addClass("visible") 99 $conteneurMenu.show(50) 100 } 101 }) 102 103 $(document).mouseup(function(e) { 104 if ((!$conteneurMenu.is(e.target) && $conteneurMenu.has(e.target).length !== 0) 105 || ($conteneurMenu.has(e.target).length === 0 && !$(e.target).is('a')) 106 || $(e.target).is('.actif, .page-courante')) { 107 $(".arborescence").removeClass("visible") 108 $conteneurMenu.hide(50); 109 } 110 }); 111 } else { 112 $(document).unbind("mouseup"); 113 $("aside h4.titre-page-mobile").unbind("click") 114 $(".arborescence > ul, .parent-actif + ul").show(50); 115 } 116} 117 118function ajusteAffichageMobile() { 119 selecteursProduits('perso', 'fam'); 120 selecteursProduits('fam', 'perso'); 121 122 clicAffiche('perso'); 123 clicAffiche('fam'); 124 125 selectionOngletURL(); 126 activeMenuDeroulantMobile(); 127 128 $(window).resize(function () { 129 activeMenuDeroulantMobile(); 130 }).trigger("resize"); 131} 132 133 134function affichageAsynchrone() { 135 var $conteneurPageAsynchrone = $('<div/>'); 136 137 /*** 138 * Chargement ajax des pages de la documentation 139 */ 140 $("body.produits").on('click', "#contenu-onglet a, [data-produit='_antidote-11'] a", function (e) { 141 var href = $(this).attr('href'); 142 var target = $(this).attr('target'); 143 var state = donneHistoryState(href); 144 145 if (!(e.altKey) && !(e.metaKey) && !/^https?:\/\//.test(href) && target !== '' && href.charAt(0) !=='#' && (href.startsWith('/fr/boutique') || href.startsWith('/en/store'))) { 146 chargementAsyncMain(state, true); 147 e.preventDefault(); 148 return false; 149 } 150 else if(href.charAt(0) =='#'){ 151 152 e.preventDefault(); 153 154 window.location.hash = href; 155 return false; 156 } 157 }); 158 159 /** 160 * Chargement asynchrone du contenu dans le bloc «main» 161 */ 162 var chargementAsyncMain = function (state, enregistreEtatHistorique) { 163 var url = state.url; 164 var $main = $('#main'); 165 var $article = $('#main article'); 166 var $aside = $('#main aside section.arborescence:not(.titre-page-mobile)'); 167 168 // Affichage de l'indicateur de chargement 169 var $indicateurChargement = "#indicateur-chargement"; 170 $($indicateurChargement).remove(); 171 $('header').append($('<div id="indicateur-chargement"></div>')); 172 173 $($indicateurChargement).css({'width': '0%'}); 174 timeoutScroll = window.setTimeout(function(){ 175 if(parseInt($($indicateurChargement).css('width')) < '30'){ 176 $($indicateurChargement).css({'width': '30%', 'transition': 'width 2s, opacity 3s'}); 177 } 178 }, 200); 179 180 remplaceEtatNavigation(window.location.pathname); // Mettre la page courante comme premier élément de l'historique. 181 $($conteneurPageAsynchrone).load(url, function () { 182 183 if ($conteneurPageAsynchrone.find('#main').length) { 184 // Mise à jour de l'historique de navigation 185 if (enregistreEtatHistorique) { 186 metsAJourEtatNavigation(url); 187 } 188 189 var titrePage = $conteneurPageAsynchrone.find('> title').text(); 190 $('html > head > title').html(titrePage); 191 192 // Remplacement de l'article 193 $($article).html($conteneurPageAsynchrone.find('#main article').html()); 194 195 // Remplacement de la barre latérale 196 $($aside).html($conteneurPageAsynchrone.find('#main aside section.arborescence:not(.titre-page-mobile)').html()); 197 198 // Ajustement du lien de modification de page 199 $('#lien-modification').attr('href', $conteneurPageAsynchrone.find('#lien-modification').attr('href')); 200 201 // Ajustement des liens dans le menu de changement de langue 202 $('#menu-langue').html($conteneurPageAsynchrone.find('#menu-langue').html()); 203 204 // Retire la visibilité de l'arborescence lorsqu'en mobile 205 $(".arborescence").removeClass("visible") 206 207 ajusteAffichageMobile() 208 209 // Ajuste la hauteur des colonnes de produits 210 let blocs = '.colonne-produit'; 211 let selecteursAEgaliser = '.detail-langue';
212 egaliseHauteur(conteneur='#aperso', blocs, selecteursAEgaliser, '.description'); 213 egaliseHauteur(conteneur='#afam', blocs, selecteursAEgaliser, '.description'); 214 215 $("a[href^='#']").on("click", function(e) { 216 $(`${e.target.hash}`).get(0).scrollIntoView(); 217 }) 218 219 // Fin de l'affichage de l'indicateur de chargement 220 timeoutScroll = window.setTimeout(function(){ 221 $("#indicateur-chargement").css({'width': '100%', 'transition': 'width 500ms, opacity 500ms 200ms ease'}); 222 $($indicateurChargement).css({'opacity': 0}); 223 }, 200); 224 225 ajouteAncres(); 226 227 // Défilement (seulement lors du premier accès) 228 if (enregistreEtatHistorique) { 229 /** 230 * Défilement vers le titre de la page si celui-ci n'est pas visible 231 */ 232 var defilementIdeal = $($main).offset().top; 233 234 // Défilement vers une sous-section si une ancre interne est détectée à partir de l'URL 235 var objetURL = new URL('http://domaine.com'+url); 236 237 if(objetURL.hash){ 238 defilementIdeal = $(objetURL.hash).offset().top; 239 } 240 241 // var hauteurBarremenu = $(window).width() <= largeurMobile ? $("aside")[0].offsetHeight : 0; 242 $(window).scrollTop(defilementIdeal); 243 244 } else { 245 // Retablir le defilement tel qu'il etait dans la sauvegarde de l'etat. 246 $(window).scrollTop(state.scrollY); 247 } 248 249 if (url.endsWith('/antidote-12')) { 250 initAntidote12(); 251 } else if ((url.endsWith('/mise-a-niveau') || url.endsWith('upgrade')) && (typeof initMiseANiveauCadeau === "function") ) { 252 initMiseANiveauCadeau(); 253 } 254 255 $('#main article .menu-flottant').menuflottant(); 256 } 257 else { 258 window.location = url; 259 } 260 $conteneurPageAsynchrone.html(); 261 }); 262 }; 263 264 $("body.produits").each(function(){ 265 /** 266 * Gestion de l'historique de navitation 267 */ 268 window.addEventListener('popstate', function (e) { 269 if (e.state) { 270 chargementAsyncMain(e.state, false); 271 } 272 }); 273 }); 274} 275 276var donneHistoryState = function (url) { 277 return { 278 url: url, 279 scrollY: window.scrollY, 280 } 281} 282 283var remplaceEtatNavigation = function (url) { 284 // Désactivation du saut de page lors du chargement d'URL 285 if ('scrollRestoration' in window.history) { 286 window.history.scrollRestoration = 'manual'; 287 } 288 289 history.replaceState(donneHistoryState(url), null, url); 290}; 291 292/** 293 * Mise à jour de l'historique de navigation 294 */ 295var metsAJourEtatNavigation = function (url) { 296 // Désactivation du saut de page lors du chargement d'URL 297 if ('scrollRestoration' in window.history) { 298 window.history.scrollRestoration = 'manual'; 299 } 300 301 history.pushState(donneHistoryState(url), null, url); 302}; 303 304function initAntidote12() { 305 $blocPremierAchat = $("#_premier-achat"); 306 $blocLanguesPremierAchat = $("#langues-premier-achat"); 307 $blocModulesPremierAchat = $("#modules-premier-achat"); 308 $blocVotreCommange = $("#votre-commande"); 309 $detailCommande = $('#detail-commande'); 310 $boutonAchat = $('#bouton-achat'); 311 urlInitialBoutique = $boutonAchat.data('url-initial-boutique'); 312 313 314 afficheCommande = function () { 315 nomProduit = ''; 316 $blocPremierAchat.find('.selection h4').each(function (i) { 317 if (i > 0) { 318 nomProduit += ' + '; 319 } 320 nomProduit += $(this).text(); 321 322 }); 323 324 325 $detailCommande.find('div:eq(0)').html(nomProduit); 326 327 if ($blocModulesPremierAchat.find('.selection').length) { 328 $detailCommande.find('div:eq(1)').html($blocPremierAchat.data('prix-a10-et-module')); 329 } 330 else { 331 $detailCommande.find('div:eq(1)').html($blocPremierAchat.data('prix-a10')); 332 } 333 }; 334 335 /** 336 * Sélection / déselection des produits 337 */ 338 $blocLanguesPremierAchat.find('.produit-selectionnable').on('click', function () { 339 340 if (!$(this).hasClass('selection')) { 341 342 $blocPremierAchat.find('.selection').removeClass('selection'); 343 $blocPremierAchat.removeClass('modules-premier-achat-actif'); 344 345 $blocPremierAchat.addClass('modules-premier-achat-actif'); 346 347 $(this).addClass('selection'); 348 349 $('#modules-premier-achat .colonnes').removeClass('visible'); 350 351 if ($(this).hasClass('fr')) { 352 $('#premier-achat-module-anglais').addClass('visible'); 353 } 354 else { 355 $('#premier-achat-module-francais').addClass('visible'); 356 } 357 358 $boutonAchat.attr('href', urlInitialBoutique + $(this).data('url-boutique')); 359 360 $blocModulesPremierAchat.slideDown(200, function () {
361 $blocVotreCommange.slideDown(200, function () { 362 }); 363 }); 364 365 366 afficheCommande(); 367 ajusteTailleElementMasquables(); 368 } 369 else { 370 $blocVotreCommange.slideUp(200, function () { 371 $blocModulesPremierAchat.slideUp(200); 372 }); 373 374 $blocPremierAchat.removeClass('modules-premier-achat-actif'); 375 $blocPremierAchat.find('.selection').removeClass('selection'); 376 } 377 }); 378 379 /** 380 * Sélection / déselection des modules supplémentaires 381 */ 382 $blocModulesPremierAchat.find('.produit-selectionnable').on('click', function () { 383 if (!$(this).hasClass('selection')) { 384 $(this).addClass('selection'); 385 $boutonAchat.attr('href', urlInitialBoutique + $(this).data('url-boutique')); 386 } 387 else { 388 $boutonAchat.attr('href', urlInitialBoutique + $blocPremierAchat.find('.selection').data('url-boutique')); 389 $(this).removeClass('selection'); 390 } 391 392 afficheCommande(); 393 }); 394 395 396 ajusteTailleElementMasquables = function () { 397 // $blocLanguesPremierAchat.css('--max-h', $blocLanguesPremierAchat[0].scrollHeight); 398 // $blocModulesPremierAchat.css('--max-h', $blocModulesPremierAchat[0].scrollHeight); 399 // $blocVotreCommange.css('--max-h', $blocVotreCommange[0].scrollHeight); 400 } 401 402 $(window).on('resize', function () { 403 ajusteTailleElementMasquables(); 404 }).trigger('resize'); 405 406 $("#produits .savoir-plus").click(function () { 407 $(this).next(".description").toggle(); 408 }); 409}
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.