1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[242],{242:function(e,t,s){s.r(t),s.d(t,{createPopup:function(){return o}});var i=s(1052);const n=(0,s(5409).getScroll)();class p{constructor(e){this.popup=e,this.closeBtn=(0,i.getElement)(".popup__close",this.popup),this.content=(0,i.getElement)(".popup__content",this.popup),this.menuElement=(0,i.getElement)("#slide-menu"),this.isOpen=!1,this.triggerHandlers=new Map,this.open=this.open.bind(this),this.close=this.close.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.handleOverlayClick=this.handleOverlayClick.bind(this),this.init()}init(){this.closeBtn&&this.closeBtn.addEventListener("click",this.close),this.popup&&this.popup.addEventListener("click",this.handleOverlayClick);const e=this.popup.id;(0,i.getElements)(`[data-popup="${e}"]`).forEach(e=>{const t=t=>{t.preventDefault(),this.open(e)};this.triggerHandlers.set(e,t),e.addEventListener("click",t)})}open(e){if((0,i.addClass)(this.popup,"popup--active"),this.menuElement.menu.close(),e){const t=e.dataset.type,s=e.dataset.src;if("iframe"===t&&s){const e=(0,i.getElement)("iframe",this.popup);e&&e.getAttribute("src")!==s&&e.setAttribute("src",s)}}document.addEventListener("keydown",this.handleKeydown),n.stop(),this.popup.setAttribute("tabindex","-1");const t=(0,i.getElement)('input:not([type="hidden"])',this.popup);t?t.focus():this.popup.focus(),this.isOpen=!0}close(){(0,i.removeClass)(this.popup,"popup--active"),document.removeEventListener("keydown",this.handleKeydown),n.start(),this.isOpen=!1}handleKeydown(e){"Escape"===e.key&&this.close()}handleOverlayClick(e){e.target===this.popup&&this.close()}toggle(){this.isOpen?this.close():this.open()}destroy(){this.closeBtn&&this.closeBtn.removeEventListener("click",this.close),document.removeEventListener("keydown",this.handleKeydown),this.triggerHandlers.forEach((e,t)=>{t.removeEventListener("click",e)}),this.triggerHandlers.clear()}}const o=(e={})=>{const{id:t=`popup-${Date.now()}`,title:s="",content:n="",className:o="",closeOnEscape:l=!0,closeOnOverlayClick:c=!0}=e,a=(0,i.createEl)("div",{id:t,class:`popup ${o}`,role:"dialog","aria-modal":"true","aria-labelledby":`${t}-title`}),h=(0,i.createEl)("div",{class:"popup__content"}),d=(0,i.createEl)("div",{class:"popup__header"});if(s){const e=(0,i.createEl)("h3",{class:"popup__title",id:`${t}-title`},s);d.appendChild(e)}const r=(0,i.createEl)("button",{class:"popup__close",type:"button","aria-label":"Close"},"Ã");d.appendChild(r);const u=(0,i.createEl)("div",{class:"popup__body"},n);h.appendChild(d),h.appendChild(u),a.appendChild(h),document.body.appendChild(a);return new p(a)};t.default=()=>{(0,i.getElements)(".popup").forEach(e=>{new p(e)})}}}]);
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.