1/* 2âââââââ ââââââââ ââââââ âââââââ âââ âââ 3ââââââââââââââââââââââââââââââââââââ ââââ 4ââââââââââââââ âââââââââââ âââ âââââââ 5ââââââââââââââ âââââââââââ âââ âââââ 6âââ ââââââââââââââ âââââââââââ âââ 7âââ ââââââââââââââ ââââââââââ âââ 8 9*/ 10 11jQuery(document).ready(function() { 12 13 /* SCROLL TOP : Formulaire simple Elementor : lorsqu'un champ est invalide, remonter le formulaire en haut de page moins la valeur du header (environ 200px) */ 14 15 // si au clique du bouton champs requis pas rempli 16 jQuery('form.elementor-form button[type=submit]').click(function() { 17 if(jQuery('form.elementor-form input[required=required]').val()=='') { 18 // Remonter le formulaire en top-205px 19 jQuery( 'html,body' ).animate( { 20 scrollTop: ( jQuery( 'form.elementor-form' ).offset().top ) - 205 21 }, 1000 ); 22 23 // Ajouter un message d'erreur du champ non rempli 24 //jQuery('form.elementor-form').append("<p class='messErreurFormElementor'>Merci de remplir tous les champs</p>"); 25 26 // Enlever les messages automatiques des navigateurs pour champs non rempli dans le form 27 jQuery('form.elementor-form').attr('novalidate', 'novalidate'); 28 } 29 }); 30 31 32 /* SCROLL TOP : Formulaire WPForms : lorsqu'un champ est invalide, remonter le formulaire en haut de page moins la valeur du header (environ 200px) */ 33 34 // si au clique du bouton champs requis pas rempli 35 jQuery('form.wpforms-form button[type=submit]').click(function() { 36 if(jQuery('form.wpforms-form input.wpforms-field-required').val()=='') { 37 // Remonter le formulaire en top-205px 38 jQuery( 'html,body' ).animate( { 39 scrollTop: ( jQuery( 'form.wpforms-form' ).offset().top ) - 205 40 }, 1000 ); 41 } 42 }); 43 44 45 /* SEARCH AND FILTER : Page de recherche avancée : lorsque champ liste des catégories est vide, cacher le style */ 46 // Si la liste des catégories est vide (donc ses options n'existent pas) 47 if(jQuery('select#ofcategory').has('option').length == 0) { 48 // Cacher le conteneur li du champ liste des catégories 49 jQuery('select#ofcategory').parents('li').css("display", "none"); 50 } 51 52 /* SEARCH AND FILTER : Page de recherche avancée : insérer un placeholder dans le champ date car sous IE10 et FF54 le champ est vide */ 53 jQuery("input[type=date].postform").attr("placeholder", "JJ-MM-AAAA"); 54 55 /** SCROLL TOP BUTTON */ 56 var scrollTopBtn = jQuery('#scroll-top-btn'); 57 jQuery(window).scroll(function (event) { 58 var scrollTop = jQuery(window).scrollTop(); 59 if (scrollTop > 200) { 60 scrollTopBtn.fadeIn(); 61 } else { 62 scrollTopBtn.fadeOut(); 63 } 64 }); 65 scrollTopBtn.on('click', function(e) { 66 e.preventDefault(); 67 jQuery('html, body').animate({scrollTop:0}, '500'); 68 }); 69 70 71 /** 72 * Gérer l'affichage du bouton accessibilité 73 * Quand on arrive sur le site et qu'on est en mode contrast élevé et pas en font agrandie 74 * Il faut remplacer le svg de l'oeil en fonction 75 */ 76 if(jQuery('body').hasClass('accessibility-contrast') && jQuery('body').not('.accessibility-font')){ 77 let svgOeilNonBarreContrast = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000000" class="bi bi-eye" viewBox="0 0 16 16">\n' + 78 ' <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"></path>\n' + 79 ' <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"></path>\n' + 80 '</svg>'; 81 updateOeilAccessibiliteSVG(svgOeilNonBarreContrast); 82 } 83 84 /** 85 * Gérer l'affichage du bouton accessibilité 86 * Quand on arrive sur le site et qu'on est en mode font agrandie mais pas en contraste élevé 87 * Il faut remplacer le svg de l'oeil en fonction 88 */ 89 if(jQuery('body').hasClass('accessibility-font') && jQuery('body').not('.accessibility-contrast')){ 90 let svgOeilNonBarreFont = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000000" class="bi bi-eye" viewBox="0 0 16 16">\n' + 91 ' <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"></path>\n' + 92 ' <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"></path>\n' + 93 '</svg>'; 94 updateOeilAccessibiliteSVG(svgOeilNonBarreFont); 95 } 96 97 /** 98 * Gérer l'affichage du bouton accessibilité 99 * Quand on arrive sur le site et qu'on est en mode font agrandie ET en contraste élevé 100 * Il faut remplacer le svg de l'oeil en fonction 101 */ 102 if(jQuery('body').is('.accessibility-font, .accessibility-contrast')){ 103 let svgOeilNonBarreContrastFont = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000000" class="bi bi-eye" viewBox="0 0 16 16">\n' + 104 ' <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"></path>\n' + 105 ' <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"></path>\n' + 106 '</svg>'; 107 updateOeilAccessibiliteSVG(svgOeilNonBarreContrastFont); 108 } 109 110 // --- Correctif ancres: normaliser les href des ancres locales pour éviter les redirections vers l'accueil --- 111 try { 112 var pageUrl = window.location.origin + window.location.pathname; 113 // Transforme les liens de type #ancre en URL absolue de la page courante 114 jQuery('a[href^="#"]').each(function(){ 115 var hash = this.getAttribute('href'); 116 if (hash && hash.length > 1) { 117 this.setAttribute('href', pageUrl + hash); 118 } 119 }); 120 121 // Gestion du clic: si l'ancre vise la page courante, on évite la navigation et on scrolle 122 jQuery(document).on('click', 'a', function(e){ 123 var href = this.getAttribute('href') || ''; 124 var targetHash = null;
125 if (href.indexOf(pageUrl + '#') === 0) { 126 targetHash = href.substring(pageUrl.length); 127 } else if (href.charAt(0) === '#') { 128 targetHash = href; 129 } 130 if (targetHash) { 131 var target = document.querySelector(targetHash); 132 if (target) { 133 e.preventDefault(); 134 try { history.replaceState(null, '', targetHash); } catch(_) {} 135 target.scrollIntoView({ behavior: 'smooth', block: 'start' }); 136 } 137 } 138 }); 139 } catch (err) { 140 // noop 141 } 142 143 144}); 145 146/** 147 * Remplate le SVG en forme d'oeil du bouton accéssibilité en fonction des options accéssibilité choisies : contrast, font agrandie, les deux 148 * @param svgTag 149 */ 150function updateOeilAccessibiliteSVG(svgTag){ 151 let btnOeil = jQuery('#eye-contrast'); 152 btnOeil.find('svg').parent().html(svgTag); 153}
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.