(()=>{"use strict";class e{constructor(e){this._modal=document.querySelector(e),this._handleEscButton=e=>{"Escape"===e.key&&this.close()},this._handleOverlayClick=e=>{e.target.classList.contains("popup_opened")&&this.close()},this._modal.querySelector(".popup__button-close").innerHTML=''}open(){this._modal.classList.add("popup_opened"),console.log("222"),document.addEventListener("keydown",this._handleEscButton),this._modal.addEventListener("mousedown",this._handleOverlayClick)}close(){this._modal.classList.remove("popup_opened"),document.removeEventListener("keydown",this._handleEscButton),this._modal.removeEventListener("mousedown",this._handleOverlayClick)}setEventListeners(){this._modal.querySelector(".popup__button-close").addEventListener("mousedown",(()=>{this.close()}))}}const t=new class extends e{constructor({popupImageSelector:e,popupImageDescSelector:t},s){super(s),this._popupImage=this._modal.querySelector(e),this._popupImageDesc=this._modal.querySelector(t),this._preloader=this._modal.querySelector(".popup-preloader")}_setPreloader(){this._preloader&&(this._preloader.hidden=!1,this._popupImage.src="",this._popupImageDesc.textContent="Картинка загружается")}_unsetPreloader(){this._preloader&&(this._preloader.hidden=!0)}_loadImage(e){return new Promise(((t,s)=>{const o=new Image;o.onload=()=>t(o),o.onerror=()=>s(new Error(`Не удалось загрузить по ${e}`)),o.src=e}))}async open({link:e,desc:t}){this._setPreloader();try{super.open(),await this._loadImage(e),this._popupImage.src=e,this._popupImage.alt=t,this._popupImageDesc.textContent=t,requestAnimationFrame((()=>{this._popupImage.classList.remove("opacity-0","scale-90"),this._popupImageDesc.classList.remove("opacity-0","scale-90")}))}catch(e){console.log(e),this._popupImageDesc.textContent="Что то пошло не так"}finally{this._unsetPreloader()}}close(){setTimeout((()=>{this._popupImage.src=""}),500),this._popupImage.alt="",this._popupImage.classList.add("opacity-0","scale-90"),this._popupImageDesc.classList.add("opacity-0","scale-90"),super.close()}}({popupImageSelector:".popup__image",popupImageDescSelector:".popup__image-description"},".popup-image");t.setEventListeners(),document.querySelectorAll(".popup-image-item").forEach((e=>{e.addEventListener("mousedown",(e=>{const s=e.target.closest(".popup-image-item");t.open({link:s.querySelector("img")?s.querySelector("img").dataset.src?s.querySelector("img").dataset.src:s.querySelector("img").src:s.dataset.src?s.dataset.src:s.src,desc:s.querySelector("img")?s.querySelector("img").alt:s.alt})}))}))})();