{"id":12,"date":"2023-07-20T11:25:10","date_gmt":"2023-07-20T09:25:10","guid":{"rendered":"https:\/\/preprod.nannienergy.com\/?page_id=12"},"modified":"2025-03-28T11:15:06","modified_gmt":"2025-03-28T10:15:06","slug":"reseau","status":"publish","type":"page","link":"https:\/\/nannienergy.com\/fr\/reseau\/","title":{"rendered":"R\u00e9seau"},"content":{"rendered":"<div class=\"wpb-content-wrapper\" id=\"wpb-content-root\"><p>[vc_row el_class=\u00a0\u00bbreseau_content\u00a0\u00bb][vc_column][vc_column_text el_class=\u00a0\u00bbbreadcrumb\u00a0\u00bb]<span><span><a href=\"https:\/\/nannienergy.com\/fr\/\"><span class=\"home\">Accueil<\/span><\/a><\/span><\/span>[\/vc_column_text][vc_column_text css=\u00a0\u00bb\u00a0\u00bb el_class=\u00a0\u00bbasl_content\u00a0\u00bb]<style type=\"text\/css\">\nbody #asl-storelocator.asl-cont.asl-template-0 {--sl-primary: #F3F3F3;}.asl-p-cont .asl-print-btn,.asl-cont .asl-print-btn {display: none !important;}#asl-storelocator.asl-cont .sl-main-cont .asl-panel.pol-lg-12 {\n    order: 0;\n}\n\n#asl-storelocator.asl-cont .sl-main-cont .asl-panel.pol-lg-12 .asl-panel-inner {\n    position: relative;\n    height: 450px;\n}\n\n.asl-cont .onoffswitch .onoffswitch-label .onoffswitch-switch:before {\n    content: \"OUVRIR\" !important;\n}\n\n.asl-cont .onoffswitch .onoffswitch-label .onoffswitch-switch:after {\n    content: \"TOUS\" !important;\n}\n\n@media (max-width: 767px) {\n    #asl-storelocator.asl-cont .asl-panel {\n        order: 0;\n    }\n}\n\n.asl-cont.sl-search-only .Filter_section+.sl-row {\n    display: none;\n}\n\n.asl-cont .sl-hide-branches,\n.asl-cont .sl-hide-branches:hover {\n    color: #FFF !important;\n    text-decoration: none !important;\n    cursor: pointer;\n}\n<\/style>\n<div id=\"asl-storelocator\"\n    class=\"storelocator-main asl-cont asl-template-0 asl-layout-0 asl-bg-0 full-width sl-category-tabs full-height asl-text-1\">\n    <div class=\"asl-wrapper\">\n        <div class=\"sl-container-fluid\">\n                        <div class=\"sl-row\">\n                <div class=\"pol-12\">\n                    <div class=\"sl-main-cont\">\n                        <div class=\"sl-row no-gutters sl-main-row\">\n                            <div id=\"asl-panel\" class=\"asl-panel pol-md-5 pol-lg-4 asl_locator-panel\">\n                                                                <h1>Trouver un revendeur<\/h1>\n                                <div class=\"asl-description\">\n                                  <p>Nanni commercialise ses produits \u00e0 travers son r\u00e9seau de vente et de service r\u00e9partis dans 90 pays \u00e0 travers le monde. Il compte sur un solide maillage de pr\u00e8s de 800 partenaires qualifi\u00e9s. Les agents agr\u00e9\u00e9s Nanni sont l\u00e0 pour vous apporter assistance tout au long de la vie de votre produit.<\/p>\n                                <\/div>\n                                                                    <div class=\"sl-row Filter_section\">\n                                                                                <div class=\"pol-lg-8 pol-md-7 pol-sm-12\">\n                                            <div class=\"sl-row\">\n                                                <div class=\"pol-sm-12 asl-advance-filters hide\">\n                                                    <div class=\"sl-row\">\n                                                                                                                                                                                                                                                                                                <div\n                                                                class=\"pol-lg-4 pol-md-6 pol-sm-12  asl-tabs-ddl pol-12 pol-lg-12 pol-md-12 pol-sm-12 asl-ddl-filters asl-ddl-filter-brand\">\n                                                                <div class=\"asl-filter-cntrl\">\n                                                                    <label class=\"asl-cntrl-lbl\"\n                                                                        for=\"asl-brand\">S\u00e9lectionner une marque<\/label>\n                                                                    <div class=\"sl-dropdown-cont\" id=\"brand_filter\"><\/div>\n                                                                <\/div>\n                                                            <\/div>\n                                                                                                                        <div\n                                                                class=\"pol-lg-4 pol-md-6 pol-sm-12  asl-tabs-ddl pol-12 pol-lg-12 pol-md-12 pol-sm-12 asl-ddl-filters asl-ddl-filter-special\">\n                                                                <div class=\"asl-filter-cntrl\">\n                                                                    <label class=\"asl-cntrl-lbl\"\n                                                                        for=\"asl-special\">Statut<\/label>\n                                                                    <div class=\"sl-dropdown-cont\" id=\"special_filter\"><\/div>\n                                                                <\/div>\n                                                            <\/div>\n                                                                                                                                                                                                                                        <div class=\"pol-lg-4 pol-md-6 pol-sm-12  asl-tabs-ddl pol-12 pol-lg-12 pol-md-12 pol-sm-12 asl-ddl-filters asl-ddl-filter-cats\">\n                                                                <div class=\"asl-filter-cntrl\">\n                                                                    <label class=\"asl-cntrl-lbl\"\n                                                                        for=\"asl-categories\">Applications<\/label>\n                                                                    <div class=\"sl-dropdown-cont\" id=\"categories_filter\"><\/div>\n                                                                <\/div>\n                                                            <\/div>\n                                                                                                                    \n                                                        <div class=\"pol-lg-4 pol-md-6 pol-sm-12 asl-tabs-ddl pol-12 pol-lg-12 pol-md-12 pol-sm-12 asl-ddl-filters asl-ddl-filter-product\">\n                                                            <div class=\"asl-filter-cntrl\">\n                                                                <label class=\"asl-cntrl-lbl\" for=\"asl-product-type\">Produits<\/label>\n                                                                <div class=\"sl-dropdown-cont\" id=\"product_type_filter\">\n                                                                    <select id=\"asl-product-type\" multiple=\"multiple\">\n                                                                        <option value=\"engine\">Engine<\/option>\n                                                                        <option value=\"generator\">Generator<\/option>\n                                                                    <\/select>\n                                                                <\/div>\n                                                            <\/div>\n                                                        <\/div>\n\n                                                        <div class=\"pol-lg-4 pol-md-6 pol-sm-12 range_filter asl-ddl-filters hide\">\n                                                            <div class=\"rangeFilter asl-filter-cntrl\">\n                                                                <label for=\"asl-radius-slide\"\n                                                                    class=\"asl-cntrl-lbl\">Port\u00e9e de distance<\/label>\n                                                                <input id=\"asl-radius-slide\" type=\"text\" class=\"span2\" \/>\n                                                                <span class=\"rad-unit\">Rayon: <span\n                                                                        id=\"asl-radius-input\"><\/span> <span\n                                                                        id=\"asl-dist-unit\">Km<\/span><\/span>\n                                                            <\/div>\n                                                        <\/div>\n                                                        <div class=\"pol-lg-2 pol-md-3 pol-sm-12 Status_filter\">\n                                                            <div class=\"asl-filter-cntrl\">\n                                                                <label class=\"asl-cntrl-lbl\">Statut<\/label>\n                                                                <div class=\"onoffswitch\">\n                                                                    <input type=\"checkbox\" name=\"onoffswitch\" class=\"onoffswitch-checkbox\"\n                                                                        id=\"asl-open-close\" checked>\n                                                                    <label aria-label=\"Magasins ouverts\"\n                                                                        title=\"Magasins ouverts\"\n                                                                        class=\"onoffswitch-label\" for=\"asl-open-close\">\n                                                                        <span class=\"onoffswitch-inner\"><\/span>\n                                                                        <span class=\"onoffswitch-switch\"><\/span>\n                                                                    <\/label>\n                                                                <\/div>\n                                                            <\/div>\n                                                        <\/div>\n                                                    <\/div>\n                                                <\/div>\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                                                <div class=\"asl-overlay\" id=\"map-loading\">\n                                    <div class=\"white\"><\/div>\n                                    <div class=\"sl-loading\">\n                                        <i class=\"animate-sl-spin icon-spin3\"><\/i>\n                                        Chargement...                                    <\/div>\n                                <\/div>\n                                                                <!-- list -->\n                                <div class=\"asl-panel-inner\">\n                                    <div class=\"top-title Num_of_store\">\n                                                                                <span><span class=\"sl-head-title\"><span class=\"count-result\">0<\/span> r\u00e9sultats<\/span>\n                                                                            <\/div>\n                                    <div class=\"sl-main-cont-box\">\n                                        <div id=\"asl-list\" class=\"sl-list-wrapper\">\n                                            <ul id=\"p-statelist\" class=\"sl-list\">\n                                            <\/ul>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n\n                                <div class=\"directions-cont hide\">\n                                    <div class=\"agile-modal-header\">\n                                        <button type=\"button\" class=\"close\"><span aria-hidden=\"true\">\u00d7<\/span><\/button>\n                                        <h4>Direction du magasin<\/h4>\n                                    <\/div>\n                                    <div class=\"rendered-directions\" id=\"asl-rendered-dir\" style=\"direction: ltr;\">\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                            <div class=\"pol-md-7 pol-lg-8 asl-map\">\n                                                                <div class=\"pol-lg-4 pol-md-5 pol-sm-12 search_filter\">\n                                                                        <div class=\"sl-search-group d-flex\">\n                                        <input type=\"text\" value=\"\" data-submit=\"disable\" id=\"auto-complete-search\" placeholder=\"Entrez un emplacement\"  class=\"asl-search-address form-control isp_ignore\">\n                                        <button aria-label=\"Emplacement de recherche\" title=\"Emplacement de recherche\" type=\"button\" class=\"span-geo\"><i class=\"asl-search-event\"><\/i><\/button>\n                                    <\/div>\n                                <\/div>\n                                                                <div class=\"map-image\">\n                                    <div id=\"asl-map-canv\" class=\"asl-map-canv\"><\/div>\n                                    \n<div id=\"agile-modal-direction\" class=\"agile-modal fade\">\n    <div class=\"agile-modal-backdrop-in\"><\/div>\n    <div class=\"agile-modal-dialog in\">\n        <div class=\"agile-modal-content\">\n            <div class=\"sl-form-group d-flex justify-content-between\">\n                <span>OBTENIR UN ITIN\u00c9RAIRE<\/span>\n                <button type=\"button\" class=\"close-directions sl-close\" data-dismiss=\"agile-modal\"\n                    aria-label=\"Fermer\"><i aria-hidden=\"true\" class=\"icon-cancel-1\"><\/i><\/button>\n            <\/div>\n            <div class=\"sl-form-group\">\n                <label for=\"frm-lbl\">Depuis:<\/label>\n                <input type=\"text\" class=\"form-control frm-place\" id=\"frm-lbl\"\n                    placeholder=\"Entrez un emplacement\">\n            <\/div>\n            <div class=\"sl-form-group\">\n                <label for=\"to-lbl\">\u00c0:<\/label>\n                <input readonly=\"true\" type=\"text\" class=\"directions-to form-control\" id=\"to-lbl\"\n                    placeholder=\"Adresse de destination pr\u00e9remplie\">\n            <\/div>\n            <div class=\"sl-form-group mb-0\">\n                <label for=\"rbtn-km\" class=\"checkbox-inline\">\n                    <input type=\"radio\" name=\"dist-type\" id=\"rbtn-km\" value=\"0\"> Km                <\/label>\n                <label for=\"rbtn-mile\" class=\"checkbox-inline\">\n                    <input type=\"radio\" name=\"dist-type\" checked id=\"rbtn-mile\" value=\"1\">\n                    Milles                <\/label>\n            <\/div>\n            <div class=\"sl-form-group mb-0\">\n                <button type=\"submit\" aria-label=\"OBTENIR UN ITIN\u00c9RAIRE\"\n                    class=\"btn btn-default btn-submit\">OBTENIR UN ITIN\u00c9RAIRE<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div id=\"asl-geolocation-agile-modal\" class=\"agile-modal fade\">\n    <div class=\"agile-modal-backdrop-in\"><\/div>\n    <div class=\"agile-modal-dialog in\">\n        <div class=\"agile-modal-content\">\n                            <div class=\"sl-form-group sl-icon-group\">\n                <button type=\"button\" class=\"close-directions sl-close\" data-dismiss=\"agile-modal\"\n                      aria-label=\"Fermer\"><i aria-hidden=\"true\" class=\"icon-cancel-1\"><\/i><\/button>\n                <div class=\"sl-loct-icon\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\"\n                        stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <path\n                            d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\">\n                        <\/path>\n                        <circle cx=\"12\" cy=\"10\" r=\"3\"><\/circle>\n                    <\/svg>\n                <\/div>\n                <span>Trouver des prestataires de services \u00e0 proximit\u00e9<\/span>\n                <p>Utilisez ma position pour trouver le fournisseur de services le plus proche de chez moi<\/p>\n            <\/div>\n            <div class=\"sl-form-group text-center mb-0\">\n                <button type=\"button\" id=\"asl-btn-geolocation\"\n                    class=\"btn btn-block btn-default\">EMPLACEMENT D&#039;UTILISATION<\/button>\n            <\/div>\n                    <\/div>\n    <\/div>\n<\/div>\n\n<div id=\"asl-desc-agile-modal\" class=\"agile-modal fade\">\n    <div class=\"agile-modal-backdrop-in\"><\/div>\n    <div class=\"agile-modal-dialog in\">\n        <div class=\"agile-modal-content\">\n            <div class=\"sl-row\">\n                <div class=\"pol-md-12\">\n                    <div class=\"sl-form-group d-flex justify-content-between\">\n                        <span class=\"sl-title\">Voir la description<\/span>\n                        <button type=\"button\" class=\"close-directions sl-close\" data-dismiss=\"agile-modal\"\n                            aria-label=\"Close\"><i aria-hidden=\"true\" class=\"icon-cancel-1\"><\/i><\/button>\n                    <\/div>\n                    <div class=\"sl-desc\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n            <\/div>\n<\/div>\n<!-- This plugin is developed by \"Agile Store Locator for WordPress\" https:\/\/agilestorelocator.com -->\n<script type=\"text\/javascript\">\nfunction asl_event_hook(_event) {\n   \n    if(_event.type == 'init') {\n        jQuery('#asl-storelocator.asl-cont.sl-category-tabs .asl-wrapper .Filter_section .asl-advance-filters .asl-tabs-ddl.asl-ddl-filter-brand ul.adropdown-menu.multiselect-container li input[value=\"1\"]').parents('li').find('a input').trigger( \"click\" );\n\n        \/\/  You can replace my-custom-button-class with your own class for the button\n        jQuery('.my-custom-button-class').bind('click', function(e) {\n            \/\/  initiate geolocation\n            asl_view.geolocate_();\n        });\n    }\n    \/\/ ADD SCRIPT DELPHINE\n    \/**\n     * ASL - Filtre Brand en s\u00e9lection unique (comportement \"radio\")\n     * ------------------------------------------------------------\n     * Contexte : le <select multiple> #asl-brand est pilot\u00e9 par bootstrap-multiselect.\n     * ASL n'\u00e9coute pas un simple \u00e9v\u00e9nement 'change' du <select>, mais le callback\n     * interne 'onChange' du plugin multiselect. Il faut donc passer par l'API\n     * officielle du plugin (m\u00e9thodes 'select' \/ 'deselect') pour qu'ASL soit\n     * correctement notifi\u00e9 et relance sa requ\u00eate AJAX avec la bonne valeur.\n     *\n     * Le multi-select natif du plugin autorise une s\u00e9lection multiple par d\u00e9faut ;\n     * ce script intercepte le clic AVANT que le plugin ne traite lui-m\u00eame le\n     * double-select, pour forcer une seule marque active \u00e0 la fois.\n     *\/\n\n    var $brandSelect = jQuery('#asl-brand');\n    var brandContainer = document.getElementById('brand_filter');\n    var $specialSelect = jQuery('#asl-special');\n    var $categoriesSelect = jQuery('#asl-categories');\n    var $productSelect = jQuery('#asl-product-type');\n\n    if (!brandContainer || !$brandSelect.length) return;\n\n    \/\/ Mapping marque -> valeurs de sp\u00e9cialit\u00e9 autoris\u00e9es\n    var brandSpecialMap = {\n        '1': ['1', '2', '3'], \/\/ Nanni => Official Distributor, Authorized Dealer, Service Partner\n        '2': ['4', '5']       \/\/ MAN => MAN Center, MAN Service\n    };\n\n    \/\/ Marque(s) pour lesquelles les filtres Cat\u00e9gories et Produit doivent \u00eatre masqu\u00e9s\n    var brandsHidingCatsAndProduct = ['2']; \/\/ MAN\n\n    \/\/ Valeurs de sp\u00e9cialit\u00e9 qui doivent afficher le filtre Cat\u00e9gories\n    \/\/ DESACTIVE (Delphine) - le toggle show\/hide de .asl-ddl-filter-cats bas\u00e9 sur la sp\u00e9cialit\u00e9 n'est plus utilis\u00e9\n    \/\/ var specialCatsTriggerValues = ['1', '2', '3'];\n\n    \/**\n     * Met \u00e0 jour la classe \"visible\" sur les <li> du filtre Sp\u00e9cialit\u00e9\n     * en fonction de la marque actuellement s\u00e9lectionn\u00e9e.\n     * @param {string|null} brandValue - \"1\", \"2\", ou null si aucune marque s\u00e9lectionn\u00e9e\n     *\/\n    function updateSpecialVisibility(brandValue) {\n        var allowedValues = brandSpecialMap[brandValue] || null;\n\n        $specialSelect.next('.btn-group')\n            .find('.multiselect-container > li')\n            .each(function () {\n                var $li = jQuery(this);\n                var value = $li.find('input[type=\"checkbox\"]').val();\n\n                \/\/ Si aucune marque s\u00e9lectionn\u00e9e : on affiche tout (comportement par d\u00e9faut)\n                \/\/ Sinon : visible uniquement si la valeur fait partie du mapping\n                var shouldBeVisible = !allowedValues || allowedValues.indexOf(value) !== -1;\n\n                $li.toggleClass('visible', shouldBeVisible);\n            });\n    }\n\n    \/**\n     * Affiche ou masque les blocs filtres Cat\u00e9gories (.asl-ddl-filter-cats)\n     * et Produit (.asl-ddl-filter-product) en fonction de la marque s\u00e9lectionn\u00e9e.\n     * Masqu\u00e9s pour MAN (value \"2\"), affich\u00e9s sinon (Nanni ou aucune marque).\n     * @param {string|null} brandValue - \"1\", \"2\", ou null si aucune marque s\u00e9lectionn\u00e9e\n     *\/\n    function updateCatsAndProductVisibilityByBrand(brandValue) {\n        var shouldHide = brandValue && brandsHidingCatsAndProduct.indexOf(brandValue) !== -1;\n\n        jQuery('.asl-ddl-filter-cats').toggle(!shouldHide);\n        jQuery('.asl-ddl-filter-product').toggle(!shouldHide);\n    }\n\n    \/**\n     * Affiche ou masque le bloc filtre Cat\u00e9gories (.asl-ddl-filter-cats)\n     * selon que la sp\u00e9cialit\u00e9 s\u00e9lectionn\u00e9e contient 1, 2 ou 3.\n     *\n     * DESACTIVE (Delphine) - remplac\u00e9 par updateCatsAndProductVisibilityByBrand()\n     * qui se base sur la marque s\u00e9lectionn\u00e9e plut\u00f4t que sur la sp\u00e9cialit\u00e9.\n     * Conserv\u00e9 au cas o\u00f9 le client change d'avis.\n     *\/\n    \/\/ function updateCatsVisibility() {\n    \/\/     var specialValues = $specialSelect.val() || [];\n    \/\/\n    \/\/     var shouldShow = specialValues.some(function (v) {\n    \/\/         return specialCatsTriggerValues.indexOf(v) !== -1;\n    \/\/     });\n    \/\/\n    \/\/     jQuery('.asl-ddl-filter-cats').toggle(shouldShow);\n    \/\/ }\n\n    \/\/ \/**\n    \/\/  * Affiche ou masque le bloc filtre Sous-cat\u00e9gories\n    \/\/  * d\u00e8s qu'au moins une cat\u00e9gorie est coch\u00e9e.\n    \/\/  *\/\n    \/\/ function updateSubCatsVisibility() {\n    \/\/     var categoriesValues = $categoriesSelect.val() || [];\n    \/\/     jQuery('.asl-ddl-filter-sub-cats').toggle(categoriesValues.length > 0);\n    \/\/ }\n\n    \/**\n     * Affiche ou masque le bloc filtre Produit (Engine\/Generator)\n     * d\u00e8s qu'au moins une cat\u00e9gorie est coch\u00e9e.\n     *\n     * DESACTIVE (Delphine) - remplac\u00e9 par updateCatsAndProductVisibilityByBrand()\n     * qui se base sur la marque s\u00e9lectionn\u00e9e plut\u00f4t que sur la cat\u00e9gorie.\n     * Conserv\u00e9 au cas o\u00f9 le client change d'avis.\n     *\/\n    \/\/ function updateProductVisibility() {\n    \/\/     var categoriesValues = $categoriesSelect.val() || [];\n    \/\/     jQuery('.asl-ddl-filter-product').toggle(categoriesValues.length > 0);\n    \/\/ }\n\n    \/**\n     * D\u00e9s\u00e9lectionne toutes les options d'un multiselect donn\u00e9,\n     * en ne d\u00e9clenchant l'onChange (et donc la requ\u00eate AJAX vers ASL)\n     * qu'une seule fois, sur la derni\u00e8re option d\u00e9s\u00e9lectionn\u00e9e.\n     * Plus fiable que deselectAll() dans cette version du plugin.\n     *\/\n    function resetMultiselect($select) {\n        var selectedValues = $select.val() || [];\n        if (selectedValues.length === 0) return; \/\/ rien \u00e0 faire, d\u00e9j\u00e0 vide\n        selectedValues.forEach(function (v, index) {\n            var isLast = index === selectedValues.length - 1;\n            $select.multiselect('deselect', v, isLast);\n        });\n\n        $select.multiselect('refresh'); \/\/ resynchronise l'affichage des checkboxes + libell\u00e9 du bouton\n    }\n\n    function resetSpecialAndCategories() {\n        resetMultiselect($specialSelect);\n        resetMultiselect($categoriesSelect);\n        if ($productSelect.length) {\n            resetMultiselect($productSelect);\n        }\n\n        \/\/ DESACTIVE (Delphine) - plus besoin de recalculer la visibilit\u00e9 en fonction de sp\u00e9cialit\u00e9\/cat\u00e9gories\n        \/\/ updateCatsVisibility();\n        \/\/ updateSubCatsVisibility();\n        \/\/ updateProductVisibility();\n    }\n\n    brandContainer.addEventListener('click', function (e) {\n\n        \/\/ On ne traite que les clics sur le label d'une checkbox de marque\n        var label = e.target.closest('label.checkbox');\n        if (!label) return;\n\n        var checkbox = label.querySelector('input[type=\"checkbox\"]');\n        if (!checkbox) return;\n\n        \/\/ --- \u00c9tape 1 : on bloque le comportement natif du plugin ---\n        \/\/ preventDefault : emp\u00eache le comportement par d\u00e9faut du clic\n        \/\/ stopImmediatePropagation : emp\u00eache le handler interne de bootstrap-multiselect\n        \/\/ de s'ex\u00e9cuter pour CET \u00e9v\u00e9nement pr\u00e9cis (capture phase = on passe avant lui)\n        e.preventDefault();\n        e.stopImmediatePropagation();\n\n        var clickedValue = checkbox.value;   \/\/ valeur de l'option cliqu\u00e9e (ex: \"1\" ou \"2\")\n        var wasChecked = checkbox.checked;   \/\/ \u00e9tat AVANT notre intervention\n\n        \/\/ --- \u00c9tape 2 : on r\u00e9cup\u00e8re toutes les valeurs possibles du filtre ---\n        var allValues = $brandSelect.find('option').map(function () {\n            return jQuery(this).val();\n        }).get();\n\n        \/\/ --- \u00c9tape 3 : on d\u00e9s\u00e9lectionne toutes les autres marques ---\n        \/\/ Le 2\u00e8me param\u00e8tre 'false' = ne d\u00e9clenche PAS l'\u00e9v\u00e9nement onChange \u00e0 chaque \u00e9tape\n        \/\/ (on ne veut qu'UNE seule requ\u00eate AJAX au final, pas une par d\u00e9s\u00e9lection)\n        allValues.forEach(function (v) {\n            if (v !== clickedValue) {\n                $brandSelect.multiselect('deselect', v, false);\n            }\n        });\n\n        var newBrandValue = null;\n\n        \/\/ --- \u00c9tape 4 : on applique l'\u00e9tat final pour la marque cliqu\u00e9e ---\n        \/\/ Ici on d\u00e9clenche bien l'\u00e9v\u00e9nement (3\u00e8me param\u00e8tre 'true'),\n        \/\/ c'est CE dernier appel qui provoque la requ\u00eate AJAX vers ASL\n        if (wasChecked) {\n            \/\/ La case \u00e9tait d\u00e9j\u00e0 coch\u00e9e \u2192 un clic dessus la d\u00e9coche (aucune marque s\u00e9lectionn\u00e9e)\n            $brandSelect.multiselect('deselect', clickedValue, true);\n            updateSpecialVisibility(null); \/\/ plus de marque s\u00e9lectionn\u00e9e => tout afficher\n            newBrandValue = null;\n        } else {\n            \/\/ La case \u00e9tait d\u00e9coch\u00e9e \u2192 on la s\u00e9lectionne, et elle devient la seule active\n            $brandSelect.multiselect('select', clickedValue, true);\n            updateSpecialVisibility(clickedValue); \/\/ filtre en fonction de la marque cliqu\u00e9e\n            newBrandValue = clickedValue;\n        }\n\n        \/\/ Affiche\/masque Cat\u00e9gories et Produit selon la marque active\n        updateCatsAndProductVisibilityByBrand(newBrandValue);\n\n        \/\/ Reset syst\u00e9matique de Sp\u00e9cialit\u00e9\/Cat\u00e9gories \u00e0 chaque changement de marque\n        resetSpecialAndCategories();\n\n    }, true); \/\/ true = \u00e9coute en phase de CAPTURE, essentiel pour passer avant le plugin\n    \n    \/\/ Applique le filtrage d\u00e8s le chargement de la page,\n    \/\/ au cas o\u00f9 une marque serait d\u00e9j\u00e0 s\u00e9lectionn\u00e9e par d\u00e9faut (via URL, cookie, etc.)\n\n    \/\/ --- Gestion du filtre Sp\u00e9cialit\u00e9 ---\n    \/\/ DESACTIVE (Delphine) - ne servait qu'\u00e0 updateCatsVisibility()\n    \/\/ $specialSelect.on('change', updateCatsVisibility);\n\n    \/\/ --- Gestion du filtre Cat\u00e9gories : pilote Sous-cat\u00e9gories ET Produit ---\n    \/\/ DESACTIVE (Delphine) - ne servait qu'\u00e0 updateProductVisibility() (et updateSubCatsVisibility(), d\u00e9j\u00e0 comment\u00e9)\n    \/\/ $categoriesSelect.on('change', function () {\n    \/\/     \/\/ updateSubCatsVisibility();\n    \/\/     updateProductVisibility();\n    \/\/ });\n\n    \/\/ --- \u00c9tats initiaux au chargement de la page ---\n    var initialBrandValue = ($brandSelect.val() || [])[0] || null;\n    updateSpecialVisibility(initialBrandValue);\n    updateCatsAndProductVisibilityByBrand(initialBrandValue);\n    \/\/ DESACTIVE (Delphine)\n    \/\/ updateCatsVisibility();\n    \/\/ updateSubCatsVisibility();\n    \/\/ updateProductVisibility();\n\n\n    \/\/ --- Filtre Produit (Engine\/Generator) via hook custom ---\n    if ($productSelect.length) {\n        $productSelect.multiselect({\n            nonSelectedText: 'All products',\n            numberDisplayed: 1,\n            includeSelectAllOption: false,\n            maxHeight: 250,\n            onChange: function () {\n                if (window.asl_view) {\n                    window.asl_view.refreshView();\n                }\n            }\n        });\n\n        \/\/ Guard : on ne wrap le hook qu'une seule fois, m\u00eame si\n        \/\/ asl_event_hook() est rappel\u00e9e \u00e0 chaque \u00e9v\u00e9nement ASL.\n        if (!window._asl_product_hook_installed) {\n            window._asl_product_hook_installed = true;\n\n            var previousHook = window.asl_event_hook;\n\n            window.asl_event_hook = function (e) {\n                if (e.type === 'store_filter') {\n                    var selected = $productSelect.val() || [];\n\n                    if (selected.length > 0) {\n                        var store = e.data;\n                        var matches = selected.some(function (v) {\n                            return store[v] == '1';\n                        });\n                        if (!matches) return false;\n                    }\n                }\n\n                if (typeof previousHook === 'function') {\n                    return previousHook.call(this, e);\n                }\n            };\n        }\n    }\n\n    \/\/ copier\n    document.addEventListener('click', function (e) {\n        var btn = e.target.closest('.asl-copy-btn');\n        if (!btn) return;\n\n        e.preventDefault();\n        e.stopPropagation();\n\n        var $btn = jQuery(btn);\n        var $wrap = $btn.closest('.asl-copy-wrap');\n        var value = $btn.data('copy-value');\n        if (!value) return;\n\n        navigator.clipboard.writeText(String(value)).then(function () {\n            showCopyTooltip($wrap);\n        }).catch(function (err) {\n            console.error('Copie impossible :', err);\n        });\n\n    }, true); \/\/ true = phase de capture, essentiel pour passer avant l'InfoBox\n\n    function showCopyTooltip($wrap) {\n        $wrap.find('.asl-copy-tooltip').remove();\n\n        var $tooltip = jQuery('<span class=\"asl-copy-tooltip\">Copi\u00e9 !<\/span>');\n        $wrap.append($tooltip);\n\n        requestAnimationFrame(function () {\n            $tooltip.addClass('asl-copy-tooltip-visible');\n        });\n\n        setTimeout(function () {\n            $tooltip.removeClass('asl-copy-tooltip-visible');\n            setTimeout(function () {\n                $tooltip.remove();\n            }, 200);\n        }, 1200);\n    }\n}\n<\/script>[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"[vc_row el_class=\u00a0\u00bbreseau_content\u00a0\u00bb][vc_column][vc_column_text el_class=\u00a0\u00bbbreadcrumb\u00a0\u00bb][\/vc_column_text][vc_column_text css=\u00a0\u00bb\u00a0\u00bb el_class=\u00a0\u00bbasl_content\u00a0\u00bb][\/vc_column_text][\/vc_column][\/vc_row]","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>R\u00e9seau - Nanni Industries<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nannienergy.com\/fr\/reseau\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u00e9seau - Nanni Industries\" \/>\n<meta property=\"og:description\" content=\"[vc_row el_class=\u00a0\u00bbreseau_content\u00a0\u00bb][vc_column][vc_column_text el_class=\u00a0\u00bbbreadcrumb\u00a0\u00bb][\/vc_column_text][vc_column_text css=\u00a0\u00bb\u00a0\u00bb el_class=\u00a0\u00bbasl_content\u00a0\u00bb][\/vc_column_text][\/vc_column][\/vc_row]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nannienergy.com\/fr\/reseau\/\" \/>\n<meta property=\"og:site_name\" content=\"Nanni Industries\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/NanniEnergyInBlue\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-28T10:15:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/reseau\\\/\",\"url\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/reseau\\\/\",\"name\":\"R\u00e9seau - Nanni Industries\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#website\"},\"datePublished\":\"2023-07-20T09:25:10+00:00\",\"dateModified\":\"2025-03-28T10:15:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/reseau\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nannienergy.com\\\/fr\\\/reseau\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/reseau\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R\u00e9seau\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/\",\"name\":\"Nanni Industries\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#organization\",\"name\":\"Nanni Industries\",\"url\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nannienergy.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/2025_Nanni_Bleu_RVB.jpg\",\"contentUrl\":\"https:\\\/\\\/nannienergy.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/2025_Nanni_Bleu_RVB.jpg\",\"width\":568,\"height\":157,\"caption\":\"Nanni Industries\"},\"image\":{\"@id\":\"https:\\\/\\\/nannienergy.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/NanniEnergyInBlue\",\"https:\\\/\\\/www.instagram.com\\\/nanni_energy\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"R\u00e9seau - Nanni Industries","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nannienergy.com\/fr\/reseau\/","og_locale":"fr_FR","og_type":"article","og_title":"R\u00e9seau - Nanni Industries","og_description":"[vc_row el_class=\u00a0\u00bbreseau_content\u00a0\u00bb][vc_column][vc_column_text el_class=\u00a0\u00bbbreadcrumb\u00a0\u00bb][\/vc_column_text][vc_column_text css=\u00a0\u00bb\u00a0\u00bb el_class=\u00a0\u00bbasl_content\u00a0\u00bb][\/vc_column_text][\/vc_column][\/vc_row]","og_url":"https:\/\/nannienergy.com\/fr\/reseau\/","og_site_name":"Nanni Industries","article_publisher":"https:\/\/www.facebook.com\/NanniEnergyInBlue","article_modified_time":"2025-03-28T10:15:06+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nannienergy.com\/fr\/reseau\/","url":"https:\/\/nannienergy.com\/fr\/reseau\/","name":"R\u00e9seau - Nanni Industries","isPartOf":{"@id":"https:\/\/nannienergy.com\/fr\/#website"},"datePublished":"2023-07-20T09:25:10+00:00","dateModified":"2025-03-28T10:15:06+00:00","breadcrumb":{"@id":"https:\/\/nannienergy.com\/fr\/reseau\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nannienergy.com\/fr\/reseau\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nannienergy.com\/fr\/reseau\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/nannienergy.com\/fr\/"},{"@type":"ListItem","position":2,"name":"R\u00e9seau"}]},{"@type":"WebSite","@id":"https:\/\/nannienergy.com\/fr\/#website","url":"https:\/\/nannienergy.com\/fr\/","name":"Nanni Industries","description":"","publisher":{"@id":"https:\/\/nannienergy.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nannienergy.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/nannienergy.com\/fr\/#organization","name":"Nanni Industries","url":"https:\/\/nannienergy.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/nannienergy.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/nannienergy.com\/wp-content\/uploads\/2025\/03\/2025_Nanni_Bleu_RVB.jpg","contentUrl":"https:\/\/nannienergy.com\/wp-content\/uploads\/2025\/03\/2025_Nanni_Bleu_RVB.jpg","width":568,"height":157,"caption":"Nanni Industries"},"image":{"@id":"https:\/\/nannienergy.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/NanniEnergyInBlue","https:\/\/www.instagram.com\/nanni_energy"]}]}},"_links":{"self":[{"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":0,"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"wp:attachment":[{"href":"https:\/\/nannienergy.com\/fr\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}