PageSourceSearch

https://le-grand-comptoir.fr/fw/js/fw_popupManager.js

js le-grand-comptoir.fr collected 2026-09-24 14:02:37 UTC 4,908 bytes, 1 lines download raw bytes

1const boundShowButtons=new WeakSet,boundCloseButtons=new WeakSet;export class PopupManager{constructor(mainUI){console.logStart(),this.mainUI=mainUI,this.header=document.querySelector("header"),this.allPopups=Array.from(document.querySelectorAll(".header__popup, .popup")),this.allClosePopups=document.querySelectorAll(".header__popup--close, .popup__div__header--close, .popup--close"),this.allShowPopups=document.querySelectorAll(".header__popup--show, .popup--show"),this.allPopups=this.allPopups.map(popup=>{switch(popup.id){case"popup-login":popup={popup:popup,slider:popup.classList.contains("header__popup"),showFunction:this.affichePopupLogin.bind(this),closeFunction:this.closePopup.bind(this),closePopupSupp:null};break;case"popup-hamb":popup={popup:popup,slider:popup.classList.contains("header__popup"),showFunction:this.showPopupHamb.bind(this),closeFunction:this.closePopupHamb.bind(this),closePopupSupp:null};break;default:popup={popup:popup,slider:popup.classList.contains("header__popup"),showFunction:this.showPopup.bind(this),closeFunction:this.closePopup.bind(this),closePopupSupp:null}}return popup}),this.initEventListeners()}initEventListeners(){console.logStart(),this.allShowPopups.forEach(btnShow=>{this.addListenerBtnShow(btnShow)}),this.allClosePopups.forEach(btnClose=>{this.addListenerBtnClose(btnClose)}),this.allPopups.forEach(popup=>{!1===popup.slider&&popup.popup.addEventListener("click",event=>{event.target.classList.contains("popup")&&mainManager.mainUI.popupManager.closePopup(event,popup.popup,!1)})})}addListenerBtnClose(btnClose){boundCloseButtons.has(btnClose)||(boundCloseButtons.add(btnClose),btnClose.addEventListener("click",event=>{console.logStart();let popup=this.allPopups.find(p=>p.popup.id===btnClose.dataset.popup);popup&&(console.log(popup),popup.closeFunction(event,popup.popup,popup.slider))}))}addListenerBtnShow(btnShow){boundShowButtons.has(btnShow)||(boundShowButtons.add(btnShow),btnShow.addEventListener("click",event=>{console.logStart({popup:btnShow.dataset.popup});let popup=this.allPopups.find(p=>p.popup.id===btnShow.dataset.popup);popup?popup.showFunction(event,popup.popup,popup.slider):console.warn("[FW] Popup "+btnShow.dataset.popup+" non trouvée")}))}closeAllPopup(){console.logStart(),this.allPopups.forEach(popup=>{console.logStart(),popup.popup.classList.contains("active")&&popup.closeFunction(null,popup.popup,popup.slider)})}closePopup(event,popup,slider){console.logStart({popupId:popup.id},{slider:slider}),this.mainUI.overlay(!1),popup.classList.remove("active"),document.body.classList.contains("no-scroll")&&document.body.classList.remove("no-scroll"),!1===slider&&this.desactivateOutsideClickListener_closePopupChangeAddress(popup,slider);const closePopupPerso=this.allPopups.find(popupObject=>popupObject.popup.id===popup.id)?.closePopupSupp;closePopupPerso&&(console.log("Déclenchement de closePopupSupp"),closePopupPerso())}showPopup(event,popup,slider){console.logStart({popupId:popup.id},{slider:slider}),this.closeAllPopup(),popup.classList.add("active"),document.body.classList.add("no-scroll"),this.mainUI.isMobile()&&!1!==slider||this.mainUI.overlay(!0),!1===slider&&this.activateOutsideClickListener_closePopupChangeAddress(popup,slider)}affichePopupLogin(event,popup){console.logStart(),userConnected?window.location.href=`/${lang}/${translations.slugs.myAccount}`:this.showPopup(event,popup,!0)}showPopupHamb(event,popup=document.getElementById("popup-hamb")){if(console.logStart(),popup.classList.contains("active"))this.closePopupHamb(event,popup,!0);else{this.mainUI.menuHamb.classList.replace("bx-menu","bx-x"),this.showPopup(event,popup,!0);const headerHeight=this.header.offsetHeight;this.mainUI.popupHamb.style.top=`${headerHeight}px`;const megaMenu=this.mainUI.popupHamb.querySelector(".mega-menu__content");if(megaMenu){const rect=megaMenu.getBoundingClientRect();let remainingHeight=window.innerHeight-rect.top;this.mainUI.banner&&!this.mainUI.banner.classList.contains("masked")&&(remainingHeight-=this.mainUI.banner.offsetHeight),megaMenu.style.maxHeight=`${remainingHeight}px`}}}
1closePopupHamb(event,popup=document.getElementById("popup-hamb")){console.logStart(),this.mainUI.megaMenuMobile.forEach(megaMenu=>{megaMenu.removeAttribute("open")}),this.closePopup(event,popup,!0),this.mainUI.menuHamb&&this.mainUI.menuHamb.classList.replace("bx-x","bx-menu")}handleClickOutside_closePopupChangeAddress(event,popup){console.logStart({popupId:popup.id},{eventTarget:event.target}),popup&&popup.classList.contains("active")&&event.target.classList.contains("popup")?mainManager.mainUI.popupManager.closePopup(event,popup,!1):console.log("[FW] handleClickOutside_closePopupChangeAddress","Pas rentré")}activateOutsideClickListener_closePopupChangeAddress(popup){console.logStart({popupId:popup.id})}desactivateOutsideClickListener_closePopupChangeAddress=popup=>{console.logStart({popupId:popup.id})}}

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.