1import{LitElement,html}from"@hh/global.js";class HHLoadMore extends LitElement{static properties={url:{type:String},position:{type:String},"target-class":{type:String}};constructor(){super(),this.position="next"}connectedCallback(){super.connectedCallback(),this.addEventListener("submit",this.handleLoadMore.bind(this))}disconnectedCallback(){super.disconnectedCallback()}async handleLoadMore(e){e.preventDefault();try{const url=this.url,targetClass=this["target-class"];this.setButtonLoading(),this.position==="next"&&this.setPageUrl(url);const data=await(await fetch(url)).text(),dataDom=await new DOMParser().parseFromString(data,"text/html"),newData=dataDom.querySelector(targetClass);document.querySelector(targetClass).insertAdjacentHTML(this.position==="previous"?"afterbegin":"beforeend",newData.innerHTML),this.rerenderComponent(dataDom)}catch(error){console.error(error)}}setButtonLoading(){const buttonEl=this.querySelector('.js-load-more, button[type="submit]');buttonEl.classList.add("is-loading"),buttonEl.setAttribute("disabled",!0)}rerenderComponent(data){if(!data)return;const elId=`#${this.getAttribute("id")}`,newLoadMore=data.querySelector(elId)?.outerHTML||"";this.outerHTML=newLoadMore}setPageUrl(url){window.history.pushState({},"",url)}render(){return html` <slot></slot> `}}customElements.define("hh-load-more",HHLoadMore); 2//# sourceMappingURL=/cdn/shop/t/1772/assets/component-load-more.js.map?v=1293462154241298531789367569
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.