https://postdigitalarchitecture.com/cdn/shop/t/28/assets/component…?v=104622188138790680391786874776
1window.basicLightbox={_toElement:function(html,children=!1){const elem=document.createElement("div");return elem.innerHTML=html.trim(),children===!0?elem.children:elem.firstChild},_validateOptions:function(opts={}){return opts=Object.assign({},opts),opts.closable==null&&(opts.closable=!0),opts.className==null&&(opts.className=""),opts.onShow==null&&(opts.onShow=()=>{}),opts.onClose==null&&(opts.onClose=()=>{}),opts.trigger==null&&(opts.trigger=!1),opts.focus==null&&(opts.focus=!1),opts},_validateContent:function(content){const isString=typeof content=="string",isHTMLElement=content instanceof HTMLElement;if(isString===!1&&isHTMLElement===!1)throw new Error("Content must be a DOM element/node or string");return isString===!0?Array.from(this._toElement(content,!0)):content.tagName==="TEMPLATE"?[content.content.cloneNode(!0)]:Array.from(content.children)},_containsTag:function(elem,tag){const children=elem.children;return children.length===1&&children[0].tagName===tag},_render:function(content,opts){const elem=this._toElement(` 2 <div class="basicLightbox ${opts.className}"> 3 <div class="basicLightbox__placeholder" role="dialog"></div> 4 </div> 5 `),placeholder=elem.querySelector(".basicLightbox__placeholder");content.forEach(child=>placeholder.appendChild(child));const img=this._containsTag(placeholder,"IMG"),video=this._containsTag(placeholder,"VIDEO"),iframe=this._containsTag(placeholder,"IFRAME");return img===!0&&elem.classList.add("basicLightbox--img"),video===!0&&elem.classList.add("basicLightbox--video"),iframe===!0&&elem.classList.add("basicLightbox--iframe"),elem},_show:function(elem,next){return document.body.appendChild(elem),setTimeout(()=>{requestAnimationFrame(()=>(elem.classList.add("basicLightbox--visible"),next()))},10),!0},_close:function(elem,next){return elem.classList.remove("basicLightbox--visible"),setTimeout(()=>(this._visible(elem)===!1||elem.parentElement.removeChild(elem),next()),410),!0},_visible:function(elem){return elem=elem||document.querySelector(".basicLightbox"),elem!=null&&elem.ownerDocument.body.contains(elem)===!0},create:function(content,opts){content=this._validateContent(content),opts=this._validateOptions(opts);const elem=this._render(content,opts),_element=()=>elem,_visible=()=>this._visible(elem),_show=(next,focus)=>opts.onShow(instance)===!1?!1:this._show(elem,()=>{if(typeof focus=="string"&&elem.querySelectorAll(focus)&&elem.querySelectorAll(focus)[0].focus(),typeof next=="function")return next(instance)}),_close=next=>opts.onClose(instance)===!1?!1:this._close(elem,()=>{if(typeof next=="function")return next(instance)});opts.closable===!0&&(elem.addEventListener("click",e=>{e.target===elem&&_close()}),window.addEventListener("keydown",e=>{e.keyCode==27&&_close()}),elem.querySelector(".basicLightboxClose")&&(elem.querySelector(".basicLightboxClose").addEventListener("click",e=>{e.preventDefault(),_close()}),elem.querySelector(".basicLightboxClose").addEventListener("keydown",e=>{e.keyCode==13&&_close()}))),opts.trigger&&(opts.trigger.addEventListener("click",e=>{e.preventDefault(),_show(null,opts.focus)}),opts.trigger.addEventListener("keydown",e=>{e.keyCode==13&&_show(null,opts.focus)}));const instance={element:_element,visible:_visible,show:_show,close:_close};return instance}}; 6//# sourceMappingURL=/cdn/shop/t/28/assets/component-lightbox.js.map?v=104622188138790680391786874776
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.